diff --git a/kas/distro/Kconfig b/kas/distro/Kconfig
index e819ab70..9dadc52e 100644
--- a/kas/distro/Kconfig
+++ b/kas/distro/Kconfig
@@ -1,5 +1,5 @@
 # This software is a part of Isar.
-# Copyright (C) 2023-2024 ilbers GmbH
+# Copyright (C) 2023-2026 ilbers GmbH
 #
 # SPDX-License-Identifier: MIT
 #
@@ -44,6 +44,9 @@ config CODENAME_JAMMY
 config CODENAME_NOBLE
 	bool
 
+config CODENAME_RESOLUTE
+	bool
+
 choice
 	prompt "Distro selection"
 	default DEBIAN_TRIXIE
@@ -92,6 +95,10 @@ config UBUNTU_NOBLE
 	bool "Ubuntu 24.04 (Noble)"
 	depends on (DISTRO_UBUNTU && CODENAME_NOBLE) || ANY_MACHINE_DISTRO
 
+config UBUNTU_RESOLUTE
+	bool "Ubuntu 26.04 (Resolute)"
+	depends on (DISTRO_UBUNTU && CODENAME_RESOLUTE) || ANY_MACHINE_DISTRO
+
 endchoice
 
 config ANY_MACHINE_DISTRO
@@ -114,5 +121,6 @@ config KAS_INCLUDE_DISTRO
 	default "kas/distro/ubuntu-focal.yaml" if UBUNTU_FOCAL
 	default "kas/distro/ubuntu-jammy.yaml" if UBUNTU_JAMMY
 	default "kas/distro/ubuntu-noble.yaml" if UBUNTU_NOBLE
+	default "kas/distro/ubuntu-resolute.yaml" if UBUNTU_RESOLUTE
 
 endmenu
diff --git a/kas/distro/ubuntu-resolute.yaml b/kas/distro/ubuntu-resolute.yaml
new file mode 100644
index 00000000..fb643862
--- /dev/null
+++ b/kas/distro/ubuntu-resolute.yaml
@@ -0,0 +1,9 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+header:
+  version: 14
+
+distro: ubuntu-resolute
diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index 6151716a..04881a4b 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -123,6 +123,7 @@ config MACHINE_QEMU_AMD64
 	select CODENAME_FOCAL
 	select CODENAME_JAMMY
 	select CODENAME_NOBLE
+	select CODENAME_RESOLUTE
 	select ARCH_AMD64
 
 config MACHINE_QEMU_ARM
@@ -145,6 +146,7 @@ config MACHINE_QEMU_ARM64
 	select CODENAME_FOCAL
 	select CODENAME_JAMMY
 	select CODENAME_NOBLE
+	select CODENAME_RESOLUTE
 	select ARCH_ARM64
 
 config MACHINE_QEMU_I386
@@ -167,6 +169,8 @@ config MACHINE_QEMU_RISCV64
 	select DISTRO_DEBIAN
 	select CODENAME_TRIXIE
 	select CODENAME_SID
+	select DISTRO_UBUNTU
+	select CODENAME_RESOLUTE
 	select ARCH_RISCV64
 
 config MACHINE_RPI_ARM_V7
diff --git a/meta-isar/conf/distro/ubuntu-common.inc b/meta-isar/conf/distro/ubuntu-common.inc
index 8b9964c8..1ee9bb84 100644
--- a/meta-isar/conf/distro/ubuntu-common.inc
+++ b/meta-isar/conf/distro/ubuntu-common.inc
@@ -1,5 +1,6 @@
-#
+# This software is a part of Isar.
 # Copyright (c) Siemens AG, 2018-2023
+# Copyright (C) 2023-2024 ilbers GmbH
 #
 # SPDX-License-Identifier: MIT
 
@@ -12,6 +13,9 @@ HOST_BASE_DISTRO = "${BASE_DISTRO}"
 DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
 HOST_DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
 
+DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
+HOST_DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
+
 BOOTSTRAP_KEY = "file://${LAYERDIR_isar}/conf/distro/ubuntu.public.key;sha256sum=36a38199a4bf4eae1e7f574891f7dfcb79b91b87a33a499383265e1224b5e989"
 DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
 HOST_DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
