No Known UDC device found in massflash

I encountered a massflash failure issue

My hardware is Jetson-agx-orin 32G

The software environment is JetPack5.1.1

Using custom carrier board

The command is as follows,
$ sudo BOARDID=3701 FAB=TS4 BOARDSKU=0004 BOARDREV=A.0 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 --massflash 3 jetson-agx-orin-devkit mmcblk0p1
this command successfully generate a massflash package.

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --network usb0 --massflash 3 --showlogs

But it ultimately failed, the terminal printed as follows!
flash_3-7_0_20230818-124226.log (11.4 KB)
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…
Cleaning up…

BOARD ID select from :

Connect to the serial port and view the print log as follows!
uart_debug_log.txt (74.9 KB)

[ 9.686721] tegra-se-nvhost 15820000.se: initialized
[ 9.693623] tegra-se-nvhost 15820000.se: tegra_se_probe: complete
[ 9.697814] tegra-se-nvhost 15840000.se: Adding to iommu group 54
[ 9.704085] tegra-se-nvhost 15840000.se: initialized
[ 9.712691] teg��WARNING: clock_disable: clk_power_ungate on gated domain 35 for gpc1clk
��ra-se-nvhost 15840000.se: tegra_se_probe: complete
[ 9.715855] tegra_actmon d230000.actmon: in actmon_register()…
[ 9.721171] tegra_actmon d230000.actmon: bwmgr_disable = 1
[ 9.727021] tegra_actmon d230000.actmon: initialization Completed for the device mc_all
[ 9.734764] hvc_sysfs: hypervisor��WARNING: clock_disable: clk_power_ungate on gated domain 35 for gpc0clk
�� is not present
[ 9.871210] ALSA device list:
[ 9.871308] No soundcards found.
[ 9.872029] Freeing unused kernel memory: 3968K
[ 9.872186] Run /init as init process
[ 9.883827] Root device found: initrd
[ 9.884282] Mount initrd as rootfs and enter recovery mode
enable_remote_access
enable remote access
insmod /lib/modules/5.10.104/kernel/drivers/mtd/mtd.ko
insmod /lib/modules/5.10.104/kernel/drivers/mtd/devices/qspi_mtd.ko
[ 9.906856] qspi_mtd spi6.0: MX25U51279G (65536 Kbytes)
[ 9.907002] qspi_mtd spi6.0: mtd .name = spi6.0, .size = 0x4000000 (64MiB) .erasesize = 0x00010000 (64KiB) .numeraseregions = 0
[ 9.914009] 1 fixed-partitions partitions found on MTD device spi6.0
[ 9.914190] Creating 1 MTD partitions on “spi6.0”:
[ 9.914320] 0x000000000000-0x000004000000 : “Whole_flash0”
insmod /lib/modules/5.10.104/kernel/drivers/spi/spi-tegra210-qspi.ko
insmod /lib/modules/5.10.104/kernel/drivers/hwmon/pwm-fan.ko
[ 39.903308] vdd-12v-sys: disabling
[ 39.903424] vdd-1v8-sys: disabling
[ 39.903526] vdd-3v3-ftdi: disabling
[ 39.903633] avdd-cam-2v8: disabling
[ 39.903734] dsi-vdd-1v8-bl-en: disabling
No known UDC device found
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.0#
Note: using flash.sh working fine

Moving to AGX Orin forum.

Hi,

is your device a DevKit or a third-party carrier board?
You should use the config for SKU1 if you are using a DevKit.

its not a devkit, self developed carrier board

Then does it work in one single command like this?

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 jetson-agx-orin-devkit mmcblk0p1

if your custom board has some customization in usb and that causes usb device mode fails to work by default, then flashing from initrd flash tool will fail.

But using flash.sh working fine for the same USB port

Yes, as I told, only initrd flash will hit because the flash mechanism is different.

flash.sh does not care about device tree. initrd flash depends on device tree.

If hardware is correct, flash.sh can flash directly. initrd flash requires both hardware + software to be correct.

fine, But didn’t change any customization on flashing USB port, eventhough initrd flash would be hit.
can i know more details about initrd flash mechanism?

NO, its not working again i faced same issue.
No Flash command:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 jetson-agx-orin-devkit mmcblk0p1
This command successfully generate a flash package.
Flash command:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --network usb0 --showlogs

Flash.sh → the hardware pull the module into recovery mode. Flash.sh will flash the QSPI + the eMMC directly

initrd flash-> the hardware pull the module into recovery mode. Flash.sh will flash the QSPI first. Initrd is installed and then used to boot up. Initrd will see what you want to flash and flash it. But initrd is same as kernel, which means it reads the device tree and then search the I/O peripherals.

