[U-Boot] [PATCH 0/7] SMP support for RISC-V
Lukas Auer
lukas.auer at aisec.fraunhofer.de
Mon Feb 11 22:13:37 UTC 2019
This patch series adds SMP support for RISC-V to U-Boot. It allows
U-Boot to run on multi-hart systems and will boot images passed to bootm
on all harts. The bootm command is currently the only one that will boot
images on all harts, bootefi is not yet supported.
The patches have been successfully tested on both QEMU (machine and
supervisor mode) and the HiFive Unleashed board [1] (supervisor mode),
using BBL and OpenSBI.
Mainline QEMU requires two patches [2, 3] to run in this configuration.
I will send a follow-up patch to enable SMP support on the HiFive
Unleashed board.
[1]: https://patchwork.ozlabs.org/project/uboot/list/?series=91125
[2]: https://patchwork.ozlabs.org/patch/1039493/
[3]: https://patchwork.ozlabs.org/patch/1039082/
Lukas Auer (7):
riscv: add infrastructure for calling functions on other harts
riscv: import the supervisor binary interface header file
riscv: implement IPI platform functions using SBI
riscv: delay initialization of caches and debug UART
riscv: add support for multi-hart systems
riscv: boot images passed to bootm on all harts
riscv: qemu: enable SMP
arch/riscv/Kconfig | 36 +++++++++
arch/riscv/cpu/start.S | 116 +++++++++++++++++++++++++--
arch/riscv/include/asm/csr.h | 1 +
arch/riscv/include/asm/global_data.h | 5 ++
arch/riscv/include/asm/sbi.h | 94 ++++++++++++++++++++++
arch/riscv/include/asm/smp.h | 53 ++++++++++++
arch/riscv/lib/Makefile | 2 +
arch/riscv/lib/bootm.c | 13 ++-
arch/riscv/lib/sbi_ipi.c | 25 ++++++
arch/riscv/lib/smp.c | 110 +++++++++++++++++++++++++
board/emulation/qemu-riscv/Kconfig | 1 +
11 files changed, 447 insertions(+), 9 deletions(-)
create mode 100644 arch/riscv/include/asm/sbi.h
create mode 100644 arch/riscv/include/asm/smp.h
create mode 100644 arch/riscv/lib/sbi_ipi.c
create mode 100644 arch/riscv/lib/smp.c
--
2.20.1
More information about the U-Boot
mailing list