nuttx/boards/risc-v
Eero Nurkkala 3ea7d4bab4 risc-v/mpfs: amend OpenSBI to utilize IHC
Linux kernel uses M-mode trap for handling Inter-Hart Communication (IHC).
This patch provides all the required functionalities for this purpose.
Previously, HSS bootloader was required. Now, NuttX is run as the
bootloader providing OpenSBI vendor extensions instead. This setup has
been tested on the following configuration:

 - Hart 0 has NuttX in bootloader mode with OpenSBI
 - Hart 1 unused
 - Hart 2 has NuttX configured at 0xa2000000
 - Hart 3 has U-boot / Linux kernel (at 0x80200000)
 - Hart 4 has U-boot / Linux kernel (at 0x80200000)

Upon startup, NuttX on hart 0 will initialize SD-card driver, loads
the hart 2 NuttX from the SD-card and loads the U-boot to 0x80200000.
Also the nuttx.sbi -binary is loaded from SD-card into address 0x80000000,
which is also marked as reserved area in the Linux kernel device tree (for
the chuck 0x80000000 - 0x80200000).

Hart 2 NuttX waits until Linux kernel (IHC master) is started. After the
initial handshake, RPMsg / virtIO bus along with the IHC may be used for
proper AMP mode.

Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
2022-05-24 03:25:37 +08:00
..
bl602/bl602evb risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
c906/smartl-c906 risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
esp32c3/esp32c3-devkit esp32c3-devkit: Rename linker script to indicate use for Flat mode 2022-05-18 11:43:52 +08:00
fe310/hifive1-revb risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
k210/maix-bit risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
litex/arty_a7 risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
mpfs risc-v/mpfs: amend OpenSBI to utilize IHC 2022-05-24 03:25:37 +08:00
qemu-rv/rv-virt risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00
rv32m1/rv32m1-vega risc-v: Move "LDFLAGS += -melf32lriscv" from Make.defs to Toolchain.defs 2022-05-16 11:17:08 +03:00