[U-Boot] MPC837x PCIe no link
Andre Schwarz
andre.schwarz at matrix-vision.de
Thu Mar 10 16:38:07 CET 2011
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
More information about the U-Boot
mailing list