Reading Orin NX MAC address during flash / recovery mode

I’d like to read the MAC address of the Orin NX while the device is in recovery mode. I was able to do this on the Xavier NX using the following:

sudo ./tegraflash.py --chip 0x19 --applet "mb1_t194_prod.bin" --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins "mb2_applet nvtboot_applet_t194.bin" --cmd "dump eeprom boardinfo temp.bin"

Is there a similar command I can use on the Orin NX?

Hi david.bubenik,

Xavier NX and Orin NX are from different platform and they may use different release.

Are you using the devkit or custom board for Orin NX?
What’s the Jetpack version in use?

I’m using a carrier board from seeed studio:
https://www.seeedstudio.com/reComputer-J4012-p-5586.html

Jetpack 6.1:
R36 (release), REVISION: 4.0, GCID: 37537400, BOARD: generic, EABI: aarch64, DATE: Fri Sep 13 04:36:44 UTC 2024

Could you try to run the following command to check if it could meet your requirement?

$ cd <Linux_for_Tegra>/bootloader
$ sudo ./tegraflash.py --chip "0x23" --applet "mb1_t234_prod.bin" --skipuid --cfg readinfo_t234_min_prod.xml --dev_params tegra234-br-bct-diag-boot.dts --device_config tegra234-mb1-bct-device-p3767-0000.dts --misc_config tegra234-mb1-bct-misc-p3767-0000.dts --bins "mb2_applet applet_t234.bin" --cmd "dump eeprom cvm cvm.bin"

It produced the following error:

gra234-mb1-bct-device-p3767-0000.dts --misc_config tegra234-mb1-bct-misc-p3767-0000.dts --bins "mb2_applet applet_t234.bin" --cmd "dump eeprom cvm cvm.bin"
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0322 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   0.0325 ] File rcm_state open failed
[   0.0334 ] ERROR: failed to read rcm_state
[   0.0334 ] 
[   0.0352 ] tegrasign_v3.py --key None --getmode mode.txt
[   0.0353 ] Assuming zero filled SBK key
[   0.0337 ] Pre-processing config: tegra234-mb1-bct-device-p3767-0000.dts
[   0.0605 ] Pre-processing config: tegra234-mb1-bct-misc-p3767-0000.dts
Error: Return value 1
Command dtc -I dts -O dtb -o tegra234-mb1-bct-misc-p3767-0000_cpp.dtb tegra234-mb1-bct-misc-p3767-0000_cpp.dts

Could you connect the board in force recovery state and run the following command from your host?

$ sudo ./flash.sh --no-flash --no-systemimg -Z jetson-orin-nano-devkit internal

Please share the full log after you run above command.

While running that command, I realized I was working with some out of date files, somehow the contents of my tegra234-mb1-bct-misc-p3767-0000.dts was deleted.

After restoring that file, I re-ran the tegraflash.py command and got another error:

[   3.0496 ] Sending bct_br
[   3.0501 ] Sending mb1
[   3.0566 ] ERROR: might be timeout in USB write.
Error: Return value 3
Command tegrarcm_v2 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader.bin.encrypt --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt

I was able to resolve this error by setting preprod_dev_sign = <0>; in tegra234-br-bct-diag-boot.dts. I am now able to successfully read the MAC by using the tegraflash command you sent.

Do I always need to update tegra234-br-bct-diag-boot.dts? Or is there a way to call tegraflash.py so that it isn’t necessary?

Above command can give you the exact command and options required for tegraflash.py. (in log)
You can use that command directly.

I have no idea why you should do that since I don’t need to modify that device tree when I verified it on the devkit.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.