
Hi,
On Sun, 28 Aug 2022 at 09:19, Marek Behún kabel@kernel.org wrote:
From: Pali Rohár pali@kernel.org
When U-Boot is running from flash memory (execute in place) then gd->fdt_blob before relocation points to read-only flash memory.
So U-Boot calls board_fix_fdt() with read-only gd->fdt_blob pointer which cause immediate CPU crash when callback is trying to modify gd->fdt_blob.
Fix this issue by introducing a new config option OF_DTB_READONLY_BEFORE_RELOC which moves fix_fdt callback after the reloc_fdt callback. This makes CONFIG_OF_BOARD_FIXUP working also if U-Boot before relocation is not running from read/write (S)RAM memory.
This is required for mpc85xx boards when booting from flash NOR.
Signed-off-by: Pali Rohár pali@kernel.org Signed-off-by: Marek Behún kabel@kernel.org
Changes since v1:
- just changed the new Kconfig option name and associated help string
common/board_f.c | 8 +++++++- dts/Kconfig | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
Can we just make this the normal behaviour? I think it makes more sense to change the FDT after we have relocated it.
Regards, Simon