Hi,
I’ve been trying to get QNX working properly on an iotgate board (that uses the imx8mp SoC), but have been running into issues getting the FEC NIC to work. The dwmac one works fine, but the FEC interface fails to get an IP address through DHCP and instead defaults to assigning an LLv4 ip address. The hardware should definitely works, as I’m using tftpboot from uboot (with that NIC) to load QNX and the dts into the board’s memory at boot-time.
I have used slog2info, which reports
ffec0: Unsupported Media 0
which to my understanding implies that the NIC is unable to communicate with the PHY.
The phy appears to be detected correctly, as I see the following in slog2info
Jan 01 00:00:19.825 io_sock.114708 main_buffer 48 ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0
Jan 01 00:00:19.825 io_sock.114708 main_buffer 48 ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 100baseT4, 1000baseSX, 1000baseSX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
The one thing that I see that could be affecting this is that the imx8mp_evk dts from nxp has the following node for the FEC device’s PHY
fec-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x00>;
reset-gpios = <0x40 0x18 0x01>;
reset-assert-us = <0x2710>;
reset-deassert-us = <0x13880>;
eee-broken-1000t;
realtek,clkout-disable;
phandle = <0x3f>;
};
whereas the iotgate has
ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x01>;
eee-broken-1000t;
reset-gpios = <0x3e 0x02 0x01>;
reset-assert-us = <0x2710>;
reset-deassert-us = <0x13880>;
realtek,clkout-disable;
phandle = <0x50>;
};
Notably, the reg
field, which from my understanding indicates the MDIO bus address, is different between the two boards. I am passing the dtb of the iotgate board.
This is still confusing because the PHY node specified for the dwmac device is different in the same way, but appears to work fine.
I thought it might be a clock misconfiguration and because I don’t really need anything other than this NIC for the timebeing, I tried removing the call to imx_init_clocks
in the main.c
of the startup program to try and preserve the clock configuration from uboot, but this doesn’t seem to make a difference.
Does anyone have any ideas what could be going wrong?
Thanks.