diff --git a/meta-isar/conf/distro/ubuntu-resolute-ports.list b/meta-isar/conf/distro/ubuntu-resolute-ports.list
new file mode 100644
index 00000000..239cafe6
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute-ports.list
@@ -0,0 +1,6 @@
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/distro/ubuntu-resolute.conf b/meta-isar/conf/distro/ubuntu-resolute.conf
new file mode 100644
index 00000000..141f438f
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.conf
@@ -0,0 +1,14 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+require conf/distro/ubuntu-common.inc
+
+BASE_DISTRO_CODENAME = "resolute"
+
+DISTRO_GCC = "15"
+
+DEBIAN_COMPAT = "13"
+
+DEBIAN_STANDARDS_VERSION ?= "4.7.4"
diff --git a/meta-isar/conf/distro/ubuntu-resolute.list b/meta-isar/conf/distro/ubuntu-resolute.list
new file mode 100644
index 00000000..65dcc81e
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.list
@@ -0,0 +1,6 @@
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-isar/conf/machine/qemuarm64.conf
index 0cc7457c..4b76e5c1 100644
--- a/meta-isar/conf/machine/qemuarm64.conf
+++ b/meta-isar/conf/machine/qemuarm64.conf
@@ -1,12 +1,12 @@
 # This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
 
 DISTRO_ARCH ?= "arm64"
 
 KERNEL_NAME ?= "arm64"
-KERNEL_NAME:ubuntu-focal ?= "generic"
-KERNEL_NAME:ubuntu-jammy ?= "generic"
-KERNEL_NAME:ubuntu-noble ?= "generic"
+KERNEL_NAME:ubuntu ?= "generic"
 
 IMAGE_FSTYPES ?= "ext4"
 ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/machine/qemuriscv64.conf b/meta-isar/conf/machine/qemuriscv64.conf
index f2a32b8e..a2a5de9b 100644
--- a/meta-isar/conf/machine/qemuriscv64.conf
+++ b/meta-isar/conf/machine/qemuriscv64.conf
@@ -1,5 +1,5 @@
 # This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
 # Copyright (c) Siemens AG, 2020
 #
 # SPDX-License-Identifier: MIT
@@ -7,6 +7,7 @@
 DISTRO_ARCH ?= "riscv64"
 
 KERNEL_NAME ?= "riscv64"
+KERNEL_NAME:ubuntu ?= "generic"
 
 IMAGE_FSTYPES ?= "ext4"
 ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index 6c7d7840..6f9ac7df 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -72,9 +72,12 @@ BBMULTICONFIG = " \
     qemuarm64-focal \
     qemuarm64-jammy \
     qemuarm64-noble \
+    qemuarm64-resolute \
     qemuamd64-focal \
     qemuamd64-jammy \
     qemuamd64-noble \
+    qemuamd64-resolute \
     qemuamd64-sid \
     qemuarm64-sid \
+    qemuriscv64-resolute \
 "
diff --git a/meta-isar/conf/multiconfig/qemuamd64-resolute.conf b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
new file mode 100644
index 00000000..8c997f89
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuarm64-resolute.conf b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
new file mode 100644
index 00000000..cdb25642
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuarm64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
new file mode 100644
index 00000000..4f2c6b9e
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuriscv64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index ff2f9ba4..5975b2cc 100644
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 #
 # This software is a part of Isar.
-# Copyright (C) 2022-2025 ilbers GmbH
+# Copyright (C) 2022-2026 ilbers GmbH
 # Copyright (C) 2022-2025 Siemens AG
 #
 # SPDX-License-Identifier: MIT
@@ -262,6 +262,8 @@ class CrossTest(CIBaseTest):
             'mc:qemuarm64-trixie:isar-image-base',
             'mc:qemuarm64-focal:isar-image-base',
             'mc:nanopi-neo-efi-bookworm:isar-image-base',
+            'mc:qemuarm64-resolute:isar-image-base',
+            'mc:qemuamd64-resolute:isar-image-base',
         ]
 
         self.init()
