SMCU NFW#

The IGX Thor Developer Kits include a Safety Micro-controller (SMCU) from the Renesas Electronics. This guide provides instructions to flash the SMCU NFW firmware on the IGX Thor Developer Kit Mini (T5000).

Flashing Setup#

To update the SMCU firmware on the IGX Thor Developer Kit Mini (T5000), you will need:

  • A host PC (x86_64) running Ubuntu OS.

  • A monitor connected to the DisplayPort (3) or HDMI port (4) of the Dev Kit.

  • Keyboard and mouse connected to the USB ports (1) of the devkit.

  • The Debug USB-C port (8) of the Dev Kit connected to the host PC.

Refer to the System Overview page for more details on the HW interfaces.

Download SMCU NFW tarball#

Download the SMCU NFW tarball smcu_nfw_R38.5.0_aarch64.tbz2 from the IGX Download Center.

Flashing SMCU FW over UART from host PC#

Follow these steps to check and update the SMCU firmware:

  1. Make sure the Debug USB-C port (8) of the Dev Kit is connected to the host.

  2. Check the UART devices on the host using the command:

    SMCU_SERIAL_DEV=$(ls /dev/serial/by-id/usb-NVIDIA_Tegra_On-Platform_Operator_*-if05)
    TEGEA_SERIAL_DEV=$(ls /dev/serial/by-id/usb-NVIDIA_Tegra_On-Platform_Operator_*-if01)
    
    ls -l /dev/ttyACM*
    ls -l $SMCU_SERIAL_DEV
    ls -l $TEGEA_SERIAL_DEV
    
  3. Usually, the Tegra UART device is the first entry (/dev/ttyACM0) and the SMCU UART device is the 3rd entry (/dev/ttyACM2).

  4. Connect to the SMCU console:

    sudo minicom -D "$SMCU_SERIAL_DEV"
    
  5. Check the SMCU FW version on the SMCU console:

    nfw>
    nfw> version
    Info: Executing cmd: version, argc: 0, args:
    SW Version  2.00.02 rh850_nfw
    Command Executed
    
  6. If the version matches with the current release version, then the firmware is up to date already. Otherwise, follow the next steps to update the firmware.

  7. Unzip SMCU release tarball file:

    sudo tar -xf smcu_nfw_R38.5.0_aarch64.tbz2
    
  8. Close console ports for both SMCU and Tegra (if open).

  9. Flash the SMCU firmware HEX file with script:

    cd smcu/nfw/
    
    # Update first partition.
    sudo python3 ./MCU_Flashing.py  921600 "$SMCU_SERIAL_DEV" "$TEGEA_SERIAL_DEV"  ./P3974_rh850_IGX_nfw.hex
    
    # Run again to update the second partition.
    sudo python3 ./MCU_Flashing.py  921600 "$SMCU_SERIAL_DEV" "$TEGEA_SERIAL_DEV"  ./P3974_rh850_IGX_nfw.hex
    
  10. Check the SMCU FW version after update:

    nfw>
    nfw> version
    Info: Executing cmd: version, argc: 0, args:
    SW Version  2.00.02 rh850_nfw
    Command Executed
    
  11. Power cycle the Dev Kit.

Supported SMCU Commands#

The following are the supported SMCU commands:

SMCU Commands#

S.NO

Command

Description

Testcase

Notes

1

help

Shows all available commands supported

help

N/A

2

version

Show the current flashed/running firmware version

version

N/A

3

showport

Show the state of port X pin y

showport P x y

N/A

4

showallports

Show the state of all board gpio pins

showallports

N/A

5

setport

Set the state of port x pin y to high/low

setport P x y 1

N/A

6

reset

Reset the system

reset/ reset force

N/A

7

poweron

Poweron the system

poweron

N/A

8

poweroff

Poweroff the system

poweroff

N/A

9

monitor_therm

Enable/disable thermal monitoring

monitor_therm enable

N/A

10

tegrarecovery on

put tegra in recovery mode

“tegrarecovery x1 on” followed by “tegrareset x1”

N/A

11

tegrarecovery off

put tegra out of recovery

“tegrarecovery x1 off” followed by “tegrareset x1”

“N/A”

12

tegrareset

Resets Tegra

tegrareset x1

N/A

13

spiread

Read n data using master spi module x

spiread 0x1 0x300 0x1

N/A

14

inforom

Display smcu inforom contents

inforom dump

N/A

15

vrs12

print VRS12 status

vrs12 status

N/A

16

exitsc7

Exit SC7 sleep

exitsc7

work when system is in sc7 state