qemu 规范路径_QEMU学习笔记

本文详细解析了QEMU中Q35架构的组成,包括北桥MCH和南桥ICH9,以及它们如何连接CPU、内存、PCI-e等。通过QEMU的`info qtree`命令,展示了Q35的设备拓扑结构,并解释了系统总线、IOAPIC、PCI主机和南桥之间的关系。此外,讨论了设备关系的两种类型:挂载关系和组合树+关联关系,以及如何通过QOM对象和link属性建立设备间的联系。
摘要由CSDN通过智能技术生成

QEMU支持的架构非常少,在Q35出现之前,就只有诞生于1996年的i440FX + PIIX一个架构在苦苦支撑。一方面是Intel不断推出新的芯片组,搞出了PCIe、AHCI等等新东西。i440FX已经无法满足需求,为此在 KVM Forum 2012 上Jason Baron带来了PPT:A New Chipset For Qemu - Intel's Q35。Q35是Intel在2007年6月推出的芯片组,最吸引人的就是其支持PCI-e。

根据Intel Q35文档,Q35的拓扑结构如图所示:

可见其北桥为MCH,南桥为ICH9。CPU 通过 前端总线(FSB) 连接到 北桥(MCH),北桥为内存、PCIE等提供接入,同时连接到南桥(ICH9)。南桥为 USB / PCIE / SATA 等提供接入。

Q35 拓扑结构

那么在QEMU中实现的Q35拓扑结构是否真的如上图所示呢?我们在 QEMU 中通过 info qtree 查询,简化后的结构为:

(qemu) info qtree

bus: main-system-bus

dev: hpet, id ""

gpio-in "" 2

gpio-out "" 1

gpio-out "sysbus-irq" 32

dev: ioapic, id ""

gpio-in "" 24

version = 32 (0x20)

dev: q35-pcihost, id ""

bus: pcie.0

type PCIE

dev: e1000, id ""

dev: VGA, id ""

dev: ICH9 SMB, id ""

dev: ich9-ahci, id ""

bus: ide.5

type IDE

bus: ide.4

type IDE

bus: ide.3

type IDE

bus: ide.2

type IDE

dev: ide-cd, id ""

bus: ide.1

type IDE

bus: ide.0

type IDE

dev: ide-hd, id ""

drive = "ide0-hd0"

dev: ICH9-LPC, id ""

gpio-out "gsi" 24

bus: isa.0

type ISA

dev: i8257, id ""

dev: i8257, id ""

dev: port92, id ""

gpio-out "a20" 1

dev: vmmouse, id ""

dev: vmport, id ""

dev: i8042, id ""

gpio-out "a20" 1

dev: isa-parallel, id ""

dev: isa-serial, id ""

dev: isa-pcspk, id ""

iobase = 97 (0x61)

dev: isa-pit, id ""

gpio-in "" 1

gpio-out "" 1

dev: mc146818rtc, id ""

gpio-out "" 1

dev: isa-i8259, id ""

gpio-in "" 8

gpio-out "" 1

master = false

dev: isa-i8259, id ""

gpio-in "" 8

gpio-out "" 1

master = true

dev: mch, id ""

dev: fw_cfg_io, id ""

dev: kvmclock, id ""

dev: kvmvapic, id ""

注意dev和bus是交替出现的,更加简化的设备图如下:

bus dev bus dev bus dev

main-system-bus - ioapic

- q35-pcihost - pcie.0 - mch

- ICH9-LPC - isa.0 - isa-i8259

- ICH9 SMB

- ich9-ahci

- VGA

- e1000

- ...

由于对硬件和架构的不熟悉,这里反反复复研究了一天才有点眉目。我的理解如下:

main-system-bus 就是系统总线,ioapic直接连到系统总线上,符合我们对IOAPIC的认知,在q35架构图CPU为 Core 和 Pentium Pentium E2000 系列,而根据文档,Intel自从Pentium4/Xeon后就取消了APIC bus,换用系统总线。

但让我纠结的是,mch为什么会连到 pcie.0 上ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值