[sbi] Add support for running as a RISC-V SBI payload

Add basic support for running directly on top of SBI, with no UEFI
firmware present.  Build as e.g.:

  make CROSS=riscv64-linux-gnu- bin-riscv64/ipxe.sbi

The resulting binary can be tested in QEMU using e.g.:

  qemu-system-riscv64 -M virt -cpu max -serial stdio \
                      -kernel bin-riscv64/ipxe.sbi

No drivers or executable binary formats are supported yet, but the
unit test suite may be run successfully.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2024-10-28 14:40:35 +00:00
parent 7ccd08dbf4
commit e0e102ee24
16 changed files with 532 additions and 0 deletions

0
src/config/config_sbi.c Normal file
View File

36
src/config/defaults/sbi.h Normal file
View File

@@ -0,0 +1,36 @@
#ifndef CONFIG_DEFAULTS_SBI_H
#define CONFIG_DEFAULTS_SBI_H
/** @file
*
* Configuration defaults for RISC-V SBI
*
*/
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define IOAPI_RISCV
#define IOMAP_VIRT
#define DMAAPI_FLAT
#define UACCESS_FLAT
#define TIMER_ZICNTR
#define ENTROPY_ZKR
#define CONSOLE_SBI
#define REBOOT_SBI
#define UMALLOC_SBI
#define ACPI_NULL
#define MPAPI_NULL
#define NAP_NULL
#define PCIAPI_NULL
#define SANBOOT_NULL
#define SMBIOS_NULL
#define TIME_NULL
#define IMAGE_SCRIPT
#define REBOOT_CMD
#define POWEROFF_CMD
#endif /* CONFIG_DEFAULTS_SBI_H */