Home
Support

Knowledge Base

BSPs and drivers
Community resources
Product documentation
Questions?
Contact us

SDP 7.0 ZCU104 BSP: Boot with the QNX IPL from QSPI flash storage
 
________________________________________________________________________

Applicable Environment
________________________________________________________________________
  • Topic: ZCU104 Boot from QSPI Flash Storage
  • SDP: 7.0.0
  • Target: ZCU104
________________________________________________________________________

Question
________________________________________________________________________

For the ZCU104 target, how do I boot with the QNX IPL from QSPI flash storage?

________________________________________________________________________

Recommendation
________________________________________________________________________

The existing IPL only supports booting from 2 QSPI flash chips connected in parallel which is the case on the ZCU102 and ZCU106 EVBs. However, the ZCU104 only has a single flash chip so booting from QSPI flash fails on this board. A new IPL variant is required for the ZCU104 that supports a single flash chip configuration.

The solution is to reconfigure the generic FIFO command templates to match the configuration on the board. The changes have been made in the IPL - qspi.c: qspi_load() and qspi.h, as well as the offsets in the two scripts to flash the images. Below is the summary:

--- IPL ---

In qspi.h (located in ../src/hardware/ipl/boards/xzynq-zcu102/):

- IFS Offset have been changed to 0x02000000
- Max size for BOOT.BIN and IFS has been increased to 32 MB.
- FIFO command templates have been modified to work with one NOR flash chip, i.e. select the correct Chip Select (CS), Data Bus (DB) and Stripe bits in the FIFO commands. You can review the TRM to understand the changes, Chapter 24: Quad-SPI Controllers - Generic Command FIFO:
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf

In qspi.c (located in ../src/hardware/ipl/boards/xzynq-zcu102/):

- Do not divide down the QSPI offset by 2 when in single chip mode.

--- reflash-image.sh and reflash-ipl.sh ---

- Changed the offset to 0x02000000 for the IFS
- Limit was increased to 32M for both, BOOT.BIN and IFS, when using flashctl.

The following relevant files are attached:

- BOOT.BIN (built with the modified IPL)
- reflash-ipl.sh
- reflash-image.sh
- qspi.c
- qspi.h

The Bootgen utility, which is used in the mkflashimage script to rebuild the BOOT.BIN file, is available via the Xilinx website - https://www.xilinx.com/. For more information about Bootgen, please review the Bootgen User Guide:

________________________________________________________________________
NOTE: This entry has been validated against the SDP version listed above. Use caution when considering this advice for any other SDP version. For supported releases, please reach out to QNX Technical Support if you have any questions/concerns.
________________________________________________________________________


Related Attachments
 Attachment Name Size Last Modified
 zcu104_files.zip 1.98MB 2/12/2021 3:39 AM





Please contact us with your questions or concerns.