From 15b0133b7b429d68770853da0fda3ccf10aae966 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 29 Oct 2024 08:00:17 -0600 Subject: [PATCH] Add arm,gic-400 support to GIC driver --- src/arch/aarch64/device/irqchip/gic.rs | 5 ++++- src/arch/aarch64/device/irqchip/mod.rs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/arch/aarch64/device/irqchip/gic.rs b/src/arch/aarch64/device/irqchip/gic.rs index b00150bad4..3ab872f982 100644 --- a/src/arch/aarch64/device/irqchip/gic.rs +++ b/src/arch/aarch64/device/irqchip/gic.rs @@ -43,7 +43,10 @@ impl GenericInterruptController { } } pub fn parse(fdt: &Fdt) -> Result<(usize, usize, usize, usize)> { - if let Some(node) = fdt.find_compatible(&["arm,cortex-a15-gic"]) { + if let Some(node) = fdt.find_compatible(&[ + "arm,cortex-a15-gic", + "arm,gic-400", + ]) { return GenericInterruptController::parse_inner(&node); } else { return Err(Error::new(EINVAL)); diff --git a/src/arch/aarch64/device/irqchip/mod.rs b/src/arch/aarch64/device/irqchip/mod.rs index 1795105ded..489781aaa8 100644 --- a/src/arch/aarch64/device/irqchip/mod.rs +++ b/src/arch/aarch64/device/irqchip/mod.rs @@ -10,7 +10,7 @@ mod irq_bcm2836; pub(crate) fn new_irqchip(ic_str: &str) -> Option> { if ic_str.contains("arm,gic-v3") { Some(Box::new(gicv3::GicV3::new())) - } else if ic_str.contains("arm,cortex-a15-gic") { + } else if ic_str.contains("arm,cortex-a15-gic") || ic_str.contains("arm,gic-400") { Some(Box::new(gic::GenericInterruptController::new())) } else if ic_str.contains("brcm,bcm2836-l1-intc") { Some(Box::new(irq_bcm2836::Bcm2836ArmInterruptController::new()))