OTA upgrade avilable for kernel,rootfs dtb in jetson TX2 SDK 32.4.3

root@localhost:/home/ubuntu#
root@localhost:/home/ubuntu# cat /etc/nv_boot_control.conf
TNSPEC 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
COMPATIBLE_SPEC 3489-300—1–jetson-tx2-4GB-mmcblk0p1
TEGRA_CHIPID 0x18
TEGRA_OTA_BOOT_DEVICE /dev/mmcblk0boot0
TEGRA_OTA_GPT_DEVICE /dev/mmcblk0boot1

getting this,it looks mismatch here

Can you use the other methods that connect the device with host to generate BUP? Let the host to directly read the info from target may generate the correct one.

i put the device in recovery mode and run below command to genrate BUP

sudo ./build_l4t_bup.sh jetson-tx2-4GB mmcblk0p1

i am getting below error

root@localhost:/home/ubuntu# nv_update_engine --install
Nvidia A/B-Redundancy Update tool Version 1.2
current slot 0
Start updating slot 1
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mmcblk0boot0
HEADER: MAGIC NVIDIA__BLOB__V2
HEX_VALUE 131072
BLOB_SIZE 5157070
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 17
HEADER_TYPE 0
UNCOMP_SIZE 5157070
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
Device TN Spec: 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
Device Compatible Spec: 3489-300—1–jetson-tx2-4GB-mmcblk0p1
Device TN Spec: 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
Device Compatible Spec: 3489-300—1–jetson-tx2-4GB-mmcblk0p1
Device is fused board.
ENTRY_TABLE:
PART POS LEN VER TNSPEC TYPE UPDATABLE
bpmp-fw 2088 533904 2 1 1
sce-fw 535992 125568 2 1 1
cpu-bootloader 661560 285216 2 1 1
mb2 946776 117568 2 1 1
spe-fw 1064344 95984 2 1 1
secure-os 1160328 366400 2 1 1
mb1 1526728 99664 2 2 1
mts-bootpack 1626392 2082144 2 1 1
mts-preboot 3708536 63104 2 1 1
sc7 3771640 23632 2 1 1
bpmp-fw-dtb 3795272 315392 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 1 1
bootloader-dtb 4110664 254272 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 1 1
VER 4364936 102 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 1 1
BCT 4365038 3584 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 2 1
MB1_BCT 4368622 50448 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 1 1
kernel 4419070 483728 2 1 1
kernel-dtb 4902798 254272 2 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1 1 1
Saving Entry table to /opt/ota_package/entry_table
Writing 533904 bytes to /dev/disk/by-partlabel/bpmp-fw_b for bpmp-fw
Writing 125568 bytes to /dev/disk/by-partlabel/sce-fw_b for sce-fw
Writing 285216 bytes to /dev/disk/by-partlabel/cpu-bootloader_b for cpu-bootloader
Slot could not be opened mb2
mb2 fail to write
Writing to partitions failed.
OTA Blob update failed. Status: 5
/usr/sbin/nv_bootloader_payload_updater --no-dependent-partition failed.
Slot 1 update failed
root@localhost:/home/ubuntu#
CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7 | VT102 | Offline | ttyUSB0

what could be the issue?

Hmm… looks weird. Let me try this on my device.

Device is fused board. what does it mean?

Device is fused board. what does it mean?

That does not matter. All the modules sold in the market are fused.

What is customized on your board so far? I mean diff with pure jetpack release.

so we have download SDK 32.4.3 and compiled own kernel,device tree uboot as per our custom board design for Tx2 4GB and flashing it.

did you check at your end,is it working?? it is not board specific,right?

Hi anupam.kumar,

We can’t reproduce your issue.
List our steps for you reference:

  1. Check TX2-4GB device first:
    $ cat /etc/nv_boot_control.conf
    TNSPEC 3489-300-0888-F.0-1-0-jetson-tx2-4GB-mmcblk0p1
    TEGRA_CHIPID 0x18
    TEGRA_OTA_BOOT_DEVICE /dev/mmcblk0boot0
    TEGRA_OTA_GPT_DEVICE /dev/mmcblk0boot1
  2. Put device into recovery mode
  3. Run below command to generate BUP:
    $ sudo FAB=300 BOARDID=3489 FUSELEVEL=fuselevel_production ./build_l4t_bup.sh jetson-tx2-4GB mmcblk0p1
  4. Copy bl_update_payload to /opt/ota_package/
    **Please make sure you are using the same image to generate BUP.
  5. Enable A/B redundancy:
    $ sudo nv_update_engine --enable-ab
  6. Update engine:
    $ sudo nv_update_engine --install

