[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
- [PATCH v2 01/12] move 'typedef Aml' to qemu/types.h, (continued)
- [PATCH v2 01/12] move 'typedef Aml' to qemu/types.h, Gerd Hoffmann, 2020/04/03
- [PATCH v2 02/12] acpi: add aml builder stubs, Gerd Hoffmann, 2020/04/03
- [PATCH v2 04/12] acpi: serial: don't use _STA method, Gerd Hoffmann, 2020/04/03
- [PATCH v2 06/12] acpi: add ISADeviceClass->build_aml(), Gerd Hoffmann, 2020/04/03
- [PATCH v2 12/12] acpi: factor out fw_cfg_add_acpi_dsdt(), Gerd Hoffmann, 2020/04/03
- [PATCH v2 11/12] acpi: move aml builder code for i8042 (kbd+mouse) device, Gerd Hoffmann, 2020/04/03
- [PATCH v2 08/12] acpi: move aml builder code for serial device, Gerd Hoffmann, 2020/04/03
- [PATCH v2 09/12] acpi: move aml builder code for parallel device, Gerd Hoffmann, 2020/04/03