How to update cboot and mb1 BCT each individually on Xavier side

Hi,

I know how to update cboot and mb1 BCT each individually using flash script on host side:
For MB1 BCT:
sudo ./flash.sh -k MB1_BCT jetson-xavier mmcblk0p1
For cboot:
sudo ./flash.sh -k cpu-bootloader jetson-xavier mmcblk0p1

But I want to update cboot and mb1 BCT each individually on Xavier side. How can I do it?

Regards,
Shuo

Hi Shuo,

You could try to use “dd” tool to write the partition directly. Actually, it is not an official method so I will let other forum user to share their experience here.

Hello lunarking1028,

In the past, I have successfully updated cpu-bootloader partition on Xavier using the “dd” method. IIRC, I used to follow below steps:

  1. Build an encrypted file out of the cboot_t194.bin file:
sudo ./flash.sh --no-flash -k cpu-bootloader jetson-xavier mmcblk0p1
  1. SCP over the generated bootloader/cboot_t194_sigheader.bin.encrypt over to the Xavier.
  2. “dd” the encrypted file to the appropriate partition
dd if=/tmp/cboot_t194_sigheader.bin.encrypt of=/dev/mmcblk0p<partition_num>
  1. Reboot for the change to take effect.

AFAIK, this was working till JetPack 4.2.1. I have not tried with latest JetPack versions, but I don’t see any reason for it to not work.

Hi,

Thank you. I tried your steps and it works.

I have 2 more questions:

  1. Is there a way to build encrypted cboot_t194_sigheader.bin.encrypt file on Xavier side instead of using flash.sh script? And encryption of cboot is mandatory correct?

  2. How can I update MB1_BCT on Xavier side? What troubles me for MB1_BCT case is that I don’t know which mmc partition is for MB1_BCT. Base on this:
    https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-322/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fpart_config.html%23wwpID0EJHA

MB1_BCT is in sdmmc_boot partition instead of sdmmc_user partitions.
Which mmc partition/device name should I use for dd command to upgrade MB1_BCT?

Regards,
Shuo

Hello,

Good to know that it worked for you.

  1. Is there a way to build encrypted cboot_t194_sigheader.bin.encrypt file on Xavier side instead of using flash.sh script? And encryption of cboot is mandatory correct?

The binary that encrypts the binaries is an x86_64 file, so it can’t be run on Xavier. But you can build one encrypted binary and flash it on many Xaviers using the “dd” command.

For question 2, I don’t know about it, may be someone from NVIDIA can comment about it.

Hi NVIDIA,

Any update on how to update MB1 BCT on Xavier side? What command to use and which emmc partition to write to?

Regards,
Shuo