summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInochi Amaoto <[email protected]>2024-02-23 16:18:14 +0800
committerAnup Patel <[email protected]>2024-02-24 16:00:28 +0530
commit2cff7f350f146b72fed1b9bd29f3a72b94eed020 (patch)
tree1f04b77fd72afbf40c46a139b51b61c46b752029
parentf056939d8a422d8719f185b44d4abed278f3ee8a (diff)
platform: Apply relocatable address
Since jump and payload firmware support relocatable address, make general platform use runtime relocatable address. Signed-off-by: Inochi Amaoto <[email protected]> Reviewed-by: Anup Patel <[email protected]>
-rw-r--r--platform/generic/objects.mk8
-rw-r--r--platform/template/objects.mk17
2 files changed, 21 insertions, 4 deletions
diff --git a/platform/generic/objects.mk b/platform/generic/objects.mk
index 136853ee..85aa723a 100644
--- a/platform/generic/objects.mk
+++ b/platform/generic/objects.mk
@@ -27,12 +27,12 @@ FW_DYNAMIC=y
FW_JUMP=y
ifeq ($(PLATFORM_RISCV_XLEN), 32)
# This needs to be 4MB aligned for 32-bit system
- FW_JUMP_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x400000)))
+ FW_JUMP_OFFSET=0x400000
else
# This needs to be 2MB aligned for 64-bit system
- FW_JUMP_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x200000)))
+ FW_JUMP_OFFSET=0x200000
endif
-FW_JUMP_FDT_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x2200000)))
+FW_JUMP_FDT_OFFSET=0x2200000
FW_PAYLOAD=y
ifeq ($(PLATFORM_RISCV_XLEN), 32)
# This needs to be 4MB aligned for 32-bit system
@@ -41,4 +41,4 @@ else
# This needs to be 2MB aligned for 64-bit system
FW_PAYLOAD_OFFSET=0x200000
endif
-FW_PAYLOAD_FDT_ADDR=$(FW_JUMP_FDT_ADDR)
+FW_PAYLOAD_FDT_OFFSET=$(FW_JUMP_FDT_OFFSET)
diff --git a/platform/template/objects.mk b/platform/template/objects.mk
index 0025928f..b143cbc4 100644
--- a/platform/template/objects.mk
+++ b/platform/template/objects.mk
@@ -63,6 +63,17 @@ FW_JUMP=<y|n>
# This needs to be 4MB aligned for 32-bit support
# This needs to be 2MB aligned for 64-bit support
# ifeq ($(PLATFORM_RISCV_XLEN), 32)
+# FW_JUMP_OFFSET=0x400000
+# else
+# FW_JUMP_OFFSET=0x200000
+# endif
+# FW_JUMP_FDT_OFFSET=0x2200000
+#
+# You can use fixed address for jump firmware as an alternative option,
+# but this may fail when setting wrong FW_TEXT_START. Use with caution.
+# SBI will prefer "<X>_ADDR" if both "<X>_ADDR" and "<X>_OFFSET" are
+# defined
+# ifeq ($(PLATFORM_RISCV_XLEN), 32)
# FW_JUMP_ADDR=0x80400000
# else
# FW_JUMP_ADDR=0x80200000
@@ -84,4 +95,10 @@ FW_PAYLOAD_OFFSET=0x200000
endif
# FW_PAYLOAD_ALIGN=0x1000
# FW_PAYLOAD_PATH="path to next boot stage binary image file"
+# FW_PAYLOAD_FDT_OFFSET=0x2200000
+#
+# You can use fixed address for payload firmware as an alternative option,
+# but this may fail when setting wrong FW_TEXT_START. Use with caution.
+# SBI will prefer "FW_PAYLOAD_FDT_ADDR" if both "FW_PAYLOAD_FDT_OFFSET"
+# and "FW_PAYLOAD_FDT_ADDR" are defined.
# FW_PAYLOAD_FDT_ADDR=0x82200000