PCI lookup issue: 3c905C-TX not found by RTEMS.

Till Straumann strauman at slac.stanford.edu
Tue Jan 18 20:48:40 UTC 2005


Karel Gardas wrote:


I had problems with the BSP_pciFindDevice implementation, too.
I simply added a wrapper around pcib_find_by_devid()
(BSP_pciFindDevice API exists for sake of compatibility with
the PowerPC/shared BSPs):

Try

int
BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,
                    int instance, int *pbus, int *pdev, int *pfun )
{
    int sig, rval;

    rval = pcib_find_by_devid(vendorid, deviceid, instance, &sig);

    if ( PCIB_ERR_SUCCESS == rval ) {
         *pbus = PCIB_DEVSIG_BUS(sig);
         *pdev = PCIB_DEVSIG_DEV(sig);
         *pfun = PCIB_DEVSIG_FUNC(sig);
    }

    return rval;
}

HTH
-- Till

> On Tue, 18 Jan 2005 gregory.menke at gsfc.nasa.gov wrote:
> 
> 
>>Karel Gardas writes:
>> >
>> > Any hack I should try?
>> >
>>
>>What devices does the pci find device function discover?  The thing to
>>look for is if the device discovery proceeds onto the pci backplane.
> 
> 
> With the patch below, I've got this listing for 10b7/9200 device:
> 
> BSP_pciFindDevice: vendor(10B7)/device(9200)
> 
> BSP_pciFindDevice: found 0x00497E48 at 0/0/0
> BSP_pciFindDevice: found 0x00497E48 at 0/1/0
> BSP_pciFindDevice: found 0x00497E48 at 0/2/0
> BSP_pciFindDevice: found 0x00497E48 at 0/3/0
> BSP_pciFindDevice: found 0x00497E48 at 0/4/0
> BSP_pciFindDevice: found 0x00497E48 at 0/5/0
> BSP_pciFindDevice: found 0x00497E48 at 0/6/0
> BSP_pciFindDevice: found 0x00497E48 at 0/7/0
> BSP_pciFindDevice: found 0x00497E48 at 0/8/0
> BSP_pciFindDevice: found 0x00497E48 at 0/9/0
> BSP_pciFindDevice: found 0x00497E48 at 0/10/0
> BSP_pciFindDevice: found 0x00497E48 at 0/11/0
> BSP_pciFindDevice: found 0x00497E48 at 0/12/0
> BSP_pciFindDevice: found 0x00497E48 at 0/13/0
> BSP_pciFindDevice: found 0x00497E48 at 0/14/0
> BSP_pciFindDevice: found 0x00497E48 at 0/15/0
> not found...
> 
> Any idea?
> 
> Thanks,
> Karel
> --
> Karel Gardas                  kgardas at objectsecurity.com
> ObjectSecurity Ltd.           http://www.objectsecurity.com
> 
> Index: c/src/lib/libbsp/i386/shared/pci/pcibios.c
> ===================================================================
> RCS file: /usr1/CVS/rtems/c/src/lib/libbsp/i386/shared/pci/pcibios.c,v
> retrieving revision 1.3.2.2
> diff -u -r1.3.2.2 pcibios.c
> --- c/src/lib/libbsp/i386/shared/pci/pcibios.c	27 Sep 2004 21:49:18 -0000	1.3.2.2
> +++ c/src/lib/libbsp/i386/shared/pci/pcibios.c	18 Jan 2005 20:15:41 -0000
> @@ -281,11 +281,13 @@
>  BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,
>                     int instance, int *pbus, int *pdev, int *pfun )
>  {
> +#define PCI_DEBUG 1
>     int sig;
>     unsigned int d;
>     unsigned short s;
>     unsigned char bus,dev,fun,hd;
> -
> +printk("BSP_pciFindDevice: vendor(%x)/device(%x)\n", vendorid, deviceid);
> +getchar();
>     for (bus=0; bus<BusCountPCI(); bus++)
>     {
>        for (dev=0; dev<PCI_MAX_DEVICES; dev++)
> @@ -323,11 +325,13 @@
>                 *pbus=bus;
>                 *pdev=dev;
>                 *pfun=fun;
> +printk("SUCCESS\n");
>                 return 0;
>              }
>           }
>        }
>     }
> +printk("not found...\n");
>     return -1;
>  }
> 





More information about the users mailing list