News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

Flashing TE820

Started by jhane, January 29, 2021, 07:50:44 AM

Previous topic - Next topic

jhane

Hello,
  We are using a TE820 on a custom carrier board and I'm having trouble flashing the system.   The BOOT.BIN is in qspi and the image.ub in the eMMC.   Currently, if something goes wrong I have to remove the SOM and place it on 703 carrier board because I have been unable to flash it via jtag with program_flash.  For example:

program_flash -f BOOT.BIN -fsbl zynqmp_fsbl.elf -flash_type qspi-x4-single -target_id 0

  Does the board need to be in JTAG boot mode to be able to flash the QSPI?   The flash is not empty but it may be corrupted since the board will not boot.

  If the board does need to be in JTAG mode then I want to confirm that the CPLD needs to be changed to the flash/JTAG version instead of the flash/SD version, correct?

thank you,
jeff

JH

Hi,
TE0820 is qspi-x8-dual_parallel. You can also use single qspi, but in this case you should change your PS setup to X4 (our board files use x8). --> in this case you use only one of the QSPI Flash.
See test_board\board_files\TE0820_board_files.csv from our reference design:
https://wiki.trenz-electronic.de/display/PD/TE0820+Reference+Designs

In case you want to program Flash in QSPI mode, you must use special FSBL for QSPI Programming, which we provide on our reference design (also source code).
In your boot.bin use still your normal fsbl. I mean the FSBL which you select for programming: program_flash -f BOOT.BIN -fsbl zynqmp.elf
some backround:
https://wiki.trenz-electronic.de/display/PD/Xilinx+Development+Tools#XilinxDevelopmentTools-XilinxSoftware-ProductUpdateReleaseNotesandKnownIssues
https://www.xilinx.com/support/answers/70148.html
https://www.xilinx.com/support/answers/70548.html

Default CPLD Delivery has Boot mode selectable QSPI/SD, but on download are also other combinations available. In your case you can use QSPI/JTAG, so  change boot mode with selection pin.
CPLD Update instructions and links to download:
https://wiki.trenz-electronic.de/display/PD/TE0820+CPLD+Firmware

br
John

jhane

Hi JH,

  If I open up your reference designed in 2018.3 it says the qspi is Dual Parallel x4.  There is no option to change it to x8??

  My understand of the special FSBL was that this was only required when the flash was empty.   

  I did just try this with the different flash type:

program_flash -f ./BOOT.BIN -fsbl ./zynqmp_fsbl.elf -flash_type qspi-x8-dual_parallel

  And it seem to to be more stable even after I erased the QSPI

  If the flash was corrupted would I always be able to flash without using JTAG mode?   I ask because this message always appears at the beginning:

WARNING: [Xicom 50-100] The current boot mode is QSPI32.
If flash programming fails, configure device for JTAG boot mode and try again.

And since we are re-spinning our board, we would a switch/jumper to change the boot mode from QSPI to JTAG.   We want to be able to flash/recover a system by attaching a cable and not removing the SOM?

thank you,
jeff


JH

Hi,
dual parallel x4 is the same like X8  (2* x4 = X8)  Xilinx has start to change nomenclature during the Vivado versions.

Special FSBL is need if the flash is empty or you has a corrupted design, which cause the default FSBL to get into an error state before xilinx micro uboot is started.

QuoteAnd since we are re-spinning our board, we would a switch/jumper to change the boot mode from QSPI to JTAG.   We want to be able to flash/recover a system by attaching a cable and not removing the SOM?
I don't understand?  TE0820 as only 1 boot mode pin on B2B (to be compatible with other 4x5 carrier). Default it's QSPI/SD. Write QSPI is possible but you should use the special FSBL for flash programming, which we provide on our reference design (or you create your own one).
Xilinx itself recommend to change boot mode always to JTAG because they down't know what's running on the ZynqMP if you use annother boot mode and the ZynqMP design can prevent JTAG access.

So did you mean you can't change boot mode with your carrier?
There is a second pin to get access to CPLD for CPLD update, in case you want to change tp other firmware for example to use other boot modes on the boot mode pin.
https://wiki.trenz-electronic.de/display/PD/4+x+5+SoM+Integration+Guide#id-4x5SoMIntegrationGuide-4x5ModuleControllerIOs

br
John

jhane

Hi,
  OK, thanks for the clarification of the naming.

  Yes, currently we can't change the boot mode on our carrier, so it is fixed in QSPI mode.   We are re-spinning the board so I'm trying to determine if we should change the default CPLD to QSPI/JTAG and add a switch that allows to to switch the mode. 
  It sounds like it would be a good idea to add a switch or perhaps just a button we can press during power-up.

thanks,
jeff

JH

Hi,
yes to have a fallback solution is always good.

PS: when you has uboot or linux running and ETH available on your carrier, you can also get access to QSPI Flash over embedded os, so you can update design over eth.

br
John