Failed to upgrade dts fie to target

I tried to update dts file and build dts file and flash to TX1 Board,

The following is my steps:
export TEGRA_KERNEL_OUT=/home/martin/nvidia/TX1/kernel_out

  1. make some change on the file tegra210-jetson-cv-camera-e3333-a00.dtsi(/home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/sources/hardware/nvidia/platform/t210/jetson/kernel-dts/jetson-platforms)
  2. cd /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/sources/kernel/kernel-4.4
  3. Type “make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j8” to build the kernel and dts file
  4. copy 4 dtb files at kernel_out directory to /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/kernel/dtb/
    cp /home/martin/nvidia/TX1/kernel_out/arch/arm64/boot/dts/tegra210-jetson-cv-base-p2597-2180-a00.dtb /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/kernel/dtb/
    cp /home/martin/nvidia/TX1/kernel_out/arch/arm64/boot/dts/tegra210-jetson-e-base-p2595-0000-a00.dtb /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/kernel/dtb/
    cp /home/martin/nvidia/TX1/kernel_out/arch/arm64/boot/dts/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/kernel/dtb/
    cp /home/martin/nvidia/TX1/kernel_out/arch/arm64/boot/dts/tegra210-jetson-tx1-p2597-2180-a02-devkit-24x7.dtb /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra/kernel/dtb/
  5. Enter the directory /home/martin/nvidia/TX1/64_TX1/Linux_for_Tegra and Type command “./apply_binaries.sh”
  6. Let Tx1 Enter into Recover mode and Type Command “./flash.sh -r -k DTB jetson-tx1 mmcblk0p1”

But it seem that it is running the old dtb file from serial debug message.
[ 0.195892] DTB Build time: Mar 1 2018 20:46:06 //This is old build time
I get something missing?

I’m not sure if that date is actually from the device tree (though it might be). Which L4T release are you using (see “head -n 1 /etc/nv_tegra_release”)?

You might want to reverse compile the running system’s device tree and see if any of the changes you made are actually in the tree or not in order to verify that date is what you think it is. From your running system:

sudo apt-get install device-tree-compiler
dtc -I fs -O dts -o extracted.dts /proc/device-tree

Then look at “extracted.dts” and see if it contains the changes you made.

My L4T release version is R28.2

update is as following:
After do some debug,It seem the command “./flash.sh -r -k DTB jetson-tx1 mmcblk0p1” didn’t flash the updated dtb file to target board.
But it is ok when flash the entire image to board with command “./flash.sh jetson-tx1 mmcblk0p1” .
Before flash DTB, I just copy the dtb file from kernel_out/arch/arm64/boot/dts/*.dtb to $(TOP_DIR)/Linux_for_Tegra/kernel/dtb/

Can you help me check the flash only DTB command and see if there are something missing?
In Addition, What is the command for only flash kernel image with recovery mode? because we 're debug the kernel driver frequently.

There has been a lot of change over various releases with how the device tree is included, so it wouldn’t surprise me if a specific command failed. I would probably have to sit there and monitor the flash logs to figure it out, but R28.2 introduced signing and there was at least one patch needed for this to work correctly. See:
https://devtalk.nvidia.com/default/topic/1036286/jetson-tx1/flashing-just-dtb-on-28-2-and-tx1/post/5264465/#5264465

Once that patch is in I’m thinking probably the flash of just the device tree will work.

I’m not positive on the kernel flash part, but I think it was something like this (and this is probably wrong since this also changes depending on release):

./flash.sh -r -k kernel jetson-tx1 mmcblk0p1

The reason this might be the case is that the “-k” goes by partition ID and I am thinking the partition label “kernel” is correct. On the other hand, it might be you also need to specify the “-K ” option (naming the “Image” file after putting this in the correct place).

Does anyone remember the specific kernel flash command on R28.2?

The DTB flash patch is working fine.
But ./flash.sh -r -k kernel jetson-tx1 mmcblk0p1 don’t upgrade the Image to board even if the log show flash kernel successfully.
I also tried “- K ”, it will flash entire flash.

Someone who knows the details of R28.2 flash.sh would have to comment on any patches/edits needed for flashing the specific kernel and nothing else. I suspect more patching is required.

However, it would be useful to see a log of the flash. For example:

sudo ./flash.sh  -r -k kernel jetson-tx1 mmcblk0p1 2>&1 | tee log_kernel_flash.txt

hello 27653276,

you should specify correct partition name with the “-k” options.
suggest you check the flash.xml to understand the partition naming,
for example,

$OUT/Linux_for_Tegra/bootloader/flash.xml

here’s commands to update kernel image for jetson-tx1

$ sudo ./flash.sh -r -k LNX jetson-tx1 mmcblk0p1