Feature updates

This commit is contained in:
logicog
2025-06-29 11:09:01 +02:00
parent 4f799f3677
commit fd48ae80c1
+15 -6
View File
@@ -100,6 +100,10 @@ There are about 30 banks in use for managed switches, unmanaged ones use
2-3, while the hardware would allow to use 0x3f banks, i.e. up to 4 MB of 2-3, while the hardware would allow to use 0x3f banks, i.e. up to 4 MB of
flash. flash.
The current image uses Common BANK0 and the first BANK1 via sdccs __banked
function keyword and custom banking trampoline code for the RTL837x in
assembler.
### Hardware supported by the code so far ### Hardware supported by the code so far
@@ -108,17 +112,22 @@ flash.
- Interrupt control for timer, serial, external irqs 0, 1 - Interrupt control for timer, serial, external irqs 0, 1
- Serial console via SFRs - Serial console via SFRs
- Flash operations via SFRs - Flash operations via SFRs
- Bank switching via SFRs
- Access to Switch registers via SFRs - Access to Switch registers via SFRs
- LED setup - LED setup
- Reset - Reset
- Some switch settings - Some switch settings such as MAC configuration
- GPIO to detect SFP module insert/removal/LOS
- I2C to read SFP EEPROM
- NIC setup
- Access to PHYs via MDIO (only conceptually, not tested): - Access to PHYs via MDIO (only conceptually, not tested):
- Clause 22? via SFR - SerDes settings of SoC via SFR: Configure SFPs in 10Gbit/2.5Gbit/1Gbit, RTL8221
- Clause 45 via SFR - Clause 45 via SFR: configure RTL8221
- NIC TX and RX of packets via SFRs
- send and receive Ethernet frames via SFRs and Switch registers
Access to CPU-Port NIC via a different set of SFRs and external IRQ1 is conceptually understood, but not Ethernet frame RX IRQ via IRQ1 is conceptually understood, but not activated. RX is
included because without proper switch register configuration it cannot be currently done via polling, which allows ping-times of <100ms.
tested.
The RTL8372/3 have 256 bytes of internal RAM (INTMEM) accessible through MOV The RTL8372/3 have 256 bytes of internal RAM (INTMEM) accessible through MOV
instructions, which are used for the stack and important globals. Some of instructions, which are used for the stack and important globals. Some of