From 773fbb775b73f6f342e521bff028acab62e85729 Mon Sep 17 00:00:00 2001 From: Daniel Fullmer Date: Tue, 18 Jun 2024 11:30:28 -0700 Subject: [PATCH] Add Xavier AGX Industrial This is has not been tested at all for lack of hardware. --- flake.nix | 1 + modules/default.nix | 1 + modules/devices.nix | 10 ++++++++++ modules/flash-script.nix | 3 +++ 4 files changed, 15 insertions(+) diff --git a/flake.nix b/flake.nix index dcba7325..9a5a09f7 100644 --- a/flake.nix +++ b/flake.nix @@ -41,6 +41,7 @@ { som = "orin-nx"; carrierBoard = "devkit"; } { som = "orin-nano"; carrierBoard = "devkit"; } { som = "xavier-agx"; carrierBoard = "devkit"; } + { som = "xavier-agx-industrial"; carrierBoard = "devkit"; } # TODO: Entirely untested { som = "xavier-nx"; carrierBoard = "devkit"; } { som = "xavier-nx-emmc"; carrierBoard = "devkit"; } ]); diff --git a/modules/default.nix b/modules/default.nix index 0b289364..86b3cb17 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -70,6 +70,7 @@ in "orin-nx" "orin-nano" "xavier-agx" + "xavier-agx-industrial" "xavier-nx" "xavier-nx-emmc" ]; diff --git a/modules/devices.nix b/modules/devices.nix index 0ddd92f9..4da9f0e7 100644 --- a/modules/devices.nix +++ b/modules/devices.nix @@ -15,6 +15,7 @@ let orin-nx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3767_0000.conf"; orin-nano = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3767_0003.conf"; xavier-agx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194.conf"; + xavier-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194_agxi.conf"; xavier-nx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194_p3668.conf"; xavier-nx-emmc = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194_p3668.conf"; }; @@ -25,6 +26,7 @@ let orin-nx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3767_0000.conf"; orin-nano = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3767_0000.conf"; xavier-agx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p2888.conf"; + xavier-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p2888.conf"; xavier-nx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3668.conf"; xavier-nx-emmc = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3668.conf"; }; @@ -122,6 +124,14 @@ lib.mkMerge [{ partitionTemplate = mkDefault (filterPartitions xavierAgxPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_t194_sdmmc.xml"); }) + (mkIf (cfg.som == "xavier-agx-industrial") { + targetBoard = mkDefault "jetson-agx-xavier-industrial"; + # Remove the sdmmc part of this flash.xml file. The industrial spi part is still different + partitionTemplate = mkDefault (pkgs.runCommand "flash.xml" { nativeBuildInputs = [ pkgs.buildPackages.xmlstarlet ]; } '' + xmlstarlet ed -d '//device[@type="sdmmc_user"]' ${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi.xml >$out + ''); + }) + (mkIf (cfg.som == "xavier-nx") { targetBoard = mkDefault "jetson-xavier-nx-devkit"; partitionTemplate = mkDefault (filterPartitions defaultPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_l4t_t194_spi_sd_p3668.xml"); diff --git a/modules/flash-script.nix b/modules/flash-script.nix index 244f51fd..b23fbf5b 100644 --- a/modules/flash-script.nix +++ b/modules/flash-script.nix @@ -383,6 +383,9 @@ in { boardid = "2888"; boardsku = "0004"; fab = "400"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = "2"; } # 32GB { boardid = "2888"; boardsku = "0005"; fab = "402"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = "2"; } # 64GB ]; + xavier-agx-industrial = [ + { boardid = "2888"; boardsku = "0008"; fab = "600"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = "2"; ramcode = "1"; } + ]; xavier-nx = [ # Dev variant { boardid = "3668"; boardsku = "0000"; fab = "100"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = "2"; }