实验室坏了一台台式机,无法启动,所以想diy个主板诊断卡,但是网上查了很多资料还是对诊断卡的原理不是很清除,最后还是直接买了块小卡修了电脑。。修好后还是不甘心,想了解下诊断卡的原理,再diy一个。
网上对诊断卡的原理介绍是通过PCI总线读取IO空间80H地址处的post code。
但是我不清楚诊断卡到底是以何种方式获得的呢?
查过计算机启动初期的资料,PCI设备是在开机自检的最后阶段才完成初始化,分配IO空间,存储空间等,那应该在这之前诊断卡就无法工作的啊,为什么实际上它能读出在这之前的post code呢?
另外,PCI总线是否在上电后就能够使用?诊断卡是只要“监听”PCI总线上对80H地址的写操作(假设BIOS对IO空间的写操作可以反映在PCI总线上,实际上貌似各种总线,甚至电池的IIC都能做成相应的诊断卡,这令人很费解。。),还是要主动进行对IO空间的读操作获取post code?
求大侠指教诊断卡的具体工作原理!
下图是我买的诊断卡实例,上面用的是lattice的cpld,查过是32个宏单元的,所以肯定只是实现一部分PCI协议。
|