ENETC it a gigabit Ethernet controller found on the LS1028A board.
It supports basic VLAN offloads - tag extraction, injection and hardware filtering.
Inband MDIO connectivity is used for link status monitoring through the miibus interface.
Fixed-link mode is also supported, which allows for operation of internal cpu to switch port.
Since no admin interrupts are present in hardware, link status polling has to be used.
Due to a hardware bug software reset of the NIC results in a external abort.
Because of that most of the hardware initialization is done during attach.
This also means that in the case of an fatal error full board reset is required.
The enetc_hw.h header was imported from Linux, it is dual licensed.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/dev/enetc/if_enetc.c | ||
---|---|---|
137 | Any reason that you didn't enable LRO? This does not require device support AFAIK. Also, does this device really not even support transmit checksum offload? |
sys/conf/files.arm64 | ||
---|---|---|
178–179 | done | |
sys/dev/enetc/if_enetc.c | ||
60–61 | I'm pretty much sure that the 'fdt' is present. | |
137 | If I understand correctly LRO is usable only if L4 checksum has been calculated in hardware. (sys/net/iflib.c:3033) |
sys/dev/enetc/if_enetc.c | ||
---|---|---|
137 | Yes, it seems more of a switch chip, given the feature set. The chip has passed you a checksum. See mxge_rx_csum() for an example of what to do when the NIC passes you a checksum and does not validate it. |
sys/dev/enetc/if_enetc.c | ||
---|---|---|
137 | I'm pretty much sure that the checksum is validated. With that in mind should I be doing something extra with that checksum from the NIC? |