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

Richard Danter richard.danter at ntlworld.com
Mon Jul 11 19:02:30 CEST 2005


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.

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




More information about the U-Boot mailing list