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!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎09-01-2010

NOR Flash Boot needs JTAG to run


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
 MoveImage = NorAccess;

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

  * Prevent WDT reset

  * 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

 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