- 论坛徽章:
- 0
|
原帖由 zx_wing 于 2007-10-31 10:37 发表
bluesky_jxc兄是很懂PCI的,昨天他给我指出了什么时候BIOS不会枚举设备留给kernel去做的情况。
估计他把一些细节理明白了就会发上来。我就不班门弄斧了。
我列出来一些点,希望大家多多讨论
1. Add-in bus,就是我在一个PCI设备卡上自行做了一个PCI桥,由于BIOS是Platform相关的,它不会去检查这种类型的设备的。当kernel启动时,kernel会完成这些任务。当然,这就要求Add-in的卡必须满足标准要求,最关键的就是中断线的连接了。PCI标准并没有规定中断线一定要怎么连接,但是要kernel能够为Add-in的卡正确分配irq,那么必须按照标准的推荐方法连接。
2.兼容性考虑。kernel是不完全相信PCI bios的,在早期,很多PCI虽然有32位的地址总线,但是很多设备其实只用了24位有效地址总线。这个时候,如果PCI bios按照顺序来分配地址空间,这些设备可能不能分配到低的16M,Kernel会查看其他占用这些内存空间的设备是否允许资源重新配置,也就是说是否可以将内存挪到大于16M空间,如果可以,那么这些老式的设备就可以分配到合适的内存空间了,那么就可以实现同时使用,否则,总有一个会被禁止。当然,现在几乎没有这种只用24位地址线的设备了,但是为了兼容性考虑,内核不得不对其进行处理
3.一些IO端口,和内存空间比起来,IO可以说是最麻烦的了,因为几乎所有的I/O端口都不允许进行重新配置。如果两个设备之间冲突,那么必然有一个不能使用。
欢迎大家讨论 |
|