In this stage, usb device mode is needed and this part depends on device tree. If usb device mode is not able to be up, then initrd will not be able to flash anything.

fine, But didn’t change any customization on flashing USB port, even though initrd flash would be hit.

Based on my experience, most users say “my board is same as devkit” turns out they are not.

The correct procedure is you should use flash.sh to flash your board first. Make sure usb device mode can work fine after kernel boots up. (Make sure that device tree is fine) Then, use that device tree on initrd flash case.

BTW, as we can see your mail address, I am also curious why you don’t file a NV bug?

Thanks @WayneWWW FYI,

Jetson Linux 35.3.1 is part of [JetPack 5.1.1]

one more clarification about to generate flash images for Jetson AGX Orin Reg
The below Command is used to generate a flash image:
$ sudo BOARDID= FAB= BOARDSKU= BOARDREV= ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 --massflash 3 jetson-agx-orin-devkit mmcblk0p1

Attached Image:


Left side image information from Developer Guide Quick Start and Right side image from README_initrd_flash.txt

what is the value of BOARDID, FAB, BOARDSKU and BOARDREV for the Jetson AGX Orin 64GB Devkit and 32GB Devkit

Hi,

Basically, if you want to ask new questions which are not related to original topic, please file a new topic.

No, its related to same topic i think.

because we have face different scenario on this that’s y asked

You can try to dump the eeprom value with command on your jetson module and it will tell you the BOARDID/FAB/SKU.

sudo i2cdump -y 0 0x50

With the reference to this document:
https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/HR/JetsonEepromLayout.html?highlight=eeprom

If you want to clarify the situation, provide more logs may help there.
Also, your previous log got truncated in each line so actually you didn’t provide a clear log yet.

They are somehow missing in the README file in 35.3.1, but added back in 35.4.1.

#
#                                       BOARDID  BOARDSKU  FAB  BOARDREV
#    ----------------------------------+--------+---------+----+---------
#    jetson-agx-xavier-industrial         2888     0008      600  A.0
#    clara-agx-xavier-devkit              3900     0000      001  C.0
#    jetson-xavier-nx-devkit              3668     0000      100  N/A
#    jetson-xavier-nx-devkit-emmc         3668     0001      100  N/A
#    jetson-xavier-nx-devkit-emmc         3668     0003      N/A  N/A
#    jetson-agx-xavier-devkit (16GB)      2888     0001      400  H.0
#    jetson-agx-xavier-devkit (32GB)      2888     0004      400  K.0
#    jetson-agx-orin-devkit               3701     0001      TS1  C.2
#    jetson-agx-orin-devkit               3701     0000      TS4  A.0
#    jetson-agx-xavier-devkit (64GB)      2888     0005      402  B.0
#    holoscan-devkit                      3701     0002      TS1  A.0
#    jetson-agx-orin-devkit               3701     0004      TS4  A.0
#    jetson-agx-orin-devkit (64GB)        3701     0005      500
#    jetson-orin-nano-devkit (NX 16GB)    3767     0000      300
#    jetson-orin-nano-devkit (NX 8GB)     3767     0001      300
#    jetson-orin-nano-devkit (Nano 4GB)   3767     0004      300
#    jetson-orin-nano-devkit (Nano 8GB)   3767     0003      300
#    jetson-orin-nano-devkit (Nano 8GB)   3767     0005      300
#    ----------------------------------+--------+---------+----+---------
1 Like

using this:

The command is as follows,
$ sudo BOARDID=3701 FAB=500 BOARDSKU=0004 BOARDREV=G.0 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 --massflash 2 jetson-agx-orin-devkit mmcblk0p1

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --network usb0 --massflash 2 --showlogs


left side image UART Log and right side image Flash command terminal log
Uart log:
uart_log.txt (17.1 KB)
Flash command terminal log:
[ 432.8259 ] Writing partition B_rce-fw with camera-rtcpu-t234-rce_sigheader.img.encrypt [ 537952 bytes ]
[ 436.1458 ] […] 100%
[ 436.1709 ] Writing partition B_adsp-fw with adsp-fw_sigheader.bin.encrypt [ 400960 bytes ]
[ 442.7774 ] […] 100%
[ 442.7966 ] File to be written cannot be of zero size, pFileName=qspi_bootblob_ver.txt
Error: Return value 10
Command tegradevflash_v2 --instance 3-4 --pt flash.xml.bin --create
Cleaning up…

flash_3-4_0_20230829-204621.log (67.5 KB)
can you let me know how to avoid this error

Could you try the same parameter but without using massflash case and see if it can flash your board?

Cannot flash the board. again also faced same behavior.

Run Command as below:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --network usb0 --showlogs