[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