qemu-devel
[Top][All Lists]
Advanced

[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: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH 6/8] hw/acpi/Kconfig: Introduce the ACPI_PIIX4 config
Date: Thu, 21 Mar 2019 14:35:50 +0100

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?  
> 
> 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


> >> +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  
> >
> >  




reply via email to

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