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
Visitor fguimond
Visitor
1,068 Views
Registered: ‎08-29-2018

Wanted: Zynq QSPI MultiBoot example

Jump to solution

From UG821 p.45:

 

QSPI Boot Mode
This QSPI boot mode is for x4 mode. The BootROM searches the first 256 Mb in x8 mode.
In QSPI boot mode (where the QSPI device is >128Mb), to use MultiBoot, place the multiple
images in such a way that they fit in memory locations less than 128Mb.
To effect this mode, the images should have only (FSBL+U-Boot) to fit in the <128Mb
memory. Then, the rest of the partitions, possibly residing in a portion of memory that is
>128Mb, must be handled by U-Boot. In this case, update the zynq_common.h file to add
the commands to load the required partitions. You can find further details on the usage,
along with an example, in the Xilinx Zynq-7000 AP SoC Solution Center[Ref1].

 

 

Does anyone know which example is referred here?

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
1,024 Views
Registered: ‎10-16-2015

Re: Wanted: Zynq QSPI MultiBoot example

Jump to solution

Regarding "update the zynq_common.h file to add the commands to load the required partitions" in the quoted text, this refers to a common u-boot practice.  Here is some info on this:

 

  • Refer to the "/* Default environment */" section of zynq-common.h.  For example: https://github.com/Xilinx/u-boot-xlnx/blob/xilinx-v2018.2/include/configs/zynq-common.h#L210
  • This section of the header file is an example of embedding commands/scripts into environment variables and defining them in a u-boot header file
  • The env-vars of particular interest will have names like "qspiboot" and "sdboot" which are used to boot Linux from a particular device.  For example, the following would boot from SD assuming an image was present there: u-bootCLI> run sdboot
  • The run command simply tells u-boot to interpret the supplied env-var (sdboot in the example above) as a command it should execute

So what UG821 is trying to say is that you'll need to modify these commands to fit your specific needs 
(whether for fallback or something else).  Except in the simplest use-cases, customizing u-boot commands beyond what PetaLinux would provide is pretty normal.  And although you don't need to do this using the zynq-common.h file, this is a simple way to do it since some 'scripts' are already defined there.

 

For more info on what the actual scripts do (e.g. sf probe, sf read, bootm, etc.), you'll want to refer to u-boot documentation as these are all standard u-boot commands run in sequential order.

View solution in original post

0 Kudos
3 Replies
Moderator
Moderator
1,049 Views
Registered: ‎03-19-2014

Re: Wanted: Zynq QSPI MultiBoot example

Jump to solution

You can find an example here on the Wiki

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Visitor fguimond
Visitor
1,031 Views
Registered: ‎08-29-2018

Re: Wanted: Zynq QSPI MultiBoot example

Jump to solution

I guess that answer the question, but I was looking for a more high level example.

 

For a PetaLinux system, would it be possible to have a single FSBL+U-Boot (without fpga bit stream), and 2 FIT images that includes the FPGA bit stream? ( one golden and one upgrade, if the upgrade fit image is invalid, fallback to the golden )

 

If yes is there an example of this?

0 Kudos
Xilinx Employee
Xilinx Employee
1,025 Views
Registered: ‎10-16-2015

Re: Wanted: Zynq QSPI MultiBoot example

Jump to solution

Regarding "update the zynq_common.h file to add the commands to load the required partitions" in the quoted text, this refers to a common u-boot practice.  Here is some info on this:

 

  • Refer to the "/* Default environment */" section of zynq-common.h.  For example: https://github.com/Xilinx/u-boot-xlnx/blob/xilinx-v2018.2/include/configs/zynq-common.h#L210
  • This section of the header file is an example of embedding commands/scripts into environment variables and defining them in a u-boot header file
  • The env-vars of particular interest will have names like "qspiboot" and "sdboot" which are used to boot Linux from a particular device.  For example, the following would boot from SD assuming an image was present there: u-bootCLI> run sdboot
  • The run command simply tells u-boot to interpret the supplied env-var (sdboot in the example above) as a command it should execute

So what UG821 is trying to say is that you'll need to modify these commands to fit your specific needs 
(whether for fallback or something else).  Except in the simplest use-cases, customizing u-boot commands beyond what PetaLinux would provide is pretty normal.  And although you don't need to do this using the zynq-common.h file, this is a simple way to do it since some 'scripts' are already defined there.

 

For more info on what the actual scripts do (e.g. sf probe, sf read, bootm, etc.), you'll want to refer to u-boot documentation as these are all standard u-boot commands run in sequential order.

View solution in original post

0 Kudos