Skip to content

Commit e74bdae

Browse files
committed
[dm][virtio] support virtio dm
1. version for v1.2 2. support packed queue 1. support MMIO/PCI over bus 2. new virtio queue api with dma/cpu sync 3. update for virtio device drivers: - net - block - console - input - gpu 4. new virtio device drivers: - 9p - crypto - rng - scmi - scsi Signed-off-by: GuEe-GUI <2991707448@qq.com>
1 parent dc1c5b4 commit e74bdae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+10497
-459
lines changed

bsp/qemu-virt64-riscv/.config

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,8 @@ CONFIG_RT_USING_DEVICE_OPS=y
191191
CONFIG_RT_USING_CONSOLE=y
192192
CONFIG_RT_CONSOLEBUF_SIZE=256
193193
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
194-
CONFIG_RT_VER_NUM=0x50201
194+
CONFIG_RT_USING_CONSOLE_OUTPUT_CTL=y
195+
CONFIG_RT_VER_NUM=0x50300
195196
CONFIG_RT_USING_STDC_ATOMIC=y
196197
CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
197198
# end of RT-Thread Kernel
@@ -294,9 +295,8 @@ CONFIG_RT_SERIAL_USING_DMA=y
294295
CONFIG_RT_SERIAL_RB_BUFSZ=64
295296
# CONFIG_RT_USING_SERIAL_BYPASS is not set
296297
# CONFIG_RT_USING_CAN is not set
297-
CONFIG_RT_USING_CPUTIME=y
298-
CONFIG_RT_USING_CPUTIME_RISCV=y
299-
CONFIG_CPUTIME_TIMER_FREQ=10000000
298+
CONFIG_RT_USING_CLOCK_TIME=y
299+
CONFIG_CLOCK_TIMER_FREQ=0
300300
# CONFIG_RT_USING_I2C is not set
301301
# CONFIG_RT_USING_PHY is not set
302302
# CONFIG_RT_USING_PHY_V2 is not set
@@ -324,18 +324,7 @@ CONFIG_RT_USING_SOFT_RTC=y
324324
# CONFIG_RT_USING_HWCRYPTO is not set
325325
# CONFIG_RT_USING_WIFI is not set
326326
# CONFIG_RT_USING_BLK is not set
327-
CONFIG_RT_USING_VIRTIO=y
328-
CONFIG_RT_USING_VIRTIO10=y
329-
# CONFIG_RT_USING_VIRTIO_MMIO_ALIGN is not set
330-
CONFIG_RT_USING_VIRTIO_BLK=y
331-
CONFIG_RT_USING_VIRTIO_NET=y
332-
CONFIG_RT_USING_VIRTIO_CONSOLE=y
333-
CONFIG_RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR=4
334-
CONFIG_RT_USING_VIRTIO_GPU=y
335-
CONFIG_RT_USING_VIRTIO_INPUT=y
336327
CONFIG_RT_USING_PIN=y
337-
CONFIG_RT_USING_KTIME=y
338-
# CONFIG_RT_USING_HWTIMER is not set
339328
# CONFIG_RT_USING_CHERRYUSB is not set
340329
# end of Device Drivers
341330

@@ -508,11 +497,10 @@ CONFIG_RT_USING_ADT_REF=y
508497
# CONFIG_RT_USING_RT_LINK is not set
509498
# end of Utilities
510499

511-
# CONFIG_RT_USING_VBUS is not set
512-
513500
#
514501
# Memory management
515502
#
503+
# CONFIG_RT_PAGE_MPR_SIZE_DYNAMIC is not set
516504
CONFIG_RT_PAGE_AFFINITY_BLOCK_SIZE=0x1000
517505
CONFIG_RT_PAGE_MAX_ORDER=11
518506
# CONFIG_RT_USING_MEMBLOCK is not set
@@ -534,6 +522,7 @@ CONFIG_RT_PAGE_MAX_ORDER=11
534522
# end of Using USB legacy version
535523

536524
# CONFIG_RT_USING_FDT is not set
525+
# CONFIG_RT_USING_RUST is not set
537526
# end of RT-Thread Components
538527

