QSPI booting and MFG tool operation

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

QSPI booting and MFG tool operation

889 Views
richardgears
Contributor I

I have a VYBRID MVF60NN152CMK50 connected to a single QSPI flash. We would like to download an image using the MFG tool through the USB, power cycle and restart the application from flash. If we need to re-program the application, we will erase the flash header information and restart the system. The boot ROM should then detect an invalid flash header and then enable the serial bootloader which will allow the MFG tool to connect and reprogram.

Currently, we have a firmware application which is downloaded externally via a flash programmer to the board. By programming BT_FUSE_SEL=1, the VYBRID starts up, boots into flash and the application runs as expected. This is the only eFuse programmed: all others are at their factory configuration. We are not using HAB.

However, we cannot get the VYBRID to execute the flash image AND start the USB downloader when the flash is invalidated.

BT_FUSE_SEL=0, BOOT_MODE[1:0]= 00, (FUSES) USB active, unable to start valid flash image.

BT_FUSE_SEL=0, BOOT_MODE[1:0]= 01, (SERIAL) USB active, unable to start valid flash image.

BT_FUSE_SEL=0, BOOT_MODE[1:0]= 10, (RCON) USB inactive, unable to start valid flash image.

BT_FUSE_SEL=1, BOOT_MODE[1:0]= xx, USB inactive, valid flash image executes successfully.

From the reference manual Figure 19-1 (Boot Flow) I am expecting that the system should either startup or switch into USB serial download. 

My questions are:

1. Why does the system start successfully when BT_FUSE_SEL=1, but does not start when BT_FUSE_SEL=0 and BOOT_MODE=00, all other fuses being identical?

2. Why is RCON not executing the flash image AND not starting the USB downloader?

3. What fuses do I need to set to get the serial downloader AND flash boot to work on the same board?

Any help would be gratefully appreciated!

2 Replies

613 Views
igorpadykov
NXP Employee
NXP Employee

Hi Richard

one can check if usb is working fine using requirements described in

sect.2 Design Checklist Hardware Development Guide for Vybrid® Family of MCUs

sect.2.9 24 MHz oscillator tolerance (so bad quality 24MHz crystal may be the cause),

sect.3.7 USB differential-signal recommendations
https://www.nxp.com/docs/en/user-guide/VYBRIDHDUG.pdf 

Also check if correct usb is used: according to sect.7.5.8.1 USB Boot Flow  

Vybrid Reference Manual

"Only USB0 is supported as a boot device."

http://www.nxp.com/files/32bit/doc/ref_manual/VFXXXRM.pdf 

As described on Figure 7-37. USB/UART Boot Flow, ROM continuosly polls

USB and UART interfaces, so one can check if UART signal is active (in such case

ROM will ignore USB and will wait for UART communication). Used uart is described in

sect.7.5.8.2.1 UART eFUSE Configuration

One can check with jtag if correct boot mode was sampled, using SRC_SBMR1,2 registers

described in sect.7.3 System Reset Controller (SRC) Vybrid Reference Manual.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

613 Views
richardgears
Contributor I

Many thanks Igor, we will work through your suggestions.It's interesting that you mention clock tolerances, as we can connect the Tower board to the MFGtool with 100% reliability, but are having issues performing exactly the same operation with our own VYBRID hardware.

Many thanks, Richard.

0 Kudos