阅读:1008回复:3
怎么会得到80h和00000300h呢?(急救!!)
各位老大:
下面怎么会得到80h和00000300h呢? For example, the first base address register returns FFFFFF81h indicating an I/O space (D0=1) of size 80h. This means that the 5920’s internal registers can be selected for I/O addresses between 00000300h through 0000037Fh, in this example. (example 300h, 380h etc.; 338h, 340h would not be allowable). 注:base address register 是PCI配置空间的基址寄存器 请各位老大帮忙! [编辑 - 5/27/03 by rwx12345] |
|
沙发#
发布于:2003-05-28 01:04
你的文字好像不完整。前面应该还有一段。根据你提供的部分文字,这个寄存器直接读出来应该是0x00000301。1表明是I/O。如果写0xffffffff到这个寄存器,然后再读回来,得到0xffffff81。去掉bit0,0xffffff80。取反得0x0000007f。说明地址偏移量的范围是0~0x7f。
|
|
板凳#
发布于:2003-06-03 16:47
多谢楼上的老大!
感激不尽!! |
|
地板#
发布于:2003-06-08 10:51
laoda:
直接读出来的0x00000301是如何得到的?是我们首先在该位置写入I/O区域大小(0XFFFFFF81H)然后系统BOOT LOAD读进去后,系统根据请求分配相应大小区间,再将分配区间首地址写入该基址寄存器而得到的吗?它写入的是0x00000301还是0x0000030?再问一下:BARD0的地址是谁的首地址?谢谢 |
|