
On 8/29/19 5:20 AM, Anton Leontiev wrote:
2019-08-26 at 18:59, Stephen Warren swarren@wwwdotorg.org:
On 8/23/19 8:40 AM, Anton Leontiev wrote:
From: Anton Leontiev aleontiev@elvees.com
Original commit c61d94d86035 ("pxe: implement fdtdir extlinux.conf tag") states, that if FDT file cannot be retrieved then FDT packaged in firmware should be used.
It's not meant to say that. I believe the part of the description you're referring to is:
if no FDT file was loaded, and $fdtaddr is set: # This indicates an FDT packaged with firmware use the FDT at $fdtaddr
That wasn't meant to say anything about "if there was an error loading the FDT file", but rather is meant to mean "if no FDT file was loaded because extlinux.conf contained no fdt or fdtdir statement". Nothing there is intended to refer to errors loading a specified FDT file.
...
What specific problem are you trying to solve?
We have a GNU/Linux distribution that use FDTDIR in its extlinux.conf to support several boards. But some boards have FDT embedded in U-Boot and it is't present in FDTDIR. In such configuration U-Boot fails to boot an entry, despite no exact FDT is specified in it. Distribution itself is designed to work on any board.
I lookead at that referenced commit description in full and the code, and I believe what you want is for U-Boot to set fdt_addr to the location of the in-RAM DT, and leave fdt_addr_r unset. This will indicate to the pxe code that no FDT should be loaded when parsing extlinux.conf, but instead to use fdt_addr directly.
Does that work for you, or does it break some other script/use-case on this board?