On Wednesday 18 August 2010, Ramon wrote:
> Hi,
>
> In order to introduce myself to RTDM and driver development in
> Xenomai, I'm trying to develop a simple "driver"
> for an advantech PCI-1711 card.
>
> First thing I need to do is obtaining the PCI base address of the
> card. To do this I used an old code I already have :
>
> struct pci_dev *pcidev;
>
> printk("PCI-1711 DETECT PCI \n");
> pcidev=NULL;
> pcidev =pci_get_device (PCI_VENDOR_, PCI_DEVICE_, pcidev );
> if (pcidev==NULL){
>       printk("PCI-1711 CANNOT BE FOUND \n");
> }
> else{
>      printk("PCI-1711 LOCATED \n");
>      if (pci_enable_device(pcidev)){
>        printk("PCI-1711 NOT ENABLED \n");
>        return(-EIO);
>      }
>      else{
>          printk("PCI-1711 ENABLED \n");
>       }
>      PCI_BASE_ADRESS_1711= pci_resource_start(pcidev, 1)&   
> PCI_BASE_ADDRESS_MEM_MASK; printk("PCI-1711 DETECT PCI %x
> \n",PCI_BASE_ADRESS_1711); }
>
>
>
> Unfortunatelly PCI_BASE_ADRESS_1711 always takes de 0 value.
>
> Is this type of code already valid in current linux kernels ?
> Could anyone point me to a similar code ?
>
> Thank you in advance
> Ramon

Are you sure you have the right BAR for this card ?
Refering to the Comedi driver, they use pci_resource_start(pcidev, 2) to 
obtain the IO base address (without using PCI_BASE_ADDRESS_MEM_MASK).

Regards, Paul.

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to