How to test,debug vybrid qspiXIP bootloader project

cancel
Showing results for 
Search instead for 
Did you mean: 

How to test,debug vybrid qspiXIP bootloader project

Jump to solution
859 Views
Contributor V

Dear Sir/Madam,

Hello,

 

We are developing a VF3x based prototype with MQX, with DS-5. I have added a square wave generation SW on a GPIO pin of VF3x of the MQX I2C project. Tested it with DS-5 debugger, and then generated .c array file with fromelf cadcombined  .. command. Then drag-dropped this c array file into the "bootloader_vybrid_qspixip_twrvf65gs10_a5" project. Built the project with this .c array and projects' scatter files, connected the debugger, and run, and saw the square wave on GPIO pin. Then configured boot pins for QSPI boot(1:0), and disconnected/connected the power, I could not see the square wave on IO pin.

 

I have same dual S25FL128 chips, and SPI0 is selected. SRC_SBMR1 is 0x4990_FA04 => CFG1 = 4; CFG2 = 250; CFG3 = 144; CFG4 = 73; // No infinite loop; qxip_0; 24 bit SPI address ..

I have attached my scatter, map, and quadspi_boot files.

 

I don't know how to proceed further, I would be very grateful, if you have check and if you see any problem and or advise me..

 

Thanks and best regards.

 

Mehmet Ali Ipin.

Original Attachment has been moved to: sram_ds5_a5.scf.zip

Original Attachment has been moved to: quadspi_boot.c.zip

Original Attachment has been moved to: mapfile.map.zip

Labels (8)
1 Solution
1 View
Senior Contributor IV

Hello Mehmet,

// No infinite loop; qxip_0; 24 bit SPI address ..

16bit vs 24bit SPI address is not relevant for boot from QSPI. You don't need to configure these RCON pins. SRC_SBMR1 value looks OK.

XIP debug requires special debug configuration, where

1) In Files tab you make "Application on host to download:" edit box empty and instead specify application *.axf under "Load symbols from file" setting

2) In Debugger tab set Run control to Connect only

After QSPI programming connect with newly created debug configuration. Try setting HW breakpoint on entry point, click Reset, and then click continue. If QSPI boot configuration is read out properly by boot ROM, then most likely your target will stop on HW breakpoint you set. If you don't hit your breakpoint, then try stopping target and analyzing QSPI registers. QSPI0 memory at 0x20000000 should be readable and you should be able to verify QSPI boot configuration stored at 0x20000000.

Good luck

Edward

View solution in original post

0 Kudos
5 Replies
1 View
NXP Employee
NXP Employee

Hi,

I have created a simple document that explains how to modify a MQX project and convert it to a bootable image.

The steps are explained using IAR, but in genera similar ones can be followed for DS-5.

I hope that helps,

Alejandro

1 View
Contributor V

Dear Alejandro,

Thank you very much for the document.

0 Kudos
2 Views
Senior Contributor IV

Hello Mehmet,

// No infinite loop; qxip_0; 24 bit SPI address ..

16bit vs 24bit SPI address is not relevant for boot from QSPI. You don't need to configure these RCON pins. SRC_SBMR1 value looks OK.

XIP debug requires special debug configuration, where

1) In Files tab you make "Application on host to download:" edit box empty and instead specify application *.axf under "Load symbols from file" setting

2) In Debugger tab set Run control to Connect only

After QSPI programming connect with newly created debug configuration. Try setting HW breakpoint on entry point, click Reset, and then click continue. If QSPI boot configuration is read out properly by boot ROM, then most likely your target will stop on HW breakpoint you set. If you don't hit your breakpoint, then try stopping target and analyzing QSPI registers. QSPI0 memory at 0x20000000 should be readable and you should be able to verify QSPI boot configuration stored at 0x20000000.

Good luck

Edward

View solution in original post

0 Kudos
1 View
Contributor V

Dear Edward,

Thank you for your helps,

I did step 1 and 2. I would be grateful, if you explain me how I can set HW breakpoint

Thanks and best regards.

Mehmet Ali Ipin

0 Kudos
1 View
Senior Contributor IV

Hi Mehmet,

Usually DS-5 decides correctly when to use HW breakpoint and when to use SW breakpoint. HW vs SW is easily distinguisheable visually. SW breakpoint is just red dot in the gutter of source code or assembly window, HW breakpoint is red dot with H letter. To implicitly use specific kind of breakpoint I right mouse click in gutter to the left from required code line, then in context menu click DS-5 breakpoints -> Toggle Breakpoint (SW) or Toggle Hardware Breakpoint respectively.

So just make sure it is red dot with H and force it to be H if it isn't.

Regards

Edward