Hi, everyone:
I want to use the command ‘dd’ to update the DTB file when using an external device, such as NVME SSD. But when i use the following command:
dd if=./xxx.dtb of=/dev/nvme0n1p4 bs=1k
NVMe boot failed.
And when i get the DTB file from ‘/dev/mmcblk0p4’ and use the command before, it boots successfully.
So what file do I need to use dd
to flash if I use a DTB file?
Thank you.
Regards,
ultwcz1997
May I know which jetapck release is that?
cat /etc/nv_tegra_release
R32 (release), REVISION: 7.1, GCID: 29818004, BOARD: t186ref, EABI: aarch64, DATE: Sat Feb 19 17:07:00 UTC 2022
Thank you.
Could you share your boot failure log?
Also the partition label on nvme drive after you boot up.
Hi, @WayneWWW ,
The boot failure log is following:
[0007.167] I> ########## NVME (5) boot ##########
[0007.171] I> Initializing nvme device instance 5
[0007.176] I> Initializing nvme controller
[0007.180] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
[0007.186] I> vpcie3v3-supply not found
[0007.190] I> vpcie12v-supply not found
[0007.193] W> Failed to get nvidia,plat-gpios
[0007.197] I> tegrabl_pcie_soc_preinit: (5):
[0007.201] I> Unpowergate
[0007.204] I> tegrabl_car_clk_disable(5) ...
[0007.208] I> tegrabl_car_rst_set(CORE, 5) ...
[0007.212] I> tegrabl_car_rst_set(APB, 5) ...
[0007.216] I> tegrabl_car_clk_enable(5) ...
[0007.220] I> tegrabl_car_rst_clear(APB, 5) ...
[0007.224] I> tegrabl_set_ctrl_state(5)
[0007.228] I> CLR PCIE_APB:6
[0007.231] I> tegrabl_pcie_soc_init: (5):
[0007.234] I> APPL initialization ...
[0007.238] I> poweron phys
[0007.241] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
[0007.247] I> tegrabl_power_on_phy: power on phy @0x3eb0000
[0007.252] I> tegrabl_power_on_phy: power on phy @0x3ec0000
[0007.257] I> tegrabl_power_on_phy: power on phy @0x3ed0000
[0007.263] I> tegrabl_power_on_phy: power on phy @0x3ee0000
[0007.268] I> tegrabl_power_on_phy: power on phy @0x3ef0000
[0007.273] I> tegrabl_power_on_phy: power on phy @0x3f00000
[0007.279] I> tegrabl_power_on_phy: power on phy @0x3f10000
[0007.284] I> tegrabl_power_on_phy: power on phy @0x3f20000
[0007.426] I> PCIe controller-5 link is up
[0007.426] I> tegra_pcie_info[5].cfg0_base = 0x3a000000
[0007.426] I> tegra_pcie_info[5].cfg1_base = 0x3a020000
[0007.427] I> tegra_pcie_info[5].atu_dma_base = 0x3a040000
[0007.427] I> tegra_pcie_bus[5].mem = 0x3a200000
[0007.427] I> Scanning busnr: 0 devfn: 0
[0007.428] I> PCIe IDs: 0x1ad010de
[0007.431] I> PCIe RID_CC: 0x60400a1
[0007.434] I> Scanning busnr: 1 devfn: 0
[0007.438] I> PCIe IDs: 0x13391c5c
[0007.441] I> PCIe RID_CC: 0x1080200
[0007.444] I> PCI Config: I/O=0x3a100000, Memory=0x3a200000
[0007.450] I> MEM64 bar_num=0 bar=0x3a200000
[0007.454] I> Number of PCIe devices detected: 2
[0007.458] I> NVME page size: 4096
[0007.462] I> NVMe serial number: CY0AN00211220A31I
[0007.466] I> NVMe model number: HFM256GDJTNI-82A0A
[0007.473] I> NVMe firmware revision: 11000C00
[0007.477] I> block_count: 500118192
[0007.480] I> supported_lba: 0
[0007.483] I> block_size_log2: 0x9
[0007.486] I> tegrabl_create_io_queue_cmd: queue size: 2
[0007.491] I> tegrabl_create_io_queue_cmd: queue size: 2
[0007.496] I> nvme device id 000a0005
[0007.500] I> nvme-5 params source =
[0007.504] I> Found 11 partitions in NVME (instance 5)
[0007.508] I> Look for boot partition
[0007.511] I> Fallback: assuming 0th partition is boot partition
[0007.517] I> Detect filesystem
[0007.522] I> Loading kernel-bootctrl from partition
[0007.525] I> Loading partition kernel-bootctrl at 0xa4b10000 from device(0xa)
[0007.533] W> tegrabl_get_kernel_bootctrl: magic number(0x00000000) is invalid
[0007.539] W> tegrabl_get_kernel_bootctrl: use default dummy boot control data
[0007.546] I> Loading extlinux.conf ...
[0007.549] I> Loading extlinux.conf binary from rootfs ...
[0007.555] I> rootfs path: /nvme/boot/extlinux/extlinux.conf
[0007.562] I> Loading extlinux.conf sig file from rootfs ...
[0007.566] I> rootfs path: /nvme/boot/extlinux/extlinux.conf.sig
[0007.572] I> overload load_size to 848 (from 969)
[0007.576] I> Validate extlinux.conf ...
[0007.580] I> T19x: Authenticate extlinux.conf (bin_type: 54), max size 0x2000
[0007.587] E> digest on binary did not match!!
[0007.591] C> OEM authentication of extlinux.conf payload failed!
[0007.597] W> Failed to validate extlinux.conf binary from rootfs (err=1077936152, fail=0)
[0007.605] W> Security fuse not burned, ignore validation failure
[0007.610] I> restore load_size to 969
[0007.614] I> L4T boot options
[0007.617] I> [1]: "primary kernel"
[0007.620] I> Enter choice:
[0010.623] I> Continuing with default option: 1
[0010.623] I> Loading kernel ...
[0010.623] I> Loading kernel binary from rootfs ...
[0010.624] I> rootfs path: /nvme/boot/Image-4.9.140
[0010.803] I> Loading kernel sig file from rootfs ...
[0010.803] I> rootfs path: /nvme/boot/Image-4.9.140.sig
[0010.804] I> overload load_size to 34527240 (from 34527248)
[0010.805] I> Validate kernel ...
[0010.805] I> T19x: Authenticate kernel (bin_type: 37), max size 0x5000000
[0011.119] I> Encryption fuse is not ON
[0011.134] I> Loading kernel-dtb ...
[0011.134] I> No kernel-dtb binary path
[0011.134] I> Continue to load from partition ...
[0011.134] W> No valid slot number is found in scratch register
[0011.135] W> Return default slot: _a
[0011.135] I> A/B: bin_type (38) slot 0
[0011.135] I> Loading kernel-dtb from partition
[0011.137] I> Loading partition kernel-dtb at 0x91000000 from device(0xa)
[0011.147] I> Validate kernel-dtb ...
[0011.148] I> T19x: Authenticate kernel-dtb (bin_type: 38), max size 0x400000
[0011.154] E> Stage2Signature validation failed with SHA2!!
[0011.159] C> OEM authentication of kernel-dtb header failed!
[0011.165] E> Failed to validate kernel-dtb binary from partition (err=1077936152)
[0011.172] E> Failed to load kernel-dtb, abort booting.
[0011.177] E> Failed extlinux boot.
[0011.180] I> removable_boot_load_kernel_and_dtb: force NVME bdev to close !!!
[0011.187] E> NVME (5) boot failed, err: 0x40400018
partition lable
Command (m for help): i
Partition number (1-11, default 11): 4
Device: /dev/nvme0n1p4
Start: 493092904
End: 493093799
Sectors: 896
Size: 448K
Type: Microsoft basic data
Type-UUID: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
UUID: 5D96C979-BB0C-4B94-916F-175161E8A51D
Name: kernel-dtb
thank you.
Did you ever sign your kernel dtb before flashing it to the device?
[0011.137] I> Loading partition kernel-dtb at 0x91000000 from device(0xa)
[0011.147] I> Validate kernel-dtb ...
[0011.148] I> T19x: Authenticate kernel-dtb (bin_type: 38), max size 0x400000
[0011.154] E> Stage2Signature validation failed with SHA2!!
[0011.159] C> OEM authentication of kernel-dtb header failed!
[0011.165] E> Failed to validate kernel-dtb binary from partition (err=1077936152)
[0011.172] E> Failed to load kernel-dtb, abort booting.
Sorry, i do not.
What should i do to sign the DTB file?
Hi,
Please run flash.sh with --no-flash
parameter to create sign/encrypted file locally, then using dd
utility for copying binary file remotely.
The signed file will be shown on your host after you run flash.sh with --no-flash.
Thank you.
I try to use following command to create the signed file.
./flash.sh --no-flash -r --no-systemimg -k kernel-dtb jetson-xavier-nx-devkit-emmc mmcblk0p1
and use dd
to flash the signed file which locate in Linux_for_Tegra/bootloader/xxx_signheader.dtb.encrypt
.
It works fun.
1 Like
system
Closed
December 28, 2022, 1:12am
14
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.