diff options
| author | Tom Rini <[email protected]> | 2024-01-31 08:49:35 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-01-31 08:49:35 -0500 |
| commit | 625e68ef65ef375e60b86984289d99c673fda30e (patch) | |
| tree | 3ee7d98c10ca1f11d45b4954881e32bef7d18c37 /common | |
| parent | 28760ce8640ff6266bd1c1c568a4a231576f3919 (diff) | |
| parent | 6882255ac3107c58e1153311df8a8270087f8cb3 (diff) | |
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
* Add RISC-V falcon mode documentation
* Add Clang build support
* Add cmd to detect Debug Trigger Extension support
* Add PWM setting for Unmatched board
* Add Milk-V Duo board support
* Add new device node and enable new config option for VisionFive2 board
* Add second virtio device for RISC-V QEMU
Diffstat (limited to 'common')
| -rw-r--r-- | common/spl/Kconfig | 2 | ||||
| -rw-r--r-- | common/spl/spl_opensbi.c | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 6a4772eea90..8805dd33fec 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -1113,7 +1113,7 @@ config SPL_OS_BOOT config SPL_PAYLOAD_ARGS_ADDR hex "Address in memory to load 'args' file for Falcon Mode to" - depends on SPL_OS_BOOT + depends on SPL_OS_BOOT || SPL_LOAD_FIT_OPENSBI_OS_BOOT default 0x88000000 if ARCH_OMAP2PLUS help Address in memory where the 'args' file, typically a device tree diff --git a/common/spl/spl_opensbi.c b/common/spl/spl_opensbi.c index 9801d38c0b3..8127ebc946b 100644 --- a/common/spl/spl_opensbi.c +++ b/common/spl/spl_opensbi.c @@ -16,6 +16,7 @@ #include <opensbi.h> #include <linux/libfdt.h> #include <linux/printk.h> +#include <mapmem.h> DECLARE_GLOBAL_DATA_PTR; @@ -58,6 +59,20 @@ void __noreturn spl_invoke_opensbi(struct spl_image_info *spl_image) } /* + * Originally, u-boot-spl will place DTB directly after the kernel, + * but the size of the kernel did not include the BSS section, which + * means u-boot-spl will place the DTB in the kernel BSS section + * causing the DTB to be cleared by kernel BSS initializtion. + * Moving DTB in front of the kernel can avoid the error. + */ +#if CONFIG_IS_ENABLED(LOAD_FIT_OPENSBI_OS_BOOT) && \ + CONFIG_IS_ENABLED(PAYLOAD_ARGS_ADDR) + memcpy((void *)CONFIG_SPL_PAYLOAD_ARGS_ADDR, spl_image->fdt_addr, + fdt_totalsize(spl_image->fdt_addr)); + spl_image->fdt_addr = map_sysmem(CONFIG_SPL_PAYLOAD_ARGS_ADDR, 0); +#endif + + /* * Find next os image in /fit-images * The next os image default is u-boot proper, once enable * OpenSBI OS boot mode, the OS image should be linux. |
