Hi Peter,

On 9/26/25 6:26 PM, Peter Robinson wrote:
Hi Quentin,

On 6/30/25 12:25 PM, Peter Robinson wrote:
[...]
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3588-mnt-reform2"

Shouldn't that end with .dtb?

Nope.

Interestingly we have a mix of some adding .dtb and some not:

$ git grep CONFIG_DEFAULT_FDT_FILE configs/ | grep -v dtb | wc -l
44
$ git grep CONFIG_DEFAULT_FDT_FILE configs/ | grep dtb | wc -l
244

Most notably, all Rockchip defconfigs add .dtb at the end.

The value of this Kconfig symbol is the content of the fdtfile environment variable, which seems to be expecting a .dtb-suffixed file?

See doc/develop/bootstd/overview.rst:

"""
fdtfile
    Name of the flattened device tree (FDT) file to load, e.g.
    "rockchip/rk3399-rockpro64.dtb"
"""

and doc/develop/distro.rst:

"""
fdtfile:
  Mandatory. the name of the DTB file for the specific board for instance
the espressobin v5 board the value is "marvell/armada-3720-espressobin.dtb" while on a clearfog pro it is "armada-388-clearfog-pro.dtb" in the case of a board providing its firmware based DTB this value can be used to override the DTB with a different DTB. fdtfile will automatically be set for you if it matches the format ${soc}-${board}.dtb which covers most 32 bit use cases. AArch64 generally does not match as the Linux kernel put the dtb files under
  SoC vendor directories.
"""

so it seems like we are indeed expecting a .dtb-suffixed file.

boot/pxe_utils.c seems to be reconstructing fdtfile with a forced .dtb suffix (c.f. f4 variable when label->fdt isn't set in label_boot().

What am I missing?

Cheers,
Quentin

Reply via email to