PCIe locks CPU on IMX6Q+

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PCIe locks CPU on IMX6Q+

496 Views
stoner
Contributor I

I have 2 identical pcds.  The boards are identical except one has a IMX6Q and the other a IMX6Q+ processor. Using the same SD card to boot both machines (therefore the code is identical) one processor load PCIe and it works and will print out the pci -v information.  The other board does not completely boot and hangs when it tries to find the physical link.

The code in question is as follows: 

/* wait for the physical link to start */ 
static int pcie_wait_link_up(imx6x_dev_t *pdev, int wait_ms) 
{ 
uint32_t val; 
int count; 

// Fix for POR 0000270 : PCI driver hangs when re-started after being slayed 
// We need to allow time for the link to settle before reading the DB_R1 register 
// otherwise the system will hang. 
delay(100); 

count = wait_ms; 
#ifdef PCI_DEBUG 
printf( "pcie_wait_link_up %d addr=0x%X\n", count, pdev->pci_dbi_base + DB_R1 ); 
#endif 
do 
{ 
val = in32(pdev->pci_dbi_base + DB_R1) & (0x1 << (36 - 32)); // link is debug bit 36 debug 1 start in bit 32 
delay(1); 
count--; 
} while ( !val && ((count > 0) || (wait_ms == 0)) ); 

if (!val) 
return -1; 

return 0; 
} 

It never returns from the in32 as I have put a debug statement following it that never happens. This kills every other process on the unit also. 

Please let me know what you would like to help resolve this issue. We need to get this solved as soon as possible. Thanks so much.

0 Kudos
1 Reply

342 Views
igorpadykov
NXP Employee
NXP Employee

Hi Steve

please look at solutions provided on

IMX6Q: Linux boot halts at PCIe config space read 

pcie works fine on latest nxp official releases described on

http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i....

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos