summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInochi Amaoto <[email protected]>2024-02-23 16:18:13 +0800
committerAnup Patel <[email protected]>2024-02-24 15:57:59 +0530
commitf056939d8a422d8719f185b44d4abed278f3ee8a (patch)
tree315ad1f724d9ff521ba890a7d59dc6125c061339
parent7227cddcb4c09cf63915011c409b7c1fe4f0c014 (diff)
firmware: Add relocatable FW_PAYLOAD_FDT_ADDR
The fw_payload.bin has the same issue as described in previous patch. But only FW_PAYLOAD_FDT_ADDR is affected. Add FW_PAYLOAD_FDT_OFFSET to identify relocatable payload fdt address. Signed-off-by: Inochi Amaoto <[email protected]> Reviewed-by: Anup Patel <[email protected]>
-rw-r--r--firmware/fw_payload.S4
-rw-r--r--firmware/objects.mk3
2 files changed, 7 insertions, 0 deletions
diff --git a/firmware/fw_payload.S b/firmware/fw_payload.S
index c53a3bb0..3c8433ea 100644
--- a/firmware/fw_payload.S
+++ b/firmware/fw_payload.S
@@ -46,6 +46,10 @@ fw_save_info:
fw_next_arg1:
#ifdef FW_PAYLOAD_FDT_ADDR
li a0, FW_PAYLOAD_FDT_ADDR
+#elif defined(FW_PAYLOAD_FDT_OFFSET)
+ lla a0, _fw_start
+ li a1, FW_PAYLOAD_FDT_OFFSET
+ add a0, a0, a1
#else
add a0, a1, zero
#endif
diff --git a/firmware/objects.mk b/firmware/objects.mk
index fef090a4..3ae0a28f 100644
--- a/firmware/objects.mk
+++ b/firmware/objects.mk
@@ -65,6 +65,9 @@ ifdef FW_PAYLOAD_ALIGN
firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_ALIGN=$(FW_PAYLOAD_ALIGN)
endif
+ifdef FW_PAYLOAD_FDT_OFFSET
+firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_FDT_OFFSET=$(FW_PAYLOAD_FDT_OFFSET)
+endif
ifdef FW_PAYLOAD_FDT_ADDR
firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_FDT_ADDR=$(FW_PAYLOAD_FDT_ADDR)
endif