NotePublic/Software/OperatingSystem/Virtualization/SoftVirtualization/Virtio.md

54 lines
1.9 KiB
Markdown
Raw Normal View History

2018-12-06 11:31:15 +08:00
# [Draft] Virtio
## 1、基本概念
2018-12-06 11:31:15 +08:00
<https://www.ibm.com/developerworks/cn/linux/1402_caobb_virtio/>
<https://www.ibm.com/developerworks/cn/linux/l-virtio/index.html>
## 2、系统结构
## 3、Virtio 设备
2018-12-06 11:10:39 +08:00
## 3.1、Virtio 设备类型
2018-12-06 11:10:39 +08:00
主要分为 PCI 设备和非 PCI 的 mmio 设备。mmio 设备属于 Platform 设备,通过向 kernel 提供
2018-12-06 11:10:39 +08:00
virtio_mmio.device=<size>@<baseaddr>:<irq>[:<id>]
2018-12-06 11:10:39 +08:00
启动参数来让内核感知到设备存在,其中:
<size> := size (can use standard suffixes like K, M and G)
<baseaddr> := physical base address
<irq> := interrupt number (as passed to request_irq())
<id> := (optional) platform device id
使用 virtio mmio 内核参数的示例如下:
2018-12-06 11:10:39 +08:00
virtio_mmio.device=1K@0x100b0000:48:7
可以多次使用该内核参数来指定不同的 virtio mmio 设备。
非 mmio 设备有 Legacy 和 Modern 两种类型,这两种类型设备是通过 PCI 总线枚举而感知到虚拟设备存在的。如果在加载 virtio pci 设备模块时强制使用 Legacy 设备,则优先按 Legacy 设备进行加载,如果加载失败则按 Modern 设备加载。否则优先使用 Modern 设备加载。
2018-12-06 11:31:15 +08:00
Legacy 设备使用 CONFIGURATION ADDRESS0xCF8 和 CONFIGURATION DATA PORT0xCFC来进行设备访问CAMModern 设备使用 ENHANCED 方式进行设备访问ECAM。参见《PCI_Configuration_Register_Access》。
2018-12-06 11:10:39 +08:00
其他还有 virtio vop 设备和 virtio ccw 设备vop 设备指 Intel Virtio Over PCIe (VOP) driverccw 指 Concurrent I/O (CIO) 设备。virtio vop 和 virtio ccw 是分别属于这两种类型的 virtio 设备。
## 4、Virtqueue
## 5、Network Device
## 6、Block Device
## 7、Console Device
## 8、Entropy Device
## 9、Traditional Memory Balloon Device
## 10、SCSI Host Device
## 11、Reserved Feature Bits
## 12、Creating New Device Types