diff options
| author | Inochi Amaoto <[email protected]> | 2024-02-23 16:18:14 +0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2024-02-24 16:00:28 +0530 |
| commit | 2cff7f350f146b72fed1b9bd29f3a72b94eed020 (patch) | |
| tree | 1f04b77fd72afbf40c46a139b51b61c46b752029 | |
| parent | f056939d8a422d8719f185b44d4abed278f3ee8a (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.mk | 8 | ||||
| -rw-r--r-- | platform/template/objects.mk | 17 |
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 |
