Dear Genodians,
I am updating our reference branch to the 22.11 tag for the genode repository and respective references for the genode-world and genode-imx repositories.
I am facing an issue with the 'fec_nic_drv' on imx8mm_iot_gate, an "arm_v8a" based board. The driver connects successfully to the "nic_router" uplink session. But no DHCP request is ever received by the DHCP server running on my host. Furthermore, inspecting with Wireshark, no packet is ever sent by the device after the TFTP transmission.
After some debugging, I concluded that the driver received a packet to send via the packet stream interface from the "nic router". It is successfully inserted into the driver's tx queue. Finally, I could identify in the mnt_reform2_linux code base "drivers/net/ethernet/freescale/fec_main.c" the function `fec_enet_tx_queue` that seems to process the skb buffer.
I would be pleased if someone has been down that path already and could point me out some hints. Unfortunately, there are no warnings or errors that light up. I have attached logs containing some debug messages. Please ignore the missing "report_rom" errors.
May I be overlooking something or not looking at the right place?
Thanks for your time! :)
Best, Jean-Adrien
Hello Jean-Adrien,
I have no device-specific hints, just some general tips/questions.
- Your board seems to use a different PHY from imx8q_evk. Is this correct?
- The driver logs the link is up in full-duplex 1Gbps. Does your switch confirm this with its LED state?
- I spotted some messages about fec_enet_rx_queue in the log. Does your driver receive any packets from the wire yet? If yes, is the content of the packets reasonable (you could just log some bytes into the packet while sending ARP requests from your host)?
- What happens if you unplug/plug the ethernet cable at runtime?
- Did you check that a minimal Linux with your configuration is able to drive the FEC?
Regards
Hello Christian,
- Your board seems to use a different PHY from imx8q_evk. Is this correct?
It seems that they use the same PHY, in the logs I have on the imx8q_evk:
```
|[init -> nic_drv -> nic_drv] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL)|
```
On the imx8mm_iot_gate I have: ``` [init -> nic_drv -> fec_nic] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) ```
- The driver logs the link is up in full-duplex 1Gbps. Does your switch confirm this with its LED state?
Yes, I confirm that the green LED is on and the orange LED blink sometimes.
- I spotted some messages about fec_enet_rx_queue in the log. Does your driver receive any packets from the wire yet? If yes, is the content of the packets reasonable (you could just log some bytes into the packet while sending ARP requests from your host)?
Yes, it does. I have attached to this e-mail a new log file that contains plug/unplug logs and pings. I have added debug message that print the destination/source address in `fec_enet_rx_queue`. The source MAC address is coherent with my host MAC address.
- What happens if you unplug/plug the ethernet cable at runtime?
The nic session is removed and added again. So this works as intended
- Did you check that a minimal Linux with your configuration is able to drive the FEC?
No, I haven't yet. I am now working on testing this.
Best, Jean-Adrien