MIPS: OCTEON: compute the FDT CRC in device_tree_init()
PATCH 1/1 MIPS: OCTEON: compute the FDT CRC in device_tree_init()
device_tree_init() assigns initial_boot_params directly and never calls early_init_dt_verify(), so of_fdt_crc32 stays 0 and every boot logs
OF: fdt: not creating '/sys/firmware/fdt': CRC check failed
whether the blob was passed by the bootloader, appended or built in. Call early_init_dt_verify() once the prune and the MAC address fill-in are done with the blob, so the CRC matches what of_fdt_raw_init() reads back. x86 had the same omission, fixed by commit 628df9dc5ad8 ("x86/devicetree: Initialize device tree before using it").
---
Tested on a CN6335 board (internal device tree, Cavium U-Boot 1.1.1), in a 7.3-based tree: the warning is gone and /sys/firmware/fdt holds the 11551-byte blob. mips-next with cavium_octeon_defconfig prints the warning on the same board without this patch.
arch/mips/cavium-octeon/setup.c | 2 ++ 1 file changed, 2 insertions(+)
arch/mips/cavium-octeon/setup.c +2 -0
@@ -1213,6 +1213,8 @@ void __init device_tree_init(void) }if (fill_mac)octeon_fill_mac_addresses (); +/* After the edits above, so the CRC covers the final blob */ +early_init_dt_verify (initial_boot_params,__pa (initial_boot_params));unflatten_and_copy_device_tree ();init_octeon_system_type (); }
Signature · 1 line
2.53.0