jfluo
驱动牛犊
驱动牛犊
  • 注册日期2008-10-07
  • 最后登录2010-02-08
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1986回复:0

【求助】PCI9052 Linux驱动问题

楼主#
更多 发布于:2010-02-08 13:12
 各位大侠,我现在在做RT-Linux下驱动开发,主要的工作大致是现在Linux下做好,然后移植进RT-Linux中。因为项目需要PCI通信,买的一个接口板是PCI9052的芯片,在看源代码中,(如下所示):

                   if( pci_resource_start( pciptr, 1 ) & 0x0080) {
                        if( pci_resource_start( pciptr, 5 ) & PCI_COMMAND_IO ){
                            modBaseAddr = pci_resource_start( pciptr, 5 );
                        }else{
                            modBaseAddr = ( pci_resource_start( pciptr, 2 )+0x100) & 0xFF00 ;
                        }
             pci_write_config_dword( pciptr, PCI_BASE_ADDRESS_1, modBaseAddr );
                         pcibios_write_config_dword( pciptr->bus->number, pciptr->devfn, PCI_BASE_ADDRESS_1, modBaseAddr );
                    }
                    baseAddr = pci_resource_start( pciptr, 2 );
                    lcrBase = pci_resource_start( pciptr, 1 );
                    temp_pci_info->Address0 = (lcrBase & ~(0x00ff)) ;
                    temp_pci_info->Address1 = (baseAddr & ~(0x00ff)) ;

我的问题是:1.pci_resource_start( pciptr, 1 ) 读取的应该是PCI BAR1的值,和 0x0080 ”与“   目的是什么呢?
                        2.pci_write_config_dword( pciptr, PCI_BASE_ADDRESS_1, modBaseAddr )写的应该还是PCI BAR1,写的值是不是分配给Local Address Space 0 Range的范围??(因为偏移量为0)
                        3.弱弱的问下:pci_write_config_dwordpcibios_write_config_dword是不是一样???

最近也一直在看9052 datasheet,对配置空间和内存空间,IO空间概念也不是很明白。问题可能问的不是很明白,希望大家能谅解:)

游客

返回顶部