本文内容转载自:Qemu X86架构的Machine Type

QEMU支持的X86架构非常少,在Q35出现之前,就只有诞生于1996年的I440FX/PIIX一个架构。Intel不断推出新的芯片组, 加入了PCIe、AHCI等等。I440FX已经无法满足需求,为此,在 KVM Forum 2012 上,Jason Baron带来了 A New Chipset For Qemu - Intel’s Q35

1. Q35 vs. I440FX

Q35是Intel在2007年9月推出的芯片组。

Topology of I440FX/PIIX4 Vs. Q35

  • Q35 has IOMMU
  • Q35 has PCIe
  • Q35 has Super I/O chip with LPC interconnect
  • Q35 has 12 USB ports
  • Q35 SATA vs. PATA

IRQ Routing I440FX/PIIX4 Vs. Q35

  • Q35 PIRQ has 8 pins - PIRQ A-H
  • Q35 has two PIC modes – legacy PIC vs I/O APIC
  • Q35 runs in I/O APIC mode
  • Slots 0-24 are mapped to PIRQ E-H round robin
  • PCIe Bus to PIRQ mappings can be programmed
    • Slots 25-31
  • Q35 has 8 PCI IRQ vectors available, I440FX/PIIX4 only 2

I440FX/PIIX4 vs. Q35 devices

  • AHCI vs. Legacy IDE
  • PCI addresses
  • Populate slots using flags
  • Default slots

2. i440fx/PIIX架构

Intel 440FX是北桥芯片,用于连接主板上的高速设备。向上可以连接多个处理器;向下则主要提供了连接DRAM的接口和连接PCI总线的接口(通过PCI Host Bridge), 通过该PCI root port扩展出整个PCI设备树,包括PIIX南桥芯片。

PIIX是南桥芯片,用于连接主板上的低速设备,主要包括IDE控制器、DMA控制器,USB控制器, SMBus总线控制器,X-Bus控制器,USB控制,PIT(Programmable Interval Timer), RTC(Real Time Clock,实时时钟), PIC(可编程中断控制器)等,并且提供ISA bridge连接ISA总线,用于连接更多的低速设备。

3. Q35架构

北桥为GMCH(Graphics and Memory Controller Hub),南桥为ICH9(I/O Controller Hub)。CPU 通过前端总线(FSB)连接到GMCH;GMCH连接内存,显卡,高速PCIe接口等;南桥芯片则为USB,低速PCI / SATA 等提供接入。

4. list QEMU supported machines

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
kvm@kvm:~$ qemu-system-x86_64 -machine help
Supported machines are:
pc Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-4.0)
pc-i440fx-4.0 Standard PC (i440FX + PIIX, 1996) (default)
pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-3.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.9 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.8 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.7 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.6 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.5 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.4 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.3 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.12 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.11 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.10 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
pc-1.3 Standard PC (i440FX + PIIX, 1996)
pc-1.2 Standard PC (i440FX + PIIX, 1996)
pc-1.1 Standard PC (i440FX + PIIX, 1996)
pc-1.0 Standard PC (i440FX + PIIX, 1996)
pc-0.15 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.14 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.13 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.12 Standard PC (i440FX + PIIX, 1996) (deprecated)
q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-4.0.1)
pc-q35-4.0.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.9 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.8 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.7 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.6 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.5 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.4 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.12 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.11 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.10 Standard PC (Q35 + ICH9, 2009)
isapc ISA-only PC
none empty machine

参考资料:

  1. A New Chipset For Qemu - Intel’s Q35
  2. QEMU学习笔记——Q35