Invalid file format FlexSPI Nor nopadding with IDE generated .bin file

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

Invalid file format FlexSPI Nor nopadding with IDE generated .bin file

Jump to solution
1,585 Views
andrelongo85
Contributor I

Hello,

I have compiled an SDK example for the RT1171 and generated the .axf file.

Since the device will boot form QSPI flash I have the XIP_BOOT_HEADER_ENABLE define set to 1 (it is like that by default), which will add the boot information to the application image that will be stored in the QSPI Flash.

What I want to achive is to program this same image with the Secure provisioning tool. What I have done is to convert the .axf file in .bin format using the IDE binary utilities and the loaded into the Write Image tab of the Secure Provisioning tool. here I get the error "Invalid file format for FlexSPI NOR, the write support only nopadding bootable image".

As workaround I have to generate the image with the IDE setting the XIP_BOOT_HEADER_ENABLE define to 0. and Then use the Secure Provisioning tool to generate the Build image and finally write. This is quite cumbersome as, although it seems I can debug with XIP_BOOT_HEADER_ENABLE set to 0 (not sure how it is possible), I cannot program successfully with the IDE as the image is missing the boot section which I believe is mandatory to boot properly form QSPI flash.

Please let me know I f I have mislead something or doing something wrong.

As side question i want to ask which is the best tool for image programming and fuses burning, also thinking about the production stage when we would need to automate everything, is it Secure Provisioning tool?

Best Regards,


Andrea

 

0 Kudos
1 Solution
1,572 Views
marek-trmac
NXP Employee
NXP Employee

Hi Andrea,

thank you for your question. MCUxpresso Secure Provisioning tool currently requires pure application image without boot header as input for the build, see workflow described in user guide, (chapter 6.2.1.1).
In the future, we will support bootable image as an input, but we do not have any target date yet.

MCUxpresso Secure Provisioning tool can be used for manufacturing, see main menu > Tools > Manufacturing Tool. The tool uses script to provision the software into processor in ISP mode, so in case you need to tweak or customize the manufacturing process, you can manually modify the generated script. Also mind, the tool support parallel programming.

Happy provisioning

Regards,
Marek

View solution in original post

0 Kudos
3 Replies
1,573 Views
marek-trmac
NXP Employee
NXP Employee

Hi Andrea,

thank you for your question. MCUxpresso Secure Provisioning tool currently requires pure application image without boot header as input for the build, see workflow described in user guide, (chapter 6.2.1.1).
In the future, we will support bootable image as an input, but we do not have any target date yet.

MCUxpresso Secure Provisioning tool can be used for manufacturing, see main menu > Tools > Manufacturing Tool. The tool uses script to provision the software into processor in ISP mode, so in case you need to tweak or customize the manufacturing process, you can manually modify the generated script. Also mind, the tool support parallel programming.

Happy provisioning

Regards,
Marek
0 Kudos
1,550 Views
andrelongo85
Contributor I
Hi Marek,

Thanks for your reply. That clarifies a lot.
Since I have got your attention, I ave another quick question...I have seen that NXP offers also another tool which is quite similar to the SP tool (or at least for me), which is MCUBootUtility:
https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/One-stop-secure-boot-tool-NXP-MCUBootUtility-v1-...
Could you please clarify what is the difference and which tool should I use fo future development?

Kind regards,

Andrea
0 Kudos
1,460 Views
liborukropec
NXP Employee
NXP Employee

Hi Andrea,

as also noted in another older thread - https://community.nxp.com/t5/i-MX-Processors/MXP-MCU-Boot-Utility-vs-MCUxpresso-Secure-Provisioning-...

MCUBootUtility is not an official tool with all consequences. It might offer other features but you won't receive any official support.

For the most typical scenarios the SEC tool does its work, it is also suitable for small-mid production.

If more specialized use-cases or tight integration into other SW are needed (and not afraid to get dirty with low level code) https://github.com/nxp-mcuxpresso/spsdk might be the second option. SEC tool is built on top of SPSDK CLI utilities.


Could you please clarify what is the difference and which tool should I use fo future development?

As the name of this community section suggests, "Secure Provisioning Tool"  is the tool to go with. Or SPSDK as mentioned above.

SEC vs MCUBootUtility

- both are GUI tools

- SEC offers (not only) in addition

- CLI interface

- Windows / Linux (Ubuntu) / Mac OS support

- Manufacturing support

- Trust Provisioning (Smart Card / Device HSM)

- Stable development and support

Regards,

Libor

Tags (1)
0 Kudos