All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU
@ 2019-01-15 14:10 Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM Yang Zhong
                   ` (38 more replies)
  0 siblings, 39 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

This Kconfig implementation is rebased from Paolo's branch
https://github.com/bonzini/qemu/commits/kconfig

I rebased most of patches except other ARCHs board definitions
this time.
https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig

The current RFC patches only support
(*) x86_64 platform build
    Once design is fixed, we can do other archs.

(*) defconfig
    "randconfig" build has some issues, which are mostly related
    with CONFIG* in Kconfig.host abd configure. In randconfig mode,
    some CONFIG* has different setting value in config-host.mak and
    %/config-device.mak, which make QEMU build failure.

(*) Kconfig in hw/ directory

The current configure and build command are same with previous
commands and if we want to disable or enable some features, like
"tcg", we still need add "--enable/--disable-tcg" in configure
command line. If we want to disable one emulation device, we can
disable this in related Kconfig file in hw/ directory.

The current build command:
(*) ./configure --target-list=x86_64-softmmu
(*) make -j8

Since the Kconfig language replace traditional CONFIG_* in
default-config/%-softmmu.mak, the %-softmmu.mak file only
define embeded boards or machines, like 440fx and Q35 in x86_64
platform. The Kconfig has already defined dependency topology
between different Kconfig files, but there are still some issues

(*) Kconfig for configure(config-host.mak)
    Some CONFIG* in configure  need some logic to generate, those
    are hard to input this CONFIG* in Kconfig.host or Kconfig* file.

(*) Kconfig for %config-target.mak
    The CONFIG* in %/config-target.mak file, this is still related
    with configure.

(*) randconfig support issue.

Before this RFC patches, we have talked Kconfig in another thread
http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html

Please give your comments on this RFC thread, many thanks!

Changes in v2:
patch 1:    added "CONFIG_PAM=y" in default-configs/i386-softmmu.mak
            (Thomas Huth)
patch 3~14: added support for other ARCHs configurable(Paolo)
patch 15:   changed the annotate (Paolo)
patch 16:   changed the python code (Paolo)
patch 19:   added other ARCHs Kconfig files(Paolo)
patch 21:   added "select IDE_PCI" for CMD646, PIIX, VIA and SII3112(Thomas Huth)
patch 22:   added new patch for PCIE configurable.
patch 23:   moved "select IDE_PCI" from  CMD646, PIIX, VIA to 21 patch(Thomas Huth)
            added "select CAN_BUS" for net/Kconfig (Thomas Huth)
            added "depends on PCI" for CAN_SJA1000 (Paolo)
            removed CONFIG_PCIE=y and add dependency for pcie(Paolo)
patch 26:   added "depends on PSERIES" for "config SPAPR_VSCSI" (Thomas Huth)
            USB_STORAGE_BOT and USB_STORAGE_UAS must also "select SCSI"(Paolo)
patch 28:   added "select SERIAL" into "config SERIAL_PCI" (Thomas Huth)
            removed "depend on ISA_BUS" from "config VGA_CIRRUS"(Thomas Huth)
patch 30:   "config XLNX_ZYNQMP_ARM" is defined in hw/arm/Kconfig(Thomas Huth)
            CONFIG_AUX should select I2C(Paolo)
patch 33:   depends on HYPERV for HYPERV_TESTDEV(Thomas Huth)
            removed "select HYPERV" and "select HYPERV_TESTDEV" with
            "default y if PC" in "config HYPERV" and "config HYPERV_TESTDEV"(Paolo)
patch 34:   deleted default-configs/virtio.mak(Thomas Huth)
            removed "y" in "config VIRTIO_MMIO"(Thomas Huth)
patch 35:   removed remaining CONFIG_* and removed "select xxxx" from hw/i386/Kconfig
            to other Kconfigs(Paolo)

Paolo Bonzini (18):
  build: actually use CONFIG_PAM
  hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards
  minikconfig: add parser skeleton
  minikconfig: add AST
  minikconfig: add semantic analysis
  kconfig: introduce kconfig files
  build: switch to Kconfig
  ide: express dependencies with Kconfig
  build: convert pci.mak to Kconfig
  build: convert sound.mak to Kconfig
  build: convert usb.mak to Kconfig
  scsi: express dependencies with Kconfig
  bluetooth: express dependencies with Kconfig
  isa: express dependencies with kconfig
  i386: express dependencies with Kconfig
  i2c: express dependencies with Kconfig
  ptimer: express dependencies with Kconfig
  minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig

Yang Zhong (11):
  hw/arm/Makefile.objs: CONFIG_VIRT created for virt board
  hw/nios2/Makefile.objs: Conditionally build nios2
  hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
  hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64
  hw/display: make edid configurable
  hw/pci/Makefile.objs: make pcie configurable
  edid: express dependencies with kconfig
  hyperv: express dependencies with kconfig
  virtio: make virtio dependencies with Kconfig
  i386-softmmu.mak: remove all CONFIG_* except boards definitions
  Makefile: only support defconfig

Ákos Kovács (8):
  hw/m68k/Makefile.objs: Conditionally build boards
  hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx
    boards
  hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta,mipssim boards
  hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
  hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards
    and device
  hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created
  hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst
  hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga
    conditionally

 Kconfig.host                            |  24 +
 Makefile                                |  19 +-
 Makefile.target                         |   7 +-
 default-configs/alpha-softmmu.mak       |   5 +-
 default-configs/arm-softmmu.mak         |   6 +-
 default-configs/hppa-softmmu.mak        |   3 +-
 default-configs/hyperv.mak              |   2 -
 default-configs/i386-softmmu.mak        |  72 +--
 default-configs/m68k-softmmu.mak        |   3 +
 default-configs/microblaze-softmmu.mak  |   3 +
 default-configs/mips-softmmu-common.mak |   9 +-
 default-configs/mips64el-softmmu.mak    |   1 -
 default-configs/nios2-softmmu.mak       |   1 +
 default-configs/pci.mak                 |  49 --
 default-configs/ppc-softmmu.mak         |  12 +-
 default-configs/riscv32-softmmu.mak     |   9 +-
 default-configs/riscv64-softmmu.mak     |   8 +-
 default-configs/s390x-softmmu.mak       |   1 -
 default-configs/sh4-softmmu.mak         |   6 +-
 default-configs/sh4eb-softmmu.mak       |   6 +-
 default-configs/sound.mak               |   4 -
 default-configs/sparc-softmmu.mak       |   2 +
 default-configs/sparc64-softmmu.mak     |   5 +-
 default-configs/usb.mak                 |  11 -
 default-configs/virtio.mak              |  14 -
 default-configs/xtensa-softmmu.mak      |   3 +
 default-configs/xtensaeb-softmmu.mak    |   3 +
 hw/9pfs/Kconfig                         |   4 +
 hw/Kconfig                              |  62 +++
 hw/Makefile.objs                        |   4 +-
 hw/acpi/Kconfig                         |  30 ++
 hw/adc/Kconfig                          |   2 +
 hw/arm/Kconfig                          |  98 ++++
 hw/arm/Makefile.objs                    |   4 +-
 hw/audio/Kconfig                        |  52 ++
 hw/block/Kconfig                        |  37 ++
 hw/bt/Kconfig                           |   2 +
 hw/char/Kconfig                         |  42 ++
 hw/core/Kconfig                         |  11 +
 hw/cpu/Kconfig                          |   8 +
 hw/display/Kconfig                      | 106 ++++
 hw/display/Makefile.objs                |   4 +-
 hw/dma/Kconfig                          |  20 +
 hw/gpio/Kconfig                         |   9 +
 hw/hyperv/Kconfig                       |   9 +
 hw/i2c/Kconfig                          |  27 +
 hw/i2c/Makefile.objs                    |   7 +-
 hw/i386/Kconfig                         |  87 +++
 hw/i386/Makefile.objs                   |   4 +-
 hw/ide/Kconfig                          |  54 ++
 hw/input/Kconfig                        |  28 +
 hw/intc/Kconfig                         |  55 ++
 hw/ipack/Kconfig                        |   4 +
 hw/ipmi/Kconfig                         |  20 +
 hw/isa/Kconfig                          |  30 ++
 hw/lm32/Kconfig                         |   5 +
 hw/lm32/Makefile.objs                   |   4 +-
 hw/m68k/Kconfig                         |   8 +
 hw/m68k/Makefile.objs                   |   5 +-
 hw/mem/Kconfig                          |  10 +
 hw/microblaze/Kconfig                   |   8 +
 hw/microblaze/Makefile.objs             |   6 +-
 hw/mips/Kconfig                         |  20 +
 hw/mips/Makefile.objs                   |   6 +-
 hw/misc/Kconfig                         | 110 ++++
 hw/misc/macio/Kconfig                   |  11 +
 hw/net/Kconfig                          | 122 +++++
 hw/nios2/Kconfig                        |   2 +
 hw/nios2/Makefile.objs                  |   3 +-
 hw/nvram/Kconfig                        |   8 +
 hw/pci-bridge/Kconfig                   |  25 +
 hw/pci-host/Kconfig                     |  46 ++
 hw/pci-host/Makefile.objs               |   2 +-
 hw/pci/Kconfig                          |   5 +
 hw/pci/Makefile.objs                    |   5 +-
 hw/pcmcia/Kconfig                       |   2 +
 hw/ppc/Kconfig                          |  38 ++
 hw/ppc/Makefile.objs                    |  12 +-
 hw/riscv/Kconfig                        |  14 +
 hw/riscv/Makefile.objs                  |  22 +-
 hw/scsi/Kconfig                         |  52 ++
 hw/scsi/Makefile.objs                   |   2 +-
 hw/sd/Kconfig                           |  14 +
 hw/sh4/Kconfig                          |   8 +
 hw/sh4/Makefile.objs                    |   6 +-
 hw/smbios/Kconfig                       |   2 +
 hw/sparc/Kconfig                        |   5 +
 hw/sparc/Makefile.objs                  |   4 +-
 hw/sparc64/Kconfig                      |   5 +
 hw/sparc64/Makefile.objs                |   6 +-
 hw/ssi/Kconfig                          |  14 +
 hw/timer/Kconfig                        |  63 +++
 hw/tpm/Kconfig                          |  20 +
 hw/usb/Kconfig                          |  92 ++++
 hw/vfio/Kconfig                         |  11 +
 hw/virtio/Kconfig                       |  27 +
 hw/watchdog/Kconfig                     |  15 +
 hw/xtensa/Kconfig                       |   5 +
 hw/xtensa/Makefile.objs                 |   4 +-
 rules.mak                               |   2 +-
 scripts/make_device_config.sh           |  30 --
 scripts/minikconf.py                    | 680 ++++++++++++++++++++++++
 102 files changed, 2414 insertions(+), 260 deletions(-)
 create mode 100644 Kconfig.host
 delete mode 100644 default-configs/hyperv.mak
 delete mode 100644 default-configs/pci.mak
 delete mode 100644 default-configs/sound.mak
 delete mode 100644 default-configs/usb.mak
 delete mode 100644 default-configs/virtio.mak
 create mode 100644 hw/9pfs/Kconfig
 create mode 100644 hw/Kconfig
 create mode 100644 hw/acpi/Kconfig
 create mode 100644 hw/adc/Kconfig
 create mode 100644 hw/arm/Kconfig
 create mode 100644 hw/audio/Kconfig
 create mode 100644 hw/block/Kconfig
 create mode 100644 hw/bt/Kconfig
 create mode 100644 hw/char/Kconfig
 create mode 100644 hw/core/Kconfig
 create mode 100644 hw/cpu/Kconfig
 create mode 100644 hw/display/Kconfig
 create mode 100644 hw/dma/Kconfig
 create mode 100644 hw/gpio/Kconfig
 create mode 100644 hw/hyperv/Kconfig
 create mode 100644 hw/i2c/Kconfig
 create mode 100644 hw/i386/Kconfig
 create mode 100644 hw/ide/Kconfig
 create mode 100644 hw/input/Kconfig
 create mode 100644 hw/intc/Kconfig
 create mode 100644 hw/ipack/Kconfig
 create mode 100644 hw/ipmi/Kconfig
 create mode 100644 hw/isa/Kconfig
 create mode 100644 hw/lm32/Kconfig
 create mode 100644 hw/m68k/Kconfig
 create mode 100644 hw/mem/Kconfig
 create mode 100644 hw/microblaze/Kconfig
 create mode 100644 hw/mips/Kconfig
 create mode 100644 hw/misc/Kconfig
 create mode 100644 hw/misc/macio/Kconfig
 create mode 100644 hw/net/Kconfig
 create mode 100644 hw/nios2/Kconfig
 create mode 100644 hw/nvram/Kconfig
 create mode 100644 hw/pci-bridge/Kconfig
 create mode 100644 hw/pci-host/Kconfig
 create mode 100644 hw/pci/Kconfig
 create mode 100644 hw/pcmcia/Kconfig
 create mode 100644 hw/ppc/Kconfig
 create mode 100644 hw/riscv/Kconfig
 create mode 100644 hw/scsi/Kconfig
 create mode 100644 hw/sd/Kconfig
 create mode 100644 hw/sh4/Kconfig
 create mode 100644 hw/smbios/Kconfig
 create mode 100644 hw/sparc/Kconfig
 create mode 100644 hw/sparc64/Kconfig
 create mode 100644 hw/ssi/Kconfig
 create mode 100644 hw/timer/Kconfig
 create mode 100644 hw/tpm/Kconfig
 create mode 100644 hw/usb/Kconfig
 create mode 100644 hw/vfio/Kconfig
 create mode 100644 hw/virtio/Kconfig
 create mode 100644 hw/watchdog/Kconfig
 create mode 100644 hw/xtensa/Kconfig
 delete mode 100644 scripts/make_device_config.sh
 create mode 100644 scripts/minikconf.py

-- 
2.17.1

^ permalink raw reply	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 18:02   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 02/37] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards Yang Zhong
                   ` (37 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Do not link it unconditionally into all binaries.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak | 1 +
 hw/pci-host/Makefile.objs        | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 64c998c4c8..4711155a33 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -67,3 +67,4 @@ CONFIG_I2C=y
 CONFIG_SEV=$(CONFIG_KVM)
 CONFIG_VTD=y
 CONFIG_AMD_IOMMU=y
+CONFIG_PAM=y
diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs
index 6d6597c065..9d7e7cd1b8 100644
--- a/hw/pci-host/Makefile.objs
+++ b/hw/pci-host/Makefile.objs
@@ -1,4 +1,4 @@
-common-obj-y += pam.o
+common-obj-$(CONFIG_PAM) += pam.o
 
 # PPC devices
 common-obj-$(CONFIG_PREP_PCI) += prep.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 02/37] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board Yang Zhong
                   ` (36 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Paolo Bonzini <pbonzini@redhat.com>

CONFIG_PIIX and CONFIG_Q35 created for the pc board object files. These
are enabled automatically at default-configs/i386-softmmu.mak and
default-configs/x86_64-softmmu.mak

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/i386-softmmu.mak | 2 ++
 hw/i386/Makefile.objs            | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 4711155a33..8db7867015 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -68,3 +68,5 @@ CONFIG_SEV=$(CONFIG_KVM)
 CONFIG_VTD=y
 CONFIG_AMD_IOMMU=y
 CONFIG_PAM=y
+CONFIG_I440FX=y
+CONFIG_Q35=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index fa87a14152..3de7ca2bb9 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -1,6 +1,8 @@
 obj-$(CONFIG_KVM) += kvm/
 obj-y += multiboot.o
-obj-y += pc.o pc_piix.o pc_q35.o
+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
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 02/37] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  7:07   ` Thomas Huth
       [not found]   ` <bb109ff0-8475-73f6-c33d-52044de758ac@redhat.com>
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards Yang Zhong
                   ` (35 subsequent siblings)
  38 siblings, 2 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

make virt code configurable and the new CONFIG_VIRT definitions
added to the default-configs/arm-softmmu.mak to replace CONFIG_ACPI
in arm board.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/arm-softmmu.mak | 2 +-
 hw/arm/Makefile.objs            | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 2420491aac..3903d1ada3 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -147,7 +147,7 @@ CONFIG_PCIE_PORT=y
 CONFIG_XIO3130=y
 CONFIG_IOH3420=y
 CONFIG_I82801B11=y
