aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-08-11 22:20:01 -0400
committerTom Rini <trini@konsulko.com>2022-08-11 22:20:01 -0400
commitf5003e0791dbe796bf7b41515d67ae5527679ec9 (patch)
tree0a0a1401b0f1da9114460fe3fcbfc50142663920
parent157861e6afa5c26134639e8a8f34540141672a0a (diff)
parentaa0eda17cf98448c3ef826204f38c76bf48b3345 (diff)
downloadu-boot-WIP/11Aug2022.zip
u-boot-WIP/11Aug2022.tar.gz
u-boot-WIP/11Aug2022.tar.bz2
Merge https://source.denx.de/u-boot/custodians/u-boot-riscvWIP/11Aug2022
-rw-r--r--arch/riscv/cpu/start.S5
-rw-r--r--board/AndesTech/ax25-ae350/ax25-ae350.c17
-rw-r--r--common/spl/Kconfig8
-rw-r--r--common/spl/spl_opensbi.c4
4 files changed, 25 insertions, 9 deletions
diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S
index f2ef556..b7f21ab 100644
--- a/arch/riscv/cpu/start.S
+++ b/arch/riscv/cpu/start.S
@@ -140,9 +140,12 @@ call_harts_early_init:
* accesses gd).
*/
mv gp, s0
+#if CONFIG_IS_ENABLED(RISCV_MMODE)
bnez tp, secondary_hart_loop
#endif
-
+#endif
+
+ mv a0, s0
jal board_init_f_init_reserve
SREG s1, GD_FIRMWARE_FDT_ADDR(gp)
diff --git a/board/AndesTech/ax25-ae350/ax25-ae350.c b/board/AndesTech/ax25-ae350/ax25-ae350.c
index d6a4291..36f0dd4 100644
--- a/board/AndesTech/ax25-ae350/ax25-ae350.c
+++ b/board/AndesTech/ax25-ae350/ax25-ae350.c
@@ -54,17 +54,22 @@ ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
return 0;
}
+#define ANDES_HW_DTB_ADDRESS 0xF2000000
void *board_fdt_blob_setup(int *err)
{
*err = 0;
-#if defined(CONFIG_OF_BOARD)
- return (void *)(ulong)gd->arch.firmware_fdt_addr;
-#elif defined(CONFIG_OF_SEPARATE)
- return (void *)CONFIG_SYS_FDT_BASE;
-#else
+
+ if (IS_ENABLED(CONFIG_OF_SEPARATE) || IS_ENABLED(CONFIG_OF_BOARD)) {
+ if (gd->arch.firmware_fdt_addr)
+ return (void *)(ulong)gd->arch.firmware_fdt_addr;
+ }
+
+ if (fdt_magic(CONFIG_SYS_FDT_BASE) == FDT_MAGIC)
+ return (void *)CONFIG_SYS_FDT_BASE;
+ return (void *)ANDES_HW_DTB_ADDRESS;
+
*err = -EINVAL;
return NULL;
-#endif
}
int smc_init(void)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index ee98810..70d9781 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1488,6 +1488,14 @@ config SPL_OPENSBI_LOAD_ADDR
help
Load address of the OpenSBI binary.
+config SPL_OPENSBI_SCRATCH_OPTIONS
+ hex "Scratch options passed to OpenSBI"
+ default 0x1
+ depends on SPL_OPENSBI
+ help
+ Options passed to fw_dynamic, for example SBI_SCRATCH_NO_BOOT_PRINTS or
+ SBI_SCRATCH_DEBUG_PRINTS.
+
config SPL_TARGET
string "Addtional build targets for 'make'"
default "spl/u-boot-spl.srec" if RCAR_GEN2
diff --git a/common/spl/spl_opensbi.c b/common/spl/spl_opensbi.c
index 1c0abf8..b0f4007 100644
--- a/common/spl/spl_opensbi.c
+++ b/common/spl/spl_opensbi.c
@@ -66,12 +66,12 @@ void spl_invoke_opensbi(struct spl_image_info *spl_image)
if (ret)
ret = fit_image_get_load(spl_image->fdt_addr, uboot_node, &uboot_entry);
- /* Prepare obensbi_info object */
+ /* Prepare opensbi_info object */
opensbi_info.magic = FW_DYNAMIC_INFO_MAGIC_VALUE;
opensbi_info.version = FW_DYNAMIC_INFO_VERSION;
opensbi_info.next_addr = uboot_entry;
opensbi_info.next_mode = FW_DYNAMIC_INFO_NEXT_MODE_S;
- opensbi_info.options = SBI_SCRATCH_NO_BOOT_PRINTS;
+ opensbi_info.options = CONFIG_SPL_OPENSBI_SCRATCH_OPTIONS;
opensbi_info.boot_hart = gd->arch.boot_hart;
opensbi_entry = (void (*)(ulong, ulong, ulong))spl_image->entry_point;