阅读:1756回复:3
放分求教,在操作系统启动前如何使用PCI桥芯片的基址积存器(9052)想在操作系统其动前对PCI卡上的器件做些设置,现在能把基址寄存器 的值读出来,但是在使用的时候有点问题: 我是这样做的,把DS置为基址寄存器的值,再加上偏移量去访问自己的 板卡,可是访问不了,有哪位大哥知道为什么吗? |
|
沙发#
发布于:2004-02-12 18:55
在OS运行之前是肯定可以访问的PCI器件,不要说是OS就是BIOS运行之前都可以,如果你愿意完成BIOS对PCI设备的初始化的话。
但是你失败了,根据你提供的信息,可能是: 1、I/O资源,你使用了内存访问方法――只是我猜罢了。 2、是内存资源,你使用的也是内存访问方法,但失败了。原因只能是,你处于实模式,但内存资源在1M(16M)以上(BIOS就是这样干的,为了避开与物理内存地址相重,为PCI设备分配的内存地址大于物理内存) 3、。。。。。。 |
|
|
板凳#
发布于:2004-02-12 18:56
3、是BIOS还没有初始化PCI设备,你也忒早了点。――真的是这样吗?
|
|
|
地板#
发布于:2004-03-07 15:38
我觉得可能是第二种,可是我不会写保护模式的程序啊~~~~
后来改用io方式读写,算是避免了,可是,我最近发现,这个跟还挑机 器,说白了就是跟主板BIOS有关,我现在最怕就是在有的机器上会发生 第三种情况,如果是第三种情况的话有生什么方法可以解决呢? |
|