qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 06/12] acpi: add ISADeviceClass->build_aml()


From: Gerd Hoffmann
Subject: Re: [PATCH v2 06/12] acpi: add ISADeviceClass->build_aml()
Date: Tue, 7 Apr 2020 12:18:14 +0200

On Mon, Apr 06, 2020 at 12:22:31PM +0200, Igor Mammedov wrote:
> On Fri,  3 Apr 2020 10:04:56 +0200
> Gerd Hoffmann <address@hidden> wrote:
> 
> > Also add isa_aml_build() function which walks all isa devices.
> > This allows to move aml builder code to isa devices.
> > 
> > Signed-off-by: Gerd Hoffmann <address@hidden>
> > ---
> >  include/hw/isa/isa.h |  2 ++
> >  hw/i386/acpi-build.c |  1 +
> >  hw/isa/isa-bus.c     | 15 +++++++++++++++
> >  3 files changed, 18 insertions(+)
> > 
> > diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
> > index e9ac1f1205a4..1534f8826453 100644
> > --- a/include/hw/isa/isa.h
> > +++ b/include/hw/isa/isa.h
> > @@ -70,6 +70,7 @@ typedef struct IsaDmaClass {
> >  
> >  typedef struct ISADeviceClass {
> >      DeviceClass parent_class;
> > +    void (*build_aml)(ISADevice *dev, Aml *scope);
> >  } ISADeviceClass;
> >  
> >  struct ISABus {
> > @@ -108,6 +109,7 @@ ISADevice *isa_try_create(ISABus *bus, const char 
> > *name);
> >  ISADevice *isa_create_simple(ISABus *bus, const char *name);
> >  
> >  ISADevice *isa_vga_init(ISABus *bus);
> > +void isa_build_aml(ISABus *bus, Aml *scope);
> >  
> >  /**
> >   * isa_register_ioport: Install an I/O port region on the ISA bus.
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index 5d2b9b099684..77fc9df74735 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -1259,6 +1259,7 @@ static void build_isa_devices_aml(Aml *table)
> >          error_report("No ISA bus, unable to define IPMI ACPI data");
> >      } else {
> >          build_acpi_ipmi_devices(scope, BUS(obj), "\\_SB.PCI0.ISA");
> > +        isa_build_aml(ISA_BUS(obj), scope);
> 
> is it possible to have more than 1 ISA bus on pc/q35 machine?

I don't think this is possible on the x86 architecture due to the way
io ports are addressed.  I think you can have multiple isa busses on
architectures where the isa io address space is just a mmio window on
the isa bridge.  Dunno whenever such machines actually exist in
practice.

I think we can safely compress the whole thing into "assert(obj &&
!ambiguous)".

take care,
  Gerd




reply via email to

[Prev in Thread] Current Thread [Next in Thread]