I am using Jetson Nano production module (P3448-0002) with custom board. There are M.2 Key-M PCIe socket on that, 250GB Western Digital SSD in it. With Xavier NX and TX2 NX modules boots very fast, less than 10 seconds, but Nano module has a big delay during u-boot process from SSD in the same carrier board. After booting, the kernel uses the SSD perfectly without any lag. If the nvme boot is the primary option (setenv boot_targets nvme0 mmc1 mmc0 usb0 pxe dhcp), the lag is there even if no SSD in it.
I am using r32.6.1 version of u-boot and kernel with custom compile, but the original binaries produces the same phenomenon.
Is this lag is normal?
What does cause it?
How can I find and/or fix this problem, if it is not normal?
Boot log with lag times:
.....
[0005.237] Updated memory info to DTB
[0005.245] set vdd_core voltage to 1075 mv
[0005.249] setting 'vdd-core' regulator to 1075000 micro volts
[0005.255] Found secure-pmc; disable BPMP
U-Boot 2020.04-g46e4604c78 (Jul 26 2021 - 12:09:42 -0700)
SoC: tegra210
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM: 4 GiB
MMC: sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Device 0: Vendor: 0x15b7 Rev: 211210WD Prod: 21035M465812
Type: Hard Disk
Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)
... is now current device
Scanning nvme 0:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
932 bytes read in 27 ms (33.2 KiB/s)
1: primary kernel
Retrieving file: /boot/initrd
7160133 bytes read in 55 ms (124.2 MiB/s)
Retrieving file: /boot/Image
34615304 bytes read in 172 ms (191.9 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1075 core_edp_ma=4000 gpt tegra_fbmem=0x140000@0x92cb4000 is_hdmi_initialised=1 earlycon=uart8250,mmio32,0x70006000 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/nvme0n1p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1
Retrieving file: /boot/tegra210-p3448-0002-vjc-rev4-b00.dtb
227408 bytes read in 28 ms (7.7 MiB/s)
~28secs lag here
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
Using Device Tree in place at 0000000083000000, end 000000008303a84f
copying carveout for /host1x@50000000/dc@54200000...
copying carveout for /host1x@50000000/dc@54240000...
~9secs lag here
DT property /chosen/nvidia,bluetooth-mac missing in source; can't copy
DT property /chosen/nvidia,wifi-mac missing in source; can't copy
DT property /psci/nvidia,system-lp0-disable missing in source; can't copy
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.253-tegra (laszpar@jetsondev) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Wed Sep 29 17:51:07 CEST 2021
[ 0.000000] Boot CPU: AArch64 Processor [411fd071]
[ 0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[ 0.000000] OF: fdt: - 80000000 , 7ee00000
[ 0.000000] OF: fdt: - 100000000 , 7f200000
[ 0.000000] Found tegra_fbmem: 00140000@92cb4000
[ 0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[ 0.000000] bootconsole [uart8250] enabled
.....