Booting Orin NX From PCIe2/C7

Hi,
The hardware team have designed an Orin NX carrier that is very similar to the Xavier NX carrier and the Seeed Studio NX carrier.
The main difference between our carrier and the examples is that PCIe0/C0 has been connected to an FPGA and PCIe2/C7 has been connected to the M.2 slot for the NVME.
I can boot the Orin NX on our carrier using L4T R35.5.0 and l4t_initrd_flash.sh, i.e.:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd --network usb0 p3509-a02+p3767-0000 internal

I know I can re-flash the Orin NX on the Seeed Studio carrier using p3509-a02+p3767-0000. I re-flashed a Seeed Studio reComputer J4012.
I need help understanding how to change the PCIe configuration so that PCIe2/C7 is enabled and the M.2 NVMe SSD becomes available to l4t_initrd_flash.sh, so it can be flashed, and to the bootloaders so it can be booted from after flashing.
I’ve read Module Bring-Up|Jetson Orin NX and Nano Series and rummaged around in the forum.
Unfortunately, I’m still confused. I can see various .dtb, dts and .dtsi files in bootloader/t186ref/BCT and hardware/nvidia/platform/t23x.
Can anyone give me some pointers that might help me get started? I’m sorry if I’m being a bit slow!
Any help greatly appreciated,
Matt

I’ve been trying to follow/understand the 4 steps listed in Enabling PCIe in a Customer Carrier Board Design.

Step 1: Select the UPHY Config. I think the default is what I want. In other words, gbe-uphy-config-8 = PCIe x2 (C7), RP.
Step 2: Enable the appropriate PCIe node from the table below. I used dtc to create tegra234-p3767-0000-p3509-a02.dts. I changed pcie@141e0000 status to okay. I used dtc to (re-)create tegra234-p3767-0000-p3509-a02.dtb with pcie@141e0000 enabled.
Step 3: Configure controller pins in pinmux. I think the default is correct. As far as I can tell, the function of the PCIE2 pins is for PCIe in the spreadsheet.
Step 4: “Add the pipe2uphy phandle entries as a phy property in the PCIe controller DT node.” I don’t understand this step.

After changing the kernel device-tree and rebooting I could see the change by doing cat pcie@140a0000/status but I didn’t see any NVMe devices in /dev.

Use orin-nano-devkit as your board config. Do not use p3509-a02+p3767-0000.

P3509 is xavier nx carrier board
orin nano devkit is p3768 carrer board.

P3509 does not have anything for PCIe C7. But Orin Nano devkit config already has it.

You could refer to this document.

Thanks, that was exactly the pointer I was looking for! :-)

After doing:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 p3768-0000+p3767-0000-nvme internal

The board booted.

Hi @WayneWWW,

I’ve got a follow-up question. Perhaps it should be a new thread??

I’ve made progress using the p3768 module config. I can program the NVMe and boot from it. We need to use SPI0 so I used the pinmux spreadsheet to change the configuration of the SPI pins, the SPI is working as we expect.

I created a new module config by copying the p3768 and overriding the files so that the files generated by the spreadsheet are used.

My question is about DisplayPort (DP) vs HDMI. We need to use the HDMI. We’re replacing the Xavier NX with Orin NX on our custom board. We use the HDMI with the Xavier NX.

I’ve noticed that one of the differences between the p3768 config and the p3509 config is that p3768 is using DP and p3509 is using HDMI.

If I use the HDMI page of the pinmux spreadsheet to generate the new pinmux files, is that enough to make HDMI work for us with the Orin NX and our custom board?

I haven’t tried HDMI yet. I’m on holiday tomorrow and wanted to ask the question in the hope of avoiding wasting time fumbling around when you know the answer! :-)

Thanks,
Matt

I’ve tried HDMI now and it isn’t working for me yet.

I’ve done what it says in Jetson_Linux_Release_Notes_r35.5.0.pdf.

Replying to my own question.

I’ve got HDMI working now. I didn’t need to do anything other than use the correct spreadsheet page and applied the patch. :-)

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