riscv: qemu: Use correct SYS_TEXT_BASE for S-mode on 32bit system
authorAnup Patel <Anup.Patel@wdc.com>
Thu, 11 Apr 2019 06:52:12 +0000 (06:52 +0000)
committerAndes <uboot@andestech.com>
Thu, 9 May 2019 08:46:24 +0000 (16:46 +0800)
For 32bit system, the OpenSBI (or BBL) will jump to 0x80400000 address
in S-mode whereas for 64bit system it will jump to 0x80200000 address
in S-mode.

Currently, the S-mode U-Boot sets SYS_TEXT_BASE to 0x80200000 for both
32bit and 64bit system. This breaks S-mode U-Boot for 32bit system.

This patch sets different SYS_TEXT_BASE for 32bit and 64bit system so
that S-mode U-Boot works fine for both.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
Tested-by: Karsten Merker <merker@debian.org>
board/emulation/qemu-riscv/Kconfig

index cf057e7de6a20913181c07ac1241d4b8439cb9d0..20ea6dc59b740fb5abab42667ee42e01959cabee 100644 (file)
@@ -14,7 +14,8 @@ config SYS_CONFIG_NAME
 
 config SYS_TEXT_BASE
        default 0x80000000 if !RISCV_SMODE
-       default 0x80200000 if RISCV_SMODE
+       default 0x80200000 if RISCV_SMODE && ARCH_RV64I
+       default 0x80400000 if RISCV_SMODE && ARCH_RV32I
 
 config BOARD_SPECIFIC_OPTIONS # dummy
        def_bool y