Using Sata Disk To Boot | Jetpack 4.6 rev2

mozturk
Mon, 25 Oct 2021 14:37:35 +0000
Jetson Xavier NX

Hello!

I have a Xavier NX prod module running on a custom carrier board with a mSata port, 512 GB Kingston mSata SSD disk is attached.

I want to boot Xavier NX on SSD. I flashed Jetpack 4.6 rev2 on SSD by using this command at L4T root:

./nvautoflash.sh --storage sda

It created 11 partitions and write data on SSD but NX doesn’t boot from it, it boots from eMMC instead.
I connected to debug console and saw there is a boot order. But there is no option for SATA discs.
SATA disc connects to NX over Marvell 88SE9170 IC which is connected to PCIE0 pins of NX.

I tried to set “boot-order” variable in Cboot as:

TEGRA194 # setvar boot-order nvme:pcie@141a0000 emmc usb sd net
TEGRA194 # printvar boot-order
I> boot-dev-order :-
I> 1.nvme:pcie@141a0000
I> 2.emmc
I> 3.usb
I> 4.sd
I> 5.net
TEGRA194 # boot

But it didnt help, this is the output:

TEGRA194 # setvar boot-order nvme:pcie@141a0000 emmc usb sd net
TEGRA194 # printvar boot-order
I> boot-dev-order :-
I> 1.nvme:pcie@141a0000
I> 2.emmc
I> 3.usb
I> 4.sd
I> 5.net
TEGRA194 # boot
I> found decompressor handler: lz4-legacy
I> decompressing BMP blob ...
I> Kernel type = Normal
I> tegrabl_get_pcie_ctrl_nums: found ctrl_num=5
I> ########## NVME (5) boot ##########
I> Initializing nvme device instance 5
I> Initializing nvme controller
I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
I> vpcie3v3-supply not found
I> vpcie12v-supply not found
W> Failed to get nvidia,plat-gpios
I> tegrabl_pcie_soc_preinit: (5):
I> Unpowergate
I> tegrabl_car_clk_disable(5) ...
I> tegrabl_car_rst_set(CORE, 5) ...
I> tegrabl_car_rst_set(APB, 5) ...
I> tegrabl_car_clk_enable(5) ...
I> tegrabl_car_rst_clear(APB, 5) ...
I> tegrabl_set_ctrl_state(5)
I> CLR PCIE_APB:6
I> tegrabl_pcie_soc_init: (5):
I> APPL initialization ...
I> poweron phys
I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
I> tegrabl_power_on_phy: power on phy @0x3eb0000
I> tegrabl_power_on_phy: power on phy @0x3ec0000
I> tegrabl_power_on_phy: power on phy @0x3ed0000
I> tegrabl_power_on_phy: power on phy @0x3ee0000
I> tegrabl_power_on_phy: power on phy @0x3ef0000
I> tegrabl_power_on_phy: power on phy @0x3f00000
I> tegrabl_power_on_phy: power on phy @0x3f10000
I> tegrabl_power_on_phy: power on phy @0x3f20000
I> PCIe controller-5 link is up
I> tegra_pcie_info[5].cfg0_base = 0x3a000000
I> tegra_pcie_info[5].cfg1_base = 0x3a020000
I> tegra_pcie_info[5].atu_dma_base = 0x3a040000
I> tegra_pcie_bus[5].mem = 0x3a200000
I> Scanning busnr: 0 devfn: 0
I> PCIe IDs: 0x1ad010de
I> PCIe RID_CC: 0x60400a1
I> Scanning busnr: 1 devfn: 0
I> PCIe IDs: 0x91701b4b
I> PCIe RID_CC: 0x1060112
I> PCI Config: I/O=0x3a100000, Memory=0x3a200000
I> IO bar_num=0 bar=0x3a100000
I> IO bar_num=1 bar=0x3a100008
I> IO bar_num=2 bar=0x3a100010
I> IO bar_num=3 bar=0x3a100018
I> IO bar_num=4 bar=0x3a100020
I> MEM bar_num=5 bar=0x3a200000
I> Number of PCIe devices detected: 2
E> tegrabl_nvme_init: Failed tegrabl_pcie_get_dev(5); error=0x0
W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800612
W> Failed to open NVME-5, err = 80800612
W> Failed to initialize device 10-5
E> NVME (5) boot failed, err: 0x80800612
I> ########## Fixed storage boot ##########
I> Loading kernel-bootctrl from partition
...

“lspci -v” output:

root@4-6-rev2:~# lspci -v
0005:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad0 (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 35
Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
I/O behind bridge: 00000000-00000fff
Memory behind bridge: 40000000-400fffff
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [b0] MSI-X: Enable- Count=8 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] #19
Capabilities: [168] #26
Capabilities: [190] #27
Capabilities: [1c0] L1 PM Substates
Capabilities: [1d0] Vendor Specific Information: ID=0002 Rev=4 Len=100 <?> Capabilities: [2d0] Vendor Specific Information: ID=0001 Rev=1 Len=038 <?>
Capabilities: [308] #25
Capabilities: [314] Precision Time Measurement
Capabilities: [320] Vendor Specific Information: ID=0004 Rev=1 Len=054 <?>
Kernel driver in use: pcieport

0005:01:00.0 SATA controller: Marvell Technology Group Ltd. Device 9170 (rev 12) (prog-if 01 [AHCI 1.0])
Subsystem: Marvell Technology Group Ltd. Device 9170
Flags: bus master, fast devsel, latency 0, IRQ 555
I/O ports at 100010 [size=8]
I/O ports at 100020 [size=4]
I/O ports at 100018 [size=8]
I/O ports at 100024 [size=4]
I/O ports at 100000 [size=16]
Memory at 1f40010000 (32-bit, non-prefetchable) [size=512]
Expansion ROM at 1f40000000 [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [70] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: ahci

What entry should I put to boot-order variable in order to make NX boot from SATA SSD?

Sorry for the long post,
Thanks in advance.

5 posts - 3 participants