阅读:3267回复:4
BIOS代码关于PCI设备初始化讨论
问大家一个问题,在bios刚开始运行时,bios是怎么通过北桥,南桥遍历到南桥上的设备的(也就是说BIOS代码怎么知道南桥上有设备)。这个问题我一直没论明白
|
|
沙发#
发布于:2005-05-24 15:10
从bus number0-255
device number 0-31 function number 0-7 挨倒挨倒找撒。。。 有设备的就有厂商的号。。。。 |
|
板凳#
发布于:2005-05-25 11:02
啊,那个EFI架构层次太多了,太难看懂
1)也就是说 在所有的BIOS代码还没有运行前, 那个256 byte的配置寄存器的值就是那些specs上说的 default值? 2)是否等BIOS 遍历完设备之后,BIOS就会初始化该256 byte的配置寄存器的值? 3)比如 256 byte的配置寄存器 中IO和 baseaddress 的值是否由BIOS 初始化,还是option Rom中的代码初始化 4)那个option Rom的代码到底干吗用? 这下问了好多问题,谢谢了 |
|
地板#
发布于:2005-05-25 12:16
1)也就是说 在所有的BIOS代码还没有运行前,
那个256 byte的配置寄存器的值就是那些specs上说的 default值? (对啊,pci上电就有default值) 2)是否等BIOS 遍历完设备之后,BIOS就会初始化该256 byte的配置寄存器的值? (配置该配置的,不会都改的) 3)比如 256 byte的配置寄存器 中IO和 baseaddress 的值是否由BIOS 初始化,还是option Rom中的代码初始化 (由bios,option rom应该包含一些设备的代码,可能提供一些function来用,也可能对寄存器做一些操作哈) 4)那个option Rom的代码到底干吗用? (我的理解就是设备的功能程序代码,供应商不想提供原代码,就提供写好的代码,如果我们自己想做一些设备功能,也可以包option rom进去。进去跑,就象跑一个黑匣子的东西一样。) |
|
地下室#
发布于:2005-05-26 10:55
pci bios 实际上也是一种function call,就象你写pnp function call一样,就是bios提供给外部的一些程序接口,你可以用找字串的方式找到程序入口,如你列举的服务;这些服务在bios中会写好,之后回写到e000:0-f000:0中。。。
|
|