AV PCT Input/Output Resource Assignment

The ownership of input and output peripherals is divided between the guest OS and the service VMs.

The following table details the type of access the guest OS or service VMs have for each I/O peripheral.

Table 1. QNX and Linux PCT Standard/Production Package Profile
Resources Resources Shared Update VM Guest OS
DRAM Yes 512 MB ~30 GB(32 GB RAM) / ~13 GB(16 GB RAM)
iGPU Yes Not applicable Virtual
DLA No Not applicable DLA0, DLA1
PVA No Not applicable PVA0, PVA1
NvEnc / OFA No Not applicable Assigned
VIC No Not applicable Assigned
Display No Not applicable Assigned
QSPI Yes Virtual Not applicable
eMMC0 (32/64 GB) Yes Virtual Virtual
UFS (265 GB) Yes Virtual Virtual
1G Ethernet No Not applicable Assigned
SPI Master No Not applicable Assigned
SPI Slave No Not applicable Assigned (Only for Linux PCT)
RCE (ISP, VI, MIPICAL, NVCSI, CSI lanes) No Not applicable Assigned
I2C Master No Not applicable Assigned
GPIO No Not applicable Assigned
Tegra CAN No Not applicable Assigned
NVDEC No Not applicable Assigned
NVJPG No Not applicable Assigned
10G Ethernet No Not applicable Assigned

PCIe Controller [5,6]

EP+RP for C2C

No Not applicable Assigned (Only for P3710)
PCIe Controller [2], UART [2] for Wifi/BT No Not applicable Assigned
SE Engine Yes Virtual Virtual
I2S, A2B/codec driver No Not applicable Assigned
dGPU No Not applicable Assigned
Table 2. Dual-QNX PCT Standard/Production Package Profile
Resources Resources Shared? Update VM Guest OS Guest OS1
DRAM Yes 512 MB ~29 GB(32 GB RAM) / ~12 GB (16 GB RAM) 512 MB
iGPU Yes Not applicable Virtual Not applicable
DLA No Not applicable DLA0, DLA1 Not applicable
PVA No Not applicable PVA0, PVA1 Not applicable
NvEnc / OFA No Not applicable Assigned Not applicable
VIC No Not applicable Assigned Not applicable
Display No Not applicable Assigned Not applicable
QSPI Yes Virtual Not applicable Not applicable
eMMC0 (32/64 GB) Yes Virtual Virtual Virtual
UFS (265 GB) Yes Virtual Virtual Not applicable
1G Ethernet No Not applicable Assigned Not applicable
SPI Master No Not applicable Assigned Not applicable
SPI Slave No Not applicable Assigned (Only for Linux PCT) Not applicable
RCE (ISP, VI, MIPICAL, NVCSI, CSI lanes) No Not applicable Assigned Not applicable
I2C Master No Not applicable Assigned Not applicable
GPIO No Not applicable Assigned Not applicable
Tegra CAN No Not applicable Assigned Not applicable
NVDEC No Not applicable Assigned Not applicable
NVJPG No Not applicable Assigned Not applicable
10G Ethernet No Not applicable Assigned Not applicable

PCIe Controller [5,6]

EP+RP for C2C

No Not applicable Assigned (Only for P3710) Not applicable
PCIe Controller [2], UART [2] for Wifi/BT No Not applicable Not applicable Assigned
SE Engine Yes Virtual Virtual Virtual
I2S, A2B/codec driver No Not applicable Assigned Not applicable
dGPU No Not applicable Assigned Not applicable
Note: Regarding SDRAM usage, the amount of physical memory available for each virtual machine for virtual RAM is determined by a fixed (base) amount plus a dynamic (growth) amount. The value for the fixed amount is read directly from the PCT. The value for the dynamic amount is based on the amount of memory remaining after the fixed allocation and subsequently assigned to each virtual machine based on a per-VM growth factor. Higher growth factors result in a higher proportion of memory allocated to a virtual machine.

HDMI Configuration

To support HDMI hot plugging,

  1. The dtsi node dp_aux_ch0_hpd_pm0 of the pinmux configuration must be manually changed from "dp" to "rsvd1" below in pinmux/tegra234-mb1-bct-gpio-p3701-0001.dtsi:

    dp_aux_ch0_hpd_pm0 {
                            ...
                            nvidia,function = "rsvd1";
                            };
    Note: The dp_aux_ch0_hpd_pm0 node is automatically generated using the steps described in Configuring Pinmux and GPIO.
  2. Enable GPIO port M pin 0 GPIO pin, which is HDMI hotplug GPIO pin in pinmux/tegra234-mb1-bct-pinmux-p3701-0001.dtsi as shown below:

    gpio_main_default: default {
        gpio-input = <
                  ...
                  TEGRA234_MAIN_GPIO(M, 0)
                  ...
                  >;
              };