# The kernel-dtb partition update failed by flash.sh in r35.3.1

**URL:** <https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155>\
**Category:** Jetson AGX Xavier\
**Tags:** reflash, kernel\
**Created:** [April 17, 2023, 8:02am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155 "2023-04-17T08:02:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Xu\_Xu](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/xu_xu/32/232019_2.png) [@Xu\_Xu](https://forums.developer.nvidia.com/u/Xu_Xu)\
**Post date:** [April 17, 2023, 8:02am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/1 "2023-04-17T08:02:42Z")

</div>

In r35.3.1, I run the following command to update the modified kernel-dtb. But this command doesn’t work at all. What’s more, I can update the kernel-dtb partition correctly by this command in r32.7.3.

> sudo ./flash.sh -r -k kernel-dtb jetson-agx-xavier-devkit mmcblk0p1

After the end of above command I can get the following output:

> \*\*\* The [kernel-dtb] has been updated successfully. \*\*\*

My modified DTB file for AGX Xavier devkit locates at:

> /Linux\_for\_Tegra/kernel/dtb/tegra194-p2888-0001-p2822-0000.dtb

I can only update the dtb file correctly through the following command, but it is too impractical.

> sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1

---

<div class="post-metadata">

**Author:** ![DaveYYY](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/daveyyy/32/233244_2.png) [@DaveYYY](https://forums.developer.nvidia.com/u/DaveYYY)\
**Post date:** [April 17, 2023, 8:52am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/3 "2023-04-17T08:52:08Z")

</div>

So you were able to flash the same customized device tree in r32.7.3, but now it failed in r35.3.1?  
Also, what do you mean by saying “this command doesn’t work at all”? Please put the error message as a text file here.

---

<div class="post-metadata">

**Author:** ![Xu\_Xu](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/xu_xu/32/232019_2.png) [@Xu\_Xu](https://forums.developer.nvidia.com/u/Xu_Xu)\
**Post date:** [April 17, 2023, 10:01am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/4 "2023-04-17T10:01:53Z")

</div>

Hi,

> [@DaveYYY](#):
>
> So you were able to flash the same customized device tree in r32.7.3, but now it failed in r35.3.1?

Yes!

> [@DaveYYY](#):
>
> Also, what do you mean by saying “this command doesn’t work at all”? Please put the error message as a text file here.

(1) Generate the dts file and modify it:

> dtc -I dtb -O dts -o tegra194-p2888-0001-p2822-0000\_test.dts tegra194-p2888-0001-p2822-0000.dtb

Add the following code to the dts file to enable IVC of SPE-FW:

```auto
                };
        };

+ aon_echo {
+ compatible = "nvidia,tegra186-aon-ivc-echo";
+ mboxes = <0x924 0>; #&aon = 0x924
+ status = "okay";
+ };
+
        aondbg {
                compatible = "nvidia,tegra186-aondbg";
                mboxes = <0x924 1>;

```

(2) Re-generate the dtb file:

> dtc -I dts -O dtb -o tegra194-p2888-0001-p2822-0000.dtb tegra194-p2888-0001-p2822-0000\_test.dts

(3) Run the folloing flash command at Linux\_for\_Tegra/ :

> sudo ./flash.sh -r -k kernel-dtb jetson-agx-xavier-devkit mmcblk0p1

At the end of this command `sudo ./flash.sh -r -k kernel-dtb jetson-agx-xavier-devkit mmcblk0p1`, I can get the following message:

> \*\*\* The [kernel-dtb] has been updated successfully. \*\*\*

(4) After the Linux kernel boot successfully, I run the following command to send data to SPE-FW:

> sudo su -c ‘echo tegra \> /sys/devices/platform/aon\_echo/data\_channel’

_ **Then I get a error:** _

> No such file or directory

This error means I think that the `aon_echo` channel can not be created.

_ **Then, If I used the fully flash command** _:

> sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1

_ **The dtb can be updated successfully. Everything is ok!!!** _

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [April 17, 2023, 11:21am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/5 "2023-04-17T11:21:58Z")

</div>

please read /boot/extlinux/extlinux.conf and you will know the reason of this issue.

---

<div class="post-metadata">

**Author:** ![Xu\_Xu](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/xu_xu/32/232019_2.png) [@Xu\_Xu](https://forums.developer.nvidia.com/u/Xu_Xu)\
**Post date:** [April 18, 2023, 1:05am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/6 "2023-04-18T01:05:03Z")

</div>

Hi,  
Thanks for your answer.  
I have correctly loaded the modified DTB file by modifying extlinux.conf. However, I still have a question. When executing the command `sudo ./flash.sh -r -k kernel-dtb jetson-agx-xavier-devkit mmcblk0p1`, the modified DTB file should overwrite the previous DTB file, but the fact is that it is still the previous DTB file in the /boot/dtb/. why is that? Why can r32.7.3 do this by `sudo ./flash.sh -r -k kernel-dtb jetson-agx-xavier-devkit mmcblk0p1` successfully? Is this caused by the difference between the boot mechanism of Uboot and UEFI?

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [April 18, 2023, 3:07am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/7 "2023-04-18T03:07:32Z")

</div>

“kernel-dtb” is a partition. “APP” is another partition.

“APP” partition is where your file system got mounted.

So, when you check “/boot/dtb”, it is under “APP” partition.

But your command “flash -k kernel-dtb” will flash “kernel-dtb” partition.

32.7.3 loads the dtb from kernel-dtb partition.

35.3.1 loads the dtb from APP partition with path /boot/dtb because extlinux.conf tells bootloader to do it.

32.7.3 will have same situation if extlinux has same field too. It was not there, so didn’t happen same situation.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/system/32/68080_2.png) [@system](https://forums.developer.nvidia.com/u/system)\
**Post date:** [May 10, 2023, 1:48am UTC](https://forums.developer.nvidia.com/t/the-kernel-dtb-partition-update-failed-by-flash-sh-in-r35-3-1/250155/9 "2023-05-10T01:48:42Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
