Unrecognized module SKU error while flashing Jetson Orion NX 16 GB NVme module using initrdsh

Hi,

I am getting the below error when executing the flash command using initrd.sh script.

root@trident-B660M-AORUS-PRO-AX-DDR4:/home/trident/Downloads/r36_3_0/Linux_for_Tegra# sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” -c tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit internal
/home/trident/Downloads/r36_3_0/Linux_for_Tegra/tools/kernel_flash/l4t_initrd_flash_internal.sh --no-flash --external-device nvme0n1p1 -p -c bootloader/generic/cfg/flash_t234_qspi.xml -c tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit internal


  •                            *
    

* Step 1: Generate flash packages *

* ```
                             *

Create folder to store images to flash
Generate image for internal storage devices
Generate images to be flashed
ADDITIONAL_DTB_OVERLAY=“” /home/trident/Downloads/r36_3_0/Linux_for_Tegra/flash.sh --no-flash --sign -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit internal

###############################################################################

L4T BSP Information:

R36 , REVISION: 3.0

User release: 0.0

###############################################################################
ECID is
Board ID() version() sku() revision()
Chip SKU(00:00:00:D3) ramcode() fuselevel(fuselevel_production) board_FAB()
emc_opt_disable_fuse:(0)
Error: Unrecognized module SKU
Error: failed to generate images
Cleaning up…
root@trident-B660M-AORUS-PRO-AX-DDR4:/home/trident/Downloads/r36_3_0/Linux_for_Tegra# sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” --showlogs --network usb0 jetson-orin-nano-devkit internal
/home/trident/Downloads/r36_3_0/Linux_for_Tegra/tools/kernel_flash/l4t_initrd_flash_internal.sh --no-flash --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p -c bootloader/generic/cfg/flash_t234_qspi.xml --showlogs --network usb0 jetson-orin-nano-devkit internal


  •                            *
    

* Step 1: Generate flash packages *

* ```
                             *

Create folder to store images to flash
Generate image for internal storage devices
Generate images to be flashed
ADDITIONAL_DTB_OVERLAY=“” /home/trident/Downloads/r36_3_0/Linux_for_Tegra/flash.sh --no-flash --sign -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit internal

###############################################################################

L4T BSP Information:

R36 , REVISION: 3.0

User release: 0.0

###############################################################################
ECID is
Board ID() version() sku() revision()
Chip SKU(00:00:00:D3) ramcode() fuselevel(fuselevel_production) board_FAB()
emc_opt_disable_fuse:(0)
Error: Unrecognized module SKU
Error: failed to generate images
Cleaning up…

Can this module be flashed when mounted on a DevKit?

We dont have devkit.I doubt SOM is the issue here.

Just to inform about the background of this issue:

  1. This error did not occur initially and we were able to proceed successfully with the first half of the flashing process.
  2. flashing failed in the second half, "waiting for the target to reboot… " - we observed the the uart console log and saw it was error related to eeprom size to be set to “0” as ours it customized carrier board.
  3. We updated this fix and built the dtb files and tried flashing again.

that time we are getting this error…

note, FYI:

  1. when we do lsusb, we can observer “nvidia corp…”
  2. I have updated my device tree also to support micro usb type b for usb2.0 - port 0 used for flashing accordingly.

Sounds like a hardware issue.
If it also cannot be flashed with a DevKit, then clearly the module itself is broken.
If it can, then there’s some issue with your board that the EEPROM on the module cannot be accessed.

How many Jetson modules do you have on your side? If no devkit can try here, then should do cross check with other modules and see if all modules have problem or only one.

I heard we have 4 modules.
We will try to check on other module and see.
But why did it flash once half way through successfully?

cannot we flash by giving values to below parameters explictly for these parametersin the initrd.sh command

Board ID() version() sku() revision()

Please provide the values to be used for these for Orion NX 16 GB

One more observation:

If we use the below command, it throws some error saying cfg() file not found something like that:

but if I re-arrange the parameters like below and run, then it works fine:

**

$sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” -c tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit internal

**

