aboutsummaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorXiang W <wxjstz@126.com>2024-04-08 23:27:42 +0800
committerAnup Patel <anup@brainfault.org>2024-04-10 09:50:24 +0530
commitd4d2582eef7aac442076f955e4024403f8ff3d96 (patch)
tree3623c416199df750595d3a5147027ee41a51d5b8 /firmware
parent73344d4724d89ab5591311b9badfad875dddbb92 (diff)
downloadopensbi-d4d2582eef7aac442076f955e4024403f8ff3d96.zip
opensbi-d4d2582eef7aac442076f955e4024403f8ff3d96.tar.gz
opensbi-d4d2582eef7aac442076f955e4024403f8ff3d96.tar.bz2
firmware: remove FW_TEXT_START
Now opensbi can run at any address via dynamic relocation. We can remove FW_TEXT_START. Signed-off-by: Xiang W <wxjstz@126.com> Reviewed-by: Anup Patel <anup@brainfault.org> Tested-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/fw_base.S4
-rw-r--r--firmware/fw_base.ldS3
-rw-r--r--firmware/fw_payload.elf.ldS2
-rw-r--r--firmware/objects.mk4
-rw-r--r--firmware/payloads/test.elf.ldS2
5 files changed, 4 insertions, 11 deletions
diff --git a/firmware/fw_base.S b/firmware/fw_base.S
index b950c0b..9f995a2 100644
--- a/firmware/fw_base.S
+++ b/firmware/fw_base.S
@@ -53,9 +53,7 @@ _try_lottery:
bnez a6, _wait_for_boot_hart
/* relocate the global table content */
- li t0, FW_TEXT_START /* link start */
- lla t1, _fw_start /* load start */
- sub t2, t1, t0 /* load offset */
+ lla t2, _fw_start
lla t0, __rel_dyn_start
lla t1, __rel_dyn_end
beq t0, t1, _relocate_done
diff --git a/firmware/fw_base.ldS b/firmware/fw_base.ldS
index fb47984..9d11db5 100644
--- a/firmware/fw_base.ldS
+++ b/firmware/fw_base.ldS
@@ -7,8 +7,7 @@
* Anup Patel <anup.patel@wdc.com>
*/
- . = FW_TEXT_START;
- /* Don't add any section between FW_TEXT_START and _fw_start */
+ /* Don't add any section before _fw_start */
PROVIDE(_fw_start = .);
. = ALIGN(0x1000); /* Need this to create proper sections */
diff --git a/firmware/fw_payload.elf.ldS b/firmware/fw_payload.elf.ldS
index f1a544b..94e1ac6 100644
--- a/firmware/fw_payload.elf.ldS
+++ b/firmware/fw_payload.elf.ldS
@@ -15,7 +15,7 @@ SECTIONS
#include "fw_base.ldS"
#ifdef FW_PAYLOAD_OFFSET
- . = FW_TEXT_START + FW_PAYLOAD_OFFSET;
+ . = FW_PAYLOAD_OFFSET;
#else
. = ALIGN(FW_PAYLOAD_ALIGN);
#endif
diff --git a/firmware/objects.mk b/firmware/objects.mk
index e6b364b..a51ff65 100644
--- a/firmware/objects.mk
+++ b/firmware/objects.mk
@@ -13,10 +13,6 @@ firmware-cflags-y +=
firmware-asflags-y +=
firmware-ldflags-y +=
-ifdef FW_TEXT_START
-firmware-genflags-y += -DFW_TEXT_START=$(FW_TEXT_START)
-endif
-
ifdef FW_FDT_PATH
firmware-genflags-y += -DFW_FDT_PATH=\"$(FW_FDT_PATH)\"
ifdef FW_FDT_PADDING
diff --git a/firmware/payloads/test.elf.ldS b/firmware/payloads/test.elf.ldS
index 2328a1b..08e008f 100644
--- a/firmware/payloads/test.elf.ldS
+++ b/firmware/payloads/test.elf.ldS
@@ -13,7 +13,7 @@ ENTRY(_start)
SECTIONS
{
#ifdef FW_PAYLOAD_OFFSET
- . = FW_TEXT_START + FW_PAYLOAD_OFFSET;
+ . = FW_PAYLOAD_OFFSET;
#else
. = ALIGN(FW_PAYLOAD_ALIGN);
#endif