@@ -384,6 +386,42 @@ class CrossTest(CIBaseTest):
         self.init()
         self.vm_start('arm64', 'focal')
 
+    # TODO: broken because of moving to UEFI
+    def test_run_arm64_resolute(self):
+        """
+        :avocado: tags=startvm
+        """
+        self.init()
+        try:
+            self.vm_start('arm64', 'resolute')
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
+    def test_run_amd64_resolute(self):
+        """
+        :avocado: tags=startvm
+        """
+        self.init()
+        self.vm_start('amd64', 'resolute')
+
+    def test_cross_debsrc(self):
+        targets = [
+            'mc:qemuarm64-bookworm:isar-image-ci',
+        ]
+
+        self.init()
+        # only build a single custom package to speedup test
+        self.perform_build_test(targets, debsrc_cache=True, image_install='cowsay')
+
+    def test_cross_trixie(self):
+        targets = [
+            'mc:qemuamd64-trixie:isar-image-base',
+            'mc:qemuarm64-trixie:isar-image-base',
+        ]
+
+        self.init()
+        self.perform_build_test(targets, cross=False)
+
     def test_cross_debsrc(self):
         targets = [
             'mc:qemuarm64-bookworm:isar-image-ci',
@@ -430,6 +468,30 @@ class CrossTest(CIBaseTest):
         self.perform_build_test(targets, lines=lines,
                                 image_install=image_install)
 
+    def test_cross_riscv64(self):
+        """
+        :avocado: tags=riscv64
+        """
+        targets = [
+            'mc:qemuriscv64-resolute:isar-image-ci',
+        ]
+
+        self.init()
+        try:
+            self.perform_build_test(targets)
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
+    def test_run_riscv64_resolute(self):
+        """
+        :avocado: tags=startvm,riscv64
+        """
+        self.init()
+        try:
+            self.vm_start('riscv64', 'resolute', image='isar-image-ci')
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
     def test_cross_mira_trixie(self):
         targets = [
             'mc:phyboard-mira-trixie:isar-image-base',
diff --git a/testsuite/data/targets.yml b/testsuite/data/targets.yml
index e7b112d9..f480d034 100644
--- a/testsuite/data/targets.yml
+++ b/testsuite/data/targets.yml
@@ -127,16 +127,22 @@ a: !mux
     name: qemuarm64-jammy
   qemuarm64-noble:
     name: qemuarm64-noble
+  qemuarm64-resolute:
+    name: qemuarm64-resolute
   qemuamd64-focal:
     name: qemuamd64-focal
   qemuamd64-jammy:
     name: qemuamd64-jammy
   qemuamd64-noble:
     name: qemuamd64-noble
+  qemuamd64-resolute:
+    name: qemuamd64-resolute
   qemuamd64-sid:
     name: qemuamd64-sid
   qemuarm64-sid:
     name: qemuarm64-sid
+  qemuriscv64-resolute:
+    name: qemuriscv64-resolute
 b: !mux
   base:
     image: isar-image-base
diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py
index 8e28f11b..15d5ed5c 100755
--- a/testsuite/start_vm.py
+++ b/testsuite/start_vm.py
@@ -48,7 +48,7 @@ def format_qemu_cmdline(
     extra_args = ''
 
     image_type = image_fstypes.split()[0]
-    base = 'ubuntu' if distro in ['jammy', 'focal', 'noble'] else 'debian'
+    base = 'ubuntu' if distro in ['jammy', 'focal', 'noble', 'resolute'] else 'debian'
 
     rootfs_image = f"{image}-{base}-{distro}-qemu{arch}.{image_type}"
 
@@ -148,7 +148,7 @@ def start_qemu(arch, build, distro, image, out, pid, enforce_pcbios):
 
 def parse_args():
     parser = argparse.ArgumentParser()
-    arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel']
+    arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel', 'riscv64']
     distro_names = [
         'buster',
         'bullseye',
@@ -157,6 +157,7 @@ def parse_args():
         'focal',
         'jammy',
         'noble',
+        'resolute',
     ]
     parser.add_argument(
         '-a',
