From 02017ee385ef574133c4a978d368640772978178 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 23 Jan 2019 14:56:10 +0800 Subject: [PATCH] i386: express dependencies with Kconfig This way, the default-configs file only need to specify the boards and any optional devices. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong Message-Id: <20190123065618.3520-37-yang.zhong@intel.com> Signed-off-by: Paolo Bonzini --- default-configs/i386-softmmu.mak | 45 ++++++++---------------------------- hw/acpi/Kconfig | 3 +++ hw/i2c/Makefile.objs | 2 +- hw/i386/Kconfig | 50 ++++++++++++++++++++++++++++++++++++++++ hw/i386/Makefile.objs | 5 ++-- hw/isa/Kconfig | 1 + hw/pci-host/Kconfig | 4 ++++ hw/tpm/Kconfig | 2 +- 8 files changed, 72 insertions(+), 40 deletions(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 54b571f1aa..ed234c12a9 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,12 +1,6 @@ # Default configuration for i386-softmmu -CONFIG_PCI=y -CONFIG_PCI_DEVICES=y -CONFIG_ISA_BUS=y include hyperv.mak -CONFIG_TEST_DEVICES=y -CONFIG_VGA_ISA=y -CONFIG_VMWARE_VGA=y CONFIG_VMXNET3_PCI=y CONFIG_VIRTIO_VGA=y CONFIG_IPMI=y @@ -14,49 +8,28 @@ CONFIG_IPMI_LOCAL=y CONFIG_IPMI_EXTERN=y CONFIG_ISA_IPMI_KCS=y CONFIG_ISA_IPMI_BT=y -CONFIG_I8254=y -CONFIG_ACPI=y -CONFIG_ACPI_X86=y -CONFIG_ACPI_X86_ICH=y -CONFIG_ACPI_MEMORY_HOTPLUG=y -CONFIG_ACPI_CPU_HOTPLUG=y -CONFIG_APM=y -CONFIG_I8257=y -CONFIG_IDE_ISA=y -CONFIG_IDE_PIIX=y + +# Optional devices: +# CONFIG_HPET=y CONFIG_APPLESMC=y -CONFIG_I8259=y CONFIG_PFLASH_CFI01=y -CONFIG_MC146818RTC=y -CONFIG_PCI_PIIX=y CONFIG_ISA_DEBUG=y CONFIG_ISA_TESTDEV=y -CONFIG_VMPORT=y +CONFIG_TEST_DEVICES=y CONFIG_SGA=y -CONFIG_LPC_ICH9=y -CONFIG_PCI_EXPRESS=y -CONFIG_PCI_EXPRESS_Q35=y -CONFIG_APIC=y -CONFIG_IOAPIC=y CONFIG_PVPANIC=y CONFIG_MEM_DEVICE=y -CONFIG_DIMM=y CONFIG_NVDIMM=y CONFIG_ACPI_NVDIMM=y -CONFIG_XIO3130=y -CONFIG_IOH3420=y -CONFIG_I82801B11=y -CONFIG_SMBIOS=y CONFIG_PXB=y CONFIG_ACPI_VMGENID=y -CONFIG_ACPI_SMBUS=y CONFIG_SMBUS_EEPROM=y -CONFIG_FW_CFG_DMA=y CONFIG_I2C=y -CONFIG_VTD=y -CONFIG_AMD_IOMMU=y -CONFIG_PAM=y -CONFIG_PC=y +CONFIG_PCI_DEVICES=y + +# Boards: +# +CONFIG_ISAPC=y CONFIG_I440FX=y CONFIG_Q35=y diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig index c485a3448f..035a28f751 100644 --- a/hw/acpi/Kconfig +++ b/hw/acpi/Kconfig @@ -3,15 +3,18 @@ config ACPI config ACPI_X86 bool + select ACPI config ACPI_X86_ICH bool + select ACPI_X86 config ACPI_CPU_HOTPLUG bool config ACPI_MEMORY_HOTPLUG bool + select MEM_DEVICE config ACPI_NVDIMM bool diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs index 9205cbee16..2a3c106551 100644 --- a/hw/i2c/Makefile.objs +++ b/hw/i2c/Makefile.objs @@ -2,7 +2,7 @@ common-obj-$(CONFIG_I2C) += core.o smbus_slave.o smbus_master.o common-obj-$(CONFIG_SMBUS_EEPROM) += smbus_eeprom.o common-obj-$(CONFIG_DDC) += i2c-ddc.o common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o -common-obj-$(CONFIG_ACPI_X86) += smbus_ich9.o +common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o common-obj-$(CONFIG_ACPI_SMBUS) += pm_smbus.o common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 22696376a1..b5b2f4f866 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -8,16 +8,65 @@ config PC imply SEV imply TPM_CRB imply TPM_TIS + select FDC + select I8259 + select I8254 + select PCSPK + select I82374 + select I8257 + select MC146818RTC + +config PC_PCI + bool + select APIC + select IOAPIC + select APM + select PC + +config PC_ACPI + bool + select ACPI_X86 + select ACPI_CPU_HOTPLUG + select ACPI_MEMORY_HOTPLUG + depends on ACPI_SMBUS config I440FX bool + select PC_PCI + select PC_ACPI + select ACPI_SMBUS + select PCI_PIIX + select IDE_PIIX + select DIMM + select SMBIOS + select VMPORT + select VMMOUSE + select FW_CFG_DMA config ISAPC bool select ISA_BUS + select PC + select IDE_ISA + select VGA_ISA + # FIXME: it is in the same file as i440fx, and does not compile + # if separated + depends on I440FX config Q35 bool + imply VTD + imply AMD_IOMMU + select PC_PCI + select PC_ACPI + select PCI_EXPRESS_Q35 + select LPC_ICH9 + select AHCI + select DIMM + select SMBIOS + select VMPORT + select VMMOUSE + select FW_CFG_DMA config VTD bool @@ -30,3 +79,4 @@ config VMPORT config VMMOUSE bool + depends on VMPORT diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 3de7ca2bb9..27248a0777 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -4,8 +4,9 @@ obj-y += pc.o obj-$(CONFIG_I440FX) += pc_piix.o obj-$(CONFIG_Q35) += pc_q35.o obj-y += pc_sysfw.o -obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o -obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o +obj-y += x86-iommu.o +obj-$(CONFIG_VTD) += intel_iommu.o +obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o obj-$(CONFIG_XEN) += ../xenpv/ xen/ obj-$(CONFIG_VMPORT) += vmport.o obj-$(CONFIG_VMMOUSE) += vmmouse.o diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig index af68af96c9..6f0812d270 100644 --- a/hw/isa/Kconfig +++ b/hw/isa/Kconfig @@ -27,4 +27,5 @@ config SMC37C669 config LPC_ICH9 bool select ISA_BUS + select ACPI_SMBUS select ACPI_X86_ICH diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index c01812a316..ff4080c78c 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -27,10 +27,14 @@ config PCI_SABRE config PCI_PIIX bool + select PCI + select PAM + select ISA_BUS config PCI_EXPRESS_Q35 bool select PCI_EXPRESS + select PAM config PCI_EXPRESS_GENERIC_BRIDGE bool diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig index dd27f41ba3..f654f0fbce 100644 --- a/hw/tpm/Kconfig +++ b/hw/tpm/Kconfig @@ -7,7 +7,7 @@ config TPM_TIS config TPM_CRB bool - depends on TPM + depends on TPM && PC config TPM_PASSTHROUGH bool -- 2.11.0