Whether Bup can update eks or tos

Can I update eks or tos through bup? I’ve tried using flash.sh; I just want to consult whether the bup method is feasible, thank you

hello Barlow,

it’s able to use the OTA payload to update bootloader remotely, but… I’ve never testing with eks or tos partition.
anyways, please give it a try. you may see-also Preparing the OTA Payload Package section for updating Bootloader only.

I followed the instructions here to try it out;
Running the Update Engine
Does this mean that if bup is updated, eks will not be updated, but tos will be updated? I wonder if you have any other ideas or comments;thanks

hello Barlow,

it’s A/B update to reduce the risk of boot failure after a Bootloader update.
anyways, you may create eks_sigheader.img.encrypt locally, and updating EKS partition remotely.

hi, JerryChang
I also have a question, if I package the bup package, and put it in the corresponding position of the target board, and finally use the nv_update_engine --install command to update, update is another slot, right? That is, I am currently in slot 0, then I execute the update command to update slot 1; Is that correct?

If what I said above is correct, then the next question is, if I have updated and the current slot is also the updated slot, should it be possible for me to use the flash.sh script to update eks or tos separately at this time? But now I use nv_update_engine --install after the update is done; Using flash.sh to update the tos or eks partition alone will not help, the script will report that the update is complete, but the serial log will not change

hello Barlow,

it’s fail-safe update to avoid device enter an unbootable state.
please read the details as below…

BSP supports A/B update, which maintains two sets of partitions for booting and running the operating system, designated “slot A” and “slot B.” It uses only one slot at a time, and applies updates to the partitions on the inactive slot, then swaps the roles of the slots. For example, when slot A is active, BSP boots and runs the operating system from the partitions in slot A, and applies updates to those in slot B. This ensures that an update failure cannot render the device unbootable.

regrading to flash script, flash.sh. it’s checking flash configuration file for flash the target.
there’s functionality to perform partition flash, for instance, Flashing a Specific Partition.
so… what’s your commands to update the tos or eks partition alone?

eks:sudo ./flash.sh -r -k eks jetson-agx-xavier-devkit mmcblk0p1
tos:sudo ./flash.sh -k secure-os jetson-agx-xavier-devkit mmcblk0p1

may I also know which Jetpack release version you’re working with?


hello Barlow,

it looks both of them had A/B redundancy.
for instance,

$ ls -al /dev/disk/by-partlabel
lrwxrwxrwx 1 root root  16 Mar 13 02:38 secure-os -> ../../mmcblk0p10
lrwxrwxrwx 1 root root  16 Mar 13 02:38 secure-os_b -> ../../mmcblk0p11
lrwxrwxrwx 1 root root  16 Mar 13 02:38 eks -> ../../mmcblk0p12
lrwxrwxrwx 1 root root  16 Mar 13 02:38 eks_b -> ../../mmcblk0p13

let’s taking EKS as an example,
did you also updating the binary file, (i.e. $OUT/Linux_for_Tegra/bootloader/eks_t194.img) before running the flash script?
could you please also share the flash messages and also bootloader logs for dig into this.

Yes, I updated eks.img before executing the flash.sh script;
eks_flashlog.txt (46.8 KB)
uart_log.txt (50.6 KB)

hello, JerryChang
I am wondering if I need to specify which slot to update if I use flash.sh script to update? Because now if I run the flash script to update eks, only slot A (slot 0) will be updated; No change in slot B; But if I update with nv_update_engine --install, it will update eks out of both slots; I now want to realize that I call nv_update_engine --install without updating the eks partition, is there a way to achieve this; thank you.

hello Barlow,

according to flash logs, since you’ve given -k eks options, it’s only updating eks partition. that’s why you’ll see eks_b remain using the same (previous) binary file.

[  11.5155 ] Writing partition
[  11.5184 ] tegradevflash_v2 --write eks 1_eks_sigheader.img.encrypt
[  11.5195 ] Bootloader version 01.00.0000
[  11.6568 ] Writing partition eks with 1_eks_sigheader.img.encrypt
[  11.6571 ] [................................................] 100%
*** The [eks] has been updated successfully. ***

hello, JerryChang
First of all, thanks for your reply;

According to what you said; So now there are two questions;
1、 I want to use flash to update eks_b, how should I achieve; I tried this command:

sudo ./flash.sh -r -k eks_b jetson-agx-xavier-devkit mmcblk0p1

Prompt after execution:

*** Update [eks_b] is not supported. ***;

2、As my reply above, I want to update using bup without updating the eks partition. Is this possible? I checked that if I used the same command to update bup on tx2 platform, it would not update eks

hello Barlow,

>> Q1
usually, partition update is not used for updating *_b partition.
you may using $ sudo ./flash.sh --no-flash -r -k eks jetson-agx-xavier-devkit mmcblk0p1 to create signed/encrypted eks_t194.img to update it remotely by dd commands.

>> Q2
it should be possible, it might be you’ve updating EKS image before creating BUP payload image.

hello, JerryChang
I wonder if you’ve misunderstood me on this question; Again, I want the eks partition not to be updated when using the command nv_update_engine --install to update a bup package; I tried this command on TX2 and the eks partition will not be updated, but it will be updated on AGX xavier

hello Barlow,

could you please share the complete steps for checking, how did you create BUP payload image?

This is the instruction I executed to create the BUP payload image sudo./l4t_generate_soc_bup.sh t19x
Then install it by referring to the section Running the
Update Engine in the manual

hello Barlow,

so… are those EKS image were default? i.e. $OUT/Linux_for_Tegra/bootloader/eks_t194*.img

No, I changed it