阅读:1247回复:2
SCO驱动地址映射急问
在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; 请大侠指教! |
|
沙发#
发布于:2003-03-06 10:56
映射的地址在pci_transbase函数的第一个变量
|
|
|
板凳#
发布于: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; 当然,可能字节顺序有正反。 |
|