is this fine

root@localhost:/home/ubuntu# sudo nv_update_engine --enable-ab
Nvidia A/B-Redundancy Update tool Version 1.2
enabling A/B redundancy
Enable A/B command failed. It could be due to A/B being enabled already.
Error: Enable A/B redundancy failed!
root@localhost:/home/ubuntu#
offset size
/dev/mmcblk0boot1 0x3fe000 0x2000

also /dev/mmcblk0boot1 we are using to keep uboot enviornment variable in our custom board…does it cause a issue?

Yes, it is possible.

i reflash the board and then again trying to update using BUP

root@localhost:/home/ubuntu# sudo nv_update_engine --enable-ab
Nvidia A/B-Redundancy Update tool Version 1.2
enabling A/B redundancy
A/B Redundancy has been enabled.
root@localhost:/home/ubuntu#
root@localhost:/home/ubuntu#
root@localhost:/home/ubuntu# sudo nv_update_engine --install
Nvidia A/B-Redundancy Update tool Version 1.2
current slot 0
Start updating slot 1
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mmcblk0boot0
HEADER: MAGIC NVIDIA__BLOB__V2
HEX_VALUE 131072
BLOB_SIZE 5157065
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 17
HEADER_TYPE 0
UNCOMP_SIZE 5157065
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
Device is fused board.
ENTRY_TABLE:
PART POS LEN VER TNSPEC TYPE UPDATABLE
bpmp-fw 2088 533904 2 1 1
sce-fw 535992 125568 2 1 1
cpu-bootloader 661560 285216 2 1 1
mb2 946776 117568 2 1 1
spe-fw 1064344 95984 2 1 1
secure-os 1160328 366400 2 1 1
mb1 1526728 99664 2 2 1
mts-bootpack 1626392 2082144 2 1 1
mts-preboot 3708536 63104 2 1 1
sc7 3771640 23632 2 1 1
bpmp-fw-dtb 3795272 315392 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
bootloader-dtb 4110664 254272 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
VER 4364936 97 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
BCT 4365033 3584 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 2 1
MB1_BCT 4368617 50448 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
kernel 4419065 483728 2 1 1
kernel-dtb 4902793 254272 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
Saving Entry table to /opt/ota_package/entry_table
Writing 533904 bytes to /dev/disk/by-partlabel/bpmp-fw_b for bpmp-fw
Writing 125568 bytes to /dev/disk/by-partlabel/sce-fw_b for sce-fw
Writing 285216 bytes to /dev/disk/by-partlabel/cpu-bootloader_b for cpu-bootloader
Slot could not be opened mb2
mb2 fail to write
Writing to partitions failed.
OTA Blob update failed. Status: 5
/usr/sbin/nv_bootloader_payload_updater --no-dependent-partition failed.
Slot 1 update failed
root@localhost:/home/ubuntu#
root@localhost:/home/ubuntu# cat /etc/nv
nv/ nv-oem-config.conf.t194 nvpmodel/
nv_boot_control.conf nvphsd_common.conf nvpmodel.conf
nvidia-container-runtime/ nvphsd.conf.t186 nv_tegra_release
nv-oem-config.conf.t186 nvphsd.conf.t194
root@localhost:/home/ubuntu# cat /etc/nv
nv/ nv-oem-config.conf.t194 nvpmodel/
nv_boot_control.conf nvphsd_common.conf nvpmodel.conf
nvidia-container-runtime/ nvphsd.conf.t186 nv_tegra_release
nv-oem-config.conf.t186 nvphsd.conf.t194
root@localhost:/home/ubuntu# cat /etc/nv_boot_control.conf
TNSPEC 3489-300-0888-H.0-1-0-jetson-tx2-4GB-mmcblk0p1
TEGRA_CHIPID 0x18
TEGRA_OTA_BOOT_DEVICE /dev/mmcblk0boot0
TEGRA_OTA_GPT_DEVICE /dev/mmcblk0boot1
root@localhost:/home/ubuntu#
CTRL-A Z for help | 115200 8N

it is failing in MB2,other above logs are fine or it has issue?

Could you post every commands you are using on both host and device side for us to review?
And can we also confirm there is no other customization anymore? This is just happened to pure jetpack.

