Message ID | 20190211221345.31980-1-lukas.auer@aisec.fraunhofer.de |
---|---|
Headers | show |
Series | SMP support for RISC-V | expand |
On 11.02.2019, at 23:13, Lukas Auer <lukas.auer@aisec.fraunhofer.de> wrote: > > 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. You might want to clarify somewhere that a ‘hart’ is RISC-V terminology for a hardware thread. > > 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 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
On Mon, 2019-02-11 at 23:16 +0100, Philipp Tomsich wrote: > On 11.02.2019, at 23:13, Lukas Auer <lukas.auer@aisec.fraunhofer.de> > wrote: > > 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. > > You might want to clarify somewhere that a ‘hart’ is RISC-V > terminology > for a hardware thread. > Good point, I will add a note in the next version. Thanks! Lukas > > 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 > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > https://lists.denx.de/listinfo/u-boot