NVIDIA Orin Boot Chain Configuration Support

  • In NVIDIA DRIVE AGX Orin, NVIDIA DRIVE® Update application running on Orin manages software updates of NVIDIA Orin reliably by maintaining multiple Boot Chains (Boot Chain A, B,C,D). Boot Chain Config module facilitates GPIO based Boot Chain selection and reboots Orin in selected Boot Chain.
  • Boot Chain Config module is decomposed into two sub modules-Boot Chain Config Library Source and Boot Chain Config Selector and they run on Orin and MCU, respectively.
  • The following diagram gives overview of interfaces and positioning of Boot Chain Config modules in the system.
Figure 1. Overview of Bootchain Configuration Functionality

On NVIDIA Orin, submodule Boot Chain Config Library Source offers API to facilitate the following features:

  • Select default Boot Chain configuration.
  • Select next Boot Chain.
  • Get Default Boot Chain configuration.
  • Get Active boot Chain configuration.
  • Perform reboot of Orin and MCU to boot in selected Boot Chain.

Each of the preceding features needs support of BootChain Config Selector running on MCU to complete operations behind.

Implementation on NVIDIA Orin Side

NVIDIA DRIVE Update/user applications intending to use these features shall link to Boot Chain Config Library (libmcu_common_if.so).

Boot Chain Config Library (libmcu_common_if.so) formulates the Request-command, forwards to MCU, and wait for the Response-command. On receipt of the Response-command from MCU, the Boot Chain library processes the response and returns to caller.

The library (libmcu_common_if.so) uses Socket Wrapper library for transmission and reception of commands over UDP protocol.

The following parameters are configurable and are maintained in tacp configuration file. Appropriate changes must be made at MCU if the parameter values are altered

IP address of MCU: AURIX_IP_ADDRESS=10.42.0.146

IP address of Tegra A: TEGRA_A_IP_ADDRESS=10.42.0.28

Server Port on MCU: AURIX_BOOTCHAIN_PORT=5001

VLAN ID: e3550_t194a=eth0.200

Implementation at MCU Side

On MCU, UDP packet is evaluated to check if the received packet is Boot Chain Request-command. API from Boot Chain Config Selector is invoked to further process the packet and perform appropriate operation.

Boot Chain Config Selector validates Request-command, performs appropriate operation on valid request, and triggers Response-command transmission.

Boot Chain Config Selector depended on the following modules to perform requested operation.

  • NvM (persistent memory) : To store Boot Chain configuration data
  • Customer SWC: To handle reboot/reset request
  • NVIDIA Orin power control: To get active boot chain (Chain A/B/C/D)

These are the Socket properties for Boot Chain Config.

MCU IP Address: 10.42.0.146

Orin-A IP Address: 10.42.0.28

VLAN Id: 200

Port: 5001