From 86ec5341e421b3f6ac39c75da648b7a22e56f248 Mon Sep 17 00:00:00 2001 From: Anup Patel <anup.patel@wdc.com> Date: Sun, 24 May 2020 10:03:13 +0530 Subject: firmware: Allow fw_platform_init() to return updated FDT location Currently, the fw_platform_init() does not return anything but we can further improve by allowing fw_platform_init() to return updated FDT location. It is certainly not mandatory for fw_platform_init() to return a new location of FDT (or modify FDT). In fact, the fw_platform_init() can always return the original FDT location (i.e. 'arg1') unmodified. This new capability of fw_platform_init() will allow platforms to: 1. Have multiple built-in FDTs and select one 2. Modify FDT before using based on platform specific straps or OTP Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com> --- firmware/fw_base.S | 3 +++ 1 file changed, 3 insertions(+) (limited to 'firmware') diff --git a/firmware/fw_base.S b/firmware/fw_base.S index b354cb8..b66ac41 100644 --- a/firmware/fw_base.S +++ b/firmware/fw_base.S @@ -198,7 +198,9 @@ _prev_arg1_override_done: */ MOV_5R s0, a0, s1, a1, s2, a2, s3, a3, s4, a4 call fw_platform_init + add t0, a0, zero MOV_5R a0, s0, a1, s1, a2, s2, a3, s3, a4, s4 + add a1, t0, zero /* Preload HART details * s7 -> HART Count @@ -475,6 +477,7 @@ _start_hang: .globl fw_platform_init .weak fw_platform_init fw_platform_init: + add a0, a1, zero ret .section .entry, "ax", %progbits -- cgit v1.2.3