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

Flash boot not working after reset

Started by Chris12, October 08, 2019, 12:57:51 PM

Previous topic - Next topic

Chris12

I'm using a TE0715 module mounted on TE0701 carrier.
I have BOOT.bin file with a custom FSBL & Bitstream + VxWorks
When booting from SD Card: no problem. Everything runs fine after reset or power on.

Then I used SDK 2019.1 to program QSPI on the board to be able to boot standalone, without SD Card.

What happens is:
- boots perfectly from flash after power on
- never boots from flash after a reset (S2 button on TE0701 board)
(note that I removed the SDCard to have the CPLD asking to boot from flash)

After I press the power on button, nothing happens. My FSBL is built with all debug output activated, and I don't see a single trace.

Is it a limitation of the CPLD which would make flash boot working only after power-on ?

Thanks

JH

Hi,

can you try out one time our 2018.3 reference design please:
https://wiki.trenz-electronic.de/display/PD/TE0715+Test+Board
prebuilt Boot.bin with Uboot and Hello TE0715  is included into the download for all assembly variants. --> In case you use Boot.bin with uboot, boot process stops on Uboot, because Uboot search for image.ub on SD --> which must be removed for QSPI boot and default TE0701 CPLD Firmware(the source code is on the download area, so you can also modify if you want). 

Which TE0715 assembly variant do you have? Can you send me the serial number if your module and the carrier. Is the white sticker with QR code on the module and on the carrier.

I've tried out here and it boots also with Reset(S2 and no SD) from QSPI.

br
John





Chris12

Thanks for your quick answer.

My board is a TE0715-4-30-1
Here is the ID on the sticker: 529885

I've run additional tests as you suggested, and I found out that the issue occurs ONLY when the reset happens while running VxWorks. When using uboot, no problem.
So for some reason VxWorks is blocking the reset. And vxworks stops running also, so the board is frozen and only a power-off can restart it.

Any idea how an OS can block the reset on TE0701 ?
I didn't look at the doc details yet, but it seems that with TE0701 the restart button (S2) is causing the CPLD to shutdown the power supplies (except 3.3V), so it looks like a 'hard' reset.

Chris

JH

#3
Hi,
maybe Linux drivers has changes some modes in the qspi flash, which can't be handle by the boot rom.

Reset make FPGA power on reset, so not all is powered off, only the FPGA is restart.
https://wiki.trenz-electronic.de/display/PD/TE0720+CPLD
--> Active Low Reset input, default mapping forces POR_B reset to Zynq PS

It can be this problem:
https://www.xilinx.com/support/answers/57744.html
here some possible workarounds:
https://wiki.trenz-electronic.de/display/PD/SPI+32+Bit+Addressing

br
John

Chris12

About S2 (restart) button, the TE0701 TRM says:
  "Global Reset of board and attached module, as all power supplies
  will be switched off on button push and back on again on button release."

So pressing S2 button should be very similar to POR from TE07015 point of view.
This is not a critical issue for me right now so I won't investigate more.
I'll come back later if needed.

Note that I'm not using Linux and I didn't try the sequence linux.
I just tried with VxWorks and uBoot. The boot image is at the beginning of the qspi so I'm not impacted by the Xilinx limitation you mentioned.

Regards,
Chris




JH

Hi,
TE0715 has 32MB single QSPI flash assembled.
And it depends how your OS (in your case vxworks) configures the qspi flash.

TE0701 CPLD Description:
https://wiki.trenz-electronic.de/display/PD/TE0701+CPLD
https://wiki.trenz-electronic.de/display/PD/TE0701+CPLD#TE0701CPLD-Reset
Source code of the carrier CPLD is also available on the download area, so you can change if you want.

What S2 does depends on CPLD Firmware of the TE0701 and at the end on the connected module. I think TRM descriptions is so not correct. I will modify it a little bit.

The same with TE0715, what controll signals does depends on module series and somtimes on module cpld:
https://wiki.trenz-electronic.de/display/PD/4+x+5+SoM+Integration+Guide#id-4x5SoMIntegrationGuide-4x5ModuleControllerIOs
https://wiki.trenz-electronic.de/display/PD/TE0715+CPLD


br
John