Hello Peter, On 8/27/21 11:04 PM, p...@fb.com wrote: > From: Peter Delevoryas <p...@fb.com> > > 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.
Thanks for this new machine. See my comment on patch 2. We might need to rework the serial initialization which would deprecate this change. C. > Signed-off-by: Peter Delevoryas <p...@fb.com> > --- > 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); > }; > > >