Hi Yuri,

On Thu, 18 Dec 2025 at 16:30, Yuri Honegger <[email protected]> wrote:
>
> Hello,
> Recently I've been playing around with the imx23-olinuxino
> (mx23_olinuxino_defconfig) and booting NetBSD using u-boot. During that, I've
> noticed that NetBSD panics because u-boot places the device tree in the BSS
> section of NetBSD. NetBSD clears the BSS section and then complains
> that the device tree is corrupt.
>
> Reading the logs, it appears that FDT and kernel get loaded at non-overlapping
> ranges, but then u-boot relocates the device tree right after the kernel into
> the BSS section.
>
> ## Booting kernel from Legacy Image at 42000000 ...
> Image Name: NetBSD/earmv5 11.99.4
> Image Type: ARM Linux Kernel Image (no loading done) (uncompressed)
> Data Size: 11950164 Bytes = 11.4 MiB
> Load Address: 00000000
> Entry Point: 00000000
> Verifying Checksum ... OK
> ## Flattened Device Tree blob at 41000000
> Booting using the fdt blob at 0x41000000
> Working FDT set to 41000000
> XIP Kernel Image (no loading done) to 42000040
> Loading Device Tree to 42b93000, end 42b99a0a ... OK
> Working FDT set to 42b93000
> Starting kernel ...
>
> The bootm command seems to insist on having to relocate the device tree.
>
> Is this something the OS is expected to deal with?
>
> In the meantime, I've managed to work around this by running
> env set fdt_high 0x41000000;
> before bootm. Is there a better solution than this to force the placement
> of the device tree?

Do you have a value for fdt_high before you set it to that?

See boot_relocate_fdt() for the logic.

Regards,
Simon

Reply via email to