Check Linux_for_Tegra/tools/kernel_flash/README_initrd_flash.txt.

I don’t think that should be the case. It does not make sense at all.
All these parameters are required to be put in fixed positions.

You mean the below command should work fine:

YES, exactly.

In this readme file the command for flashing is bit different( last parameter is external in one place and internal in another place):
Please explain this discrepancy with the command provided in the website:

For a device with internal QSPI and external NVMe:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1
-c tools/kernel_flash/flash_l4t_external.xml
-p “-c bootloader/generic/cfg/flash_t234_qspi.xml --no-systemimg” --network usb0
external

The readme file is just let you know the sku/fab/id value…

Now this flash command executed fine:

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 *
** -c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/t186ref/cfg/flash_t234_qspi.xml” *

** --showlogs --network usb0 jetson-orin-nano-devkit internal**

but again, we are getting the some eeprom slave related error as per the uart serial log in the middle of flashing, which says “waiting for unit to reboot…”

[ 0.0555 ] Sending mb1
[ 0.0559 ] Sending psc_bl1
[ 0.0656 ] Sending bct_mb1
[ 0.0710 ] Generating blob for T23x
[ 0.0732 ] tegrahost_v2 --chip 0x23 0 --generateblob blob.xml blob.bin
[ 0.0740 ] The number of images in blob is 19
[ 0.0743 ] blobsize is 96368595
[ 0.0743 ] Added binary blob_uefi_jetson_with_dtb_sigheader.bin.encrypt of size 3563584
[ 0.1156 ] Added binary blob_pscfw_t234_prod_sigheader.bin.encrypt of size 310768
[ 0.1162 ] Added binary blob_mce_flash_o10_cr_prod_sigheader.bin.encrypt of size 187120
[ 0.1164 ] Added binary blob_tsec_t234_sigheader.bin.encrypt of size 176128
[ 0.1166 ] Added binary blob_applet_t234_sigheader.bin.encrypt of size 279616
[ 0.1168 ] Not supported type: mb2_applet
[ 0.1168 ] Added binary blob_mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt of size 439968
[ 0.1171 ] Added binary blob_xusb_t234_prod_sigheader.bin.encrypt of size 164864
[ 0.1173 ] Added binary blob_nvpva_020_sigheader.fw.encrypt of size 2164640
[ 0.1179 ] Added binary blob_display-t234-dce_sigheader.bin.encrypt of size 12065344
[ 0.1248 ] Added binary blob_nvdec_t234_prod_sigheader.fw.encrypt of size 294912
[ 0.1270 ] Added binary blob_bpmp_t234-TE980M-A1_prod_sigheader.bin.encrypt of size 1027008
[ 0.1276 ] Added binary blob_tegra234-bpmp-3767-0000-a02-3509-a02_with_odm_sigheader.dtb.encrypt of size 383232
[ 0.1279 ] Added binary blob_camera-rtcpu-t234-rce_sigheader.img.encrypt of size 458096
[ 0.1281 ] Added binary blob_adsp-fw_sigheader.bin.encrypt of size 414960
[ 0.1282 ] Added binary blob_spe_t234_sigheader.bin.encrypt of size 270336
[ 0.1284 ] Added binary blob_tos-optee_t234_sigheader.img.encrypt of size 1633344
[ 0.1289 ] Added binary blob_eks_t234_sigheader.img.encrypt of size 9232
[ 0.1291 ] Added binary blob_boot0.img of size 72280064
[ 0.1713 ] Added binary blob_tegra234-p3768-0000+p3767-0000-nv.dtb of size 244275
[ 0.2438 ] tegrarcm_v2 --instance 1-5 --chip 0x23 0 --pollbl --download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin
[ 0.2446 ] BL: version 1.4.0.2-t234-54845784-08a4de08 last_boot_error: 0
[ 0.3324 ] Sending bct_mem
[ 0.3561 ] Sending blob
[ 3.7248 ] RCM-boot started

/home/trident/Downloads/r36_3_0/Linux_for_Tegra


  •                                 *
    
  • Step 3: Start the flashing process *
  •                                 *
    

Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Timeout
Device failed to boot to the initrd flash kernel. Please retrive the serial log during flashing to debug further.
Cleaning up…

