logicog
e8a719d911
Add itoa function
2026-01-18 07:39:49 +01:00
logicog
d2d7ab7ff1
De-magic NIC rx and tx registers, cleanup
2026-01-11 07:51:18 +01:00
logicog
44792699bf
Add sfr_mask_data function header
2025-12-17 06:43:31 +01:00
logicog
c8c524b71f
Add an implementation for IGMP
...
This adds an implementation for trapping IGMP packets to the CPU
which will identify IGMPv1/2/3 packets, but handle only v3.
The implementation then inserts/updates/deletes L3 MC entries
in the L3 lookup table. The entries consist of an Ipv4
Destination IP (the IPv4 MC address), a Source IP (0.0.0.0) and
a Portmask. Note that this implementation is not VLAN aware,
as there is no hardware support in the device.
An alternative strategy is to control switching of the L2-MC packets
in which the IPv4-MC packets are transported (dst-MaC is
01:00:5e:xx:yy:zz, with xx:yy:zz corresponding to bits in the Ipv4-MC
address). This will allow to use VLAN-aware packet switching. While
code support is there for table insert/update/deletes, some further
L2 configuration is missing.
There is no support for IPv6 MC, yet.
2025-12-15 06:54:41 +01:00
logicog
96977b5d88
Move rtl_tag structure definition to common inlude
2025-12-14 20:35:17 +01:00
logicog
a84c5dcd0c
IGMP refactoring
2025-12-14 20:35:17 +01:00
logicog
edfb86bff4
Use SFP pin definitions and I2C ports for SFP modules
2025-12-13 09:25:58 +01:00
logicog
d75ad636f9
Use machine structure
2025-12-12 09:06:52 +01:00
logicog
32b5539670
Do not show non-ascii Transceiver field in SFP module description
2025-12-07 10:59:39 +01:00
logicog
9c21d94b65
Add read_reg_timer function
2025-12-01 18:26:46 +01:00
logicog
70c14fb23e
Add get_random_32()
2025-12-01 18:26:46 +01:00
logicog
4d915a0d80
Add support for command history
...
This adds a command history, both for the CLI as well as for
commands sent by the web-interface. They are written to a ring buffer
in order to work safely with a relatively small amount of RAM
The buffer is used to read the current in-RAM configuration
from the switch by the web-interface. It could also be used
to implement cmd history via cursor up/down in the CLI.
2025-11-29 12:44:23 +01:00
logicog
9c7572b289
De-Magic I2C configuration for SFP-EEPROM reads
2025-11-02 09:49:13 +01:00
René van Dorst
7a87b79871
Convert flash_addr to struct flash_region.
...
flash_region storage flash address and length, which a operation is needed.
2025-10-05 15:36:08 +02:00
René van Dorst
7e729c626c
cmd: add reg read and write.
...
like:
* `reg w 04`
* `reg w 04 00023678`
2025-09-07 01:03:15 +02:00
René van Dorst
c5995a4184
Add: phy_modify() to modify phy_registers.
...
Makes it easier to modify set/clear bit in a phy register.
Simulair like Linux PHY-core: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/phy-core.c#n551
2025-09-02 22:23:02 +02:00
René van Dorst
7ff028303d
Add phy_write() with bit_mask lookup inside the function.
...
Move the lookup saves a lot of instructions for every phy_write() call.
Assembly diff for one change.
< ; rtl837x_phy.c:240: phy_write_mask(bit_mask[port], 0x07, 0x00, 0x3200); // Enable AN
< mov dpl,r5
< mov dph,r6
---
> ; rtl837x_phy.c:240: phy_write(port, 0x07, 0x00, 0x3200); // Enable AN
> mov _phy_write_PARM_2,#0x07
1345,1359c1019,1024
< movc a,@a+dptr
< mov r5,a
< inc dptr
< clr a
< movc a,@a+dptr
< mov r6,a
< mov _phy_write_mask_PARM_2,#0x07
< clr a
< mov _phy_write_mask_PARM_3,a
< mov (_phy_write_mask_PARM_3 + 1),a
< mov _phy_write_mask_PARM_4,a
< mov (_phy_write_mask_PARM_4 + 1),#0x32
< mov dpl, r5
< mov dph, r6
< lcall _phy_write_mask
---
> mov _phy_write_PARM_3,a
> mov (_phy_write_PARM_3 + 1),a
> mov _phy_write_PARM_4,a
> mov (_phy_write_PARM_4 + 1),#0x32
> mov dpl, r7
> lcall _phy_write
Replace all phy_write_mask(bit_mask[<var>], ...) to phy phy_write(<var>, ...).
2025-09-01 00:12:12 +02:00
René van Dorst
d6ea9be4c0
rename phy_write() to phy_write_mask().
...
It seems that bit_mask[phy] lookup is expensive and it used in many places.
But most of the time we only addressing a single phy.
2025-09-01 00:07:27 +02:00
logicog
a0239b72f4
Add support for VLAN names
2025-08-28 16:58:51 +02:00
logicog
ef742f8f19
Cleanup and fix flushing of L2 UC entries
2025-08-24 19:26:24 +02:00
logicog
e924431344
Move definition of NSFP to header file
2025-08-20 10:17:15 +02:00
logicog
0fb4fafdb2
strtox now returns copied length
2025-08-05 09:34:44 +02:00
logicog
417dfe2345
Fix serial buffer length to fit signed char
2025-07-28 23:00:15 +02:00
logicog
b0a41a5af6
Add support for RTL8372-devices with 2 SFP+ ports
2025-07-17 13:25:07 +02:00
logicog
d66931acdf
Adding initial http daemon implementation
2025-07-13 12:03:40 +02:00
logicog
8b761cfcc8
Add UIP stack. Still lots of debug output on packets...
2025-07-11 14:54:57 +02:00
logicog
e0924314b4
Add memcpy function for __xdata
2025-07-06 09:53:28 +02:00
logicog
65c2336313
Use external command parser module. Add support for mirroring
2025-07-05 09:24:16 +02:00
logicog
997d85ba02
Add basic VLAN configuration
2025-07-02 11:57:15 +02:00
logicog
669ebdc616
Access to sfp register reading in common
2025-06-29 11:09:41 +02:00
logicog
5faf31cdb8
Moving PHY code to BANK1
2025-06-25 15:30:50 +02:00