-CONFIG_ACPI=y
+CONFIG_VIRT=y
 CONFIG_SMBIOS=y
 CONFIG_ASPEED_SOC=y
 CONFIG_GPIO_KEY=y
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 50c7b4a927..25ff98fdbc 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,5 +1,5 @@
-obj-y += boot.o virt.o sysbus-fdt.o
-obj-$(CONFIG_ACPI) += virt-acpi-build.o
+obj-y += boot.o sysbus-fdt.o
+obj-$(CONFIG_VIRT) += virt.o virt-acpi-build.o
 obj-$(CONFIG_DIGIC) += digic_boards.o
 obj-$(CONFIG_EXYNOS4) += exynos4_boards.o
 obj-$(CONFIG_HIGHBANK) += highbank.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (2 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  7:15   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards Yang Zhong
                   ` (34 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

CONFIG_AN5206, CONFIG_MCF5206 and CONFIG_MCF5208 make
variables created for m68k boards, and added to
default-configs/m86k-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/m68k-softmmu.mak | 3 +++
 hw/m68k/Makefile.objs            | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
index 60f7cdfbf2..a179da9077 100644
--- a/default-configs/m68k-softmmu.mak
+++ b/default-configs/m68k-softmmu.mak
@@ -2,3 +2,6 @@
 
 CONFIG_COLDFIRE=y
 CONFIG_PTIMER=y
+CONFIG_AN5206=y
+CONFIG_MCF5206=y
+CONFIG_MCF5208=y
diff --git a/hw/m68k/Makefile.objs b/hw/m68k/Makefile.objs
index d1f089c08a..fa287edd0b 100644
--- a/hw/m68k/Makefile.objs
+++ b/hw/m68k/Makefile.objs
@@ -1,2 +1,3 @@
-obj-y += an5206.o mcf5208.o
-obj-y += mcf5206.o mcf_intc.o
+obj-$(CONFIG_AN5206) += an5206.o
+obj-$(CONFIG_MCF5206) += mcf5206.o
+obj-$(CONFIG_MCF5208) += mcf5208.o mcf_intc.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (3 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  8:28   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards Yang Zhong
                   ` (33 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

CONFIG_PETALOGIX_* and CONFIG_XLNX_*  configs added to
default-configs/microblaze-softmmu.mak and
default-configs/microblazeel-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/microblaze-softmmu.mak | 3 +++
 hw/microblaze/Makefile.objs            | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index 7fca8e4c99..14837cf74a 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -10,3 +10,6 @@ CONFIG_XILINX_ETHLITE=y
 CONFIG_SSI=y
 CONFIG_SSI_M25P80=y
 CONFIG_XLNX_ZYNQMP=y
+CONFIG_PETALOGIX_S3ADSP1800=y
+CONFIG_PETALOGIX_ML605=y
+CONFIG_XLNX_ZYNQMP_PMU=y
diff --git a/hw/microblaze/Makefile.objs b/hw/microblaze/Makefile.objs
index ae9fd40de7..8595a62f6c 100644
--- a/hw/microblaze/Makefile.objs
+++ b/hw/microblaze/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += petalogix_s3adsp1800_mmu.o
-obj-y += petalogix_ml605_mmu.o
-obj-y += xlnx-zynqmp-pmu.o
+obj-$(CONFIG_PETALOGIX_S3ADSP1800) += petalogix_s3adsp1800_mmu.o
+obj-$(CONFIG_PETALOGIX_ML605) += petalogix_ml605_mmu.o
+obj-$(CONFIG_XLNX_ZYNQMP_PMU) += xlnx-zynqmp-pmu.o
 obj-y += boot.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (4 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  8:34   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Yang Zhong
                   ` (32 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

Add the new configs to default-configs/mips*-sofmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/mips-softmmu-common.mak | 4 ++++
 default-configs/mips64el-softmmu.mak    | 1 -
 hw/mips/Makefile.objs                   | 6 ++++--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index fae2347ee7..77b40ec7d1 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -36,3 +36,7 @@ CONFIG_EMPTY_SLOT=y
 CONFIG_MIPS_CPS=y
 CONFIG_MIPS_ITU=y
 CONFIG_I2C=y
+CONFIG_R4K=y
+CONFIG_MALTA=y
+CONFIG_MIPSSIM=y
+CONFIG_VT82C686=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index c2ae313f47..8244efb39c 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -9,7 +9,6 @@ CONFIG_FULONG=y
 CONFIG_JAZZ=y
 CONFIG_G364FB=y
 CONFIG_JAZZ_LED=y
-CONFIG_VT82C686=y
 CONFIG_MIPS_BOSTON=y
 CONFIG_FITLOADER=y
 CONFIG_PCI_XILINX=y
diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
index 17a311aaba..230866ae91 100644
--- a/hw/mips/Makefile.objs
+++ b/hw/mips/Makefile.objs
@@ -1,7 +1,9 @@
-obj-y += mips_r4k.o mips_malta.o mips_mipssim.o
 obj-y += addr.o mips_int.o
+obj-y += gt64xxx_pci.o
+obj-$(CONFIG_R4K) += mips_r4k.o
+obj-$(CONFIG_MALTA) += mips_malta.o
+obj-$(CONFIG_MIPSSIM) += mips_mipssim.o
 obj-$(CONFIG_JAZZ) += mips_jazz.o
 obj-$(CONFIG_FULONG) += mips_fulong2e.o
-obj-y += gt64xxx_pci.o
 obj-$(CONFIG_MIPS_CPS) += cps.o
 obj-$(CONFIG_MIPS_BOSTON) += boston.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (5 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 23:10   ` Paolo Bonzini
  2019-01-16  8:41   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device Yang Zhong
                   ` (31 subsequent siblings)
  38 siblings, 2 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

CONFIG_PPC405, CONFIG_PPC440, CONFIG_MAC_OLDWORLD, CONFIG_MAX_NEWWORLD
and CONFIG_VIRTEX configuration options created for
default-configs/ppc*-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/ppc-softmmu.mak |  7 ++++++-
 hw/ppc/Makefile.objs            | 12 ++++++------
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 23d871fb3e..96088f47ca 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -34,7 +34,6 @@ CONFIG_M41T80=y
 CONFIG_VGA_CIRRUS=y
 
 # For Macs
-CONFIG_MAC=y
 CONFIG_ESCC=y
 CONFIG_MACIO=y
 CONFIG_MACIO_GPIO=y
@@ -69,3 +68,9 @@ CONFIG_PC87312=y
 CONFIG_PCSPK=y
 CONFIG_IDE_ISA=y
 CONFIG_CS4231A=y
+
+CONFIG_PPC405=y
+CONFIG_PPC440=y
+CONFIG_MAC_OLDWORLD=y
+CONFIG_MAC_NEWWORLD=y
+CONFIG_VIRTEX=
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 4e0c1c0941..2ce7973219 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -13,20 +13,20 @@ obj-y += spapr_pci_vfio.o
 endif
 obj-$(CONFIG_PSERIES) += spapr_rtas_ddw.o
 # PowerPC 4xx boards
-obj-y += ppc4xx_devs.o ppc405_uc.o
-obj-$(CONFIG_PPC4XX) += ppc4xx_pci.o ppc405_boards.o
-obj-$(CONFIG_PPC4XX) += ppc440_bamboo.o ppc440_pcix.o ppc440_uc.o
+obj-$(CONFIG_PPC405) += ppc405_boards.o  ppc405_uc.o
+obj-$(CONFIG_PPC440) += ppc440_bamboo.o ppc440_pcix.o ppc440_uc.o
+obj-$(CONFIG_PPC4XX) += ppc4xx_pci.o ppc4xx_devs.o
 obj-$(CONFIG_SAM460EX) += sam460ex.o
 # PReP
 obj-$(CONFIG_PREP) += prep.o
 obj-$(CONFIG_PREP) += prep_systemio.o
 obj-${CONFIG_RS6000_MC} += rs6000_mc.o
 # OldWorld PowerMac
-obj-$(CONFIG_MAC) += mac_oldworld.o
+obj-$(CONFIG_MAC_OLDWORLD) += mac_oldworld.o
 # NewWorld PowerMac
-obj-$(CONFIG_MAC) += mac_newworld.o
+obj-$(CONFIG_MAC_NEWWORLD) += mac_newworld.o
 # e500
 obj-$(CONFIG_E500) += e500.o mpc8544ds.o e500plat.o
 obj-$(CONFIG_E500) += mpc8544_guts.o ppce500_spin.o
 # PowerPC 440 Xilinx ML507 reference board.
-obj-$(CONFIG_XILINX) += virtex_ml507.o
+obj-$(CONFIG_VIRTEX) += virtex_ml507.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (6 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  8:48   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created Yang Zhong
                   ` (30 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

Make hw/sh4 configurable and add new CONFIG_* to the default-configs/sh4*-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/sh4-softmmu.mak   | 3 +++
 default-configs/sh4eb-softmmu.mak | 3 +++
 hw/sh4/Makefile.objs              | 6 +++---
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index caeccd55be..4b65489624 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -19,3 +19,6 @@ CONFIG_PCSPK=y
 CONFIG_I82374=y
 CONFIG_I8257=y
 CONFIG_MC146818RTC=y
+CONFIG_R2D=y
+CONFIG_SHIX=y
+CONFIG_SH7750=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 53b9cd7b5a..af71aa7f42 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -19,3 +19,6 @@ CONFIG_PCSPK=y
 CONFIG_I82374=y
 CONFIG_I8257=y
 CONFIG_MC146818RTC=y
+CONFIG_R2D=y
+CONFIG_SHIX=y
+CONFIG_SH7750=y
diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
index 2393702c57..70903d79a9 100644
--- a/hw/sh4/Makefile.objs
+++ b/hw/sh4/Makefile.objs
@@ -1,4 +1,4 @@
-obj-y += shix.o r2d.o
-
-obj-y += sh7750.o sh7750_regnames.o
+obj-$(CONFIG_R2D) +=  r2d.o
+obj-$(CONFIG_SHIX) += shix.o
+obj-$(CONFIG_SH7750) += sh7750.o sh7750_regnames.o
 obj-y += sh_pci.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (7 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:04   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst Yang Zhong
                   ` (29 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

CONFIG_LEON3 added to default-configs/sparc-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/sparc-softmmu.mak | 2 ++
 hw/sparc/Makefile.objs            | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 12f97eeb20..59a4a3d693 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -18,4 +18,6 @@ CONFIG_CS4231=y
 CONFIG_GRLIB=y
 CONFIG_STP2000=y
 CONFIG_ECCMEMCTL=y
+
 CONFIG_SUN4M=y
+CONFIG_LEON3=y
diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
index e2d0828c39..d57e33f83e 100644
--- a/hw/sparc/Makefile.objs
+++ b/hw/sparc/Makefile.objs
@@ -1 +1,3 @@
-obj-y += sun4m_iommu.o sun4m.o leon3.o
+obj-$(CONFIG_SUN4M) += sun4m_iommu.o
+obj-$(CONFIG_SUN4M) += sun4m.o
+obj-$(CONFIG_LEON3) += leon3.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (8 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:10   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Yang Zhong
                   ` (28 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

CONFIG_LM32 and CONFIG_MILKYMIST added for lm32 and milkmyst build.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/lm32/Makefile.objs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
index ea6418ae59..c3941866c7 100644
--- a/hw/lm32/Makefile.objs
+++ b/hw/lm32/Makefile.objs
@@ -1,3 +1,3 @@
 # LM32 boards
-obj-y += lm32_boards.o
-obj-y += milkymist.o
+obj-$(CONFIG_LM32) += lm32_boards.o
+obj-$(CONFIG_MILKYMIST) += milkymist.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (9 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:31   ` Thomas Huth
  2019-01-16 18:43   ` Max Filippov
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2 Yang Zhong
                   ` (27 subsequent siblings)
  38 siblings, 2 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong,
	Ákos Kovács

From: Ákos Kovács <akoskovacs@gmx.com>

Add the new CONFIG_* values to default-config/xtensa*-softmmu.mak.

Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/xtensa-softmmu.mak   | 3 +++
 default-configs/xtensaeb-softmmu.mak | 3 +++
 hw/xtensa/Makefile.objs              | 4 ++--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak
index 9d8899cde7..baf90ca162 100644
--- a/default-configs/xtensa-softmmu.mak
+++ b/default-configs/xtensa-softmmu.mak
@@ -3,3 +3,6 @@
 CONFIG_SERIAL=y
 CONFIG_OPENCORES_ETH=y
 CONFIG_PFLASH_CFI01=y
+
+CONFIG_XTENSA_SIM=y
+CONFIG_XTENSA_FPGA=y
diff --git a/default-configs/xtensaeb-softmmu.mak b/default-configs/xtensaeb-softmmu.mak
index 9d8899cde7..baf90ca162 100644
--- a/default-configs/xtensaeb-softmmu.mak
+++ b/default-configs/xtensaeb-softmmu.mak
@@ -3,3 +3,6 @@
 CONFIG_SERIAL=y
 CONFIG_OPENCORES_ETH=y
 CONFIG_PFLASH_CFI01=y
+
+CONFIG_XTENSA_SIM=y
+CONFIG_XTENSA_FPGA=y
diff --git a/hw/xtensa/Makefile.objs b/hw/xtensa/Makefile.objs
index cb4998d2bf..62e244fa53 100644
--- a/hw/xtensa/Makefile.objs
+++ b/hw/xtensa/Makefile.objs
@@ -1,4 +1,4 @@
 obj-y += pic_cpu.o
-obj-y += sim.o
 obj-y += xtensa_memory.o
-obj-y += xtfpga.o
+obj-$(CONFIG_XTENSA_SIM) += sim.o
+obj-$(CONFIG_XTENSA_FPGA) += xtfpga.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (10 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:37   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards Yang Zhong
                   ` (26 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

CONFIG_NIOS2_10M50_BOARD added for 10m50 dev board.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/nios2-softmmu.mak | 1 +
 hw/nios2/Makefile.objs            | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak
index 74dc70caae..f634c36d36 100644
--- a/default-configs/nios2-softmmu.mak
+++ b/default-configs/nios2-softmmu.mak
@@ -4,3 +4,4 @@ CONFIG_NIOS2=y
 CONFIG_SERIAL=y
 CONFIG_PTIMER=y
 CONFIG_ALTERA_TIMER=y
+CONFIG_NIOS2_10M50_BOARD=y
diff --git a/hw/nios2/Makefile.objs b/hw/nios2/Makefile.objs
index 6b5c421760..12a2891395 100644
--- a/hw/nios2/Makefile.objs
+++ b/hw/nios2/Makefile.objs
@@ -1 +1,2 @@
-obj-y = boot.o cpu_pic.o 10m50_devboard.o
+obj-y = boot.o cpu_pic.o
+obj-$(CONFIG_NIOS2_10M50_BOARD) += 10m50_devboard.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (11 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2 Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:46     ` [Qemu-riscv] " Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64 Yang Zhong
                   ` (25 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Add the new configs to default-configs/riscv*-sofmmu.mak.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/riscv32-softmmu.mak |  6 ++++++
 default-configs/riscv64-softmmu.mak |  6 ++++++
 hw/riscv/Makefile.objs              | 22 +++++++++++-----------
 3 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index dbc9398284..af841839d1 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
 
 CONFIG_VGA=y
 CONFIG_VGA_PCI=y
+
+CONFIG_HTIF=y
+CONFIG_HART=y
+CONFIG_SIFIVE=y
+CONFIG_SPIKE=y
+CONFIG_RISCV_VIRTIO=y
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index dbc9398284..af841839d1 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
 
 CONFIG_VGA=y
 CONFIG_VGA_PCI=y
+
+CONFIG_HTIF=y
+CONFIG_HART=y
+CONFIG_SIFIVE=y
+CONFIG_SPIKE=y
+CONFIG_RISCV_VIRTIO=y
diff --git a/hw/riscv/Makefile.objs b/hw/riscv/Makefile.objs
index 1dde01d39d..dde1b01f90 100644
--- a/hw/riscv/Makefile.objs
+++ b/hw/riscv/Makefile.objs
@@ -1,11 +1,11 @@
-obj-y += riscv_htif.o
-obj-y += riscv_hart.o
-obj-y += sifive_e.o
-obj-y += sifive_clint.o
-obj-y += sifive_prci.o
-obj-y += sifive_plic.o
-obj-y += sifive_test.o
-obj-y += sifive_u.o
-obj-y += sifive_uart.o
-obj-y += spike.o
-obj-y += virt.o
+obj-$(CONFIG_HTIF) += riscv_htif.o
+obj-$(CONFIG_HART) += riscv_hart.o
+obj-$(CONFIG_SIFIVE) += sifive_e.o
+obj-$(CONFIG_SIFIVE) += sifive_clint.o
+obj-$(CONFIG_SIFIVE) += sifive_prci.o
+obj-$(CONFIG_SIFIVE) += sifive_plic.o
+obj-$(CONFIG_SIFIVE) += sifive_test.o
+obj-$(CONFIG_SIFIVE) += sifive_u.o
+obj-$(CONFIG_SIFIVE) += sifive_uart.o
+obj-$(CONFIG_SPIKE) += spike.o
+obj-$(CONFIG_RISCV_VIRTIO) += virt.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (12 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16  9:56   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 15/37] minikconfig: add parser skeleton Yang Zhong
                   ` (24 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Add the new configs to default-configs/sparc64-sofmmu.mak.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/sparc64-softmmu.mak | 2 ++
 hw/sparc64/Makefile.objs            | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index ce63d47046..1fae4888db 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -17,3 +17,5 @@ CONFIG_SUNHME=y
 CONFIG_MC146818RTC=y
 CONFIG_ISA_TESTDEV=y
 CONFIG_SUN4V_RTC=y
+CONFIG_SUN4U=y
+CONFIG_NIAGARA=y
diff --git a/hw/sparc64/Makefile.objs b/hw/sparc64/Makefile.objs
index 117e0ff27d..af0525c1a2 100644
--- a/hw/sparc64/Makefile.objs
+++ b/hw/sparc64/Makefile.objs
@@ -1,4 +1,4 @@
 obj-y += sparc64.o
-obj-y += sun4u_iommu.o
-obj-y += sun4u.o
-obj-y += niagara.o
\ No newline at end of file
+obj-$(CONFIG_SUN4U) += sun4u_iommu.o
+obj-$(CONFIG_SUN4U) += sun4u.o
+obj-$(CONFIG_NIAGARA) += niagara.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 15/37] minikconfig: add parser skeleton
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (13 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64 Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 16/37] minikconfig: add AST Yang Zhong
                   ` (23 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

This implements a scanner and recursive descent parser for Kconfig-like
configuration files.  The only "action" of the parser is for now to
detect undefined variables and process include files.

The main differences between Kconfig and this are:

* only the "bool" type is supported

* variables can only be defined once

* choices are not supported (but they could be added as syntactic
sugar for multiple Boolean values)

* menus and other graphical concepts (prompts, help text) are not
supported

* assignments ("CONFIG_FOO=y", "CONFIG_FOO=n") are parsed as part
of the Kconfig language, not as a separate file.

The idea was originally by Ákos Kovács, but I could not find his
implementation so I had to redo it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/minikconf.py | 423 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 423 insertions(+)
 create mode 100644 scripts/minikconf.py

diff --git a/scripts/minikconf.py b/scripts/minikconf.py
new file mode 100644
index 0000000000..fb39e35d6a
--- /dev/null
+++ b/scripts/minikconf.py
@@ -0,0 +1,423 @@
+#
+# Mini-Kconfig parser
+#
+# Copyright (c) 2015 Red Hat Inc.
+#
+# Authors:
+#  Paolo Bonzini <pbonzini@redhat.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2
+# or, at your option, any later version.  See the COPYING file in
+# the top-level directory.
+
+import os
+import sys
+
+__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
+
+# -------------------------------------------
+# KconfigData implements the Kconfig semantics.  For now it can only
+# detect undefined symbols, i.e. symbols that were referenced in
+# assignments or dependencies but were not declared with "config FOO".
+#
+# Semantic actions are represented by methods called do_*.  The do_var
+# method return the semantic value of a variable (which right now is
+# just its name).
+# -------------------------------------------
+
+class KconfigData:
+    def __init__(self):
+        self.previously_included = []
+        self.incl_info = None
+        self.defined_vars = set()
+        self.referenced_vars = set()
+
+    # semantic analysis -------------
+
+    def check_undefined(self):
+        undef = False
+        for i in self.referenced_vars:
+            if not (i in self.defined_vars):
+                print "undefined symbol %s" % (i)
+                undef = True
+        return undef
+
+    # semantic actions -------------
+
+    def do_declaration(self, var):
+        if (var in self.defined_vars):
+            raise Exception('variable "' + var + '" defined twice')
+
+        self.defined_vars.add(var)
+
+    # var is a string with the variable's name.
+    #
+    # For now this just returns the variable's name itself.
+    def do_var(self, var):
+        self.referenced_vars.add(var)
+        return var
+
+    def do_assignment(self, var, val):
+        pass
+
+    def do_default(self, var, val, cond=None):
+        pass
+
+    def do_depends_on(self, var, expr):
+        pass
+
+    def do_select(self, var, symbol, cond=None):
+        pass
+
+# -------------------------------------------
+# KconfigParser implements a recursive descent parser for (simplified)
+# Kconfig syntax.
+# -------------------------------------------
+
+# tokens table
+TOKENS = {}
+TOK_NONE = -1
+TOK_LPAREN = 0;   TOKENS[TOK_LPAREN] = '"("';
+TOK_RPAREN = 1;   TOKENS[TOK_RPAREN] = '")"';
+TOK_EQUAL = 2;    TOKENS[TOK_EQUAL] = '"="';
+TOK_AND = 3;      TOKENS[TOK_AND] = '"&&"';
+TOK_OR = 4;       TOKENS[TOK_OR] = '"||"';
+TOK_NOT = 5;      TOKENS[TOK_NOT] = '"!"';
+TOK_DEPENDS = 6;  TOKENS[TOK_DEPENDS] = '"depends"';
+TOK_ON = 7;       TOKENS[TOK_ON] = '"on"';
+TOK_SELECT = 8;   TOKENS[TOK_SELECT] = '"select"';
+TOK_CONFIG = 9;   TOKENS[TOK_CONFIG] = '"config"';
+TOK_DEFAULT = 10; TOKENS[TOK_DEFAULT] = '"default"';
+TOK_Y = 11;       TOKENS[TOK_Y] = '"y"';
+TOK_N = 12;       TOKENS[TOK_N] = '"n"';
+TOK_SOURCE = 13;  TOKENS[TOK_SOURCE] = '"source"';
+TOK_BOOL = 14;    TOKENS[TOK_BOOL] = '"bool"';
+TOK_IF = 15;      TOKENS[TOK_IF] = '"if"';
+TOK_ID = 16;      TOKENS[TOK_ID] = 'identifier';
+TOK_EOF = 17;     TOKENS[TOK_EOF] = 'end of file';
+
+class KconfigParserError(Exception):
+    def __init__(self, parser, msg, tok=None):
+        self.loc = parser.location()
+        tok = tok or parser.tok
+        if tok != TOK_NONE:
+            msg = '%s before %s' %(msg, TOKENS[tok])
+        self.msg = msg
+
+    def __str__(self):
+        return "%s: %s" % (self.loc, self.msg)
+
+class KconfigParser:
+    @classmethod
+    def parse(self, fp):
+        data = KconfigData()
+        parser = KconfigParser(data)
+        parser.parse_file(fp)
+        if data.check_undefined():
+            raise KconfigParserError(parser, "there were undefined symbols")
+
+        return data
+
+    def __init__(self, data):
+        self.data = data
+
+    def parse_file(self, fp):
+        self.abs_fname = os.path.abspath(fp.name)
+        self.fname = fp.name
+        self.data.previously_included.append(self.abs_fname)
+        self.src = fp.read()
+        if self.src == '' or self.src[-1] != '\n':
+            self.src += '\n'
+        self.cursor = 0
+        self.line = 1
+        self.line_pos = 0
+        self.get_token()
+        self.parse_config()
+
+    # file management -----
+
+    def error_path(self):
+        inf = self.data.incl_info
+        res = ""
+        while inf:
+            res = ("In file included from %s:%d:\n" % (inf['file'],
+                                                       inf['line'])) + res
+            inf = inf['parent']
+        return res
+
+    def location(self):
+        col = 1
+        for ch in self.src[self.line_pos:self.pos]:
+            if ch == '\t':
+                col += 8 - ((col - 1) % 8)
+            else:
+                col += 1
+        return '%s%s:%d:%d' %(self.error_path(), self.fname, self.line, col)
+
+    def do_include(self, include):
+        incl_abs_fname = os.path.join(os.path.dirname(self.abs_fname),
+                                      include)
+        # catch inclusion cycle
+        inf = self.data.incl_info
+        while inf:
+            if incl_abs_fname == os.path.abspath(inf['file']):
+                raise KconfigParserError(self, "Inclusion loop for %s"
+                                    % include)
+            inf = inf['parent']
+
+        # skip multiple include of the same file
+        if incl_abs_fname in self.data.previously_included:
+            return
+        try:
+            fp = open(incl_abs_fname, 'r')
+        except IOError, e:
+            raise KconfigParserError(self,
+                                '%s: %s' % (e.strerror, include))
+
+        inf = self.data.incl_info
+        self.data.incl_info = { 'file': self.fname, 'line': self.line,
+                'parent': inf }
+        KconfigParser(self.data).parse_file(fp)
+        self.data.incl_info = inf
+
+    # recursive descent parser -----
+
+    # y_or_n: Y | N
+    def parse_y_or_n(self):
+        if self.tok == TOK_Y:
+            self.get_token()
+            return True
+        if self.tok == TOK_N:
+            self.get_token()
+            return False
+        raise KconfigParserError(self, 'Expected "y" or "n"')
+
+    # var: ID
+    def parse_var(self):
+        if self.tok == TOK_ID:
+            val = self.val
+            self.get_token()
+            return self.data.do_var(val)
+        else:
+            raise KconfigParserError(self, 'Expected identifier')
+
+    # assignment_var: ID (starting with "CONFIG_")
+    def parse_assignment_var(self):
+        if self.tok == TOK_ID:
+            val = self.val
+            if not val.startswith("CONFIG_"):
+                raise KconfigParserError(self,
+                           'Expected identifier starting with "CONFIG_"', TOK_NONE)
+            self.get_token()
+            return self.data.do_var(val[7:])
+        else:
+            raise KconfigParserError(self, 'Expected identifier')
+
+    # assignment: var EQUAL y_or_n
+    def parse_assignment(self):
+        var = self.parse_assignment_var()
+        if self.tok != TOK_EQUAL:
+            raise KconfigParserError(self, 'Expected "="')
+        self.get_token()
+        self.data.do_assignment(var, self.parse_y_or_n())
+
+    # primary: NOT primary
+    #       | LPAREN expr RPAREN
+    #       | var
+    def parse_primary(self):
+        if self.tok == TOK_NOT:
+            self.get_token()
+            self.parse_primary()
+        elif self.tok == TOK_LPAREN:
+            self.get_token()
+            self.parse_expr()
+            if self.tok != TOK_RPAREN:
+                raise KconfigParserError(self, 'Expected ")"')
+            self.get_token()
+        elif self.tok == TOK_ID:
+            self.parse_var()
+        else:
+            raise KconfigParserError(self, 'Expected "!" or "(" or identifier')
+
+    # disj: primary (OR primary)*
+    def parse_disj(self):
+        self.parse_primary()
+        while self.tok == TOK_OR:
+            self.get_token()
+            self.parse_primary()
+
+    # expr: disj (AND disj)*
+    def parse_expr(self):
+        self.parse_disj()
+        while self.tok == TOK_AND:
+            self.get_token()
+            self.parse_disj()
+
+    # condition: IF expr
+    #       | empty
+    def parse_condition(self):
+        if self.tok == TOK_IF:
+            self.get_token()
+            return self.parse_expr()
+        else:
+            return None
+
+    # property: DEFAULT y_or_n condition
+    #       | DEPENDS ON expr
+    #       | SELECT var condition
+    #       | BOOL
+    def parse_property(self, var):
+        if self.tok == TOK_DEFAULT:
+            self.get_token()
+            val = self.parse_y_or_n()
+            cond = self.parse_condition()
+            self.data.do_default(var, val, cond)
+        elif self.tok == TOK_DEPENDS:
+            self.get_token()
+            if self.tok != TOK_ON:
+                raise KconfigParserError(self, 'Expected "on"')
+            self.get_token()
+            self.data.do_depends_on(var, self.parse_expr())
+        elif self.tok == TOK_SELECT:
+            self.get_token()
+            symbol = self.parse_var()
+            cond = self.parse_condition()
+            self.data.do_select(var, symbol, cond)
+        elif self.tok == TOK_BOOL:
+            self.get_token()
+        else:
+            raise KconfigParserError(self, 'Error in recursive descent?')
+
+    # properties: properties property
+    #       | /* empty */
+    def parse_properties(self, var):
+        had_default = False
+        while self.tok == TOK_DEFAULT or self.tok == TOK_DEPENDS or \
+              self.tok == TOK_SELECT or self.tok == TOK_BOOL:
+            self.parse_property(var)
+        self.data.do_default(var, False)
+
+        # for nicer error message
+        if self.tok != TOK_SOURCE and self.tok != TOK_CONFIG and \
+           self.tok != TOK_ID and self.tok != TOK_EOF:
+            raise KconfigParserError(self, 'expected "source", "config", identifier, '
+                    + '"default", "depends on" or "select"')
+
+    # declaration: config var properties
+    def parse_declaration(self):
+        if self.tok == TOK_CONFIG:
+            self.get_token()
+            var = self.parse_var()
+            self.data.do_declaration(var)
+            self.parse_properties(var)
+        else:
+            raise KconfigParserError(self, 'Error in recursive descent?')
+
+    # clause: SOURCE
+    #       | declaration
+    #       | assignment
+    def parse_clause(self):
+        if self.tok == TOK_SOURCE:
+            val = self.val
+            self.get_token()
+            self.do_include(val)
+        elif self.tok == TOK_CONFIG:
+            self.parse_declaration()
+        elif self.tok == TOK_ID:
+            self.parse_assignment()
+        else:
+            raise KconfigParserError(self, 'expected "source", "config" or identifier')
+
+    # config: clause+ EOF
+    def parse_config(self):
+        while self.tok != TOK_EOF:
+            self.parse_clause()
+        return self.data
+
+    # scanner -----
+
+    def get_token(self):
+        while True:
+            self.tok = self.src[self.cursor]
+            self.pos = self.cursor
+            self.cursor += 1
+
+            self.val = None
+            self.tok = self.scan_token()
+            if self.tok is not None:
+                return
+
+    def check_keyword(self, rest):
+        if not self.src.startswith(rest, self.cursor):
+            return False
+        length = len(rest)
+        if self.src[self.cursor + length].isalnum() or self.src[self.cursor + length] == '|':
+            return False
+        self.cursor += length
+        return True
+
+    def scan_token(self):
+        if self.tok == '#':
+            self.cursor = self.src.find('\n', self.cursor)
+            return None
+        elif self.tok == '=':
+            return TOK_EQUAL
+        elif self.tok == '(':
+            return TOK_LPAREN
+        elif self.tok == ')':
+            return TOK_RPAREN
+        elif self.tok == '&' and self.src[self.pos+1] == '&':
+            self.cursor += 1
+            return TOK_AND
+        elif self.tok == '|' and self.src[self.pos+1] == '|':
+            self.cursor += 1
+            return TOK_OR
+        elif self.tok == '!':
+            return TOK_NOT
+        elif self.tok == 'd' and self.check_keyword("epends"):
+            return TOK_DEPENDS
+        elif self.tok == 'o' and self.check_keyword("n"):
+            return TOK_ON
+        elif self.tok == 's' and self.check_keyword("elect"):
+            return TOK_SELECT
+        elif self.tok == 'c' and self.check_keyword("onfig"):
+            return TOK_CONFIG
+        elif self.tok == 'd' and self.check_keyword("efault"):
+            return TOK_DEFAULT
+        elif self.tok == 'b' and self.check_keyword("ool"):
+            return TOK_BOOL
+        elif self.tok == 'i' and self.check_keyword("f"):
+            return TOK_IF
+        elif self.tok == 'y' and self.check_keyword(""):
+            return TOK_Y
+        elif self.tok == 'n' and self.check_keyword(""):
+            return TOK_N
+        elif (self.tok == 's' and self.check_keyword("ource")) or \
+              self.tok == 'i' and self.check_keyword("nclude"):
+            # source FILENAME
+            # include FILENAME
+            while self.src[self.cursor].isspace():
+                self.cursor += 1
+            start = self.cursor
+            self.cursor = self.src.find('\n', self.cursor)
+            self.val = self.src[start:self.cursor]
+            return TOK_SOURCE
+        elif self.tok.isalpha():
+            # identifier
+            while self.src[self.cursor].isalnum() or self.src[self.cursor] == '_':
+                self.cursor += 1
+            self.val = self.src[self.pos:self.cursor]
+            return TOK_ID
+        elif self.tok == '\n':
+            if self.cursor == len(self.src):
+                return TOK_EOF
+            self.line += 1
+            self.line_pos = self.cursor
+        elif not self.tok.isspace():
+            raise KconfigParserError(self, 'Stray "%s"' % self.tok)
+
+        return None
+
+if __name__ == '__main__':
+    fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test'
+    KconfigParser.parse(open(fname, 'r'))
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 16/37] minikconfig: add AST
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (14 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 15/37] minikconfig: add parser skeleton Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 17/37] minikconfig: add semantic analysis Yang Zhong
                   ` (22 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Add Python classes that represent the Kconfig abstract syntax tree.
The abstract syntax tree is stored as a list of clauses.  For example:

    config FOO
        depends on BAR
        select BAZ

is represented as three clauses:

    FOO depends on BAR
    FOO default n
    select BAZ if FOO

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/minikconf.py | 116 ++++++++++++++++++++++++++++++++++++-------
 1 file changed, 98 insertions(+), 18 deletions(-)

diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index fb39e35d6a..a6a28c9c47 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -26,11 +26,84 @@ __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
 # -------------------------------------------
 
 class KconfigData:
+    class Expr:
+        def __and__(self, rhs):
+            return KconfigData.AND(self, rhs)
+        def __or__(self, rhs):
+            return KconfigData.OR(self, rhs)
+        def __invert__(self):
+            return KconfigData.NOT(self)
+
+    class AND(Expr):
+        def __init__(self, lhs, rhs):
+            self.lhs = lhs
+            self.rhs = rhs
+        def __str__(self):
+            return "(%s && %s)" % (self.lhs, self.rhs)
+
+    class OR(Expr):
+        def __init__(self, lhs, rhs):
+            self.lhs = lhs
+            self.rhs = rhs
+        def __str__(self):
+            return "(%s || %s)" % (self.lhs, self.rhs)
+
+    class NOT(Expr):
+        def __init__(self, lhs):
+            self.lhs = lhs
+        def __str__(self):
+            return "!%s" % (self.lhs)
+
+    class Var(Expr):
+        def __init__(self, name):
+            self.name = name
+            self.value = None
+        def __str__(self):
+            return self.name
+
+    class Clause:
+        def __init__(self, dest):
+            self.dest = dest
+
+    class AssignmentClause(Clause):
+        def __init__(self, dest, value):
+            KconfigData.Clause.__init__(self, dest)
+            self.value = value
+        def __str__(self):
+            return "%s=%s" % (self.dest, 'y' if self.value else 'n')
+
+    class DefaultClause(Clause):
+        def __init__(self, dest, value, cond=None):
+            KconfigData.Clause.__init__(self, dest)
+            self.value = value
+            self.cond = cond
+        def __str__(self):
+            value = 'y' if self.value else 'n'
+            if self.cond is None:
+                return "config %s default %s" % (self.dest, value)
+            else:
+                return "config %s default %s if %s" % (self.dest, value, self.cond)
+
+    class DependsOnClause(Clause):
+        def __init__(self, dest, expr):
+            KconfigData.Clause.__init__(self, dest)
+            self.expr = expr
+        def __str__(self):
+            return "config %s depends on %s" % (self.dest, self.expr)
+
+    class SelectClause(Clause):
+        def __init__(self, dest, cond):
+            KconfigData.Clause.__init__(self, dest)
+            self.cond = cond
+        def __str__(self):
+            return "select %s if %s" % (self.dest, self.cond)
+
     def __init__(self):
         self.previously_included = []
         self.incl_info = None
         self.defined_vars = set()
-        self.referenced_vars = set()
+        self.referenced_vars = dict()
+        self.clauses = list()
 
     # semantic analysis -------------
 
@@ -48,26 +121,28 @@ class KconfigData:
         if (var in self.defined_vars):
             raise Exception('variable "' + var + '" defined twice')
 
-        self.defined_vars.add(var)
+        self.defined_vars.add(var.name)
 
     # var is a string with the variable's name.
-    #
-    # For now this just returns the variable's name itself.
     def do_var(self, var):
-        self.referenced_vars.add(var)
-        return var
+        if (var in self.referenced_vars):
+            return self.referenced_vars[var]
+
+        var_obj = self.referenced_vars[var] = KconfigData.Var(var)
+        return var_obj
 
     def do_assignment(self, var, val):
-        pass
+        self.clauses.append(KconfigData.AssignmentClause(var, val))
 
     def do_default(self, var, val, cond=None):
-        pass
+        self.clauses.append(KconfigData.DefaultClause(var, val, cond))
 
     def do_depends_on(self, var, expr):
-        pass
+        self.clauses.append(KconfigData.DependsOnClause(var, expr))
 
     def do_select(self, var, symbol, cond=None):
-        pass
+        cond = (cond & var) if cond is not None else var
+        self.clauses.append(KconfigData.SelectClause(symbol, cond))
 
 # -------------------------------------------
 # KconfigParser implements a recursive descent parser for (simplified)
@@ -227,31 +302,34 @@ class KconfigParser:
     def parse_primary(self):
         if self.tok == TOK_NOT:
             self.get_token()
-            self.parse_primary()
+            val = ~self.parse_primary()
         elif self.tok == TOK_LPAREN:
             self.get_token()
-            self.parse_expr()
+            val = self.parse_expr()
             if self.tok != TOK_RPAREN:
                 raise KconfigParserError(self, 'Expected ")"')
             self.get_token()
         elif self.tok == TOK_ID:
-            self.parse_var()
+            val = self.parse_var()
         else:
             raise KconfigParserError(self, 'Expected "!" or "(" or identifier')
+        return val
 
     # disj: primary (OR primary)*
     def parse_disj(self):
-        self.parse_primary()
+        lhs = self.parse_primary()
         while self.tok == TOK_OR:
             self.get_token()
-            self.parse_primary()
+            lhs = lhs | self.parse_primary()
+        return lhs
 
     # expr: disj (AND disj)*
     def parse_expr(self):
-        self.parse_disj()
+        lhs = self.parse_disj()
         while self.tok == TOK_AND:
             self.get_token()
-            self.parse_disj()
+            lhs = lhs & self.parse_disj()
+        return lhs
 
     # condition: IF expr
     #       | empty
@@ -420,4 +498,6 @@ class KconfigParser:
 
 if __name__ == '__main__':
     fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test'
-    KconfigParser.parse(open(fname, 'r'))
+    data = KconfigParser.parse(open(fname, 'r'))
+    for i in data.clauses:
+        print i
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 17/37] minikconfig: add semantic analysis
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (15 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 16/37] minikconfig: add AST Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 18/37] hw/display: make edid configurable Yang Zhong
                   ` (21 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

There are three parts in the semantic analysis:

1) evaluating expressions.  This is done as a simple visit
of the Expr nodes.

2) ordering clauses.  This is done by constructing a graph of variables.
There is an edge from X to Y if Y depends on X, if X selects Y, or if
X appears in a conditional selection of Y; in other words, if the value
of X can affect the value of Y.  Each clause has a "destination" variable
whose value can be affected by the clause, and clauses will be processed
according to a topological sorting of their destination variables.
Defaults are processed after all other clauses with the same destination.

3) deriving the value of the variables.  This is done by processing
the clauses in the topological order provided by the previous step.
A "depends on" clause will force a variable to False, a "select" clause
will force a variable to True, an assignment will force a variable
to its RHS.  A default will set a variable to its RHS if it has not
been set before.  Because all variables have a default, after visiting
all clauses all variables will have been set.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/minikconf.py | 129 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 124 insertions(+), 5 deletions(-)

diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index a6a28c9c47..48800591e2 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -15,6 +15,10 @@ import sys
 
 __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
 
+def debug_print(*args):
+    #print ' '.join(str(x) for x in args)
+    pass
+
 # -------------------------------------------
 # KconfigData implements the Kconfig semantics.  For now it can only
 # detect undefined symbols, i.e. symbols that were referenced in
@@ -34,6 +38,12 @@ class KconfigData:
         def __invert__(self):
             return KconfigData.NOT(self)
 
+        # Abstract methods
+        def add_edges_to(self, var):
+            pass
+        def evaluate(self):
+            assert False
+
     class AND(Expr):
         def __init__(self, lhs, rhs):
             self.lhs = lhs
@@ -41,6 +51,12 @@ class KconfigData:
         def __str__(self):
             return "(%s && %s)" % (self.lhs, self.rhs)
 
+        def add_edges_to(self, var):
+            self.lhs.add_edges_to(var)
+            self.rhs.add_edges_to(var)
+        def evaluate(self):
+            return self.lhs.evaluate() and self.rhs.evaluate()
+
     class OR(Expr):
         def __init__(self, lhs, rhs):
             self.lhs = lhs
@@ -48,22 +64,62 @@ class KconfigData:
         def __str__(self):
             return "(%s || %s)" % (self.lhs, self.rhs)
 
+        def add_edges_to(self, var):
+            self.lhs.add_edges_to(var)
+            self.rhs.add_edges_to(var)
+        def evaluate(self):
+            return self.lhs.evaluate() or self.rhs.evaluate()
+
     class NOT(Expr):
         def __init__(self, lhs):
             self.lhs = lhs
         def __str__(self):
             return "!%s" % (self.lhs)
 
+        def add_edges_to(self, var):
+            self.lhs.add_edges_to(var)
+        def evaluate(self):
+            return not self.lhs.evaluate()
+
     class Var(Expr):
         def __init__(self, name):
             self.name = name
             self.value = None
+            self.outgoing = set()
         def __str__(self):
             return self.name
 
+        def has_value(self):
+            return not (self.value is None)
+        def set_value(self, val):
+            if self.has_value() and self.value != val:
+                raise Exception('contradiction between clauses when setting %s' % self)
+            debug_print("=> %s is now %s" % (self.name, val))
+            self.value = val
+
+        # depth first search of the dependency graph
+        def dfs(self, visited, f):
+            if self in visited:
+                return
+            visited.add(self)
+            for v in self.outgoing:
+                v.dfs(visited, f)
+            f(self)
+
+        def add_edges_to(self, var):
+            self.outgoing.add(var)
+        def evaluate(self):
+            if not self.has_value():
+                raise Exception('cycle found including %s' % self)
+            return self.value
+
     class Clause:
         def __init__(self, dest):
             self.dest = dest
+        def priority(self):
+            return 0
+        def process(self):
+            pass
 
     class AssignmentClause(Clause):
         def __init__(self, dest, value):
@@ -72,11 +128,16 @@ class KconfigData:
         def __str__(self):
             return "%s=%s" % (self.dest, 'y' if self.value else 'n')
 
+        def process(self):
+            self.dest.set_value(self.value)
+
     class DefaultClause(Clause):
         def __init__(self, dest, value, cond=None):
             KconfigData.Clause.__init__(self, dest)
             self.value = value
             self.cond = cond
+            if not (self.cond is None):
+                self.cond.add_edges_to(self.dest)
         def __str__(self):
             value = 'y' if self.value else 'n'
             if self.cond is None:
@@ -84,20 +145,38 @@ class KconfigData:
             else:
                 return "config %s default %s if %s" % (self.dest, value, self.cond)
 
+        def priority(self):
+            # Defaults are processed just before leaving the variable
+            return -1
+        def process(self):
+            if not self.dest.has_value() and \
+                    (self.cond is None or self.cond.evaluate()):
+                self.dest.set_value(self.value)
+
     class DependsOnClause(Clause):
         def __init__(self, dest, expr):
             KconfigData.Clause.__init__(self, dest)
             self.expr = expr
+            self.expr.add_edges_to(self.dest)
         def __str__(self):
             return "config %s depends on %s" % (self.dest, self.expr)
 
+        def process(self):
+            if not self.expr.evaluate():
+                self.dest.set_value(False)
+
     class SelectClause(Clause):
         def __init__(self, dest, cond):
             KconfigData.Clause.__init__(self, dest)
             self.cond = cond
+            self.cond.add_edges_to(self.dest)
         def __str__(self):
             return "select %s if %s" % (self.dest, self.cond)
 
+        def process(self):
+            if self.cond.evaluate():
+                self.dest.set_value(True)
+
     def __init__(self):
         self.previously_included = []
         self.incl_info = None
@@ -115,6 +194,50 @@ class KconfigData:
                 undef = True
         return undef
 
+    def compute_config(self):
+        if self.check_undefined():
+            raise Exception(parser, "there were undefined symbols")
+            return None
+
+        debug_print("Input:")
+        for clause in self.clauses:
+            debug_print(clause)
+
+        debug_print("\nDependency graph:")
+        for i in self.referenced_vars:
+            debug_print(i, "->", [str(x) for x in self.referenced_vars[i].outgoing])
+
+        # The reverse of the depth-first order is the topological sort
+        dfo = dict()
+        visited = set()
+        debug_print("\n")
+        def visit_fn(var):
+            debug_print(var, "has DFS number", len(dfo))
+            dfo[var] = len(dfo)
+
+        for name in self.referenced_vars:
+            v = self.referenced_vars[name]
+            v.dfs(visited, visit_fn)
+
+        # Put higher DFS numbers and higher priorities first.  This
+        # places the clauses in topological order and places defaults
+        # after assignments and dependencies.
+        self.clauses.sort(key=lambda x: (-dfo[x.dest], -x.priority()))
+
+        debug_print("\nSorted clauses:")
+        for clause in self.clauses:
+            debug_print(clause)
+            clause.process()
+
+        debug_print("")
+        values = dict()
+        for name in self.referenced_vars:
+            debug_print("Evaluating", name)
+            v = self.referenced_vars[name]
+            values[name] = v.evaluate()
+
+        return values
+
     # semantic actions -------------
 
     def do_declaration(self, var):
@@ -188,9 +311,6 @@ class KconfigParser:
         data = KconfigData()
         parser = KconfigParser(data)
         parser.parse_file(fp)
-        if data.check_undefined():
-            raise KconfigParserError(parser, "there were undefined symbols")
-
         return data
 
     def __init__(self, data):
@@ -499,5 +619,4 @@ class KconfigParser:
 if __name__ == '__main__':
     fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test'
     data = KconfigParser.parse(open(fname, 'r'))
-    for i in data.clauses:
-        print i
+    print data.compute_config()
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 18/37] hw/display: make edid configurable
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (16 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 17/37] minikconfig: add semantic analysis Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files Yang Zhong
                   ` (20 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Use CONFIG_EDID to make edid-generate.c and edid-region.c
configurable.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/pci.mak  | 1 +
 hw/display/Makefile.objs | 4 +---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index 6c7be12779..171bdf48bc 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -47,3 +47,4 @@ CONFIG_VGA_PCI=y
 CONFIG_BOCHS_DISPLAY=y
 CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM)
 CONFIG_ROCKER=y
+CONFIG_EDID=y
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 97acd5b6cb..a8e23c8501 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -1,4 +1,4 @@
-common-obj-y += edid-generate.o
+common-obj-$(CONFIG_EDID) += edid-generate.o edid-region.o
 
 common-obj-$(CONFIG_FW_CFG_DMA) += ramfb.o
 common-obj-$(CONFIG_FW_CFG_DMA) += ramfb-standalone.o
@@ -15,12 +15,10 @@ common-obj-$(CONFIG_SSD0323) += ssd0323.o
 common-obj-$(CONFIG_XEN) += xenfb.o
 
 common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
-common-obj-$(CONFIG_VGA_PCI) += edid-region.o
 common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
 common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
 common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
 common-obj-$(CONFIG_BOCHS_DISPLAY) += bochs-display.o
-common-obj-$(CONFIG_BOCHS_DISPLAY) += edid-region.o
 
 common-obj-$(CONFIG_BLIZZARD) += blizzard.o
 common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (17 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 18/37] hw/display: make edid configurable Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 10:44   ` Thomas Huth
  2019-01-17  9:17   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig Yang Zhong
                   ` (19 subsequent siblings)
  38 siblings, 2 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

The Kconfig files were generated mostly with this script:

  for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do
    set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' `
    shift
    if test $# = 1; then
      cat >> $(dirname $1)/Kconfig << EOF
config ${i#CONFIG_}
    bool

EOF
      git add $(dirname $1)/Kconfig
    else
      echo $i $*
    fi
  done
  sed -i '$d' hw/*/Kconfig
  for i in hw/*; do
    if test -d $i && ! test -f $i/Kconfig; then
      touch $i/Kconfig
      git add $i/Kconfig
    fi
  done

Whenever a symbol is referenced from multiple subdirectories, the
script prints the list of directories that reference the symbol.
These symbols have to be added manually to the Kconfig files.

Kconfig.host and hw/Kconfig were created manually.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 Kconfig.host          | 17 ++++++++
 hw/9pfs/Kconfig       |  2 +
 hw/Kconfig            | 60 ++++++++++++++++++++++++++
 hw/acpi/Kconfig       | 23 ++++++++++
 hw/adc/Kconfig        |  2 +
 hw/arm/Kconfig        | 98 +++++++++++++++++++++++++++++++++++++++++++
 hw/audio/Kconfig      | 35 ++++++++++++++++
 hw/block/Kconfig      | 29 +++++++++++++
 hw/bt/Kconfig         |  2 +
 hw/char/Kconfig       | 32 ++++++++++++++
 hw/core/Kconfig       | 11 +++++
 hw/cpu/Kconfig        |  8 ++++
 hw/display/Kconfig    | 77 ++++++++++++++++++++++++++++++++++
 hw/dma/Kconfig        | 20 +++++++++
 hw/gpio/Kconfig       |  8 ++++
 hw/hyperv/Kconfig     |  5 +++
 hw/i2c/Kconfig        | 20 +++++++++
 hw/i386/Kconfig       | 23 ++++++++++
 hw/ide/Kconfig        | 35 ++++++++++++++++
 hw/input/Kconfig      | 23 ++++++++++
 hw/intc/Kconfig       | 47 +++++++++++++++++++++
 hw/ipack/Kconfig      |  2 +
 hw/ipmi/Kconfig       | 14 +++++++
 hw/isa/Kconfig        | 23 ++++++++++
 hw/lm32/Kconfig       |  5 +++
 hw/m68k/Kconfig       |  8 ++++
 hw/mem/Kconfig        |  8 ++++
 hw/microblaze/Kconfig |  8 ++++
 hw/mips/Kconfig       | 20 +++++++++
 hw/misc/Kconfig       | 92 ++++++++++++++++++++++++++++++++++++++++
 hw/misc/macio/Kconfig | 11 +++++
 hw/net/Kconfig        | 92 ++++++++++++++++++++++++++++++++++++++++
 hw/nios2/Kconfig      |  2 +
 hw/nvram/Kconfig      |  8 ++++
 hw/pci-bridge/Kconfig | 20 +++++++++
 hw/pci-host/Kconfig   | 35 ++++++++++++++++
 hw/pci/Kconfig        |  2 +
 hw/pcmcia/Kconfig     |  2 +
 hw/ppc/Kconfig        | 38 +++++++++++++++++
 hw/riscv/Kconfig      | 14 +++++++
 hw/scsi/Kconfig       | 26 ++++++++++++
 hw/sd/Kconfig         | 11 +++++
 hw/sh4/Kconfig        |  8 ++++
 hw/smbios/Kconfig     |  2 +
 hw/sparc/Kconfig      |  5 +++
 hw/sparc64/Kconfig    |  5 +++
 hw/ssi/Kconfig        | 14 +++++++
 hw/timer/Kconfig      | 53 +++++++++++++++++++++++
 hw/tpm/Kconfig        | 14 +++++++
 hw/usb/Kconfig        | 53 +++++++++++++++++++++++
 hw/vfio/Kconfig       | 11 +++++
 hw/virtio/Kconfig     | 17 ++++++++
 hw/watchdog/Kconfig   | 11 +++++
 hw/xtensa/Kconfig     |  5 +++
 54 files changed, 1216 insertions(+)
 create mode 100644 Kconfig.host
 create mode 100644 hw/9pfs/Kconfig
 create mode 100644 hw/Kconfig
 create mode 100644 hw/acpi/Kconfig
 create mode 100644 hw/adc/Kconfig
 create mode 100644 hw/arm/Kconfig
 create mode 100644 hw/audio/Kconfig
 create mode 100644 hw/block/Kconfig
 create mode 100644 hw/bt/Kconfig
 create mode 100644 hw/char/Kconfig
 create mode 100644 hw/core/Kconfig
 create mode 100644 hw/cpu/Kconfig
 create mode 100644 hw/display/Kconfig
 create mode 100644 hw/dma/Kconfig
 create mode 100644 hw/gpio/Kconfig
 create mode 100644 hw/hyperv/Kconfig
 create mode 100644 hw/i2c/Kconfig
 create mode 100644 hw/i386/Kconfig
 create mode 100644 hw/ide/Kconfig
 create mode 100644 hw/input/Kconfig
 create mode 100644 hw/intc/Kconfig
 create mode 100644 hw/ipack/Kconfig
 create mode 100644 hw/ipmi/Kconfig
 create mode 100644 hw/isa/Kconfig
 create mode 100644 hw/lm32/Kconfig
 create mode 100644 hw/m68k/Kconfig
 create mode 100644 hw/mem/Kconfig
 create mode 100644 hw/microblaze/Kconfig
 create mode 100644 hw/mips/Kconfig
 create mode 100644 hw/misc/Kconfig
 create mode 100644 hw/misc/macio/Kconfig
 create mode 100644 hw/net/Kconfig
 create mode 100644 hw/nios2/Kconfig
 create mode 100644 hw/nvram/Kconfig
 create mode 100644 hw/pci-bridge/Kconfig
 create mode 100644 hw/pci-host/Kconfig
 create mode 100644 hw/pci/Kconfig
 create mode 100644 hw/pcmcia/Kconfig
 create mode 100644 hw/ppc/Kconfig
 create mode 100644 hw/riscv/Kconfig
 create mode 100644 hw/scsi/Kconfig
 create mode 100644 hw/sd/Kconfig
 create mode 100644 hw/sh4/Kconfig
 create mode 100644 hw/smbios/Kconfig
 create mode 100644 hw/sparc/Kconfig
 create mode 100644 hw/sparc64/Kconfig
 create mode 100644 hw/ssi/Kconfig
 create mode 100644 hw/timer/Kconfig
 create mode 100644 hw/tpm/Kconfig
 create mode 100644 hw/usb/Kconfig
 create mode 100644 hw/vfio/Kconfig
 create mode 100644 hw/virtio/Kconfig
 create mode 100644 hw/watchdog/Kconfig
 create mode 100644 hw/xtensa/Kconfig

diff --git a/Kconfig.host b/Kconfig.host
new file mode 100644
index 0000000000..2136a4c3ec
--- /dev/null
+++ b/Kconfig.host
@@ -0,0 +1,17 @@
+# These are "proxy" symbols used to pass config-host.mak values
+# down to Kconfig.
+
+config KVM
+    bool
+
+config OPENGL
+    bool
+
+config SPICE
+    bool
+
+config TPM
+    bool
+
+config XEN
+    bool
diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
new file mode 100644
index 0000000000..a4750999d9
--- /dev/null
+++ b/hw/9pfs/Kconfig
@@ -0,0 +1,2 @@
+config VIRTIO_9P
+    bool
diff --git a/hw/Kconfig b/hw/Kconfig
new file mode 100644
index 0000000000..55743a958a
--- /dev/null
+++ b/hw/Kconfig
@@ -0,0 +1,60 @@
+# devices Kconfig
+source 9pfs/Kconfig
+source acpi/Kconfig
+source audio/Kconfig
+source block/Kconfig
+source bt/Kconfig
+source char/Kconfig
+source core/Kconfig
+source display/Kconfig
+source dma/Kconfig
+source gpio/Kconfig
+source i2c/Kconfig
+source ide/Kconfig
+source input/Kconfig
+source intc/Kconfig
+source ipack/Kconfig
+source isa/Kconfig
+source mem/Kconfig
+source misc/Kconfig
+source net/Kconfig
+source nvram/Kconfig
+source pci-bridge/Kconfig
+source pci-host/Kconfig
+source pci/Kconfig
+source scsi/Kconfig
+source sd/Kconfig
+source ssi/Kconfig
+source timer/Kconfig
+source tpm/Kconfig
+source usb/Kconfig
+source virtio/Kconfig
+source watchdog/Kconfig
+source smbios/Kconfig
+source ipmi/Kconfig
+source vfio/Kconfig
+source adc/Kconfig
+source pcmcia/Kconfig
+source hyperv/Kconfig
+
+# arch Kconfig
+source i386/Kconfig
+source arm/Kconfig
+source m68k/Kconfig
+source microblaze/Kconfig
+source mips/Kconfig
+source ppc/Kconfig
+source sh4/Kconfig
+source sparc/Kconfig
+source sparc64/Kconfig
+source lm32/Kconfig
+source xtensa/Kconfig
+source nios2/Kconfig
+source riscv/Kconfig
+
+# Symbols used by multiple targets
+config XILINX
+    bool
+
+config XILINX_AXI
+    bool
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
new file mode 100644
index 0000000000..2f4871c10a
--- /dev/null
+++ b/hw/acpi/Kconfig
@@ -0,0 +1,23 @@
+config ACPI
+    bool
+
+config ACPI_X86
+    bool
+
+config ACPI_X86_ICH
+    bool
+
+config ACPI_CPU_HOTPLUG
+    bool
+
+config ACPI_MEMORY_HOTPLUG
+    bool
+
+config ACPI_NVDIMM
+    bool
+
+config ACPI_VMGENID
+    bool
+
+config IPMI
+    bool
diff --git a/hw/adc/Kconfig b/hw/adc/Kconfig
new file mode 100644
index 0000000000..25d2229fb8
--- /dev/null
+++ b/hw/adc/Kconfig
@@ -0,0 +1,2 @@
+config STM32F2XX_ADC
+    bool
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
new file mode 100644
index 0000000000..34e4a32a71
--- /dev/null
+++ b/hw/arm/Kconfig
@@ -0,0 +1,98 @@
+config VIRT
+    bool
+
+config DIGIC
+    bool
+
+config EXYNOS4
+    bool
+
+config HIGHBANK
+    bool
+
+config INTEGRATOR
+    bool
+
+config MAINSTONE
+    bool
+
+config MUSICPAL
+    bool
+
+config NETDUINO2
+    bool
+
+config NSERIES
+    bool
+
+config OMAP
+    bool
+
+config PXA2XX
+    bool
+
+config REALVIEW
+    bool
+
+config STELLARIS
+    bool
+
+config STRONGARM
+    bool
+
+config VERSATILE
+    bool
+
+config ZYNQ
+    bool
+
+config ARM_V7M
+    bool
+
+config EXYNOS4
+    bool
+
+config ALLWINNER_A10
+    bool
+
+config RASPI
+    bool
+
+config STM32F205_SOC
+    bool
+
+config XLNX_ZYNQMP_ARM
+    bool
+
+config XLNX_VERSAL
+    bool
+
+config FSL_IMX25
+    bool
+
+config FSL_IMX31
+    bool
+
+config FSL_IMX6
+    bool
+
+config ASPEED_SOC
+    bool
+
+config MPS2
+    bool
+
+config IOTKIT
+    bool
+
+config FSL_IMX7
+    bool
+
+config ARM_SMMUV3
+    bool
+
+config FSL_IMX6UL
+    bool
+
+config NRF51_SOC
+    bool
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
new file mode 100644
index 0000000000..207baee6e1
--- /dev/null
+++ b/hw/audio/Kconfig
@@ -0,0 +1,35 @@
+config SB16
+    bool
+
+config ES1370
+    bool
+
+config AC97
+    bool
+
+config ADLIB
+    bool
+
+config GUS
+    bool
+
+config CS4231A
+    bool
+
+config HDA
+    bool
+
+config PCSPK
+    bool
+
+config WM8750
+    bool
+
+config PL041
+    bool
+
+config CS4231
+    bool
+
+config MARVELL_88W8618
+    bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
new file mode 100644
index 0000000000..9d418bce4d
--- /dev/null
+++ b/hw/block/Kconfig
@@ -0,0 +1,29 @@
+config FDC
+    bool
+
+config SSI_M25P80
+    bool
+
+config NAND
+    bool
+
+config PFLASH_CFI01
+    bool
+
+config PFLASH_CFI02
+    bool
+
+config ECC
+    bool
+
+config ONENAND
+    bool
+
+config NVME_PCI
+    bool
+
+config VIRTIO_BLK
+    bool
+
+config VHOST_USER_BLK
+    bool
diff --git a/hw/bt/Kconfig b/hw/bt/Kconfig
new file mode 100644
index 0000000000..554a9ee75e
--- /dev/null
+++ b/hw/bt/Kconfig
@@ -0,0 +1,2 @@
+config BLUETOOTH
+    bool
diff --git a/hw/char/Kconfig b/hw/char/Kconfig
new file mode 100644
index 0000000000..26c13243cf
--- /dev/null
+++ b/hw/char/Kconfig
@@ -0,0 +1,32 @@
+config ESCC
+    bool
+
+config PARALLEL
+    bool
+
+config PL011
+    bool
+
+config SERIAL
+    bool
+
+config SERIAL_ISA
+    bool
+
+config SERIAL_PCI
+    bool
+
+config VIRTIO_SERIAL
+    bool
+
+config STM32F2XX_USART
+    bool
+
+config CMSDK_APB_UART
+    bool
+
+config SCLPCONSOLE
+    bool
+
+config TERMINAL3270
+    bool
diff --git a/hw/core/Kconfig b/hw/core/Kconfig
new file mode 100644
index 0000000000..c2a1ae8122
--- /dev/null
+++ b/hw/core/Kconfig
@@ -0,0 +1,11 @@
+config EMPTY_SLOT
+    bool
+
+config PTIMER
+    bool
+
+config FITLOADER
+    bool
+
+config PLATFORM_BUS
+    bool
diff --git a/hw/cpu/Kconfig b/hw/cpu/Kconfig
new file mode 100644
index 0000000000..1767d028ac
--- /dev/null
+++ b/hw/cpu/Kconfig
@@ -0,0 +1,8 @@
+config ARM11MPCORE
+    bool
+
+config A9MPCORE
+    bool
+
+config A15MPCORE
+    bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
new file mode 100644
index 0000000000..d5c022c886
--- /dev/null
+++ b/hw/display/Kconfig
@@ -0,0 +1,77 @@
+config EDID
+    bool
+
+config FW_CFG_DMA
+    bool
+
+config ADS7846
+    bool
+
+config VGA_CIRRUS
+    bool
+
+config G364FB
+    bool
+
+config JAZZ_LED
+    bool
+
+config PL110
+    bool
+
+config SII9022
+    bool
+
+config SSD0303
+    bool
+
+config SSD0323
+    bool
+
+config VGA_PCI
+    bool
+
+config VGA_ISA
+    bool
+
+config VGA_ISA_MM
+    bool
+
+config VMWARE_VGA
+    bool
+
+config BOCHS_DISPLAY
+    bool
+
+config BLIZZARD
+    bool
+
+config FRAMEBUFFER
+    bool
+
+config MILKYMIST_TMU2
+    bool
+
+config SM501
+    bool
+
+config TCX
+    bool
+
+config CG3
+    bool
+
+config VGA
+    bool
+
+config QXL
+    bool
+
+config VIRTIO_GPU
+    bool
+
+config VIRTIO_VGA
+    bool
+
+config DPCD
+    bool
diff --git a/hw/dma/Kconfig b/hw/dma/Kconfig
new file mode 100644
index 0000000000..b9ce1c58c4
--- /dev/null
+++ b/hw/dma/Kconfig
@@ -0,0 +1,20 @@
+config RC4030
+    bool
+
+config PL080
+    bool
+
+config PL330
+    bool
+
+config I82374
+    bool
+
+config I8257
+    bool
+
+config ZYNQ_DEVCFG
+    bool
+
+config STP2000
+    bool
diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig
new file mode 100644
index 0000000000..d0a4abf93f
--- /dev/null
+++ b/hw/gpio/Kconfig
@@ -0,0 +1,8 @@
+config MAX7310
+    bool
+
+config PL061
+    bool
+
+config GPIO_KEY
+    bool
diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig
new file mode 100644
index 0000000000..be724b7f8b
--- /dev/null
+++ b/hw/hyperv/Kconfig
@@ -0,0 +1,5 @@
+config HYPERV
+    bool
+
+config HYPERV_TESTDEV
+    bool
diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig
new file mode 100644
index 0000000000..d6d4402608
--- /dev/null
+++ b/hw/i2c/Kconfig
@@ -0,0 +1,20 @@
+config I2C
+    bool
+
+config SMBUS_EEPROM
+    bool
+
+config DDC
+    bool
+
+config VERSATILE_I2C
+    bool
+
+config ACPI_SMBUS
+    bool
+
+config BITBANG_I2C
+    bool
+
+config IMX_I2C
+    bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
new file mode 100644
index 0000000000..2dbe2b5d3e
--- /dev/null
+++ b/hw/i386/Kconfig
@@ -0,0 +1,23 @@
+config KVM
+    bool
+
+config I440FX
+    bool
+
+config ISAPC
+    bool
+
+config Q35
+    bool
+
+config VTD
+    bool
+
+config AMD_IOMMU
+    bool
+
+config VMPORT
+    bool
+
+config VMMOUSE
+    bool
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
new file mode 100644
index 0000000000..5ec449525f
--- /dev/null
+++ b/hw/ide/Kconfig
@@ -0,0 +1,35 @@
+config IDE_CORE
+    bool
+
+config IDE_QDEV
+    bool
+
+config IDE_PCI
+    bool
+
+config IDE_ISA
+    bool
+
+config IDE_PIIX
+    bool
+
+config IDE_CMD646
+    bool
+
+config IDE_MACIO
+    bool
+
+config IDE_MMIO
+    bool
+
+config IDE_VIA
+    bool
+
+config MICRODRIVE
+    bool
+
+config AHCI
+    bool
+
+config IDE_SII3112
+    bool
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
new file mode 100644
index 0000000000..91bae47498
--- /dev/null
+++ b/hw/input/Kconfig
@@ -0,0 +1,23 @@
+config ADB
+    bool
+
+config LM832X
+    bool
+
+config PCKBD
+    bool
+
+config PL050
+    bool
+
+config STELLARIS_INPUT
+    bool
+
+config TSC2005
+    bool
+
+config VIRTIO_INPUT
+    bool
+
+config TSC210X
+    bool
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
new file mode 100644
index 0000000000..69adbd135f
--- /dev/null
+++ b/hw/intc/Kconfig
@@ -0,0 +1,47 @@
+config HEATHROW_PIC
+    bool
+
+config I8259
+    bool
+
+config PL190
+    bool
+
+config IOAPIC
+    bool
+
+config ARM_GIC
+    bool
+
+config OPENPIC
+    bool
+
+config APIC
+    bool
+
+config ARM_GIC_KVM
+    bool
+
+config OPENPIC_KVM
+    bool
+
+config XICS
+    bool
+
+config XICS_SPAPR
+    bool
+
+config XICS_KVM
+    bool
+
+config ALLWINNER_A10_PIC
+    bool
+
+config S390_FLIC
+    bool
+
+config S390_FLIC_KVM
+    bool
+
+config OMPIC
+    bool
diff --git a/hw/ipack/Kconfig b/hw/ipack/Kconfig
new file mode 100644
index 0000000000..481e0d2e64
--- /dev/null
+++ b/hw/ipack/Kconfig
@@ -0,0 +1,2 @@
+config IPACK
+    bool
diff --git a/hw/ipmi/Kconfig b/hw/ipmi/Kconfig
new file mode 100644
index 0000000000..68f8ba1a54
--- /dev/null
+++ b/hw/ipmi/Kconfig
@@ -0,0 +1,14 @@
+config IPMI
+    bool
+
+config IPMI_LOCAL
+    bool
+
+config IPMI_EXTERN
+    bool
+
+config ISA_IPMI_KCS
+    bool
+
+config ISA_IPMI_BT
+    bool
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
new file mode 100644
index 0000000000..b59d074453
--- /dev/null
+++ b/hw/isa/Kconfig
@@ -0,0 +1,23 @@
+config ISA_BUS
+    bool
+
+config APM
+    bool
+
+config I82378
+    bool
+
+config PC87312
+    bool
+
+config PIIX4
+    bool
+
+config VT82C686
+    bool
+
+config SMC37C669
+    bool
+
+config LPC_ICH9
+    bool
diff --git a/hw/lm32/Kconfig b/hw/lm32/Kconfig
new file mode 100644
index 0000000000..84c530e991
--- /dev/null
+++ b/hw/lm32/Kconfig
@@ -0,0 +1,5 @@
+config LM32
+    bool
+
+config MILKYMIST
+    bool
diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
new file mode 100644
index 0000000000..cd66ada909
--- /dev/null
+++ b/hw/m68k/Kconfig
@@ -0,0 +1,8 @@
+config AN5206
+    bool
+
+config MCF5206
+    bool
+
+config MCF5208
+    bool
diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig
new file mode 100644
index 0000000000..a3a4372fa7
--- /dev/null
+++ b/hw/mem/Kconfig
@@ -0,0 +1,8 @@
+config DIMM
+    bool
+
+config MEM_DEVICE
+    bool
+
+config NVDIMM
+    bool
diff --git a/hw/microblaze/Kconfig b/hw/microblaze/Kconfig
new file mode 100644
index 0000000000..44683b2737
--- /dev/null
+++ b/hw/microblaze/Kconfig
@@ -0,0 +1,8 @@
+config PETALOGIX_S3ADSP1800
+    bool
+
+config PETALOGIX_ML605
+    bool
+
+config XLNX_ZYNQMP_PMU
+    bool
diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig
new file mode 100644
index 0000000000..348c9bf6d3
--- /dev/null
+++ b/hw/mips/Kconfig
@@ -0,0 +1,20 @@
+config R4K
+    bool
+
+config MALTA
+    bool
+
+config MIPSSIM
+    bool
+
+config JAZZ
+    bool
+
+config FULONG
+    bool
+
+config MIPS_CPS
+    bool
+
+config MIPS_BOSTON
+    bool
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
new file mode 100644
index 0000000000..c006b046d4
--- /dev/null
+++ b/hw/misc/Kconfig
@@ -0,0 +1,92 @@
+config APPLESMC
+    bool
+
+config MAX111X
+    bool
+
+config TMP105
+    bool
+
+config TMP421
+    bool
+
+config ISA_DEBUG
+    bool
+
+config SGA
+    bool
+
+config ISA_TESTDEV
+    bool
+
+config PCI_TESTDEV
+    bool
+
+config EDU
+    bool
+
+config PCA9552
+    bool
+
+config PL310
+    bool
+
+config INTEGRATOR_DEBUG
+    bool
+
+config A9SCU
+    bool
+
+config ARM11SCU
+    bool
+
+config MOS6522
+    bool
+
+config MACIO
+    bool
+
+config IVSHMEM_DEVICE
+    bool
+
+config ECCMEMCTL
+    bool
+
+config IMX
+    bool
+
+config STM32F2XX_SYSCFG
+    bool
+
+config MIPS_ITU
+    bool
+
+config MPS2_FPGAIO
+    bool
+
+config MPS2_SCC
+    bool
+
+config TZ_MPC
+    bool
+
+config TZ_MSC
+    bool
+
+config TZ_PPC
+    bool
+
+config IOTKIT_SECCTL
+    bool
+
+config IOTKIT_SYSCTL
+    bool
+
+config IOTKIT_SYSINFO
+    bool
+
+config PVPANIC
+    bool
+
+config AUX
+    bool
diff --git a/hw/misc/macio/Kconfig b/hw/misc/macio/Kconfig
new file mode 100644
index 0000000000..c6caeb672f
--- /dev/null
+++ b/hw/misc/macio/Kconfig
@@ -0,0 +1,11 @@
+config CUDA
+    bool
+
+config MAC_PMU
+    bool
+
+config MAC_DBDMA
+    bool
+
+config MACIO_GPIO
+    bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
new file mode 100644
index 0000000000..6b2ec971b5
--- /dev/null
+++ b/hw/net/Kconfig
@@ -0,0 +1,92 @@
+config DP8393X
+    bool
+
+config NE2000_PCI
+    bool
+
+config EEPRO100_PCI
+    bool
+
+config PCNET_PCI
+    bool
+
+config PCNET_COMMON
+    bool
+
+config E1000_PCI
+    bool
+
+config E1000E_PCI
+    bool
+
+config RTL8139_PCI
+    bool
+
+config VMXNET3_PCI
+    bool
+
+config SMC91C111
+    bool
+
+config LAN9118
+    bool
+
+config NE2000_ISA
+    bool
+
+config OPENCORES_ETH
+    bool
+
+config XGMAC
+    bool
+
+config MIPSNET
+    bool
+
+config ALLWINNER_EMAC
+    bool
+
+config IMX_FEC
+    bool
+
+config CADENCE
+    bool
+
+config STELLARIS_ENET
+    bool
+
+config LANCE
+    bool
+
+config SUNHME
+    bool
+
+config FTGMAC100
+    bool
+
+config SUNGEM
+    bool
+
+config COLDFIRE
+    bool
+
+config XILINX_ETHLITE
+    bool
+
+config VIRTIO_NET
+   bool
+
+config ETSEC
+    bool
+
+config ROCKER
+    bool
+
+config CAN_BUS
+    bool
+
+config CAN_PCI
+    bool
+
+config CAN_SJA1000
+    bool
diff --git a/hw/nios2/Kconfig b/hw/nios2/Kconfig
new file mode 100644
index 0000000000..986c1cc0a1
--- /dev/null
+++ b/hw/nios2/Kconfig
@@ -0,0 +1,2 @@
+config NIOS2_10M50_BOARD
+    bool
diff --git a/hw/nvram/Kconfig b/hw/nvram/Kconfig
new file mode 100644
index 0000000000..1f5ec95d8b
--- /dev/null
+++ b/hw/nvram/Kconfig
@@ -0,0 +1,8 @@
+config DS1225Y
+    bool
+
+config AT24C
+    bool
+
+config MAC_NVRAM
+    bool
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
new file mode 100644
index 0000000000..bb19b7aac1
--- /dev/null
+++ b/hw/pci-bridge/Kconfig
@@ -0,0 +1,20 @@
+config PCIE_PORT
+    bool
+
+config PXB
+    bool
+
+config XIO3130
+    bool
+
+config IOH3420
+    bool
+
+config I82801B11
+    bool
+
+config DEC_PCI
+    bool
+
+config SIMBA
+    bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
new file mode 100644
index 0000000000..359df1d239
--- /dev/null
+++ b/hw/pci-host/Kconfig
@@ -0,0 +1,35 @@
+config PAM
+    bool
+
+config PREP_PCI
+    bool
+
+config GRACKLE_PCI
+    bool
+
+config UNIN_PCI
+    bool
+
+config PPCE500_PCI
+    bool
+
+config VERSATILE_PCI
+    bool
+
+config PCI_SABRE
+    bool
+
+config PCI_PIIX
+    bool
+
+config PCI_Q35
+    bool
+
+config PCI_GENERIC
+    bool
+
+config PCI_XILINX
+    bool
+
+config PCI_DESIGNWARE
+    bool
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
new file mode 100644
index 0000000000..d3d2205577
--- /dev/null
+++ b/hw/pci/Kconfig
@@ -0,0 +1,2 @@
+config PCI
+    bool
diff --git a/hw/pcmcia/Kconfig b/hw/pcmcia/Kconfig
new file mode 100644
index 0000000000..41f2df9136
--- /dev/null
+++ b/hw/pcmcia/Kconfig
@@ -0,0 +1,2 @@
+config PCMCIA
+    bool
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
new file mode 100644
index 0000000000..44b01acdd9
--- /dev/null
+++ b/hw/ppc/Kconfig
@@ -0,0 +1,38 @@
+config PSERIES
+    bool
+
+config SPAPR_RNG
+    bool
+
+config POWERNV
+    bool
+
+config PPC405
+    bool
+
+config PPC440
+    bool
+
+config PPC4XX
+    bool
+
+config SAM460EX
+    bool
+
+config PREP
+    bool
+
+config RS6000_MC
+    bool
+
+config MAC_OLDWORLD
+    bool
+
+config MAC_NEWWORLD
+    bool
+
+config E500
+    bool
+
+config VIRTEX
+    bool
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
new file mode 100644
index 0000000000..1a3e8b0e02
--- /dev/null
+++ b/hw/riscv/Kconfig
@@ -0,0 +1,14 @@
+config HTIF
+    bool
+
+config HART
+    bool
+
+config SIFIVE
+    bool
+
+config SPIKE
+    bool
+
+config RISCV_VIRTIO
+    bool
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
new file mode 100644
index 0000000000..eb78478ef0
--- /dev/null
+++ b/hw/scsi/Kconfig
@@ -0,0 +1,26 @@
+config SCSI
+    bool
+
+config LSI_SCSI_PCI
+    bool
+
+config MPTSAS_SCSI_PCI
+    bool
+
+config MEGASAS_SCSI_PCI
+    bool
+
+config VMW_PVSCSI_SCSI_PCI
+    bool
+
+config ESP
+    bool
+
+config ESP_PCI
+    bool
+
+config VIRTIO_SCSI
+    bool
+
+config VHOST_USER_SCSI
+    bool
diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig
new file mode 100644
index 0000000000..4f43bbb352
--- /dev/null
+++ b/hw/sd/Kconfig
@@ -0,0 +1,11 @@
+config PL181
+    bool
+
+config SSI_SD
+    bool
+
+config SD
+    bool
+
+config SDHCI
+    bool
diff --git a/hw/sh4/Kconfig b/hw/sh4/Kconfig
new file mode 100644
index 0000000000..b2faf1489e
--- /dev/null
+++ b/hw/sh4/Kconfig
@@ -0,0 +1,8 @@
+config R2D
+    bool
+
+config SHIX
+    bool
+
+config SH7750
+    bool
diff --git a/hw/smbios/Kconfig b/hw/smbios/Kconfig
new file mode 100644
index 0000000000..553adf4bfc
--- /dev/null
+++ b/hw/smbios/Kconfig
@@ -0,0 +1,2 @@
+config SMBIOS
+    bool
diff --git a/hw/sparc/Kconfig b/hw/sparc/Kconfig
new file mode 100644
index 0000000000..529fca328f
--- /dev/null
+++ b/hw/sparc/Kconfig
@@ -0,0 +1,5 @@
+config SUN4M
+    bool
+
+config LEON3
+    bool
diff --git a/hw/sparc64/Kconfig b/hw/sparc64/Kconfig
new file mode 100644
index 0000000000..8c13345f01
--- /dev/null
+++ b/hw/sparc64/Kconfig
@@ -0,0 +1,5 @@
+config SUN4U
+    bool
+
+config NIAGARA
+    bool
diff --git a/hw/ssi/Kconfig b/hw/ssi/Kconfig
new file mode 100644
index 0000000000..5a03110a8d
--- /dev/null
+++ b/hw/ssi/Kconfig
@@ -0,0 +1,14 @@
+config PL022
+    bool
+
+config SSI
+    bool
+
+config XILINX_SPI
+    bool
+
+config XILINX_SPIPS
+    bool
+
+config STM32F2XX_SPI
+    bool
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
new file mode 100644
index 0000000000..7dbc1211ab
--- /dev/null
+++ b/hw/timer/Kconfig
@@ -0,0 +1,53 @@
+config ARM_TIMER
+    bool
+
+config ARM_MPTIMER
+    bool
+
+config A9_GTIMER
+    bool
+
+config DS1338
+    bool
+
+config HPET
+    bool
+
+config I8254
+    bool
+
+config M41T80
+    bool
+
+config M48T59
+    bool
+
+config PL031
+    bool
+
+config TWL92230
+    bool
+
+config XLNX_ZYNQMP
+    bool
+
+config ALTERA_TIMER
+    bool
+
+config MC146818RTC
+    bool
+
+config ALLWINNER_A10_PIT
+    bool
+
+config STM32F2XX_TIMER
+    bool
+
+config SUN4V_RTC
+    bool
+
+config CMSDK_APB_TIMER
+    bool
+
+config CMSDK_APB_DUALTIMER
+    bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
new file mode 100644
index 0000000000..2eee8eb865
--- /dev/null
+++ b/hw/tpm/Kconfig
@@ -0,0 +1,14 @@
+config TPM
+    bool
+
+config TPM_TIS
+    bool
+
+config TPM_CRB
+    bool
+
+config TPM_PASSTHROUGH
+    bool
+
+config TPM_EMULATOR
+    bool
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
new file mode 100644
index 0000000000..cbf5c5d761
--- /dev/null
+++ b/hw/usb/Kconfig
@@ -0,0 +1,53 @@
+config USB
+    bool
+
+config USB_UHCI
+    bool
+
+config USB_OHCI
+    bool
+
+config USB_EHCI
+    bool
+
+config USB_EHCI_SYSBUS
+    bool
+
+config USB_XHCI
+    bool
+
+config USB_XHCI_NEC
+    bool
+
+config USB_MUSB
+    bool
+
+config TUSB6010
+    bool
+
+config USB_TABLET_WACOM
+    bool
+
+config USB_STORAGE_BOT
+    bool
+
+config USB_STORAGE_UAS
+    bool
+
+config USB_AUDIO
+    bool
+
+config USB_SERIAL
+    bool
+
+config USB_NETWORK
+    bool
+
+config USB_BLUETOOTH
+    bool
+
+config USB_SMARTCARD
+    bool
+
+config USB_STORAGE_MTP
+    bool
diff --git a/hw/vfio/Kconfig b/hw/vfio/Kconfig
new file mode 100644
index 0000000000..3cb7b25fe6
--- /dev/null
+++ b/hw/vfio/Kconfig
@@ -0,0 +1,11 @@
+config VFIO_CCW
+    bool
+
+config VFIO_XGMAC
+    bool
+
+config VFIO_AMD_XGBE
+    bool
+
+config VFIO_AP
+    bool
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
new file mode 100644
index 0000000000..ebf18124fb
--- /dev/null
+++ b/hw/virtio/Kconfig
@@ -0,0 +1,17 @@
+config VIRTIO
+    bool
+
+config VIRTIO_RNG
+    bool
+
+config VIRTIO_PCI
+    bool
+
+config VIRTIO_MMIO
+    bool
+
+config VIRTIO_BALLOON
+    bool
+
+config VIRTIO_CRYPTO
+    bool
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
new file mode 100644
index 0000000000..cd0244f4e1
--- /dev/null
+++ b/hw/watchdog/Kconfig
@@ -0,0 +1,11 @@
+config CMSDK_APB_WATCHDOG
+    bool
+
+config WDT_IB6300ESB
+    bool
+
+config WDT_IB700
+    bool
+
+config WDT_DIAG288
+    bool
diff --git a/hw/xtensa/Kconfig b/hw/xtensa/Kconfig
new file mode 100644
index 0000000000..97543a9263
--- /dev/null
+++ b/hw/xtensa/Kconfig
@@ -0,0 +1,5 @@
+config XTENSA_SIM
+    bool
+
+config XTENSA_FPGA
+    bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (18 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 11:05   ` Thomas Huth
  2019-01-16 16:28   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig Yang Zhong
                   ` (18 subsequent siblings)
  38 siblings, 2 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

The make_device_config.sh script is replaced by minikconf, which
is modified to support the same command line as its predecessor.

The roots of the parsing are default-configs/*.mak, Kconfig.host and
hw/Kconfig.  One difference with make_device_config.sh is that all symbols
have to be defined in a Kconfig file, including those coming from the
configure script.  This is the reason for the Kconfig.host file introduced
in the previous patch. Whenever a file in default-configs/*.mak used
$(...) to refer to a config-host.mak symbol, this is replaced by a
Kconfig dependency.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 Kconfig.host                     |  3 ++-
 Makefile                         | 14 +++++++++++--
 Makefile.target                  |  7 ++++++-
 default-configs/i386-softmmu.mak |  3 ---
 hw/display/Kconfig               |  2 ++
 hw/i386/Kconfig                  |  6 ++++++
 hw/intc/Kconfig                  |  8 ++++++++
 hw/misc/Kconfig                  |  2 ++
 hw/tpm/Kconfig                   |  1 +
 rules.mak                        |  2 +-
 scripts/make_device_config.sh    | 30 ---------------------------
 scripts/minikconf.py             | 35 +++++++++++++++++++++++++++++---
 12 files changed, 72 insertions(+), 41 deletions(-)
 delete mode 100644 scripts/make_device_config.sh

diff --git a/Kconfig.host b/Kconfig.host
index 2136a4c3ec..d7f503d0ca 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -1,5 +1,6 @@
 # These are "proxy" symbols used to pass config-host.mak values
-# down to Kconfig.
+# down to Kconfig.  See also MINIKCONF_ARGS in the Makefile:
+# these two need to be kept in sync.
 
 config KVM
     bool
diff --git a/Makefile b/Makefile
index a9ac16d94e..01e7c60a0d 100644
--- a/Makefile
+++ b/Makefile
@@ -326,9 +326,19 @@ endif
 
 -include $(SUBDIR_DEVICES_MAK_DEP)
 
-%/config-devices.mak: default-configs/%.mak $(SRC_PATH)/scripts/make_device_config.sh
+# This has to be kept in sync with Kconfig.host.
+MINIKCONF_ARGS = \
+    CONFIG_KVM=$(CONFIG_KVM) \
+    CONFIG_SPICE=$(CONFIG_SPICE) \
+    CONFIG_TPM=$(CONFIG_TPM) \
+    CONFIG_XEN=$(CONFIG_XEN) \
+    CONFIG_OPENGL=$(CONFIG_OPENGL)
+
+MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh
+
+%/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig
 	$(call quiet-command, \
-            $(SHELL) $(SRC_PATH)/scripts/make_device_config.sh $< $*-config-devices.mak.d $@ > $@.tmp,"GEN","$@.tmp")
+            $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, "  GEN   $@.tmp")
 	$(call quiet-command, if test -f $@; then \
 	  if cmp -s $@.old $@; then \
 	    mv $@.tmp $@; \
diff --git a/Makefile.target b/Makefile.target
index 44ec4b630c..5aa8596a96 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -4,9 +4,12 @@ BUILD_DIR?=$(CURDIR)/..
 
 include ../config-host.mak
 include config-target.mak
-include config-devices.mak
 include $(SRC_PATH)/rules.mak
 
+ifdef CONFIG_SOFTMMU
+include config-devices.mak
+endif
+
 $(call set-vpath, $(SRC_PATH):$(BUILD_DIR))
 ifdef CONFIG_LINUX
 QEMU_CFLAGS += -I../linux-headers
@@ -187,7 +190,9 @@ all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
 
+ifdef CONFIG_SOFTMMU
 $(QEMU_PROG_BUILD): config-devices.mak
+endif
 
 COMMON_LDADDS = ../libqemuutil.a
 
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 8db7867015..f71284516c 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -4,7 +4,6 @@ include pci.mak
 include sound.mak
 include usb.mak
 include hyperv.mak
-CONFIG_QXL=$(CONFIG_SPICE)
 CONFIG_VGA_ISA=y
 CONFIG_VGA_CIRRUS=y
 CONFIG_VMWARE_VGA=y
@@ -37,8 +36,6 @@ CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_TPM_TIS=$(CONFIG_TPM)
-CONFIG_TPM_CRB=$(CONFIG_TPM)
 CONFIG_MC146818RTC=y
 CONFIG_PCI_PIIX=y
 CONFIG_WDT_IB700=y
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index d5c022c886..132aeffdbe 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -51,6 +51,7 @@ config FRAMEBUFFER
 
 config MILKYMIST_TMU2
     bool
+    depends on OPENGL
 
 config SM501
     bool
@@ -66,6 +67,7 @@ config VGA
 
 config QXL
     bool
+    depends on SPICE
 
 config VIRTIO_GPU
     bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 2dbe2b5d3e..427bda3717 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -3,12 +3,18 @@ config KVM
 
 config I440FX
     bool
+    select QXL if SPICE
+    select TPM_TIS if TPM
+    select XEN_I386 if XEN
 
 config ISAPC
     bool
 
 config Q35
     bool
+    select QXL if SPICE
+    select TPM_TIS if TPM
+    select XEN_I386 if XEN
 
 config VTD
     bool
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
index 69adbd135f..226ef3ae2e 100644
--- a/hw/intc/Kconfig
+++ b/hw/intc/Kconfig
@@ -21,9 +21,13 @@ config APIC
 
 config ARM_GIC_KVM
     bool
+    default y
+    depends on ARM_GIC && KVM
 
 config OPENPIC_KVM
     bool
+    default y
+    depends on OPENPIC && KVM
 
 config XICS
     bool
@@ -33,6 +37,8 @@ config XICS_SPAPR
 
 config XICS_KVM
     bool
+    default y
+    depends on XICS && KVM
 
 config ALLWINNER_A10_PIC
     bool
@@ -42,6 +48,8 @@ config S390_FLIC
 
 config S390_FLIC_KVM
     bool
+    default y
+    depends on S390_FLIC && KVM
 
 config OMPIC
     bool
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index c006b046d4..cc8dbed24e 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -48,6 +48,8 @@ config MACIO
 
 config IVSHMEM_DEVICE
     bool
+    default y
+    depends on PCI
 
 config ECCMEMCTL
     bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index 2eee8eb865..da4bb5b6c7 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -3,6 +3,7 @@ config TPM
 
 config TPM_TIS
     bool
+    depends on TPM
 
 config TPM_CRB
     bool
diff --git a/rules.mak b/rules.mak
index bbb2667928..2d4559a6ce 100644
--- a/rules.mak
+++ b/rules.mak
@@ -142,7 +142,7 @@ cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \
 cc-c-option = $(if $(shell $(CC) $1 $2 -c -o /dev/null -xc /dev/null \
                 >/dev/null 2>&1 && echo OK), $2, $3)
 
-VPATH_SUFFIXES = %.c %.h %.S %.cc %.cpp %.m %.mak %.texi %.sh %.rc
+VPATH_SUFFIXES = %.c %.h %.S %.cc %.cpp %.m %.mak %.texi %.sh %.rc Kconfig%
 set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1)))
 
 # install-prog list, dir
diff --git a/scripts/make_device_config.sh b/scripts/make_device_config.sh
deleted file mode 100644
index 354af317b3..0000000000
--- a/scripts/make_device_config.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#! /bin/sh
-# Writes a target device config file to stdout, from a default and from
-# include directives therein.  Also emits Makefile dependencies.
-#
-# Usage: make_device_config.sh SRC DEPFILE-NAME DEPFILE-TARGET > DEST
-
-src=$1
-dep=$2
-target=$3
-src_dir=$(dirname $src)
-all_includes=
-
-process_includes () {
-  cat $1 | grep '^include' | \
-  while read include file ; do
-    all_includes="$all_includes $src_dir/$file"
-    process_includes $src_dir/$file
-  done
-}
-
-f=$src
-while [ -n "$f" ] ; do
-  f=$(cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}')
-  [ $? = 0 ] || exit 1
-  all_includes="$all_includes $f"
-done
-process_includes $src
-
-cat $src $all_includes | grep -v '^include'
-echo "$target: $all_includes" > $dep
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index 48800591e2..b0b4f76733 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -12,6 +12,7 @@
 
 import os
 import sys
+import re
 
 __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
 
@@ -329,6 +330,12 @@ class KconfigParser:
         self.get_token()
         self.parse_config()
 
+    def do_assignment(self, var, val):
+        if not var.startswith("CONFIG_"):
+            raise Error('assigned variable should start with CONFIG_')
+        var = self.data.do_var(var[7:])
+        self.data.do_assignment(var, val)
+
     # file management -----
 
     def error_path(self):
@@ -617,6 +624,28 @@ class KconfigParser:
         return None
 
 if __name__ == '__main__':
-    fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test'
-    data = KconfigParser.parse(open(fname, 'r'))
-    print data.compute_config()
+    argv = sys.argv
+    if len(argv) == 1:
+        print >>sys.stderr, "%s: at least one argument is required" % argv[0]
+        os.exit(1)
+
+    data = KconfigData()
+    parser = KconfigParser(data)
+    for arg in argv[3:]:
+        m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg)
+        if m is not None:
+            name, value = m.groups()
+            parser.do_assignment(name, value == 'y')
+        else:
+            fp = open(arg, 'r')
+            parser.parse_file(fp)
+            fp.close()
+
+    config = data.compute_config()
+    for key in sorted(config.keys()):
+        print 'CONFIG_%s=%s'% (key, (config[key] and 'y' or 'n'))
+
+    deps = open(argv[2], 'w')
+    for fname in data.previously_included:
+        print >>deps, '%s: %s' % (argv[1], fname)
+    deps.close()
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (19 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 11:21   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable Yang Zhong
                   ` (17 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/alpha-softmmu.mak |  2 --
 default-configs/pci.mak           |  3 ---
 hw/ide/Kconfig                    | 15 +++++++++++++++
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 4d654eaa0b..62afa5ec16 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -11,8 +11,6 @@ CONFIG_PARALLEL=y
 CONFIG_FDC=y
 CONFIG_PCKBD=y
 CONFIG_VGA_CIRRUS=y
-CONFIG_IDE_CORE=y
-CONFIG_IDE_QDEV=y
 CONFIG_VMWARE_VGA=y
 CONFIG_IDE_CMD646=y
 CONFIG_I8259=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index 171bdf48bc..c1b64922b9 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -23,9 +23,6 @@ CONFIG_MPTSAS_SCSI_PCI=y
 CONFIG_RTL8139_PCI=y
 CONFIG_E1000_PCI=y
 CONFIG_E1000E_PCI=y
-CONFIG_IDE_CORE=y
-CONFIG_IDE_QDEV=y
-CONFIG_IDE_PCI=y
 CONFIG_AHCI=y
 CONFIG_ESP=y
 CONFIG_ESP_PCI=y
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index 5ec449525f..fe27705790 100644
--- a/hw/ide/Kconfig
+++ b/hw/ide/Kconfig
@@ -3,33 +3,48 @@ config IDE_CORE
 
 config IDE_QDEV
     bool
+    select IDE_CORE
 
 config IDE_PCI
     bool
+    select IDE_CORE
 
 config IDE_ISA
     bool
+    select IDE_QDEV
 
 config IDE_PIIX
     bool
+    select IDE_PCI
+    select IDE_QDEV
 
 config IDE_CMD646
     bool
+    select IDE_PCI
+    select IDE_QDEV
 
 config IDE_MACIO
     bool
+    select IDE_QDEV
 
 config IDE_MMIO
     bool
+    select IDE_QDEV
 
 config IDE_VIA
     bool
+    select IDE_PCI
+    select IDE_QDEV
 
 config MICRODRIVE
     bool
+    select IDE_QDEV
 
 config AHCI
     bool
+    select IDE_QDEV
 
 config IDE_SII3112
     bool
+    select IDE_PCI
+    select IDE_QDEV
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (20 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 11:23   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig Yang Zhong
                   ` (16 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Make pcie splited from pci and make it configurable.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/pci.mak | 1 +
 hw/pci/Kconfig          | 3 +++
 hw/pci/Makefile.objs    | 5 +++--
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index c1b64922b9..553b1905de 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -1,4 +1,5 @@
 CONFIG_PCI=y
+CONFIG_PCIE=y
 # For now, CONFIG_IDE_CORE requires ISA, so we enable it here
 CONFIG_ISA_BUS=y
 CONFIG_VIRTIO_PCI=y
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
index d3d2205577..a717a26995 100644
--- a/hw/pci/Kconfig
+++ b/hw/pci/Kconfig
@@ -1,2 +1,5 @@
 config PCI
     bool
+
+config PCIE
+    bool
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 9f905e6344..a995795a47 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -2,8 +2,9 @@ common-obj-$(CONFIG_PCI) += pci.o pci_bridge.o
 common-obj-$(CONFIG_PCI) += msix.o msi.o
 common-obj-$(CONFIG_PCI) += shpc.o
 common-obj-$(CONFIG_PCI) += slotid_cap.o
-common-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
-common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
+common-obj-$(CONFIG_PCI) += pci_host.o
+common-obj-$(CONFIG_PCIE) += pcie.o pcie_aer.o
+common-obj-$(CONFIG_PCIE) += pcie_port.o pcie_host.o
 
 common-obj-$(call lnot,$(CONFIG_PCI)) += pci-stub.o
 common-obj-$(CONFIG_ALL) += pci-stub.o
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (21 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 11:41   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak " Yang Zhong
                   ` (15 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Instead of including the same list of devices for each target,
set CONFIG_PCI to true, and make the devices default to present
whenever PCI is available.

Done mostly with the following script:

  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y\' -e'    depends on PCI' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/pci.mak

followed by replacing a few "depends on" clauses with "select"
whenever the symbol is not really related to PCI.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/alpha-softmmu.mak       |  2 +-
 default-configs/arm-softmmu.mak         |  2 +-
 default-configs/hppa-softmmu.mak        |  2 +-
 default-configs/i386-softmmu.mak        |  3 +-
 default-configs/mips-softmmu-common.mak |  2 +-
 default-configs/pci.mak                 | 48 -------------------------
 default-configs/ppc-softmmu.mak         |  2 +-
 default-configs/riscv32-softmmu.mak     |  3 +-
 default-configs/riscv64-softmmu.mak     |  2 +-
 default-configs/sh4-softmmu.mak         |  2 +-
 default-configs/sh4eb-softmmu.mak       |  2 +-
 default-configs/sparc64-softmmu.mak     |  2 +-
 hw/audio/Kconfig                        |  6 ++++
 hw/block/Kconfig                        |  2 ++
 hw/char/Kconfig                         |  2 ++
 hw/display/Kconfig                      | 12 ++++++-
 hw/ide/Kconfig                          |  3 ++
 hw/ipack/Kconfig                        |  2 ++
 hw/misc/Kconfig                         |  4 +++
 hw/net/Kconfig                          | 23 ++++++++++++
 hw/pci-bridge/Kconfig                   |  4 +++
 hw/pci-host/Kconfig                     |  4 +++
 hw/scsi/Kconfig                         | 11 ++++++
 hw/sd/Kconfig                           |  3 ++
 hw/usb/Kconfig                          | 10 ++++++
 hw/virtio/Kconfig                       |  3 ++
 hw/watchdog/Kconfig                     |  2 ++
 27 files changed, 101 insertions(+), 62 deletions(-)
 delete mode 100644 default-configs/pci.mak

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 62afa5ec16..c71d1b7f37 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for alpha-softmmu
 
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
 CONFIG_I82374=y
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 3903d1ada3..8c071f6224 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for arm-softmmu
 
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_VGA=y
 CONFIG_NAND=y
 CONFIG_ECC=y
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index 4badc0521e..74d34c05e9 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -1,5 +1,5 @@
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
 CONFIG_ISA_BUS=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index f71284516c..554dbd8c6b 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,6 +1,6 @@
 # Default configuration for i386-softmmu
 
-include pci.mak
+CONFIG_PCI=y
 include sound.mak
 include usb.mak
 include hyperv.mak
@@ -52,7 +52,6 @@ CONFIG_MEM_DEVICE=y
 CONFIG_DIMM=y
 CONFIG_NVDIMM=y
 CONFIG_ACPI_NVDIMM=y
-CONFIG_PCIE_PORT=y
 CONFIG_XIO3130=y
 CONFIG_IOH3420=y
 CONFIG_I82801B11=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 77b40ec7d1..5ef6d49e66 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -1,8 +1,8 @@
 # Common mips*-softmmu CONFIG defines
 
-include pci.mak
 include sound.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_ESP=y
 CONFIG_SCSI=y
 CONFIG_VGA_ISA=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
deleted file mode 100644
index 553b1905de..0000000000
--- a/default-configs/pci.mak
+++ /dev/null
@@ -1,48 +0,0 @@
-CONFIG_PCI=y
-CONFIG_PCIE=y
-# For now, CONFIG_IDE_CORE requires ISA, so we enable it here
-CONFIG_ISA_BUS=y
-CONFIG_VIRTIO_PCI=y
-include virtio.mak
-CONFIG_USB_UHCI=y
-CONFIG_USB_OHCI=y
-CONFIG_USB_EHCI=y
-CONFIG_USB_XHCI=y
-CONFIG_USB_XHCI_NEC=y
-CONFIG_NE2000_PCI=y
-CONFIG_EEPRO100_PCI=y
-CONFIG_PCNET_PCI=y
-CONFIG_PCNET_COMMON=y
-CONFIG_AC97=y
-CONFIG_HDA=y
-CONFIG_ES1370=y
-CONFIG_SCSI=y
-CONFIG_LSI_SCSI_PCI=y
-CONFIG_VMW_PVSCSI_SCSI_PCI=y
-CONFIG_MEGASAS_SCSI_PCI=y
-CONFIG_MPTSAS_SCSI_PCI=y
-CONFIG_RTL8139_PCI=y
-CONFIG_E1000_PCI=y
-CONFIG_E1000E_PCI=y
-CONFIG_AHCI=y
-CONFIG_ESP=y
-CONFIG_ESP_PCI=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
-CONFIG_SERIAL_PCI=y
-CONFIG_CAN_BUS=y
-CONFIG_CAN_SJA1000=y
-CONFIG_CAN_PCI=y
-CONFIG_IPACK=y
-CONFIG_WDT_IB6300ESB=y
-CONFIG_PCI_TESTDEV=y
-CONFIG_NVME_PCI=y
-CONFIG_SD=y
-CONFIG_SDHCI=y
-CONFIG_EDU=y
-CONFIG_VGA=y
-CONFIG_VGA_PCI=y
-CONFIG_BOCHS_DISPLAY=y
-CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM)
-CONFIG_ROCKER=y
-CONFIG_EDID=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 96088f47ca..301cc83279 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,8 +1,8 @@
 # Default configuration for ppc-softmmu
 
-include pci.mak
 include sound.mak
 include usb.mak
+CONFIG_PCI=y
 
 # For embedded PPCs:
 CONFIG_PPC4XX=y
diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index af841839d1..e994a192eb 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -1,7 +1,6 @@
 # Default configuration for riscv-softmmu
 
-include pci.mak
-
+CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_VIRTIO_MMIO=y
 
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index af841839d1..ec81330297 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -1,6 +1,6 @@
 # Default configuration for riscv-softmmu
 
-include pci.mak
+CONFIG_PCI=y
 
 CONFIG_SERIAL=y
 CONFIG_VIRTIO_MMIO=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 4b65489624..57d99fa93c 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for sh4-softmmu
 
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
 CONFIG_PTIMER=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index af71aa7f42..2e5909c381 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for sh4eb-softmmu
 
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
 CONFIG_PTIMER=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 1fae4888db..db393d9eb3 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for sparc64-softmmu
 
-include pci.mak
 include usb.mak
+CONFIG_PCI=y
 CONFIG_M48T59=y
 CONFIG_PTIMER=y
 CONFIG_SERIAL=y
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index 207baee6e1..af34bbcf0c 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -3,9 +3,13 @@ config SB16
 
 config ES1370
     bool
+    default y
+    depends on PCI
 
 config AC97
     bool
+    default y
+    depends on PCI
 
 config ADLIB
     bool
@@ -18,6 +22,8 @@ config CS4231A
 
 config HDA
     bool
+    default y
+    depends on PCI
 
 config PCSPK
     bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 9d418bce4d..3710434436 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -21,6 +21,8 @@ config ONENAND
 
 config NVME_PCI
     bool
+    default y
+    depends on PCI
 
 config VIRTIO_BLK
     bool
diff --git a/hw/char/Kconfig b/hw/char/Kconfig
index 26c13243cf..1ed6f0dbce 100644
--- a/hw/char/Kconfig
+++ b/hw/char/Kconfig
@@ -15,6 +15,8 @@ config SERIAL_ISA
 
 config SERIAL_PCI
     bool
+    default y
+    depends on PCI
 
 config VIRTIO_SERIAL
     bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 132aeffdbe..5e73277cc2 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -30,6 +30,9 @@ config SSD0323
 
 config VGA_PCI
     bool
+    default y
+    depends on PCI
+    select VGA
 
 config VGA_ISA
     bool
@@ -39,9 +42,15 @@ config VGA_ISA_MM
 
 config VMWARE_VGA
     bool
+    default y
+    depends on PCI
+    select VGA
 
 config BOCHS_DISPLAY
     bool
+    default y
+    depends on PCI
+    select VGA
 
 config BLIZZARD
     bool
@@ -67,7 +76,8 @@ config VGA
 
 config QXL
     bool
-    depends on SPICE
+    depends on SPICE && PCI
+    select VGA
 
 config VIRTIO_GPU
     bool
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index fe27705790..3778580df2 100644
--- a/hw/ide/Kconfig
+++ b/hw/ide/Kconfig
@@ -7,6 +7,7 @@ config IDE_QDEV
 
 config IDE_PCI
     bool
+    depends on PCI
     select IDE_CORE
 
 config IDE_ISA
@@ -42,6 +43,8 @@ config MICRODRIVE
 
 config AHCI
     bool
+    default y
+    depends on PCI
     select IDE_QDEV
 
 config IDE_SII3112
diff --git a/hw/ipack/Kconfig b/hw/ipack/Kconfig
index 481e0d2e64..98bd21cf0f 100644
--- a/hw/ipack/Kconfig
+++ b/hw/ipack/Kconfig
@@ -1,2 +1,4 @@
 config IPACK
     bool
+    default y
+    depends on PCI
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index cc8dbed24e..1ca4b2464e 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -21,9 +21,13 @@ config ISA_TESTDEV
 
 config PCI_TESTDEV
     bool
+    default y
+    depends on PCI
 
 config EDU
     bool
+    default y
+    depends on PCI
 
 config PCA9552
     bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index 6b2ec971b5..5191c082e3 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -3,27 +3,42 @@ config DP8393X
 
 config NE2000_PCI
     bool
+    default y
+    depends on PCI
 
 config EEPRO100_PCI
     bool
+    default y
+    depends on PCI
 
 config PCNET_PCI
     bool
+    default y
+    depends on PCI
+    select PCNET_COMMON
 
 config PCNET_COMMON
     bool
 
 config E1000_PCI
     bool
+    default y
+    depends on PCI
 
 config E1000E_PCI
     bool
+    default y
+    depends on PCI
 
 config RTL8139_PCI
     bool
+    default y
+    depends on PCI
 
 config VMXNET3_PCI
     bool
+    default y
+    depends on PCI
 
 config SMC91C111
     bool
@@ -81,12 +96,20 @@ config ETSEC
 
 config ROCKER
     bool
+    default y
+    depends on PCI
 
 config CAN_BUS
     bool
 
 config CAN_PCI
     bool
+    default y
+    depends on PCI
+    select CAN_BUS
 
 config CAN_SJA1000
     bool
+    default y
+    depends on PCI
+    select CAN_BUS
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index bb19b7aac1..d54d878023 100644
--- a/hw/pci-bridge/Kconfig
+++ b/hw/pci-bridge/Kconfig
@@ -1,14 +1,18 @@
 config PCIE_PORT
     bool
+    default y
+    depends on PCIE
 
 config PXB
     bool
 
 config XIO3130
     bool
+    depends on PCIE
 
 config IOH3420
     bool
+    depends on PCIE
 
 config I82801B11
     bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index 359df1d239..20c3de37a3 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -24,12 +24,16 @@ config PCI_PIIX
 
 config PCI_Q35
     bool
+    select PCIE
 
 config PCI_GENERIC
     bool
+    select PCIE
 
 config PCI_XILINX
     bool
+    select PCIE
 
 config PCI_DESIGNWARE
     bool
+    select PCIE
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index eb78478ef0..812a12522b 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -3,21 +3,32 @@ config SCSI
 
 config LSI_SCSI_PCI
     bool
+    default y
+    depends on PCI
 
 config MPTSAS_SCSI_PCI
     bool
+    default y
+    depends on PCI
 
 config MEGASAS_SCSI_PCI
     bool
+    default y
+    depends on PCI
 
 config VMW_PVSCSI_SCSI_PCI
     bool
+    default y
+    depends on PCI
 
 config ESP
     bool
 
 config ESP_PCI
     bool
+    default y
+    depends on PCI
+    select ESP
 
 config VIRTIO_SCSI
     bool
diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig
index 4f43bbb352..90ac74950a 100644
--- a/hw/sd/Kconfig
+++ b/hw/sd/Kconfig
@@ -9,3 +9,6 @@ config SD
 
 config SDHCI
     bool
+    default y
+    depends on PCI
+    select SD
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index cbf5c5d761..f23c542d27 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -3,21 +3,31 @@ config USB
 
 config USB_UHCI
     bool
+    default y
+    depends on PCI
 
 config USB_OHCI
     bool
+    default y
+    depends on PCI
 
 config USB_EHCI
     bool
+    default y
+    depends on PCI
 
 config USB_EHCI_SYSBUS
     bool
 
 config USB_XHCI
     bool
+    default y
+    depends on PCI
 
 config USB_XHCI_NEC
     bool
+    default y
+    depends on PCI
 
 config USB_MUSB
     bool
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index ebf18124fb..aabd6d4d96 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -6,6 +6,9 @@ config VIRTIO_RNG
 
 config VIRTIO_PCI
     bool
+    default y
+    depends on PCI
+    select VIRTIO
 
 config VIRTIO_MMIO
     bool
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
index cd0244f4e1..4e24bf8240 100644
--- a/hw/watchdog/Kconfig
+++ b/hw/watchdog/Kconfig
@@ -3,6 +3,8 @@ config CMSDK_APB_WATCHDOG
 
 config WDT_IB6300ESB
     bool
+    default y
+    depends on PCI
 
 config WDT_IB700
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak to Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (22 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 13:48   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 25/37] build: convert usb.mak " Yang Zhong
                   ` (14 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

There is really nothing special in these devices; they are just
ISA devices.  Instead of including them for each target,
set CONFIG_ISA to true, and make the devices default to present
whenever ISA is available.  More conversion of ISA devices will
follow.

Done with the following script:

  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y\' -e'    depends on ISA' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/sound.mak

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/i386-softmmu.mak        | 2 +-
 default-configs/mips-softmmu-common.mak | 2 +-
 default-configs/ppc-softmmu.mak         | 2 +-
 default-configs/sound.mak               | 4 ----
 hw/audio/Kconfig                        | 8 ++++++++
 5 files changed, 11 insertions(+), 7 deletions(-)
 delete mode 100644 default-configs/sound.mak

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 554dbd8c6b..cf49e3fae7 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,7 +1,7 @@
 # Default configuration for i386-softmmu
 
 CONFIG_PCI=y
-include sound.mak
+CONFIG_ISA=y
 include usb.mak
 include hyperv.mak
 CONFIG_VGA_ISA=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 5ef6d49e66..03c7a08d1a 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -1,7 +1,7 @@
 # Common mips*-softmmu CONFIG defines
 
-include sound.mak
 include usb.mak
+CONFIG_ISA=y
 CONFIG_PCI=y
 CONFIG_ESP=y
 CONFIG_SCSI=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 301cc83279..c7003e4284 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,8 +1,8 @@
 # Default configuration for ppc-softmmu
 
-include sound.mak
 include usb.mak
 CONFIG_PCI=y
+ONFIG_ISA=y
 
 # For embedded PPCs:
 CONFIG_PPC4XX=y
diff --git a/default-configs/sound.mak b/default-configs/sound.mak
deleted file mode 100644
index 4f22c34b5d..0000000000
--- a/default-configs/sound.mak
+++ /dev/null
@@ -1,4 +0,0 @@
-CONFIG_SB16=y
-CONFIG_ADLIB=y
-CONFIG_GUS=y
-CONFIG_CS4231A=y
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index af34bbcf0c..bfb30276ec 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -1,5 +1,7 @@
 config SB16
     bool
+    default y
+    depends on ISA_BUS
 
 config ES1370
     bool
@@ -13,12 +15,18 @@ config AC97
 
 config ADLIB
     bool
+    default y
+    depends on ISA_BUS
 
 config GUS
     bool
+    default y
+    depends on ISA_BUS
 
 config CS4231A
     bool
+    default y
+    depends on ISA_BUS
 
 config HDA
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 25/37] build: convert usb.mak to Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (23 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak " Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig Yang Zhong
                   ` (13 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Instead of including the same list of devices for each target,
let the host controllers select CONFIG_USB and make the devices
default to present whenever USB is available.

Done with the following script:
  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y\' -e'    depends on USB' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/usb.mak

followed by adding "select USB" on the host controllers.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/alpha-softmmu.mak       |  1 -
 default-configs/arm-softmmu.mak         |  2 --
 default-configs/hppa-softmmu.mak        |  1 -
 default-configs/i386-softmmu.mak        |  1 -
 default-configs/mips-softmmu-common.mak |  1 -
 default-configs/ppc-softmmu.mak         |  1 -
 default-configs/sh4-softmmu.mak         |  1 -
 default-configs/sh4eb-softmmu.mak       |  1 -
 default-configs/sparc64-softmmu.mak     |  1 -
 default-configs/usb.mak                 | 11 -----------
 hw/usb/Kconfig                          | 26 +++++++++++++++++++++++++
 11 files changed, 26 insertions(+), 21 deletions(-)
 delete mode 100644 default-configs/usb.mak

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index c71d1b7f37..ef8c9ae5ed 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for alpha-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 8c071f6224..92fc9911eb 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for arm-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 CONFIG_VGA=y
 CONFIG_NAND=y
@@ -38,7 +37,6 @@ CONFIG_DS1338=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_PFLASH_CFI02=y
 CONFIG_MICRODRIVE=y
-CONFIG_USB=y
 CONFIG_USB_MUSB=y
 CONFIG_USB_EHCI_SYSBUS=y
 CONFIG_PLATFORM_BUS=y
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index 74d34c05e9..fe07c90937 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -1,4 +1,3 @@
-include usb.mak
 CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index cf49e3fae7..23dcca7a31 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -2,7 +2,6 @@
 
 CONFIG_PCI=y
 CONFIG_ISA=y
-include usb.mak
 include hyperv.mak
 CONFIG_VGA_ISA=y
 CONFIG_VGA_CIRRUS=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 03c7a08d1a..1060374d51 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -1,6 +1,5 @@
 # Common mips*-softmmu CONFIG defines
 
-include usb.mak
 CONFIG_ISA=y
 CONFIG_PCI=y
 CONFIG_ESP=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index c7003e4284..37040fd17a 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for ppc-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 ONFIG_ISA=y
 
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 57d99fa93c..9fc09f9d6d 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for sh4-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 2e5909c381..c53051d0d5 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for sh4eb-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index db393d9eb3..5507346006 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for sparc64-softmmu
 
-include usb.mak
 CONFIG_PCI=y
 CONFIG_M48T59=y
 CONFIG_PTIMER=y
diff --git a/default-configs/usb.mak b/default-configs/usb.mak
deleted file mode 100644
index e42cfeabbe..0000000000
--- a/default-configs/usb.mak
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG_USB=y
-CONFIG_USB_TABLET_WACOM=y
-CONFIG_USB_STORAGE_BOT=y
-CONFIG_USB_STORAGE_UAS=y
-CONFIG_USB_STORAGE_MTP=y
-CONFIG_SCSI=y
-CONFIG_USB_SMARTCARD=y
-CONFIG_USB_AUDIO=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_NETWORK=y
-CONFIG_USB_BLUETOOTH=y
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index f23c542d27..0b8f41040e 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -5,59 +5,85 @@ config USB_UHCI
     bool
     default y
     depends on PCI
+    select USB
 
 config USB_OHCI
     bool
     default y
     depends on PCI
+    select USB
 
 config USB_EHCI
     bool
     default y
     depends on PCI
+    select USB
 
 config USB_EHCI_SYSBUS
     bool
+    select USB
 
 config USB_XHCI
     bool
     default y
     depends on PCI
+    select USB
 
 config USB_XHCI_NEC
     bool
     default y
     depends on PCI
+    select USB
 
 config USB_MUSB
     bool
+    select USB
 
 config TUSB6010
     bool
+    select USB_MUSB
 
 config USB_TABLET_WACOM
     bool
+    default y
+    depends on USB
 
 config USB_STORAGE_BOT
     bool
+    default y
+    depends on USB
 
 config USB_STORAGE_UAS
     bool
+    default y
+    depends on USB
 
 config USB_AUDIO
     bool
+    default y
+    depends on USB
 
 config USB_SERIAL
     bool
+    default y
+    depends on USB
 
 config USB_NETWORK
     bool
+    default y
+    depends on USB
 
 config USB_BLUETOOTH
     bool
+    default y
+    depends on USB
 
 config USB_SMARTCARD
     bool
+    default y
+    depends on USB
 
 config USB_STORAGE_MTP
     bool
+    default y
+    depends on USB
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (24 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 25/37] build: convert usb.mak " Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-16 11:50   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: " Yang Zhong
                   ` (12 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

This lets you disable SCSI altogether with "CONFIG_SCSI=n".

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 hw/scsi/Kconfig       | 12 ++++++++++++
 hw/scsi/Makefile.objs |  2 +-
 hw/usb/Kconfig        |  2 ++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index 812a12522b..7a9d373382 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -5,24 +5,29 @@ config LSI_SCSI_PCI
     bool
     default y
     depends on PCI
+    select SCSI
 
 config MPTSAS_SCSI_PCI
     bool
     default y
     depends on PCI
+    select SCSI
 
 config MEGASAS_SCSI_PCI
     bool
     default y
     depends on PCI
+    select SCSI
 
 config VMW_PVSCSI_SCSI_PCI
     bool
     default y
     depends on PCI
+    select SCSI
 
 config ESP
     bool
+    select SCSI
 
 config ESP_PCI
     bool
@@ -30,8 +35,15 @@ config ESP_PCI
     depends on PCI
     select ESP
 
+config SPAPR_VSCSI
+    bool
+    depends on PSERIES
+    select SCSI
+
 config VIRTIO_SCSI
     bool
+    default y
+    select SCSI
 
 config VHOST_USER_SCSI
     bool
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index 45167baeaf..54b36ed8b1 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -6,7 +6,7 @@ common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
 common-obj-$(CONFIG_VMW_PVSCSI_SCSI_PCI) += vmw_pvscsi.o
 common-obj-$(CONFIG_ESP) += esp.o
 common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
-obj-$(CONFIG_PSERIES) += spapr_vscsi.o
+obj-$(CONFIG_SPAPR_VSCSI) += spapr_vscsi.o
 
 ifeq ($(CONFIG_VIRTIO_SCSI),y)
 obj-y += virtio-scsi.o virtio-scsi-dataplane.o
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index 0b8f41040e..db46c56cc8 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -52,11 +52,13 @@ config USB_STORAGE_BOT
     bool
     default y
     depends on USB
+    select SCSI
 
 config USB_STORAGE_UAS
     bool
     default y
     depends on USB
+    select SCSI
 
 config USB_AUDIO
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (25 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-17 10:19   ` Thomas Huth
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig Yang Zhong
                   ` (11 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 hw/Makefile.objs | 2 +-
 hw/usb/Kconfig   | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 39d882af6f..b95b0c74a1 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -3,7 +3,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += acpi/
 devices-dirs-$(CONFIG_SOFTMMU) += adc/
 devices-dirs-$(CONFIG_SOFTMMU) += audio/
 devices-dirs-$(CONFIG_SOFTMMU) += block/
-devices-dirs-$(CONFIG_SOFTMMU) += bt/
+devices-dirs-$(CONFIG_BLUETOOTH) += bt/
 devices-dirs-$(CONFIG_SOFTMMU) += char/
 devices-dirs-$(CONFIG_SOFTMMU) += cpu/
 devices-dirs-$(CONFIG_SOFTMMU) += display/
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index db46c56cc8..8feab2ac0c 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -79,6 +79,7 @@ config USB_BLUETOOTH
     bool
     default y
     depends on USB
+    select BLUETOOTH
 
 config USB_SMARTCARD
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (26 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: " Yang Zhong
@ 2019-01-15 14:10 ` Yang Zhong
  2019-01-17 10:25   ` Thomas Huth
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 29/37] i386: express dependencies with Kconfig Yang Zhong
                   ` (10 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/i386-softmmu.mak | 10 ----------
 hw/audio/Kconfig                 |  2 ++
 hw/block/Kconfig                 |  2 ++
 hw/char/Kconfig                  |  6 ++++++
 hw/display/Kconfig               |  6 ++++++
 hw/i386/Kconfig                  |  1 +
 hw/ide/Kconfig                   |  1 +
 hw/input/Kconfig                 |  2 ++
 hw/isa/Kconfig                   |  5 +++++
 hw/misc/Kconfig                  |  4 ++++
 hw/net/Kconfig                   |  3 +++
 hw/watchdog/Kconfig              |  2 ++
 12 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 23dcca7a31..a66fd1ee5e 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -4,23 +4,15 @@ CONFIG_PCI=y
 CONFIG_ISA=y
 include hyperv.mak
 CONFIG_VGA_ISA=y
-CONFIG_VGA_CIRRUS=y
 CONFIG_VMWARE_VGA=y
 CONFIG_VMXNET3_PCI=y
 CONFIG_VIRTIO_VGA=y
-CONFIG_VMMOUSE=y
 CONFIG_IPMI=y
 CONFIG_IPMI_LOCAL=y
 CONFIG_IPMI_EXTERN=y
 CONFIG_ISA_IPMI_KCS=y
 CONFIG_ISA_IPMI_BT=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
-CONFIG_PARALLEL=y
 CONFIG_I8254=y
-CONFIG_PCSPK=y
-CONFIG_PCKBD=y
-CONFIG_FDC=y
 CONFIG_ACPI=y
 CONFIG_ACPI_X86=y
 CONFIG_ACPI_X86_ICH=y
@@ -30,14 +22,12 @@ CONFIG_APM=y
 CONFIG_I8257=y
 CONFIG_IDE_ISA=y
 CONFIG_IDE_PIIX=y
-CONFIG_NE2000_ISA=y
 CONFIG_HPET=y
 CONFIG_APPLESMC=y
 CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
 CONFIG_MC146818RTC=y
 CONFIG_PCI_PIIX=y
-CONFIG_WDT_IB700=y
 CONFIG_ISA_DEBUG=y
 CONFIG_ISA_TESTDEV=y
 CONFIG_VMPORT=y
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index bfb30276ec..350f2d4359 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -35,6 +35,8 @@ config HDA
 
 config PCSPK
     bool
+    default y
+    depends on ISA_BUS
 
 config WM8750
     bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 3710434436..83c2be5915 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -1,5 +1,7 @@
 config FDC
     bool
+    default y
+    depends on ISA_BUS
 
 config SSI_M25P80
     bool
diff --git a/hw/char/Kconfig b/hw/char/Kconfig
index 1ed6f0dbce..56c1177f95 100644
--- a/hw/char/Kconfig
+++ b/hw/char/Kconfig
@@ -3,6 +3,8 @@ config ESCC
 
 config PARALLEL
     bool
+    default y
+    depends on ISA_BUS
 
 config PL011
     bool
@@ -12,11 +14,15 @@ config SERIAL
 
 config SERIAL_ISA
     bool
+    default y
+    depends on ISA_BUS
+    select SERIAL
 
 config SERIAL_PCI
     bool
     default y
     depends on PCI
+    select SERIAL
 
 config VIRTIO_SERIAL
     bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 5e73277cc2..a53ca4601a 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -9,6 +9,9 @@ config ADS7846
 
 config VGA_CIRRUS
     bool
+    default y
+    depends on PCI
+    select VGA
 
 config G364FB
     bool
@@ -36,9 +39,12 @@ config VGA_PCI
 
 config VGA_ISA
     bool
+    depends on ISA_BUS
+    select VGA
 
 config VGA_ISA_MM
     bool
+    select VGA
 
 config VMWARE_VGA
     bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 427bda3717..68a9064558 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -9,6 +9,7 @@ config I440FX
 
 config ISAPC
     bool
+    select ISA_BUS
 
 config Q35
     bool
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index 3778580df2..fb15211379 100644
--- a/hw/ide/Kconfig
+++ b/hw/ide/Kconfig
@@ -12,6 +12,7 @@ config IDE_PCI
 
 config IDE_ISA
     bool
+    depends on ISA_BUS
     select IDE_QDEV
 
 config IDE_PIIX
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
index 91bae47498..01805ed17b 100644
--- a/hw/input/Kconfig
+++ b/hw/input/Kconfig
@@ -6,6 +6,8 @@ config LM832X
 
 config PCKBD
     bool
+    default y
+    depends on ISA_BUS
 
 config PL050
     bool
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index b59d074453..3f451ef006 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -9,15 +9,20 @@ config I82378
 
 config PC87312
     bool
+    select ISA_BUS
 
 config PIIX4
     bool
+    select ISA_BUS
 
 config VT82C686
     bool
+    select ISA_BUS
 
 config SMC37C669
     bool
 
 config LPC_ICH9
     bool
+    select ISA_BUS
+    select ACPI_X86_ICH
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index 1ca4b2464e..e6df7480c6 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -1,5 +1,6 @@
 config APPLESMC
     bool
+    depends on ISA_BUS
 
 config MAX111X
     bool
@@ -12,9 +13,11 @@ config TMP421
 
 config ISA_DEBUG
     bool
+    depends on ISA_BUS
 
 config SGA
     bool
+    depends on ISA_BUS
 
 config ISA_TESTDEV
     bool
@@ -93,6 +96,7 @@ config IOTKIT_SYSINFO
 
 config PVPANIC
     bool
+    depends on ISA_BUS
 
 config AUX
     bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index 5191c082e3..5a30fdcc17 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -48,6 +48,9 @@ config LAN9118
 
 config NE2000_ISA
     bool
+    default y
+    depends on ISA_BUS
+    depends on PCI # for NE2000State
 
 config OPENCORES_ETH
     bool
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
index 4e24bf8240..b5cd056b01 100644
--- a/hw/watchdog/Kconfig
+++ b/hw/watchdog/Kconfig
@@ -8,6 +8,8 @@ config WDT_IB6300ESB
 
 config WDT_IB700
     bool
+    default y
+    depends on ISA_BUS
 
 config WDT_DIAG288
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 29/37] i386: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (27 preceding siblings ...)
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 30/37] i2c: " Yang Zhong
                   ` (9 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

This way, the default-configs file only need to specify the boards
and any optional devices.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/i386-softmmu.mak | 39 ++++----------------
 hw/acpi/Kconfig                  |  3 ++
 hw/display/Kconfig               |  1 +
 hw/i2c/Makefile.objs             |  4 +-
 hw/i386/Kconfig                  | 63 +++++++++++++++++++++++++++++---
 hw/isa/Kconfig                   |  1 +
 hw/pci-host/Kconfig              |  5 +++
 hw/tpm/Kconfig                   |  5 ++-
 8 files changed, 80 insertions(+), 41 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index a66fd1ee5e..23ea6a3888 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,10 +1,6 @@
 # Default configuration for i386-softmmu
 
-CONFIG_PCI=y
-CONFIG_ISA=y
 include hyperv.mak
-CONFIG_VGA_ISA=y
-CONFIG_VMWARE_VGA=y
 CONFIG_VMXNET3_PCI=y
 CONFIG_VIRTIO_VGA=y
 CONFIG_IPMI=y
@@ -12,46 +8,25 @@ 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_SGA=y
-CONFIG_LPC_ICH9=y
-CONFIG_PCI_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_FW_CFG_DMA=y
 CONFIG_I2C=y
 CONFIG_SEV=$(CONFIG_KVM)
-CONFIG_VTD=y
-CONFIG_AMD_IOMMU=y
-CONFIG_PAM=y
+
+# Boards:
+#
+CONFIG_ISAPC=y
 CONFIG_I440FX=y
 CONFIG_Q35=y
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
index 2f4871c10a..98bb3539e1 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/display/Kconfig b/hw/display/Kconfig
index a53ca4601a..3d69435982 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -82,6 +82,7 @@ config VGA
 
 config QXL
     bool
+    default y if PC
     depends on SPICE && PCI
     select VGA
 
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index 37cacde978..48f7760379 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -1,8 +1,8 @@
 common-obj-$(CONFIG_I2C) += core.o smbus.o 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_APM) += pm_smbus.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
 common-obj-$(CONFIG_IMX_I2C) += imx_i2c.o
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 68a9064558..b359319875 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -1,21 +1,71 @@
 config KVM
     bool
 
-config I440FX
+config PC
     bool
-    select QXL if SPICE
+    select ISA_DEBUG
+    select I8259
+    select I8254
+    select PCSPK
+    select I82374
+    select I8257
+    select MC146818RTC
     select TPM_TIS if TPM
-    select XEN_I386 if XEN
+
+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 FDC
+    select IDE_PIIX
+    select PAM
+    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
-    select QXL if SPICE
-    select TPM_TIS if TPM
-    select XEN_I386 if XEN
+    select PC_PCI
+    select PC_ACPI
+    select PCI_Q35
+    select LPC_ICH9
+    select AHCI
+    select PAM
+    select AMD_IOMMU
+    select DIMM
+    select SMBIOS
+    select VMPORT
+    select VMMOUSE
+    select FW_CFG_DMA
+    select VTD
 
 config VTD
     bool
@@ -28,3 +78,4 @@ config VMPORT
 
 config VMMOUSE
     bool
+    depends on VMPORT
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index 3f451ef006..bf72e4fef2 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -25,4 +25,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 20c3de37a3..84670ee37c 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -21,10 +21,15 @@ config PCI_SABRE
 
 config PCI_PIIX
     bool
+    select PCI
 
 config PCI_Q35
     bool
     select PCIE
+    select PCI
+    select XIO3130
+    select IOH3420
+    select I82801B11
 
 config PCI_GENERIC
     bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index da4bb5b6c7..28acdb745e 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -3,10 +3,13 @@ config TPM
 
 config TPM_TIS
     bool
-    depends on TPM
+    default y
+    depends on TPM && PC
 
 config TPM_CRB
     bool
+    default y
+    depends on TPM && PC
 
 config TPM_PASSTHROUGH
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 30/37] i2c: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (28 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 29/37] i386: express dependencies with Kconfig Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-17 10:30   ` Thomas Huth
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 31/37] ptimer: " Yang Zhong
                   ` (8 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/i386-softmmu.mak | 1 -
 hw/Makefile.objs                 | 2 +-
 hw/audio/Kconfig                 | 1 +
 hw/display/Kconfig               | 3 +++
 hw/gpio/Kconfig                  | 1 +
 hw/i2c/Kconfig                   | 6 ++++++
 hw/i2c/Makefile.objs             | 3 ++-
 hw/i386/Kconfig                  | 1 +
 hw/input/Kconfig                 | 1 +
 hw/isa/Kconfig                   | 1 +
 hw/misc/Kconfig                  | 4 ++++
 hw/timer/Kconfig                 | 3 +++
 12 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 23ea6a3888..38622f7132 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -22,7 +22,6 @@ CONFIG_NVDIMM=y
 CONFIG_ACPI_NVDIMM=y
 CONFIG_PXB=y
 CONFIG_ACPI_VMGENID=y
-CONFIG_I2C=y
 CONFIG_SEV=$(CONFIG_KVM)
 
 # Boards:
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index b95b0c74a1..920086b182 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -10,7 +10,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += display/
 devices-dirs-$(CONFIG_SOFTMMU) += dma/
 devices-dirs-$(CONFIG_SOFTMMU) += gpio/
 devices-dirs-$(CONFIG_HYPERV) += hyperv/
-devices-dirs-$(CONFIG_SOFTMMU) += i2c/
+devices-dirs-$(CONFIG_I2C) += i2c/
 devices-dirs-$(CONFIG_SOFTMMU) += ide/
 devices-dirs-$(CONFIG_SOFTMMU) += input/
 devices-dirs-$(CONFIG_SOFTMMU) += intc/
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index 350f2d4359..5cb7118e44 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -40,6 +40,7 @@ config PCSPK
 
 config WM8750
     bool
+    depends on I2C
 
 config PL041
     bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 3d69435982..7a9d121772 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -24,9 +24,11 @@ config PL110
 
 config SII9022
     bool
+    depends on I2C
 
 config SSD0303
     bool
+    depends on I2C
 
 config SSD0323
     bool
@@ -70,6 +72,7 @@ config MILKYMIST_TMU2
 
 config SM501
     bool
+    depends on I2C
 
 config TCX
     bool
diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig
index d0a4abf93f..9227cb5598 100644
--- a/hw/gpio/Kconfig
+++ b/hw/gpio/Kconfig
@@ -1,5 +1,6 @@
 config MAX7310
     bool
+    depends on I2C
 
 config PL061
     bool
diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig
index d6d4402608..74c9328729 100644
--- a/hw/i2c/Kconfig
+++ b/hw/i2c/Kconfig
@@ -3,18 +3,24 @@ config I2C
 
 config SMBUS_EEPROM
     bool
+    depends on I2C
 
 config DDC
     bool
+    depends on I2C
 
 config VERSATILE_I2C
     bool
+    select I2C
 
 config ACPI_SMBUS
     bool
+    select I2C
 
 config BITBANG_I2C
     bool
+    select I2C
 
 config IMX_I2C
     bool
+    select I2C
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index 48f7760379..ff22aa6541 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -1,4 +1,5 @@
-common-obj-$(CONFIG_I2C) += core.o smbus.o smbus_eeprom.o
+common-obj-$(CONFIG_I2C) += core.o smbus.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_ICH) += smbus_ich9.o
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index b359319875..9f5788e8e2 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -24,6 +24,7 @@ config PC_ACPI
     select ACPI_X86
     select ACPI_CPU_HOTPLUG
     select ACPI_MEMORY_HOTPLUG
+    select SMBUS_EEPROM
     depends on ACPI_SMBUS
 
 config I440FX
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
index 01805ed17b..5d64e07fc6 100644
--- a/hw/input/Kconfig
+++ b/hw/input/Kconfig
@@ -3,6 +3,7 @@ config ADB
 
 config LM832X
     bool
+    depends on I2C
 
 config PCKBD
     bool
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index bf72e4fef2..82eaf183b1 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -18,6 +18,7 @@ config PIIX4
 config VT82C686
     bool
     select ISA_BUS
+    select ACPI_SMBUS
 
 config SMC37C669
     bool
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index e6df7480c6..73ceefab75 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -7,9 +7,11 @@ config MAX111X
 
 config TMP105
     bool
+    depends on I2C
 
 config TMP421
     bool
+    depends on I2C
 
 config ISA_DEBUG
     bool
@@ -34,6 +36,7 @@ config EDU
 
 config PCA9552
     bool
+    depends on I2C
 
 config PL310
     bool
@@ -100,3 +103,4 @@ config PVPANIC
 
 config AUX
     bool
+    select I2C
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index 7dbc1211ab..e1a6e7469b 100644
--- a/hw/timer/Kconfig
+++ b/hw/timer/Kconfig
@@ -9,6 +9,7 @@ config A9_GTIMER
 
 config DS1338
     bool
+    depends on I2C
 
 config HPET
     bool
@@ -18,6 +19,7 @@ config I8254
 
 config M41T80
     bool
+    depends on I2C
 
 config M48T59
     bool
@@ -27,6 +29,7 @@ config PL031
 
 config TWL92230
     bool
+    depends on I2C
 
 config XLNX_ZYNQMP
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 31/37] ptimer: express dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (29 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 30/37] i2c: " Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-17 10:32   ` Thomas Huth
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 32/37] edid: express dependencies with kconfig Yang Zhong
                   ` (7 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 hw/Kconfig       | 2 ++
 hw/net/Kconfig   | 2 ++
 hw/timer/Kconfig | 6 ++++++
 3 files changed, 10 insertions(+)

diff --git a/hw/Kconfig b/hw/Kconfig
index 55743a958a..f9d88986a0 100644
--- a/hw/Kconfig
+++ b/hw/Kconfig
@@ -55,6 +55,8 @@ source riscv/Kconfig
 # Symbols used by multiple targets
 config XILINX
     bool
+    select PTIMER # for hw/timer/xilinx_timer.c
 
 config XILINX_AXI
     bool
+    select PTIMER # for hw/dma/xilinx_axidma.c
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index 5a30fdcc17..a9aa60f9a7 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -45,6 +45,7 @@ config SMC91C111
 
 config LAN9118
     bool
+    select PTIMER
 
 config NE2000_ISA
     bool
@@ -96,6 +97,7 @@ config VIRTIO_NET
 
 config ETSEC
     bool
+    select PTIMER
 
 config ROCKER
     bool
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index e1a6e7469b..a021c742de 100644
--- a/hw/timer/Kconfig
+++ b/hw/timer/Kconfig
@@ -1,8 +1,10 @@
 config ARM_TIMER
     bool
+    select PTIMER
 
 config ARM_MPTIMER
     bool
+    select PTIMER
 
 config A9_GTIMER
     bool
@@ -36,12 +38,14 @@ config XLNX_ZYNQMP
 
 config ALTERA_TIMER
     bool
+    select PTIMER
 
 config MC146818RTC
     bool
 
 config ALLWINNER_A10_PIT
     bool
+    select PTIMER
 
 config STM32F2XX_TIMER
     bool
@@ -51,6 +55,8 @@ config SUN4V_RTC
 
 config CMSDK_APB_TIMER
     bool
+    select PTIMER
 
 config CMSDK_APB_DUALTIMER
     bool
+    select PTIMER
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 32/37] edid: express dependencies with kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (30 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 31/37] ptimer: " Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 33/37] hyperv: " Yang Zhong
                   ` (6 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 hw/display/Kconfig | 2 ++
 hw/i2c/Kconfig     | 1 +
 2 files changed, 3 insertions(+)

diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 7a9d121772..933793cc13 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -38,6 +38,7 @@ config VGA_PCI
     default y
     depends on PCI
     select VGA
+    select EDID
 
 config VGA_ISA
     bool
@@ -59,6 +60,7 @@ config BOCHS_DISPLAY
     default y
     depends on PCI
     select VGA
+    select EDID
 
 config BLIZZARD
     bool
diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig
index 74c9328729..ef1caa6d89 100644
--- a/hw/i2c/Kconfig
+++ b/hw/i2c/Kconfig
@@ -8,6 +8,7 @@ config SMBUS_EEPROM
 config DDC
     bool
     depends on I2C
+    select EDID
 
 config VERSATILE_I2C
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 33/37] hyperv: express dependencies with kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (31 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 32/37] edid: express dependencies with kconfig Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig Yang Zhong
                   ` (5 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

remove default-configs/hyperv.mak and make dependencies
with Kconfig.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/hyperv.mak       | 2 --
 default-configs/i386-softmmu.mak | 1 -
 hw/hyperv/Kconfig                | 4 ++++
 3 files changed, 4 insertions(+), 3 deletions(-)
 delete mode 100644 default-configs/hyperv.mak

diff --git a/default-configs/hyperv.mak b/default-configs/hyperv.mak
deleted file mode 100644
index 5d0d9fd830..0000000000
--- a/default-configs/hyperv.mak
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_HYPERV=$(CONFIG_KVM)
-CONFIG_HYPERV_TESTDEV=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 38622f7132..ab57978b9a 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,6 +1,5 @@
 # Default configuration for i386-softmmu
 
-include hyperv.mak
 CONFIG_VMXNET3_PCI=y
 CONFIG_VIRTIO_VGA=y
 CONFIG_IPMI=y
diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig
index be724b7f8b..a178bac3da 100644
--- a/hw/hyperv/Kconfig
+++ b/hw/hyperv/Kconfig
@@ -1,5 +1,9 @@
 config HYPERV
     bool
+    default y if PC
+    depends on KVM
 
 config HYPERV_TESTDEV
     bool
+    default y if PC
+    depends on HYPERV
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (32 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 33/37] hyperv: " Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-17 10:37   ` Thomas Huth
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions Yang Zhong
                   ` (4 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/i386-softmmu.mak  |  1 -
 default-configs/s390x-softmmu.mak |  1 -
 default-configs/virtio.mak        | 14 --------------
 hw/9pfs/Kconfig                   |  2 ++
 hw/block/Kconfig                  |  2 ++
 hw/char/Kconfig                   |  2 ++
 hw/display/Kconfig                |  5 +++++
 hw/input/Kconfig                  |  2 ++
 hw/net/Kconfig                    |  2 ++
 hw/pci-host/Kconfig               |  2 ++
 hw/scsi/Kconfig                   |  1 +
 hw/virtio/Kconfig                 |  9 ++++++++-
 12 files changed, 26 insertions(+), 17 deletions(-)
 delete mode 100644 default-configs/virtio.mak

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index ab57978b9a..992aea8f30 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,7 +1,6 @@
 # Default configuration for i386-softmmu
 
 CONFIG_VMXNET3_PCI=y
-CONFIG_VIRTIO_VGA=y
 CONFIG_IPMI=y
 CONFIG_IPMI_LOCAL=y
 CONFIG_IPMI_EXTERN=y
diff --git a/default-configs/s390x-softmmu.mak b/default-configs/s390x-softmmu.mak
index 5eef375924..6640af2ec2 100644
--- a/default-configs/s390x-softmmu.mak
+++ b/default-configs/s390x-softmmu.mak
@@ -1,6 +1,5 @@
 CONFIG_PCI=y
 CONFIG_VIRTIO_PCI=$(CONFIG_PCI)
-include virtio.mak
 CONFIG_SCLPCONSOLE=y
 CONFIG_TERMINAL3270=y
 CONFIG_S390_FLIC=y
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
deleted file mode 100644
index 1304849018..0000000000
--- a/default-configs/virtio.mak
+++ /dev/null
@@ -1,14 +0,0 @@
-CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
-CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_9P=y
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_BLK=y
-CONFIG_VIRTIO_CRYPTO=y
-CONFIG_VIRTIO_GPU=y
-CONFIG_VIRTIO_INPUT=y
-CONFIG_VIRTIO_NET=y
-CONFIG_VIRTIO_RNG=y
-CONFIG_SCSI=y
-CONFIG_VIRTIO_SCSI=y
-CONFIG_VIRTIO_SERIAL=y
diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
index a4750999d9..d85869ca81 100644
--- a/hw/9pfs/Kconfig
+++ b/hw/9pfs/Kconfig
@@ -1,2 +1,4 @@
 config VIRTIO_9P
     bool
+    default y
+    depends on VIRTIO
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 83c2be5915..771967ad9f 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -28,6 +28,8 @@ config NVME_PCI
 
 config VIRTIO_BLK
     bool
+    default y
+    depends on VIRTIO
 
 config VHOST_USER_BLK
     bool
diff --git a/hw/char/Kconfig b/hw/char/Kconfig
index 56c1177f95..9836739679 100644
--- a/hw/char/Kconfig
+++ b/hw/char/Kconfig
@@ -26,6 +26,8 @@ config SERIAL_PCI
 
 config VIRTIO_SERIAL
     bool
+    default y
+    depends on VIRTIO
 
 config STM32F2XX_USART
     bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 933793cc13..a80c0eace6 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -93,9 +93,14 @@ config QXL
 
 config VIRTIO_GPU
     bool
+    default y
+    depends on VIRTIO
 
 config VIRTIO_VGA
     bool
+    default y
+    depends on VIRTIO && PCI
+    select VGA
 
 config DPCD
     bool
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
index 5d64e07fc6..7434a14cb0 100644
--- a/hw/input/Kconfig
+++ b/hw/input/Kconfig
@@ -21,6 +21,8 @@ config TSC2005
 
 config VIRTIO_INPUT
     bool
+    default y
+    depends on VIRTIO
 
 config TSC210X
     bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index a9aa60f9a7..55b97edbd6 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -94,6 +94,8 @@ config XILINX_ETHLITE
 
 config VIRTIO_NET
    bool
+   default y
+   depends on VIRTIO
 
 config ETSEC
     bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index 84670ee37c..ee0111d061 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -22,6 +22,7 @@ config PCI_SABRE
 config PCI_PIIX
     bool
     select PCI
+    select VIRTIO
 
 config PCI_Q35
     bool
@@ -30,6 +31,7 @@ config PCI_Q35
     select XIO3130
     select IOH3420
     select I82801B11
+    select VIRTIO
 
 config PCI_GENERIC
     bool
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index 7a9d373382..22281213ba 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -43,6 +43,7 @@ config SPAPR_VSCSI
 config VIRTIO_SCSI
     bool
     default y
+    depends on VIRTIO
     select SCSI
 
 config VHOST_USER_SCSI
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index aabd6d4d96..a684de9af4 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -3,18 +3,25 @@ config VIRTIO
 
 config VIRTIO_RNG
     bool
+    default y
+    depends on VIRTIO
 
 config VIRTIO_PCI
     bool
     default y
     depends on PCI
-    select VIRTIO
+    depends on VIRTIO
 
 config VIRTIO_MMIO
     bool
+    depends on VIRTIO
 
 config VIRTIO_BALLOON
     bool
+    default y
+    depends on VIRTIO
 
 config VIRTIO_CRYPTO
     bool
+    default y
+    depends on VIRTIO
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (33 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-17 11:03   ` Thomas Huth
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 36/37] minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig Yang Zhong
                   ` (3 subsequent siblings)
  38 siblings, 1 reply; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

%-softmmu.mak only keep boards definitions in Kconfig mode.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 default-configs/i386-softmmu.mak | 22 ----------------------
 hw/acpi/Kconfig                  |  4 ++++
 hw/i386/Kconfig                  |  5 +++++
 hw/ipmi/Kconfig                  |  6 ++++++
 hw/mem/Kconfig                   |  2 ++
 hw/misc/Kconfig                  |  4 ++++
 hw/pci-bridge/Kconfig            |  1 +
 hw/timer/Kconfig                 |  1 +
 8 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 992aea8f30..7b083412af 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,27 +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_SGA=y
-CONFIG_PVPANIC=y
-CONFIG_MEM_DEVICE=y
-CONFIG_NVDIMM=y
-CONFIG_ACPI_NVDIMM=y
-CONFIG_PXB=y
-CONFIG_ACPI_VMGENID=y
-CONFIG_SEV=$(CONFIG_KVM)
-
 # Boards:
 #
 CONFIG_ISAPC=y
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
index 98bb3539e1..09af3ce3be 100644
--- a/hw/acpi/Kconfig
+++ b/hw/acpi/Kconfig
@@ -18,9 +18,13 @@ config ACPI_MEMORY_HOTPLUG
 
 config ACPI_NVDIMM
     bool
+    default y
+    depends on I440FX && Q35
 
 config ACPI_VMGENID
     bool
+    default y
+    depends on I440FX && Q35
 
 config IPMI
     bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 9f5788e8e2..1bda20f315 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -1,6 +1,10 @@
 config KVM
     bool
 
+config SEV
+    bool
+    default y if PC && KVM
+
 config PC
     bool
     select ISA_DEBUG
@@ -25,6 +29,7 @@ config PC_ACPI
     select ACPI_CPU_HOTPLUG
     select ACPI_MEMORY_HOTPLUG
     select SMBUS_EEPROM
+    select PFLASH_CFI01
     depends on ACPI_SMBUS
 
 config I440FX
diff --git a/hw/ipmi/Kconfig b/hw/ipmi/Kconfig
index 68f8ba1a54..7730ff5193 100644
--- a/hw/ipmi/Kconfig
+++ b/hw/ipmi/Kconfig
@@ -3,12 +3,18 @@ config IPMI
 
 config IPMI_LOCAL
     bool
+    depends on IPMI
 
 config IPMI_EXTERN
     bool
+    depends on IPMI
 
 config ISA_IPMI_KCS
     bool
+    default y if PC
+    select IPMI
 
 config ISA_IPMI_BT
     bool
+    default y if PC
+    select IPMI
diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig
index a3a4372fa7..099fb84df4 100644
--- a/hw/mem/Kconfig
+++ b/hw/mem/Kconfig
@@ -6,3 +6,5 @@ config MEM_DEVICE
 
 config NVDIMM
     bool
+    default y
+    depends on I440FX && Q35
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index 73ceefab75..6fb1c0ca22 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -1,5 +1,6 @@
 config APPLESMC
     bool
+    default y if PC
     depends on ISA_BUS
 
 config MAX111X
@@ -19,10 +20,12 @@ config ISA_DEBUG
 
 config SGA
     bool
+    default y if PC
     depends on ISA_BUS
 
 config ISA_TESTDEV
     bool
+    default y if PC
 
 config PCI_TESTDEV
     bool
@@ -99,6 +102,7 @@ config IOTKIT_SYSINFO
 
 config PVPANIC
     bool
+    default y if PC
     depends on ISA_BUS
 
 config AUX
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index d54d878023..7865e182dc 100644
--- a/hw/pci-bridge/Kconfig
+++ b/hw/pci-bridge/Kconfig
@@ -5,6 +5,7 @@ config PCIE_PORT
 
 config PXB
     bool
+    default y if PC
 
 config XIO3130
     bool
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index a021c742de..51921eb63f 100644
--- a/hw/timer/Kconfig
+++ b/hw/timer/Kconfig
@@ -15,6 +15,7 @@ config DS1338
 
 config HPET
     bool
+    default y if PC
 
 config I8254
     bool
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 36/37] minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (34 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 37/37] Makefile: only support defconfig Yang Zhong
                   ` (2 subsequent siblings)
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

From: Paolo Bonzini <pbonzini@redhat.com>

Apart from defconfig (which is a no-op), the others are implemented
implemented simply by ignoring the RHS of assignments and "default"
statements.  The RHS is replaced respectively by "true", "false" or
a random value.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile             |  5 +++++
 scripts/minikconf.py | 43 ++++++++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index 01e7c60a0d..b2d45aa6d4 100644
--- a/Makefile
+++ b/Makefile
@@ -336,6 +336,11 @@ MINIKCONF_ARGS = \
 
 MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh
 
+.PHONY: allyesconfig allnoconfig defconfig randconfig
+allyesconfig allnoconfig defconfig randconfig:
+	rm */config-devices.mak config-all-devices.mak
+	$(MAKE) MINIKCONF="$(MINIKCONF) --$<" config-all-devices.mak
+
 %/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig
 	$(call quiet-command, \
             $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, "  GEN   $@.tmp")
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index b0b4f76733..a6c2f0c759 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -13,8 +13,10 @@
 import os
 import sys
 import re
+import random
 
-__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
+__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser',
+        'defconfig', 'allyesconfig', 'allnoconfig', 'randconfig' ]
 
 def debug_print(*args):
     #print ' '.join(str(x) for x in args)
@@ -30,6 +32,11 @@ def debug_print(*args):
 # just its name).
 # -------------------------------------------
 
+allyesconfig = lambda x: True
+allnoconfig = lambda x: False
+defconfig = lambda x: x
+randconfig = lambda x: random.randint(0, 1) == 1
+
 class KconfigData:
     class Expr:
         def __and__(self, rhs):
@@ -178,7 +185,8 @@ class KconfigData:
             if self.cond.evaluate():
                 self.dest.set_value(True)
 
-    def __init__(self):
+    def __init__(self, value_mangler=defconfig):
+        self.value_mangler = value_mangler
         self.previously_included = []
         self.incl_info = None
         self.defined_vars = set()
@@ -256,10 +264,12 @@ class KconfigData:
         return var_obj
 
     def do_assignment(self, var, val):
-        self.clauses.append(KconfigData.AssignmentClause(var, val))
+        f = self.value_mangler
+        self.clauses.append(KconfigData.AssignmentClause(var, f(val)))
 
     def do_default(self, var, val, cond=None):
-        self.clauses.append(KconfigData.DefaultClause(var, val, cond))
+        f = self.value_mangler
+        self.clauses.append(KconfigData.DefaultClause(var, f(val), cond))
 
     def do_depends_on(self, var, expr):
         self.clauses.append(KconfigData.DependsOnClause(var, expr))
@@ -307,9 +317,10 @@ class KconfigParserError(Exception):
         return "%s: %s" % (self.loc, self.msg)
 
 class KconfigParser:
+
     @classmethod
-    def parse(self, fp):
-        data = KconfigData()
+    def parse(self, fp, mode=None):
+        data = KconfigData(mode or KconfigParser.defconfig)
         parser = KconfigParser(data)
         parser.parse_file(fp)
         return data
@@ -625,11 +636,29 @@ class KconfigParser:
 
 if __name__ == '__main__':
     argv = sys.argv
+    mode = defconfig
+    if len(sys.argv) > 1:
+        if argv[1] == '--defconfig':
+            del argv[1]
+        elif argv[1] == '--randconfig':
+            mode = randconfig
+            del argv[1]
+        elif argv[1] == '--allyesconfig':
+            mode = allyesconfig
+            del argv[1]
+        elif argv[1] == '--allnoconfig':
+            mode = allnoconfig
+            del argv[1]
+
     if len(argv) == 1:
         print >>sys.stderr, "%s: at least one argument is required" % argv[0]
         os.exit(1)
 
-    data = KconfigData()
+    if argv[1].startswith('-'):
+        print >>sys.stderr, "%s: invalid option %s" % (argv[0], argv[1])
+        os.exit(1)
+
+    data = KconfigData(mode)
     parser = KconfigParser(data)
     for arg in argv[3:]:
         m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg)
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* [Qemu-devel] [RFC PATCH v2 37/37] Makefile: only support defconfig
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (35 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 36/37] minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig Yang Zhong
@ 2019-01-15 14:11 ` Yang Zhong
  2019-01-15 23:20 ` [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Paolo Bonzini
  2019-01-16 12:52 ` Thomas Huth
  38 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-15 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, thuth, peter.maydell, sameo, ehabkost, yang.zhong

add CONFIG_VHOST_USER and CONFIG_LINUX in Kconfig.host, the
current Makefile only support defconfig because of randconfig
does not work.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 Kconfig.host     |  6 ++++++
 Makefile         | 16 ++++++++--------
 hw/block/Kconfig |  2 ++
 hw/scsi/Kconfig  |  2 ++
 hw/tpm/Kconfig   |  2 ++
 5 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/Kconfig.host b/Kconfig.host
index d7f503d0ca..3772627a3a 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -16,3 +16,9 @@ config TPM
 
 config XEN
     bool
+
+config VHOST_USER
+    bool
+
+config LINUX
+    bool
diff --git a/Makefile b/Makefile
index b2d45aa6d4..d8fe6df696 100644
--- a/Makefile
+++ b/Makefile
@@ -312,6 +312,9 @@ endif
 SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR)
 SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS))
 SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %-config-devices.mak.d, $(TARGET_DIRS))
+SUBDIR_TARGET_MAK=$(patsubst %, %/config-target.mak, $(TARGET_DIRS))
+
+-include $(SUBDIR_TARGET_MAK)
 
 ifeq ($(SUBDIR_DEVICES_MAK),)
 config-all-devices.mak:
@@ -332,16 +335,13 @@ MINIKCONF_ARGS = \
     CONFIG_SPICE=$(CONFIG_SPICE) \
     CONFIG_TPM=$(CONFIG_TPM) \
     CONFIG_XEN=$(CONFIG_XEN) \
-    CONFIG_OPENGL=$(CONFIG_OPENGL)
-
-MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh
+    CONFIG_OPENGL=$(CONFIG_OPENGL) \
+    CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \
+    CONFIG_LINUX=$(CONFIG_LINUX)
 
-.PHONY: allyesconfig allnoconfig defconfig randconfig
-allyesconfig allnoconfig defconfig randconfig:
-	rm */config-devices.mak config-all-devices.mak
-	$(MAKE) MINIKCONF="$(MINIKCONF) --$<" config-all-devices.mak
+MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py --defconfig
 
-%/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig
+%/config-devices.mak: default-configs/%.mak Kconfig.host $(SRC_PATH)/hw/Kconfig
 	$(call quiet-command, \
             $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, "  GEN   $@.tmp")
 	$(call quiet-command, if test -f $@; then \
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 771967ad9f..b2f1de9eca 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -33,3 +33,5 @@ config VIRTIO_BLK
 
 config VHOST_USER_BLK
     bool
+    default y
+    depends on VHOST_USER && LINUX
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index 22281213ba..e5d5bcaa5c 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -48,3 +48,5 @@ config VIRTIO_SCSI
 
 config VHOST_USER_SCSI
     bool
+    default y
+    depends on VHOST_USER && LINUX
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index 28acdb745e..6d383b7209 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -13,6 +13,8 @@ config TPM_CRB
 
 config TPM_PASSTHROUGH
     bool
+    depends on TPM
 
 config TPM_EMULATOR
     bool
+    depends on TPM
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM Yang Zhong
@ 2019-01-15 18:02   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-15 18:02 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Do not link it unconditionally into all binaries.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

I think you should put your Signed-off-by below Paolo's S-o-b into this
patch, too (since you've edited it).

> ---
>  default-configs/i386-softmmu.mak | 1 +
>  hw/pci-host/Makefile.objs        | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
> index 64c998c4c8..4711155a33 100644
> --- a/default-configs/i386-softmmu.mak
> +++ b/default-configs/i386-softmmu.mak
> @@ -67,3 +67,4 @@ CONFIG_I2C=y
>  CONFIG_SEV=$(CONFIG_KVM)
>  CONFIG_VTD=y
>  CONFIG_AMD_IOMMU=y
> +CONFIG_PAM=y
> diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs
> index 6d6597c065..9d7e7cd1b8 100644
> --- a/hw/pci-host/Makefile.objs
> +++ b/hw/pci-host/Makefile.objs
> @@ -1,4 +1,4 @@
> -common-obj-y += pam.o
> +common-obj-$(CONFIG_PAM) += pam.o
>  
>  # PPC devices
>  common-obj-$(CONFIG_PREP_PCI) += prep.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Yang Zhong
@ 2019-01-15 23:10   ` Paolo Bonzini
  2019-01-16  8:41   ` Thomas Huth
  1 sibling, 0 replies; 86+ messages in thread
From: Paolo Bonzini @ 2019-01-15 23:10 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: thuth, peter.maydell, sameo, ehabkost, Ákos Kovács

On 15/01/19 15:10, Yang Zhong wrote:
>  CONFIG_PCSPK=y
>  CONFIG_IDE_ISA=y
>  CONFIG_CS4231A=y
> +
> +CONFIG_PPC405=y
> +CONFIG_PPC440=y
> +CONFIG_MAC_OLDWORLD=y
> +CONFIG_MAC_NEWWORLD=y
> +CONFIG_VIRTEX=

CONFIG_XILINX is "y", so CONFIG_VIRTEX should too.

Paolo

> diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (36 preceding siblings ...)
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 37/37] Makefile: only support defconfig Yang Zhong
@ 2019-01-15 23:20 ` Paolo Bonzini
  2019-01-16 12:52 ` Thomas Huth
  38 siblings, 0 replies; 86+ messages in thread
From: Paolo Bonzini @ 2019-01-15 23:20 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: thuth, peter.maydell, sameo, ehabkost

On 15/01/19 15:10, Yang Zhong wrote:
> This Kconfig implementation is rebased from Paolo's branch
> https://github.com/bonzini/qemu/commits/kconfig
> 
> I rebased most of patches except other ARCHs board definitions
> this time.
> https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig
> 
> The current RFC patches only support
> (*) x86_64 platform build
>     Once design is fixed, we can do other archs.
> 
> (*) defconfig
>     "randconfig" build has some issues, which are mostly related
>     with CONFIG* in Kconfig.host abd configure. In randconfig mode,
>     some CONFIG* has different setting value in config-host.mak and
>     %/config-device.mak, which make QEMU build failure.
> 
> (*) Kconfig in hw/ directory
> 
> The current configure and build command are same with previous
> commands and if we want to disable or enable some features, like
> "tcg", we still need add "--enable/--disable-tcg" in configure
> command line. If we want to disable one emulation device, we can
> disable this in related Kconfig file in hw/ directory.
> 
> The current build command:
> (*) ./configure --target-list=x86_64-softmmu
> (*) make -j8
> 
> Since the Kconfig language replace traditional CONFIG_* in
> default-config/%-softmmu.mak, the %-softmmu.mak file only
> define embeded boards or machines, like 440fx and Q35 in x86_64
> platform. The Kconfig has already defined dependency topology
> between different Kconfig files, but there are still some issues
> 
> (*) Kconfig for configure(config-host.mak)
>     Some CONFIG* in configure  need some logic to generate, those
>     are hard to input this CONFIG* in Kconfig.host or Kconfig* file.
> 
> (*) Kconfig for %config-target.mak
>     The CONFIG* in %/config-target.mak file, this is still related
>     with configure.
> 
> (*) randconfig support issue.
> 
> Before this RFC patches, we have talked Kconfig in another thread
> http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html
> 
> Please give your comments on this RFC thread, many thanks!

Generally looks good.  I'll let Thomas do another pass, in the meanwhile
I'll find some time to look at the randconfig issue.

Paolo

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board Yang Zhong
@ 2019-01-16  7:07   ` Thomas Huth
       [not found]   ` <bb109ff0-8475-73f6-c33d-52044de758ac@redhat.com>
  1 sibling, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  7:07 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost, qemu-arm

On 2019-01-15 15:10, Yang Zhong wrote:
> make virt code configurable and the new CONFIG_VIRT definitions
> added to the default-configs/arm-softmmu.mak to replace CONFIG_ACPI
> in arm board.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/arm-softmmu.mak | 2 +-
>  hw/arm/Makefile.objs            | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
> index 2420491aac..3903d1ada3 100644
> --- a/default-configs/arm-softmmu.mak
> +++ b/default-configs/arm-softmmu.mak
> @@ -147,7 +147,7 @@ CONFIG_PCIE_PORT=y
>  CONFIG_XIO3130=y
>  CONFIG_IOH3420=y
>  CONFIG_I82801B11=y
> -CONFIG_ACPI=y
> +CONFIG_VIRT=y
>  CONFIG_SMBIOS=y
>  CONFIG_ASPEED_SOC=y
>  CONFIG_GPIO_KEY=y
> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
> index 50c7b4a927..25ff98fdbc 100644
> --- a/hw/arm/Makefile.objs
> +++ b/hw/arm/Makefile.objs
> @@ -1,5 +1,5 @@
> -obj-y += boot.o virt.o sysbus-fdt.o
> -obj-$(CONFIG_ACPI) += virt-acpi-build.o
> +obj-y += boot.o sysbus-fdt.o
> +obj-$(CONFIG_VIRT) += virt.o virt-acpi-build.o
>  obj-$(CONFIG_DIGIC) += digic_boards.o
>  obj-$(CONFIG_EXYNOS4) += exynos4_boards.o
>  obj-$(CONFIG_HIGHBANK) += highbank.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards Yang Zhong
@ 2019-01-16  7:15   ` Thomas Huth
  2019-01-17 11:33     ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  7:15 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> CONFIG_AN5206, CONFIG_MCF5206 and CONFIG_MCF5208 make
> variables created for m68k boards, and added to
> default-configs/m86k-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/m68k-softmmu.mak | 3 +++
>  hw/m68k/Makefile.objs            | 5 +++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
> index 60f7cdfbf2..a179da9077 100644
> --- a/default-configs/m68k-softmmu.mak
> +++ b/default-configs/m68k-softmmu.mak
> @@ -2,3 +2,6 @@
>  
>  CONFIG_COLDFIRE=y
>  CONFIG_PTIMER=y
> +CONFIG_AN5206=y
> +CONFIG_MCF5206=y
> +CONFIG_MCF5208=y
> diff --git a/hw/m68k/Makefile.objs b/hw/m68k/Makefile.objs
> index d1f089c08a..fa287edd0b 100644
> --- a/hw/m68k/Makefile.objs
> +++ b/hw/m68k/Makefile.objs
> @@ -1,2 +1,3 @@
> -obj-y += an5206.o mcf5208.o
> -obj-y += mcf5206.o mcf_intc.o
> +obj-$(CONFIG_AN5206) += an5206.o
> +obj-$(CONFIG_MCF5206) += mcf5206.o
> +obj-$(CONFIG_MCF5208) += mcf5208.o mcf_intc.o

The naming of the files is a little bit unfortunate, but
there are only two Coldfire boards: an5206 and mcf5208evb.
mcf5206.c belongs to the an5206 board.
So may I suggest to only use two CONFIG switches like this:

obj-$(CONFIG_AN5206) += an5206.o mcf5206.o
obj-$(CONFIG_MCF5208EVB) += mcf5208.o mcf_intc.o

?

 Thanks,
  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards Yang Zhong
@ 2019-01-16  8:28   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  8:28 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: pbonzini, peter.maydell, sameo, ehabkost, Ákos Kovács,
	Edgar E. Iglesias

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> CONFIG_PETALOGIX_* and CONFIG_XLNX_*  configs added to
> default-configs/microblaze-softmmu.mak and
> default-configs/microblazeel-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/microblaze-softmmu.mak | 3 +++
>  hw/microblaze/Makefile.objs            | 6 +++---
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
> index 7fca8e4c99..14837cf74a 100644
> --- a/default-configs/microblaze-softmmu.mak
> +++ b/default-configs/microblaze-softmmu.mak
> @@ -10,3 +10,6 @@ CONFIG_XILINX_ETHLITE=y
>  CONFIG_SSI=y
>  CONFIG_SSI_M25P80=y
>  CONFIG_XLNX_ZYNQMP=y
> +CONFIG_PETALOGIX_S3ADSP1800=y
> +CONFIG_PETALOGIX_ML605=y
> +CONFIG_XLNX_ZYNQMP_PMU=y
> diff --git a/hw/microblaze/Makefile.objs b/hw/microblaze/Makefile.objs
> index ae9fd40de7..8595a62f6c 100644
> --- a/hw/microblaze/Makefile.objs
> +++ b/hw/microblaze/Makefile.objs
> @@ -1,4 +1,4 @@
> -obj-y += petalogix_s3adsp1800_mmu.o
> -obj-y += petalogix_ml605_mmu.o
> -obj-y += xlnx-zynqmp-pmu.o
> +obj-$(CONFIG_PETALOGIX_S3ADSP1800) += petalogix_s3adsp1800_mmu.o
> +obj-$(CONFIG_PETALOGIX_ML605) += petalogix_ml605_mmu.o
> +obj-$(CONFIG_XLNX_ZYNQMP_PMU) += xlnx-zynqmp-pmu.o
>  obj-y += boot.o

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards Yang Zhong
@ 2019-01-16  8:34   ` Thomas Huth
  2019-01-17 11:44     ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  8:34 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: pbonzini, peter.maydell, sameo, ehabkost, Ákos Kovács

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> Add the new configs to default-configs/mips*-sofmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/mips-softmmu-common.mak | 4 ++++
>  default-configs/mips64el-softmmu.mak    | 1 -
>  hw/mips/Makefile.objs                   | 6 ++++--
>  3 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
> index fae2347ee7..77b40ec7d1 100644
> --- a/default-configs/mips-softmmu-common.mak
> +++ b/default-configs/mips-softmmu-common.mak
> @@ -36,3 +36,7 @@ CONFIG_EMPTY_SLOT=y
>  CONFIG_MIPS_CPS=y
>  CONFIG_MIPS_ITU=y
>  CONFIG_I2C=y
> +CONFIG_R4K=y
> +CONFIG_MALTA=y
> +CONFIG_MIPSSIM=y
> +CONFIG_VT82C686=y
> diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
> index c2ae313f47..8244efb39c 100644
> --- a/default-configs/mips64el-softmmu.mak
> +++ b/default-configs/mips64el-softmmu.mak
> @@ -9,7 +9,6 @@ CONFIG_FULONG=y
>  CONFIG_JAZZ=y
>  CONFIG_G364FB=y
>  CONFIG_JAZZ_LED=y
> -CONFIG_VT82C686=y

I think that change to the CONFIG_VT82C686 is unrelated and should not
be part of this patch. Also looking at commit

 dff4021730b112ca00522d4c98c24a15feeef5a0
 mips: Remove CONFIG_VT82C686 from non-Fulong configs

it seems like it should stay in mips64el-softmmu.mak and not be moved to
mips-softmmu-common.mak.

>  CONFIG_MIPS_BOSTON=y
>  CONFIG_FITLOADER=y
>  CONFIG_PCI_XILINX=y
> diff --git a/hw/mips/Makefile.objs b/hw/mips/Makefile.objs
> index 17a311aaba..230866ae91 100644
> --- a/hw/mips/Makefile.objs
> +++ b/hw/mips/Makefile.objs
> @@ -1,7 +1,9 @@
> -obj-y += mips_r4k.o mips_malta.o mips_mipssim.o
>  obj-y += addr.o mips_int.o
> +obj-y += gt64xxx_pci.o
> +obj-$(CONFIG_R4K) += mips_r4k.o
> +obj-$(CONFIG_MALTA) += mips_malta.o
> +obj-$(CONFIG_MIPSSIM) += mips_mipssim.o
>  obj-$(CONFIG_JAZZ) += mips_jazz.o
>  obj-$(CONFIG_FULONG) += mips_fulong2e.o
> -obj-y += gt64xxx_pci.o
>  obj-$(CONFIG_MIPS_CPS) += cps.o
>  obj-$(CONFIG_MIPS_BOSTON) += boston.o
> 

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Yang Zhong
  2019-01-15 23:10   ` Paolo Bonzini
@ 2019-01-16  8:41   ` Thomas Huth
  2019-01-17 11:58     ` Yang Zhong
  1 sibling, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  8:41 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> CONFIG_PPC405, CONFIG_PPC440, CONFIG_MAC_OLDWORLD, CONFIG_MAX_NEWWORLD
> and CONFIG_VIRTEX configuration options created for
> default-configs/ppc*-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/ppc-softmmu.mak |  7 ++++++-
>  hw/ppc/Makefile.objs            | 12 ++++++------
>  2 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
> index 23d871fb3e..96088f47ca 100644
> --- a/default-configs/ppc-softmmu.mak
> +++ b/default-configs/ppc-softmmu.mak
> @@ -34,7 +34,6 @@ CONFIG_M41T80=y
>  CONFIG_VGA_CIRRUS=y
>  
>  # For Macs
> -CONFIG_MAC=y
>  CONFIG_ESCC=y
>  CONFIG_MACIO=y
>  CONFIG_MACIO_GPIO=y
> @@ -69,3 +68,9 @@ CONFIG_PC87312=y
>  CONFIG_PCSPK=y
>  CONFIG_IDE_ISA=y
>  CONFIG_CS4231A=y
> +
> +CONFIG_PPC405=y
> +CONFIG_PPC440=y
> +CONFIG_MAC_OLDWORLD=y
> +CONFIG_MAC_NEWWORLD=y
> +CONFIG_VIRTEX=

Could you please sort the new config switches into the right sections
here? e.g. CONFIG_MAC_NEW/OLDWORLD in the "# For Macs" section, and the
others into the "# For embedded PPC" section?

 Thanks,
  Thomas

> diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
> index 4e0c1c0941..2ce7973219 100644
> --- a/hw/ppc/Makefile.objs
> +++ b/hw/ppc/Makefile.objs
> @@ -13,20 +13,20 @@ obj-y += spapr_pci_vfio.o
>  endif
>  obj-$(CONFIG_PSERIES) += spapr_rtas_ddw.o
>  # PowerPC 4xx boards
> -obj-y += ppc4xx_devs.o ppc405_uc.o
> -obj-$(CONFIG_PPC4XX) += ppc4xx_pci.o ppc405_boards.o
> -obj-$(CONFIG_PPC4XX) += ppc440_bamboo.o ppc440_pcix.o ppc440_uc.o
> +obj-$(CONFIG_PPC405) += ppc405_boards.o  ppc405_uc.o
> +obj-$(CONFIG_PPC440) += ppc440_bamboo.o ppc440_pcix.o ppc440_uc.o
> +obj-$(CONFIG_PPC4XX) += ppc4xx_pci.o ppc4xx_devs.o
>  obj-$(CONFIG_SAM460EX) += sam460ex.o
>  # PReP
>  obj-$(CONFIG_PREP) += prep.o
>  obj-$(CONFIG_PREP) += prep_systemio.o
>  obj-${CONFIG_RS6000_MC} += rs6000_mc.o
>  # OldWorld PowerMac
> -obj-$(CONFIG_MAC) += mac_oldworld.o
> +obj-$(CONFIG_MAC_OLDWORLD) += mac_oldworld.o
>  # NewWorld PowerMac
> -obj-$(CONFIG_MAC) += mac_newworld.o
> +obj-$(CONFIG_MAC_NEWWORLD) += mac_newworld.o
>  # e500
>  obj-$(CONFIG_E500) += e500.o mpc8544ds.o e500plat.o
>  obj-$(CONFIG_E500) += mpc8544_guts.o ppce500_spin.o
>  # PowerPC 440 Xilinx ML507 reference board.
> -obj-$(CONFIG_XILINX) += virtex_ml507.o
> +obj-$(CONFIG_VIRTEX) += virtex_ml507.o
> 

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device Yang Zhong
@ 2019-01-16  8:48   ` Thomas Huth
  2019-01-17 12:10     ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  8:48 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost,
	Aurelien Jarno, Magnus Damm

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> Make hw/sh4 configurable and add new CONFIG_* to the default-configs/sh4*-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/sh4-softmmu.mak   | 3 +++
>  default-configs/sh4eb-softmmu.mak | 3 +++
>  hw/sh4/Makefile.objs              | 6 +++---
>  3 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
> index caeccd55be..4b65489624 100644
> --- a/default-configs/sh4-softmmu.mak
> +++ b/default-configs/sh4-softmmu.mak
> @@ -19,3 +19,6 @@ CONFIG_PCSPK=y
>  CONFIG_I82374=y
>  CONFIG_I8257=y
>  CONFIG_MC146818RTC=y
> +CONFIG_R2D=y
> +CONFIG_SHIX=y
> +CONFIG_SH7750=y
> diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
> index 53b9cd7b5a..af71aa7f42 100644
> --- a/default-configs/sh4eb-softmmu.mak
> +++ b/default-configs/sh4eb-softmmu.mak
> @@ -19,3 +19,6 @@ CONFIG_PCSPK=y
>  CONFIG_I82374=y
>  CONFIG_I8257=y
>  CONFIG_MC146818RTC=y
> +CONFIG_R2D=y
> +CONFIG_SHIX=y
> +CONFIG_SH7750=y
> diff --git a/hw/sh4/Makefile.objs b/hw/sh4/Makefile.objs
> index 2393702c57..70903d79a9 100644
> --- a/hw/sh4/Makefile.objs
> +++ b/hw/sh4/Makefile.objs
> @@ -1,4 +1,4 @@
> -obj-y += shix.o r2d.o
> -
> -obj-y += sh7750.o sh7750_regnames.o
> +obj-$(CONFIG_R2D) +=  r2d.o
> +obj-$(CONFIG_SHIX) += shix.o
> +obj-$(CONFIG_SH7750) += sh7750.o sh7750_regnames.o
>  obj-y += sh_pci.o
> 

sh7750.o and sh7750_regnames.o are "common" code of the r2d and shix
machine, and do not define a separate machine ... not sure whether we
need a separate CONFIG_SH7750 switch for this? I'd rather treat these
two file like sh_pci.o instead, and always include them unconditionally,
I think... Or do I miss something?

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created Yang Zhong
@ 2019-01-16  9:04   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:04 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost,
	Mark Cave-Ayland, Fabien Chouteau

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> CONFIG_LEON3 added to default-configs/sparc-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/sparc-softmmu.mak | 2 ++
>  hw/sparc/Makefile.objs            | 4 +++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
> index 12f97eeb20..59a4a3d693 100644
> --- a/default-configs/sparc-softmmu.mak
> +++ b/default-configs/sparc-softmmu.mak
> @@ -18,4 +18,6 @@ CONFIG_CS4231=y
>  CONFIG_GRLIB=y
>  CONFIG_STP2000=y
>  CONFIG_ECCMEMCTL=y
> +
>  CONFIG_SUN4M=y
> +CONFIG_LEON3=y
> diff --git a/hw/sparc/Makefile.objs b/hw/sparc/Makefile.objs
> index e2d0828c39..d57e33f83e 100644
> --- a/hw/sparc/Makefile.objs
> +++ b/hw/sparc/Makefile.objs
> @@ -1 +1,3 @@
> -obj-y += sun4m_iommu.o sun4m.o leon3.o
> +obj-$(CONFIG_SUN4M) += sun4m_iommu.o
> +obj-$(CONFIG_SUN4M) += sun4m.o
> +obj-$(CONFIG_LEON3) += leon3.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst Yang Zhong
@ 2019-01-16  9:10   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:10 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost,
	Michael Walle

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> CONFIG_LM32 and CONFIG_MILKYMIST added for lm32 and milkmyst build.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/lm32/Makefile.objs | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/lm32/Makefile.objs b/hw/lm32/Makefile.objs
> index ea6418ae59..c3941866c7 100644
> --- a/hw/lm32/Makefile.objs
> +++ b/hw/lm32/Makefile.objs
> @@ -1,3 +1,3 @@
>  # LM32 boards
> -obj-y += lm32_boards.o
> -obj-y += milkymist.o
> +obj-$(CONFIG_LM32) += lm32_boards.o
> +obj-$(CONFIG_MILKYMIST) += milkymist.o

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Yang Zhong
@ 2019-01-16  9:31   ` Thomas Huth
  2019-01-16 18:43   ` Max Filippov
  1 sibling, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:31 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, Ákos Kovács, pbonzini, ehabkost,
	Max Filippov

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Ákos Kovács <akoskovacs@gmx.com>
> 
> Add the new CONFIG_* values to default-config/xtensa*-softmmu.mak.
> 
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/xtensa-softmmu.mak   | 3 +++
>  default-configs/xtensaeb-softmmu.mak | 3 +++
>  hw/xtensa/Makefile.objs              | 4 ++--
>  3 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak
> index 9d8899cde7..baf90ca162 100644
> --- a/default-configs/xtensa-softmmu.mak
> +++ b/default-configs/xtensa-softmmu.mak
> @@ -3,3 +3,6 @@
>  CONFIG_SERIAL=y
>  CONFIG_OPENCORES_ETH=y
>  CONFIG_PFLASH_CFI01=y
> +
> +CONFIG_XTENSA_SIM=y
> +CONFIG_XTENSA_FPGA=y
> diff --git a/default-configs/xtensaeb-softmmu.mak b/default-configs/xtensaeb-softmmu.mak
> index 9d8899cde7..baf90ca162 100644
> --- a/default-configs/xtensaeb-softmmu.mak
> +++ b/default-configs/xtensaeb-softmmu.mak
> @@ -3,3 +3,6 @@
>  CONFIG_SERIAL=y
>  CONFIG_OPENCORES_ETH=y
>  CONFIG_PFLASH_CFI01=y
> +
> +CONFIG_XTENSA_SIM=y
> +CONFIG_XTENSA_FPGA=y
> diff --git a/hw/xtensa/Makefile.objs b/hw/xtensa/Makefile.objs
> index cb4998d2bf..62e244fa53 100644
> --- a/hw/xtensa/Makefile.objs
> +++ b/hw/xtensa/Makefile.objs
> @@ -1,4 +1,4 @@
>  obj-y += pic_cpu.o
> -obj-y += sim.o
>  obj-y += xtensa_memory.o
> -obj-y += xtfpga.o
> +obj-$(CONFIG_XTENSA_SIM) += sim.o
> +obj-$(CONFIG_XTENSA_FPGA) += xtfpga.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2 Yang Zhong
@ 2019-01-16  9:37   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:37 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, Chris Wulff, Marek Vasut

On 2019-01-15 15:10, Yang Zhong wrote:
> CONFIG_NIOS2_10M50_BOARD added for 10m50 dev board.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/nios2-softmmu.mak | 1 +
>  hw/nios2/Makefile.objs            | 3 ++-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak
> index 74dc70caae..f634c36d36 100644
> --- a/default-configs/nios2-softmmu.mak
> +++ b/default-configs/nios2-softmmu.mak
> @@ -4,3 +4,4 @@ CONFIG_NIOS2=y
>  CONFIG_SERIAL=y
>  CONFIG_PTIMER=y
>  CONFIG_ALTERA_TIMER=y
> +CONFIG_NIOS2_10M50_BOARD=y
> diff --git a/hw/nios2/Makefile.objs b/hw/nios2/Makefile.objs
> index 6b5c421760..12a2891395 100644
> --- a/hw/nios2/Makefile.objs
> +++ b/hw/nios2/Makefile.objs
> @@ -1 +1,2 @@
> -obj-y = boot.o cpu_pic.o 10m50_devboard.o
> +obj-y = boot.o cpu_pic.o
> +obj-$(CONFIG_NIOS2_10M50_BOARD) += 10m50_devboard.o
> 

I'd maybe rather only name it CONFIG_NIOS2_10M50 ... anyway:

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards Yang Zhong
@ 2019-01-16  9:46     ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:46 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, Michael Clark,
	Palmer Dabbelt, Alistair Francis, Sagar Karandikar,
	Bastian Koppelmann, qemu-riscv

On 2019-01-15 15:10, Yang Zhong wrote:
> Add the new configs to default-configs/riscv*-sofmmu.mak.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/riscv32-softmmu.mak |  6 ++++++
>  default-configs/riscv64-softmmu.mak |  6 ++++++
>  hw/riscv/Makefile.objs              | 22 +++++++++++-----------
>  3 files changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
> index dbc9398284..af841839d1 100644
> --- a/default-configs/riscv32-softmmu.mak
> +++ b/default-configs/riscv32-softmmu.mak
> @@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
>  
>  CONFIG_VGA=y
>  CONFIG_VGA_PCI=y
> +
> +CONFIG_HTIF=y
> +CONFIG_HART=y
> +CONFIG_SIFIVE=y
> +CONFIG_SPIKE=y
> +CONFIG_RISCV_VIRTIO=y
> diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
> index dbc9398284..af841839d1 100644
> --- a/default-configs/riscv64-softmmu.mak
> +++ b/default-configs/riscv64-softmmu.mak
> @@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
>  
>  CONFIG_VGA=y
>  CONFIG_VGA_PCI=y
> +
> +CONFIG_HTIF=y
> +CONFIG_HART=y
> +CONFIG_SIFIVE=y
> +CONFIG_SPIKE=y
> +CONFIG_RISCV_VIRTIO=y
> diff --git a/hw/riscv/Makefile.objs b/hw/riscv/Makefile.objs
> index 1dde01d39d..dde1b01f90 100644
> --- a/hw/riscv/Makefile.objs
> +++ b/hw/riscv/Makefile.objs
> @@ -1,11 +1,11 @@
> -obj-y += riscv_htif.o
> -obj-y += riscv_hart.o
> -obj-y += sifive_e.o
> -obj-y += sifive_clint.o
> -obj-y += sifive_prci.o
> -obj-y += sifive_plic.o
> -obj-y += sifive_test.o
> -obj-y += sifive_u.o
> -obj-y += sifive_uart.o
> -obj-y += spike.o
> -obj-y += virt.o
> +obj-$(CONFIG_HTIF) += riscv_htif.o

riscv_htif.o seems to belong to the spike machine, so I think you don't
need a separate config switch for that and could simply use CONFIG_SPIKE
here.

> +obj-$(CONFIG_HART) += riscv_hart.o
> +obj-$(CONFIG_SIFIVE) += sifive_e.o
> +obj-$(CONFIG_SIFIVE) += sifive_clint.o
> +obj-$(CONFIG_SIFIVE) += sifive_prci.o
> +obj-$(CONFIG_SIFIVE) += sifive_plic.o
> +obj-$(CONFIG_SIFIVE) += sifive_test.o
> +obj-$(CONFIG_SIFIVE) += sifive_u.o

Looking at the output of "qemu-system-riscv64 -M help", sifive_e and
sifive_u are two separate machines. So should we use two different
config switches here?

> +obj-$(CONFIG_SIFIVE) += sifive_uart.o
> +obj-$(CONFIG_SPIKE) += spike.o
> +obj-$(CONFIG_RISCV_VIRTIO) += virt.o

The machine is only called "virt", so I'd suggest to call the config
switch CONFIG_RISCV_VIRT only.

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-riscv] [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
@ 2019-01-16  9:46     ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:46 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, Michael Clark,
	Palmer Dabbelt, Alistair Francis, Sagar Karandikar,
	Bastian Koppelmann, qemu-riscv

On 2019-01-15 15:10, Yang Zhong wrote:
> Add the new configs to default-configs/riscv*-sofmmu.mak.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/riscv32-softmmu.mak |  6 ++++++
>  default-configs/riscv64-softmmu.mak |  6 ++++++
>  hw/riscv/Makefile.objs              | 22 +++++++++++-----------
>  3 files changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
> index dbc9398284..af841839d1 100644
> --- a/default-configs/riscv32-softmmu.mak
> +++ b/default-configs/riscv32-softmmu.mak
> @@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
>  
>  CONFIG_VGA=y
>  CONFIG_VGA_PCI=y
> +
> +CONFIG_HTIF=y
> +CONFIG_HART=y
> +CONFIG_SIFIVE=y
> +CONFIG_SPIKE=y
> +CONFIG_RISCV_VIRTIO=y
> diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
> index dbc9398284..af841839d1 100644
> --- a/default-configs/riscv64-softmmu.mak
> +++ b/default-configs/riscv64-softmmu.mak
> @@ -11,3 +11,9 @@ CONFIG_PCI_GENERIC=y
>  
>  CONFIG_VGA=y
>  CONFIG_VGA_PCI=y
> +
> +CONFIG_HTIF=y
> +CONFIG_HART=y
> +CONFIG_SIFIVE=y
> +CONFIG_SPIKE=y
> +CONFIG_RISCV_VIRTIO=y
> diff --git a/hw/riscv/Makefile.objs b/hw/riscv/Makefile.objs
> index 1dde01d39d..dde1b01f90 100644
> --- a/hw/riscv/Makefile.objs
> +++ b/hw/riscv/Makefile.objs
> @@ -1,11 +1,11 @@
> -obj-y += riscv_htif.o
> -obj-y += riscv_hart.o
> -obj-y += sifive_e.o
> -obj-y += sifive_clint.o
> -obj-y += sifive_prci.o
> -obj-y += sifive_plic.o
> -obj-y += sifive_test.o
> -obj-y += sifive_u.o
> -obj-y += sifive_uart.o
> -obj-y += spike.o
> -obj-y += virt.o
> +obj-$(CONFIG_HTIF) += riscv_htif.o

riscv_htif.o seems to belong to the spike machine, so I think you don't
need a separate config switch for that and could simply use CONFIG_SPIKE
here.

> +obj-$(CONFIG_HART) += riscv_hart.o
> +obj-$(CONFIG_SIFIVE) += sifive_e.o
> +obj-$(CONFIG_SIFIVE) += sifive_clint.o
> +obj-$(CONFIG_SIFIVE) += sifive_prci.o
> +obj-$(CONFIG_SIFIVE) += sifive_plic.o
> +obj-$(CONFIG_SIFIVE) += sifive_test.o
> +obj-$(CONFIG_SIFIVE) += sifive_u.o

Looking at the output of "qemu-system-riscv64 -M help", sifive_e and
sifive_u are two separate machines. So should we use two different
config switches here?

> +obj-$(CONFIG_SIFIVE) += sifive_uart.o
> +obj-$(CONFIG_SPIKE) += spike.o
> +obj-$(CONFIG_RISCV_VIRTIO) += virt.o

The machine is only called "virt", so I'd suggest to call the config
switch CONFIG_RISCV_VIRT only.

 Thomas


^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64 Yang Zhong
@ 2019-01-16  9:56   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16  9:56 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, Mark Cave-Ayland,
	Artyom Tarasenko

On 2019-01-15 15:10, Yang Zhong wrote:
> Add the new configs to default-configs/sparc64-sofmmu.mak.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/sparc64-softmmu.mak | 2 ++
>  hw/sparc64/Makefile.objs            | 6 +++---
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
> index ce63d47046..1fae4888db 100644
> --- a/default-configs/sparc64-softmmu.mak
> +++ b/default-configs/sparc64-softmmu.mak
> @@ -17,3 +17,5 @@ CONFIG_SUNHME=y
>  CONFIG_MC146818RTC=y
>  CONFIG_ISA_TESTDEV=y
>  CONFIG_SUN4V_RTC=y
> +CONFIG_SUN4U=y
> +CONFIG_NIAGARA=y
> diff --git a/hw/sparc64/Makefile.objs b/hw/sparc64/Makefile.objs
> index 117e0ff27d..af0525c1a2 100644
> --- a/hw/sparc64/Makefile.objs
> +++ b/hw/sparc64/Makefile.objs
> @@ -1,4 +1,4 @@
>  obj-y += sparc64.o
> -obj-y += sun4u_iommu.o
> -obj-y += sun4u.o
> -obj-y += niagara.o
> \ No newline at end of file
> +obj-$(CONFIG_SUN4U) += sun4u_iommu.o
> +obj-$(CONFIG_SUN4U) += sun4u.o
> +obj-$(CONFIG_NIAGARA) += niagara.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files Yang Zhong
@ 2019-01-16 10:44   ` Thomas Huth
  2019-01-16 14:06     ` Thomas Huth
  2019-01-18  6:34     ` Yang Zhong
  2019-01-17  9:17   ` Thomas Huth
  1 sibling, 2 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 10:44 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> The Kconfig files were generated mostly with this script:
> 
>   for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do
>     set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' `
>     shift
>     if test $# = 1; then
>       cat >> $(dirname $1)/Kconfig << EOF
> config ${i#CONFIG_}
>     bool
> 
> EOF
>       git add $(dirname $1)/Kconfig
>     else
>       echo $i $*
>     fi
>   done
>   sed -i '$d' hw/*/Kconfig
>   for i in hw/*; do
>     if test -d $i && ! test -f $i/Kconfig; then
>       touch $i/Kconfig
>       git add $i/Kconfig
>     fi
>   done
> 
> Whenever a symbol is referenced from multiple subdirectories, the
> script prints the list of directories that reference the symbol.
> These symbols have to be added manually to the Kconfig files.
> 
> Kconfig.host and hw/Kconfig were created manually.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  Kconfig.host          | 17 ++++++++
>  hw/9pfs/Kconfig       |  2 +
>  hw/Kconfig            | 60 ++++++++++++++++++++++++++
>  hw/acpi/Kconfig       | 23 ++++++++++
>  hw/adc/Kconfig        |  2 +
>  hw/arm/Kconfig        | 98 +++++++++++++++++++++++++++++++++++++++++++
>  hw/audio/Kconfig      | 35 ++++++++++++++++
>  hw/block/Kconfig      | 29 +++++++++++++
>  hw/bt/Kconfig         |  2 +
>  hw/char/Kconfig       | 32 ++++++++++++++
>  hw/core/Kconfig       | 11 +++++
>  hw/cpu/Kconfig        |  8 ++++
>  hw/display/Kconfig    | 77 ++++++++++++++++++++++++++++++++++
>  hw/dma/Kconfig        | 20 +++++++++
>  hw/gpio/Kconfig       |  8 ++++
>  hw/hyperv/Kconfig     |  5 +++
>  hw/i2c/Kconfig        | 20 +++++++++
>  hw/i386/Kconfig       | 23 ++++++++++
>  hw/ide/Kconfig        | 35 ++++++++++++++++
>  hw/input/Kconfig      | 23 ++++++++++
>  hw/intc/Kconfig       | 47 +++++++++++++++++++++
>  hw/ipack/Kconfig      |  2 +
>  hw/ipmi/Kconfig       | 14 +++++++
>  hw/isa/Kconfig        | 23 ++++++++++
>  hw/lm32/Kconfig       |  5 +++
>  hw/m68k/Kconfig       |  8 ++++
>  hw/mem/Kconfig        |  8 ++++
>  hw/microblaze/Kconfig |  8 ++++
>  hw/mips/Kconfig       | 20 +++++++++
>  hw/misc/Kconfig       | 92 ++++++++++++++++++++++++++++++++++++++++
>  hw/misc/macio/Kconfig | 11 +++++
>  hw/net/Kconfig        | 92 ++++++++++++++++++++++++++++++++++++++++
>  hw/nios2/Kconfig      |  2 +
>  hw/nvram/Kconfig      |  8 ++++
>  hw/pci-bridge/Kconfig | 20 +++++++++
>  hw/pci-host/Kconfig   | 35 ++++++++++++++++
>  hw/pci/Kconfig        |  2 +
>  hw/pcmcia/Kconfig     |  2 +
>  hw/ppc/Kconfig        | 38 +++++++++++++++++
>  hw/riscv/Kconfig      | 14 +++++++
>  hw/scsi/Kconfig       | 26 ++++++++++++
>  hw/sd/Kconfig         | 11 +++++
>  hw/sh4/Kconfig        |  8 ++++
>  hw/smbios/Kconfig     |  2 +
>  hw/sparc/Kconfig      |  5 +++
>  hw/sparc64/Kconfig    |  5 +++
>  hw/ssi/Kconfig        | 14 +++++++
>  hw/timer/Kconfig      | 53 +++++++++++++++++++++++
>  hw/tpm/Kconfig        | 14 +++++++
>  hw/usb/Kconfig        | 53 +++++++++++++++++++++++
>  hw/vfio/Kconfig       | 11 +++++
>  hw/virtio/Kconfig     | 17 ++++++++
>  hw/watchdog/Kconfig   | 11 +++++
>  hw/xtensa/Kconfig     |  5 +++
>  54 files changed, 1216 insertions(+)
>  create mode 100644 Kconfig.host
>  create mode 100644 hw/9pfs/Kconfig
>  create mode 100644 hw/Kconfig
>  create mode 100644 hw/acpi/Kconfig
>  create mode 100644 hw/adc/Kconfig
>  create mode 100644 hw/arm/Kconfig
>  create mode 100644 hw/audio/Kconfig
>  create mode 100644 hw/block/Kconfig
>  create mode 100644 hw/bt/Kconfig
>  create mode 100644 hw/char/Kconfig
>  create mode 100644 hw/core/Kconfig
>  create mode 100644 hw/cpu/Kconfig
>  create mode 100644 hw/display/Kconfig
>  create mode 100644 hw/dma/Kconfig
>  create mode 100644 hw/gpio/Kconfig
>  create mode 100644 hw/hyperv/Kconfig
>  create mode 100644 hw/i2c/Kconfig
>  create mode 100644 hw/i386/Kconfig
>  create mode 100644 hw/ide/Kconfig
>  create mode 100644 hw/input/Kconfig
>  create mode 100644 hw/intc/Kconfig
>  create mode 100644 hw/ipack/Kconfig
>  create mode 100644 hw/ipmi/Kconfig
>  create mode 100644 hw/isa/Kconfig
>  create mode 100644 hw/lm32/Kconfig
>  create mode 100644 hw/m68k/Kconfig
>  create mode 100644 hw/mem/Kconfig
>  create mode 100644 hw/microblaze/Kconfig
>  create mode 100644 hw/mips/Kconfig
>  create mode 100644 hw/misc/Kconfig
>  create mode 100644 hw/misc/macio/Kconfig
>  create mode 100644 hw/net/Kconfig
>  create mode 100644 hw/nios2/Kconfig
>  create mode 100644 hw/nvram/Kconfig
>  create mode 100644 hw/pci-bridge/Kconfig
>  create mode 100644 hw/pci-host/Kconfig
>  create mode 100644 hw/pci/Kconfig
>  create mode 100644 hw/pcmcia/Kconfig
>  create mode 100644 hw/ppc/Kconfig
>  create mode 100644 hw/riscv/Kconfig
>  create mode 100644 hw/scsi/Kconfig
>  create mode 100644 hw/sd/Kconfig
>  create mode 100644 hw/sh4/Kconfig
>  create mode 100644 hw/smbios/Kconfig
>  create mode 100644 hw/sparc/Kconfig
>  create mode 100644 hw/sparc64/Kconfig
>  create mode 100644 hw/ssi/Kconfig
>  create mode 100644 hw/timer/Kconfig
>  create mode 100644 hw/tpm/Kconfig
>  create mode 100644 hw/usb/Kconfig
>  create mode 100644 hw/vfio/Kconfig
>  create mode 100644 hw/virtio/Kconfig
>  create mode 100644 hw/watchdog/Kconfig
>  create mode 100644 hw/xtensa/Kconfig
> 
> diff --git a/Kconfig.host b/Kconfig.host
> new file mode 100644
> index 0000000000..2136a4c3ec
> --- /dev/null
> +++ b/Kconfig.host
> @@ -0,0 +1,17 @@
> +# These are "proxy" symbols used to pass config-host.mak values
> +# down to Kconfig.
> +
> +config KVM
> +    bool
> +
> +config OPENGL
> +    bool
> +
> +config SPICE
> +    bool
> +
> +config TPM
> +    bool
> +
> +config XEN
> +    bool
> diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
> new file mode 100644
> index 0000000000..a4750999d9
> --- /dev/null
> +++ b/hw/9pfs/Kconfig
> @@ -0,0 +1,2 @@
> +config VIRTIO_9P
> +    bool
> diff --git a/hw/Kconfig b/hw/Kconfig
> new file mode 100644
> index 0000000000..55743a958a
> --- /dev/null
> +++ b/hw/Kconfig
> @@ -0,0 +1,60 @@
> +# devices Kconfig
> +source 9pfs/Kconfig
> +source acpi/Kconfig
> +source audio/Kconfig
> +source block/Kconfig
> +source bt/Kconfig
> +source char/Kconfig
> +source core/Kconfig
> +source display/Kconfig
> +source dma/Kconfig
> +source gpio/Kconfig
> +source i2c/Kconfig
> +source ide/Kconfig
> +source input/Kconfig
> +source intc/Kconfig
> +source ipack/Kconfig
> +source isa/Kconfig
> +source mem/Kconfig
> +source misc/Kconfig
> +source net/Kconfig
> +source nvram/Kconfig
> +source pci-bridge/Kconfig
> +source pci-host/Kconfig
> +source pci/Kconfig
> +source scsi/Kconfig
> +source sd/Kconfig
> +source ssi/Kconfig
> +source timer/Kconfig
> +source tpm/Kconfig
> +source usb/Kconfig
> +source virtio/Kconfig
> +source watchdog/Kconfig
> +source smbios/Kconfig
> +source ipmi/Kconfig
> +source vfio/Kconfig
> +source adc/Kconfig
> +source pcmcia/Kconfig
> +source hyperv/Kconfig

Could you please sort the last 5 entries alphabetically into the list?

> +# arch Kconfig
> +source i386/Kconfig
> +source arm/Kconfig
> +source m68k/Kconfig
> +source microblaze/Kconfig
> +source mips/Kconfig
> +source ppc/Kconfig
> +source sh4/Kconfig
> +source sparc/Kconfig
> +source sparc64/Kconfig
> +source lm32/Kconfig
> +source xtensa/Kconfig
> +source nios2/Kconfig
> +source riscv/Kconfig

dito, please sort last 4 entries alphabetically into the list.

Apart from that, patch looks good to me.

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig Yang Zhong
@ 2019-01-16 11:05   ` Thomas Huth
  2019-01-16 16:28   ` Thomas Huth
  1 sibling, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 11:05 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> The make_device_config.sh script is replaced by minikconf, which
> is modified to support the same command line as its predecessor.
> 
> The roots of the parsing are default-configs/*.mak, Kconfig.host and
> hw/Kconfig.  One difference with make_device_config.sh is that all symbols
> have to be defined in a Kconfig file, including those coming from the
> configure script.  This is the reason for the Kconfig.host file introduced
> in the previous patch. Whenever a file in default-configs/*.mak used
> $(...) to refer to a config-host.mak symbol, this is replaced by a
> Kconfig dependency.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  Kconfig.host                     |  3 ++-
>  Makefile                         | 14 +++++++++++--
>  Makefile.target                  |  7 ++++++-
>  default-configs/i386-softmmu.mak |  3 ---
>  hw/display/Kconfig               |  2 ++
>  hw/i386/Kconfig                  |  6 ++++++
>  hw/intc/Kconfig                  |  8 ++++++++
>  hw/misc/Kconfig                  |  2 ++
>  hw/tpm/Kconfig                   |  1 +
>  rules.mak                        |  2 +-
>  scripts/make_device_config.sh    | 30 ---------------------------
>  scripts/minikconf.py             | 35 +++++++++++++++++++++++++++++---
>  12 files changed, 72 insertions(+), 41 deletions(-)
>  delete mode 100644 scripts/make_device_config.sh

Acked-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig Yang Zhong
@ 2019-01-16 11:21   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 11:21 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, John Snow

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/alpha-softmmu.mak |  2 --
>  default-configs/pci.mak           |  3 ---
>  hw/ide/Kconfig                    | 15 +++++++++++++++
>  3 files changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
> index 4d654eaa0b..62afa5ec16 100644
> --- a/default-configs/alpha-softmmu.mak
> +++ b/default-configs/alpha-softmmu.mak
> @@ -11,8 +11,6 @@ CONFIG_PARALLEL=y
>  CONFIG_FDC=y
>  CONFIG_PCKBD=y
>  CONFIG_VGA_CIRRUS=y
> -CONFIG_IDE_CORE=y
> -CONFIG_IDE_QDEV=y
>  CONFIG_VMWARE_VGA=y
>  CONFIG_IDE_CMD646=y
>  CONFIG_I8259=y
> diff --git a/default-configs/pci.mak b/default-configs/pci.mak
> index 171bdf48bc..c1b64922b9 100644
> --- a/default-configs/pci.mak
> +++ b/default-configs/pci.mak
> @@ -23,9 +23,6 @@ CONFIG_MPTSAS_SCSI_PCI=y
>  CONFIG_RTL8139_PCI=y
>  CONFIG_E1000_PCI=y
>  CONFIG_E1000E_PCI=y
> -CONFIG_IDE_CORE=y
> -CONFIG_IDE_QDEV=y
> -CONFIG_IDE_PCI=y
>  CONFIG_AHCI=y
>  CONFIG_ESP=y
>  CONFIG_ESP_PCI=y
> diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
> index 5ec449525f..fe27705790 100644
> --- a/hw/ide/Kconfig
> +++ b/hw/ide/Kconfig
> @@ -3,33 +3,48 @@ config IDE_CORE
>  
>  config IDE_QDEV
>      bool
> +    select IDE_CORE
>  
>  config IDE_PCI
>      bool
> +    select IDE_CORE
>  
>  config IDE_ISA
>      bool
> +    select IDE_QDEV
>  
>  config IDE_PIIX
>      bool
> +    select IDE_PCI
> +    select IDE_QDEV
>  
>  config IDE_CMD646
>      bool
> +    select IDE_PCI
> +    select IDE_QDEV
>  
>  config IDE_MACIO
>      bool
> +    select IDE_QDEV
>  
>  config IDE_MMIO
>      bool
> +    select IDE_QDEV
>  
>  config IDE_VIA
>      bool
> +    select IDE_PCI
> +    select IDE_QDEV
>  
>  config MICRODRIVE
>      bool
> +    select IDE_QDEV
>  
>  config AHCI
>      bool
> +    select IDE_QDEV
>  
>  config IDE_SII3112
>      bool
> +    select IDE_PCI
> +    select IDE_QDEV
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable Yang Zhong
@ 2019-01-16 11:23   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 11:23 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel
  Cc: peter.maydell, sameo, pbonzini, ehabkost, Michael S. Tsirkin,
	Marcel Apfelbaum

On 2019-01-15 15:10, Yang Zhong wrote:
> Make pcie splited from pci and make it configurable.
> 
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/pci.mak | 1 +
>  hw/pci/Kconfig          | 3 +++
>  hw/pci/Makefile.objs    | 5 +++--
>  3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/default-configs/pci.mak b/default-configs/pci.mak
> index c1b64922b9..553b1905de 100644
> --- a/default-configs/pci.mak
> +++ b/default-configs/pci.mak
> @@ -1,4 +1,5 @@
>  CONFIG_PCI=y
> +CONFIG_PCIE=y
>  # For now, CONFIG_IDE_CORE requires ISA, so we enable it here
>  CONFIG_ISA_BUS=y
>  CONFIG_VIRTIO_PCI=y
> diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
> index d3d2205577..a717a26995 100644
> --- a/hw/pci/Kconfig
> +++ b/hw/pci/Kconfig
> @@ -1,2 +1,5 @@
>  config PCI
>      bool
> +
> +config PCIE
> +    bool
> diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
> index 9f905e6344..a995795a47 100644
> --- a/hw/pci/Makefile.objs
> +++ b/hw/pci/Makefile.objs
> @@ -2,8 +2,9 @@ common-obj-$(CONFIG_PCI) += pci.o pci_bridge.o
>  common-obj-$(CONFIG_PCI) += msix.o msi.o
>  common-obj-$(CONFIG_PCI) += shpc.o
>  common-obj-$(CONFIG_PCI) += slotid_cap.o
> -common-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
> -common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
> +common-obj-$(CONFIG_PCI) += pci_host.o
> +common-obj-$(CONFIG_PCIE) += pcie.o pcie_aer.o
> +common-obj-$(CONFIG_PCIE) += pcie_port.o pcie_host.o
>  
>  common-obj-$(call lnot,$(CONFIG_PCI)) += pci-stub.o
>  common-obj-$(CONFIG_ALL) += pci-stub.o
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig Yang Zhong
@ 2019-01-16 11:41   ` Thomas Huth
  2019-01-18  7:08     ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 11:41 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Instead of including the same list of devices for each target,
> set CONFIG_PCI to true, and make the devices default to present
> whenever PCI is available.
> 
> Done mostly with the following script:
> 
>   while read i; do
>      i=${i%=y}; i=${i#CONFIG_}
>      sed -i -e'/^config '$i'$/!b' -en \
>             -e'a\' -e'    default y\' -e'    depends on PCI' \
>           `grep -lw $i hw/*/Kconfig`
>   done < default-configs/pci.mak
> 
> followed by replacing a few "depends on" clauses with "select"
> whenever the symbol is not really related to PCI.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
[...]
> diff --git a/hw/net/Kconfig b/hw/net/Kconfig
> index 6b2ec971b5..5191c082e3 100644
> --- a/hw/net/Kconfig
> +++ b/hw/net/Kconfig
> @@ -3,27 +3,42 @@ config DP8393X
>  
>  config NE2000_PCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config EEPRO100_PCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config PCNET_PCI
>      bool
> +    default y
> +    depends on PCI
> +    select PCNET_COMMON
>  
>  config PCNET_COMMON
>      bool
>  
>  config E1000_PCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config E1000E_PCI
>      bool
> +    default y
> +    depends on PCI

The e1000e is a PCI-e device, so maybe this should rather depend on
"PCIE" instead?

With that fixed:

Reviewed-by: Thomas Huth <thuth@redhat.com>


>  config RTL8139_PCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config VMXNET3_PCI
>      bool
> +    default y
> +    depends on PCI
[...]
> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
> index cbf5c5d761..f23c542d27 100644
> --- a/hw/usb/Kconfig
> +++ b/hw/usb/Kconfig
> @@ -3,21 +3,31 @@ config USB
>  
>  config USB_UHCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config USB_OHCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config USB_EHCI
>      bool
> +    default y
> +    depends on PCI

We might need a USB_EHCI_PCI switch in the future (since there is also
_SYSBUS which could be used without PCI), but I think that can be done
in a later patch.

>  config USB_EHCI_SYSBUS
>      bool
>  
>  config USB_XHCI
>      bool
> +    default y
> +    depends on PCI
>  
>  config USB_XHCI_NEC
>      bool
> +    default y
> +    depends on PCI
>  
>  config USB_MUSB
>      bool

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig Yang Zhong
@ 2019-01-16 11:50   ` Thomas Huth
  2019-01-16 13:57     ` Paolo Bonzini
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 11:50 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> This lets you disable SCSI altogether with "CONFIG_SCSI=n".

Sorry for my ignorant question, but: Can we really disable SCSI if the
Kconfig files use "select SCSI" all over the place? I'd rather expect
that "CONFIG_SCSI=n" only works if we only use "depends on SCSI" everywhere?

I'm fine if we use select SCSI in this patch, but maybe the commit
message should be tweaked in case you can not really disable SCSI like
this anymore?

 Thomas


> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  hw/scsi/Kconfig       | 12 ++++++++++++
>  hw/scsi/Makefile.objs |  2 +-
>  hw/usb/Kconfig        |  2 ++
>  3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
> index 812a12522b..7a9d373382 100644
> --- a/hw/scsi/Kconfig
> +++ b/hw/scsi/Kconfig
> @@ -5,24 +5,29 @@ config LSI_SCSI_PCI
>      bool
>      default y
>      depends on PCI
> +    select SCSI
>  
>  config MPTSAS_SCSI_PCI
>      bool
>      default y
>      depends on PCI
> +    select SCSI
>  
>  config MEGASAS_SCSI_PCI
>      bool
>      default y
>      depends on PCI
> +    select SCSI
>  
>  config VMW_PVSCSI_SCSI_PCI
>      bool
>      default y
>      depends on PCI
> +    select SCSI
>  
>  config ESP
>      bool
> +    select SCSI
>  
>  config ESP_PCI
>      bool
> @@ -30,8 +35,15 @@ config ESP_PCI
>      depends on PCI
>      select ESP
>  
> +config SPAPR_VSCSI
> +    bool
> +    depends on PSERIES
> +    select SCSI
> +
>  config VIRTIO_SCSI
>      bool
> +    default y
> +    select SCSI
>  
>  config VHOST_USER_SCSI
>      bool
> diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
> index 45167baeaf..54b36ed8b1 100644
> --- a/hw/scsi/Makefile.objs
> +++ b/hw/scsi/Makefile.objs
> @@ -6,7 +6,7 @@ common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
>  common-obj-$(CONFIG_VMW_PVSCSI_SCSI_PCI) += vmw_pvscsi.o
>  common-obj-$(CONFIG_ESP) += esp.o
>  common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
> -obj-$(CONFIG_PSERIES) += spapr_vscsi.o
> +obj-$(CONFIG_SPAPR_VSCSI) += spapr_vscsi.o
>  
>  ifeq ($(CONFIG_VIRTIO_SCSI),y)
>  obj-y += virtio-scsi.o virtio-scsi-dataplane.o
> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
> index 0b8f41040e..db46c56cc8 100644
> --- a/hw/usb/Kconfig
> +++ b/hw/usb/Kconfig
> @@ -52,11 +52,13 @@ config USB_STORAGE_BOT
>      bool
>      default y
>      depends on USB
> +    select SCSI
>  
>  config USB_STORAGE_UAS
>      bool
>      default y
>      depends on USB
> +    select SCSI
>  
>  config USB_AUDIO
>      bool
> 

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU
  2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
                   ` (37 preceding siblings ...)
  2019-01-15 23:20 ` [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Paolo Bonzini
@ 2019-01-16 12:52 ` Thomas Huth
  38 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 12:52 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> This Kconfig implementation is rebased from Paolo's branch
> https://github.com/bonzini/qemu/commits/kconfig
> 
> I rebased most of patches except other ARCHs board definitions
> this time.
> https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig
> 
> The current RFC patches only support
> (*) x86_64 platform build
>     Once design is fixed, we can do other archs.
> 
> (*) defconfig
>     "randconfig" build has some issues, which are mostly related
>     with CONFIG* in Kconfig.host abd configure. In randconfig mode,
>     some CONFIG* has different setting value in config-host.mak and
>     %/config-device.mak, which make QEMU build failure.
> 
> (*) Kconfig in hw/ directory
> 
> The current configure and build command are same with previous
> commands and if we want to disable or enable some features, like
> "tcg", we still need add "--enable/--disable-tcg" in configure
> command line. If we want to disable one emulation device, we can
> disable this in related Kconfig file in hw/ directory.
> 
> The current build command:
> (*) ./configure --target-list=x86_64-softmmu
> (*) make -j8
> 
> Since the Kconfig language replace traditional CONFIG_* in
> default-config/%-softmmu.mak, the %-softmmu.mak file only
> define embeded boards or machines, like 440fx and Q35 in x86_64
> platform. The Kconfig has already defined dependency topology
> between different Kconfig files, but there are still some issues
> 
> (*) Kconfig for configure(config-host.mak)
>     Some CONFIG* in configure  need some logic to generate, those
>     are hard to input this CONFIG* in Kconfig.host or Kconfig* file.
> 
> (*) Kconfig for %config-target.mak
>     The CONFIG* in %/config-target.mak file, this is still related
>     with configure.
> 
> (*) randconfig support issue.
> 
> Before this RFC patches, we have talked Kconfig in another thread
> http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html
> 
> Please give your comments on this RFC thread, many thanks!

I just gave your series a try and compared the
x86_64-softmmu/config-devices.mak before applying the patches and
afterwards. Looks pretty good so far, there were just two settings that
suddenly changed:

CONFIG_IPMI_EXTERN=y
CONFIG_IPMI_LOCAL=y

changed to:

CONFIG_IPMI_EXTERN=n
CONFIG_IPMI_LOCAL=n

I guess these switches still need to be selected by the machines?

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak to Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak " Yang Zhong
@ 2019-01-16 13:48   ` Thomas Huth
  2019-01-16 13:51     ` Thomas Huth
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 13:48 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> There is really nothing special in these devices; they are just
> ISA devices.  Instead of including them for each target,
> set CONFIG_ISA to true, and make the devices default to present
> whenever ISA is available.  More conversion of ISA devices will
> follow.
[...]
> diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
> index 301cc83279..c7003e4284 100644
> --- a/default-configs/ppc-softmmu.mak
> +++ b/default-configs/ppc-softmmu.mak
> @@ -1,8 +1,8 @@
>  # Default configuration for ppc-softmmu
>  
> -include sound.mak
>  include usb.mak
>  CONFIG_PCI=y
> +ONFIG_ISA=y

Typo: CONFIG_ISA please

 Cheers,
  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak to Kconfig
  2019-01-16 13:48   ` Thomas Huth
@ 2019-01-16 13:51     ` Thomas Huth
  2019-01-18  7:24       ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 13:51 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, ehabkost, pbonzini

On 2019-01-16 14:48, Thomas Huth wrote:
> On 2019-01-15 15:10, Yang Zhong wrote:
>> From: Paolo Bonzini <pbonzini@redhat.com>
>>
>> There is really nothing special in these devices; they are just
>> ISA devices.  Instead of including them for each target,
>> set CONFIG_ISA to true, and make the devices default to present
>> whenever ISA is available.  More conversion of ISA devices will
>> follow.
> [...]
>> diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
>> index 301cc83279..c7003e4284 100644
>> --- a/default-configs/ppc-softmmu.mak
>> +++ b/default-configs/ppc-softmmu.mak
>> @@ -1,8 +1,8 @@
>>  # Default configuration for ppc-softmmu
>>  
>> -include sound.mak
>>  include usb.mak
>>  CONFIG_PCI=y
>> +ONFIG_ISA=y
> 
> Typo: CONFIG_ISA please

Or should it even be CONFIG_ISA_BUS ? At least that's the name of the
switch that you use in the other patches ...

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig
  2019-01-16 11:50   ` Thomas Huth
@ 2019-01-16 13:57     ` Paolo Bonzini
  0 siblings, 0 replies; 86+ messages in thread
From: Paolo Bonzini @ 2019-01-16 13:57 UTC (permalink / raw)
  To: Thomas Huth, Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, ehabkost

On 16/01/19 12:50, Thomas Huth wrote:
>> From: Paolo Bonzini <pbonzini@redhat.com>
>>
>> This lets you disable SCSI altogether with "CONFIG_SCSI=n".
> Sorry for my ignorant question, but: Can we really disable SCSI if the
> Kconfig files use "select SCSI" all over the place? I'd rather expect
> that "CONFIG_SCSI=n" only works if we only use "depends on SCSI" everywhere?

Right.  It would work if the controllers depended on SCSI, but you can
say instead "this automatically removes the SCSI subsystem from the
binary altogether if no controllers are selected".  Same for I2C, etc.

Paolo

> I'm fine if we use select SCSI in this patch, but maybe the commit
> message should be tweaked in case you can not really disable SCSI like
> this anymore?

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-16 10:44   ` Thomas Huth
@ 2019-01-16 14:06     ` Thomas Huth
  2019-01-18  6:41       ` Yang Zhong
  2019-01-18  6:34     ` Yang Zhong
  1 sibling, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 14:06 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, ehabkost, pbonzini

On 2019-01-16 11:44, Thomas Huth wrote:
> On 2019-01-15 15:10, Yang Zhong wrote:
>> From: Paolo Bonzini <pbonzini@redhat.com>
>>
>> The Kconfig files were generated mostly with this script:
>>
>>   for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do
>>     set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' `
>>     shift
>>     if test $# = 1; then
>>       cat >> $(dirname $1)/Kconfig << EOF
>> config ${i#CONFIG_}
>>     bool
>>
>> EOF
>>       git add $(dirname $1)/Kconfig
>>     else
>>       echo $i $*
>>     fi
>>   done
>>   sed -i '$d' hw/*/Kconfig
>>   for i in hw/*; do
>>     if test -d $i && ! test -f $i/Kconfig; then
>>       touch $i/Kconfig
>>       git add $i/Kconfig
>>     fi
>>   done
>>
>> Whenever a symbol is referenced from multiple subdirectories, the
>> script prints the list of directories that reference the symbol.
>> These symbols have to be added manually to the Kconfig files.
>>
>> Kconfig.host and hw/Kconfig were created manually.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
>> ---
>>  Kconfig.host          | 17 ++++++++
>>  hw/9pfs/Kconfig       |  2 +
>>  hw/Kconfig            | 60 ++++++++++++++++++++++++++
>>  hw/acpi/Kconfig       | 23 ++++++++++
>>  hw/adc/Kconfig        |  2 +
>>  hw/arm/Kconfig        | 98 +++++++++++++++++++++++++++++++++++++++++++
>>  hw/audio/Kconfig      | 35 ++++++++++++++++
>>  hw/block/Kconfig      | 29 +++++++++++++
>>  hw/bt/Kconfig         |  2 +
>>  hw/char/Kconfig       | 32 ++++++++++++++
>>  hw/core/Kconfig       | 11 +++++
>>  hw/cpu/Kconfig        |  8 ++++
>>  hw/display/Kconfig    | 77 ++++++++++++++++++++++++++++++++++
>>  hw/dma/Kconfig        | 20 +++++++++
>>  hw/gpio/Kconfig       |  8 ++++
>>  hw/hyperv/Kconfig     |  5 +++
>>  hw/i2c/Kconfig        | 20 +++++++++
>>  hw/i386/Kconfig       | 23 ++++++++++
>>  hw/ide/Kconfig        | 35 ++++++++++++++++
>>  hw/input/Kconfig      | 23 ++++++++++
>>  hw/intc/Kconfig       | 47 +++++++++++++++++++++
>>  hw/ipack/Kconfig      |  2 +
>>  hw/ipmi/Kconfig       | 14 +++++++
>>  hw/isa/Kconfig        | 23 ++++++++++
>>  hw/lm32/Kconfig       |  5 +++
>>  hw/m68k/Kconfig       |  8 ++++
>>  hw/mem/Kconfig        |  8 ++++
>>  hw/microblaze/Kconfig |  8 ++++
>>  hw/mips/Kconfig       | 20 +++++++++
>>  hw/misc/Kconfig       | 92 ++++++++++++++++++++++++++++++++++++++++
>>  hw/misc/macio/Kconfig | 11 +++++
>>  hw/net/Kconfig        | 92 ++++++++++++++++++++++++++++++++++++++++
>>  hw/nios2/Kconfig      |  2 +
>>  hw/nvram/Kconfig      |  8 ++++
>>  hw/pci-bridge/Kconfig | 20 +++++++++
>>  hw/pci-host/Kconfig   | 35 ++++++++++++++++
>>  hw/pci/Kconfig        |  2 +
>>  hw/pcmcia/Kconfig     |  2 +
>>  hw/ppc/Kconfig        | 38 +++++++++++++++++
>>  hw/riscv/Kconfig      | 14 +++++++
>>  hw/scsi/Kconfig       | 26 ++++++++++++
>>  hw/sd/Kconfig         | 11 +++++
>>  hw/sh4/Kconfig        |  8 ++++
>>  hw/smbios/Kconfig     |  2 +
>>  hw/sparc/Kconfig      |  5 +++
>>  hw/sparc64/Kconfig    |  5 +++
>>  hw/ssi/Kconfig        | 14 +++++++
>>  hw/timer/Kconfig      | 53 +++++++++++++++++++++++
>>  hw/tpm/Kconfig        | 14 +++++++
>>  hw/usb/Kconfig        | 53 +++++++++++++++++++++++
>>  hw/vfio/Kconfig       | 11 +++++
>>  hw/virtio/Kconfig     | 17 ++++++++
>>  hw/watchdog/Kconfig   | 11 +++++
>>  hw/xtensa/Kconfig     |  5 +++
>>  54 files changed, 1216 insertions(+)
>>  create mode 100644 Kconfig.host
>>  create mode 100644 hw/9pfs/Kconfig
>>  create mode 100644 hw/Kconfig
>>  create mode 100644 hw/acpi/Kconfig
>>  create mode 100644 hw/adc/Kconfig
>>  create mode 100644 hw/arm/Kconfig
>>  create mode 100644 hw/audio/Kconfig
>>  create mode 100644 hw/block/Kconfig
>>  create mode 100644 hw/bt/Kconfig
>>  create mode 100644 hw/char/Kconfig
>>  create mode 100644 hw/core/Kconfig
>>  create mode 100644 hw/cpu/Kconfig
>>  create mode 100644 hw/display/Kconfig
>>  create mode 100644 hw/dma/Kconfig
>>  create mode 100644 hw/gpio/Kconfig
>>  create mode 100644 hw/hyperv/Kconfig
>>  create mode 100644 hw/i2c/Kconfig
>>  create mode 100644 hw/i386/Kconfig
>>  create mode 100644 hw/ide/Kconfig
>>  create mode 100644 hw/input/Kconfig
>>  create mode 100644 hw/intc/Kconfig
>>  create mode 100644 hw/ipack/Kconfig
>>  create mode 100644 hw/ipmi/Kconfig
>>  create mode 100644 hw/isa/Kconfig
>>  create mode 100644 hw/lm32/Kconfig
>>  create mode 100644 hw/m68k/Kconfig
>>  create mode 100644 hw/mem/Kconfig
>>  create mode 100644 hw/microblaze/Kconfig
>>  create mode 100644 hw/mips/Kconfig
>>  create mode 100644 hw/misc/Kconfig
>>  create mode 100644 hw/misc/macio/Kconfig
>>  create mode 100644 hw/net/Kconfig
>>  create mode 100644 hw/nios2/Kconfig
>>  create mode 100644 hw/nvram/Kconfig
>>  create mode 100644 hw/pci-bridge/Kconfig
>>  create mode 100644 hw/pci-host/Kconfig
>>  create mode 100644 hw/pci/Kconfig
>>  create mode 100644 hw/pcmcia/Kconfig
>>  create mode 100644 hw/ppc/Kconfig
>>  create mode 100644 hw/riscv/Kconfig
>>  create mode 100644 hw/scsi/Kconfig
>>  create mode 100644 hw/sd/Kconfig
>>  create mode 100644 hw/sh4/Kconfig
>>  create mode 100644 hw/smbios/Kconfig
>>  create mode 100644 hw/sparc/Kconfig
>>  create mode 100644 hw/sparc64/Kconfig
>>  create mode 100644 hw/ssi/Kconfig
>>  create mode 100644 hw/timer/Kconfig
>>  create mode 100644 hw/tpm/Kconfig
>>  create mode 100644 hw/usb/Kconfig
>>  create mode 100644 hw/vfio/Kconfig
>>  create mode 100644 hw/virtio/Kconfig
>>  create mode 100644 hw/watchdog/Kconfig
>>  create mode 100644 hw/xtensa/Kconfig
>>
>> diff --git a/Kconfig.host b/Kconfig.host
>> new file mode 100644
>> index 0000000000..2136a4c3ec
>> --- /dev/null
>> +++ b/Kconfig.host
>> @@ -0,0 +1,17 @@
>> +# These are "proxy" symbols used to pass config-host.mak values
>> +# down to Kconfig.
>> +
>> +config KVM
>> +    bool
>> +
>> +config OPENGL
>> +    bool
>> +
>> +config SPICE
>> +    bool
>> +
>> +config TPM
>> +    bool
>> +
>> +config XEN
>> +    bool
>> diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
>> new file mode 100644
>> index 0000000000..a4750999d9
>> --- /dev/null
>> +++ b/hw/9pfs/Kconfig
>> @@ -0,0 +1,2 @@
>> +config VIRTIO_9P
>> +    bool
>> diff --git a/hw/Kconfig b/hw/Kconfig
>> new file mode 100644
>> index 0000000000..55743a958a
>> --- /dev/null
>> +++ b/hw/Kconfig
>> @@ -0,0 +1,60 @@
>> +# devices Kconfig
>> +source 9pfs/Kconfig
>> +source acpi/Kconfig
>> +source audio/Kconfig
>> +source block/Kconfig
>> +source bt/Kconfig
>> +source char/Kconfig
>> +source core/Kconfig
>> +source display/Kconfig
>> +source dma/Kconfig
>> +source gpio/Kconfig
>> +source i2c/Kconfig
>> +source ide/Kconfig
>> +source input/Kconfig
>> +source intc/Kconfig
>> +source ipack/Kconfig
>> +source isa/Kconfig
>> +source mem/Kconfig
>> +source misc/Kconfig
>> +source net/Kconfig
>> +source nvram/Kconfig
>> +source pci-bridge/Kconfig
>> +source pci-host/Kconfig
>> +source pci/Kconfig
>> +source scsi/Kconfig
>> +source sd/Kconfig
>> +source ssi/Kconfig
>> +source timer/Kconfig
>> +source tpm/Kconfig
>> +source usb/Kconfig
>> +source virtio/Kconfig
>> +source watchdog/Kconfig
>> +source smbios/Kconfig
>> +source ipmi/Kconfig
>> +source vfio/Kconfig
>> +source adc/Kconfig
>> +source pcmcia/Kconfig
>> +source hyperv/Kconfig
> 
> Could you please sort the last 5 entries alphabetically into the list?
> 
>> +# arch Kconfig
>> +source i386/Kconfig
>> +source arm/Kconfig
>> +source m68k/Kconfig
>> +source microblaze/Kconfig
>> +source mips/Kconfig
>> +source ppc/Kconfig
>> +source sh4/Kconfig
>> +source sparc/Kconfig
>> +source sparc64/Kconfig
>> +source lm32/Kconfig
>> +source xtensa/Kconfig
>> +source nios2/Kconfig
>> +source riscv/Kconfig
> 
> dito, please sort last 4 entries alphabetically into the list.
> 
> Apart from that, patch looks good to me.

FWIW, looks like we still need alpha/Kconfig, cris/Kconfig,
hppa/Kconfig, unicore32/Kconfig, tricore/Kconfig and xtensa/Kconfig ?

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig Yang Zhong
  2019-01-16 11:05   ` Thomas Huth
@ 2019-01-16 16:28   ` Thomas Huth
  1 sibling, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-16 16:28 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> The make_device_config.sh script is replaced by minikconf, which
> is modified to support the same command line as its predecessor.
> 
> The roots of the parsing are default-configs/*.mak, Kconfig.host and
> hw/Kconfig.  One difference with make_device_config.sh is that all symbols
> have to be defined in a Kconfig file, including those coming from the
> configure script.  This is the reason for the Kconfig.host file introduced
> in the previous patch. Whenever a file in default-configs/*.mak used
> $(...) to refer to a config-host.mak symbol, this is replaced by a
> Kconfig dependency.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  Kconfig.host                     |  3 ++-
>  Makefile                         | 14 +++++++++++--
>  Makefile.target                  |  7 ++++++-
>  default-configs/i386-softmmu.mak |  3 ---
>  hw/display/Kconfig               |  2 ++
>  hw/i386/Kconfig                  |  6 ++++++
>  hw/intc/Kconfig                  |  8 ++++++++
>  hw/misc/Kconfig                  |  2 ++
>  hw/tpm/Kconfig                   |  1 +
>  rules.mak                        |  2 +-
>  scripts/make_device_config.sh    | 30 ---------------------------
>  scripts/minikconf.py             | 35 +++++++++++++++++++++++++++++---
>  12 files changed, 72 insertions(+), 41 deletions(-)
>  delete mode 100644 scripts/make_device_config.sh
> 
> diff --git a/Kconfig.host b/Kconfig.host
> index 2136a4c3ec..d7f503d0ca 100644
> --- a/Kconfig.host
> +++ b/Kconfig.host
> @@ -1,5 +1,6 @@
>  # These are "proxy" symbols used to pass config-host.mak values
> -# down to Kconfig.
> +# down to Kconfig.  See also MINIKCONF_ARGS in the Makefile:
> +# these two need to be kept in sync.
>  
>  config KVM
>      bool
> diff --git a/Makefile b/Makefile
> index a9ac16d94e..01e7c60a0d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -326,9 +326,19 @@ endif
>  
>  -include $(SUBDIR_DEVICES_MAK_DEP)
>  
> -%/config-devices.mak: default-configs/%.mak $(SRC_PATH)/scripts/make_device_config.sh
> +# This has to be kept in sync with Kconfig.host.
> +MINIKCONF_ARGS = \
> +    CONFIG_KVM=$(CONFIG_KVM) \
> +    CONFIG_SPICE=$(CONFIG_SPICE) \
> +    CONFIG_TPM=$(CONFIG_TPM) \
> +    CONFIG_XEN=$(CONFIG_XEN) \
> +    CONFIG_OPENGL=$(CONFIG_OPENGL)
> +
> +MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh
> +
> +%/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig
>  	$(call quiet-command, \
> -            $(SHELL) $(SRC_PATH)/scripts/make_device_config.sh $< $*-config-devices.mak.d $@ > $@.tmp,"GEN","$@.tmp")
> +            $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, "  GEN   $@.tmp")

Looks like CONFIG_KVM now shows up in all config-devices.mak files ...
that won't work when the target CPU does not match the host CPU, I think
we need some additional logic here...?

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Yang Zhong
  2019-01-16  9:31   ` Thomas Huth
@ 2019-01-16 18:43   ` Max Filippov
  1 sibling, 0 replies; 86+ messages in thread
From: Max Filippov @ 2019-01-16 18:43 UTC (permalink / raw)
  To: Yang Zhong
  Cc: qemu-devel, Peter Maydell, Thomas Huth, sameo,
	Ákos Kovács, Paolo Bonzini, Eduardo Habkost

On Tue, Jan 15, 2019 at 6:38 AM Yang Zhong <yang.zhong@intel.com> wrote:
>
> From: Ákos Kovács <akoskovacs@gmx.com>
>
> Add the new CONFIG_* values to default-config/xtensa*-softmmu.mak.
>
> Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/xtensa-softmmu.mak   | 3 +++
>  default-configs/xtensaeb-softmmu.mak | 3 +++
>  hw/xtensa/Makefile.objs              | 4 ++--
>  3 files changed, 8 insertions(+), 2 deletions(-)

Acked-by: Max Filippov <jcmvbkbc@gmail.com>

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files Yang Zhong
  2019-01-16 10:44   ` Thomas Huth
@ 2019-01-17  9:17   ` Thomas Huth
  2019-01-18  6:42     ` Yang Zhong
  1 sibling, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-17  9:17 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> The Kconfig files were generated mostly with this script:
> 
>   for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do
>     set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' `
>     shift
>     if test $# = 1; then
>       cat >> $(dirname $1)/Kconfig << EOF
> config ${i#CONFIG_}
>     bool
> 
> EOF
>       git add $(dirname $1)/Kconfig
>     else
>       echo $i $*
>     fi
>   done
>   sed -i '$d' hw/*/Kconfig
>   for i in hw/*; do
>     if test -d $i && ! test -f $i/Kconfig; then
>       touch $i/Kconfig
>       git add $i/Kconfig
>     fi
>   done
> 
> Whenever a symbol is referenced from multiple subdirectories, the
> script prints the list of directories that reference the symbol.
> These symbols have to be added manually to the Kconfig files.
> 
> Kconfig.host and hw/Kconfig were created manually.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
[...]
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> new file mode 100644
> index 0000000000..34e4a32a71
> --- /dev/null
> +++ b/hw/arm/Kconfig
> @@ -0,0 +1,98 @@
> +config VIRT
> +    bool
> +
> +config DIGIC
> +    bool
> +
> +config EXYNOS4
> +    bool
> +
> +config HIGHBANK
> +    bool
> +
> +config INTEGRATOR
> +    bool
> +
> +config MAINSTONE
> +    bool
> +
> +config MUSICPAL
> +    bool
> +
> +config NETDUINO2
> +    bool
> +
> +config NSERIES
> +    bool
> +
> +config OMAP
> +    bool
> +
> +config PXA2XX
> +    bool
> +
> +config REALVIEW
> +    bool
> +
> +config STELLARIS
> +    bool
> +
> +config STRONGARM
> +    bool
> +
> +config VERSATILE
> +    bool
> +
> +config ZYNQ
> +    bool
> +
> +config ARM_V7M
> +    bool
> +
> +config EXYNOS4
> +    bool
> +
> +config ALLWINNER_A10
> +    bool
> +
> +config RASPI
> +    bool
> +
> +config STM32F205_SOC
> +    bool
> +
> +config XLNX_ZYNQMP_ARM
> +    bool
> +
> +config XLNX_VERSAL
> +    bool
> +
> +config FSL_IMX25
> +    bool
> +
> +config FSL_IMX31
> +    bool
> +
> +config FSL_IMX6
> +    bool
> +
> +config ASPEED_SOC
> +    bool
> +
> +config MPS2
> +    bool
> +
> +config IOTKIT
> +    bool
> +
> +config FSL_IMX7
> +    bool
> +
> +config ARM_SMMUV3
> +    bool
> +
> +config FSL_IMX6UL
> +    bool
> +
> +config NRF51_SOC
> +    bool

After playing with your patch series a little bit, I think we also need
the following config options here for arm:

config MSF2
    bool

config ZAURUS
    bool

config A9MPCORE
    bool

config A15MPCORE
    bool

config ARM11MPCORE
    bool

Could you please add them in v3?

> diff --git a/hw/nios2/Kconfig b/hw/nios2/Kconfig
> new file mode 100644
> index 0000000000..986c1cc0a1
> --- /dev/null
> +++ b/hw/nios2/Kconfig
> @@ -0,0 +1,2 @@
> +config NIOS2_10M50_BOARD
> +    bool

Some Makefiles use CONFIG_NIOS2, so we also need:

config NIOS2
    bool

> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> new file mode 100644
> index 0000000000..44b01acdd9
> --- /dev/null
> +++ b/hw/ppc/Kconfig
> @@ -0,0 +1,38 @@
> +config PSERIES
> +    bool
> +
> +config SPAPR_RNG
> +    bool
> +
> +config POWERNV
> +    bool
> +
> +config PPC405
> +    bool
> +
> +config PPC440
> +    bool
> +
> +config PPC4XX
> +    bool
> +
> +config SAM460EX
> +    bool
> +
> +config PREP
> +    bool
> +
> +config RS6000_MC
> +    bool
> +
> +config MAC_OLDWORLD
> +    bool
> +
> +config MAC_NEWWORLD
> +    bool
> +
> +config E500
> +    bool
> +
> +config VIRTEX
> +    bool

When I tried to compile the ppc part, I found out that the following
config options are still missing for ppc:

config MAC_DBDMA
    bool

config MAC_PMU
    bool

config XIVE
    bool

config MACIO_GPIO
    bool

config XIVE_SPAPR
    bool

config CUDA
    bool

Could you please add them in v3?

> diff --git a/hw/sh4/Kconfig b/hw/sh4/Kconfig
> new file mode 100644
> index 0000000000..b2faf1489e
> --- /dev/null
> +++ b/hw/sh4/Kconfig
> @@ -0,0 +1,8 @@
> +config R2D
> +    bool
> +
> +config SHIX
> +    bool
> +
> +config SH7750
> +    bool

Some Makefiles also use CONFIG_SH4, so please add:

config SH4
    bool

> diff --git a/hw/smbios/Kconfig b/hw/smbios/Kconfig
> new file mode 100644
> index 0000000000..553adf4bfc
> --- /dev/null
> +++ b/hw/smbios/Kconfig
> @@ -0,0 +1,2 @@
> +config SMBIOS
> +    bool
> diff --git a/hw/sparc/Kconfig b/hw/sparc/Kconfig
> new file mode 100644
> index 0000000000..529fca328f
> --- /dev/null
> +++ b/hw/sparc/Kconfig
> @@ -0,0 +1,5 @@
> +config SUN4M
> +    bool
> +
> +config LEON3
> +    bool

For sparc, we also need:

config GRLIB
    bool

config SLAVIO
    bool

 Thanks,
  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: express dependencies with Kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: " Yang Zhong
@ 2019-01-17 10:19   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 10:19 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> ---
>  hw/Makefile.objs | 2 +-
>  hw/usb/Kconfig   | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> index 39d882af6f..b95b0c74a1 100644
> --- a/hw/Makefile.objs
> +++ b/hw/Makefile.objs
> @@ -3,7 +3,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += acpi/
>  devices-dirs-$(CONFIG_SOFTMMU) += adc/
>  devices-dirs-$(CONFIG_SOFTMMU) += audio/
>  devices-dirs-$(CONFIG_SOFTMMU) += block/
> -devices-dirs-$(CONFIG_SOFTMMU) += bt/
> +devices-dirs-$(CONFIG_BLUETOOTH) += bt/

Note that bluetooth currently can not be disabled yet (code in vl.c
still calls some functions in hw/bt/), so we might need to keep the bt
folder always enabled here for now, to be able to compile boards that do
not include the bt-hci device.

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig
  2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig Yang Zhong
@ 2019-01-17 10:25   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 10:25 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:10, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/i386-softmmu.mak | 10 ----------
>  hw/audio/Kconfig                 |  2 ++
>  hw/block/Kconfig                 |  2 ++
>  hw/char/Kconfig                  |  6 ++++++
>  hw/display/Kconfig               |  6 ++++++
>  hw/i386/Kconfig                  |  1 +
>  hw/ide/Kconfig                   |  1 +
>  hw/input/Kconfig                 |  2 ++
>  hw/isa/Kconfig                   |  5 +++++
>  hw/misc/Kconfig                  |  4 ++++
>  hw/net/Kconfig                   |  3 +++
>  hw/watchdog/Kconfig              |  2 ++
>  12 files changed, 34 insertions(+), 10 deletions(-)
[...]
> diff --git a/hw/display/Kconfig b/hw/display/Kconfig
> index 5e73277cc2..a53ca4601a 100644
> --- a/hw/display/Kconfig
> +++ b/hw/display/Kconfig
> @@ -9,6 +9,9 @@ config ADS7846
>  
>  config VGA_CIRRUS
>      bool
> +    default y
> +    depends on PCI
> +    select VGA

This hunk should likely rather be part of the pci.mak patch?

Apart from that, the patch here looks fine to me.

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 30/37] i2c: express dependencies with Kconfig
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 30/37] i2c: " Yang Zhong
@ 2019-01-17 10:30   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 10:30 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:11, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/i386-softmmu.mak | 1 -
>  hw/Makefile.objs                 | 2 +-
>  hw/audio/Kconfig                 | 1 +
>  hw/display/Kconfig               | 3 +++
>  hw/gpio/Kconfig                  | 1 +
>  hw/i2c/Kconfig                   | 6 ++++++
>  hw/i2c/Makefile.objs             | 3 ++-
>  hw/i386/Kconfig                  | 1 +
>  hw/input/Kconfig                 | 1 +
>  hw/isa/Kconfig                   | 1 +
>  hw/misc/Kconfig                  | 4 ++++
>  hw/timer/Kconfig                 | 3 +++
>  12 files changed, 24 insertions(+), 3 deletions(-)

Acked-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 31/37] ptimer: express dependencies with Kconfig
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 31/37] ptimer: " Yang Zhong
@ 2019-01-17 10:32   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 10:32 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:11, Yang Zhong wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  hw/Kconfig       | 2 ++
>  hw/net/Kconfig   | 2 ++
>  hw/timer/Kconfig | 6 ++++++
>  3 files changed, 10 insertions(+)
> 
> diff --git a/hw/Kconfig b/hw/Kconfig
> index 55743a958a..f9d88986a0 100644
> --- a/hw/Kconfig
> +++ b/hw/Kconfig
> @@ -55,6 +55,8 @@ source riscv/Kconfig
>  # Symbols used by multiple targets
>  config XILINX
>      bool
> +    select PTIMER # for hw/timer/xilinx_timer.c
>  
>  config XILINX_AXI
>      bool
> +    select PTIMER # for hw/dma/xilinx_axidma.c
> diff --git a/hw/net/Kconfig b/hw/net/Kconfig
> index 5a30fdcc17..a9aa60f9a7 100644
> --- a/hw/net/Kconfig
> +++ b/hw/net/Kconfig
> @@ -45,6 +45,7 @@ config SMC91C111
>  
>  config LAN9118
>      bool
> +    select PTIMER
>  
>  config NE2000_ISA
>      bool
> @@ -96,6 +97,7 @@ config VIRTIO_NET
>  
>  config ETSEC
>      bool
> +    select PTIMER
>  
>  config ROCKER
>      bool
> diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
> index e1a6e7469b..a021c742de 100644
> --- a/hw/timer/Kconfig
> +++ b/hw/timer/Kconfig
> @@ -1,8 +1,10 @@
>  config ARM_TIMER
>      bool
> +    select PTIMER
>  
>  config ARM_MPTIMER
>      bool
> +    select PTIMER
>  
>  config A9_GTIMER
>      bool
> @@ -36,12 +38,14 @@ config XLNX_ZYNQMP
>  
>  config ALTERA_TIMER
>      bool
> +    select PTIMER
>  
>  config MC146818RTC
>      bool
>  
>  config ALLWINNER_A10_PIT
>      bool
> +    select PTIMER
>  
>  config STM32F2XX_TIMER
>      bool
> @@ -51,6 +55,8 @@ config SUN4V_RTC
>  
>  config CMSDK_APB_TIMER
>      bool
> +    select PTIMER
>  
>  config CMSDK_APB_DUALTIMER
>      bool
> +    select PTIMER
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig Yang Zhong
@ 2019-01-17 10:37   ` Thomas Huth
  0 siblings, 0 replies; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 10:37 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:11, Yang Zhong wrote:
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
>  default-configs/i386-softmmu.mak  |  1 -
>  default-configs/s390x-softmmu.mak |  1 -
>  default-configs/virtio.mak        | 14 --------------
>  hw/9pfs/Kconfig                   |  2 ++
>  hw/block/Kconfig                  |  2 ++
>  hw/char/Kconfig                   |  2 ++
>  hw/display/Kconfig                |  5 +++++
>  hw/input/Kconfig                  |  2 ++
>  hw/net/Kconfig                    |  2 ++
>  hw/pci-host/Kconfig               |  2 ++
>  hw/scsi/Kconfig                   |  1 +
>  hw/virtio/Kconfig                 |  9 ++++++++-
>  12 files changed, 26 insertions(+), 17 deletions(-)
>  delete mode 100644 default-configs/virtio.mak

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions
  2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions Yang Zhong
@ 2019-01-17 11:03   ` Thomas Huth
  2019-01-18  9:00     ` Yang Zhong
  0 siblings, 1 reply; 86+ messages in thread
From: Thomas Huth @ 2019-01-17 11:03 UTC (permalink / raw)
  To: Yang Zhong, qemu-devel; +Cc: peter.maydell, sameo, pbonzini, ehabkost

On 2019-01-15 15:11, 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 | 22 ----------------------
>  hw/acpi/Kconfig                  |  4 ++++
>  hw/i386/Kconfig                  |  5 +++++
>  hw/ipmi/Kconfig                  |  6 ++++++
>  hw/mem/Kconfig                   |  2 ++
>  hw/misc/Kconfig                  |  4 ++++
>  hw/pci-bridge/Kconfig            |  1 +
>  hw/timer/Kconfig                 |  1 +
>  8 files changed, 23 insertions(+), 22 deletions(-)
> 
> diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
> index 992aea8f30..7b083412af 100644
> --- a/default-configs/i386-softmmu.mak
> +++ b/default-configs/i386-softmmu.mak
> @@ -1,27 +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_SGA=y
> -CONFIG_PVPANIC=y
> -CONFIG_MEM_DEVICE=y
> -CONFIG_NVDIMM=y
> -CONFIG_ACPI_NVDIMM=y
> -CONFIG_PXB=y
> -CONFIG_ACPI_VMGENID=y
> -CONFIG_SEV=$(CONFIG_KVM)
> -
>  # Boards:
>  #
>  CONFIG_ISAPC=y
> diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
> index 98bb3539e1..09af3ce3be 100644
> --- a/hw/acpi/Kconfig
> +++ b/hw/acpi/Kconfig
> @@ -18,9 +18,13 @@ config ACPI_MEMORY_HOTPLUG
>  
>  config ACPI_NVDIMM
>      bool
> +    default y
> +    depends on I440FX && Q35
>  
>  config ACPI_VMGENID
>      bool
> +    default y
> +    depends on I440FX && Q35

Shouldn't that rather be I440FX || Q35 ?

> diff --git a/hw/ipmi/Kconfig b/hw/ipmi/Kconfig
> index 68f8ba1a54..7730ff5193 100644
> --- a/hw/ipmi/Kconfig
> +++ b/hw/ipmi/Kconfig
> @@ -3,12 +3,18 @@ config IPMI
>  
>  config IPMI_LOCAL
>      bool
> +    depends on IPMI

default y ?

>  config IPMI_EXTERN
>      bool
> +    depends on IPMI

default y ?

>  config ISA_IPMI_KCS
>      bool
> +    default y if PC
> +    select IPMI
>  
>  config ISA_IPMI_BT
>      bool
> +    default y if PC
> +    select IPMI
> diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig
> index a3a4372fa7..099fb84df4 100644
> --- a/hw/mem/Kconfig
> +++ b/hw/mem/Kconfig
> @@ -6,3 +6,5 @@ config MEM_DEVICE
>  
>  config NVDIMM
>      bool
> +    default y
> +    depends on I440FX && Q35

I440FX || Q35 ?

(FWIW: it's also used by mips-softmmu.mak, so we need to add this here
later, too)

 Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board
       [not found]   ` <bb109ff0-8475-73f6-c33d-52044de758ac@redhat.com>
@ 2019-01-17 11:17     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 11:17 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, Paolo Bonzini, peter.maydell, sameo, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 01:01:07PM +0100, Thomas Huth wrote:
> On 2019-01-15 15:10, Yang Zhong wrote:
> > make virt code configurable and the new CONFIG_VIRT definitions
> > added to the default-configs/arm-softmmu.mak to replace CONFIG_ACPI
> > in arm board.
> > 
> > Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> > ---
> >  default-configs/arm-softmmu.mak | 2 +-
> >  hw/arm/Makefile.objs            | 4 ++--
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
> > index 2420491aac..3903d1ada3 100644
> > --- a/default-configs/arm-softmmu.mak
> > +++ b/default-configs/arm-softmmu.mak
> > @@ -147,7 +147,7 @@ CONFIG_PCIE_PORT=y
> >  CONFIG_XIO3130=y
> >  CONFIG_IOH3420=y
> >  CONFIG_I82801B11=y
> > -CONFIG_ACPI=y
> > +CONFIG_VIRT=y
> >  CONFIG_SMBIOS=y
> >  CONFIG_ASPEED_SOC=y
> >  CONFIG_GPIO_KEY=y
> > diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
> > index 50c7b4a927..25ff98fdbc 100644
> > --- a/hw/arm/Makefile.objs
> > +++ b/hw/arm/Makefile.objs
> > @@ -1,5 +1,5 @@
> > -obj-y += boot.o virt.o sysbus-fdt.o
> > -obj-$(CONFIG_ACPI) += virt-acpi-build.o
> > +obj-y += boot.o sysbus-fdt.o
> > +obj-$(CONFIG_VIRT) += virt.o virt-acpi-build.o
> >  obj-$(CONFIG_DIGIC) += digic_boards.o
> >  obj-$(CONFIG_EXYNOS4) += exynos4_boards.o
> >  obj-$(CONFIG_HIGHBANK) += highbank.o
> > 
> 
> I just gave this a try, and seems like it breaks building the arm
> machines: CONFIG_ACPI is still required. So maybe better not remove that
> switch in this patch yet, to keep the git history bisectable?
>
  Yes, Thomas, virt-acpi-build.c still call common acpi functions.
  Let me still keep "obj-$(CONFIG_ACPI) += virt-acpi-build.o" and 
  set CONFIG_VIRT only for virt.c file. thanks!

  Regards,

  Yang
 
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards
  2019-01-16  7:15   ` Thomas Huth
@ 2019-01-17 11:33     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 11:33 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost

On Wed, Jan 16, 2019 at 08:15:23AM +0100, Thomas Huth wrote:
> On 2019-01-15 15:10, Yang Zhong wrote:
[...] 
> The naming of the files is a little bit unfortunate, but
> there are only two Coldfire boards: an5206 and mcf5208evb.
> mcf5206.c belongs to the an5206 board.
> So may I suggest to only use two CONFIG switches like this:
> 
> obj-$(CONFIG_AN5206) += an5206.o mcf5206.o
> obj-$(CONFIG_MCF5208EVB) += mcf5208.o mcf_intc.o
> 
  Yes, thanks Thomas, i will change this.  
  
  Regards,
  Yang
> ?
> 
>  Thanks,
>   Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards
  2019-01-16  8:34   ` Thomas Huth
@ 2019-01-17 11:44     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 11:44 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost, yang.zhong

On Wed, Jan 16, 2019 at 09:34:15AM +0100, Thomas Huth wrote:
> On 2019-01-15 15:10, Yang Zhong wrote:
[...] 
> I think that change to the CONFIG_VT82C686 is unrelated and should not
> be part of this patch. Also looking at commit
> 
>  dff4021730b112ca00522d4c98c24a15feeef5a0
>  mips: Remove CONFIG_VT82C686 from non-Fulong configs
> 
> it seems like it should stay in mips64el-softmmu.mak and not be moved to
> mips-softmmu-common.mak.
> 
  Hello Thomas,

  Wow, you can find this corner case, and thanks for you detailed review.

  Regards,

  Yang

>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
  2019-01-16  8:41   ` Thomas Huth
@ 2019-01-17 11:58     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 11:58 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost, yang.zhong

On Wed, Jan 16, 2019 at 09:41:19AM +0100, Thomas Huth wrote:
> 
> Could you please sort the new config switches into the right sections
> here? e.g. CONFIG_MAC_NEW/OLDWORLD in the "# For Macs" section, and the
> others into the "# For embedded PPC" section?
> 
  Yes, thanks Thomas, i will change this.  Yang
>  Thanks,
>   Thomas
> 

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device
  2019-01-16  8:48   ` Thomas Huth
@ 2019-01-17 12:10     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 12:10 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 09:48:16AM +0100, Thomas Huth wrote:

> sh7750.o and sh7750_regnames.o are "common" code of the r2d and shix
> machine, and do not define a separate machine ... not sure whether we
> need a separate CONFIG_SH7750 switch for this? I'd rather treat these
> two file like sh_pci.o instead, and always include them unconditionally,
> I think... Or do I miss something?
a>
  Thanks Thomas, exactly, r2d_init() and shix_init all call sh7750_init().

  Regards,

  Yang
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
  2019-01-16  9:46     ` [Qemu-riscv] " Thomas Huth
  (?)
@ 2019-01-17 12:36     ` Yang Zhong
  -1 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-17 12:36 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 10:46:45AM +0100, Thomas Huth wrote:
> > +obj-$(CONFIG_HTIF) += riscv_htif.o
> 
> riscv_htif.o seems to belong to the spike machine, so I think you don't
> need a separate config switch for that and could simply use CONFIG_SPIKE
> here.
> 
> > +obj-$(CONFIG_HART) += riscv_hart.o
> > +obj-$(CONFIG_SIFIVE) += sifive_e.o
> > +obj-$(CONFIG_SIFIVE) += sifive_clint.o
> > +obj-$(CONFIG_SIFIVE) += sifive_prci.o
> > +obj-$(CONFIG_SIFIVE) += sifive_plic.o
> > +obj-$(CONFIG_SIFIVE) += sifive_test.o
> > +obj-$(CONFIG_SIFIVE) += sifive_u.o
> 
> Looking at the output of "qemu-system-riscv64 -M help", sifive_e and
> sifive_u are two separate machines. So should we use two different
> config switches here?
> 
> > +obj-$(CONFIG_SIFIVE) += sifive_uart.o
> > +obj-$(CONFIG_SPIKE) += spike.o
> > +obj-$(CONFIG_RISCV_VIRTIO) += virt.o
> 
> The machine is only called "virt", so I'd suggest to call the config
> switch CONFIG_RISCV_VIRT only.
> 
>  Thomas

   Hello Thomas,

   Thanks, i did below changes

   +obj-$(CONFIG_SPIKE) += riscv_htif.o
   +obj-$(CONFIG_HART) += riscv_hart.o
   +obj-$(CONFIG_SIFIVE_E) += sifive_e.o
   +obj-$(CONFIG_SIFIVE) += sifive_clint.o
   +obj-$(CONFIG_SIFIVE) += sifive_prci.o
   +obj-$(CONFIG_SIFIVE) += sifive_plic.o
   +obj-$(CONFIG_SIFIVE) += sifive_test.o
   +obj-$(CONFIG_SIFIVE_U) += sifive_u.o
   +obj-$(CONFIG_SIFIVE) += sifive_uart.o
   +obj-$(CONFIG_SPIKE) += spike.o
   +obj-$(CONFIG_RISCV_VIRT) += virt.o

   Regards,

   Yang

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-16 10:44   ` Thomas Huth
  2019-01-16 14:06     ` Thomas Huth
@ 2019-01-18  6:34     ` Yang Zhong
  1 sibling, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  6:34 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 11:44:13AM +0100, Thomas Huth wrote:
> > +source ipmi/Kconfig
> > +source vfio/Kconfig
> > +source adc/Kconfig
> > +source pcmcia/Kconfig
> > +source hyperv/Kconfig
> 
> Could you please sort the last 5 entries alphabetically into the list?
  
  Thanks Thomas, i will change this. Yang 
> > +# arch Kconfig
> > +source i386/Kconfig
> > +source arm/Kconfig
> > +source m68k/Kconfig
> > +source microblaze/Kconfig
> > +source mips/Kconfig
> > +source ppc/Kconfig
> > +source sh4/Kconfig
> > +source sparc/Kconfig
> > +source sparc64/Kconfig
> > +source lm32/Kconfig
> > +source xtensa/Kconfig
> > +source nios2/Kconfig
> > +source riscv/Kconfig
> 
> dito, please sort last 4 entries alphabetically into the list.
> 
  Thanks, i will change this. 
  
  Regards,

  Yang
> Apart from that, patch looks good to me.
> 
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-16 14:06     ` Thomas Huth
@ 2019-01-18  6:41       ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  6:41 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 03:06:33PM +0100, Thomas Huth wrote:
> FWIW, looks like we still need alpha/Kconfig, cris/Kconfig,
> hppa/Kconfig, unicore32/Kconfig, tricore/Kconfig and xtensa/Kconfig ?
> 

   Hello Thomas,

   v3 will add below new ARCH/Kconfig
   alpha/Kconfig
   cris/Kconfig
   hppa/Kconfig
   unicore32/Kconfig
   tricore/Kconfig
   moxie/Kconfig
   openrisc/Kconfig

   So, i will also make those ARCH/Makefile.objs confighrable. thanks!

   Please note: 
   I will not add hw/s390x/Kconfig because i do not know how to configure this IBM platform.

   Regards,

   Yang
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files
  2019-01-17  9:17   ` Thomas Huth
@ 2019-01-18  6:42     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  6:42 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, pbonzini, ehabkost, Yang Zhong

Hello Thomas,

Thanks for detailed comments, i will add those into v3 patches.

Regards,

Yang 

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig
  2019-01-16 11:41   ` Thomas Huth
@ 2019-01-18  7:08     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  7:08 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 12:41:17PM +0100, Thomas Huth wrote:
> 
> The e1000e is a PCI-e device, so maybe this should rather depend on
> "PCIE" instead?
> 
  Thanks Thomas, yes, i will change this.  Yang

> With that fixed:
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> 
> 
> >  config RTL8139_PCI
> >      bool
> > +    default y
> > +    depends on PCI
> >  
> >  config VMXNET3_PCI
> >      bool
> > +    default y
> > +    depends on PCI
> [...]
> > diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
> > index cbf5c5d761..f23c542d27 100644
> > --- a/hw/usb/Kconfig
> > +++ b/hw/usb/Kconfig
> > @@ -3,21 +3,31 @@ config USB
> >  
> >  config USB_UHCI
> >      bool
> > +    default y
> > +    depends on PCI
> >  
> >  config USB_OHCI
> >      bool
> > +    default y
> > +    depends on PCI
> >  
> >  config USB_EHCI
> >      bool
> > +    default y
> > +    depends on PCI
> 
> We might need a USB_EHCI_PCI switch in the future (since there is also
> _SYSBUS which could be used without PCI), but I think that can be done
> in a later patch.
>
   Thanks Thomas, we can put this patch in second stage. Yang
 
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak to Kconfig
  2019-01-16 13:51     ` Thomas Huth
@ 2019-01-18  7:24       ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  7:24 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, pbonzini, ehabkost, Yang Zhong

On Wed, Jan 16, 2019 at 02:51:37PM +0100, Thomas Huth wrote:
> On 2019-01-16 14:48, Thomas Huth wrote:
> > On 2019-01-15 15:10, Yang Zhong wrote:
> >> From: Paolo Bonzini <pbonzini@redhat.com>
> >>
> >> There is really nothing special in these devices; they are just
> >> ISA devices.  Instead of including them for each target,
> >> set CONFIG_ISA to true, and make the devices default to present
> >> whenever ISA is available.  More conversion of ISA devices will
> >> follow.
> > [...]
> >> diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
> >> index 301cc83279..c7003e4284 100644
> >> --- a/default-configs/ppc-softmmu.mak
> >> +++ b/default-configs/ppc-softmmu.mak
> >> @@ -1,8 +1,8 @@
> >>  # Default configuration for ppc-softmmu
> >>  
> >> -include sound.mak
> >>  include usb.mak
> >>  CONFIG_PCI=y
> >> +ONFIG_ISA=y
> > 
> > Typo: CONFIG_ISA please
> 
> Or should it even be CONFIG_ISA_BUS ? At least that's the name of the
> switch that you use in the other patches ...
> 
  Hello Thomas,

  Yes, We should change this to CONFIG_ISA_BUS here and the patch's 
  description will be changed correspondingly.

  Regards,

  Yang
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

* Re: [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions
  2019-01-17 11:03   ` Thomas Huth
@ 2019-01-18  9:00     ` Yang Zhong
  0 siblings, 0 replies; 86+ messages in thread
From: Yang Zhong @ 2019-01-18  9:00 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, peter.maydell, sameo, ákos Kovács,
	pbonzini, ehabkost, Yang Zhong

On Thu, Jan 17, 2019 at 12:03:34PM +0100, Thomas Huth wrote:
> > --- a/hw/mem/Kconfig
> > +++ b/hw/mem/Kconfig
> > @@ -6,3 +6,5 @@ config MEM_DEVICE
> >  
> >  config NVDIMM
> >      bool
> > +    default y
> > +    depends on I440FX && Q35
> 
> I440FX || Q35 ?
> 
  Thanks Thomas, "I440FX || Q35" is right, i will change these one by one, Yang.

> (FWIW: it's also used by mips-softmmu.mak, so we need to add this here
> later, too)
> 
>  Thomas

^ permalink raw reply	[flat|nested] 86+ messages in thread

end of thread, other threads:[~2019-01-18  9:03 UTC | newest]

Thread overview: 86+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-15 14:10 [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 01/37] build: actually use CONFIG_PAM Yang Zhong
2019-01-15 18:02   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 02/37] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 03/37] hw/arm/Makefile.objs: CONFIG_VIRT created for virt board Yang Zhong
2019-01-16  7:07   ` Thomas Huth
     [not found]   ` <bb109ff0-8475-73f6-c33d-52044de758ac@redhat.com>
2019-01-17 11:17     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 04/37] hw/m68k/Makefile.objs: Conditionally build boards Yang Zhong
2019-01-16  7:15   ` Thomas Huth
2019-01-17 11:33     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 05/37] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards Yang Zhong
2019-01-16  8:28   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 06/37] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards Yang Zhong
2019-01-16  8:34   ` Thomas Huth
2019-01-17 11:44     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 07/37] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Yang Zhong
2019-01-15 23:10   ` Paolo Bonzini
2019-01-16  8:41   ` Thomas Huth
2019-01-17 11:58     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 08/37] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device Yang Zhong
2019-01-16  8:48   ` Thomas Huth
2019-01-17 12:10     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 09/37] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created Yang Zhong
2019-01-16  9:04   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 10/37] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst Yang Zhong
2019-01-16  9:10   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 11/37] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Yang Zhong
2019-01-16  9:31   ` Thomas Huth
2019-01-16 18:43   ` Max Filippov
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 12/37] hw/nios2/Makefile.objs: Conditionally build nios2 Yang Zhong
2019-01-16  9:37   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 13/37] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards Yang Zhong
2019-01-16  9:46   ` Thomas Huth
2019-01-16  9:46     ` [Qemu-riscv] " Thomas Huth
2019-01-17 12:36     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 14/37] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64 Yang Zhong
2019-01-16  9:56   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 15/37] minikconfig: add parser skeleton Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 16/37] minikconfig: add AST Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 17/37] minikconfig: add semantic analysis Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 18/37] hw/display: make edid configurable Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 19/37] kconfig: introduce kconfig files Yang Zhong
2019-01-16 10:44   ` Thomas Huth
2019-01-16 14:06     ` Thomas Huth
2019-01-18  6:41       ` Yang Zhong
2019-01-18  6:34     ` Yang Zhong
2019-01-17  9:17   ` Thomas Huth
2019-01-18  6:42     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 20/37] build: switch to Kconfig Yang Zhong
2019-01-16 11:05   ` Thomas Huth
2019-01-16 16:28   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 21/37] ide: express dependencies with Kconfig Yang Zhong
2019-01-16 11:21   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 22/37] hw/pci/Makefile.objs: make pcie configurable Yang Zhong
2019-01-16 11:23   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 23/37] build: convert pci.mak to Kconfig Yang Zhong
2019-01-16 11:41   ` Thomas Huth
2019-01-18  7:08     ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 24/37] build: convert sound.mak " Yang Zhong
2019-01-16 13:48   ` Thomas Huth
2019-01-16 13:51     ` Thomas Huth
2019-01-18  7:24       ` Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 25/37] build: convert usb.mak " Yang Zhong
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 26/37] scsi: express dependencies with Kconfig Yang Zhong
2019-01-16 11:50   ` Thomas Huth
2019-01-16 13:57     ` Paolo Bonzini
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 27/37] bluetooth: " Yang Zhong
2019-01-17 10:19   ` Thomas Huth
2019-01-15 14:10 ` [Qemu-devel] [RFC PATCH v2 28/37] isa: express dependencies with kconfig Yang Zhong
2019-01-17 10:25   ` Thomas Huth
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 29/37] i386: express dependencies with Kconfig Yang Zhong
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 30/37] i2c: " Yang Zhong
2019-01-17 10:30   ` Thomas Huth
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 31/37] ptimer: " Yang Zhong
2019-01-17 10:32   ` Thomas Huth
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 32/37] edid: express dependencies with kconfig Yang Zhong
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 33/37] hyperv: " Yang Zhong
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 34/37] virtio: make virtio dependencies with Kconfig Yang Zhong
2019-01-17 10:37   ` Thomas Huth
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 35/37] i386-softmmu.mak: remove all CONFIG_* except boards definitions Yang Zhong
2019-01-17 11:03   ` Thomas Huth
2019-01-18  9:00     ` Yang Zhong
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 36/37] minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig Yang Zhong
2019-01-15 14:11 ` [Qemu-devel] [RFC PATCH v2 37/37] Makefile: only support defconfig Yang Zhong
2019-01-15 23:20 ` [Qemu-devel] [RFC PATCH v2 00/37] Support Kconfig in QEMU Paolo Bonzini
2019-01-16 12:52 ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.