when i removed uboot customization i am able to update the BUP in my board.

my requirment is to only update uboot using ota.
i see these files are genertaed in payload_t18x directory

bl_only_payload bl_update_payload kernel_only_payload

i think kernel_only_payload will only update my uboot only,can you please confirm i have to install it in my board.we have to copy it in /opt/ota_package and run sudo nv_update_engine --install or any other command.

===========regarding Uboot enviorment variable i was keeping it in mmcblk0boot1 that is causing issue…

i see UBENV partition in flash.xml file of bootloader but i am not able to see this partition on board,can you please guide how i can identify which mmc partition it is using.

The updater will update every bootloader component. So you have to make sure other components are using correct content too.

There are other easier method if you only want to update uboot. For example, directly dd a signed uboot image to the partition.

As for your new question, we will check on your new topic.

so my new query is that like kernel and device tree can we make debian package for this bootloader also and can we update ??

https://developer.ridgerun.com/wiki/index.php?title=Customize_JetPack_Installation_with_OTA_Update

apt-get install --reinstall nvidia-l4t-3d-core
nvidia-l4t-apt-source
nvidia-l4t-bootloader
nvidia-l4t-camera
nvidia-l4t-configs
nvidia-l4t-core
nvidia-l4t-cuda
nvidia-l4t-firmware
nvidia-l4t-graphics-demos
nvidia-l4t-gstreamer
nvidia-l4t-init
nvidia-l4t-initrd
nvidia-l4t-initrd
nvidia-l4t-jetson-io
nvidia-l4t-jetson-multimedia-api
nvidia-l4t-kernel
nvidia-l4t-kernel-dtbs \

Yes, you can update those debian package. Please refer to Debian website to get more familiar with deb tool.

so how this A/B mechnism work during OTA update…new image is flashed in A or B partition or in both partition…and when next time device boots it boot from A or B…can you please guide here

It depends on which active slot you are using. I already posted the document so not going to do that again.

The UART log will also tell you the answer.

Hi,when i doing bootloader update it is failing

root@localhost:/home/ubuntu# sudo nv_update_engine --install
Nvidia A/B-Redundancy Update tool Version 1.2
current slot 0
Start updating slot 1
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mmcblk0boot0
HEADER: MAGIC NVIDIA__BLOB__V2
HEX_VALUE 131072
BLOB_SIZE 5157066
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 17
HEADER_TYPE 0
UNCOMP_SIZE 5157066
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3489-300-0888-J.0-1-0-jetson-tx2-4GB-mmcblk0p1
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3489-300-0888-J.0-1-0-jetson-tx2-4GB-mmcblk0p1
Device is fused board.
ENTRY_TABLE:
PART POS LEN VER TNSPEC TYPE UPDATABLE
bpmp-fw 2088 533904 2 1 1
sce-fw 535992 125568 2 1 1
cpu-bootloader 661560 285216 2 1 1
mb2 946776 117568 2 1 1
spe-fw 1064344 95984 2 1 1
secure-os 1160328 366400 2 1 1
mb1 1526728 99664 2 2 1
mts-bootpack 1626392 2082144 2 1 1
mts-preboot 3708536 63104 2 1 1
sc7 3771640 23632 2 1 1
bpmp-fw-dtb 3795272 315392 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
bootloader-dtb 4110664 254272 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
VER 4364936 98 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
BCT 4365034 3584 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 2 1
MB1_BCT 4368618 50448 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
kernel 4419066 483728 2 1 1
kernel-dtb 4902794 254272 2 3489-300—1-0-jetson-tx2-4GB-mmcblk0p1 1 1
Saving Entry table to /opt/ota_package/entry_table
Writing 533904 bytes to /dev/disk/by-partlabel/bpmp-fw_b for bpmp-fw
Writing 125568 bytes to /dev/disk/by-partlabel/sce-fw_b for sce-fw
Writing 285216 bytes to /dev/disk/by-partlabel/cpu-bootloader_b for cpu-bootloader
Slot could not be opened mb2
mb2 fail to write
Writing to partitions failed.
OTA Blob update failed. Status: 5
/usr/sbin/nv_bootloader_payload_updater --no-dependent-partition failed.
Slot 1 update failed
root@localhost:/home/ubuntu#

can you please help here

hmm… can you always share what you’ve tried or modified in this attempt when you ask a question?

You just shared a log and not tell other people what you modified. How is it possible for others to help you if you only share such information?