diff --git a/driver_library/python/test/test_capabilities.py b/driver_library/python/test/test_capabilities.py
index ffb201c..7af1f0e 100644
--- a/driver_library/python/test/test_capabilities.py
+++ b/driver_library/python/test/test_capabilities.py
@@ -1,5 +1,5 @@
 #
-# SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+# SPDX-FileCopyrightText: Copyright 2021-2022, 2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
 # SPDX-License-Identifier: Apache-2.0
 #
 from ethosu_driver._generated.driver import SemanticVersion
@@ -37,13 +37,14 @@
 
 
 def test_hw_configuration():
-    hw_cfg = HardwareConfiguration(128, 1, True)
+    hw_cfg = HardwareConfiguration(128, 1, HardwareConfiguration.DeviceType_SUBSYSTEM, True)
 
     assert 1 == hw_cfg.cmdStreamVersion
     assert 128 == hw_cfg.macsPerClockCycle
     assert hw_cfg.customDma
+    assert HardwareConfiguration.DeviceType_SUBSYSTEM == hw_cfg.type
 
-    assert "{macsPerClockCycle=128, cmdStreamVersion=1, customDma=True}" == hw_cfg.__str__()
+    assert "{macsPerClockCycle=128, cmdStreamVersion=1, type=subsystem, customDma=True}" == hw_cfg.__str__()
 
 
 def test_capabilities():
@@ -51,7 +52,7 @@
     product = SemanticVersion(400, 500, 600)
     architecture = SemanticVersion(700, 800, 900)
     hw_id = HardwareId(1, version, product, architecture)
-    hw_cfg = HardwareConfiguration(256, 1000, False)
+    hw_cfg = HardwareConfiguration(256, 1000, HardwareConfiguration.DeviceType_SUBSYSTEM, False)
     driver_v = SemanticVersion(10, 20, 30)
 
     cap = Capabilities(hw_id, hw_cfg, driver_v)
@@ -64,10 +65,11 @@
 
     assert 1000 == cap.hwCfg.cmdStreamVersion
     assert 256 == cap.hwCfg.macsPerClockCycle
+    assert HardwareConfiguration.DeviceType_SUBSYSTEM == cap.hwCfg.type
     assert not cap.hwCfg.customDma
 
     assert '{hwId={versionStatus=1, version={ major=100, minor=200, patch=300 }, ' \
            'product={ major=400, minor=500, patch=600 }, ' \
            'architecture={ major=700, minor=800, patch=900 }}, ' \
-           'hwCfg={macsPerClockCycle=256, cmdStreamVersion=1000, customDma=False}, ' \
+           'hwCfg={macsPerClockCycle=256, cmdStreamVersion=1000, type=subsystem, customDma=False}, ' \
            'driver={ major=10, minor=20, patch=30 }}' == cap.__str__()
