Add an Ethernet VF in the PCT Configuration

Add a new device in guest configuration into the drive_av PCT guest configuration. Specify the properties of the new ethernet virtual function.

Ethernet Virtual Function Structure

This is defined in the pct. A new virtual function configuration must be added to the guest configuration file.

  • nr_chan
    • Description:
      • Specifies the count of DMA channels assigned to the virtual machine.
    • Values:
      • EQOS: The rage is from 1 to 8 max
      • MGBE: The rage id from 1 to 10 max
    • Conditions:
      • The minimum value should be 1.
  • stream_id
    • Description:
      • SMMU Stream is to be used by the virtual function.
    • Values:
      • EQOS:

TEGRA_SID_NISO1_EQOS,

TEGRA_SID_NISO1_EQOS_VF1 to TEGRA_SID_NISO1_EQOS_VF4
  • MGBEL

TEGRA_SID_NISO0_MGBE,

TEGRA_SID_NISO0_MGBE_VF1 to TEGRA_SID_NISO0_MGBE_VF20

  • Condition:
    • Should not use the stream ID used by other VFs
  • Channel[]
    • Description:
      • DMA channels list that needs to be used by this VF
    • Values:
      • EQOS: List values should be in 0 to 3
      • MGBE: List values should be in 0 to 4
    • Conditions:
      • Must be a unique value for the corresponding controller across all VF’s
      • The size of the list has to nr_chan value
      • It shouldn’t contain duplicate values
  • vinfterface
    • Description:
      • IVC channel between Virtual Machine and Ethernet Server
    • Values:
      • “RESOURCE_POOL(429, 1)” to “RESOURCE_POOL(445, 1)”
    • Conditions:
      • Only one IVC channel per VF
      • Must be a unique value for the corresponding controller across all VF’s
  • vf_id
    • Description:
      • VF number for this device.
    • Values:
      • PCT_ETHERNET_VF_ID_1 to PCT_ETHERNET_VF_ID_5
    • Conditions:
      • For EQOS controller, max of four IDs are possible
      • For MGBE controller, max of five IDs are possible
      • In a given EQOS/MGBE port configuration, all VFs should have unique IDs

Reference PCT Device Node:

.ethernet_cfg = {
			{
				.nr_chan = 1,
				.stream_id = TEGRA_SID_NISO1_EQOS_VF2,
				.channel[0] = 2,
				.vinterface = {
					.queues = RESOURCE_POOL(436, 1),
				},
				.vf_id = PCT_ETHERNET_VF_ID_3,
			},
			{
				.nr_chan = 1,
				.stream_id = TEGRA_SID_NISO1_EQOS_VF3,
				.channel[0] = 3,
				.vinterface = {
					.queues = RESOURCE_POOL(437, 1),
				},
				.vf_id = PCT_ETHERNET_VF_ID_4,
			},
		},