diff --git a/libsel4platsupport/src/arch/arm/device.c b/libsel4platsupport/src/arch/arm/device.c
index d7e5be1..2c7b005 100644
--- a/libsel4platsupport/src/arch/arm/device.c
+++ b/libsel4platsupport/src/arch/arm/device.c
@@ -18,6 +18,8 @@
     switch (irq->type) {
     case PS_TRIGGER:
         return arch_simple_get_IRQ_trigger(arch_simple, irq->trigger.number, irq->trigger.trigger, *dest);
+    case PS_PER_CPU:
+        return arch_simple_get_IRQ_trigger_cpu(arch_simple, irq->cpu.number, irq->cpu.trigger, irq->cpu.cpu_idx, *dest);
     default:
         ZF_LOGE("unknown irq type");
         return -1;
diff --git a/libsel4simple-default/src/arch/arm/default.c b/libsel4simple-default/src/arch/arm/default.c
index acc4083..a0b50c1 100644
--- a/libsel4simple-default/src/arch/arm/default.c
+++ b/libsel4simple-default/src/arch/arm/default.c
@@ -27,10 +27,14 @@
     return seL4_IRQControl_Get(seL4_CapIRQControl, irq, root, index, depth);
 }
 
-seL4_Error simple_default_get_irq_trigger(void *data, int irq, int trigger, seL4_CNode root,
+seL4_Error simple_default_get_irq_trigger(void *data, int irq, int trigger, UNUSED int core, seL4_CNode root,
                                           seL4_Word index, uint8_t depth)
 {
+#if CONFIG_MAX_NUM_NODES > 1
+    return seL4_IRQControl_GetTriggerCore(seL4_CapIRQControl, irq, trigger, root, index, depth, core);
+#else
     return seL4_IRQControl_GetTrigger(seL4_CapIRQControl, irq, trigger, root, index, depth);
+#endif
 }
 
 #ifdef CONFIG_ARM_SMMU
diff --git a/libsel4simple/arch_include/arm/simple/arch/simple.h b/libsel4simple/arch_include/arm/simple/arch/simple.h
index 3a408de..4ae12aa 100644
--- a/libsel4simple/arch_include/arm/simple/arch/simple.h
+++ b/libsel4simple/arch_include/arm/simple/arch/simple.h
@@ -34,7 +34,7 @@
  */
 typedef seL4_Error(*simple_get_IRQ_handler_fn)(void *data, int irq, seL4_CNode cnode,
                                                seL4_Word index, uint8_t depth);
-typedef seL4_Error(*simple_get_IRQ_trigger_fn)(void *data, int irq, int trigger, seL4_CNode root,
+typedef seL4_Error(*simple_get_IRQ_trigger_fn)(void *data, int irq, int trigger, int core, seL4_CNode root,
                                                seL4_Word index, uint8_t depth);
 
 typedef seL4_Error(*simple_get_iospace_cap_count_fn)(void *data, int *count);
@@ -70,5 +70,20 @@
         return seL4_InvalidArgument;
     }
 
-    return simple->irq_trigger(simple->data, irq, trigger, path.root, path.capPtr, path.capDepth);
+    return simple->irq_trigger(simple->data, irq, trigger, 0, path.root, path.capPtr, path.capDepth);
+}
+
+static inline seL4_Error arch_simple_get_IRQ_trigger_cpu(arch_simple_t *simple, int irq, int trigger, int core,
+                                                     cspacepath_t path)
+{
+    if (!simple) {
+        ZF_LOGE("Simple is NULL");
+        return seL4_InvalidArgument;
+    }
+    if (!simple->irq_trigger) {
+        ZF_LOGE("Not implemented");
+        return seL4_InvalidArgument;
+    }
+
+    return simple->irq_trigger(simple->data, irq, trigger, core, path.root, path.capPtr, path.capDepth);
 }
