UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
440 Views
Registered: ‎09-01-2010

NOR Flash Boot needs JTAG to run

Hi,

I have modified the first stage bootloader provided by Xilinx to use NOR flash as golden image.

When I step through the code in the debugger, using JTAG, all works as it should.

But, when I try to run without the debugger, from QSPI, the program crashes on first read in the NOR memory area.

This is probably an access violation, but what makes it work when JTAG is used?

 

The code added to the FSBL is shown below. It is called from main() just before "Read bootmode register".

u32 LoadGoldenImage(void)
{
 u32 HandoffAddress = 0;
 u32 Status = XST_SUCCESS;
 fsbl_printf(DEBUG_GENERAL,"Loading golden image\n\r");
 /*
  * Boot ROM always initialize the nor at lower speed
  * This is the chance to put it to an optimum speed for your nor
  * device
  */
 InitNor();
 MoveImage = NorAccess;

 /*
  * NOR and QSPI (parallel) are linear boot devices
  */
 LinearBootDeviceFlag = 1;

#ifdef XPAR_XWDTPS_0_BASEADDR
 /*
  * Prevent WDT reset
  */
 XWdtPs_RestartWdt(&Watchdog);
#endif

 /*
  * This used only in case of E-Fuse encryption
  * For image search
  */
 SystemInitFlag = 1;

 /*
  * Load boot image
  */
 HandoffAddress = LoadBootImage(TRUE,PARALLELLFLASH_OFFSET);

 fsbl_printf(DEBUG_INFO,"Handoff Address: 0x%08lx\r\n",HandoffAddress);

 /*
  * FSBL handoff to valid handoff address or
  * exit in JTAG
  */
 FsblHandoff(HandoffAddress);

 return Status;

}

 

The crash occurs in nor.c (via NorAccess) when     Data = *((unsigned int *)SourceAddr); is executed.

I am using 2017.3 tools and Avnet Zynq 7045 mini module.

0 Kudos