【发布时间】:2017-12-17 00:48:09
【问题描述】:
维基百科说:
要寻址 PCI 设备,必须通过映射到系统的 I/O 端口地址空间或内存映射地址空间来启用它。系统的固件、设备驱动程序或操作系统对基地址寄存器(通常称为 BAR)进行编程,以通过向 PCI 控制器写入配置命令来通知设备其地址映射。
这是否意味着当地址写入 BAR 时 PCI 设备会被初始化?我正在尝试通过裸机在 Qemu Aarch64 上初始化 Bochs VGA 卡,这就是我要问的原因。谢谢!
【问题讨论】:
维基百科说:
要寻址 PCI 设备,必须通过映射到系统的 I/O 端口地址空间或内存映射地址空间来启用它。系统的固件、设备驱动程序或操作系统对基地址寄存器(通常称为 BAR)进行编程,以通过向 PCI 控制器写入配置命令来通知设备其地址映射。
这是否意味着当地址写入 BAR 时 PCI 设备会被初始化?我正在尝试通过裸机在 Qemu Aarch64 上初始化 Bochs VGA 卡,这就是我要问的原因。谢谢!
【问题讨论】:
写入 BAR 只是告诉设备它应该响应的地址范围。 (它甚至不能使设备响应地址;为此,您需要设置 MSE [内存空间启用]。)初始化设备通常需要许多步骤。一些步骤对于不同的 PCI 设备是通用的,而另一些则完全是特定于设备的。
【讨论】: