cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wmaguire
Explorer
Explorer
6,576 Views
Registered: ‎06-21-2013

FSBL SD Boot problems with Vivado 2015.2

Hi all,

 

We recently upgraded from Vivado 2014.2 to Vivado 2015.2 and see issues with the SD card booting, in particular the FSBL code.  We have had no issues with the 2014.2 suite in this area.  There appears to be 2 problems.  We use 32GByte SanDisk Ultra SD Cards.  Single stepping the fsblcode

we note that we are unable to set it to 400kHz.  We can pass this point if we set it to 50 MHz ie use XSDPS_CLK_50_MHZ.

 

/*
* Change the clock frequency to 400 KHz
*/
Status = XSdPs_Change_ClkFreq(InstancePtr, XSDPS_CLK_400_KHZ);
if (Status != XST_SUCCESS) {
Status = XST_FAILURE;
goto RETURN_PATH ;

 

The second issue is in the file ff.c  with the check

if ((stat & STA_NOINIT) != (BYTE)0U) { /* Check if the initialization succeeded, used to be (BYTE)0U) */
return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
}

 

As can be seen from the debug window the stat = 0, the expression (BYTE) 0U = 0 but the test 

((stat & STA_NOINIT) != (BYTE)0U)

Fails.

 

The device we are using is the xc7z045ffg676-1.

 

Looks like there maybe a compiler bug.

 

Regards

 

 

Walter

 

 

 



 

Screenshot 2015-09-29 15.58.31.png
0 Kudos
1 Reply
wmaguire
Explorer
Explorer
6,570 Views
Registered: ‎06-21-2013

Hi All,

 

Last bit of the previous post covering the stat test is incorrect.  The debugger does indicate that it enters this line of code by highlighting it but it actually doesn't enter it.

 

It now boots the SD Ultra card if I make sure to change the 400kHz to 50MHz.

 

The problem is, why did it work for 2014.2 without this change.  Was the speed reduced for the initial SD card transactions?

 

Regards

 

 

Walter

0 Kudos