
On Tue, Oct 8, 2024 at 6:56 PM Simon Glass sjg@chromium.org wrote:
Hi Tim,
On Mon, 7 Oct 2024 at 14:16, Tim Harvey tharvey@gateworks.com wrote:
Greetings,
I have a need to adjust the U-Boot device-tree live with some board revision specific fixups. It would seem I need to enable OF_LIVE to do so but when I do this on imx8mm U-Boot proper seems to fail phy_connect() called from the network device probe.
The board I'm working with is an imx8mm-venice board and using imx8mm_venice_defconfig (without OF_LIVE) results in: U-Boot 2024.10-00735-gc530f6079c70 (Oct 07 2024 - 12:58:38 -0700)
CPU: Freescale i.MX8MMQ rev1.0 1600 MHz (running at 1200 MHz) CPU: Industrial temperature grade (-40C to 105C) at 44C Reset cause: POR Model: Gateworks Venice GW73xx-0x i.MX8MM Development Kit DRAM: 4 GiB Core: 226 devices, 32 uclasses, devicetree: separate WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout) MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... Reading from redundant MMC(2)... OK In: serial@30890000 Out: serial@30890000 Err: serial@30890000 SEC0: RNG instantiated Net: GPY111 eth0: ethernet@30be0000 [PRIME] GSC : boot watchdog disabled Thermal protection:enabled at 96C Hit any key to stop autoboot: 0
Yet as soon as I enable OF_LIVE:
U-Boot 2024.10-00735-gc530f6079c70 (Oct 07 2024 - 12:59:35 -0700)
CPU: Freescale i.MX8MMQ rev1.0 1600 MHz (running at 1200 MHz) CPU: Industrial temperature grade (-40C to 105C) at 49C Reset cause: POR Model: Gateworks Venice GW73xx-0x i.MX8MM Development Kit DRAM: 4 GiB Core: 214 devices, 32 uclasses, devicetree: separate WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout) MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... Reading from redundant MMC(2)... OK In: serial@30890000 Out: serial@30890000 Err: serial@30890000 SEC0: RNG instantiated Net: Could not get PHY for mdio: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for mdio: addr 0 Could not get PHY for FEC0: addr 0 No ethernet found. ^^^ phy_connect failing
Any idea what I'm missing here?
Are there other ways I should be modifying the live dt in U-Boot?
Hi Simon, thanks for the response.
I am not sure, but the best option would be to debug the PHY stuff and try to see what is going wrong.
Since the number of devices is smaller, I suspect that there is some code which doesn't use the ofnode API. But it is hard to say what is going on.
ok, I will look into that
For modifying the devicetree, you can do it just before relocation using the flattree if you like. The reason livetree is better is that the nodes don't move around when changes are made.
Where is relocation done in this case where I'm using SPL and U-Boot proper for imx8m based boards?
If I want to utilize dt overlays in U-Boot proper can you point me to what is needed or some examples?
I'm intending to detect the presence of an add-in card that has a port expander on it so as to allow that port expander to be accessed via U-Boot. As a bit of a hack I'm currently using flat dt (!OF_LIVE) and putting the port expander in the board dt and attempting to disable it via dt modification in board_init(). As a better approach I could attempt to add it to dt but using an overlay would make so much more sense.
Best Regards,
Tim