[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/8] hw/acpi/Kconfig: Introduce the ACPI_PIIX4 c
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 6/8] hw/acpi/Kconfig: Introduce the ACPI_PIIX4 config |
Date: |
Thu, 21 Mar 2019 15:03:27 +0100 |
Hi Igor,
Le jeu. 21 mars 2019 14:36, Igor Mammedov <address@hidden> a écrit :
> On Tue, 19 Mar 2019 23:47:22 +0100 (CET)
> BALATON Zoltan <address@hidden> wrote:
>
> > On Tue, 19 Mar 2019, Igor Mammedov wrote:
> > > On Sun, 17 Mar 2019 01:22:57 +0100
> > > Philippe Mathieu-Daudé <address@hidden> wrote:
> > >
> > >> The PIIX4 chipset is a generic southbridge and can be used by
> > >> non-X86 hardware. Introduce the ACPI_PIIX4 Kconfig.
> > >> Hardware that requires ACPI but doesn't need the PIIX4 chipset
> > >> won't compile it.
> > > I know that mips somewhat depends on piix but does it actually
> > > implements, uses or plans to use ACPI in practice?
Linux PIIX driver is generic. But Linux Malta works without configuring it
too. We loose power saving features.
> >
> > I think it does not compile without due to PIIX depends on it. Likewise
> yep, looks like for piix_pm we need to pull in pci/cpu/mem and nvdimm
> stuff even if it's not going to be used
>
> > for VT82C686. I get errors about undefined functions when linking a
> > ppc board using it (not yet upstream) without this patch:
> > http://patchwork.ozlabs.org/patch/1054018/
> >
> > ../hw/isa/vt82c686.o: In function `vt82c686b_pm_realize':
> > hw/isa/vt82c686.c:375: undefined reference to `apm_init'
> > hw/isa/vt82c686.c:381: undefined reference to `acpi_pm_tmr_init'
> > hw/isa/vt82c686.c:382: undefined reference to `acpi_pm1_evt_init'
> > ../hw/isa/vt82c686.o: In function `pm_update_sci':
> > hw/isa/vt82c686.c:195: undefined reference to `acpi_pm1_evt_get_sts'
> > ../hw/isa/vt82c686.o: In function `vt82c686b_pm_realize':
> > hw/isa/vt82c686.c:383: undefined reference to `acpi_pm1_cnt_init'
> > ../hw/isa/vt82c686.o: In function `pm_update_sci':
> > hw/isa/vt82c686.c:203: undefined reference to `acpi_pm_tmr_update'
>
> If you a going to reuse vt82c686 then following patch should help
>
>
> diff --git a/default-configs/mips-softmmu-common.mak
> b/default-configs/mips-softmmu-common.mak
> index 0795d52..9c2cf15 100644
> --- a/default-configs/mips-softmmu-common.mak
> +++ b/default-configs/mips-softmmu-common.mak
> @@ -16,10 +16,11 @@ CONFIG_PCSPK=y
> CONFIG_PCKBD=y
> CONFIG_FDC=y
> CONFIG_ACPI=y
> -CONFIG_ACPI_X86=y
> -CONFIG_ACPI_MEMORY_HOTPLUG=y
> -CONFIG_ACPI_NVDIMM=y
> -CONFIG_ACPI_CPU_HOTPLUG=y
> +CONFIG_ACPI_GENERIC_HW=y
> +#CONFIG_ACPI_X86=y
> +#CONFIG_ACPI_MEMORY_HOTPLUG=y
> +#CONFIG_ACPI_NVDIMM=y
> +#CONFIG_ACPI_CPU_HOTPLUG=y
> CONFIG_APM=y
> CONFIG_I8257=y
> CONFIG_PIIX4=y
> diff --git a/dtc b/dtc
> --- a/dtc
> +++ b/dtc
> @@ -1 +1 @@
> -Subproject commit 88f18909db731a627456f26d779445f84e449536
> +Subproject commit 88f18909db731a627456f26d779445f84e449536-dirty
> diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
> index eca3bee..319707f 100644
> --- a/hw/acpi/Kconfig
> +++ b/hw/acpi/Kconfig
> @@ -4,10 +4,14 @@ config ACPI
> config ACPI_X86
> bool
> select ACPI
> + select ACPI_GENERIC_HW
> select ACPI_NVDIMM
> select ACPI_CPU_HOTPLUG
> select ACPI_MEMORY_HOTPLUG
>
> +config ACPI_GENERIC_HW
> + bool
> +
> config ACPI_X86_ICH
> bool
> select ACPI_X86
> diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
> index ba93c5b..2b524bd 100644
> --- a/hw/acpi/Makefile.objs
> +++ b/hw/acpi/Makefile.objs
> @@ -1,12 +1,13 @@
> ifeq ($(CONFIG_ACPI),y)
> -common-obj-$(CONFIG_ACPI_X86) += core.o piix4.o pcihp.o
> +common-obj-$(CONFIG_ACPI_GENERIC_HW) += core.o
> +common-obj-$(CONFIG_ACPI_X86) += piix4.o pcihp.o
> common-obj-$(CONFIG_ACPI_X86_ICH) += ich9.o tco.o
> common-obj-$(CONFIG_ACPI_CPU_HOTPLUG) += cpu_hotplug.o
> common-obj-$(CONFIG_ACPI_MEMORY_HOTPLUG) += memory_hotplug.o
> common-obj-$(CONFIG_ACPI_CPU_HOTPLUG) += cpu.o
> common-obj-$(CONFIG_ACPI_NVDIMM) += nvdimm.o
> common-obj-$(CONFIG_ACPI_VMGENID) += vmgenid.o
> -common-obj-$(call lnot,$(CONFIG_ACPI_X86)) += acpi-stub.o
> +common-obj-$(call lnot,$(CONFIG_ACPI_GENERIC_HW)) += acpi-stub.o
>
> common-obj-y += acpi_interface.o
> common-obj-y += bios-linker-loader.o
>
>
> > ../hw/isa/vt82c686.o:(.data.rel+0x370): undefined reference to
> `vmstate_apm'
> > collect2: error: ld returned 1 exit status
>
> for that you need to include CONFIG_APM
>
> >
> > Regards,
> > BALATON Zoltan
> >
> > >> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> > >> ---
> > >> default-configs/mips-softmmu-common.mak | 2 +-
> > >> hw/acpi/Kconfig | 7 +++++++
> > >> hw/acpi/Makefile.objs | 3 ++-
> > >> hw/i386/Kconfig | 2 ++
> > >> 4 files changed, 12 insertions(+), 2 deletions(-)
> > >>
> > >> diff --git a/default-configs/mips-softmmu-common.mak
> b/default-configs/mips-softmmu-common.mak
> > >> index 6f49a3a8c7..21c6e3cbe3 100644
> > >> --- a/default-configs/mips-softmmu-common.mak
> > >> +++ b/default-configs/mips-softmmu-common.mak
> > >> @@ -16,7 +16,7 @@ CONFIG_PCSPK=y
> > >> CONFIG_I8042=y
> > >> CONFIG_FDC=y
> > >> CONFIG_ACPI=y
> > >> -CONFIG_ACPI_X86=y
> > >> +CONFIG_ACPI_PIIX4=y
> > >> CONFIG_ACPI_MEMORY_HOTPLUG=y
> > >> CONFIG_ACPI_NVDIMM=y
> > >> CONFIG_ACPI_CPU_HOTPLUG=y
> > >> diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
> > >> index b18ddb06da..10f24f3b41 100644
> > >> --- a/hw/acpi/Kconfig
> > >> +++ b/hw/acpi/Kconfig
> > >> @@ -8,6 +8,13 @@ config ACPI_X86
> > >> select ACPI_CPU_HOTPLUG
> > >> select ACPI_MEMORY_HOTPLUG
> > >>
> > >> +config ACPI_PIIX4
> > >> + bool
> > >> + select ACPI
> > >> + select ACPI_NVDIMM
> > >> + select ACPI_CPU_HOTPLUG
> > >> + select ACPI_MEMORY_HOTPLUG
> > >> +
> > >> config ACPI_ICH9
> > >> bool
> > >> select ACPI
> > >> diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
> > >> index dff94d35e7..c5c2c1cf03 100644
> > >> --- a/hw/acpi/Makefile.objs
> > >> +++ b/hw/acpi/Makefile.objs
> > >> @@ -1,4 +1,5 @@
> > >> -common-obj-$(CONFIG_ACPI_X86) += core.o piix4.o pcihp.o
> > >> +common-obj-$(CONFIG_ACPI) += core.o
>
> this will break linking on for arm target at least
>
Are you sure? I'm pretty sure I tested it there. I don't think ACPI is
different that
ACPI_GENERIC_HW, I'd rather avoid it.
Anyway I don't have computer access so I'll check / rework during next
development cycle.
>
> > >> +common-obj-$(CONFIG_ACPI_PIIX4) += piix4.o pcihp.o
> > >> common-obj-$(CONFIG_ACPI_ICH9) += ich9.o tco.o
> > >> common-obj-$(CONFIG_ACPI_CPU_HOTPLUG) += cpu_hotplug.o
> > >> common-obj-$(CONFIG_ACPI_MEMORY_HOTPLUG) += memory_hotplug.o
> > >> diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
> > >> index 7fa5395894..64f9957047 100644
> > >> --- a/hw/i386/Kconfig
> > >> +++ b/hw/i386/Kconfig
> > >> @@ -69,6 +69,8 @@ config ISAPC
> > >> # FIXME: it is in the same file as i440fx, and does not compile
> > >> # if separated
> > >> depends on I440FX
> > >> + # QEMU isapc weirdness: it uses PIIX3 with ACPI features from
> PIIX4
> > >> + select ACPI_PIIX4
> > >>
> > >> config Q35
> > >> bool
> > >
> > >
>
>
>
- [Qemu-devel] [PATCH 2/8] hw/i2c/Kconfig: Add an entry for the SMBus, (continued)
- [Qemu-devel] [PATCH 2/8] hw/i2c/Kconfig: Add an entry for the SMBus, Philippe Mathieu-Daudé, 2019/03/16
- [Qemu-devel] [PATCH 3/8] hw/acpi: Simplify the Makefile logic, Philippe Mathieu-Daudé, 2019/03/16
- [Qemu-devel] [PATCH 4/8] hw/isa/southbridge: Rename ACPI_X86_ICH to ACPI_ICH9, Philippe Mathieu-Daudé, 2019/03/16
- [Qemu-devel] [PATCH 5/8] hw/acpi/Kconfig: Remove ICH9 dependency on X86, Philippe Mathieu-Daudé, 2019/03/16
- [Qemu-devel] [PATCH 6/8] hw/acpi/Kconfig: Introduce the ACPI_PIIX4 config, Philippe Mathieu-Daudé, 2019/03/16
[Qemu-devel] [PATCH 7/8] hw/acpi/Kconfig: Add the ACPI_SMBUS depency to ACPI_PIIX4, Philippe Mathieu-Daudé, 2019/03/16
[Qemu-devel] [RFC PATCH 8/8] hw/isa/Kconfig: Complete the VT82C686B southbridge config, Philippe Mathieu-Daudé, 2019/03/16
Re: [Qemu-devel] [PATCH 0/8] hw/isa: Complete the VT82C686B southbridge Kconfig, no-reply, 2019/03/16