
On 03/04/2011 05:27 PM, Andre Schwarz wrote:
All,
sorry to bother you again. After my harddisk died I'm porting my latest 8377 work to TOT. Unfortunately I'm lacking some commits that haven't been pushed to backup.
But everything's fine so far and the system is up and running, except PCIe.
Using the "old" binary left on the server PCIe has been working fine :
U-Boot 2010.12-rc1-00596-gcef659f-dirty (Nov 22 2010 - 17:22:20) MPC83XX ... PCIE1: link
and the Wifi card is present and usable by Linux.
=> pci 2 Scanning PCI devices on bus 2 BusDevFun VendorId DeviceId Device Class Sub-Class _____________________________________________________________ 02.00.00 0x168c 0x001c Network controller 0x00
With latest code running on the *same piece of hardware*
U-Boot 2011.03-rc1-00129-g1ce1ed1-dirty (Mar 04 2011 - 16:31:40) MPC83XX
I get "PCIE1: No link"
Dumping SerDes (e3000 + e3100) and PCIe core (400-7ff) registers shows now difference between both versions.
Any ideas what might be responsible for the link not being established ?
got it - solution is somewhat unrelated but quite annoying :
serdes setup has been done twice :
1. during board_early_init_f 2. during pci_init_board
Although CONFIG_BOARD_EARLY_INIT_F has been defined in the board-config.h the function is not called - don't know why. serdes needs some time to establish a link and the delay between serdes and pcie setup within pci_init_board has been to small. This is why the registers always looked fine.
Now I do an early serdes init during DDR setup and everything works fine.
sorry for the noise.
Cheers, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner