Can't flash TX2 on a Jetson TX1 board

I’ve an old Jetson TX1 board and I’m trying to upgrade a TX2 I have to the latest L4T 28.2.1

I am running on a Ubuntu 16.04 (no VM) on a desktop. Connected to the Jetson over USB-OTG cable from the Jetson board box.

I tried with both Jetpack and manually calling …

sudo ./flash.sh -S 28GiB jetson-tx2 mmcblk0p1

I get the same error.

tegradevflash_v2 --oem platformdetails eeprom cvm /home/notthetup/apps/JetPack/64_TX2/Linux_for_Tegra/bootloader/cvm.bin
[   1.6584 ] CPU Bootloader is not running on device.
[   1.7848 ]
Error: Return value 4
Command tegradevflash_v2 --oem platformdetails eeprom cvm /home/notthetup/apps/JetPack/64_TX2/Linux_for_Tegra/bootloader/cvm.bin
Reading board information failed.

I have a UART cable connected to J21 on the devboard and here is the error I get.

[0013.655] I> Boot-device: eMMC
[0013.658] I> Entering into 3p server..
[0013.661] I> Transport interface is USB
[0013.665] I> tegrabl_usbf_priv_init:2576 full init:: [0013.670] I>  HIGH SPEED
[0014.071] W> Get desc.Unsupported req: desc_index = 0
[0014.077] I> transport_usbf_priv_open USB configuration success
[0014.084] W> Get desc.Unsupported req: desc_index = 0
[0015.115] I> Populate eeprom info for module cvm
[0015.120] E> tegrabl_i2c_open: failed error = 13098006
[0015.125] E> EEPROM module cvm not recognized
[0015.129] E> Error while reading cvm EEPROM

Any idea what’s wrong?

Another interesting observation.

This file

/home/notthetup/apps/JetPack/64_TX2/Linux_for_Tegra/bootloader/cvm.bin

doesn’t seem to exist.

Could that be an issue? If any ideas why?

Even on a normal bootup though, I’m seeing this

[0000.310] I> Welcome to MB2(TBoot-BPMP)(version: 01.00.160913-t186-M-00.00-mobile-175b7c7b)
[0000.318] I> Default Heap @ [0xd486400 - 0xd488400]
[0000.323] I> DMA Heap @ [0x85200000 - 0x86200000]
[0000.328] I> bit @ 0xd480000
[0000.331] I> BR-BCT relocated to 0xd7020000
[0000.335] I> Boot-device: eMMC
[0000.339] I> sdmmc bdev is already initialized
[0000.343] I> pmic: reset reason (nverc)        : 0x80
[0000.348] I> Reading GPT from 512 for device 00000003
[0000.354] I> Reading GPT from 8388096 for device 00000003
[0000.361] I> Found 13 partitions in 00000003 device
[0000.365] I> Reading GPT from 512 for device 00010003
[0000.372] I> Found 29 partitions in 00010003 device
[0000.377] W> No valid slot number is found in scratch register
[0000.383] W> Return default slot: _a
[0000.387] I> A/B: bin_type (16) slot 0
[0000.390] I> Loading partition bpmp-fw at 0xd7800000
[0000.395] I> Reading two headers - addr:0xd7800000 blocks:1
[0000.401] I> Addr: 0xd7800000, start-block: 58761217, num_blocks: 1
[0000.415] I> Binary(16) of size 529040 is loaded @ 0xd7800000
[0000.421] W> No valid slot number is found in scratch register
[0000.427] W> Return default slot: _a
[0000.430] I> A/B: bin_type (17) slot 0
[0000.434] I> Loading partition bpmp-fw-dtb at 0xd79f0000
[0000.439] I> Reading two headers - addr:0xd79f0000 blocks:1
[0000.444] I> Addr: 0xd79f0000, start-block: 58763633, num_blocks: 1
[0000.458] I> Binary(17) of size 465760 is loaded @ 0xd798e200
[0000.634] I> BPMP-FW load address = 0xd7800000
[0000.638] I> BPMP-FW DTB load address = 0x5018e200
[0000.643] I> Loading SCE-FW ...
[0000.646] W> No valid slot number is found in scratch register
[0000.651] W> Return default slot: _a
[0000.655] I> A/B: bin_type (12) slot 0
[0000.658] I> Loading partition sce-fw at 0xd7300000
[0000.663] I> Reading two headers - addr:0xd7300000 blocks:1
[0000.669] I> Addr: 0xd7300000, start-block: 58765633, num_blocks: 1
[0000.677] I> Binary(12) of size 76592 is loaded @ 0xd7300000
[0000.683] I> Init SCE
[0000.685] I> Copy BTCM section
[0000.688] W> No valid slot number is found in scratch register
[0000.694] W> Return default slot: _a
[0000.697] I> A/B: bin_type (13) slot 0
[0000.701] I> Loading partition cpu-bootloader at 0x96000000
[0000.706] I> Reading two headers - addr:0x96000000 blocks:1
[0000.712] I> Addr: 0x96000000, start-block: 58740737, num_blocks: 1
[0000.723] I> Binary(13) of size 275984 is loaded @ 0x96000000
[0000.729] W> No valid slot number is found in scratch register
[0000.734] W> Return default slot: _a
[0000.738] I> A/B: bin_type (20) slot 0
[0000.741] I> Loading partition bootloader-dtb at 0x8520f400
[0000.747] I> Reading two headers - addr:0x8520f400 blocks:1
[0000.752] I> Addr: 0x8520f400, start-block: 58742785, num_blocks: 1
[0000.764] I> Binary(20) of size 279264 is loaded @ 0x8520f400
[0000.769] I> MB2-params(VA) @ 0xd7000000
[0000.773] I> CPUBL-params(VA) @ 0xd7000000
[0000.777] I> CPUBL-params(PA) @ 0x277000000
[0000.781] I> CPU-BL loaded @ PA 0x96000000
[0000.785] I> Loading TOS ...
[0000.788] W> No valid slot number is found in scratch register
[0000.794] W> Return default slot: _a
[0000.797] I> A/B: bin_type (14) slot 0
[0000.801] I> Loading partition secure-os at 0x8530f600
[0000.806] I> Reading two headers - addr:0x8530f600 blocks:1
[0000.811] I> Addr: 0x8530f600, start-block: 58744833, num_blocks: 1
[0000.820] I> Binary(14) of size 62576 is loaded @ 0x8530f600
[0000.825] I> Copying Monitor (length: 0xf270) from 0x8530f800 to 0x40000000
[0000.832] I> Erasing Monitor @ 0x8530f800
[0000.837] I> Unhalting SCE
[0000.839] I> Primary Memory Start:80000000 Size:70000000
[0000.845] I> Extended Memory Start:f0110000 Size:185ef0000
[0000.851] I> Waypoint2-ACK: 0x52012664
[0000.855] I> MB2(TBoot-BPMP) done

NOTICE:  BL31: v1.2(release):e1e4477
NOTICE:  BL31: Built : 20:40:15, Mar  1 2018
NOTICE:  Trusty image missing.
ERROR:   Error initializing runtime service trusty_fast
[0001.215] I> Welcome to Cboot
[0001.218] I> Cboot Version: 00.00.2014.50-t186-491395e7
[0001.223] I> CPU-BL Params @ 0x277000000
[0001.227] I>  0) Base:0x00000000 Size:0x00000000
[0001.231] I>  1) Base:0x277f00000 Size:0x00100000
[0001.235] I>  2) Base:0x277e00000 Size:0x00100000
[0001.240] I>  3) Base:0x277d00000 Size:0x00100000
[0001.245] I>  4) Base:0x277c00000 Size:0x00100000
[0001.249] I>  5) Base:0x277b00000 Size:0x00100000
[0001.254] I>  6) Base:0x277800000 Size:0x00200000
[0001.258] I>  7) Base:0x277400000 Size:0x00400000
[0001.263] I>  8) Base:0x277a00000 Size:0x00100000
[0001.267] I>  9) Base:0x277300000 Size:0x00100000
[0001.272] I> 10) Base:0x276800000 Size:0x00800000
[0001.276] I> 11) Base:0x30000000 Size:0x00040000
[0001.281] I> 12) Base:0xf0000000 Size:0x00100000
[0001.285] I> 13) Base:0x30040000 Size:0x00001000
[0001.289] I> 14) Base:0x30048000 Size:0x00001000
[0001.294] I> 15) Base:0x30049000 Size:0x00001000
[0001.298] I> 16) Base:0x3004a000 Size:0x00001000
[0001.303] I> 17) Base:0x3004b000 Size:0x00001000
[0001.307] I> 18) Base:0x3004c000 Size:0x00001000
[0001.312] I> 19) Base:0x3004d000 Size:0x00001000
[0001.316] I> 20) Base:0x3004e000 Size:0x00001000
[0001.320] I> 21) Base:0x3004f000 Size:0x00001000
[0001.325] I> 22) Base:0x00000000 Size:0x00000000
[0001.329] I> 23) Base:0xf0100000 Size:0x00010000
[0001.334] I> 24) Base:0x00000000 Size:0x00000000
[0001.338] I> 25) Base:0x00000000 Size:0x00000000
[0001.343] I> 26) Base:0x00000000 Size:0x00000000
[0001.347] I> 27) Base:0x00000000 Size:0x00000000
[0001.351] I> 28) Base:0x84400000 Size:0x00400000
[0001.356] I> 29) Base:0x30000000 Size:0x00010000
[0001.360] I> 30) Base:0x278000000 Size:0x08000000
[0001.365] I> 31) Base:0x00000000 Size:0x00000000
[0001.369] I> 32) Base:0x276000000 Size:0x00600000
[0001.374] I> 33) Base:0x80000000 Size:0x70000000
[0001.378] I> 34) Base:0xf0110000 Size:0x185ef0000
[0001.383] I> 35) Base:0x00000000 Size:0x00000000
[0001.387] I> 36) Base:0x00000000 Size:0x00000000
[0001.392] I> 37) Base:0x2772e0000 Size:0x00020000
[0001.396] I> 38) Base:0x84000000 Size:0x00400000
[0001.401] I> 39) Base:0x96000000 Size:0x02400000
[0001.405] I> 40) Base:0x85000000 Size:0x01200000
[0001.409] I> 41) Base:0x277000000 Size:0x00280000
[0001.414] I> 42) Base:0x00000000 Size:0x00000000
[0001.418] I> 43) Base:0x00000000 Size:0x00000000
[0001.423] GIC-SPI Target CPU: 4
[0001.426] Interrupts Init done
[0001.429] calling constructors
[0001.433] initializing heap
[0001.435] initializing threads
[0001.438] initializing timers
[0001.441] creating bootstrap completion thread
[0001.446] top of bootstrap2()
[0001.449] CPU: ARM Cortex A57
[0001.452] CPU: MIDR: 0x411FD073, MPIDR: 0x80000100
[0001.458] initializing platform
[0001.461] I> Boot-device: eMMC
[0001.465] I> sdmmc bdev is already initialized
[0001.469] I> Reading GPT from 512 for device 00000003
[0001.474] I> Reading GPT from 8388096 for device 00000003
[0001.481] I> Found 13 partitions in 00000003 device
[0001.486] I> Reading GPT from 512 for device 00010003
[0001.492] I> Found 29 partitions in 00010003 device
[0001.496] W> opt-in fuse is not set, skip fuse_burning
[0001.501] I> Bl_dtb @0x8520f400
[0001.504] I> gpio framework initialized
[0001.508] I> tegrabl_gpio_driver_register: register 'tegra_gpio_main_driver' driver
[0001.515] I> tegrabl_gpio_driver_register: register 'tegra_gpio_aon_driver' driver
[0001.523] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xee
[0001.532] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.539] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.547] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.554] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xec
[0001.561] E> i2c dev write failed
[0001.564] E> tca9539_device_init: failed to write polar reg
[0001.569] E> tegrabl_tca9539_init: failed to init device!
[0001.574] E> GPIO TCA9539 driver init failed
[0001.691] I> decompressor handler not found
[0001.698] I> fixed regulator driver initialized
[0001.734] I> register 'maxim' power off handle
[0001.740] I> virtual i2c enabled
[0001.743] I> registered 'maxim,max77620' pmic
[0001.747] I> tegrabl_gpio_driver_register: register 'max77620-gpio' driver
[0001.758] I> Find /i2c@c250000's alias i2c7
[0001.762] I> Reading eeprom i2c=7 address=0x50
[0001.768] E> tegrabl_i2c_open: failed error = 1309800d
[0001.773] E> tegrabl_i2c_dev_open: i2c open failed
[0001.777] E> eeprom: Can't get handle to eeprom device @160
[0001.783] I> Eeprom read failed 0x1a8d8032
[0001.787] I> Reading eeprom i2c=7 address=0x57
[0001.792] E> tegrabl_i2c_open: failed error = 1309800d
[0001.797] E> tegrabl_i2c_dev_open: i2c open failed
[0001.802] E> eeprom: Can't get handle to eeprom device @174
[0001.807] I> Eeprom read failed 0x1a8d8032
[0001.812] I> Find /i2c@c240000's alias i2c1
[0001.816] I> Reading eeprom i2c=1 address=0x51
[0001.821] E> i2c dev read failed
[0001.824] E> eeprom: Retry to read I2C slave device.
[0001.830] E> i2c dev read failed
[0001.833] E> eeprom: Failed to read I2C slave device
[0001.837] I> Eeprom read failed 0x1a89800d
[0001.842] I> Find /i2c@3160000's alias i2c0
[0001.846] I> Reading eeprom i2c=0 address=0x50
[0001.851] E> i2c dev read failed
[0001.854] E> eeprom: Failed to read I2C slave device
[0001.859] I> Eeprom read failed 0x1a89800d
[0001.863] I> Find /i2c@3180000's alias i2c2
[0001.867] I> Reading eeprom i2c=2 address=0x54
[0001.872] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.903] I> Disabling gpio chip_id = 2, gpio pin = 9
[0001.908] I> Device at /i2c@3180000:0x54
[0001.912] I> create_pm_ids: id: 3326-1000-100-M, len: 15
[0001.917] I> config: mem-type:ff,power-config:ff,misc-config:ff,modem-config:ff,touch-config:ff,display-config:ff,, len: 93
[0001.932] I> found one nvdisp nodes at offset = 104144
[0001.937] I> found one nvdisp nodes at offset = 105060
[0001.947] I> enabling 'vdd-hdmi' regulator
[0001.962] I> regulator 'vdd-hdmi' already enabled
[0001.966] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0001.973] I> found one nvdisp nodes at offset = 105864
[0001.978] I> no valid display unit config found in dtb
[0001.983] W> display init failed
[0001.986] initializing target
[0001.989] calling apps_init()
[0001.992] starting app android_boot_app
[0001.996] I> Gpio keyboard init success
[0002.000] I> Kernel type = Normal
[0002.003] I> Loading kernel/boot.img from storage ...
[0002.008] W> No valid slot number is found in scratch register
[0002.013] W> Return default slot: _a
[0002.017] I> A/B: bin_type (0) slot 0
[0002.020] I> Loading partition kernel at 0xa8000000
[0002.780] I> tegrabl_auth_payload: partition kernel (bin_type 0)
[0002.786] W> No valid slot number is found in scratch register
[0002.792] W> Return default slot: _a
[0002.795] I> A/B: bin_type (1) slot 0
[0002.799] I> Loading partition kernel-dtb at 0x92000000
[0002.811] I> tegrabl_auth_payload: partition kernel-dtb (bin_type 1)
[0002.817] I> Kernel DTB @ 0x92000000
[0002.820] I> Checking boot.img header magic ... [0002.825] I> [OK]
[0002.826] I> Valid boot.img @ 0xa8000000
[0002.830] I> decompressor handler not found
[0002.834] I> Copying kernel image (488466 bytes) from 0xa8000800 to 0x80080000 ... [0002.842] I> Done
[0002.843] I> Move ramdisk (len: 0) from 0xa8078000 to 0x9d000000
[0002.850] I> Updated bpmp info to DTB
[0002.856] I> Ramdisk: Base: 0x9d000000; Size: 0x0
[0002.861] I> Updated initrd info to DTB
[0002.864] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.872] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.879] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.886] I> disabled_core_mask: 0xffffff0c
[0002.890] W> No valid slot number is found in scratch register
[0002.896] W> Return default slot: _a
[0002.899] I> Active slot suffix:
[0002.902] I> add_boot_slot_suffix: slot_suffix =
[0002.907] E> Error 445464577: Failed to read CVM EEPROM
[0002.912] E> Failed to get board info. Booting w/o Serial Number
[0002.918] I> Linux Cmdline: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 memtype=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x03100000 nvdumper_reserved=0x2772e0000 gpt tegraid=18.1.2.0.0 tegra_keep_boot_clocks maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2.1 bl_prof_dataptr=0x10000@0x277040000 sdhci_tegra.en_boot_part_access=1
[0002.953] I> Updated bootarg info to DTB
[0002.957] E> "plugin-manager" doesn't exist, creating
[0002.962] E> "odm-data" doesn't exist, creating
[0002.968] E> Error 445464577: Failed to get CVM EEPROM contents
[0002.974] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0002.980] E> Failed to get WIFI MAC address
[0002.984] E> "ids" doesn't exist, creating
[0002.988] E> "connection" doesn't exist, creating
[0002.992] E> "configs" doesn't exist, creating
[0002.996] I> create_pm_ids: id: 3326-1000-100-M, len: 15
[0003.002] I> config: mem-type:ff,power-config:ff,misc-config:ff,modem-config:ff,touch-config:ff,display-config:ff,, len: 93
[0003.013] I> Adding plugin-manager/ids/3326-1000-100=/i2c@3180000:module@0x54
[0003.020] E> "i2c@3180000" doesn't exist, creating
[0003.024] E> "module@0x54" doesn't exist, creating
[0003.033] E> "chip-id" doesn't exist, creating
[0003.037] I> Adding plugin-manager/chip-id/A02P
[0003.044] I> added [base:0x80000000, size:0x70000000] to /memory
[0003.050] I> added [base:0xf0200000, size:0x185e00000] to /memory
[0003.056] I> added [base:0x276600000, size:0x200000] to /memory
[0003.061] E> WARNING: Failed to pass NS DRAM ranges to TOS
[0003.067] I> Updated memory info to DTB
[0003.072] E> "reset" doesn't exist, creating
[0003.076] E> "pmc-reset-reason" doesn't exist, creating
[0003.082] E> "pmic-reset-reason" doesn't exist, creating
[0003.087] I> disabled_core_mask: 0xffffff0c
[0003.099] E> Error 445464577: Failed to read CVM EEPROM
[0003.104] E> Failed to get serial number
[0003.108] I> tegrabl_load_kernel_and_dtb: Done
[0003.112] E> tegrabl_display_clear: display is not initialized
[0003.117] W> Boot logo display failed...

Hi notthetup, there shouldn’t be a USB-OTG adapter used during flashing. The micro-USB port on your Jetson TX2 devkit should be connected directly to a USB2 port on your PC, via the included micro-B to USB A cable. But maybe we are talking about the same thing, this is typically referred to as the OTG adapter (which shouldn’t be used for flashing):

Also, where does the TX1 come into play here? The devkits can’t flash each other, and you can only flash L4T meant for TX2 to TX2 (and likewise, L4T for TX1 to TX1).

Thanks Dusty for the quick reply.

You’re right my description was a little confusing.

USB Cable : I meant that I am using the USB cable that came with the Jetson kit. It’s a standard black USB-microUSB cable with a nVidia Shield Logo on it. I am not at the location of the setup anymore, else I could taken a photo. But it’s NOT the one you put the photo off.

TX1/TX2 : I am using a Jetson dev-board that came originally with a TX1 but I have a TX2 that I got separately that I’m trying to flash using the board now. I am assuming that the boards are specific to the modules (TX1/TX2) since the modules themselves are pin compatible.

Jetpack : In Jetpack I chose Jetpack L4T for TX2.

The Jetson TX2 Developer Kit reference carrier board does include updates/enhancements for TX2 relating to power circuitry, I2C/GPIO expanders, ect., such that TX2 modules shouldn’t be used on the older TX1 devboards. Some of the miniature ecosystem carriers are compatible with both.

Also was it confirmed the TX2 module that you obtained was functioning correctly before you received it?

Oh! OK. I thought they are more or less the same and could be used with each other!

OK. I’ll go find the Jetson board that came with the TX2 then. Hopefully I haven’t killed anything by doing this.

The module was working fine this morning. I decided to reflash it cos I wanted to move to R28.2.1

OK. I managed to get another Jetson TX1 carrier board (not the carrier board that came with the TX2) and it works fine now.

Strangeness!