diff mbox series

[RFC,22/25] i386-softmmu.mak: remove all CONFIG_* except boards definitions

Message ID 20181227063419.12981-23-yang.zhong@intel.com (mailing list archive)
State New, archived
Headers show
Series Support Kconfig in QEMU | expand

Commit Message

Yang Zhong Dec. 27, 2018, 6:34 a.m. UTC
%-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(-)

Comments

Paolo Bonzini Jan. 4, 2019, 1:59 p.m. UTC | #1
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
Yang Zhong Jan. 8, 2019, 10:53 a.m. UTC | #2
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
Paolo Bonzini Jan. 8, 2019, 11:48 a.m. UTC | #3
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.
Yang Zhong Jan. 11, 2019, 2:22 a.m. UTC | #4
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 mbox series

Patch

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