Just noticed, I forgot to initialize get_irq for the AST2500. I didn’t notice it because I hadn’t tested booting an image for -machine ast2500-evb. I’ll make sure to test with images for all 3 chip revisions, then I’ll resubmit with PATCH v2. I’ll wait a little while though, for comments on the rest of the series. From: pdel@fb.com Date: Friday, August 27, 2021 at 2:06 PM To: Cc: clg@kaod.org , joel@jms.id.au , qemu-devel@nongnu.org , qemu-arm@nongnu.org , Peter Delevoryas Subject: [PATCH 1/5] hw/arm/aspeed: Add get_irq to AspeedSoCClass From: Peter Delevoryas The AST2500 uses different logic than the AST2600 for getting IRQ's. This adds a virtual `get_irq` function to the Aspeed SOC class, so that the shared initialization code in `hw/arm/aspeed.c` can retrieve IRQ's. Signed-off-by: Peter Delevoryas --- hw/arm/aspeed_ast2600.c | 1 + hw/arm/aspeed_soc.c | 1 + include/hw/arm/aspeed_soc.h | 1 + 3 files changed, 3 insertions(+) diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c index e3013128c6..56e1adb343 100644 --- a/hw/arm/aspeed_ast2600.c +++ b/hw/arm/aspeed_ast2600.c @@ -527,6 +527,7 @@ static void aspeed_soc_ast2600_class_init(ObjectClass *oc, void *data) sc->irqmap = aspeed_soc_ast2600_irqmap; sc->memmap = aspeed_soc_ast2600_memmap; sc->num_cpus = 2; + sc->get_irq = aspeed_soc_get_irq; } static const TypeInfo aspeed_soc_ast2600_type_info = { diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c index 3ad6c56fa9..c373182299 100644 --- a/hw/arm/aspeed_soc.c +++ b/hw/arm/aspeed_soc.c @@ -476,6 +476,7 @@ static void aspeed_soc_ast2400_class_init(ObjectClass *oc, void *data) sc->irqmap = aspeed_soc_ast2400_irqmap; sc->memmap = aspeed_soc_ast2400_memmap; sc->num_cpus = 1; + sc->get_irq = aspeed_soc_get_irq; } static const TypeInfo aspeed_soc_ast2400_type_info = { diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h index d9161d26d6..ca16e1e383 100644 --- a/include/hw/arm/aspeed_soc.h +++ b/include/hw/arm/aspeed_soc.h @@ -84,6 +84,7 @@ struct AspeedSoCClass { const int *irqmap; const hwaddr *memmap; uint32_t num_cpus; + qemu_irq (*get_irq)(AspeedSoCState *s, int ctrl); }; -- 2.30.2