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

QSPI Flash Issues on TE0745

Started by alaney, September 13, 2024, 01:10:22 PM

Previous topic - Next topic

alaney

I am trying to get my system to boot from QSPI flash, but am having issues. where this is what I have tried:

1) I have updated the CPLD to variant 2 allowing JTAG/QSPI/SD Card

2) My main project (bare metal) is using Vivado/Vitis 2024.1 where if I understand your wiki information the Vitis/SDK version has varying degrees of issues when programming the QSPI flash.

3) From this wiki I have installed 2017.2 (seemed the version with the least issues to me) and created an unrelated SDK fsbl application targeting a ZC702 board. I have only done this so that SDK then allows me to use the flash program application. I have then referenced the BOOT.bin file from my 2024.1 project in the flash programming tool and programed/verified successfully. Here is the console op during flashing:

cmd /C program_flash -f \
G:\Vitis_Workspace_2024\SW_Application\BOOT.bin \
-offset 0 -flash_type qspi_single -blank_check -verify -cable type xilinx_tcf url \
TCP:127.0.0.1:3121

****** Xilinx Program Flash
****** Program Flash v2017.2 (64-bit)
  **** SW Build 1909853 on Thu Jun 15 18:39:09 MDT 2017
    ** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

Connecting to hw_server @ TCP:127.0.0.1:3121

Connected to hw_server @ TCP:127.0.0.1:3121
Available targets and devices:
Target 0 : jsn-JTAG-ONB4-251633006C35A
    Device 0: jsn-JTAG-ONB4-251633006C35A-4ba00477-0

Retrieving Flash info...

Initialization done, programming the memory
BOOT_MODE REG = 0x00000001
WARNING: [Xicom 50-100] The current boot mode is QSPI.
If flash programming fails, configure device for JTAG boot mode and try again.
f probe 0 0 0

Performing Erase Operation...
Erase Operation successful.
INFO: [Xicom 50-44] Elapsed time = 7 sec.
Performing Blank Check Operation...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
INFO: [Xicom 50-44] Elapsed time = 39 sec.
Blank Check Operation successful. The part is blank.
Performing Program Operation...
0%...10%...40%...70%...80%...100%
Program Operation successful.
INFO: [Xicom 50-44] Elapsed time = 33 sec.
Performing Verify Operation...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
INFO: [Xicom 50-44] Elapsed time = 39 sec.
Verify Operation successful.

Flash Operation Successful





4) If I then power cycle board with SD card fitted and have all S1 switches set to OFF position on your TEB0745 development board it fails to boot. NOTE: I still have the CPLD programmed with variant 2

5) If instead, I copy the same BOOT.bin file onto an SD card, set S1-1 to on, power cycle brd then it boots correctly.

I am no expert with the SDK/Vitis tools so am sure I am doing something obviously incorrect. Can you please help me out.

Thanks!


JH

Hi,
your programming steps looks fine. You programmed QSPI with SD insert, so it was QSPI boot mode, but with older your SDK Version it's no matter, problems are only with newer one. When you change Boot Mode to JTAG only(without SD and DIP S1-1 OFF, than it should also be possible with newer Vivado/Vitis Version(but you need correct project with correct FSBL in this case too)).
Your Boot.bin should normally also be fine when it boots from SD.

At the moment I would expect it should works.

Do you see something on uart when you try to reboot with reset button from TE0790 programmer?
Can you tell me which assembly variant of the TE0745 you has or alternatively the serial number of the module(it's on the small sticker with QR Code)?

Can you try out one time our reference design boot.bin please?
https://wiki.trenz-electronic.de/display/PD/TE0745+Test+Board
-->direct Download link:https://shop.trenz-electronic.de/trenzdownloads/Trenz_Electronic/Modules_and_Module_Carriers/5.2x7.6/TE0745/Reference_Design/2023.2/test_board/TE0745-test_board-vivado_2023.2-build_4_20240220094718.zip

Download includes also prebuilt binaries, use hello TE0745 example Boot.bin at first.

br
John

alaney

Our SoM has QR Code: 727724

I have tried the following so far:

1) SPI flashed your hello BOOT.bin file and that worked

2) Using Vitis "classic" 2024.1 instead of the new Vitis tool, I created a "peripheral test" example app still targeting my actual 2024.1 Vivado design. This also worked using QSPI.

3) I am now in the process of porting my SW across to Vitis "Classic" to see if that works.

Can you think of any reason why the new Vitis tool "may" have an issue, but only with QSPI flash? I guess there could be some setting in the FSBL that is built into the BOOT.bin that only causes an issue with QSPI? (I would quite like to get this working with the new Vitis tool if possible)


alaney

UPDATE:

I have built my design using 2024.1 "classic" and that BOOT.bin file works when programmed into QSPI flash. So, this is definitely something to do with the new Vitis tool. Just seems odd that a "new" Vitis created a BOOT.bin is ok on an SD card, but fails in QSPI flash.

JH

Hi,
strange, but good to hear that you narrow down the issue.
I use Vitis classic until know, so I've not much experience with new vitis unified.

Can you compare one time the *.bif file which was used to generate the boot.bin. Maybe there is some different.

br
John