Hello NXP Team,
I am writing this for an input from the team related to firmware upgrade/loading.
I am using an custom designed IMXRT1176 MCU board with QSPI flash with SDK Version v2_15_100 and also the IMXRT1176_EVKB board.
I have tried flashing the board using Segger J-Link, USB interface .I am exploring to flash/ update the firmware using SPI/I2C interface I don't find any method to upgrade with these methods.
Can you reply whether is there any possibility to upgrade the firmware using SPI/I2C interface ??
Thanks and Regards,
Ganesh Pawar
Hi @Gavin_Jia ,
I am also working on same page. I have created python environment using Termux application in android to install SPSDK.
Following cmds i have used :
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install spsdk
spsdk --help
While installing its dependencies, it fails with following error message
ERROR: Could not build wheels for cmsis-pack-manager, which is required to install pyproject.toml-based projects
Could you please assist me?
Regards,
Akshatha
Hi,
Due to long time without update, our internal system can no longer track this original post. Could you please resubmit one? Or through NXP portal? Thanks for your understanding!
Best regards,
Gavin
Hi @Ganesh_Pawar ,
Thanks for your interest in NXP MIMXRT series!
If your goal is to program a new image through SPI/I2C, then you can write in serial download mode, it supports UART/I2 C/SPI.
If your goal is local OTA through SPI/I2C, you may need to consider designing a secondary bootloader yourself. Please refer to this AN: https://www.nxp.com/docs/en/application-note/AN12604.pdf and AN12604SW in this page.
In addition, NXP provides an engineering of SBL/SFW, which provides a variety of ways of OTA:
1. Local OTA: UART\USB\U-disk
2. Remote OTA: AWS\Alibaba Cloud
Furthermore, reference may also be made to an example of OTA in SDK.
Best regards,
Gavin
Hi @Gavin_Jia
Thanks for replying regarding the firmware upgrade.
I am interested in flashing a new image through SPI/I2C .
I have flashed it using UART using secure provisioning tool by selecting the Communication interface as UART in the serial download mode. But i don't find any communication interface selection as SPI/I2C .
So can you guide me if there is any tool or am I missing any procedure here for flashing the New image using SPI/I2C
Thanks and regards
Ganesh Pawar
Hi @Ganesh_Pawar ,
Sorry for the inaccurate part of my previous reply, and after confirmation by experts, I would like to clarify it again with you.
The following operations require blhost or spdhost to support, ( the underlying layer of the host computer secure providing tool you are using is also one of the two tools called )
1. RT three-digit Serial ISP mode can support I2C/SPI download firmware to flash.
2. RT10xx/1170 only supports UART/USB ISP.
3. The new RT1180 is expanded to support UART/USB/SPI ISP.
If you are interested in the detailed underlying usage of this tool, you can learn this document at https://spsdk.readthedocs.io/en/stable/apps/blhost.html
Back to your question, the most appropriate way should be to develop a secondary bootloader to load and update firmware.
Best regards,
Gavin
Hi @Gavin_Jia
Thanks for the accurate Reply Much appreciated..!!!
I have finalized to flash the new image through Uart only for RT1176 MCU.
I am planning it this way:
With the help of the secure provisioning tool i am going to build the bootable image , I want to integrate the firmware update feature through android application .
Will this method of running the blhost through Uart supports through Android application and in linux systems.
If you could guide me through some supporting documents it would be of great help.
Thanks and regards
Ganesh pawar
Hi @Ganesh_Pawar ,
This can be done, please refer to this document:
https://spsdk.readthedocs.io/en/stable/examples/blhost/blhost.html
https://spsdk.readthedocs.io/en/stable/examples/sdp/mimxrt1050_read_memory.html
It provides an example of calling blhost/spdhost using a JupyterNotebook. Hope it helps!
Best regards,
Gavin
Hi @Gavin_Jia
Thanks for reply...
The information was much helpful,
As per the document the blhost is supported in both Windows and Linux environment.
Will this same package(blhost) is supported in Android environment as well ??
If not, could you share some inputs on this..
Thanks and regards
Ganesh Pawar
Hi @Ganesh_Pawar ,
Thanks for your input!
Although an example of using blhost/sdphost in an Android environment is not directly provided, in theory, as long as the python environment is supported, support can be obtained by installing spsdk and then calling the api.
Best regards,
Gavin