Pls find the uart error log attached.
uart_console_flashing_error2.txt (38.2 KB)

…Isn’t this issue on rel-36? If so, why are you using a wrong command?

*-p “-c bootloader/t186ref/cfg/flash_t234_qspi.xml” **

This path totally does not exist on rel-36…

You should just follow moderators suggestion. Most of your trying are just creating unrelated erros. Honestly, this is your own time that got wasted if you are always not able to understand the order and suggestions…

We only suggested

  1. Do crosscheck with all the modules to clarify if this is hardware issue

  2. If you want to hardcoded the value to flash script, then the readme file has the SOM info. We only want you to read this. But not randomly pick any command from readme file.

Oops Yes.
Since we had multiple windows opened, we did not observe this and were overlooking different version Release 35.4.1

Initial Flashing started with the below command taken from Release 35.6.3 documentation page:

$ sudo BOARDID=3767 FAB=300 BOARDSKU=0000 BOARDREV=“” ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” --showlogs --network usb0 jetson-orin-nano-devkit internal

We used this command for flashing:

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” --showlogs --network usb0 jetson-orin-nano-devkit internal

Now, the flashing is stopping in the middle with a different error this time as shown below:

Success
Cleaning up…
Finish generating flash package.
/home/trident/Downloads/r36_3_0/Linux_for_Tegra/tools/kernel_flash/l4t_initrd_flash_internal.sh --network usb0 --usb-instance 1-5 --device-instance 0 --flash-only --external-device nvme0n1p1 -c “tools/kernel_flash/flash_l4t_t234_nvme.xml” --network usb0 jetson-orin-nano-devkit internal

Entry added by NVIDIA initrd flash tool

