From fcd05ad658463ac9ec4b86ad6a9e3ae1f15f349e Mon Sep 17 00:00:00 2001
From: Anders Roxell <anders.roxell@linaro.org>
Date: Tue, 22 Apr 2025 15:26:54 +0200
Subject: [PATCH] devices: nfs: enable NXP's s32g399a-rdb3

Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
 tuxlava/devices/nfs.py                 | 13 ++++++++++++-
 tuxlava/templates/jobs/nfs.yaml.jinja2 |  4 ++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/tuxlava/devices/nfs.py b/tuxlava/devices/nfs.py
index 1e0baf2e67d9..7cce17ab5bb9 100644
--- a/tuxlava/devices/nfs.py
+++ b/tuxlava/devices/nfs.py
@@ -67,9 +67,10 @@ class NfsDevice(Device):
             "nfs-bcm2711-rpi-4-b",
             "nfs-juno-r2",
             "nfs-rk3399-rock-pi-4b",
+            "nfs-s32g399a-rdb3",
         ]:
             raise InvalidArgument(
-                "argument --dtb is only valid for 'nfs-bcm2711-rpi-4-b', 'nfs-juno-r2' and 'nfs-rk3399-rock-pi-4b' devices"
+                "argument --dtb is only valid for 'nfs-bcm2711-rpi-4-b', 'nfs-juno-r2', 'nfs-rk3399-rock-pi-4b' and 'nfs-s32g399a-rdb3' devices"
             )
         if modules and compression(modules[0]) not in [("tar", "gz"), ("tar", "xz")]:
             raise InvalidArgument(
@@ -158,6 +159,16 @@ class NfsRpi4(NfsDevice):
     rootfs = "https://storage.tuxboot.com/debian/20250326/trixie/arm64/rootfs.tar.xz"
 
 
+class NfsNxpRdb3(NfsDevice):
+    name = "nfs-s32g399a-rdb3"
+
+    arch = "arm64"
+    lava_arch = "arm64"
+
+    kernel = "https://storage.tuxboot.com/buildroot/arm64/Image"
+    rootfs = "https://storage.tuxboot.com/debian/20250326/trixie/arm64/rootfs.tar.xz"
+
+
 class NfsRockPi4(NfsDevice):
     name = "nfs-rk3399-rock-pi-4b"
 
diff --git a/tuxlava/templates/jobs/nfs.yaml.jinja2 b/tuxlava/templates/jobs/nfs.yaml.jinja2
index 2219020b55ff..9a18f9c44cf9 100644
--- a/tuxlava/templates/jobs/nfs.yaml.jinja2
+++ b/tuxlava/templates/jobs/nfs.yaml.jinja2
@@ -21,7 +21,7 @@ context:
     booti_dtb_addr: '0x88000000'
     extra_nfsroot_args: ',wsize=65536'
     extra_kernel_args: 'default_hugepagesz=2M hugepages=256 earlycon'
-{% elif device.name == 'nfs-rk3399-rock-pi-4b' %}
+{% elif device.name == 'nfs-rk3399-rock-pi-4b' or device.name == 'nfs-s32g399a-rdb3' %}
     arch: arm64
     booti_dtb_addr: '0x86000000'
     extra_kernel_args: 'rootwait earlycon  systemd.log_level=warning '
@@ -87,7 +87,7 @@ actions:
 {% endif %}
 - boot:
     method:
-{% if device.name == 'nfs-bcm2711-rpi-4-b' or device.name == 'nfs-juno-r2' or device.name == 'nfs-rk3399-rock-pi-4b' %}
+{% if device.name == 'nfs-bcm2711-rpi-4-b' or device.name == 'nfs-juno-r2' or device.name == 'nfs-rk3399-rock-pi-4b' or device.name == 'nfs-s32g399a-rdb3' %}
       u-boot
 {% elif device.name == 'nfs-i386' or device.name == 'nfs-x86_64' %}
       ipxe
-- 
2.47.2

