1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| | Patch to support NVMe and RVVM board properly in U-Boot
- Enables NVMe PCI support & booting from it
- Enables framebuffer driver, passes it as EFI FB
- Enables Realtek RTL8169 driver
- Get rid of DHCP boot, it is confusing and not helpful
Applies cleanly over U-Boot 2023.4
Reuses QEMU virt board config, build like this:
make qemu-riscv64_smode_defconfig
CROSS_COMPILE=riscv64-linux-gnu- make
Resulting firmware works fine on both RVVM and QEMU
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 48ca4ff4..faa17f33 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -15,7 +15,7 @@ config TARGET_MICROCHIP_ICICLE
bool "Support Microchip PolarFire-SoC Icicle Board"
config TARGET_QEMU_VIRT
- bool "Support QEMU Virt Board"
+ bool "Support QEMU/RVVM Virt Boards"
config TARGET_SIFIVE_UNLEASHED
bool "Support SiFive Unleashed Board"
diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig
index 6114e1b8..7c25825a 100644
--- a/board/emulation/qemu-riscv/Kconfig
+++ b/board/emulation/qemu-riscv/Kconfig
@@ -29,6 +29,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select GENERIC_RISCV
select SUPPORT_SPL
+ imply OPTIMIZE_INLINING
imply AHCI
imply SMP
imply BOARD_LATE_INIT
@@ -50,7 +51,12 @@ config BOARD_SPECIFIC_OPTIONS # dummy
imply SCSI_AHCI
imply AHCI_PCI
imply E1000
+ imply RTL8169
imply NVME
+ imply NVME_PCI
+ imply VIDEO
+ imply VIDEO_SIMPLE
+ imply NO_FB_CLEAR
imply PCI
imply PCIE_ECAM_GENERIC
imply SCSI
diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h
index 20135f56..821251a3 100644
--- a/include/configs/qemu-riscv.h
+++ b/include/configs/qemu-riscv.h
@@ -19,9 +19,9 @@
#define BOOT_TARGET_DEVICES(func) \
func(QEMU, qemu, na) \
+ func(NVME, nvme, 0) \
func(VIRTIO, virtio, 0) \
- func(SCSI, scsi, 0) \
- func(DHCP, dhcp, na)
+ func(SCSI, scsi, 0)
#include <config_distro_bootcmd.h>
|