/home/trident/Downloads/r36_3_0/Linux_for_Tegra/tools/kernel_flash/tmp 127.0.0.1(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
Export list for localhost:
/home/trident/Downloads/r36_3_0/Linux_for_Tegra/tools/kernel_flash/tmp 127.0.0.1


  •                                        *
    
  • Step 1: Build the flashing environment *
  •                                        *
    

Create flash environment 0
/home/trident/Downloads/r36_3_0/Linux_for_Tegra/bootloader /home/trident/Downloads/r36_3_0/Linux_for_Tegra
/home/trident/Downloads/r36_3_0/Linux_for_Tegra
Finish creating flash environment 0.


  •                                              *
    
  • Step 2: Boot the device with flash initrd image *
  •                                              *
    

/home/trident/Downloads/r36_3_0/Linux_for_Tegra/temp_initrdflash/bootloader0 /home/trident/Downloads/r36_3_0/Linux_for_Tegra
./tegraflash.py --bl uefi_jetson_with_dtb_sigheader.bin.encrypt --bct br_bct_BR.bct --securedev --bldtb tegra234-p3768-0000+p3767-0000-nv.dtb --applet rcm_2_encrypt.rcm --applet_softfuse rcm_1_encrypt.rcm --cmd “rcmboot” --cfg secureflash.xml --chip 0x23 --mb1_bct mb1_bct_MB1_sigheader.bct.encrypt --mem_bct mem_rcm_sigheader.bct.encrypt --mb1_cold_boot_bct mb1_cold_boot_bct_MB1_sigheader.bct.encrypt --mb1_bin mb1_t234_prod_aligned_sigheader.bin.encrypt --psc_bl1_bin psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --mem_bct_cold_boot mem_coldboot_sigheader.bct.encrypt --bins “psc_fw pscfw_t234_prod_sigheader.bin.encrypt; mts_mce mce_flash_o10_cr_prod_sigheader.bin.encrypt; tsec_fw tsec_t234_sigheader.bin.encrypt; mb2_applet applet_t234_sigheader.bin.encrypt; mb2_bootloader mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt; xusb_fw xusb_t234_prod_sigheader.bin.encrypt; pva_fw nvpva_020_sigheader.fw.encrypt; dce_fw display-t234-dce_sigheader.bin.encrypt; nvdec nvdec_t234_prod_sigheader.fw.encrypt; bpmp_fw bpmp_t234-TE980M-A1_prod_sigheader.bin.encrypt; bpmp_fw_dtb tegra234-bpmp-3767-0000-a02-3509-a02_with_odm_sigheader.dtb.encrypt; rce_fw camera-rtcpu-t234-rce_sigheader.img.encrypt; ape_fw adsp-fw_sigheader.bin.encrypt; spe_fw spe_t234_sigheader.bin.encrypt; tos tos-optee_t234_sigheader.img.encrypt; eks eks_t234_sigheader.img.encrypt; kernel boot0.img; kernel_dtb tegra234-p3768-0000+p3767-0000-nv.dtb” --bct_backup --instance 1-5
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

Entering RCM boot

[ 0.0399 ] mb1_t234_prod_aligned_sigheader.bin.encrypt filename is from --mb1_bin
[ 0.0399 ] psc_bl1_t234_prod_aligned_sigheader.bin.encrypt filename is from --psc_bl1_bin
[ 0.0399 ] rcm boot with presigned binaries
[ 0.0409 ] tegrarcm_v2 --instance 1-5 --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
Error: Return value 8
Command tegrarcm_v2 --instance 1-5 --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
Cleaning up…

The UART log for the same:

[0072.108] I> Size of crypto header is 8192
[0072.117] I> PSC_FW binary is read from storage
[0072.122] I> PSC_FW binary integrity check is success
[0072.126] I> Binary PSC_FW loaded successfully at 0x80fb4210 (0x49df0)
[0072.133] I> Task: Load nvdec-fw
[0072.136] I> Slot: 0
[0072.138] I> Binary[7] block-117440512 (partition size: 0x100000)
[0072.144] I> Binary name: NVDEC
[0072.147] I> Size of crypto header is 8192
[0072.151] I> Size of crypto header is 8192
[0072.155] I> BCH of NVDEC read from storage
[0072.159] I> BCH address is : 0x800fe000
[0072.163] I> NVDEC header integrity check is success
[0072.168] I> Binary magic in BCH component 0 is NDEC
[0072.172] I> component binary type is 7
[0072.176] I> Size of crypto header is 8192
[0072.185] I> NVDEC binary is read from storage
[0072.190] I> NVDEC binary integrity check is success
[0072.195] I> Binary NVDEC loaded successfully at 0x80000000 (0x46000)
[0072.203] I> Task: Load tsec-fw
[0072.206] I> TSEC-FW load support not enabled
[0072.210] I> Task: GPIO interrupt map
[0072.214] I> Task: SC7 context save
[0072.218] W> SC7_CONTEXT_SAVE: SC7 ctx save is not supported.
[0072.224] I> Task: Load MB2/Applet/FSKP
[0072.228] I> Loading MB2
[0072.230] I> Slot: 0
[0072.232] I> Binary[6] block-100663296 (partition size: 0x80000)
[0072.238] I> Binary name: MB2
[0072.241] I> Size of crypto header is 8192
[0072.245] I> Size of crypto header is 8192
[0072.249] I> BCH of MB2 read from storage
[0072.253] I> BCH address is : 0x8007e000
[0072.257] I> MB2 header integrity check is success
[0072.261] I> Binary magic in BCH component 0 is MB2B
[0072.266] I> component binary type is 6
[0072.270] I> Size of crypto header is 8192
[0072.281] I> MB2 binary is read from storage
[0072.286] I> MB2 binary integrity check is success
[0072.290] I> Binary MB2 loaded successfully at 0x80000000 (0x696a0)
[0072.297] I> Task: Map CCPLEX SHARED carveout
[0072.301] I> Task: Prepare MB2 params
[0072.305] I> Task: Dram ecc test
[0072.308] I> Task: Misc NV security settings
[0072.312] I> NVDEC sticky bits programming done
[0072.316] I> Successfully powergated NVDEC
[0072.320] I> Task: Disable/Reload WDT
[0072.324] I> Task: Program misc carveouts
[0072.328] I> Program IPC carveouts
[0072.331] I> Task: Disable SCPM/POD reset
[0072.335] I> SLCG Global override status := 0x0
[0072.339] I> MB1: MSS reconfig completed
I> MB2 (version: 0.0.0.0-t234-54845784-af79ed0a)
I> t234-A01-0-Silicon (0x12347)
I> Boot-mode : RCM BOOT
I> Emulation:
I> Entry timestamp: 0x04503fef
I> Regular heap: [base:0x40040000, size:0x10000]
I> DMA heap: [base:0x473800000, size:0x800000]
I> Task: SE error check
I> Task: Crypto init
I> Task: MB2 Params integrity check
I> Task: Enable CCPLEX WDT 5th expiry
I> Task: ARI update carveout TZDRAM
I> Task: Configure OEM set LA/PTSA values
I> Task: Check MC errors
I> Task: Enable hot-plug capability
I> Task: Set blob address
I> Task: PSC mailbox init
I> Task: Enable clock for external modules
I> Task: Measured Boot init
I> Task: fTPM silicon identity init
I> fTPM is not enabled.
I> Task: I2C register
I> Task: Map CCPLEX_INTERWORLD_SHMEM carveout
I> Task: Program CBB PCIE AMAP regions
I> Task: Pass DRAM ECC PRL Flag to FSI
I> Task: Load and authenticate registered FWs
I> Task: Load AUXP FWs
I> Successfully register SPE FW load task with MB2 loader
I> Successfully register RCE FW load task with MB2 loader
I> Successfully register DCE FW load task with MB2 loader
I> Unpowergating APE
I> Unpowergate done
I> Successfully register APE FW load task with MB2 loader
I> Skipping FSI FW load
I> Successfully register XUSB FW load task with MB2 loader
I> Successfully register PVA FW load task with MB2 loader
I> spe: Authentication Finalize Done
I> Binary spe loaded successfully at 0x472e00000
I> rce: Authentication Finalize Done
I> Binary rce loaded successfully at 0x472a00000
I> dce: Authentication Finalize Done
I> Binary dce loaded successfully at 0x47a000000
I> ape: Authentication Finalize Done
I> Binary ape loaded successfully at 0x47d800000
I> xusb: Authentication Finalize Done
I> Binary xusb loaded successfully at 0x472f00000
I> pva-fw: Authentication Finalize Done
I> Binary pva-fw loaded successfully at 0x473180000
I> Task: Check MC errors
I> Task: Carveout setup
I> Program remaining OEM carveouts
I> Task: Enable FSI VMON
I> Task: Restore XUSB sec
I> Task: Enable FSI SE clock
I> Task: Initialize SBSA UART CAR
I> Task: Initialize CPUBL Params
I> CPUBL-params @ 0x476000000
I> Task: Prepare eeprom data
E> I2C: slave not found in slaves.
E> I2C: Could not write 0 bytes to slave: 0x00ae with repeat start true.
E> I2C_DEV: Failed to send register address 0x00000000.
E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xae at 0x00000000 via instance 0.
E> eeprom: Retry to read I2C slave device.
E> I2C: slave not found in slaves.
E> I2C: Could not write 0 bytes to slave: 0x00ae with repeat start true.
E> I2C_DEV: Failed to send register address 0x00000000.
E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xae at 0x00000000 via instance 0.
E> eeprom: Failed to read I2C slave device
C> Task 0x0 failed (err: 0x1f1e050d)
E> Top caller module: I2C_DEV, error module: I2C, reason: 0x0d, aux_info: 0x05
I> Busy Spin

Wayne already told you this in your previous topic…

We already updated device tree file for fixing this issue and built DTB files and did reflashing.

Still same issue.

Better delete everything and start over again.
Or delete the copy of that file under Linux_for_Tegra/bootloader/.
Once a copy is generated, the flashing script uses that copy instead of the original file.

Also in one of the thread I saw you have suggested this flashing command to be used for jetpack 6.0

$Sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1
-c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml”
–showlogs --network usb0 internal

Shall we try with this flash command and see?