[U-Boot-Users] Help debugging a PCI scanning problem

Richard Danter richard.danter at ntlworld.com
Mon Jul 11 21:41:17 CEST 2005

Richard Danter wrote:
> Hi all,
> I have almost completed the porting of U-Boot to my 7400/107 board. I am
> now able to boot from flash, tftpload the hello_world example and run
> it.  :)
> However, there is a hack which I don't like and hope maybe someone can
> suggest why I need it and what the _correct_ solution is.
> When eepro100_initialize() is called it loops scanning the PCI bus for
> cards. I have such a card and it is found with no problems. The card is
> initialised correctly which is how I am able to tftpload the example.
> The problem comes after it has initialised the card. It looks for a
> second card and this seems to crash the system.
> For the moment I have added the following to the end of the
> eepro100_initialize() function:
>         read_hw_addr (dev, bis);
> #ifdef CONFIG_PPMC7xx
>         /* RAD
>          * FixMe: This prevents a crash but means only
>          *        one network card can be installed
>          */
>         break;       
> #endif
>     }
>     return card_number;
> }
> which works.

A better workaround is to change the code in drivers/pci.c 
pci_find_devices() to loop through the devices and functions up to max-1 
as the ELPPC does.

So whatever the problem, it has been seen before. This new solution 
works for 0, 1 or 2 cards plugged in! I would still like to understand 
why this is required though.

> I can scan the bus with the "pci" command and get the following results.
> Obviously the network controller Dev number changes depending on which
> slot it is inserted into:
> => pci
> Scanning PCI devices on bus 0
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 00.00.00   0x1057     0x0004     Bridge device           0x00
> 00.11.00   0x8086     0x1030     Network controller      0x00
> 00.12.00   0x1011     0x0026     Bridge device           0x04
> =>
> There are only 2 slots on this board. The ethernet card works in either
> of them. The crash seems to happen within the pci_find_devices()
> function. Any suggestions how I can debug this?
> Many thanks
> Rich
> -------------------------------------------------------
> This SF.Net email is sponsored by the 'Do More With Dual!' webinar 
> happening
> July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
> core and dual graphics technology at this free one hour event hosted by HP,
> AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users

More information about the U-Boot mailing list