2414857_en-US

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2414857_en-US

2414857_en-US

RT1064 Online Upgrade Plan

The following figure is the hardware expansion diagram of our product:

1.The PC and mainboard are connected via TCP

2.The mainboard is connected to four subboards through four SPI buses, and the functions of the subboards are the same

3.The uart4 of the mainboard can be switched to UART1 of 4 sub boards through a serial port swtich chip

foreverwlh2025_0-1789970732170.pngforeverwlh2025_0-1789970732170.png

Due to project requirements, the PC needs to upgrade the firmware program of four sub boards RT1064 through TCP. Based on hardware expansion, can you help provide the simplest solution for upgrading the sub board firmware (considering the workload of upper computer development, mainboard development, and sub board development)

i.MXRT 106xRe: RT1064 Online Upgrade Plan

Dear @foreverwlh2025 ,

Thank you for your questions.

Recommended Approach

The PC communicates with the mainboard over TCP. The mainboard acts as a TCP server and implements a UART transparent bridge. UART4 on the mainboard is routed through a serial switch chip to the UART1 interface of the selected sub-board. The sub-board runs the RT1064 ROM Bootloader, so no additional bootloader or firmware development is required on the sub-board side.

Step-by-step upgrade flow for a single sub-board :

  1. Assert RESET on sub-board N; set BOOT_MODE[1:0] = 01 (Serial Downloader mode)

  2. Switch the serial switch chip to connect UART4 to sub-board N's UART1

  3. Release RESET — sub-board N enters the RT1064 ROM Bootloader and waits for UART commands

  4. Enable TCP↔UART4 byte forwarding

  5. Toggle RESET and restore BOOT_MODE to normal — sub-board N boots with the new firmware

  6. Switch the serial selector to the next sub-board and repeat

Hardware Prerequisites

Please confirm the following hardware conditions are in place before implementation:

  1. Mainboard has independent GPIO control over each sub-board's BOOT_MODE[1:0] pins

  2. Mainboard has independent GPIO control over each sub-board's RESET pin

  3. The serial switch chip is controllable by mainboard GPIO and supports switching among all 4 sub-boards

Please feel free to reach out if you have any questions or would like to discuss implementation details further.

Re: RT1064 Online Upgrade Plan

4.Enable TCP↔UART4 byte forwarding

-----Excuse me, do we need to develop an additional upper computer for this step of data transmission? For example, what format should the PC transmit image data in, how should it parse the response data returned by the sub board, and how should it interact


Re: RT1064 Online Upgrade Plan

Dear @foreverwlh2025 ,

Please find below a summary of our recommended solution for your firmware upgrade scenario.

1. PC Tool 

On the PC side, we provides blhost — an open-source command-line client that implements NXP's MCU Bootloader private framing protocol (BSD/MIT license). The device-side protocol is implemented by the MCU on-chip ROM Bootloader. Together, they enable firmware download and device configuration. 

The tool supports USB and UART1, doesn't support TCP.

Open-source repository: https://github.com/nxp-mcuxpresso/spsdk

blhost and the ROM Bootloader communicate using a proprietary framing packet protocol, please refer to: MCU Bootloader v2.5.0 Reference Manual (MCUBOOTRM)

For firmware image generation and packaging, please use the nxpimage tool included in NXP's SPSDK (Secure Provisioning SDK).

2. Recommended Solution: TCP Transparent Forwarding via Mainboard

For your scenario (PC→ Mainboard → Sub-board), the minimum-effort approach is to have the mainboard act as a transparent TCP-to-UART bridge, with a small modification to blhost to wrap serial data in TCP:

Architecture:

PC (modified blhost)
    ↓  TCP packet (include original UART byte stream)
Main Board (TCP Server)
    ↓  Unpack and forward to sub-board via UART
Sub-board (ROM Bootloader)

Key modification points:

  1. Modify blhost transport layer: Add a new TCP transport module in the blhost source code. The existing UART byte stream (Framing Packets) is wrapped into TCP packets as-is on the send path, and unwrapped on the receive path. 

  2. Main board implements a TCP Server: Receives TCP data from the PC, forwards the payload byte-for-byte to the sub-board via UART1; sub-board responses are forwarded back to the PC via TCP in the same transparent manner.

  3. Sub-board requires no changes: The sub-board MCU simply needs to be in ISP mode with the ROM Bootloader running, waiting for standard UART commands.

タグ(1)
評価なし
バージョン履歴
最終更新日:
木曜日
更新者: