Message ID | 20181227063419.12981-23-yang.zhong@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support Kconfig in QEMU | expand |
On 27/12/18 07:34, Yang Zhong wrote: > %-softmmu.mak only keep boards definitions in Kconfig mode. > > Signed-off-by: Yang Zhong <yang.zhong@intel.com> > --- > default-configs/i386-softmmu.mak | 30 ------------------------------ > hw/i386/Kconfig | 30 ++++++++++++++++++++++++++++++ > hw/ide/Kconfig | 2 +- > hw/net/Kconfig | 2 ++ > 4 files changed, 33 insertions(+), 31 deletions(-) > > diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak > index d3488b5a6d..7b083412af 100644 > --- a/default-configs/i386-softmmu.mak > +++ b/default-configs/i386-softmmu.mak > @@ -1,35 +1,5 @@ > # Default configuration for i386-softmmu > > -CONFIG_VMXNET3_PCI=y > -CONFIG_IPMI=y > -CONFIG_IPMI_LOCAL=y > -CONFIG_IPMI_EXTERN=y > -CONFIG_ISA_IPMI_KCS=y > -CONFIG_ISA_IPMI_BT=y > - > -# Optional devices: > -# > -CONFIG_HPET=y > -CONFIG_APPLESMC=y > -CONFIG_PFLASH_CFI01=y > -CONFIG_ISA_TESTDEV=y > -CONFIG_VMPORT=y > -CONFIG_SGA=y > -CONFIG_PVPANIC=y > -CONFIG_MEM_DEVICE=y > -CONFIG_DIMM=y > -CONFIG_NVDIMM=y > -CONFIG_ACPI_NVDIMM=y > -CONFIG_PCIE_PORT=y > -CONFIG_SMBIOS=y > -CONFIG_PXB=y > -CONFIG_ACPI_VMGENID=y > -CONFIG_FW_CFG_DMA=y > -CONFIG_I2C=y > -CONFIG_SEV=$(CONFIG_KVM) > -CONFIG_VTD=y > -CONFIG_AMD_IOMMU=y > - > # Boards: > # > CONFIG_ISAPC=y > diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig > index af4b81bae1..c00080ac76 100644 > --- a/hw/i386/Kconfig > +++ b/hw/i386/Kconfig > @@ -1,6 +1,9 @@ > config KVM > bool > > +config SEV > + bool The rest of this patch should not be needed: > config PC > bool > select ISA_DEBUG > @@ -13,6 +16,29 @@ config PC > select TPM_TIS if TPM > select HYPERV > select HYPERV_TESTDEV > + select DIMM > + select AMD_IOMMU This should be selected by Q35 only, in patch 16. > + select NVDIMM > + select ACPI_NVDIMM > + select ACPI_VMGENID I think these should not be selected > + select SMBIOS Please add this to patch 16 instead. > + select IPMI This should be selected through ISA_IPMI_KCS and ISA_IPMI_BT. > + select IPMI_LOCAL > + select IPMI_EXTERN These should be config symbols that depend on IPMI. > + select ISA_IPMI_KCS > + select ISA_IPMI_BT These should be config symbols that depend on PC and select IPMI. The default should be y. > + select PFLASH_CFI01 > + select I2C This should be selected automatically via PC_ACPI and ACPI_SMBUS. No need to specify it here. > + select PVPANIC This should be a config symbol that has "default y if PC". No need to specify it here. > + select PXB This should be "default y if PC", again no need to specify it here. > + select VMPORT > + select VMMOUSE These ones are good, but they should be in patch 16. > + select SEV if KVM This one should be "default y if PC && KVM", and not selected here. > + select HPET > + select APPLESMC > + select ISA_TESTDEV > + select SGA These four should be "default y if PC" and not selected here. > + select FW_CFG_DMA And finally this one should be in patch 16. > config PC_PCI > bool > @@ -37,6 +63,7 @@ config I440FX > select PCI_PIIX > select FDC > select IDE_PIIX > + select VTD I440FX should not select VTD, like AMD_IOMMU. > > config ISAPC > bool > @@ -55,6 +82,8 @@ config Q35 > select PCI_Q35 > select LPC_ICH9 > select AHCI > + select VTD This should be in patch 16. > + select PCIE_PORT There should be a "config PCIE" in patch 10, and then config PCIE_PORT depends on PCIE default y if PCIE In patch 10, all of XIO3130, IOH3420 and PCIE_PORT should depend on PCIE. PCI_Q35, PCI_XILINX, PCI_GENERIC and PCI_DESIGNWARE should select PCIE. > config VTD > bool > @@ -67,3 +96,4 @@ config VMPORT > > config VMMOUSE > bool > + depends on VMPORT This should be in patch 16. > diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig > index 41d3057675..b9ba571c04 100644 > --- a/hw/ide/Kconfig > +++ b/hw/ide/Kconfig > @@ -17,7 +17,7 @@ config IDE_ISA > > config IDE_PIIX > bool > - depends on PCI > + select IDE_PCI This is correct, but move it to patch 10. > select IDE_QDEV > > config IDE_CMD646 > diff --git a/hw/net/Kconfig b/hw/net/Kconfig > index 8b65de1d7f..3be0571649 100644 > --- a/hw/net/Kconfig > +++ b/hw/net/Kconfig > @@ -108,6 +108,7 @@ config ROCKER > > config CAN_BUS > bool > + default y This should not be default y. > config CAN_PCI > bool > @@ -116,3 +117,4 @@ config CAN_PCI > > config CAN_SJA1000 > bool > + default y This should select CAN_BUS and, after patch 10, depend on PCI. Paolo
Hello Paolo, Thanks for detailed comments, i will change this one by one. The previous plan put all "selects" into hw/i386/Kconfig file, which can easily config board if we want to optimize i440fx or q35 platform. The new solution will spread "selects" into detailed hw/*/Kconfig file. Regards, Yang
On 08/01/19 11:53, Yang Zhong wrote: > Thanks for detailed comments, i will change this one by one. > The previous plan put all "selects" into hw/i386/Kconfig file, which > can easily config board if we want to optimize i440fx or q35 platform. The selects are for mandatory devices, so if you remove them the machine will not start. If you want to reduce the platform by omitting non-mandatory devices, you can use default-configs, because non-mandatory devices will be "default y" (or "default y if PC/PCI/SCSI/I2C"/whatever). Paolo > The new solution will spread "selects" into detailed hw/*/Kconfig file.
On Tue, Jan 08, 2019 at 12:48:47PM +0100, Paolo Bonzini wrote: > On 08/01/19 11:53, Yang Zhong wrote: > > Thanks for detailed comments, i will change this one by one. > > The previous plan put all "selects" into hw/i386/Kconfig file, which > > can easily config board if we want to optimize i440fx or q35 platform. > > The selects are for mandatory devices, so if you remove them the machine > will not start. > > If you want to reduce the platform by omitting non-mandatory devices, > you can use default-configs, because non-mandatory devices will be > "default y" (or "default y if PC/PCI/SCSI/I2C"/whatever). > > Paolo > Thanks Paolo, it's clear now! Yang. > > The new solution will spread "selects" into detailed hw/*/Kconfig file.
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index d3488b5a6d..7b083412af 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,35 +1,5 @@ # Default configuration for i386-softmmu -CONFIG_VMXNET3_PCI=y -CONFIG_IPMI=y -CONFIG_IPMI_LOCAL=y -CONFIG_IPMI_EXTERN=y -CONFIG_ISA_IPMI_KCS=y -CONFIG_ISA_IPMI_BT=y - -# Optional devices: -# -CONFIG_HPET=y -CONFIG_APPLESMC=y -CONFIG_PFLASH_CFI01=y -CONFIG_ISA_TESTDEV=y -CONFIG_VMPORT=y -CONFIG_SGA=y -CONFIG_PVPANIC=y -CONFIG_MEM_DEVICE=y -CONFIG_DIMM=y -CONFIG_NVDIMM=y -CONFIG_ACPI_NVDIMM=y -CONFIG_PCIE_PORT=y -CONFIG_SMBIOS=y -CONFIG_PXB=y -CONFIG_ACPI_VMGENID=y -CONFIG_FW_CFG_DMA=y -CONFIG_I2C=y -CONFIG_SEV=$(CONFIG_KVM) -CONFIG_VTD=y -CONFIG_AMD_IOMMU=y - # Boards: # CONFIG_ISAPC=y diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index af4b81bae1..c00080ac76 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -1,6 +1,9 @@ config KVM bool +config SEV + bool + config PC bool select ISA_DEBUG @@ -13,6 +16,29 @@ config PC select TPM_TIS if TPM select HYPERV select HYPERV_TESTDEV + select DIMM + select AMD_IOMMU + select NVDIMM + select ACPI_NVDIMM + select ACPI_VMGENID + select SMBIOS + select IPMI + select IPMI_LOCAL + select IPMI_EXTERN + select ISA_IPMI_KCS + select ISA_IPMI_BT + select PFLASH_CFI01 + select I2C + select PVPANIC + select PXB + select VMPORT + select VMMOUSE + select SEV if KVM + select HPET + select APPLESMC + select ISA_TESTDEV + select SGA + select FW_CFG_DMA config PC_PCI bool @@ -37,6 +63,7 @@ config I440FX select PCI_PIIX select FDC select IDE_PIIX + select VTD config ISAPC bool @@ -55,6 +82,8 @@ config Q35 select PCI_Q35 select LPC_ICH9 select AHCI + select VTD + select PCIE_PORT config VTD bool @@ -67,3 +96,4 @@ config VMPORT config VMMOUSE bool + depends on VMPORT diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig index 41d3057675..b9ba571c04 100644 --- a/hw/ide/Kconfig +++ b/hw/ide/Kconfig @@ -17,7 +17,7 @@ config IDE_ISA config IDE_PIIX bool - depends on PCI + select IDE_PCI select IDE_QDEV config IDE_CMD646 diff --git a/hw/net/Kconfig b/hw/net/Kconfig index 8b65de1d7f..3be0571649 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -108,6 +108,7 @@ config ROCKER config CAN_BUS bool + default y config CAN_PCI bool @@ -116,3 +117,4 @@ config CAN_PCI config CAN_SJA1000 bool + default y
%-softmmu.mak only keep boards definitions in Kconfig mode. Signed-off-by: Yang Zhong <yang.zhong@intel.com> --- default-configs/i386-softmmu.mak | 30 ------------------------------ hw/i386/Kconfig | 30 ++++++++++++++++++++++++++++++ hw/ide/Kconfig | 2 +- hw/net/Kconfig | 2 ++ 4 files changed, 33 insertions(+), 31 deletions(-)