rocklake
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1245回复:2

SCO驱动地址映射急问

楼主#
更多 发布于:2003-01-16 13:33
在SCO下,获得pci基地址寄存器的值后,例如是e3000000,
按道理是要将这个地址再映射一把,其中提到了函数pci_transbase
描述如下:
int pci_transbase(unsigned long *iobase, struct pci_devinfo *infoptr);
Description
The pci_transbase( ) function remaps an I/O base address to a value that can
 be used on the PCI bus specified in the busnum member of the pci_devinfo(D4
oddi) structure
其中pci_devinfo结构为
struct pci_devinfo{ unsigned short slotnum; unsigned short funcnum; unsigne
d short busnum; };
返回值1代表映射成功,0表示失败,那么映射后的地址放在哪个参数中传出呢,不懂
若不映射,直接对该地址写0,读出为全f,比如我对该地址的某偏移408处读写
outd(0x0000,0xe3000408);
ind(0xe3000408);的结果就是FFFFFFFF;
请大侠指教!
george
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-24 14:55
用pci_config_get32(conf_handle, PCI_CONF_BASE0)读,我认为直接用指针就行了。
如pci_base0 = pci_config_get32(conf_handle, PCI_CONF_BASE0);
  data=*pci_base0;
当然,可能字节顺序有正反。
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-06 10:56
映射的地址在pci_transbase函数的第一个变量
second
游客

返回顶部