aboutsummaryrefslogtreecommitdiff
path: root/arch/csky
diff options
context:
space:
mode:
authorUsama Arif <[email protected]>2024-10-23 18:14:26 +0100
committerRob Herring (Arm) <[email protected]>2024-10-29 15:32:45 -0500
commitb2473a359763e27567993e7d8f37de82f57a0829 (patch)
tree1e7df6a84697a025a8636a9e7191b966ce0a9f5e /arch/csky
parentf9759e2b57049f9c4ea8d7254ba6afcf6eb10cd6 (diff)
of/fdt: add dt_phys arg to early_init_dt_scan and early_init_dt_verify
__pa() is only intended to be used for linear map addresses and using it for initial_boot_params which is in fixmap for arm64 will give an incorrect value. Hence save the physical address when it is known at boot time when calling early_init_dt_scan for arm64 and use it at kexec time instead of converting the virtual address using __pa(). Note that arm64 doesn't need the FDT region reserved in the DT as the kernel explicitly reserves the passed in FDT. Therefore, only a debug warning is fixed with this change. Reported-by: Breno Leitao <[email protected]> Suggested-by: Mark Rutland <[email protected]> Signed-off-by: Usama Arif <[email protected]> Fixes: ac10be5cdbfa ("arm64: Use common of_kexec_alloc_and_setup_fdt()") Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
Diffstat (limited to 'arch/csky')
-rw-r--r--arch/csky/kernel/setup.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
index 51012e90780d..fe715b707fd0 100644
--- a/arch/csky/kernel/setup.c
+++ b/arch/csky/kernel/setup.c
@@ -112,9 +112,9 @@ asmlinkage __visible void __init csky_start(unsigned int unused,
pre_trap_init();
if (dtb_start == NULL)
- early_init_dt_scan(__dtb_start);
+ early_init_dt_scan(__dtb_start, __pa(dtb_start));
else
- early_init_dt_scan(dtb_start);
+ early_init_dt_scan(dtb_start, __pa(dtb_start));
start_kernel();