ODMDATA for UPHY lanes

Hi,

We are designing our own carrier board for Xavier SoM.
We want to have one USB3 (1 uphy), one M.2 E key (1 uphy), two M.2 M keys (2 x 4 uphy), one pcie-ethernet adapter (1 uphy), one UFS and Micro SD Card (1 uphy), and one 8 lanes pcie connector (8 uphys). We only need PCIe and USB in host mode only.

After playing with Jetson_AGX_Series_DevKit_Pinmux_Configuration_Template.xlsm. This is what we got for all UPHY assignment:
uphy0: C1 (connect to pcie ethernet adapter)
uphy1: usb3-2 (USB3 port #2)
uphy2-5: C0 (M.2 M key)
uphy6-9: C4 (M.2 M key)
uphy10: C2 (M.2 E key)
uphy11: UFS micro SD.
all 8 nvhs-uphys: C5 (general 8 lanes pcie connector)

I saw most uphy assignment are defined in Linux device-tree. But according to Tegra_Linux_Driver_Package_AGX_Xavier_Adaptation_Guide.pdf, we also need to change the ODMDATA value.
Currently xavier devkit is using ODMDATA=0x9190000. We need to change it to: pcie-xbar-4-1-1-0-4 (b01011), enable-ufs-uphy-l11 (b01), disable-sata.
Therefore, ODMDATA=0x58990000.

My questions are:

  1. Does eMMC on Xavier SoM module use any uphy?
  2. Where is the uphy assignment for UFS micro-SD defined in Linux device-tree? I only see uphy assignment for PCIe and USB3 defined in Linux device-tree. Currently, UFS micro-SD is configured to use uphy10. We basically want to change it to use uphy11. Other than ODMDATA bit change, is there anything else we need to change?
  3. Is my ODMDATA=0x58990000 correct? I don’t see (nvhs) uphy for C5 in ODMDATA.

Thanks.

Hi,

  1. Does eMMC on Xavier SoM module use any uphy?

No, eMMC does not use any uphy.

  1. Where is the uphy assignment for UFS micro-SD defined in Linux device-tree? I only see uphy assignment for PCIe and USB3 defined in Linux device-tree. Currently, UFS micro-SD is configured to use uphy10. We basically want to change it to use uphy11. Other than ODMDATA bit change, is there anything else we need to change?
  2. Is my ODMDATA=0x58990000 correct? I don’t see (nvhs) uphy for C5 in ODMDATA.

We don’t support to change the UPHY mapping for Xavier series. Please use the same configuration as devkit if possible.

Hi,

Thanks for your quick reply.
What do you mean by “We don’t support to change the UPHY mapping for Xavier series.”?
Why in Jetson_AGX_Series_DevKit_Pinmux_Configuration_Template.xlsm it is able to select each UPHY for different peripherals (PCIe, UFS, USB3)? And also in Tegra_Linux_Driver_Package_AGX_Xavier_Adaptation_Guide.pdf it also documented how to change UPHY mapping in ODMDATA?

Theoretically, will it work if we do all UPHY assignments properly in linux device-trree and ODMDATA?
Or changing UPHY mappings is something not tested or even not supported in Xavier?

Thanks.

Hi,

One more question that I forgot to ask?
For C5 (the PCIe controller #5 which uses nvhs uphys), how many nvhs uphys can it use? 8 or 4?
The devkit uses 8 lane, so I think C5 can use all 8 nvhs uphys?

Thanks.

Any update on re-mapping the UPHY lanes for different configurations than the Carrier? I’d like to set up for two PCIe x8 ports.

I find this example of enabling PCIe C4 (not used on the carrier): Enable PCIe Controller C4 on Xavier - #3 by vidyas

There is no support to change for the uphy mapping on xavier. Please use the same design as devkit mapping.