Skip to content

Commit 84cf79a

Browse files
emrahbillurbrianmcgillion
authored andcommitted
AGX Industrial ethernet passthrough
Signed-off-by: Emrah Billur <emrah.billur@unikie.com> PCI Ethernet passthrough AGX-industrial Signed-off-by: Emrah Billur <emrah.billur@unikie.com> Formatting Signed-off-by: Emrah Billur <emrah.billur@unikie.com>
1 parent 1d655a1 commit 84cf79a

File tree

3 files changed

+61
-18
lines changed

3 files changed

+61
-18
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2022-2026 TII (SSRC) and the Ghaf contributors
3+
* SPDX-License-Identifier: CC-BY-SA-4.0
4+
*/
5+
6+
/dts-v1/;
7+
/plugin/;
8+
9+
#include <dt-bindings/clock/tegra234-clock.h>
10+
#include <dt-bindings/reset/tegra234-reset.h>
11+
#include <dt-bindings/power/tegra234-powergate.h>
12+
#include <dt-bindings/memory/tegra234-mc.h>
13+
#include <dt-bindings/interrupt-controller/irq.h>
14+
#include <dt-bindings/interrupt-controller/arm-gic.h>
15+
16+
/ {
17+
overlay-name = "PCI ethernet passthrough";
18+
compatible = "nvidia,p3701-0008";
19+
20+
fragment@0 {
21+
target-path = "/bus@0";
22+
__overlay__ {
23+
pcie@14100000 {
24+
iommus = <>;
25+
};
26+
pcie@14180000 {
27+
iommus = <>;
28+
};
29+
};
30+
};
31+
32+
};

modules/reference/hardware/jetpack/agx-netvm-wlan-pci-passthrough.nix

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ let
1111
in
1212
{
1313
options.ghaf.hardware.nvidia.orin.agx.enableNetvmWlanPCIPassthrough =
14-
lib.mkEnableOption "WLAN card PCI passthrough to NetVM";
14+
lib.mkEnableOption "WLAN or ethernet card PCI passthrough to NetVM";
1515
config = lib.mkIf cfg.agx.enableNetvmWlanPCIPassthrough {
1616
# Orin AGX WLAN card PCI passthrough
1717
ghaf.hardware.nvidia.orin.enablePCIPassthroughCommon = true;
@@ -22,12 +22,26 @@ in
2222
ghaf.virtualization.microvm.netvm.extraModules = [
2323
{
2424
ghaf.services.wifi.enable = true;
25-
microvm.devices = [
26-
{
27-
bus = "pci";
28-
path = "0001:01:00.0";
29-
}
30-
];
25+
# This bus holds the PCI ethernet or WLAN devices on ORIN AGX's
26+
microvm.devices =
27+
if cfg.somType == "agx-industrial" then
28+
[
29+
{
30+
bus = "pci";
31+
path = "0001:01:00.0";
32+
}
33+
{
34+
bus = "pci";
35+
path = "0000:01:00.0";
36+
}
37+
]
38+
else
39+
[
40+
{
41+
bus = "pci";
42+
path = "0001:01:00.0";
43+
}
44+
];
3145
# Network Manager is defined for netvm of Orin Devices
3246
environment.systemPackages = [ pkgs.networkmanager ];
3347
# Network Manager package defines a gnome plugin with build failure on Orin
@@ -41,6 +55,8 @@ in
4155
dtsFile =
4256
if (cfg.somType == "agx64") then
4357
./agx64-ethernet-pci-passthrough-overlay.dts
58+
else if (cfg.somType == "agx-industrial") then
59+
./agx-industrial-ethernet-pci-passthrough-overlay.dts
4460
else
4561
./agx-ethernet-pci-passthrough-overlay.dts;
4662
}
@@ -53,8 +69,9 @@ in
5369
}
5470
];
5571

72+
# The PCI IDs for the onboard Realtek ethernet and wifi cards and the intel ethernet on AGX Industrial
5673
boot.kernelParams = [
57-
"vfio-pci.ids=10ec:c822,10ec:c82f"
74+
"vfio-pci.ids=10ec:c822,10ec:c82f,8086:1533"
5875
"vfio_iommu_type1.allow_unsafe_interrupts=1"
5976
];
6077
};

modules/reference/hardware/jetpack/agx/orin-agx-industrial.nix

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
};
2323

2424
# To enable or disable wireless
25-
networking.wireless.enable = true;
25+
networking.wireless.enable = false;
2626

2727
hardware = {
2828
# Device Tree
@@ -61,17 +61,11 @@
6161
# modules/reference/hardware/jetpack Please refer to that
6262
# section for hardware dependent netvm configuration.
6363

64-
# Wireless Configuration. Orin AGX has WiFi enabled where Orin NX does
65-
# not.
64+
# Wireless Configuration. Orin AGX has WiFi enabled where Orin NX and
65+
# Orin AGX-industrial does not.
6666

6767
# To enable or disable wireless
68-
networking.wireless.enable = true;
69-
70-
# For WLAN firmwares
71-
hardware = {
72-
enableRedistributableFirmware = true;
73-
wirelessRegulatoryDatabase = true;
74-
};
68+
networking.wireless.enable = false;
7569

7670
}
7771
# Hardware info guest support

0 commit comments

Comments
 (0)