539528
#
@@ -1572,6 +1561,14 @@ CONFIG_RT_PAGE_MAX_ORDER=11
15721561
# RISC-V QEMU virt64 configs
15731562
#
15741563
CONFIG_BSP_USING_VIRTIO=y
1564+
CONFIG_RT_USING_VIRTIO10=y
1565+
# CONFIG_RT_USING_VIRTIO_MMIO_ALIGN is not set
1566+
CONFIG_RT_USING_VIRTIO_BLK=y
1567+
CONFIG_RT_USING_VIRTIO_NET=y
1568+
CONFIG_RT_USING_VIRTIO_CONSOLE=y
1569+
CONFIG_RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR=4
1570+
CONFIG_RT_USING_VIRTIO_GPU=y
1571+
CONFIG_RT_USING_VIRTIO_INPUT=y
15751572
CONFIG_BSP_USING_VIRTIO_BLK=y
15761573
CONFIG_BSP_USING_VIRTIO_NET=y
15771574
CONFIG_BSP_USING_VIRTIO_CONSOLE=y
Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,35 @@
11
menu "RISC-V QEMU virt64 configs"
22

3-
config BSP_USING_VIRTIO
4-
bool "Using VirtIO"
5-
default y
6-
depends on RT_USING_DEVICE_OPS
3+
rsource "virtio/Kconfig"
74

85
config BSP_USING_VIRTIO_BLK
96
bool "Using VirtIO BLK"
10-
select RT_USING_VIRTIO
7+
select BSP_USING_VIRTIO
118
select RT_USING_VIRTIO_BLK
129
default y
13-
depends on BSP_USING_VIRTIO
1410

1511
config BSP_USING_VIRTIO_NET
1612
bool "Using VirtIO NET"
17-
select RT_USING_VIRTIO
13+
select BSP_USING_VIRTIO
1814
select RT_USING_VIRTIO_NET
1915
default y
20-
depends on BSP_USING_VIRTIO
2116

2217
config BSP_USING_VIRTIO_CONSOLE
2318
bool "Using VirtIO Console"
24-
select RT_USING_VIRTIO
19+
select BSP_USING_VIRTIO
2520
select RT_USING_VIRTIO_CONSOLE
2621
default y
27-
depends on BSP_USING_VIRTIO
2822

2923
config BSP_USING_VIRTIO_GPU
3024
bool "Using VirtIO GPU"
31-
select RT_USING_VIRTIO
25+
select BSP_USING_VIRTIO
3226
select RT_USING_VIRTIO_GPU
3327
default y
34-
depends on BSP_USING_VIRTIO
3528

3629
config BSP_USING_VIRTIO_INPUT
3730
bool "Using VirtIO Input"
38-
select RT_USING_VIRTIO
31+
select BSP_USING_VIRTIO
3932
select RT_USING_VIRTIO_INPUT
4033
default y
41-
depends on BSP_USING_VIRTIO
4234

4335
endmenu

bsp/qemu-virt64-riscv/driver/SConscript

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ from building import *
44

55
cwd = GetCurrentDir()
66
src = Glob('*.c')
7-
CPPPATH = [cwd]
7+
CPPPATH = [cwd, cwd + "/virtio"]
88

99
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
1010

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
menuconfig BSP_USING_VIRTIO
2+
bool "Using VirtIO device drivers"
3+
default n
4+
depends on RT_USING_DEVICE_OPS
5+
6+
if BSP_USING_VIRTIO
7+
choice RT_USING_VIRTIO_VERSION
8+
prompt "VirtIO Version"
9+
default RT_USING_VIRTIO10
10+
11+
config RT_USING_VIRTIO10
12+
bool "VirtIO v1.0"
13+
endchoice
14+
15+
config RT_USING_VIRTIO_MMIO_ALIGN
16+
bool "Using VirtIO MMIO alignment"
17+
default y
18+
19+
config RT_USING_VIRTIO_BLK
20+
bool "Using VirtIO BLK"
21+
default y
22+
23+
config RT_USING_VIRTIO_NET
24+
bool "Using VirtIO NET"
25+
default y
26+
27+
menuconfig RT_USING_VIRTIO_CONSOLE
28+
bool "Using VirtIO Console"
29+
default y
30+
31+
if RT_USING_VIRTIO_CONSOLE
32+
config RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR
33+
int "Max number of port in VirtIO Console"
34+
default 4
35+
endif
36+
37+
config RT_USING_VIRTIO_GPU
38+
bool "Using VirtIO GPU"
39+
default y
40+
41+
config RT_USING_VIRTIO_INPUT
42+
bool "Using VirtIO Input"
43+
default y
44+
endif
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# RT-Thread building script for component
2+
3+
from building import *
4+
5+
cwd = GetCurrentDir()
6+
src = Glob('*.c')
7+
CPPPATH = [cwd]
8+
9+
group = DefineGroup('DeviceDrivers', src, depend = ['BSP_USING_VIRTIO'], CPPPATH = CPPPATH)
10+
11+
Return('group')

0 commit comments

Comments
 (0)