* [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
@ 2019-03-04 18:19 Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 01/54] block: fix recursion in hw/block/dataplane Paolo Bonzini
` (57 more replies)
0 siblings, 58 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
The following changes since commit 1ba530a4ecba6015d52d8f392fd327cfa07bc37a:
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190304' into staging (2019-03-04 13:38:54 +0000)
are available in the git repository at:
git://github.com/bonzini/qemu.git tags/for-upstream-kconfig
for you to fetch changes up to b1d8b9a6cc37e33dde1873379174de78957830ca:
kconfig: add documentation (2019-03-04 19:09:35 +0100)
----------------------------------------------------------------
Initial Kconfig work, excluding ARM and MIPS
----------------------------------------------------------------
Paolo Bonzini (42):
block: fix recursion in hw/block/dataplane
9pfs: remove unnecessary conditionals
xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA
minikconfig: add parser skeleton
minikconfig: add AST
minikconfig: add semantic analysis
kconfig: introduce kconfig files
build: switch to Kconfig
minikconfig: implement allnoconfig and defconfig modes
kconfig: introduce CONFIG_TEST_DEVICES
ide: express dependencies with Kconfig
isa: express dependencies with kconfig
build: convert pci.mak to Kconfig
build: convert sound.mak to Kconfig
scsi: express dependencies with Kconfig
build: convert usb.mak to Kconfig
i386: express dependencies with Kconfig
i2c: express dependencies with Kconfig
ptimer: express dependencies with Kconfig
vfio: express vfio dependencies with Kconfig
tpm: express dependencies with Kconfig
isa: express SuperIO dependencies with Kconfig
ssi: express dependencies with kconfig
sd: express dependencies with kconfig
ipmi: express dependencies with kconfig
alpha-softmmu.mak: express dependencies with Kconfig
cris-softmmu.mak: express dependencies with Kconfig
hppa-softmmu.mak: express dependencies with Kconfig
lm32-softmmu.mak: express dependencies with Kconfig
m68k-softmmu.mak: express dependencies with Kconfig
microblaze-softmmu.mak: express dependencies with Kconfig
moxie-softmmu.mak: express dependencies with Kconfig
nios2-softmmu.mak: express dependencies with Kconfig
or1k-softmmu.mak: express dependencies with Kconfig
riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives
sh4-softmmu.mak: express dependencies with Kconfig
sparc-softmmu.mak: express dependencies with Kconfig
sparc64-softmmu.mak: express dependencies with Kconfig
unicore32-softmmu.mak: express dependencies with Kconfig
xtensa-softmmu.mak: express dependencies with Kconfig
.travis.yml: test that no-default-device builds do not regress
kconfig: add documentation
Thomas Huth (6):
ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig
ppc: Express dependencies of the 'prep' and '40p' machines with kconfig
ppc: Express dependencies of the Mac machines with kconfig
ppc: Express dependencies of the Sam460EX machines with kconfig
ppc: Express dependencies of the embedded machines with kconfig
s390x: express dependencies with Kconfig
Yang Zhong (6):
hw/display: make edid configurable
hw/pci/Makefile.objs: make pcie configurable
display: express dependencies with kconfig
hyperv: express dependencies with kconfig
virtio: express virtio dependencies with Kconfig
i386-softmmu.mak: remove all CONFIG_* except boards definitions
.travis.yml | 6 +
Kconfig.host | 36 ++
Makefile | 27 +-
Makefile.target | 7 +-
configure | 18 +-
default-configs/alpha-softmmu.mak | 26 +-
default-configs/arm-softmmu.mak | 18 +-
default-configs/cris-softmmu.mak | 6 +-
default-configs/hppa-softmmu.mak | 20 +-
default-configs/hyperv.mak | 2 -
default-configs/i386-softmmu.mak | 93 ++---
default-configs/lm32-softmmu.mak | 12 +-
default-configs/m68k-softmmu.mak | 4 +-
default-configs/microblaze-softmmu.mak | 12 +-
default-configs/mips-softmmu-common.mak | 10 +-
default-configs/mips64el-softmmu.mak | 2 +
default-configs/moxie-softmmu.mak | 7 +-
default-configs/nios2-softmmu.mak | 6 +-
default-configs/or1k-softmmu.mak | 5 +-
default-configs/pci.mak | 51 ---
default-configs/ppc-softmmu.mak | 60 ---
default-configs/ppc64-softmmu.mak | 13 -
default-configs/riscv32-softmmu.mak | 21 +-
default-configs/riscv64-softmmu.mak | 22 +-
default-configs/s390x-softmmu.mak | 23 +-
default-configs/sh4-softmmu.mak | 28 +-
default-configs/sh4eb-softmmu.mak | 22 +-
default-configs/sound.mak | 4 -
default-configs/sparc-softmmu.mak | 24 +-
default-configs/sparc64-softmmu.mak | 25 +-
default-configs/unicore32-softmmu.mak | 6 +-
default-configs/usb.mak | 11 -
default-configs/virtio.mak | 15 -
default-configs/xtensa-softmmu.mak | 8 +-
default-configs/xtensaeb-softmmu.mak | 7 +-
docs/devel/build-system.txt | 1 -
docs/devel/kconfig.rst | 305 ++++++++++++++
hw/9pfs/Kconfig | 4 +
hw/9pfs/Makefile.objs | 2 -
hw/Kconfig | 73 ++++
hw/Makefile.objs | 4 +-
hw/acpi/Kconfig | 29 ++
hw/adc/Kconfig | 2 +
hw/alpha/Kconfig | 12 +
hw/arm/Kconfig | 124 ++++++
hw/audio/Kconfig | 52 +++
hw/block/Kconfig | 39 ++
hw/block/Makefile.objs | 3 +-
hw/block/dataplane/Makefile.objs | 2 +-
hw/bt/Kconfig | 2 +
hw/char/Kconfig | 42 ++
hw/core/Kconfig | 11 +
hw/cpu/Kconfig | 8 +
hw/cris/Kconfig | 9 +
hw/display/Kconfig | 108 +++++
hw/display/Makefile.objs | 4 +-
hw/dma/Kconfig | 21 +
hw/gpio/Kconfig | 9 +
hw/hppa/Kconfig | 10 +
hw/hyperv/Kconfig | 8 +
hw/i2c/Kconfig | 27 ++
hw/i2c/Makefile.objs | 2 +-
hw/i386/Kconfig | 99 +++++
hw/i386/Makefile.objs | 5 +-
hw/ide/Kconfig | 54 +++
hw/input/Kconfig | 33 ++
hw/intc/Kconfig | 57 +++
hw/ipack/Kconfig | 4 +
hw/ipmi/Kconfig | 22 +
hw/isa/Kconfig | 53 +++
hw/lm32/Kconfig | 13 +
hw/m68k/Kconfig | 9 +
hw/mem/Kconfig | 11 +
hw/microblaze/Kconfig | 20 +
hw/mips/Kconfig | 21 +
hw/misc/Kconfig | 118 ++++++
hw/misc/macio/Kconfig | 11 +
hw/moxie/Kconfig | 3 +
hw/net/Kconfig | 125 ++++++
hw/nios2/Kconfig | 8 +
hw/nvram/Kconfig | 9 +
hw/openrisc/Kconfig | 5 +
hw/pci-bridge/Kconfig | 29 ++
hw/pci-host/Kconfig | 51 +++
hw/pci/Kconfig | 9 +
hw/pci/Makefile.objs | 9 +-
hw/pcmcia/Kconfig | 2 +
hw/ppc/Kconfig | 121 ++++++
hw/riscv/Kconfig | 33 ++
hw/s390x/Kconfig | 11 +
hw/s390x/Makefile.objs | 4 +-
hw/scsi/Kconfig | 54 +++
hw/scsi/Makefile.objs | 2 +-
hw/sd/Kconfig | 17 +
hw/sh4/Kconfig | 23 ++
hw/smbios/Kconfig | 2 +
hw/sparc/Kconfig | 26 ++
hw/sparc64/Kconfig | 19 +
hw/ssi/Kconfig | 18 +
hw/timer/Kconfig | 63 +++
hw/tpm/Kconfig | 23 ++
hw/tricore/Kconfig | 2 +
hw/unicore32/Kconfig | 5 +
hw/usb/Kconfig | 91 ++++
hw/usb/Makefile.objs | 2 +-
hw/vfio/Kconfig | 36 ++
hw/virtio/Kconfig | 31 ++
hw/virtio/Makefile.objs | 2 +
hw/watchdog/Kconfig | 16 +
hw/xtensa/Kconfig | 8 +
hw/xtensa/Makefile.objs | 2 +-
rules.mak | 2 +-
scripts/make_device_config.sh | 30 --
scripts/minikconf.py | 708 ++++++++++++++++++++++++++++++++
114 files changed, 3199 insertions(+), 502 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 docs/devel/kconfig.rst
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/alpha/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/cris/Kconfig
create mode 100644 hw/display/Kconfig
create mode 100644 hw/dma/Kconfig
create mode 100644 hw/gpio/Kconfig
create mode 100644 hw/hppa/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/moxie/Kconfig
create mode 100644 hw/net/Kconfig
create mode 100644 hw/nios2/Kconfig
create mode 100644 hw/nvram/Kconfig
create mode 100644 hw/openrisc/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/s390x/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/tricore/Kconfig
create mode 100644 hw/unicore32/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
--
1.8.3.1
^ permalink raw reply [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 01/54] block: fix recursion in hw/block/dataplane
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 02/54] 9pfs: remove unnecessary conditionals Paolo Bonzini
` (56 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
There are Xen files in hw/block/dataplane that should be compiled even if
virtio-blk is disabled.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/block/Makefile.objs | 3 ++-
hw/block/dataplane/Makefile.objs | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index e206b8e..f5f643f 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -12,5 +12,6 @@ common-obj-$(CONFIG_NVME_PCI) += nvme.o
obj-$(CONFIG_SH4) += tc58128.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-blk.o
-obj-$(CONFIG_VIRTIO_BLK) += dataplane/
obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk.o
+
+obj-y += dataplane/
diff --git a/hw/block/dataplane/Makefile.objs b/hw/block/dataplane/Makefile.objs
index c6c68db..0c52702 100644
--- a/hw/block/dataplane/Makefile.objs
+++ b/hw/block/dataplane/Makefile.objs
@@ -1,2 +1,2 @@
-obj-y += virtio-blk.o
+obj-$(CONFIG_VIRTIO_BLK) += virtio-blk.o
obj-$(CONFIG_XEN) += xen-block.o
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 02/54] 9pfs: remove unnecessary conditionals
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 01/54] block: fix recursion in hw/block/dataplane Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 03/54] xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA Paolo Bonzini
` (55 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
The VIRTIO_9P || VIRTFS && XEN condition can be computed in hw/Makefile.objs,
removing an "if" from hw/9pfs/Makefile.objs.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/9pfs/Makefile.objs | 2 --
hw/Makefile.objs | 2 +-
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/hw/9pfs/Makefile.objs b/hw/9pfs/Makefile.objs
index 8ac0496..70ded6f 100644
--- a/hw/9pfs/Makefile.objs
+++ b/hw/9pfs/Makefile.objs
@@ -1,11 +1,9 @@
-ifeq ($(call lor,$(CONFIG_VIRTIO_9P),$(CONFIG_XEN)),y)
common-obj-y = 9p.o 9p-util.o
common-obj-y += 9p-local.o 9p-xattr.o
common-obj-y += 9p-xattr-user.o 9p-posix-acl.o
common-obj-y += coth.o cofs.o codir.o cofile.o
common-obj-y += coxattr.o 9p-synth.o
common-obj-y += 9p-proxy.o
-endif
common-obj-$(CONFIG_XEN) += xen-9p-backend.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-device.o
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index e2fcd6a..2d9b42d 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -1,4 +1,4 @@
-devices-dirs-$(call land,$(CONFIG_VIRTFS),$(call lor,$(CONFIG_VIRTIO),$(CONFIG_XEN))) += 9pfs/
+devices-dirs-$(call lor,$(CONFIG_VIRTIO_9P),$(call land,$(CONFIG_VIRTFS),$(CONFIG_XEN))) += 9pfs/
devices-dirs-$(CONFIG_SOFTMMU) += acpi/
devices-dirs-$(CONFIG_SOFTMMU) += adc/
devices-dirs-$(CONFIG_SOFTMMU) += audio/
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 03/54] xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 01/54] block: fix recursion in hw/block/dataplane Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 02/54] 9pfs: remove unnecessary conditionals Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 04/54] minikconfig: add parser skeleton Paolo Bonzini
` (54 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Match the symbol name that is used e.g. in Linux (drivers/spi/Kconfig).
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/xtensa-softmmu.mak | 2 +-
default-configs/xtensaeb-softmmu.mak | 2 +-
hw/xtensa/Makefile.objs | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak
index baf90ca..7aa7fa6 100644
--- a/default-configs/xtensa-softmmu.mak
+++ b/default-configs/xtensa-softmmu.mak
@@ -5,4 +5,4 @@ CONFIG_OPENCORES_ETH=y
CONFIG_PFLASH_CFI01=y
CONFIG_XTENSA_SIM=y
-CONFIG_XTENSA_FPGA=y
+CONFIG_XTENSA_XTFPGA=y
diff --git a/default-configs/xtensaeb-softmmu.mak b/default-configs/xtensaeb-softmmu.mak
index baf90ca..7aa7fa6 100644
--- a/default-configs/xtensaeb-softmmu.mak
+++ b/default-configs/xtensaeb-softmmu.mak
@@ -5,4 +5,4 @@ CONFIG_OPENCORES_ETH=y
CONFIG_PFLASH_CFI01=y
CONFIG_XTENSA_SIM=y
-CONFIG_XTENSA_FPGA=y
+CONFIG_XTENSA_XTFPGA=y
diff --git a/hw/xtensa/Makefile.objs b/hw/xtensa/Makefile.objs
index fa86730..0bbfccd 100644
--- a/hw/xtensa/Makefile.objs
+++ b/hw/xtensa/Makefile.objs
@@ -2,4 +2,4 @@ obj-y += mx_pic.o
obj-y += pic_cpu.o
obj-y += xtensa_memory.o
obj-$(CONFIG_XTENSA_SIM) += sim.o
-obj-$(CONFIG_XTENSA_FPGA) += xtfpga.o
+obj-$(CONFIG_XTENSA_XTFPGA) += xtfpga.o
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 04/54] minikconfig: add parser skeleton
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (2 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 03/54] xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 05/54] minikconfig: add AST Paolo Bonzini
` (53 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-23-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/minikconf.py | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 441 insertions(+)
create mode 100644 scripts/minikconf.py
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
new file mode 100644
index 0000000..fd75d96
--- /dev/null
+++ b/scripts/minikconf.py
@@ -0,0 +1,441 @@
+#
+# 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.
+
+from __future__ import print_function
+import os
+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
+# 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), file=sys.stderr)
+ 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
+
+ def do_imply(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_IMPLY = 9; TOKENS[TOK_IMPLY] = '"imply"';
+TOK_CONFIG = 10; TOKENS[TOK_CONFIG] = '"config"';
+TOK_DEFAULT = 11; TOKENS[TOK_DEFAULT] = '"default"';
+TOK_Y = 12; TOKENS[TOK_Y] = '"y"';
+TOK_N = 13; TOKENS[TOK_N] = '"n"';
+TOK_SOURCE = 14; TOKENS[TOK_SOURCE] = '"source"';
+TOK_BOOL = 15; TOKENS[TOK_BOOL] = '"bool"';
+TOK_IF = 16; TOKENS[TOK_IF] = '"if"';
+TOK_ID = 17; TOKENS[TOK_ID] = 'identifier';
+TOK_EOF = 18; 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:
+ location = TOKENS.get(tok, None) or ('"%s"' % tok)
+ msg = '%s before %s' % (msg, location)
+ 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 as 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_IMPLY:
+ self.get_token()
+ symbol = self.parse_var()
+ cond = self.parse_condition()
+ self.data.do_imply(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 or \
+ self.tok == TOK_IMPLY:
+ 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", "imply" 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 == 'i' and self.check_keyword("mply"):
+ return TOK_IMPLY
+ 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, 'invalid input')
+
+ return None
+
+if __name__ == '__main__':
+ fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test'
+ KconfigParser.parse(open(fname, 'r'))
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 05/54] minikconfig: add AST
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (3 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 04/54] minikconfig: add parser skeleton Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 06/54] minikconfig: add semantic analysis Paolo Bonzini
` (52 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-24-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/minikconf.py | 121 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 102 insertions(+), 19 deletions(-)
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index fd75d96..f0cc3b9 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -31,11 +31,84 @@ def debug_print(*args):
# -------------------------------------------
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 -------------
@@ -53,29 +126,34 @@ 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))
def do_imply(self, var, symbol, cond=None):
- pass
+ # "config X imply Y [if COND]" is the same as
+ # "config Y default y if X [&& COND]"
+ cond = (cond & var) if cond is not None else var
+ self.do_default(symbol, True, cond)
# -------------------------------------------
# KconfigParser implements a recursive descent parser for (simplified)
@@ -237,31 +315,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
@@ -438,4 +519,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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 06/54] minikconfig: add semantic analysis
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (4 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 05/54] minikconfig: add AST Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 07/54] hw/display: make edid configurable Paolo Bonzini
` (51 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-25-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/minikconf.py | 144 +++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 135 insertions(+), 9 deletions(-)
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index f0cc3b9..d89fb09 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -14,7 +14,8 @@ from __future__ import print_function
import os
import sys
-__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ]
+__all__ = [ 'KconfigDataError', 'KconfigParserError',
+ 'KconfigData', 'KconfigParser' ]
def debug_print(*args):
#print('# ' + (' '.join(str(x) for x in args)))
@@ -30,6 +31,13 @@ def debug_print(*args):
# just its name).
# -------------------------------------------
+class KconfigDataError(Exception):
+ def __init__(self, msg):
+ self.msg = msg
+
+ def __str__(self):
+ return self.msg
+
class KconfigData:
class Expr:
def __and__(self, rhs):
@@ -39,6 +47,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
@@ -46,6 +60,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
@@ -53,35 +73,85 @@ 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()
+ self.clauses_for_var = list()
def __str__(self):
return self.name
+ def has_value(self):
+ return not (self.value is None)
+ def set_value(self, val, clause):
+ self.clauses_for_var.append(clause)
+ if self.has_value() and self.value != val:
+ print("The following clauses were found for " + self.name)
+ for i in self.clauses_for_var:
+ print(" " + str(i), file=sys.stderr)
+ raise KconfigDataError('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 KconfigDataError('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):
KconfigData.Clause.__init__(self, dest)
self.value = value
def __str__(self):
- return "%s=%s" % (self.dest, 'y' if self.value else 'n')
+ return "CONFIG_%s=%s" % (self.dest, 'y' if self.value else 'n')
+
+ def process(self):
+ self.dest.set_value(self.value, self)
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:
@@ -89,20 +159,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, self)
+
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, self)
+
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, self)
+
def __init__(self):
self.previously_included = []
self.incl_info = None
@@ -120,11 +208,54 @@ class KconfigData:
undef = True
return undef
+ def compute_config(self):
+ if self.check_undefined():
+ raise KconfigDataError("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, v in self.referenced_vars.items():
+ self.do_default(v, False)
+ 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, v in self.referenced_vars.items():
+ debug_print("Evaluating", name)
+ values[name] = v.evaluate()
+
+ return values
+
# semantic actions -------------
def do_declaration(self, var):
if (var in self.defined_vars):
- raise Exception('variable "' + var + '" defined twice')
+ raise KconfigDataError('variable "' + var + '" defined twice')
self.defined_vars.add(var.name)
@@ -201,9 +332,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):
@@ -392,7 +520,6 @@ class KconfigParser:
self.tok == TOK_SELECT or self.tok == TOK_BOOL or \
self.tok == TOK_IMPLY:
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 \
@@ -520,5 +647,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()
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 07/54] hw/display: make edid configurable
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (5 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 06/54] minikconfig: add semantic analysis Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 08/54] kconfig: introduce kconfig files Paolo Bonzini
` (50 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Yang Zhong <yang.zhong@intel.com>
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>
Message-Id: <20190123065618.3520-26-yang.zhong@intel.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/pci.mak | 1 +
default-configs/virtio.mak | 1 +
hw/display/Makefile.objs | 4 +---
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index 037636f..0552190 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -49,3 +49,4 @@ CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM)
CONFIG_ROCKER=y
CONFIG_VFIO=$(CONFIG_LINUX)
CONFIG_VFIO_PCI=y
+CONFIG_EDID=y
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index b653aa0..3abf68a 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -6,6 +6,7 @@ CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CRYPTO=y
CONFIG_VIRTIO_GPU=y
+CONFIG_EDID=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_RNG=y
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 7c4ae9a..576fca4 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 08/54] kconfig: introduce kconfig files
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (6 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 07/54] hw/display: make edid configurable Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 09/54] build: switch to Kconfig Paolo Bonzini
` (49 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-27-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Kconfig.host | 32 ++++++++++++++
hw/9pfs/Kconfig | 2 +
hw/Kconfig | 68 +++++++++++++++++++++++++++++
hw/acpi/Kconfig | 20 +++++++++
hw/adc/Kconfig | 2 +
hw/alpha/Kconfig | 2 +
hw/arm/Kconfig | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++
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/cris/Kconfig | 5 +++
hw/display/Kconfig | 77 ++++++++++++++++++++++++++++++++
hw/dma/Kconfig | 20 +++++++++
hw/gpio/Kconfig | 8 ++++
hw/hppa/Kconfig | 2 +
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 | 94 +++++++++++++++++++++++++++++++++++++++
hw/misc/macio/Kconfig | 11 +++++
hw/moxie/Kconfig | 2 +
hw/net/Kconfig | 92 ++++++++++++++++++++++++++++++++++++++
hw/nios2/Kconfig | 5 +++
hw/nvram/Kconfig | 8 ++++
hw/openrisc/Kconfig | 2 +
hw/pci-bridge/Kconfig | 20 +++++++++
hw/pci-host/Kconfig | 35 +++++++++++++++
hw/pci/Kconfig | 2 +
hw/pcmcia/Kconfig | 2 +
hw/ppc/Kconfig | 44 +++++++++++++++++++
hw/riscv/Kconfig | 20 +++++++++
hw/s390x/Kconfig | 2 +
hw/scsi/Kconfig | 26 +++++++++++
hw/sd/Kconfig | 11 +++++
hw/sh4/Kconfig | 11 +++++
hw/smbios/Kconfig | 2 +
hw/sparc/Kconfig | 11 +++++
hw/sparc64/Kconfig | 5 +++
hw/ssi/Kconfig | 14 ++++++
hw/timer/Kconfig | 53 ++++++++++++++++++++++
hw/tpm/Kconfig | 11 +++++
hw/tricore/Kconfig | 2 +
hw/unicore32/Kconfig | 2 +
hw/usb/Kconfig | 53 ++++++++++++++++++++++
hw/vfio/Kconfig | 20 +++++++++
hw/virtio/Kconfig | 17 ++++++++
hw/watchdog/Kconfig | 11 +++++
hw/xtensa/Kconfig | 5 +++
scripts/minikconf.py | 35 +++++++++++++--
63 files changed, 1340 insertions(+), 3 deletions(-)
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/alpha/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/cris/Kconfig
create mode 100644 hw/display/Kconfig
create mode 100644 hw/dma/Kconfig
create mode 100644 hw/gpio/Kconfig
create mode 100644 hw/hppa/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/moxie/Kconfig
create mode 100644 hw/net/Kconfig
create mode 100644 hw/nios2/Kconfig
create mode 100644 hw/nvram/Kconfig
create mode 100644 hw/openrisc/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/s390x/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/tricore/Kconfig
create mode 100644 hw/unicore32/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 0000000..1147e42
--- /dev/null
+++ b/Kconfig.host
@@ -0,0 +1,32 @@
+# These are "proxy" symbols used to pass config-host.mak values
+# down to Kconfig.
+
+config KVM
+ bool
+
+config IVHSMEM
+ bool
+
+config LINUX
+ bool
+
+config OPENGL
+ bool
+
+config SPICE
+ bool
+
+config IVSHMEM
+ bool
+
+config TPM
+ bool
+
+config VHOST_USER
+ bool
+
+config XEN
+ bool
+
+config VIRTFS
+ bool
diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
new file mode 100644
index 0000000..a475099
--- /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 0000000..c4f1547
--- /dev/null
+++ b/hw/Kconfig
@@ -0,0 +1,68 @@
+# devices Kconfig
+source 9pfs/Kconfig
+source acpi/Kconfig
+source adc/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 hyperv/Kconfig
+source i2c/Kconfig
+source ide/Kconfig
+source input/Kconfig
+source intc/Kconfig
+source ipack/Kconfig
+source ipmi/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 pcmcia/Kconfig
+source pci/Kconfig
+source scsi/Kconfig
+source sd/Kconfig
+source smbios/Kconfig
+source ssi/Kconfig
+source timer/Kconfig
+source tpm/Kconfig
+source usb/Kconfig
+source virtio/Kconfig
+source vfio/Kconfig
+source watchdog/Kconfig
+
+# arch Kconfig
+source arm/Kconfig
+source alpha/Kconfig
+source cris/Kconfig
+source hppa/Kconfig
+source i386/Kconfig
+source lm32/Kconfig
+source m68k/Kconfig
+source microblaze/Kconfig
+source mips/Kconfig
+source moxie/Kconfig
+source nios2/Kconfig
+source openrisc/Kconfig
+source ppc/Kconfig
+source riscv/Kconfig
+source s390x/Kconfig
+source sh4/Kconfig
+source sparc/Kconfig
+source sparc64/Kconfig
+source tricore/Kconfig
+source unicore32/Kconfig
+source xtensa/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 0000000..c485a34
--- /dev/null
+++ b/hw/acpi/Kconfig
@@ -0,0 +1,20 @@
+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
diff --git a/hw/adc/Kconfig b/hw/adc/Kconfig
new file mode 100644
index 0000000..25d2229
--- /dev/null
+++ b/hw/adc/Kconfig
@@ -0,0 +1,2 @@
+config STM32F2XX_ADC
+ bool
diff --git a/hw/alpha/Kconfig b/hw/alpha/Kconfig
new file mode 100644
index 0000000..c5d0438
--- /dev/null
+++ b/hw/alpha/Kconfig
@@ -0,0 +1,2 @@
+config DP264
+ bool
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
new file mode 100644
index 0000000..e4386ce
--- /dev/null
+++ b/hw/arm/Kconfig
@@ -0,0 +1,119 @@
+config ARM_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 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 FSL_IMX7
+ bool
+
+config ARM_SMMUV3
+ bool
+
+config FSL_IMX6UL
+ bool
+
+config NRF51_SOC
+ bool
+
+config MSF2
+ bool
+
+config ZAURUS
+ bool
+
+config A9MPCORE
+ bool
+
+config A15MPCORE
+ bool
+
+config ARM11MPCORE
+ bool
+
+config ARMSSE
+ bool
+
+config ARMSSE_CPUID
+ bool
+
+config ARMSSE_MHU
+ bool
+
+config MUSCA
+ bool
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
new file mode 100644
index 0000000..207baee
--- /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 0000000..9d418bc
--- /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 0000000..554a9ee
--- /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 0000000..26c1324
--- /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 0000000..c2a1ae8
--- /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 0000000..1767d02
--- /dev/null
+++ b/hw/cpu/Kconfig
@@ -0,0 +1,8 @@
+config ARM11MPCORE
+ bool
+
+config A9MPCORE
+ bool
+
+config A15MPCORE
+ bool
diff --git a/hw/cris/Kconfig b/hw/cris/Kconfig
new file mode 100644
index 0000000..86954ab
--- /dev/null
+++ b/hw/cris/Kconfig
@@ -0,0 +1,5 @@
+config AXIS
+ bool
+
+config ETRAXFS
+ bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
new file mode 100644
index 0000000..d5c022c
--- /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 0000000..b9ce1c5
--- /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 0000000..d0a4abf
--- /dev/null
+++ b/hw/gpio/Kconfig
@@ -0,0 +1,8 @@
+config MAX7310
+ bool
+
+config PL061
+ bool
+
+config GPIO_KEY
+ bool
diff --git a/hw/hppa/Kconfig b/hw/hppa/Kconfig
new file mode 100644
index 0000000..5ce48ef
--- /dev/null
+++ b/hw/hppa/Kconfig
@@ -0,0 +1,2 @@
+config DINO
+ bool
diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig
new file mode 100644
index 0000000..be724b7
--- /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 0000000..d6d4402
--- /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 0000000..c851e2b
--- /dev/null
+++ b/hw/i386/Kconfig
@@ -0,0 +1,23 @@
+config SEV
+ 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 0000000..5ec4495
--- /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 0000000..91bae47
--- /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 0000000..69adbd1
--- /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 0000000..481e0d2
--- /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 0000000..68f8ba1
--- /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 0000000..b59d074
--- /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 0000000..84c530e
--- /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 0000000..cd66ada
--- /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 0000000..a3a4372
--- /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 0000000..44683b2
--- /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 0000000..348c9bf
--- /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 0000000..d512634
--- /dev/null
+++ b/hw/misc/Kconfig
@@ -0,0 +1,94 @@
+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
+
+source macio/Kconfig
diff --git a/hw/misc/macio/Kconfig b/hw/misc/macio/Kconfig
new file mode 100644
index 0000000..c6caeb6
--- /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/moxie/Kconfig b/hw/moxie/Kconfig
new file mode 100644
index 0000000..03f62e3
--- /dev/null
+++ b/hw/moxie/Kconfig
@@ -0,0 +1,2 @@
+config MOXIESIM
+ bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
new file mode 100644
index 0000000..ad56fc0
--- /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_EXPRESS
+ 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 0000000..22817e4
--- /dev/null
+++ b/hw/nios2/Kconfig
@@ -0,0 +1,5 @@
+config NIOS2_10M50
+ bool
+
+config NIOS2
+ bool
diff --git a/hw/nvram/Kconfig b/hw/nvram/Kconfig
new file mode 100644
index 0000000..1f5ec95
--- /dev/null
+++ b/hw/nvram/Kconfig
@@ -0,0 +1,8 @@
+config DS1225Y
+ bool
+
+config AT24C
+ bool
+
+config MAC_NVRAM
+ bool
diff --git a/hw/openrisc/Kconfig b/hw/openrisc/Kconfig
new file mode 100644
index 0000000..7aef98d
--- /dev/null
+++ b/hw/openrisc/Kconfig
@@ -0,0 +1,2 @@
+config OR1K_SIM
+ bool
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
new file mode 100644
index 0000000..bb19b7a
--- /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 0000000..2edc5bb
--- /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_EXPRESS_Q35
+ bool
+
+config PCI_EXPRESS_GENERIC_BRIDGE
+ bool
+
+config PCI_EXPRESS_XILINX
+ bool
+
+config PCI_EXPRESS_DESIGNWARE
+ bool
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
new file mode 100644
index 0000000..d3d2205
--- /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 0000000..41f2df9
--- /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 0000000..6087454
--- /dev/null
+++ b/hw/ppc/Kconfig
@@ -0,0 +1,44 @@
+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
+
+config XIVE
+ bool
+
+config XIVE_SPAPR
+ bool
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
new file mode 100644
index 0000000..4989589
--- /dev/null
+++ b/hw/riscv/Kconfig
@@ -0,0 +1,20 @@
+config HTIF
+ bool
+
+config HART
+ bool
+
+config SIFIVE
+ bool
+
+config SIFIVE_E
+ bool
+
+config SIFIVE_U
+ bool
+
+config SPIKE
+ bool
+
+config RISCV_VIRT
+ bool
diff --git a/hw/s390x/Kconfig b/hw/s390x/Kconfig
new file mode 100644
index 0000000..303db7f
--- /dev/null
+++ b/hw/s390x/Kconfig
@@ -0,0 +1,2 @@
+config S390_CCW_VIRTIO
+ bool
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
new file mode 100644
index 0000000..eb78478
--- /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 0000000..4f43bbb
--- /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 0000000..417a72f
--- /dev/null
+++ b/hw/sh4/Kconfig
@@ -0,0 +1,11 @@
+config R2D
+ bool
+
+config SHIX
+ bool
+
+config SH7750
+ bool
+
+config SH4
+ bool
diff --git a/hw/smbios/Kconfig b/hw/smbios/Kconfig
new file mode 100644
index 0000000..553adf4
--- /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 0000000..3795754
--- /dev/null
+++ b/hw/sparc/Kconfig
@@ -0,0 +1,11 @@
+config SUN4M
+ bool
+
+config LEON3
+ bool
+
+config GRLIB
+ bool
+
+config SLAVIO
+ bool
diff --git a/hw/sparc64/Kconfig b/hw/sparc64/Kconfig
new file mode 100644
index 0000000..8c13345
--- /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 0000000..5a03110
--- /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 0000000..7dbc121
--- /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 0000000..00511e2
--- /dev/null
+++ b/hw/tpm/Kconfig
@@ -0,0 +1,11 @@
+config TPM_TIS
+ bool
+
+config TPM_CRB
+ bool
+
+config TPM_PASSTHROUGH
+ bool
+
+config TPM_EMULATOR
+ bool
diff --git a/hw/tricore/Kconfig b/hw/tricore/Kconfig
new file mode 100644
index 0000000..9313409
--- /dev/null
+++ b/hw/tricore/Kconfig
@@ -0,0 +1,2 @@
+config TRICORE
+ bool
diff --git a/hw/unicore32/Kconfig b/hw/unicore32/Kconfig
new file mode 100644
index 0000000..b3cf294
--- /dev/null
+++ b/hw/unicore32/Kconfig
@@ -0,0 +1,2 @@
+config PUV3
+ bool
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
new file mode 100644
index 0000000..cbf5c5d
--- /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 0000000..3606967
--- /dev/null
+++ b/hw/vfio/Kconfig
@@ -0,0 +1,20 @@
+config VFIO
+ bool
+
+config VFIO_PCI
+ bool
+
+config VFIO_CCW
+ bool
+
+config VFIO_PLATFORM
+ 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 0000000..ebf1812
--- /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 0000000..cd0244f
--- /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 0000000..97543a9
--- /dev/null
+++ b/hw/xtensa/Kconfig
@@ -0,0 +1,5 @@
+config XTENSA_SIM
+ bool
+
+config XTENSA_FPGA
+ bool
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index d89fb09..6bedc57 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -13,6 +13,7 @@
from __future__ import print_function
import os
import sys
+import re
__all__ = [ 'KconfigDataError', 'KconfigParserError',
'KconfigData', 'KconfigParser' ]
@@ -350,6 +351,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):
@@ -645,6 +652,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 ("%s: at least one argument is required" % argv[0], file=sys.stderr)
+ sys.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, ('y' if config[key] else 'n')))
+
+ deps = open(argv[2], 'w')
+ for fname in data.previously_included:
+ print ('%s: %s' % (argv[1], fname), file=deps)
+ deps.close()
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 09/54] build: switch to Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (7 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 08/54] kconfig: introduce kconfig files Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 10/54] minikconfig: implement allnoconfig and defconfig modes Paolo Bonzini
` (48 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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; this part must be done already in this patch
for bisectability.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-28-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Kconfig.host | 6 +++++-
Makefile | 26 +++++++++++++++++++++-----
Makefile.target | 7 ++++++-
configure | 6 ++++++
default-configs/arm-softmmu.mak | 3 ---
default-configs/hyperv.mak | 1 -
default-configs/i386-softmmu.mak | 5 +----
default-configs/lm32-softmmu.mak | 1 -
default-configs/pci.mak | 2 --
default-configs/ppc-softmmu.mak | 1 -
default-configs/ppc64-softmmu.mak | 5 -----
default-configs/s390x-softmmu.mak | 4 +---
default-configs/virtio.mak | 4 ----
hw/9pfs/Kconfig | 2 ++
hw/arm/Kconfig | 1 +
hw/block/Kconfig | 3 +++
hw/display/Kconfig | 3 +++
hw/hyperv/Kconfig | 1 +
hw/i386/Kconfig | 8 ++++++++
hw/input/Kconfig | 5 +++++
hw/intc/Kconfig | 12 ++++++++++++
hw/misc/Kconfig | 2 ++
hw/ppc/Kconfig | 5 +++++
hw/scsi/Kconfig | 8 ++++++++
hw/tpm/Kconfig | 1 +
hw/vfio/Kconfig | 9 +++++++++
hw/xtensa/Kconfig | 2 +-
rules.mak | 2 +-
scripts/make_device_config.sh | 30 ------------------------------
29 files changed, 102 insertions(+), 63 deletions(-)
delete mode 100644 scripts/make_device_config.sh
diff --git a/Kconfig.host b/Kconfig.host
index 1147e42..f96c77d 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
@@ -13,6 +14,9 @@ config LINUX
config OPENGL
bool
+config X11
+ bool
+
config SPICE
bool
diff --git a/Makefile b/Makefile
index 2208bde..0c9cc3e 100644
--- a/Makefile
+++ b/Makefile
@@ -313,8 +313,8 @@ DOCS=
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_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(filter %-softmmu, $(TARGET_DIRS)))
+SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %.d, $(SUBDIR_DEVICES_MAK))
ifeq ($(SUBDIR_DEVICES_MAK),)
config-all-devices.mak:
@@ -329,9 +329,25 @@ endif
-include $(SUBDIR_DEVICES_MAK_DEP)
-%/config-devices.mak: default-configs/%.mak $(SRC_PATH)/scripts/make_device_config.sh
- $(call quiet-command, \
- $(SHELL) $(SRC_PATH)/scripts/make_device_config.sh $< $*-config-devices.mak.d $@ > $@.tmp,"GEN","$@.tmp")
+# This has to be kept in sync with Kconfig.host.
+MINIKCONF_ARGS = \
+ $@ $*-config.devices.mak.d $< $(MINIKCONF_INPUTS) \
+ CONFIG_KVM=$(CONFIG_KVM) \
+ CONFIG_SPICE=$(CONFIG_SPICE) \
+ CONFIG_IVSHMEM=$(CONFIG_IVSHMEM) \
+ CONFIG_TPM=$(CONFIG_TPM) \
+ CONFIG_XEN=$(CONFIG_XEN) \
+ CONFIG_OPENGL=$(CONFIG_OPENGL) \
+ CONFIG_X11=$(CONFIG_X11) \
+ CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \
+ CONFIG_VIRTFS=$(CONFIG_VIRTFS) \
+ CONFIG_LINUX=$(CONFIG_LINUX)
+
+MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig
+MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py \
+
+$(SUBDIR_DEVICES_MAK): %/config-devices.mak: default-configs/%.mak $(MINIKCONF_INPUTS) $(BUILD_DIR)/config-host.mak
+ $(call quiet-command, $(MINIKCONF) $(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 3b79e70..ec72733 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
@@ -201,7 +204,9 @@ all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
all-obj-$(CONFIG_SOFTMMU) += $(slirp-obj-y)
+ifdef CONFIG_SOFTMMU
$(QEMU_PROG_BUILD): config-devices.mak
+endif
COMMON_LDADDS = ../libqemuutil.a
diff --git a/configure b/configure
index cefeb8f..3cc6a94 100755
--- a/configure
+++ b/configure
@@ -7427,12 +7427,18 @@ fi
if supported_xen_target $target; then
echo "CONFIG_XEN=y" >> $config_target_mak
+ echo "$target/config-devices.mak: CONFIG_XEN=y" >> $config_host_mak
if test "$xen_pci_passthrough" = yes; then
echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak"
fi
+else
+ echo "$target/config-devices.mak: CONFIG_XEN=n" >> $config_host_mak
fi
if supported_kvm_target $target; then
echo "CONFIG_KVM=y" >> $config_target_mak
+ echo "$target/config-devices.mak: CONFIG_KVM=y" >> $config_host_mak
+else
+ echo "$target/config-devices.mak: CONFIG_KVM=n" >> $config_host_mak
fi
if supported_hax_target $target; then
echo "CONFIG_HAX=y" >> $config_target_mak
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index bd6943b..797bfa5 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -51,7 +51,6 @@ CONFIG_ARM_V7M=y
CONFIG_NETDUINO2=y
CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_KVM=$(CONFIG_KVM)
CONFIG_ARM_TIMER=y
CONFIG_ARM_MPTIMER=y
CONFIG_A9_GTIMER=y
@@ -126,8 +125,6 @@ CONFIG_VERSATILE_PCI=y
CONFIG_VERSATILE_I2C=y
CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
-CONFIG_VFIO=$(CONFIG_LINUX)
-CONFIG_VFIO_PLATFORM=y
CONFIG_VFIO_XGMAC=y
CONFIG_VFIO_AMD_XGBE=y
diff --git a/default-configs/hyperv.mak b/default-configs/hyperv.mak
index 5d0d9fd..bc38061 100644
--- a/default-configs/hyperv.mak
+++ b/default-configs/hyperv.mak
@@ -1,2 +1 @@
-CONFIG_HYPERV=$(CONFIG_KVM)
CONFIG_HYPERV_TESTDEV=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 15b6287..412c8c5 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
@@ -66,9 +63,9 @@ CONFIG_ACPI_SMBUS=y
CONFIG_SMBUS_EEPROM=y
CONFIG_FW_CFG_DMA=y
CONFIG_I2C=y
-CONFIG_SEV=$(CONFIG_KVM)
CONFIG_VTD=y
CONFIG_AMD_IOMMU=y
CONFIG_PAM=y
+CONFIG_PC=y
CONFIG_I440FX=y
CONFIG_Q35=y
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index 4049b23..ef0f4ba 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -2,7 +2,6 @@
CONFIG_LM32=y
CONFIG_MILKYMIST=y
-CONFIG_MILKYMIST_TMU2=$(call land,$(CONFIG_X11),$(CONFIG_OPENGL))
CONFIG_FRAMEBUFFER=y
CONFIG_PTIMER=y
CONFIG_PFLASH_CFI01=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index 0552190..ac01909 100644
--- a/default-configs/pci.mak
+++ b/default-configs/pci.mak
@@ -45,8 +45,6 @@ CONFIG_EDU=y
CONFIG_VGA=y
CONFIG_VGA_PCI=y
CONFIG_BOCHS_DISPLAY=y
-CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM)
CONFIG_ROCKER=y
-CONFIG_VFIO=$(CONFIG_LINUX)
CONFIG_VFIO_PCI=y
CONFIG_EDID=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 52acb7c..90118cb 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -18,7 +18,6 @@ CONFIG_I8259=y
CONFIG_XILINX=y
CONFIG_XILINX_ETHLITE=y
CONFIG_E500=y
-CONFIG_OPENPIC_KVM=$(call land,$(CONFIG_E500),$(CONFIG_KVM))
CONFIG_PLATFORM_BUS=y
CONFIG_ETSEC=y
CONFIG_PPC405=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 7f34ad0..a0a9151 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -13,11 +13,6 @@ CONFIG_ISA_IPMI_BT=y
# For pSeries
CONFIG_PSERIES=y
CONFIG_VIRTIO_VGA=y
-CONFIG_XICS=$(CONFIG_PSERIES)
-CONFIG_XICS_SPAPR=$(CONFIG_PSERIES)
-CONFIG_XICS_KVM=$(call land,$(CONFIG_PSERIES),$(CONFIG_KVM))
-CONFIG_XIVE=$(CONFIG_PSERIES)
-CONFIG_XIVE_SPAPR=$(CONFIG_PSERIES)
CONFIG_MEM_DEVICE=y
CONFIG_DIMM=y
CONFIG_SPAPR_RNG=y
diff --git a/default-configs/s390x-softmmu.mak b/default-configs/s390x-softmmu.mak
index 6f2c6ce..2794ffb 100644
--- a/default-configs/s390x-softmmu.mak
+++ b/default-configs/s390x-softmmu.mak
@@ -1,12 +1,10 @@
CONFIG_PCI=y
-CONFIG_VIRTIO_PCI=$(CONFIG_PCI)
+CONFIG_VIRTIO_PCI=y
include virtio.mak
CONFIG_SCLPCONSOLE=y
CONFIG_TERMINAL3270=y
CONFIG_S390_FLIC=y
-CONFIG_S390_FLIC_KVM=$(CONFIG_KVM)
CONFIG_WDT_DIAG288=y
CONFIG_S390_CCW_VIRTIO=y
-CONFIG_VFIO=$(CONFIG_LINUX)
CONFIG_VFIO_CCW=y
CONFIG_VFIO_AP=y
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 3abf68a..5a2930c 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -1,7 +1,4 @@
-CONFIG_VHOST_USER_SCSI=$(CONFIG_VHOST_USER)
-CONFIG_VHOST_USER_BLK=$(CONFIG_VHOST_USER)
CONFIG_VIRTIO=y
-CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CRYPTO=y
@@ -13,4 +10,3 @@ CONFIG_VIRTIO_RNG=y
CONFIG_SCSI=y
CONFIG_VIRTIO_SCSI=y
CONFIG_VIRTIO_SERIAL=y
-CONFIG_VIRTIO_INPUT_HOST=$(CONFIG_LINUX)
diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig
index a475099..8c5032c 100644
--- a/hw/9pfs/Kconfig
+++ b/hw/9pfs/Kconfig
@@ -1,2 +1,4 @@
config VIRTIO_9P
bool
+ default y
+ depends on VIRTFS && VIRTIO
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index e4386ce..9eab67b 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -1,5 +1,6 @@
config ARM_VIRT
bool
+ imply VFIO_PLATFORM
config DIGIC
bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 9d418bc..4a64d83 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -27,3 +27,6 @@ config VIRTIO_BLK
config VHOST_USER_BLK
bool
+ # Only PCI devices are provided for now
+ default y if VIRTIO_PCI
+ depends on VHOST_USER && LINUX && VIRTIO
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index d5c022c..1149ea2 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -51,6 +51,8 @@ config FRAMEBUFFER
config MILKYMIST_TMU2
bool
+ default y
+ depends on OPENGL && X11
config SM501
bool
@@ -66,6 +68,7 @@ config VGA
config QXL
bool
+ depends on SPICE && PCI
config VIRTIO_GPU
bool
diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig
index be724b7..632c3a6 100644
--- a/hw/hyperv/Kconfig
+++ b/hw/hyperv/Kconfig
@@ -1,5 +1,6 @@
config HYPERV
bool
+ depends on KVM
config HYPERV_TESTDEV
bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index c851e2b..93f8609 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -1,5 +1,13 @@
config SEV
bool
+ depends on KVM
+
+config PC
+ bool
+ imply HYPERV
+ imply QXL
+ imply SEV
+ imply TPM_TIS
config I440FX
bool
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
index 91bae47..c729dcd 100644
--- a/hw/input/Kconfig
+++ b/hw/input/Kconfig
@@ -19,5 +19,10 @@ config TSC2005
config VIRTIO_INPUT
bool
+config VIRTIO_INPUT_HOST
+ bool
+ default y
+ depends on LINUX
+
config TSC210X
bool
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
index 69adbd1..6eea14e 100644
--- a/hw/intc/Kconfig
+++ b/hw/intc/Kconfig
@@ -21,18 +21,28 @@ 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
+ default y
+ depends on PSERIES
config XICS_SPAPR
bool
+ default y
+ depends on PSERIES
config XICS_KVM
bool
+ default y
+ depends on XICS && KVM
config ALLWINNER_A10_PIC
bool
@@ -42,6 +52,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 d512634..fc068ef 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -48,6 +48,8 @@ config MACIO
config IVSHMEM_DEVICE
bool
+ default y
+ depends on PCI && LINUX && IVSHMEM
config ECCMEMCTL
bool
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 6087454..1d5d72f 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -1,5 +1,6 @@
config PSERIES
bool
+ select VFIO if LINUX
config SPAPR_RNG
bool
@@ -39,6 +40,10 @@ config VIRTEX
config XIVE
bool
+ default y
+ depends on PSERIES
config XIVE_SPAPR
bool
+ default y
+ depends on PSERIES
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index eb78478..982537b 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -19,8 +19,16 @@ config ESP
config ESP_PCI
bool
+config SPAPR_VSCSI
+ bool
+ default y
+ depends on PSERIES
+
config VIRTIO_SCSI
bool
config VHOST_USER_SCSI
bool
+ # Only PCI devices are provided for now
+ default y if VIRTIO_PCI
+ depends on VHOST_USER && LINUX && VIRTIO
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index 00511e2..10a30f8 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -1,5 +1,6 @@
config TPM_TIS
bool
+ depends on TPM
config TPM_CRB
bool
diff --git a/hw/vfio/Kconfig b/hw/vfio/Kconfig
index 3606967..0fdff10 100644
--- a/hw/vfio/Kconfig
+++ b/hw/vfio/Kconfig
@@ -1,14 +1,21 @@
config VFIO
bool
+ depends on LINUX
config VFIO_PCI
bool
+ select VFIO
+ depends on LINUX
config VFIO_CCW
bool
+ select VFIO
+ depends on LINUX
config VFIO_PLATFORM
bool
+ select VFIO
+ depends on LINUX
config VFIO_XGMAC
bool
@@ -18,3 +25,5 @@ config VFIO_AMD_XGBE
config VFIO_AP
bool
+ select VFIO
+ depends on LINUX
diff --git a/hw/xtensa/Kconfig b/hw/xtensa/Kconfig
index 97543a9..dc8eaf6 100644
--- a/hw/xtensa/Kconfig
+++ b/hw/xtensa/Kconfig
@@ -1,5 +1,5 @@
config XTENSA_SIM
bool
-config XTENSA_FPGA
+config XTENSA_XTFPGA
bool
diff --git a/rules.mak b/rules.mak
index 86e033d..62cf02e 100644
--- a/rules.mak
+++ b/rules.mak
@@ -144,7 +144,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 354af31..0000000
--- 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 10/54] minikconfig: implement allnoconfig and defconfig modes
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (8 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 09/54] build: switch to Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 11/54] kconfig: introduce CONFIG_TEST_DEVICES Paolo Bonzini
` (47 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Apart from defconfig (which is a no-op),
allyesconfig/allnoconfig/randcondfig can be implemented simply by ignoring
the RHS of assignments and "default" statements. The RHS is replaced
respectively by "true", "false" or a random value.
However, allyesconfig and randconfig do not quite work, because all the
files for hw/ARCH/Kconfig are sourced and therefore you could end up
enabling some ARM boards in x86 or things like that. This is left for
future work, but I am leaving it in to help debugging minikconf itself.
allnoconfig mode is tied to a new configure option, --without-default-devices.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 1 +
configure | 12 +++++++++++-
scripts/minikconf.py | 39 ++++++++++++++++++++++++++++++++++-----
3 files changed, 46 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index 0c9cc3e..b0293aa 100644
--- a/Makefile
+++ b/Makefile
@@ -331,6 +331,7 @@ endif
# This has to be kept in sync with Kconfig.host.
MINIKCONF_ARGS = \
+ $(CONFIG_MINIKCONF_MODE) \
$@ $*-config.devices.mak.d $< $(MINIKCONF_INPUTS) \
CONFIG_KVM=$(CONFIG_KVM) \
CONFIG_SPICE=$(CONFIG_SPICE) \
diff --git a/configure b/configure
index 3cc6a94..0fdbab4 100755
--- a/configure
+++ b/configure
@@ -487,7 +487,7 @@ libxml2=""
docker="no"
debug_mutex="no"
libpmem=""
-libudev="no"
+default_devices="yes"
# cross compilers defaults, can be overridden with --cross-cc-ARCH
cross_cc_aarch64="aarch64-linux-gnu-gcc"
@@ -996,6 +996,10 @@ for opt do
;;
--with-trace-file=*) trace_file="$optarg"
;;
+ --with-default-devices) default_devices="yes"
+ ;;
+ --without-default-devices) default_devices="no"
+ ;;
--enable-gprof) gprof="yes"
;;
--enable-gcov) gcov="yes"
@@ -6250,6 +6254,7 @@ echo "capstone $capstone"
echo "docker $docker"
echo "libpmem support $libpmem"
echo "libudev $libudev"
+echo "default devices $default_devices"
if test "$supported_cpu" = "no"; then
echo
@@ -6311,6 +6316,11 @@ echo "GIT_UPDATE=$git_update" >> $config_host_mak
echo "ARCH=$ARCH" >> $config_host_mak
+if test "$default_devices" = "yes" ; then
+ echo "CONFIG_MINIKCONF_MODE=--defconfig" >> $config_host_mak
+else
+ echo "CONFIG_MINIKCONF_MODE=--allnoconfig" >> $config_host_mak
+fi
if test "$debug_tcg" = "yes" ; then
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
fi
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index 6bedc57..5421db0 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -14,9 +14,11 @@ from __future__ import print_function
import os
import sys
import re
+import random
__all__ = [ 'KconfigDataError', 'KconfigParserError',
- 'KconfigData', 'KconfigParser' ]
+ 'KconfigData', 'KconfigParser' ,
+ 'defconfig', 'allyesconfig', 'allnoconfig', 'randconfig' ]
def debug_print(*args):
#print('# ' + (' '.join(str(x) for x in args)))
@@ -39,6 +41,11 @@ class KconfigDataError(Exception):
def __str__(self):
return self.msg
+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):
@@ -192,7 +199,8 @@ class KconfigData:
if self.cond.evaluate():
self.dest.set_value(True, self)
- 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()
@@ -272,6 +280,7 @@ class KconfigData:
self.clauses.append(KconfigData.AssignmentClause(var, val))
def do_default(self, var, val, cond=None):
+ val = self.value_mangler(val)
self.clauses.append(KconfigData.DefaultClause(var, val, cond))
def do_depends_on(self, var, expr):
@@ -328,9 +337,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
@@ -653,11 +663,30 @@ 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':
+ random.seed()
+ 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 ("%s: at least one argument is required" % argv[0], file=sys.stderr)
sys.exit(1)
- data = KconfigData()
+ if argv[1].startswith('-'):
+ print ("%s: invalid option %s" % (argv[0], argv[1]), file=sys.stderr)
+ sys.exit(1)
+
+ data = KconfigData(mode)
parser = KconfigParser(data)
for arg in argv[3:]:
m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 11/54] kconfig: introduce CONFIG_TEST_DEVICES
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (9 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 10/54] minikconfig: implement allnoconfig and defconfig modes Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 12/54] ide: express dependencies with Kconfig Paolo Bonzini
` (46 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Devices that are mostly used for testing purposes (for example in
endianness-test) will be moved under a new symbol CONFIG_TEST_DEVICES
that can be disabled in the default-configs file. This makes
it easier to drop this code from QEMU if desirable.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-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 +
hw/Kconfig | 3 +++
8 files changed, 10 insertions(+)
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 49cb7ce..74501ca 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -18,5 +18,6 @@ CONFIG_IDE_CMD646=y
CONFIG_I8259=y
CONFIG_MC146818RTC=y
CONFIG_ISA_TESTDEV=y
+CONFIG_TEST_DEVICES=y
CONFIG_SMC37C669=y
CONFIG_DP264=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 412c8c5..1d43fb2 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -4,6 +4,7 @@ include pci.mak
include sound.mak
include usb.mak
include hyperv.mak
+CONFIG_TEST_DEVICES=y
CONFIG_VGA_ISA=y
CONFIG_VGA_CIRRUS=y
CONFIG_VMWARE_VGA=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index ded7498..331bdc5 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -41,3 +41,4 @@ CONFIG_MALTA=y
CONFIG_MIPSSIM=y
CONFIG_ACPI_SMBUS=y
CONFIG_SMBUS_EEPROM=y
+CONFIG_TEST_DEVICES=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 90118cb..a58d81a 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -3,6 +3,7 @@
include pci.mak
include sound.mak
include usb.mak
+CONFIG_TEST_DEVICES=y
# For embedded PPCs:
CONFIG_PPC4XX=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 1fdb009..38c7290 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -12,6 +12,7 @@ CONFIG_SM501=y
CONFIG_I2C=y
CONFIG_DDC=y
CONFIG_ISA_TESTDEV=y
+CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
CONFIG_I8254=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 3b550a5..c966cca 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -12,6 +12,7 @@ CONFIG_SM501=y
CONFIG_I2C=y
CONFIG_DDC=y
CONFIG_ISA_TESTDEV=y
+CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
CONFIG_I8254=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 1fae488..415d4e0 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -16,6 +16,7 @@ CONFIG_SIMBA=y
CONFIG_SUNHME=y
CONFIG_MC146818RTC=y
CONFIG_ISA_TESTDEV=y
+CONFIG_TEST_DEVICES=y
CONFIG_SUN4V_RTC=y
CONFIG_SUN4U=y
CONFIG_NIAGARA=y
diff --git a/hw/Kconfig b/hw/Kconfig
index c4f1547..f902c8f 100644
--- a/hw/Kconfig
+++ b/hw/Kconfig
@@ -61,6 +61,9 @@ source unicore32/Kconfig
source xtensa/Kconfig
# Symbols used by multiple targets
+config TEST_DEVICES
+ bool
+
config XILINX
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 12/54] ide: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (10 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 11/54] kconfig: introduce CONFIG_TEST_DEVICES Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 13/54] hw/pci/Makefile.objs: make pcie configurable Paolo Bonzini
` (45 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-29-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-softmmu.mak | 2 --
default-configs/hppa-softmmu.mak | 1 -
default-configs/pci.mak | 3 ---
default-configs/sparc64-softmmu.mak | 1 -
hw/ide/Kconfig | 15 +++++++++++++++
5 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 74501ca..3fd656e 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/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index b594a6d..e0a6cdc 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -5,7 +5,6 @@ CONFIG_SERIAL_ISA=y
CONFIG_ISA_BUS=y
CONFIG_I8259=y
CONFIG_E1000_PCI=y
-CONFIG_IDE_ISA=y
CONFIG_IDE_CMD646=y
# CONFIG_IDE_MMIO=y
CONFIG_VIRTIO_VGA=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
index ac01909..fc5edfc 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_EXPRESS=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/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 415d4e0..b17513b 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -9,7 +9,6 @@ CONFIG_SERIAL_ISA=y
CONFIG_PARALLEL=y
CONFIG_PCKBD=y
CONFIG_FDC=y
-CONFIG_IDE_ISA=y
CONFIG_IDE_CMD646=y
CONFIG_PCI_SABRE=y
CONFIG_SIMBA=y
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index 5ec4495..fe27705 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 13/54] hw/pci/Makefile.objs: make pcie configurable
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (11 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 12/54] ide: express dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 14/54] isa: express dependencies with kconfig Paolo Bonzini
` (44 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong, Michael S. Tsirkin
From: Yang Zhong <yang.zhong@intel.com>
Make pcie splited from pci and make it configurable.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-30-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 +
default-configs/i386-softmmu.mak | 1 +
default-configs/mips64el-softmmu.mak | 1 +
default-configs/ppc-softmmu.mak | 1 +
default-configs/riscv32-softmmu.mak | 1 +
default-configs/riscv64-softmmu.mak | 1 +
hw/pci/Kconfig | 4 ++++
hw/pci/Makefile.objs | 9 +++++++--
8 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 797bfa5..b430be5 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -124,6 +124,7 @@ CONFIG_VERSATILE=y
CONFIG_VERSATILE_PCI=y
CONFIG_VERSATILE_I2C=y
+CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
CONFIG_VFIO_XGMAC=y
CONFIG_VFIO_AMD_XGBE=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 1d43fb2..256443e 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -45,6 +45,7 @@ CONFIG_ISA_TESTDEV=y
CONFIG_VMPORT=y
CONFIG_SGA=y
CONFIG_LPC_ICH9=y
+CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_Q35=y
CONFIG_APIC=y
CONFIG_IOAPIC=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index 9eb1208..c6ad4da 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -12,4 +12,5 @@ CONFIG_JAZZ_LED=y
CONFIG_VT82C686=y
CONFIG_MIPS_BOSTON=y
CONFIG_FITLOADER=y
+CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_XILINX=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index a58d81a..5c576fe 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -24,6 +24,7 @@ CONFIG_ETSEC=y
CONFIG_PPC405=y
CONFIG_PPC440=y
CONFIG_VIRTEX=y
+CONFIG_PCI_EXPRESS=y
# For Sam460ex
CONFIG_SAM460EX=y
diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index 6533716..8c3a91a 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -8,6 +8,7 @@ CONFIG_VIRTIO_MMIO=y
CONFIG_CADENCE=y
+CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
CONFIG_VGA=y
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index 6533716..8c3a91a 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -8,6 +8,7 @@ CONFIG_VIRTIO_MMIO=y
CONFIG_CADENCE=y
+CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
CONFIG_VGA=y
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
index d3d2205..4ca2537 100644
--- a/hw/pci/Kconfig
+++ b/hw/pci/Kconfig
@@ -1,2 +1,6 @@
config PCI
bool
+
+config PCI_EXPRESS
+ bool
+ select PCI
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 9f905e6..c78f2fb 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -2,8 +2,13 @@ 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
+
+# The functions in these modules can be used by devices too. Since we
+# allow plugging PCIe devices into PCI buses, include them even if
+# CONFIG_PCI_EXPRESS=n.
+common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o
+common-obj-$(CONFIG_PCI_EXPRESS) += pcie_port.o pcie_host.o
common-obj-$(call lnot,$(CONFIG_PCI)) += pci-stub.o
common-obj-$(CONFIG_ALL) += pci-stub.o
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 14/54] isa: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (12 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 13/54] hw/pci/Makefile.objs: make pcie configurable Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig Paolo Bonzini
` (43 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-36-yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-softmmu.mak | 1 -
default-configs/i386-softmmu.mak | 9 ---------
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 -
hw/audio/Kconfig | 2 ++
hw/block/Kconfig | 2 ++
hw/char/Kconfig | 6 ++++++
hw/display/Kconfig | 3 +++
hw/dma/Kconfig | 1 +
hw/i386/Kconfig | 1 +
hw/ide/Kconfig | 1 +
hw/input/Kconfig | 2 ++
hw/ipmi/Kconfig | 2 ++
hw/isa/Kconfig | 7 +++++++
hw/misc/Kconfig | 6 ++++++
hw/net/Kconfig | 4 ++++
hw/sparc64/Kconfig | 1 +
hw/tpm/Kconfig | 2 +-
hw/watchdog/Kconfig | 2 ++
22 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 3fd656e..8000a9a 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -15,7 +15,6 @@ CONFIG_VMWARE_VGA=y
CONFIG_IDE_CMD646=y
CONFIG_I8259=y
CONFIG_MC146818RTC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_TEST_DEVICES=y
CONFIG_SMC37C669=y
CONFIG_DP264=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 256443e..c7e32ce 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -10,19 +10,12 @@ 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
@@ -32,14 +25,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/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 331bdc5..cba8582 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -31,7 +31,6 @@ CONFIG_MIPSNET=y
CONFIG_PFLASH_CFI01=y
CONFIG_I8259=y
CONFIG_MC146818RTC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_EMPTY_SLOT=y
CONFIG_MIPS_CPS=y
CONFIG_MIPS_ITU=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 5c576fe..5ccdcb6 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -63,7 +63,6 @@ CONFIG_PREP=y
CONFIG_PREP_PCI=y
CONFIG_SERIAL_ISA=y
CONFIG_MC146818RTC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_RS6000_MC=y
CONFIG_PARALLEL=y
CONFIG_I82374=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 38c7290..e406559 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -11,7 +11,6 @@ CONFIG_IDE_MMIO=y
CONFIG_SM501=y
CONFIG_I2C=y
CONFIG_DDC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index c966cca..14dea69 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -11,7 +11,6 @@ CONFIG_IDE_MMIO=y
CONFIG_SM501=y
CONFIG_I2C=y
CONFIG_DDC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index b17513b..1e519b3 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -14,7 +14,6 @@ CONFIG_PCI_SABRE=y
CONFIG_SIMBA=y
CONFIG_SUNHME=y
CONFIG_MC146818RTC=y
-CONFIG_ISA_TESTDEV=y
CONFIG_TEST_DEVICES=y
CONFIG_SUN4V_RTC=y
CONFIG_SUN4U=y
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index 207baee..45d3a6a 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -21,6 +21,8 @@ config HDA
config PCSPK
bool
+ default y
+ depends on I8254
config WM8750
bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 4a64d83..aca8d11 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 26c1324..fbb0a9b 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,9 +14,13 @@ config SERIAL
config SERIAL_ISA
bool
+ default y
+ depends on ISA_BUS
+ select SERIAL
config SERIAL_PCI
bool
+ select SERIAL
config VIRTIO_SERIAL
bool
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 1149ea2..bbd6dd9 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -33,9 +33,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/dma/Kconfig b/hw/dma/Kconfig
index b9ce1c5..751dec5 100644
--- a/hw/dma/Kconfig
+++ b/hw/dma/Kconfig
@@ -9,6 +9,7 @@ config PL330
config I82374
bool
+ select I8257
config I8257
bool
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 93f8609..0b3c8d9 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -14,6 +14,7 @@ config I440FX
config ISAPC
bool
+ select ISA_BUS
config Q35
bool
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index fe27705..88076a7 100644
--- a/hw/ide/Kconfig
+++ b/hw/ide/Kconfig
@@ -11,6 +11,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 c729dcd..814f87f 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/ipmi/Kconfig b/hw/ipmi/Kconfig
index 68f8ba1..6a4f08f 100644
--- a/hw/ipmi/Kconfig
+++ b/hw/ipmi/Kconfig
@@ -9,6 +9,8 @@ config IPMI_EXTERN
config ISA_IPMI_KCS
bool
+ depends on ISA_BUS
config ISA_IPMI_BT
bool
+ depends on ISA_BUS
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index b59d074..af68af9 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -6,18 +6,25 @@ config APM
config I82378
bool
+ select ISA_BUS
config PC87312
bool
+ select ISA_BUS
config PIIX4
bool
+ select ISA_BUS
config VT82C686
bool
+ select ISA_BUS
config SMC37C669
bool
+ select ISA_BUS
config LPC_ICH9
bool
+ select ISA_BUS
+ select ACPI_X86_ICH
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index fc068ef..a1e4bd8 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -1,5 +1,6 @@
config APPLESMC
bool
+ depends on ISA_BUS
config MAX111X
bool
@@ -12,12 +13,16 @@ config TMP421
config ISA_DEBUG
bool
+ depends on ISA_BUS
config SGA
bool
+ depends on ISA_BUS
config ISA_TESTDEV
bool
+ default y if TEST_DEVICES
+ depends on ISA_BUS
config PCI_TESTDEV
bool
@@ -89,6 +94,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 ad56fc0..f4b5ff2 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -33,6 +33,10 @@ config LAN9118
config NE2000_ISA
bool
+ default y
+ depends on ISA_BUS
+ depends on PCI # for NE2000State
+ select NE2000_PCI
config OPENCORES_ETH
bool
diff --git a/hw/sparc64/Kconfig b/hw/sparc64/Kconfig
index 8c13345..41f7295 100644
--- a/hw/sparc64/Kconfig
+++ b/hw/sparc64/Kconfig
@@ -1,5 +1,6 @@
config SUN4U
bool
+ select ISA_BUS
config NIAGARA
bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index 10a30f8..e781995 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -1,6 +1,6 @@
config TPM_TIS
bool
- depends on TPM
+ depends on TPM && ISA_BUS
config TPM_CRB
bool
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
index cd0244f..4bbd981 100644
--- a/hw/watchdog/Kconfig
+++ b/hw/watchdog/Kconfig
@@ -6,6 +6,8 @@ config WDT_IB6300ESB
config WDT_IB700
bool
+ default y
+ depends on ISA_BUS
config WDT_DIAG288
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (13 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 14/54] isa: express dependencies with kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-14 12:53 ` [Qemu-riscv] " Andrea Bolognani
2019-03-04 18:19 ` [Qemu-devel] [PULL 16/54] build: convert sound.mak " Paolo Bonzini
` (42 subsequent siblings)
57 siblings, 1 reply; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong, Michael S. Tsirkin
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. However, s390x does not want all the
PCI devices, so there is a separate symbol to enable them.
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 if PCI_DEVICES\' -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>
Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-31-yang.zhong@intel.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-softmmu.mak | 3 ++-
default-configs/arm-softmmu.mak | 7 ++++-
default-configs/hppa-softmmu.mak | 5 +++-
default-configs/i386-softmmu.mak | 5 ++--
default-configs/mips-softmmu-common.mak | 3 ++-
default-configs/mips64el-softmmu.mak | 1 +
default-configs/pci.mak | 47 ---------------------------------
default-configs/ppc-softmmu.mak | 3 ++-
default-configs/riscv32-softmmu.mak | 4 +--
default-configs/riscv64-softmmu.mak | 4 +--
default-configs/sh4-softmmu.mak | 3 ++-
default-configs/sh4eb-softmmu.mak | 3 ++-
default-configs/sparc64-softmmu.mak | 3 ++-
docs/devel/build-system.txt | 1 -
hw/audio/Kconfig | 6 +++++
hw/block/Kconfig | 2 ++
hw/char/Kconfig | 2 ++
hw/display/Kconfig | 19 +++++++++++++
hw/ide/Kconfig | 3 +++
hw/ipack/Kconfig | 2 ++
hw/misc/Kconfig | 6 ++++-
hw/net/Kconfig | 23 ++++++++++++++++
hw/pci-bridge/Kconfig | 8 ++++++
hw/pci-host/Kconfig | 10 +++++++
hw/pci/Kconfig | 3 +++
hw/scsi/Kconfig | 11 ++++++++
hw/sd/Kconfig | 3 +++
hw/usb/Kconfig | 10 +++++++
hw/virtio/Kconfig | 3 +++
hw/watchdog/Kconfig | 2 ++
30 files changed, 141 insertions(+), 64 deletions(-)
delete mode 100644 default-configs/pci.mak
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 8000a9a..27936dd 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -1,7 +1,8 @@
# Default configuration for alpha-softmmu
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=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 b430be5..e9a972f 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -1,7 +1,8 @@
# Default configuration for arm-softmmu
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_VGA=y
CONFIG_NAND=y
CONFIG_ECC=y
@@ -163,3 +164,7 @@ CONFIG_PCI_EXPRESS_DESIGNWARE=y
CONFIG_STRONGARM=y
CONFIG_HIGHBANK=y
CONFIG_MUSICPAL=y
+
+# for realview and versatilepb
+CONFIG_SCSI=y
+CONFIG_LSI_SCSI_PCI=y
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index e0a6cdc..85a2011 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -1,5 +1,6 @@
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_SERIAL_ISA=y
CONFIG_ISA_BUS=y
@@ -7,6 +8,8 @@ CONFIG_I8259=y
CONFIG_E1000_PCI=y
CONFIG_IDE_CMD646=y
# CONFIG_IDE_MMIO=y
+CONFIG_SCSI=y
+CONFIG_LSI_SCSI_PCI=y
CONFIG_VIRTIO_VGA=y
CONFIG_MC146818RTC=y
CONFIG_DINO=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index c7e32ce..b4dc3a0 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,12 +1,12 @@
# Default configuration for i386-softmmu
-include pci.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
include sound.mak
include usb.mak
include hyperv.mak
CONFIG_TEST_DEVICES=y
CONFIG_VGA_ISA=y
-CONFIG_VGA_CIRRUS=y
CONFIG_VMWARE_VGA=y
CONFIG_VMXNET3_PCI=y
CONFIG_VIRTIO_VGA=y
@@ -45,7 +45,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 cba8582..9c2146e 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -1,8 +1,9 @@
# Common mips*-softmmu CONFIG defines
-include pci.mak
include sound.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_ESP=y
CONFIG_SCSI=y
CONFIG_VGA_ISA=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index c6ad4da..8b255ef 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -10,6 +10,7 @@ CONFIG_JAZZ=y
CONFIG_G364FB=y
CONFIG_JAZZ_LED=y
CONFIG_VT82C686=y
+CONFIG_AHCI=y
CONFIG_MIPS_BOSTON=y
CONFIG_FITLOADER=y
CONFIG_PCI_EXPRESS=y
diff --git a/default-configs/pci.mak b/default-configs/pci.mak
deleted file mode 100644
index fc5edfc..0000000
--- a/default-configs/pci.mak
+++ /dev/null
@@ -1,47 +0,0 @@
-CONFIG_PCI=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_EXPRESS=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_ROCKER=y
-CONFIG_VFIO_PCI=y
-CONFIG_EDID=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 5ccdcb6..74e31a6 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,8 +1,9 @@
# Default configuration for ppc-softmmu
-include pci.mak
include sound.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_TEST_DEVICES=y
# For embedded PPCs:
diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index 8c3a91a..5501c1b 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -1,8 +1,8 @@
# Default configuration for riscv-softmmu
-include pci.mak
include usb.mak
-
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_VIRTIO_MMIO=y
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index 8c3a91a..5501c1b 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -1,8 +1,8 @@
# Default configuration for riscv-softmmu
-include pci.mak
include usb.mak
-
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_VIRTIO_MMIO=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index e406559..87da3a6 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -1,7 +1,8 @@
# Default configuration for sh4-softmmu
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=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 14dea69..ce9aae9 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -1,7 +1,8 @@
# Default configuration for sh4eb-softmmu
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=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 1e519b3..bf52d52 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -1,7 +1,8 @@
# Default configuration for sparc64-softmmu
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_M48T59=y
CONFIG_PTIMER=y
CONFIG_SERIAL=y
diff --git a/docs/devel/build-system.txt b/docs/devel/build-system.txt
index f9fd27f..addd274 100644
--- a/docs/devel/build-system.txt
+++ b/docs/devel/build-system.txt
@@ -417,7 +417,6 @@ into each QEMU system and userspace emulator targets. They merely
contain a long list of config variable definitions. For example,
default-configs/x86_64-softmmu.mak has:
- include pci.mak
include sound.mak
include usb.mak
CONFIG_QXL=$(CONFIG_SPICE)
diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig
index 45d3a6a..6517e90 100644
--- a/hw/audio/Kconfig
+++ b/hw/audio/Kconfig
@@ -3,9 +3,13 @@ config SB16
config ES1370
bool
+ default y if PCI_DEVICES
+ depends on PCI
config AC97
bool
+ default y if PCI_DEVICES
+ depends on PCI
config ADLIB
bool
@@ -18,6 +22,8 @@ config CS4231A
config HDA
bool
+ default y if PCI_DEVICES
+ depends on PCI
config PCSPK
bool
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index aca8d11..0aa82ac 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -23,6 +23,8 @@ config ONENAND
config NVME_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config VIRTIO_BLK
bool
diff --git a/hw/char/Kconfig b/hw/char/Kconfig
index fbb0a9b..fc18481 100644
--- a/hw/char/Kconfig
+++ b/hw/char/Kconfig
@@ -20,6 +20,8 @@ config SERIAL_ISA
config SERIAL_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
select SERIAL
config VIRTIO_SERIAL
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index bbd6dd9..4941773 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -9,6 +9,9 @@ config ADS7846
config VGA_CIRRUS
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config G364FB
bool
@@ -30,6 +33,9 @@ config SSD0323
config VGA_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config VGA_ISA
bool
@@ -42,9 +48,15 @@ config VGA_ISA_MM
config VMWARE_VGA
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config BOCHS_DISPLAY
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config BLIZZARD
bool
@@ -72,12 +84,19 @@ config VGA
config QXL
bool
depends on SPICE && PCI
+ select VGA
config VIRTIO_GPU
bool
+ default y if PCI_DEVICES
+ depends on VIRTIO
+ select EDID
config VIRTIO_VGA
bool
+ default y if PCI_DEVICES
+ depends on VIRTIO_PCI
+ select VGA
config DPCD
bool
diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig
index 88076a7..ab47b6a 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
@@ -43,6 +44,8 @@ config MICRODRIVE
config AHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
select IDE_QDEV
config IDE_SII3112
diff --git a/hw/ipack/Kconfig b/hw/ipack/Kconfig
index 481e0d2..f8da24a 100644
--- a/hw/ipack/Kconfig
+++ b/hw/ipack/Kconfig
@@ -1,2 +1,4 @@
config IPACK
bool
+ default y if PCI_DEVICES
+ depends on PCI
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index a1e4bd8..41d8633 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -26,9 +26,13 @@ config ISA_TESTDEV
config PCI_TESTDEV
bool
+ default y if TEST_DEVICES
+ depends on PCI
config EDU
bool
+ default y if TEST_DEVICES
+ depends on PCI
config PCA9552
bool
@@ -53,7 +57,7 @@ config MACIO
config IVSHMEM_DEVICE
bool
- default y
+ default y if PCI_DEVICES
depends on PCI && LINUX && IVSHMEM
config ECCMEMCTL
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index f4b5ff2..a309831 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -3,27 +3,42 @@ config DP8393X
config NE2000_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config EEPRO100_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config PCNET_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select PCNET_COMMON
config PCNET_COMMON
bool
config E1000_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config E1000E_PCI_EXPRESS
bool
+ default y if PCI_DEVICES
+ depends on PCI_EXPRESS
config RTL8139_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config VMXNET3_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config SMC91C111
bool
@@ -85,12 +100,20 @@ config ETSEC
config ROCKER
bool
+ default y if PCI_DEVICES
+ depends on PCI
config CAN_BUS
bool
config CAN_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select CAN_BUS
config CAN_SJA1000
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select CAN_BUS
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index bb19b7a..0519eb1 100644
--- a/hw/pci-bridge/Kconfig
+++ b/hw/pci-bridge/Kconfig
@@ -1,17 +1,25 @@
config PCIE_PORT
bool
+ default y if PCI_DEVICES
+ depends on PCI_EXPRESS
config PXB
bool
config XIO3130
bool
+ default y if PCI_DEVICES
+ depends on PCI_EXPRESS
config IOH3420
bool
+ default y if PCI_DEVICES
+ depends on PCI_EXPRESS
config I82801B11
bool
+ default y if PCI_DEVICES
+ depends on PCI_EXPRESS
config DEC_PCI
bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index 2edc5bb..c01812a 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -2,21 +2,27 @@ config PAM
bool
config PREP_PCI
+ select PCI
bool
config GRACKLE_PCI
+ select PCI
bool
config UNIN_PCI
+ select PCI
bool
config PPCE500_PCI
+ select PCI
bool
config VERSATILE_PCI
+ select PCI
bool
config PCI_SABRE
+ select PCI
bool
config PCI_PIIX
@@ -24,12 +30,16 @@ config PCI_PIIX
config PCI_EXPRESS_Q35
bool
+ select PCI_EXPRESS
config PCI_EXPRESS_GENERIC_BRIDGE
bool
+ select PCI_EXPRESS
config PCI_EXPRESS_XILINX
bool
+ select PCI_EXPRESS
config PCI_EXPRESS_DESIGNWARE
bool
+ select PCI_EXPRESS
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
index 4ca2537..3b8638b 100644
--- a/hw/pci/Kconfig
+++ b/hw/pci/Kconfig
@@ -4,3 +4,6 @@ config PCI
config PCI_EXPRESS
bool
select PCI
+
+config PCI_DEVICES
+ bool
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index 982537b..8144ccb 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -3,21 +3,32 @@ config SCSI
config LSI_SCSI_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config MPTSAS_SCSI_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config MEGASAS_SCSI_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config VMW_PVSCSI_SCSI_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config ESP
bool
config ESP_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select ESP
config SPAPR_VSCSI
bool
diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig
index 4f43bbb..c6c5dfb 100644
--- a/hw/sd/Kconfig
+++ b/hw/sd/Kconfig
@@ -9,3 +9,6 @@ config SD
config SDHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select SD
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index cbf5c5d..86ee615 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -3,21 +3,31 @@ config USB
config USB_UHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config USB_OHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config USB_EHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config USB_EHCI_SYSBUS
bool
config USB_XHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config USB_XHCI_NEC
bool
+ default y if PCI_DEVICES
+ depends on PCI
config USB_MUSB
bool
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index ebf1812..5dafbe3 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -6,6 +6,9 @@ config VIRTIO_RNG
config VIRTIO_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VIRTIO
config VIRTIO_MMIO
bool
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
index 4bbd981..35ccb72 100644
--- a/hw/watchdog/Kconfig
+++ b/hw/watchdog/Kconfig
@@ -3,6 +3,8 @@ config CMSDK_APB_WATCHDOG
config WDT_IB6300ESB
bool
+ default y if PCI_DEVICES
+ depends on PCI
config WDT_IB700
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 16/54] build: convert sound.mak to Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (14 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 17/54] scsi: express dependencies with Kconfig Paolo Bonzini
` (41 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
There is really nothing special in these devices; they are just
ISA devices. Instead of including them for each target,
set CONFIG_ISA_BUS 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_BUS' \
`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>
Message-Id: <20190123065618.3520-32-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@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 b4dc3a0..075d501 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -2,7 +2,7 @@
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
-include sound.mak
+CONFIG_ISA_BUS=y
include usb.mak
include hyperv.mak
CONFIG_TEST_DEVICES=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 9c2146e..6d5882b 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_BUS=y
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_ESP=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 74e31a6..1871185 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,7 +1,7 @@
# Default configuration for ppc-softmmu
-include sound.mak
include usb.mak
+CONFIG_ISA_BUS=y
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_TEST_DEVICES=y
diff --git a/default-configs/sound.mak b/default-configs/sound.mak
deleted file mode 100644
index 4f22c34..0000000
--- 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 6517e90..01aea55 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 17/54] scsi: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (15 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 16/54] build: convert sound.mak " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 18/54] build: convert usb.mak to Kconfig Paolo Bonzini
` (40 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
This automatically removes the SCSI subsystem from the
binary altogether if no controllers are selected.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-34-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 -
default-configs/hppa-softmmu.mak | 1 -
default-configs/mips-softmmu-common.mak | 1 -
default-configs/sparc-softmmu.mak | 1 -
default-configs/virtio.mak | 1 -
hw/scsi/Kconfig | 7 +++++++
hw/scsi/Makefile.objs | 2 +-
hw/usb/Kconfig | 2 ++
8 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index e9a972f..7b7c040 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -166,5 +166,4 @@ CONFIG_HIGHBANK=y
CONFIG_MUSICPAL=y
# for realview and versatilepb
-CONFIG_SCSI=y
CONFIG_LSI_SCSI_PCI=y
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index 85a2011..221c609 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -8,7 +8,6 @@ CONFIG_I8259=y
CONFIG_E1000_PCI=y
CONFIG_IDE_CMD646=y
# CONFIG_IDE_MMIO=y
-CONFIG_SCSI=y
CONFIG_LSI_SCSI_PCI=y
CONFIG_VIRTIO_VGA=y
CONFIG_MC146818RTC=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 6d5882b..556cd5c 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -5,7 +5,6 @@ CONFIG_ISA_BUS=y
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_ESP=y
-CONFIG_SCSI=y
CONFIG_VGA_ISA=y
CONFIG_VGA_ISA_MM=y
CONFIG_VGA_CIRRUS=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 59a4a3d..805c400 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -2,7 +2,6 @@
CONFIG_ISA_BUS=y
CONFIG_ECC=y
-CONFIG_SCSI=y
CONFIG_ESP=y
CONFIG_ESCC=y
CONFIG_M48T59=y
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 5a2930c..7e6d467 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -7,6 +7,5 @@ CONFIG_EDID=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/scsi/Kconfig b/hw/scsi/Kconfig
index 8144ccb..a696ff0 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -5,24 +5,29 @@ config LSI_SCSI_PCI
bool
default y if PCI_DEVICES
depends on PCI
+ select SCSI
config MPTSAS_SCSI_PCI
bool
default y if PCI_DEVICES
depends on PCI
+ select SCSI
config MEGASAS_SCSI_PCI
bool
default y if PCI_DEVICES
depends on PCI
+ select SCSI
config VMW_PVSCSI_SCSI_PCI
bool
default y if PCI_DEVICES
depends on PCI
+ select SCSI
config ESP
bool
+ select SCSI
config ESP_PCI
bool
@@ -34,9 +39,11 @@ config SPAPR_VSCSI
bool
default y
depends on PSERIES
+ select SCSI
config VIRTIO_SCSI
bool
+ select SCSI
config VHOST_USER_SCSI
bool
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index 45167ba..54b36ed 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 86ee615..071e749 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -40,9 +40,11 @@ config USB_TABLET_WACOM
config USB_STORAGE_BOT
bool
+ select SCSI
config USB_STORAGE_UAS
bool
+ select SCSI
config USB_AUDIO
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 18/54] build: convert usb.mak to Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (16 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 17/54] scsi: express dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 19/54] i386: express dependencies with Kconfig Paolo Bonzini
` (39 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-33-yang.zhong@intel.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@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/riscv32-softmmu.mak | 1 -
default-configs/riscv64-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 ++++++++++++++++++++++++++
hw/usb/Makefile.objs | 2 +-
14 files changed, 27 insertions(+), 24 deletions(-)
delete mode 100644 default-configs/usb.mak
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 27936dd..f0c1928 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_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 7b7c040..917b18d 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_PCI_DEVICES=y
CONFIG_VGA=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 221c609..b7f2b43 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -1,4 +1,3 @@
-include usb.mak
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 075d501..54b571f 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -3,7 +3,6 @@
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_ISA_BUS=y
-include usb.mak
include hyperv.mak
CONFIG_TEST_DEVICES=y
CONFIG_VGA_ISA=y
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 556cd5c..45c599b 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_BUS=y
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 1871185..d4807b3 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_ISA_BUS=y
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index 5501c1b..fd91efb 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for riscv-softmmu
-include usb.mak
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index 5501c1b..fd91efb 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for riscv-softmmu
-include usb.mak
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 87da3a6..3f7fbe2 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_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index ce9aae9..17f07a4 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_PCI_DEVICES=y
CONFIG_SERIAL=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index bf52d52..2d23b0c 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_PCI_DEVICES=y
CONFIG_M48T59=y
diff --git a/default-configs/usb.mak b/default-configs/usb.mak
deleted file mode 100644
index e42cfea..0000000
--- 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 071e749..a1b7acb 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -5,61 +5,87 @@ config USB_UHCI
bool
default y if PCI_DEVICES
depends on PCI
+ select USB
config USB_OHCI
bool
default y if PCI_DEVICES
depends on PCI
+ select USB
config USB_EHCI
bool
default y if PCI_DEVICES
depends on PCI
+ select USB
config USB_EHCI_SYSBUS
bool
+ select USB
config USB_XHCI
bool
default y if PCI_DEVICES
depends on PCI
+ select USB
config USB_XHCI_NEC
bool
default y if PCI_DEVICES
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
select SCSI
config USB_STORAGE_UAS
bool
+ default y
+ depends on USB
select SCSI
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
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 41be700..2b92964 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -6,7 +6,7 @@ common-obj-$(CONFIG_USB) += desc.o desc-msos.o
common-obj-$(CONFIG_USB_UHCI) += hcd-uhci.o
common-obj-$(CONFIG_USB_OHCI) += hcd-ohci.o
common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o hcd-ehci-pci.o
-common-obj-$(CONFIG_USB_EHCI_SYSBUS) += hcd-ehci-sysbus.o
+common-obj-$(CONFIG_USB_EHCI_SYSBUS) += hcd-ehci.o hcd-ehci-sysbus.o
common-obj-$(CONFIG_USB_XHCI) += hcd-xhci.o
common-obj-$(CONFIG_USB_XHCI_NEC) += hcd-xhci-nec.o
common-obj-$(CONFIG_USB_MUSB) += hcd-musb.o
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 19/54] i386: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (17 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 18/54] build: convert usb.mak to Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 20/54] i2c: " Paolo Bonzini
` (38 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
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>
Message-Id: <20190123065618.3520-37-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/i386-softmmu.mak | 45 ++++++++----------------------------
hw/acpi/Kconfig | 3 +++
hw/i2c/Makefile.objs | 2 +-
hw/i386/Kconfig | 50 ++++++++++++++++++++++++++++++++++++++++
hw/i386/Makefile.objs | 5 ++--
hw/isa/Kconfig | 1 +
hw/pci-host/Kconfig | 4 ++++
hw/tpm/Kconfig | 2 ++
8 files changed, 73 insertions(+), 39 deletions(-)
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 54b571f..ed234c1 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,12 +1,6 @@
# Default configuration for i386-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_ISA_BUS=y
include hyperv.mak
-CONFIG_TEST_DEVICES=y
-CONFIG_VGA_ISA=y
-CONFIG_VMWARE_VGA=y
CONFIG_VMXNET3_PCI=y
CONFIG_VIRTIO_VGA=y
CONFIG_IPMI=y
@@ -14,49 +8,28 @@ CONFIG_IPMI_LOCAL=y
CONFIG_IPMI_EXTERN=y
CONFIG_ISA_IPMI_KCS=y
CONFIG_ISA_IPMI_BT=y
-CONFIG_I8254=y
-CONFIG_ACPI=y
-CONFIG_ACPI_X86=y
-CONFIG_ACPI_X86_ICH=y
-CONFIG_ACPI_MEMORY_HOTPLUG=y
-CONFIG_ACPI_CPU_HOTPLUG=y
-CONFIG_APM=y
-CONFIG_I8257=y
-CONFIG_IDE_ISA=y
-CONFIG_IDE_PIIX=y
+
+# Optional devices:
+#
CONFIG_HPET=y
CONFIG_APPLESMC=y
-CONFIG_I8259=y
CONFIG_PFLASH_CFI01=y
-CONFIG_MC146818RTC=y
-CONFIG_PCI_PIIX=y
CONFIG_ISA_DEBUG=y
CONFIG_ISA_TESTDEV=y
-CONFIG_VMPORT=y
+CONFIG_TEST_DEVICES=y
CONFIG_SGA=y
-CONFIG_LPC_ICH9=y
-CONFIG_PCI_EXPRESS=y
-CONFIG_PCI_EXPRESS_Q35=y
-CONFIG_APIC=y
-CONFIG_IOAPIC=y
CONFIG_PVPANIC=y
CONFIG_MEM_DEVICE=y
-CONFIG_DIMM=y
CONFIG_NVDIMM=y
CONFIG_ACPI_NVDIMM=y
-CONFIG_XIO3130=y
-CONFIG_IOH3420=y
-CONFIG_I82801B11=y
-CONFIG_SMBIOS=y
CONFIG_PXB=y
CONFIG_ACPI_VMGENID=y
-CONFIG_ACPI_SMBUS=y
CONFIG_SMBUS_EEPROM=y
-CONFIG_FW_CFG_DMA=y
CONFIG_I2C=y
-CONFIG_VTD=y
-CONFIG_AMD_IOMMU=y
-CONFIG_PAM=y
-CONFIG_PC=y
+CONFIG_PCI_DEVICES=y
+
+# Boards:
+#
+CONFIG_ISAPC=y
CONFIG_I440FX=y
CONFIG_Q35=y
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
index c485a34..035a28f 100644
--- a/hw/acpi/Kconfig
+++ b/hw/acpi/Kconfig
@@ -3,15 +3,18 @@ config ACPI
config ACPI_X86
bool
+ select ACPI
config ACPI_X86_ICH
bool
+ select ACPI_X86
config ACPI_CPU_HOTPLUG
bool
config ACPI_MEMORY_HOTPLUG
bool
+ select MEM_DEVICE
config ACPI_NVDIMM
bool
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index 9205cbe..2a3c106 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -2,7 +2,7 @@ common-obj-$(CONFIG_I2C) += core.o smbus_slave.o smbus_master.o
common-obj-$(CONFIG_SMBUS_EEPROM) += smbus_eeprom.o
common-obj-$(CONFIG_DDC) += i2c-ddc.o
common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
-common-obj-$(CONFIG_ACPI_X86) += smbus_ich9.o
+common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o
common-obj-$(CONFIG_ACPI_SMBUS) += pm_smbus.o
common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o
common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 0b3c8d9..081855e 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -8,16 +8,65 @@ config PC
imply QXL
imply SEV
imply TPM_TIS
+ select FDC
+ select I8259
+ select I8254
+ select PCSPK
+ select I82374
+ select I8257
+ select MC146818RTC
+
+config PC_PCI
+ bool
+ select APIC
+ select IOAPIC
+ select APM
+ select PC
+
+config PC_ACPI
+ bool
+ select ACPI_X86
+ select ACPI_CPU_HOTPLUG
+ select ACPI_MEMORY_HOTPLUG
+ depends on ACPI_SMBUS
config I440FX
bool
+ select PC_PCI
+ select PC_ACPI
+ select ACPI_SMBUS
+ select PCI_PIIX
+ select IDE_PIIX
+ select DIMM
+ select SMBIOS
+ select VMPORT
+ select VMMOUSE
+ select FW_CFG_DMA
config ISAPC
bool
select ISA_BUS
+ select PC
+ select IDE_ISA
+ select VGA_ISA
+ # FIXME: it is in the same file as i440fx, and does not compile
+ # if separated
+ depends on I440FX
config Q35
bool
+ imply VTD
+ imply AMD_IOMMU
+ select PC_PCI
+ select PC_ACPI
+ select PCI_EXPRESS_Q35
+ select LPC_ICH9
+ select AHCI
+ select DIMM
+ select SMBIOS
+ select VMPORT
+ select VMMOUSE
+ select FW_CFG_DMA
config VTD
bool
@@ -30,3 +79,4 @@ config VMPORT
config VMMOUSE
bool
+ depends on VMPORT
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index 3de7ca2..27248a0 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -4,8 +4,9 @@ obj-y += pc.o
obj-$(CONFIG_I440FX) += pc_piix.o
obj-$(CONFIG_Q35) += pc_q35.o
obj-y += pc_sysfw.o
-obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o
-obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o
+obj-y += x86-iommu.o
+obj-$(CONFIG_VTD) += intel_iommu.o
+obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o
obj-$(CONFIG_XEN) += ../xenpv/ xen/
obj-$(CONFIG_VMPORT) += vmport.o
obj-$(CONFIG_VMMOUSE) += vmmouse.o
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index af68af9..6f0812d 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -27,4 +27,5 @@ config SMC37C669
config LPC_ICH9
bool
select ISA_BUS
+ select ACPI_SMBUS
select ACPI_X86_ICH
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index c01812a..ff4080c 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -27,10 +27,14 @@ config PCI_SABRE
config PCI_PIIX
bool
+ select PCI
+ select PAM
+ select ISA_BUS
config PCI_EXPRESS_Q35
bool
select PCI_EXPRESS
+ select PAM
config PCI_EXPRESS_GENERIC_BRIDGE
bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index e781995..5c1ffa7 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -4,6 +4,8 @@ config TPM_TIS
config TPM_CRB
bool
+ default y
+ depends on TPM && PC
config TPM_PASSTHROUGH
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 20/54] i2c: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (18 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 19/54] i386: express dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 21/54] ptimer: " Paolo Bonzini
` (37 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-38-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 -
default-configs/i386-softmmu.mak | 2 --
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 -
hw/Makefile.objs | 2 +-
hw/audio/Kconfig | 1 +
hw/display/Kconfig | 3 +++
hw/gpio/Kconfig | 1 +
hw/i2c/Kconfig | 6 ++++++
hw/i386/Kconfig | 1 +
hw/input/Kconfig | 1 +
hw/isa/Kconfig | 1 +
hw/misc/Kconfig | 4 ++++
hw/nvram/Kconfig | 1 +
hw/timer/Kconfig | 3 +++
17 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 917b18d..8ced4e8 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -69,7 +69,6 @@ CONFIG_CADENCE=y
CONFIG_XGMAC=y
CONFIG_EXYNOS4=y
CONFIG_PXA2XX=y
-CONFIG_I2C=y
CONFIG_BITBANG_I2C=y
CONFIG_FRAMEBUFFER=y
CONFIG_XILINX_SPIPS=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index ed234c1..98552e1 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -24,8 +24,6 @@ CONFIG_NVDIMM=y
CONFIG_ACPI_NVDIMM=y
CONFIG_PXB=y
CONFIG_ACPI_VMGENID=y
-CONFIG_SMBUS_EEPROM=y
-CONFIG_I2C=y
CONFIG_PCI_DEVICES=y
# Boards:
diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
index 45c599b..0795d52 100644
--- a/default-configs/mips-softmmu-common.mak
+++ b/default-configs/mips-softmmu-common.mak
@@ -33,7 +33,6 @@ CONFIG_MC146818RTC=y
CONFIG_EMPTY_SLOT=y
CONFIG_MIPS_CPS=y
CONFIG_MIPS_ITU=y
-CONFIG_I2C=y
CONFIG_R4K=y
CONFIG_MALTA=y
CONFIG_MIPSSIM=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index d4807b3..0e46d6a 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -32,7 +32,6 @@ CONFIG_USB_EHCI_SYSBUS=y
CONFIG_SM501=y
CONFIG_DDC=y
CONFIG_IDE_SII3112=y
-CONFIG_I2C=y
CONFIG_AT24C=y
CONFIG_BITBANG_I2C=y
CONFIG_M41T80=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 3f7fbe2..8b003e1 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -9,7 +9,6 @@ CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
-CONFIG_I2C=y
CONFIG_DDC=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 17f07a4..6f58242 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -9,7 +9,6 @@ CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
-CONFIG_I2C=y
CONFIG_DDC=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 2d9b42d..82aa7fa 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 01aea55..e9c6fed 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 4941773..fc129f6 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
@@ -71,6 +73,7 @@ config MILKYMIST_TMU2
config SM501
bool
+ select I2C
config TCX
bool
diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig
index d0a4abf..9227cb5 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 d6d4402..74c9328 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/i386/Kconfig b/hw/i386/Kconfig
index 081855e..9cd24d7 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -28,6 +28,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 814f87f..e05b7be 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 6f0812d..fcd87b4 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -19,6 +19,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 41d8633..5f63701 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
@@ -36,6 +38,7 @@ config EDU
config PCA9552
bool
+ depends on I2C
config PL310
bool
@@ -102,5 +105,6 @@ config PVPANIC
config AUX
bool
+ select I2C
source macio/Kconfig
diff --git a/hw/nvram/Kconfig b/hw/nvram/Kconfig
index 1f5ec95..ebaa749 100644
--- a/hw/nvram/Kconfig
+++ b/hw/nvram/Kconfig
@@ -3,6 +3,7 @@ config DS1225Y
config AT24C
bool
+ depends on I2C
config MAC_NVRAM
bool
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index 7dbc121..e1a6e74 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 21/54] ptimer: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (19 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 20/54] i2c: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 22/54] display: express dependencies with kconfig Paolo Bonzini
` (36 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-39-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 -
default-configs/cris-softmmu.mak | 1 -
default-configs/lm32-softmmu.mak | 1 -
default-configs/m68k-softmmu.mak | 1 -
default-configs/microblaze-softmmu.mak | 1 -
default-configs/nios2-softmmu.mak | 1 -
default-configs/ppc-softmmu.mak | 1 -
default-configs/sh4-softmmu.mak | 1 -
default-configs/sh4eb-softmmu.mak | 1 -
default-configs/sparc-softmmu.mak | 1 -
default-configs/sparc64-softmmu.mak | 1 -
default-configs/unicore32-softmmu.mak | 1 -
hw/Kconfig | 2 ++
hw/arm/Kconfig | 4 ++++
hw/cris/Kconfig | 1 +
hw/lm32/Kconfig | 2 ++
hw/m68k/Kconfig | 2 ++
hw/mips/Kconfig | 1 +
hw/misc/Kconfig | 1 +
hw/net/Kconfig | 2 ++
hw/sh4/Kconfig | 1 +
hw/sparc/Kconfig | 2 ++
hw/timer/Kconfig | 6 ++++++
hw/unicore32/Kconfig | 1 +
hw/watchdog/Kconfig | 1 +
25 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 8ced4e8..b7b0542 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -6,7 +6,6 @@ CONFIG_VGA=y
CONFIG_NAND=y
CONFIG_ECC=y
CONFIG_SERIAL=y
-CONFIG_PTIMER=y
CONFIG_SD=y
CONFIG_MAX7310=y
CONFIG_WM8750=y
diff --git a/default-configs/cris-softmmu.mak b/default-configs/cris-softmmu.mak
index a637c4b..b3cae59 100644
--- a/default-configs/cris-softmmu.mak
+++ b/default-configs/cris-softmmu.mak
@@ -2,6 +2,5 @@
CONFIG_ETRAXFS=y
CONFIG_NAND=y
-CONFIG_PTIMER=y
CONFIG_PFLASH_CFI02=y
CONFIG_AXIS=y
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index ef0f4ba..f489838 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -3,7 +3,6 @@
CONFIG_LM32=y
CONFIG_MILKYMIST=y
CONFIG_FRAMEBUFFER=y
-CONFIG_PTIMER=y
CONFIG_PFLASH_CFI01=y
CONFIG_PFLASH_CFI02=y
CONFIG_SD=y
diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
index 27f5274..a12eece 100644
--- a/default-configs/m68k-softmmu.mak
+++ b/default-configs/m68k-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for m68k-softmmu
CONFIG_COLDFIRE=y
-CONFIG_PTIMER=y
CONFIG_AN5206=y
CONFIG_MCF5208=y
diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index 14837cf..a4a6770 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for microblaze-softmmu
-CONFIG_PTIMER=y
CONFIG_PFLASH_CFI01=y
CONFIG_SERIAL=y
CONFIG_XILINX=y
diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak
index ab42d0f..b3c507e 100644
--- a/default-configs/nios2-softmmu.mak
+++ b/default-configs/nios2-softmmu.mak
@@ -2,6 +2,5 @@
CONFIG_NIOS2=y
CONFIG_SERIAL=y
-CONFIG_PTIMER=y
CONFIG_ALTERA_TIMER=y
CONFIG_NIOS2_10M50=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 0e46d6a..0dcd863 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -14,7 +14,6 @@ CONFIG_OPENPIC=y
CONFIG_PPCE500_PCI=y
CONFIG_PFLASH_CFI01=y
CONFIG_PFLASH_CFI02=y
-CONFIG_PTIMER=y
CONFIG_I8259=y
CONFIG_XILINX=y
CONFIG_XILINX_ETHLITE=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 8b003e1..7172c8b 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -4,7 +4,6 @@ CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_SERIAL_ISA=y
-CONFIG_PTIMER=y
CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 6f58242..3622afc 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -4,7 +4,6 @@ CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_SERIAL_ISA=y
-CONFIG_PTIMER=y
CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 805c400..b31a9f2 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -5,7 +5,6 @@ CONFIG_ECC=y
CONFIG_ESP=y
CONFIG_ESCC=y
CONFIG_M48T59=y
-CONFIG_PTIMER=y
CONFIG_FDC=y
CONFIG_EMPTY_SLOT=y
CONFIG_PCNET_COMMON=y
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 2d23b0c..528af8f 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -3,7 +3,6 @@
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_M48T59=y
-CONFIG_PTIMER=y
CONFIG_SERIAL=y
CONFIG_SERIAL_ISA=y
CONFIG_PARALLEL=y
diff --git a/default-configs/unicore32-softmmu.mak b/default-configs/unicore32-softmmu.mak
index 5f6c4a8..17a7915 100644
--- a/default-configs/unicore32-softmmu.mak
+++ b/default-configs/unicore32-softmmu.mak
@@ -1,5 +1,4 @@
# Default configuration for unicore32-softmmu
CONFIG_ISA_BUS=y
CONFIG_PUV3=y
-CONFIG_PTIMER=y
CONFIG_PCKBD=y
diff --git a/hw/Kconfig b/hw/Kconfig
index f902c8f..d5ecd02 100644
--- a/hw/Kconfig
+++ b/hw/Kconfig
@@ -66,6 +66,8 @@ config TEST_DEVICES
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/arm/Kconfig b/hw/arm/Kconfig
index 9eab67b..d298fbd 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -4,9 +4,11 @@ config ARM_VIRT
config DIGIC
bool
+ select PTIMER
config EXYNOS4
bool
+ select PTIMER
config HIGHBANK
bool
@@ -19,6 +21,7 @@ config MAINSTONE
config MUSICPAL
bool
+ select PTIMER
config NETDUINO2
bool
@@ -94,6 +97,7 @@ config NRF51_SOC
config MSF2
bool
+ select PTIMER
config ZAURUS
bool
diff --git a/hw/cris/Kconfig b/hw/cris/Kconfig
index 86954ab..b7738ab 100644
--- a/hw/cris/Kconfig
+++ b/hw/cris/Kconfig
@@ -3,3 +3,4 @@ config AXIS
config ETRAXFS
bool
+ select PTIMER
diff --git a/hw/lm32/Kconfig b/hw/lm32/Kconfig
index 84c530e..4f45840 100644
--- a/hw/lm32/Kconfig
+++ b/hw/lm32/Kconfig
@@ -1,5 +1,7 @@
config LM32
bool
+ select PTIMER
config MILKYMIST
bool
+ select PTIMER
diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
index cd66ada..8e91eda 100644
--- a/hw/m68k/Kconfig
+++ b/hw/m68k/Kconfig
@@ -3,6 +3,8 @@ config AN5206
config MCF5206
bool
+ select PTIMER
config MCF5208
bool
+ select PTIMER
diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig
index 348c9bf..cdc07e5 100644
--- a/hw/mips/Kconfig
+++ b/hw/mips/Kconfig
@@ -15,6 +15,7 @@ config FULONG
config MIPS_CPS
bool
+ select PTIMER
config MIPS_BOSTON
bool
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index 5f63701..2433d1b 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -68,6 +68,7 @@ config ECCMEMCTL
config IMX
bool
+ select PTIMER
config STM32F2XX_SYSCFG
bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index a309831..86b880b 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -45,6 +45,7 @@ config SMC91C111
config LAN9118
bool
+ select PTIMER
config NE2000_ISA
bool
@@ -97,6 +98,7 @@ config VIRTIO_NET
config ETSEC
bool
+ select PTIMER
config ROCKER
bool
diff --git a/hw/sh4/Kconfig b/hw/sh4/Kconfig
index 417a72f..1ea2bc3 100644
--- a/hw/sh4/Kconfig
+++ b/hw/sh4/Kconfig
@@ -9,3 +9,4 @@ config SH7750
config SH4
bool
+ select PTIMER
diff --git a/hw/sparc/Kconfig b/hw/sparc/Kconfig
index 3795754..c9c2142 100644
--- a/hw/sparc/Kconfig
+++ b/hw/sparc/Kconfig
@@ -6,6 +6,8 @@ config LEON3
config GRLIB
bool
+ select PTIMER
config SLAVIO
bool
+ select PTIMER
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index e1a6e74..a021c74 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
diff --git a/hw/unicore32/Kconfig b/hw/unicore32/Kconfig
index b3cf294..a03a996 100644
--- a/hw/unicore32/Kconfig
+++ b/hw/unicore32/Kconfig
@@ -1,2 +1,3 @@
config PUV3
bool
+ select PTIMER
diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig
index 35ccb72..2118d89 100644
--- a/hw/watchdog/Kconfig
+++ b/hw/watchdog/Kconfig
@@ -1,5 +1,6 @@
config CMSDK_APB_WATCHDOG
bool
+ select PTIMER
config WDT_IB6300ESB
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 22/54] display: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (20 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 21/54] ptimer: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 23/54] hyperv: " Paolo Bonzini
` (35 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Yang Zhong <yang.zhong@intel.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-40-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc-softmmu.mak | 1 -
default-configs/sh4-softmmu.mak | 1 -
default-configs/sh4eb-softmmu.mak | 1 -
hw/display/Kconfig | 6 +++++-
hw/i2c/Kconfig | 1 +
5 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 0dcd863..d1ee6f7 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -29,7 +29,6 @@ CONFIG_PCI_EXPRESS=y
CONFIG_SAM460EX=y
CONFIG_USB_EHCI_SYSBUS=y
CONFIG_SM501=y
-CONFIG_DDC=y
CONFIG_IDE_SII3112=y
CONFIG_AT24C=y
CONFIG_BITBANG_I2C=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 7172c8b..ccefc10 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -8,7 +8,6 @@ CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
-CONFIG_DDC=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 3622afc..c8edeb7 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -8,7 +8,6 @@ CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
-CONFIG_DDC=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
CONFIG_I8259=y
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index fc129f6..5529d0f 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -38,6 +38,7 @@ config VGA_PCI
default y if PCI_DEVICES
depends on PCI
select VGA
+ select EDID
config VGA_ISA
bool
@@ -59,6 +60,7 @@ config BOCHS_DISPLAY
default y if PCI_DEVICES
depends on PCI
select VGA
+ select EDID
config BLIZZARD
bool
@@ -69,11 +71,13 @@ config FRAMEBUFFER
config MILKYMIST_TMU2
bool
default y
- depends on OPENGL && X11
+ depends on OPENGL && X11 && MILKYMIST
config SM501
bool
select I2C
+ select DDC
+ select SERIAL
config TCX
bool
diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig
index 74c9328..ef1caa6 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 23/54] hyperv: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (21 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 22/54] display: express dependencies with kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 24/54] vfio: express vfio dependencies with Kconfig Paolo Bonzini
` (34 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Yang Zhong <yang.zhong@intel.com>
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>
Message-Id: <20190123065618.3520-41-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/hyperv.mak | 1 -
default-configs/i386-softmmu.mak | 1 -
hw/hyperv/Kconfig | 2 ++
3 files changed, 2 insertions(+), 2 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 bc38061..0000000
--- a/default-configs/hyperv.mak
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_HYPERV_TESTDEV=y
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 98552e1..c0826f5 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 632c3a6..a1fa8ff 100644
--- a/hw/hyperv/Kconfig
+++ b/hw/hyperv/Kconfig
@@ -4,3 +4,5 @@ config HYPERV
config HYPERV_TESTDEV
bool
+ default y if TEST_DEVICES
+ depends on HYPERV
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 24/54] vfio: express vfio dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (22 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 23/54] hyperv: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 25/54] virtio: express virtio " Paolo Bonzini
` (33 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 2 --
hw/vfio/Kconfig | 13 ++++++++++---
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index b7b0542..40e1a1a 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -123,8 +123,6 @@ CONFIG_VERSATILE_I2C=y
CONFIG_PCI_EXPRESS=y
CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
-CONFIG_VFIO_XGMAC=y
-CONFIG_VFIO_AMD_XGBE=y
CONFIG_SDHCI=y
CONFIG_INTEGRATOR=y
diff --git a/hw/vfio/Kconfig b/hw/vfio/Kconfig
index 0fdff10..ebda9fd 100644
--- a/hw/vfio/Kconfig
+++ b/hw/vfio/Kconfig
@@ -9,21 +9,28 @@ config VFIO_PCI
config VFIO_CCW
bool
+ default y
select VFIO
- depends on LINUX
+ depends on LINUX && S390_CCW_VIRTIO
config VFIO_PLATFORM
bool
+ default y
select VFIO
- depends on LINUX
+ depends on LINUX && PLATFORM_BUS
config VFIO_XGMAC
bool
+ default y
+ depends on VFIO_PLATFORM
config VFIO_AMD_XGBE
bool
+ default y
+ depends on VFIO_PLATFORM
config VFIO_AP
bool
+ default y
select VFIO
- depends on LINUX
+ depends on LINUX && S390_CCW_VIRTIO
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 25/54] virtio: express virtio dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (23 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 24/54] vfio: express vfio dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 26/54] tpm: express " Paolo Bonzini
` (32 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Yang Zhong <yang.zhong@intel.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-42-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/i386-softmmu.mak | 1 -
default-configs/s390x-softmmu.mak | 1 -
default-configs/virtio.mak | 11 -----------
hw/block/Kconfig | 2 ++
hw/char/Kconfig | 2 ++
hw/display/Kconfig | 2 +-
hw/input/Kconfig | 4 +++-
hw/net/Kconfig | 2 ++
hw/scsi/Kconfig | 2 ++
hw/virtio/Kconfig | 7 +++++++
hw/virtio/Makefile.objs | 2 ++
11 files changed, 21 insertions(+), 15 deletions(-)
delete mode 100644 default-configs/virtio.mak
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index c0826f5..53e9d5e 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 2794ffb..2be5059 100644
--- a/default-configs/s390x-softmmu.mak
+++ b/default-configs/s390x-softmmu.mak
@@ -1,6 +1,5 @@
CONFIG_PCI=y
CONFIG_VIRTIO_PCI=y
-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 7e6d467..0000000
--- a/default-configs/virtio.mak
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_BLK=y
-CONFIG_VIRTIO_CRYPTO=y
-CONFIG_VIRTIO_GPU=y
-CONFIG_EDID=y
-CONFIG_VIRTIO_INPUT=y
-CONFIG_VIRTIO_NET=y
-CONFIG_VIRTIO_RNG=y
-CONFIG_VIRTIO_SCSI=y
-CONFIG_VIRTIO_SERIAL=y
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 0aa82ac..f89e4eb 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 fc18481..6360c9f 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 5529d0f..e126cbb 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -95,7 +95,7 @@ config QXL
config VIRTIO_GPU
bool
- default y if PCI_DEVICES
+ default y
depends on VIRTIO
select EDID
diff --git a/hw/input/Kconfig b/hw/input/Kconfig
index e05b7be..e2e66f0 100644
--- a/hw/input/Kconfig
+++ b/hw/input/Kconfig
@@ -21,11 +21,13 @@ config TSC2005
config VIRTIO_INPUT
bool
+ default y
+ depends on VIRTIO
config VIRTIO_INPUT_HOST
bool
default y
- depends on LINUX
+ depends on VIRTIO && LINUX
config TSC210X
bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index 86b880b..c562b69 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -95,6 +95,8 @@ config XILINX_ETHLITE
config VIRTIO_NET
bool
+ default y
+ depends on VIRTIO
config ETSEC
bool
diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig
index a696ff0..c0031a4 100644
--- a/hw/scsi/Kconfig
+++ b/hw/scsi/Kconfig
@@ -43,6 +43,8 @@ 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 5dafbe3..74f4573 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -3,6 +3,8 @@ config VIRTIO
config VIRTIO_RNG
bool
+ default y
+ depends on VIRTIO
config VIRTIO_PCI
bool
@@ -12,9 +14,14 @@ config VIRTIO_PCI
config VIRTIO_MMIO
bool
+ select VIRTIO
config VIRTIO_BALLOON
bool
+ default y
+ depends on VIRTIO
config VIRTIO_CRYPTO
bool
+ default y
+ depends on VIRTIO
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index a3eb8ed..f2ab667 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -29,6 +29,8 @@ obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
obj-$(CONFIG_VIRTIO_SERIAL) += virtio-serial-pci.o
endif
+else
+common-obj-y += vhost-stub.o
endif
common-obj-$(CONFIG_ALL) += vhost-stub.o
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 26/54] tpm: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (24 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 25/54] virtio: express virtio " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 27/54] isa: express SuperIO " Paolo Bonzini
` (31 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
This automatically removes the SCSI subsystem from the
binary altogether if no controllers are selected.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-34-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/i386/Kconfig | 1 +
hw/tpm/Kconfig | 13 +++++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 9cd24d7..ea72f48 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -7,6 +7,7 @@ config PC
imply HYPERV
imply QXL
imply SEV
+ imply TPM_CRB
imply TPM_TIS
select FDC
select I8259
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index 5c1ffa7..09adf32 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -1,14 +1,23 @@
+config TPMDEV
+ bool
+ depends on TPM
+
config TPM_TIS
bool
depends on TPM && ISA_BUS
+ select TPMDEV
config TPM_CRB
bool
- default y
- depends on TPM && PC
+ depends on TPM
+ select TPMDEV
config TPM_PASSTHROUGH
bool
+ default y
+ depends on TPMDEV && LINUX
config TPM_EMULATOR
bool
+ default y
+ depends on TPMDEV
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 27/54] isa: express SuperIO dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (25 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 26/54] tpm: express " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 28/54] ssi: express dependencies with kconfig Paolo Bonzini
` (30 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-softmmu.mak | 5 -----
default-configs/ppc-softmmu.mak | 9 ---------
default-configs/sh4-softmmu.mak | 9 ++-------
default-configs/sh4eb-softmmu.mak | 6 ------
hw/block/Kconfig | 5 +++--
hw/isa/Kconfig | 21 +++++++++++++++++++++
6 files changed, 26 insertions(+), 29 deletions(-)
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index f0c1928..762e3a2 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -2,13 +2,8 @@
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
CONFIG_I82374=y
CONFIG_I8254=y
-CONFIG_I8257=y
-CONFIG_PARALLEL=y
-CONFIG_FDC=y
CONFIG_PCKBD=y
CONFIG_VGA_CIRRUS=y
CONFIG_VMWARE_VGA=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index d1ee6f7..9ad307a 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -9,12 +9,10 @@ CONFIG_TEST_DEVICES=y
CONFIG_PPC4XX=y
CONFIG_M48T59=y
CONFIG_SERIAL=y
-CONFIG_I8257=y
CONFIG_OPENPIC=y
CONFIG_PPCE500_PCI=y
CONFIG_PFLASH_CFI01=y
CONFIG_PFLASH_CFI02=y
-CONFIG_I8259=y
CONFIG_XILINX=y
CONFIG_XILINX_ETHLITE=y
CONFIG_E500=y
@@ -58,17 +56,10 @@ CONFIG_MAC_NEWWORLD=y
# For PReP
CONFIG_PREP=y
CONFIG_PREP_PCI=y
-CONFIG_SERIAL_ISA=y
-CONFIG_MC146818RTC=y
CONFIG_RS6000_MC=y
-CONFIG_PARALLEL=y
CONFIG_I82374=y
CONFIG_I82378=y
-CONFIG_I8254=y
CONFIG_PCKBD=y
-CONFIG_FDC=y
CONFIG_NE2000_ISA=y
CONFIG_PC87312=y
-CONFIG_PCSPK=y
-CONFIG_IDE_ISA=y
CONFIG_CS4231A=y
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index ccefc10..4ba5584 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -1,20 +1,15 @@
-# Default configuration for sh4-softmmu
+# Default configuration for sh4eb-softmmu
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
-CONFIG_I8259=y
-CONFIG_I8254=y
-CONFIG_PCSPK=y
CONFIG_I82374=y
-CONFIG_I8257=y
-CONFIG_MC146818RTC=y
CONFIG_R2D=y
CONFIG_SHIX=y
+CONFIG_TEST_DEVICES=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index c8edeb7..9717673 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -3,18 +3,12 @@
CONFIG_PCI=y
CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
CONFIG_PFLASH_CFI02=y
CONFIG_SH4=y
CONFIG_IDE_MMIO=y
CONFIG_SM501=y
CONFIG_TEST_DEVICES=y
CONFIG_I82378=y
-CONFIG_I8259=y
-CONFIG_I8254=y
-CONFIG_PCSPK=y
CONFIG_I82374=y
-CONFIG_I8257=y
-CONFIG_MC146818RTC=y
CONFIG_R2D=y
CONFIG_SHIX=y
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index f89e4eb..55e1a1e 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -1,7 +1,8 @@
config FDC
bool
- default y
- depends on ISA_BUS
+ # FIXME: there is no separate file for the MMIO floppy disk controller, so
+ # select ISA_BUS here instead of polluting each board that requires one
+ select ISA_BUS
config SSI_M25P80
bool
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index fcd87b4..57e09a0 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -7,26 +7,47 @@ config APM
config I82378
bool
select ISA_BUS
+ select I8259
+ select I8254
+ select I82374
+ select MC146818RTC
config PC87312
bool
select ISA_BUS
+ select I8259
+ select I8254
+ select I8257
+ select MC146818RTC
+ select SERIAL_ISA
+ select PARALLEL
+ select FDC
+ select IDE_ISA
config PIIX4
bool
+ # For historical reasons, SuperIO devices are created in the board
+ # for PIIX4.
select ISA_BUS
config VT82C686
bool
select ISA_BUS
select ACPI_SMBUS
+ select SERIAL_ISA
+ select FDC
config SMC37C669
bool
select ISA_BUS
+ select SERIAL_ISA
+ select PARALLEL
+ select FDC
config LPC_ICH9
bool
+ # For historical reasons, SuperIO devices are created in the board
+ # for ICH9.
select ISA_BUS
select ACPI_SMBUS
select ACPI_X86_ICH
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 28/54] ssi: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (26 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 27/54] isa: express SuperIO " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 29/54] sd: " Paolo Bonzini
` (29 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 -
default-configs/microblaze-softmmu.mak | 1 -
hw/sd/Kconfig | 1 +
hw/ssi/Kconfig | 4 ++++
4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 40e1a1a..8bb4fd1 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -24,7 +24,6 @@ CONFIG_DDC=y
CONFIG_SII9022=y
CONFIG_ADS7846=y
CONFIG_MAX111X=y
-CONFIG_SSI=y
CONFIG_SSI_SD=y
CONFIG_SSI_M25P80=y
CONFIG_LAN9118=y
diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index a4a6770..7140ef3 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -6,7 +6,6 @@ CONFIG_XILINX=y
CONFIG_XILINX_AXI=y
CONFIG_XILINX_SPI=y
CONFIG_XILINX_ETHLITE=y
-CONFIG_SSI=y
CONFIG_SSI_M25P80=y
CONFIG_XLNX_ZYNQMP=y
CONFIG_PETALOGIX_S3ADSP1800=y
diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig
index c6c5dfb..8f12d9c 100644
--- a/hw/sd/Kconfig
+++ b/hw/sd/Kconfig
@@ -3,6 +3,7 @@ config PL181
config SSI_SD
bool
+ depends on SSI
config SD
bool
diff --git a/hw/ssi/Kconfig b/hw/ssi/Kconfig
index 5a03110..9e54a0c 100644
--- a/hw/ssi/Kconfig
+++ b/hw/ssi/Kconfig
@@ -1,14 +1,18 @@
config PL022
bool
+ select SSI
config SSI
bool
config XILINX_SPI
bool
+ select SSI
config XILINX_SPIPS
bool
+ select SSI
config STM32F2XX_SPI
bool
+ select SSI
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 29/54] sd: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (27 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 28/54] ssi: express dependencies with kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 30/54] ipmi: " Paolo Bonzini
` (28 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/arm-softmmu.mak | 1 -
hw/sd/Kconfig | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 8bb4fd1..2a7efc1 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -6,7 +6,6 @@ CONFIG_VGA=y
CONFIG_NAND=y
CONFIG_ECC=y
CONFIG_SERIAL=y
-CONFIG_SD=y
CONFIG_MAX7310=y
CONFIG_WM8750=y
CONFIG_TWL92230=y
diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig
index 8f12d9c..864f535 100644
--- a/hw/sd/Kconfig
+++ b/hw/sd/Kconfig
@@ -1,9 +1,11 @@
config PL181
bool
+ select SD
config SSI_SD
bool
depends on SSI
+ select SD
config SD
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 30/54] ipmi: express dependencies with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (28 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 29/54] sd: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 31/54] i386-softmmu.mak: remove all CONFIG_* except boards definitions Paolo Bonzini
` (27 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-36-yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/i386-softmmu.mak | 3 ---
default-configs/ppc64-softmmu.mak | 3 ---
hw/ipmi/Kconfig | 6 ++++++
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 53e9d5e..e779ee1 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,9 +1,6 @@
# 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
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index a0a9151..d642b67 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -5,9 +5,6 @@ include ppc-softmmu.mak
# For PowerNV
CONFIG_POWERNV=y
-CONFIG_IPMI=y
-CONFIG_IPMI_LOCAL=y
-CONFIG_IPMI_EXTERN=y
CONFIG_ISA_IPMI_BT=y
# For pSeries
diff --git a/hw/ipmi/Kconfig b/hw/ipmi/Kconfig
index 6a4f08f..b944fae 100644
--- a/hw/ipmi/Kconfig
+++ b/hw/ipmi/Kconfig
@@ -3,14 +3,20 @@ config IPMI
config IPMI_LOCAL
bool
+ default y
+ depends on IPMI
config IPMI_EXTERN
bool
+ default y
+ depends on IPMI
config ISA_IPMI_KCS
bool
depends on ISA_BUS
+ select IPMI
config ISA_IPMI_BT
bool
depends on ISA_BUS
+ select IPMI
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 31/54] i386-softmmu.mak: remove all CONFIG_* except boards definitions
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (29 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 30/54] ipmi: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 32/54] ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig Paolo Bonzini
` (26 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Yang Zhong <yang.zhong@intel.com>
%-softmmu.mak only keep boards definitions in Kconfig mode.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-43-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/i386-softmmu.mak | 37 ++++++++++++++++++-------------------
hw/acpi/Kconfig | 6 ++++++
hw/i386/Kconfig | 15 +++++++++++++++
hw/mem/Kconfig | 2 ++
hw/pci-bridge/Kconfig | 1 +
hw/timer/Kconfig | 1 +
6 files changed, 43 insertions(+), 19 deletions(-)
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index e779ee1..ba3fb3f 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,25 +1,24 @@
# Default configuration for i386-softmmu
-CONFIG_VMXNET3_PCI=y
-CONFIG_ISA_IPMI_KCS=y
-CONFIG_ISA_IPMI_BT=y
-
-# Optional devices:
+# Uncomment the following lines to disable these optional devices:
#
-CONFIG_HPET=y
-CONFIG_APPLESMC=y
-CONFIG_PFLASH_CFI01=y
-CONFIG_ISA_DEBUG=y
-CONFIG_ISA_TESTDEV=y
-CONFIG_TEST_DEVICES=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_PCI_DEVICES=y
+#CONFIG_AMD_IOMMU=n
+#CONFIG_APPLESMC=n
+#CONFIG_FDC=n
+#CONFIG_HPET=n
+#CONFIG_HYPERV=n
+#CONFIG_ISA_DEBUG=n
+#CONFIG_ISA_IPMI_BT=n
+#CONFIG_ISA_IPMI_KCS=n
+#CONFIG_PCI_DEVICES=n
+#CONFIG_PVPANIC=n
+#CONFIG_QXL=n
+#CONFIG_SEV=n
+#CONFIG_SGA=n
+#CONFIG_TEST_DEVICES=n
+#CONFIG_TPM_CRB=n
+#CONFIG_TPM_TIS=n
+#CONFIG_VTD=n
# Boards:
#
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
index 035a28f..eca3bee 100644
--- a/hw/acpi/Kconfig
+++ b/hw/acpi/Kconfig
@@ -4,6 +4,9 @@ config ACPI
config ACPI_X86
bool
select ACPI
+ select ACPI_NVDIMM
+ select ACPI_CPU_HOTPLUG
+ select ACPI_MEMORY_HOTPLUG
config ACPI_X86_ICH
bool
@@ -18,6 +21,9 @@ config ACPI_MEMORY_HOTPLUG
config ACPI_NVDIMM
bool
+ depends on ACPI
config ACPI_VMGENID
bool
+ default y
+ depends on PC
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index ea72f48..78fd703 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -4,18 +4,32 @@ config SEV
config PC
bool
+ imply APPLESMC
imply HYPERV
+ imply ISA_IPMI_KCS
+ imply ISA_IPMI_BT
+ imply ISA_DEBUG
+ imply PCI_DEVICES
+ imply PVPANIC
imply QXL
imply SEV
+ imply SGA
+ imply TEST_DEVICES
imply TPM_CRB
imply TPM_TIS
select FDC
select I8259
select I8254
+ select PCKBD
select PCSPK
select I82374
select I8257
select MC146818RTC
+ # Needed by the board code:
+ select PARALLEL
+ # For ACPI builder:
+ select SERIAL_ISA
+ select ACPI_VMGENID
config PC_PCI
bool
@@ -30,6 +44,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/mem/Kconfig b/hw/mem/Kconfig
index a3a4372..d1e635c 100644
--- a/hw/mem/Kconfig
+++ b/hw/mem/Kconfig
@@ -6,3 +6,5 @@ config MEM_DEVICE
config NVDIMM
bool
+ default y
+ depends on PC
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index 0519eb1..b167b98 100644
--- a/hw/pci-bridge/Kconfig
+++ b/hw/pci-bridge/Kconfig
@@ -5,6 +5,7 @@ config PCIE_PORT
config PXB
bool
+ default y if Q35
config XIO3130
bool
diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig
index a021c74..51921eb 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 32/54] ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (30 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 31/54] i386-softmmu.mak: remove all CONFIG_* except boards definitions Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 33/54] ppc: Express dependencies of the 'prep' and '40p' " Paolo Bonzini
` (25 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Thomas Huth <thuth@redhat.com>
The POWERNV switch should always select ISA_IPMI_BT, then the other
IPMI options are turned on automatically now.
CONFIG_DIMM should always be selected by the pseries machine,
which in turn depends on CONFIG_MEM_DEVICE since DIMM implements
this interface.
CONFIG_VIRTIO_VGA can be dropped from default-configs/ppc64-softmmu.mak
completely since this device is already automatically enabled via
hw/display/Kconfig now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc64-softmmu.mak | 5 -----
hw/intc/Kconfig | 6 ++----
hw/mem/Kconfig | 1 +
hw/ppc/Kconfig | 21 +++++++++++++++++++--
4 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index d642b67..cca5266 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -5,11 +5,6 @@ include ppc-softmmu.mak
# For PowerNV
CONFIG_POWERNV=y
-CONFIG_ISA_IPMI_BT=y
# For pSeries
CONFIG_PSERIES=y
-CONFIG_VIRTIO_VGA=y
-CONFIG_MEM_DEVICE=y
-CONFIG_DIMM=y
-CONFIG_SPAPR_RNG=y
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
index 6eea14e..de10a6b 100644
--- a/hw/intc/Kconfig
+++ b/hw/intc/Kconfig
@@ -31,13 +31,11 @@ config OPENPIC_KVM
config XICS
bool
- default y
- depends on PSERIES
+ depends on POWERNV || PSERIES
config XICS_SPAPR
bool
- default y
- depends on PSERIES
+ select XICS
config XICS_KVM
bool
diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig
index d1e635c..620fd4c 100644
--- a/hw/mem/Kconfig
+++ b/hw/mem/Kconfig
@@ -1,5 +1,6 @@
config DIMM
bool
+ select MEM_DEVICE
config MEM_DEVICE
bool
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 1d5d72f..30e3e81 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -1,12 +1,29 @@
config PSERIES
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select DIMM
+ select PCI
+ select SPAPR_VSCSI
select VFIO if LINUX
+ select XICS_SPAPR
+ select XIVE_SPAPR
config SPAPR_RNG
bool
+ default y
+ depends on PSERIES
config POWERNV
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select ISA_IPMI_BT
+ select IPMI_LOCAL
+ select ISA_BUS
+ select MC146818RTC
+ select XICS
+ select XIVE
config PPC405
bool
@@ -40,10 +57,10 @@ config VIRTEX
config XIVE
bool
- default y
- depends on PSERIES
+ depends on POWERNV || PSERIES
config XIVE_SPAPR
bool
default y
depends on PSERIES
+ select XIVE
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 33/54] ppc: Express dependencies of the 'prep' and '40p' machines with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (31 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 32/54] ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 34/54] ppc: Express dependencies of the Mac " Paolo Bonzini
` (24 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong, Hervé Poussineau
From: Thomas Huth <thuth@redhat.com>
Select the required devices in hw/ppc/Kconfig instead, so that
ppc-softmmu.mak only contains the user-selectable PREP switch.
Plug-in devices like NE2000_ISA are pulled in automatically by the
Kconfig build system now.
Cc: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc-softmmu.mak | 8 --------
hw/ppc/Kconfig | 10 ++++++++++
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 9ad307a..066cec9 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -55,11 +55,3 @@ CONFIG_MAC_NEWWORLD=y
# For PReP
CONFIG_PREP=y
-CONFIG_PREP_PCI=y
-CONFIG_RS6000_MC=y
-CONFIG_I82374=y
-CONFIG_I82378=y
-CONFIG_PCKBD=y
-CONFIG_NE2000_ISA=y
-CONFIG_PC87312=y
-CONFIG_CS4231A=y
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 30e3e81..24e4ed9 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -39,6 +39,16 @@ config SAM460EX
config PREP
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select CS4231A
+ select PREP_PCI
+ select I82374
+ select I82378
+ select LSI_SCSI_PCI
+ select M48T59
+ select PC87312
+ select RS6000_MC
config RS6000_MC
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 34/54] ppc: Express dependencies of the Mac machines with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (32 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 33/54] ppc: Express dependencies of the 'prep' and '40p' " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 35/54] ppc: Express dependencies of the Sam460EX " Paolo Bonzini
` (23 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong, Mark Cave-Ayland
From: Thomas Huth <thuth@redhat.com>
This will make it for example easier if the users want to disable
one of the two machines for their builds.
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc-softmmu.mak | 15 ---------------
hw/misc/Kconfig | 6 ++++++
hw/net/Kconfig | 1 +
hw/pci-host/Kconfig | 4 +++-
hw/ppc/Kconfig | 15 +++++++++++++++
5 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index 066cec9..caaff60 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -35,21 +35,6 @@ CONFIG_VGA_CIRRUS=y
CONFIG_SMBUS_EEPROM=y
# For Macs
-CONFIG_ESCC=y
-CONFIG_MACIO=y
-CONFIG_MACIO_GPIO=y
-CONFIG_SUNGEM=y
-CONFIG_MOS6522=y
-CONFIG_CUDA=y
-CONFIG_ADB=y
-CONFIG_MAC_NVRAM=y
-CONFIG_MAC_DBDMA=y
-CONFIG_MAC_PMU=y
-CONFIG_HEATHROW_PIC=y
-CONFIG_GRACKLE_PCI=y
-CONFIG_UNIN_PCI=y
-CONFIG_DEC_PCI=y
-CONFIG_IDE_MACIO=y
CONFIG_MAC_OLDWORLD=y
CONFIG_MAC_NEWWORLD=y
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index 2433d1b..a012d2c 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -57,6 +57,12 @@ config MOS6522
config MACIO
bool
+ select CUDA
+ select ESCC
+ select IDE_MACIO
+ select MAC_DBDMA
+ select MAC_NVRAM
+ select MOS6522
config IVSHMEM_DEVICE
bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index c562b69..6b4633b 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -86,6 +86,7 @@ config FTGMAC100
config SUNGEM
bool
+ depends on PCI
config COLDFIRE
bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index ff4080c..b39ea29 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -10,8 +10,10 @@ config GRACKLE_PCI
bool
config UNIN_PCI
- select PCI
bool
+ select PCI
+ select DEC_PCI
+ select OPENPIC
config PPCE500_PCI
select PCI
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 24e4ed9..9b5056f 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -55,9 +55,24 @@ config RS6000_MC
config MAC_OLDWORLD
bool
+ imply PCI_DEVICES
+ imply SUNGEM
+ imply TEST_DEVICES
+ select ADB
+ select GRACKLE_PCI
+ select HEATHROW_PIC
+ select MACIO
config MAC_NEWWORLD
bool
+ imply PCI_DEVICES
+ imply SUNGEM
+ imply TEST_DEVICES
+ select ADB
+ select MACIO
+ select MACIO_GPIO
+ select MAC_PMU
+ select UNIN_PCI
config E500
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 35/54] ppc: Express dependencies of the Sam460EX machines with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (33 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 34/54] ppc: Express dependencies of the Mac " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 36/54] ppc: Express dependencies of the embedded " Paolo Bonzini
` (22 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Thomas Huth <thuth@redhat.com>
Most of the dependencies are now directly selected by the SAM460EX
switch. We can drop CONFIG_VGA_CIRRUS since this device is already
selected automatically when CONFIG_PCI_DEVICES is set.
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc-softmmu.mak | 8 --------
hw/ppc/Kconfig | 11 +++++++++++
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index caaff60..fb43cba 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -25,14 +25,6 @@ CONFIG_PCI_EXPRESS=y
# For Sam460ex
CONFIG_SAM460EX=y
-CONFIG_USB_EHCI_SYSBUS=y
-CONFIG_SM501=y
-CONFIG_IDE_SII3112=y
-CONFIG_AT24C=y
-CONFIG_BITBANG_I2C=y
-CONFIG_M41T80=y
-CONFIG_VGA_CIRRUS=y
-CONFIG_SMBUS_EEPROM=y
# For Macs
CONFIG_MAC_OLDWORLD=y
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 9b5056f..f4fce16 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -33,9 +33,20 @@ config PPC440
config PPC4XX
bool
+ select BITBANG_I2C
+ select PCI
config SAM460EX
bool
+ select PFLASH_CFI01
+ select IDE_SII3112
+ select M41T80
+ select PPC440
+ select SERIAL
+ select SM501
+ select SMBUS_EEPROM
+ select USB_EHCI_SYSBUS
+ select USB_OHCI
config PREP
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 36/54] ppc: Express dependencies of the embedded machines with kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (34 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 35/54] ppc: Express dependencies of the Sam460EX " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 37/54] alpha-softmmu.mak: express dependencies with Kconfig Paolo Bonzini
` (21 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Thomas Huth <thuth@redhat.com>
This makes it much easier if the users want to disable some of
the embedded machines for their builds.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/ppc-softmmu.mak | 17 -----------------
hw/ppc/Kconfig | 19 +++++++++++++++++++
2 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index fb43cba..6ea36d4 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -1,27 +1,10 @@
# Default configuration for ppc-softmmu
-CONFIG_ISA_BUS=y
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_TEST_DEVICES=y
-
# For embedded PPCs:
-CONFIG_PPC4XX=y
-CONFIG_M48T59=y
-CONFIG_SERIAL=y
-CONFIG_OPENPIC=y
-CONFIG_PPCE500_PCI=y
-CONFIG_PFLASH_CFI01=y
-CONFIG_PFLASH_CFI02=y
-CONFIG_XILINX=y
-CONFIG_XILINX_ETHLITE=y
CONFIG_E500=y
-CONFIG_PLATFORM_BUS=y
-CONFIG_ETSEC=y
CONFIG_PPC405=y
CONFIG_PPC440=y
CONFIG_VIRTEX=y
-CONFIG_PCI_EXPRESS=y
# For Sam460ex
CONFIG_SAM460EX=y
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index f4fce16..e759a3f 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -27,9 +27,18 @@ config POWERNV
config PPC405
bool
+ select M48T59
+ select PFLASH_CFI02
+ select PPC4XX
+ select SERIAL
config PPC440
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select PCI_EXPRESS
+ select PPC4XX
+ select SERIAL
config PPC4XX
bool
@@ -87,9 +96,19 @@ config MAC_NEWWORLD
config E500
bool
+ imply AT24C
+ select ETSEC
+ select OPENPIC
+ select PLATFORM_BUS
+ select PPCE500_PCI
+ select SERIAL
config VIRTEX
bool
+ select PFLASH_CFI01
+ select SERIAL
+ select XILINX
+ select XILINX_ETHLITE
config XIVE
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 37/54] alpha-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (35 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 36/54] ppc: Express dependencies of the embedded " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 38/54] cris-softmmu.mak: " Paolo Bonzini
` (20 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/alpha-softmmu.mak | 19 +++++++------------
hw/alpha/Kconfig | 10 ++++++++++
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 762e3a2..d186fe8 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -1,15 +1,10 @@
# Default configuration for alpha-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_I82374=y
-CONFIG_I8254=y
-CONFIG_PCKBD=y
-CONFIG_VGA_CIRRUS=y
-CONFIG_VMWARE_VGA=y
-CONFIG_IDE_CMD646=y
-CONFIG_I8259=y
-CONFIG_MC146818RTC=y
-CONFIG_TEST_DEVICES=y
-CONFIG_SMC37C669=y
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_PCI_DEVICES=n
+#CONFIG_TEST_DEVICES=n
+
+# Boards:
+#
CONFIG_DP264=y
diff --git a/hw/alpha/Kconfig b/hw/alpha/Kconfig
index c5d0438..22cefd9 100644
--- a/hw/alpha/Kconfig
+++ b/hw/alpha/Kconfig
@@ -1,2 +1,12 @@
config DP264
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select I82374
+ select I8254
+ select I8259
+ select IDE_CMD646
+ select MC146818RTC
+ select PCI
+ select PCKBD
+ select SMC37C669
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 38/54] cris-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (36 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 37/54] alpha-softmmu.mak: express dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 39/54] hppa-softmmu.mak: " Paolo Bonzini
` (19 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/cris-softmmu.mak | 5 ++---
hw/cris/Kconfig | 3 +++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/default-configs/cris-softmmu.mak b/default-configs/cris-softmmu.mak
index b3cae59..5932cf4 100644
--- a/default-configs/cris-softmmu.mak
+++ b/default-configs/cris-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for cris-softmmu
-CONFIG_ETRAXFS=y
-CONFIG_NAND=y
-CONFIG_PFLASH_CFI02=y
+# Boards:
+#
CONFIG_AXIS=y
diff --git a/hw/cris/Kconfig b/hw/cris/Kconfig
index b7738ab..884ad2c 100644
--- a/hw/cris/Kconfig
+++ b/hw/cris/Kconfig
@@ -1,5 +1,8 @@
config AXIS
bool
+ select ETRAXFS
+ select PFLASH_CFI02
+ select NAND
config ETRAXFS
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 39/54] hppa-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (37 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 38/54] cris-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:19 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: " Paolo Bonzini
` (18 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Note that the Dino board uses a memory mapped 16550 UART and
therefore only CONFIG_SERIAL is needed, not CONFIG_SERIAL_ISA.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/hppa-softmmu.mak | 20 ++++++++------------
hw/hppa/Kconfig | 8 ++++++++
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
index b7f2b43..b64c5eb 100644
--- a/default-configs/hppa-softmmu.mak
+++ b/default-configs/hppa-softmmu.mak
@@ -1,13 +1,9 @@
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
-CONFIG_ISA_BUS=y
-CONFIG_I8259=y
-CONFIG_E1000_PCI=y
-CONFIG_IDE_CMD646=y
-# CONFIG_IDE_MMIO=y
-CONFIG_LSI_SCSI_PCI=y
-CONFIG_VIRTIO_VGA=y
-CONFIG_MC146818RTC=y
+# Default configuration for hppa-softmmu
+
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_PCI_DEVICES=n
+
+# Boards:
+#
CONFIG_DINO=y
diff --git a/hw/hppa/Kconfig b/hw/hppa/Kconfig
index 5ce48ef..2d9b072 100644
--- a/hw/hppa/Kconfig
+++ b/hw/hppa/Kconfig
@@ -1,2 +1,10 @@
config DINO
bool
+ imply PCI_DEVICES
+ select PCI
+ select SERIAL
+ select ISA_BUS
+ select I8259
+ select IDE_CMD646
+ select MC146818RTC
+ select LSI_SCSI_PCI
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (38 preceding siblings ...)
2019-03-04 18:19 ` [Qemu-devel] [PULL 39/54] hppa-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 23:55 ` Philippe Mathieu-Daudé
2019-03-04 18:20 ` [Qemu-devel] [PULL 41/54] m68k-softmmu.mak: " Paolo Bonzini
` (17 subsequent siblings)
57 siblings, 1 reply; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/lm32-softmmu.mak | 10 ++++++----
hw/display/Kconfig | 3 +--
hw/lm32/Kconfig | 6 ++++++
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index f489838..6d25966 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -1,8 +1,10 @@
# Default configuration for lm32-softmmu
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_MILKYMIST_TMU2=n # disabling it actually causes compile-time failures
+
+# Boards:
+#
CONFIG_LM32=y
CONFIG_MILKYMIST=y
-CONFIG_FRAMEBUFFER=y
-CONFIG_PFLASH_CFI01=y
-CONFIG_PFLASH_CFI02=y
-CONFIG_SD=y
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index e126cbb..a96ea76 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -70,8 +70,7 @@ config FRAMEBUFFER
config MILKYMIST_TMU2
bool
- default y
- depends on OPENGL && X11 && MILKYMIST
+ depends on OPENGL && X11
config SM501
bool
diff --git a/hw/lm32/Kconfig b/hw/lm32/Kconfig
index 4f45840..3d09c2d 100644
--- a/hw/lm32/Kconfig
+++ b/hw/lm32/Kconfig
@@ -1,7 +1,13 @@
config LM32
bool
select PTIMER
+ select PFLASH_CFI02
config MILKYMIST
bool
+ # FIXME: disabling it results in compile-time errors
+ select MILKYMIST_TMU2 if OPENGL && X11
select PTIMER
+ select PFLASH_CFI01
+ select FRAMEBUFFER
+ select SD
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 41/54] m68k-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (39 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 42/54] microblaze-softmmu.mak: " Paolo Bonzini
` (16 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/m68k-softmmu.mak | 3 ++-
hw/m68k/Kconfig | 5 ++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
index a12eece..e17495e 100644
--- a/default-configs/m68k-softmmu.mak
+++ b/default-configs/m68k-softmmu.mak
@@ -1,5 +1,6 @@
# Default configuration for m68k-softmmu
-CONFIG_COLDFIRE=y
+# Boards:
+#
CONFIG_AN5206=y
CONFIG_MCF5208=y
diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
index 8e91eda..49ef0b3 100644
--- a/hw/m68k/Kconfig
+++ b/hw/m68k/Kconfig
@@ -1,10 +1,9 @@
config AN5206
bool
-
-config MCF5206
- bool
+ select COLDFIRE
select PTIMER
config MCF5208
bool
+ select COLDFIRE
select PTIMER
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 42/54] microblaze-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (40 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 41/54] m68k-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 43/54] moxie-softmmu.mak: " Paolo Bonzini
` (15 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/microblaze-softmmu.mak | 10 ++--------
hw/microblaze/Kconfig | 12 ++++++++++++
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak
index 7140ef3..db8c6e4 100644
--- a/default-configs/microblaze-softmmu.mak
+++ b/default-configs/microblaze-softmmu.mak
@@ -1,13 +1,7 @@
# Default configuration for microblaze-softmmu
-CONFIG_PFLASH_CFI01=y
-CONFIG_SERIAL=y
-CONFIG_XILINX=y
-CONFIG_XILINX_AXI=y
-CONFIG_XILINX_SPI=y
-CONFIG_XILINX_ETHLITE=y
-CONFIG_SSI_M25P80=y
-CONFIG_XLNX_ZYNQMP=y
+# Boards:
+#
CONFIG_PETALOGIX_S3ADSP1800=y
CONFIG_PETALOGIX_ML605=y
CONFIG_XLNX_ZYNQMP_PMU=y
diff --git a/hw/microblaze/Kconfig b/hw/microblaze/Kconfig
index 44683b2..c4dc120 100644
--- a/hw/microblaze/Kconfig
+++ b/hw/microblaze/Kconfig
@@ -1,8 +1,20 @@
config PETALOGIX_S3ADSP1800
bool
+ select PFLASH_CFI01
+ select XILINX
+ select XILINX_AXI
+ select XILINX_ETHLITE
config PETALOGIX_ML605
bool
+ select PFLASH_CFI01
+ select SERIAL
+ select SSI_M25P80
+ select XILINX
+ select XILINX_AXI
+ select XILINX_ETHLITE
+ select XILINX_SPI
config XLNX_ZYNQMP_PMU
bool
+ select XLNX_ZYNQMP
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 43/54] moxie-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (41 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 42/54] microblaze-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 44/54] nios2-softmmu.mak: " Paolo Bonzini
` (14 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Moxie does not use VGA, ISA or RTC, and only has a memory-mapped
serial port. Adjust for the correct dependencies.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/moxie-softmmu.mak | 7 ++-----
hw/moxie/Kconfig | 1 +
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/default-configs/moxie-softmmu.mak b/default-configs/moxie-softmmu.mak
index 17ba906..bd50da3 100644
--- a/default-configs/moxie-softmmu.mak
+++ b/default-configs/moxie-softmmu.mak
@@ -1,8 +1,5 @@
# Default configuration for moxie-softmmu
-CONFIG_ISA_BUS=y
-CONFIG_MC146818RTC=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
-CONFIG_VGA=y
+# Boards:
+#
CONFIG_MOXIESIM=y
diff --git a/hw/moxie/Kconfig b/hw/moxie/Kconfig
index 03f62e3..3793ef0 100644
--- a/hw/moxie/Kconfig
+++ b/hw/moxie/Kconfig
@@ -1,2 +1,3 @@
config MOXIESIM
bool
+ select SERIAL
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 44/54] nios2-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (42 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 43/54] moxie-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 45/54] or1k-softmmu.mak: " Paolo Bonzini
` (13 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/nios2-softmmu.mak | 5 ++---
hw/nios2/Kconfig | 3 +++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak
index b3c507e..e11dc54 100644
--- a/default-configs/nios2-softmmu.mak
+++ b/default-configs/nios2-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for nios2-softmmu
-CONFIG_NIOS2=y
-CONFIG_SERIAL=y
-CONFIG_ALTERA_TIMER=y
+# Boards:
+#
CONFIG_NIOS2_10M50=y
diff --git a/hw/nios2/Kconfig b/hw/nios2/Kconfig
index 22817e4..ab953e0 100644
--- a/hw/nios2/Kconfig
+++ b/hw/nios2/Kconfig
@@ -1,5 +1,8 @@
config NIOS2_10M50
bool
+ select NIOS2
+ select SERIAL
+ select ALTERA_TIMER
config NIOS2
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 45/54] or1k-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (43 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 44/54] nios2-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 46/54] riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives Paolo Bonzini
` (12 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/or1k-softmmu.mak | 5 ++---
hw/openrisc/Kconfig | 3 +++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/default-configs/or1k-softmmu.mak b/default-configs/or1k-softmmu.mak
index 6a0f2ef..168101c 100644
--- a/default-configs/or1k-softmmu.mak
+++ b/default-configs/or1k-softmmu.mak
@@ -1,6 +1,5 @@
# Default configuration for or1k-softmmu
-CONFIG_SERIAL=y
-CONFIG_OPENCORES_ETH=y
-CONFIG_OMPIC=y
+# Boards:
+#
CONFIG_OR1K_SIM=y
diff --git a/hw/openrisc/Kconfig b/hw/openrisc/Kconfig
index 7aef98d..6c1e868 100644
--- a/hw/openrisc/Kconfig
+++ b/hw/openrisc/Kconfig
@@ -1,2 +1,5 @@
config OR1K_SIM
bool
+ select SERIAL
+ select OPENCORES_ETH
+ select OMPIC
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 46/54] riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (44 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 45/54] or1k-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 47/54] s390x: express dependencies with Kconfig Paolo Bonzini
` (11 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/riscv32-softmmu.mak | 21 ++++++---------------
default-configs/riscv64-softmmu.mak | 22 ++--------------------
hw/riscv/Kconfig | 13 +++++++++++++
3 files changed, 21 insertions(+), 35 deletions(-)
diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak
index fd91efb..1ae077e 100644
--- a/default-configs/riscv32-softmmu.mak
+++ b/default-configs/riscv32-softmmu.mak
@@ -1,21 +1,12 @@
-# Default configuration for riscv-softmmu
+# Default configuration for riscv32-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_VIRTIO_MMIO=y
-
-CONFIG_CADENCE=y
-
-CONFIG_PCI_EXPRESS=y
-CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
-
-CONFIG_VGA=y
-CONFIG_VGA_PCI=y
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_PCI_DEVICES=n
+# Boards:
+#
CONFIG_SPIKE=y
-CONFIG_HART=y
CONFIG_SIFIVE_E=y
-CONFIG_SIFIVE=y
CONFIG_SIFIVE_U=y
CONFIG_RISCV_VIRT=y
diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak
index fd91efb..235c6f4 100644
--- a/default-configs/riscv64-softmmu.mak
+++ b/default-configs/riscv64-softmmu.mak
@@ -1,21 +1,3 @@
-# Default configuration for riscv-softmmu
+# Default configuration for riscv64-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_VIRTIO_MMIO=y
-
-CONFIG_CADENCE=y
-
-CONFIG_PCI_EXPRESS=y
-CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
-
-CONFIG_VGA=y
-CONFIG_VGA_PCI=y
-
-CONFIG_SPIKE=y
-CONFIG_HART=y
-CONFIG_SIFIVE_E=y
-CONFIG_SIFIVE=y
-CONFIG_SIFIVE_U=y
-CONFIG_RISCV_VIRT=y
+include riscv32-softmmu.mak
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
index 4989589..e0ee304 100644
--- a/hw/riscv/Kconfig
+++ b/hw/riscv/Kconfig
@@ -9,12 +9,25 @@ config SIFIVE
config SIFIVE_E
bool
+ select HART
+ select SIFIVE
config SIFIVE_U
bool
+ select CADENCE
+ select HART
+ select SIFIVE
config SPIKE
bool
+ select HART
+ select HTIF
+ select SIFIVE
config RISCV_VIRT
bool
+ select HART
+ select SERIAL
+ select VIRTIO_MMIO
+ select PCI_EXPRESS_GENERIC_BRIDGE
+ select SIFIVE
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 47/54] s390x: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (45 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 46/54] riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 48/54] sh4-softmmu.mak: " Paolo Bonzini
` (10 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
From: Thomas Huth <thuth@redhat.com>
Instead of hard-coding all config switches in the config file
default-configs/s390x-softmmu.mak, let's use the new Kconfig files
to express the necessary dependencies: The S390_CCW_VIRTIO config switch
for the "s390-ccw-virtio" machine now selects all non-optional devices.
And since we already have the VIRTIO_PCI and VIRTIO_MMIO config switches
for the other two virtio transports, this patch also introduces a new
config switch VIRTIO_CCW for the third, s390x-specific virtio transport,
so that all three virtio transports are now handled in the same way.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/s390x-softmmu.mak | 20 ++++++++++++--------
hw/s390x/Kconfig | 9 +++++++++
hw/s390x/Makefile.objs | 4 +++-
hw/virtio/Kconfig | 4 ++++
4 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/default-configs/s390x-softmmu.mak b/default-configs/s390x-softmmu.mak
index 2be5059..f2287a1 100644
--- a/default-configs/s390x-softmmu.mak
+++ b/default-configs/s390x-softmmu.mak
@@ -1,9 +1,13 @@
-CONFIG_PCI=y
-CONFIG_VIRTIO_PCI=y
-CONFIG_SCLPCONSOLE=y
-CONFIG_TERMINAL3270=y
-CONFIG_S390_FLIC=y
-CONFIG_WDT_DIAG288=y
+# Default configuration for s390x-softmmu
+
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_TERMINAL3270=n
+#CONFIG_VFIO_AP=n
+#CONFIG_VFIO_CCW=n
+#CONFIG_VIRTIO_PCI=n
+#CONFIG_WDT_DIAG288=n
+
+# Boards:
+#
CONFIG_S390_CCW_VIRTIO=y
-CONFIG_VFIO_CCW=y
-CONFIG_VFIO_AP=y
diff --git a/hw/s390x/Kconfig b/hw/s390x/Kconfig
index 303db7f..a7046ea 100644
--- a/hw/s390x/Kconfig
+++ b/hw/s390x/Kconfig
@@ -1,2 +1,11 @@
config S390_CCW_VIRTIO
bool
+ imply VIRTIO_PCI
+ imply TERMINAL3270
+ imply VFIO_AP
+ imply VFIO_CCW
+ imply WDT_DIAG288
+ select PCI
+ select S390_FLIC
+ select SCLPCONSOLE
+ select VIRTIO_CCW
diff --git a/hw/s390x/Makefile.objs b/hw/s390x/Makefile.objs
index bfd5326..e02ed80 100644
--- a/hw/s390x/Makefile.objs
+++ b/hw/s390x/Makefile.objs
@@ -6,7 +6,8 @@ obj-y += sclpcpu.o
obj-y += ipl.o
obj-y += css.o
obj-$(CONFIG_S390_CCW_VIRTIO) += s390-virtio-ccw.o
-obj-y += 3270-ccw.o
+obj-$(CONFIG_TERMINAL3270) += 3270-ccw.o
+ifeq ($(CONFIG_VIRTIO_CCW),y)
obj-y += virtio-ccw.o
obj-$(CONFIG_VIRTIO_SERIAL) += virtio-ccw-serial.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-ccw-balloon.o
@@ -19,6 +20,7 @@ obj-$(CONFIG_VIRTIO_NET) += virtio-ccw-net.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-ccw-blk.o
obj-$(call land,$(CONFIG_VIRTIO_9P),$(CONFIG_VIRTFS)) += virtio-ccw-9p.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-ccw.o
+endif
obj-y += css-bridge.o
obj-y += ccw-device.o
obj-y += s390-pci-bus.o s390-pci-inst.o
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index 74f4573..e0452de 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -16,6 +16,10 @@ config VIRTIO_MMIO
bool
select VIRTIO
+config VIRTIO_CCW
+ bool
+ select VIRTIO
+
config VIRTIO_BALLOON
bool
default y
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 48/54] sh4-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (46 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 47/54] s390x: express dependencies with Kconfig Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 49/54] sparc-softmmu.mak: " Paolo Bonzini
` (9 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Note that USB_OHCI was missing (it was brought in via pci.mak,
but r2d needs the sysbus version) and SERIAL is not used.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/sh4-softmmu.mak | 18 +++++++-----------
default-configs/sh4eb-softmmu.mak | 13 +------------
hw/sh4/Kconfig | 11 +++++++++++
3 files changed, 19 insertions(+), 23 deletions(-)
diff --git a/default-configs/sh4-softmmu.mak b/default-configs/sh4-softmmu.mak
index 4ba5584..565e8b0 100644
--- a/default-configs/sh4-softmmu.mak
+++ b/default-configs/sh4-softmmu.mak
@@ -1,15 +1,11 @@
# Default configuration for sh4eb-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_PFLASH_CFI02=y
-CONFIG_SH4=y
-CONFIG_IDE_MMIO=y
-CONFIG_SM501=y
-CONFIG_TEST_DEVICES=y
-CONFIG_I82378=y
-CONFIG_I82374=y
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_PCI_DEVICES=n
+#CONFIG_TEST_DEVICES=n
+
+# Boards:
+#
CONFIG_R2D=y
CONFIG_SHIX=y
-CONFIG_TEST_DEVICES=y
diff --git a/default-configs/sh4eb-softmmu.mak b/default-configs/sh4eb-softmmu.mak
index 9717673..522a7a5 100644
--- a/default-configs/sh4eb-softmmu.mak
+++ b/default-configs/sh4eb-softmmu.mak
@@ -1,14 +1,3 @@
# Default configuration for sh4eb-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_SERIAL=y
-CONFIG_PFLASH_CFI02=y
-CONFIG_SH4=y
-CONFIG_IDE_MMIO=y
-CONFIG_SM501=y
-CONFIG_TEST_DEVICES=y
-CONFIG_I82378=y
-CONFIG_I82374=y
-CONFIG_R2D=y
-CONFIG_SHIX=y
+include sh4-softmmu.mak
diff --git a/hw/sh4/Kconfig b/hw/sh4/Kconfig
index 1ea2bc3..8597613 100644
--- a/hw/sh4/Kconfig
+++ b/hw/sh4/Kconfig
@@ -1,8 +1,19 @@
config R2D
bool
+ imply PCI_DEVICES
+ imply TEST_DEVICES
+ select I82378 if TEST_DEVICES
+ select IDE_MMIO
+ select PFLASH_CFI02
+ select USB_OHCI
+ select PCI
+ select SM501
+ select SH4
config SHIX
bool
+ select SH7750
+ select SH4
config SH7750
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 49/54] sparc-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (47 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 48/54] sh4-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 50/54] sparc64-softmmu.mak: " Paolo Bonzini
` (8 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/sparc-softmmu.mak | 22 ++++++----------------
hw/misc/Kconfig | 1 +
hw/net/Kconfig | 1 +
hw/sparc/Kconfig | 13 +++++++++++++
4 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index b31a9f2..ee85218 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -1,21 +1,11 @@
# Default configuration for sparc-softmmu
-CONFIG_ISA_BUS=y
-CONFIG_ECC=y
-CONFIG_ESP=y
-CONFIG_ESCC=y
-CONFIG_M48T59=y
-CONFIG_FDC=y
-CONFIG_EMPTY_SLOT=y
-CONFIG_PCNET_COMMON=y
-CONFIG_LANCE=y
-CONFIG_TCX=y
-CONFIG_CG3=y
-CONFIG_SLAVIO=y
-CONFIG_CS4231=y
-CONFIG_GRLIB=y
-CONFIG_STP2000=y
-CONFIG_ECCMEMCTL=y
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_TCX=n
+#CONFIG_CG3=n
+# Boards:
+#
CONFIG_SUN4M=y
CONFIG_LEON3=y
diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig
index a012d2c..2c60be9 100644
--- a/hw/misc/Kconfig
+++ b/hw/misc/Kconfig
@@ -71,6 +71,7 @@ config IVSHMEM_DEVICE
config ECCMEMCTL
bool
+ select ECC
config IMX
bool
diff --git a/hw/net/Kconfig b/hw/net/Kconfig
index 6b4633b..c00ec03 100644
--- a/hw/net/Kconfig
+++ b/hw/net/Kconfig
@@ -77,6 +77,7 @@ config STELLARIS_ENET
config LANCE
bool
+ select PCNET_COMMON
config SUNHME
bool
diff --git a/hw/sparc/Kconfig b/hw/sparc/Kconfig
index c9c2142..2a83a80 100644
--- a/hw/sparc/Kconfig
+++ b/hw/sparc/Kconfig
@@ -1,8 +1,21 @@
config SUN4M
bool
+ imply TCX
+ imply CG3
+ select CS4231
+ select ECCMEMCTL
+ select EMPTY_SLOT
+ select ESCC
+ select ESP
+ select FDC
+ select SLAVIO
+ select LANCE
+ select M48T59
+ select STP2000
config LEON3
bool
+ select GRLIB
config GRLIB
bool
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 50/54] sparc64-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (48 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 49/54] sparc-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 51/54] unicore32-softmmu.mak: " Paolo Bonzini
` (7 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/sparc64-softmmu.mak | 23 ++++++++---------------
hw/sparc64/Kconfig | 13 +++++++++++++
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/default-configs/sparc64-softmmu.mak b/default-configs/sparc64-softmmu.mak
index 528af8f..e50030a 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -1,19 +1,12 @@
# Default configuration for sparc64-softmmu
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_M48T59=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_ISA=y
-CONFIG_PARALLEL=y
-CONFIG_PCKBD=y
-CONFIG_FDC=y
-CONFIG_IDE_CMD646=y
-CONFIG_PCI_SABRE=y
-CONFIG_SIMBA=y
-CONFIG_SUNHME=y
-CONFIG_MC146818RTC=y
-CONFIG_TEST_DEVICES=y
-CONFIG_SUN4V_RTC=y
+# Uncomment the following lines to disable these optional devices:
+#
+#CONFIG_PCI_DEVICES=n
+#CONFIG_SUNHME=n
+#CONFIG_TEST_DEVICES=n
+
+# Boards:
+#
CONFIG_SUN4U=y
CONFIG_NIAGARA=y
diff --git a/hw/sparc64/Kconfig b/hw/sparc64/Kconfig
index 41f7295..4a8166e 100644
--- a/hw/sparc64/Kconfig
+++ b/hw/sparc64/Kconfig
@@ -1,6 +1,19 @@
config SUN4U
bool
+ imply PCI_DEVICES
+ imply SUNHME
+ imply TEST_DEVICES
+ select M48T59
select ISA_BUS
+ select FDC
+ select SERIAL_ISA
+ select PCI_SABRE
+ select IDE_CMD646
+ select PARALLEL
+ select PCKBD
+ select SIMBA
config NIAGARA
bool
+ select EMPTY_SLOT
+ select SUN4V_RTC
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 51/54] unicore32-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (49 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 50/54] sparc64-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 52/54] xtensa-softmmu.mak: " Paolo Bonzini
` (6 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/unicore32-softmmu.mak | 5 +++--
hw/unicore32/Kconfig | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/default-configs/unicore32-softmmu.mak b/default-configs/unicore32-softmmu.mak
index 17a7915..0bfce48 100644
--- a/default-configs/unicore32-softmmu.mak
+++ b/default-configs/unicore32-softmmu.mak
@@ -1,4 +1,5 @@
# Default configuration for unicore32-softmmu
-CONFIG_ISA_BUS=y
+
+# Boards:
+#
CONFIG_PUV3=y
-CONFIG_PCKBD=y
diff --git a/hw/unicore32/Kconfig b/hw/unicore32/Kconfig
index a03a996..4443a29 100644
--- a/hw/unicore32/Kconfig
+++ b/hw/unicore32/Kconfig
@@ -1,3 +1,5 @@
config PUV3
bool
+ select ISA_BUS
+ select PCKBD
select PTIMER
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 52/54] xtensa-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (50 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 51/54] unicore32-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 53/54] .travis.yml: test that no-default-device builds do not regress Paolo Bonzini
` (5 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
default-configs/xtensa-softmmu.mak | 6 ++----
default-configs/xtensaeb-softmmu.mak | 7 +------
hw/xtensa/Kconfig | 3 +++
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak
index 7aa7fa6..7e4d1cc 100644
--- a/default-configs/xtensa-softmmu.mak
+++ b/default-configs/xtensa-softmmu.mak
@@ -1,8 +1,6 @@
# Default configuration for Xtensa
-CONFIG_SERIAL=y
-CONFIG_OPENCORES_ETH=y
-CONFIG_PFLASH_CFI01=y
-
+# Boards:
+#
CONFIG_XTENSA_SIM=y
CONFIG_XTENSA_XTFPGA=y
diff --git a/default-configs/xtensaeb-softmmu.mak b/default-configs/xtensaeb-softmmu.mak
index 7aa7fa6..f7e48c7 100644
--- a/default-configs/xtensaeb-softmmu.mak
+++ b/default-configs/xtensaeb-softmmu.mak
@@ -1,8 +1,3 @@
# Default configuration for Xtensa
-CONFIG_SERIAL=y
-CONFIG_OPENCORES_ETH=y
-CONFIG_PFLASH_CFI01=y
-
-CONFIG_XTENSA_SIM=y
-CONFIG_XTENSA_XTFPGA=y
+include xtensa-softmmu.mak
diff --git a/hw/xtensa/Kconfig b/hw/xtensa/Kconfig
index dc8eaf6..d72817d 100644
--- a/hw/xtensa/Kconfig
+++ b/hw/xtensa/Kconfig
@@ -3,3 +3,6 @@ config XTENSA_SIM
config XTENSA_XTFPGA
bool
+ select OPENCORES_ETH
+ select PFLASH_CFI01
+ select SERIAL
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 53/54] .travis.yml: test that no-default-device builds do not regress
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (51 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 52/54] xtensa-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 54/54] kconfig: add documentation Paolo Bonzini
` (4 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
.travis.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index cca57f4..e942175 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -151,6 +151,12 @@ matrix:
# We manually include builds which we disable "make check" for
- env:
+ - CONFIG="--without-default-devices"
+ - TEST_CMD=""
+
+
+ # We manually include builds which we disable "make check" for
+ - env:
- CONFIG="--enable-debug --enable-tcg-interpreter"
- TEST_CMD=""
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Qemu-devel] [PULL 54/54] kconfig: add documentation
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (52 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 53/54] .travis.yml: test that no-default-device builds do not regress Paolo Bonzini
@ 2019-03-04 18:20 ` Paolo Bonzini
2019-03-04 20:16 ` [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS no-reply
` (3 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-04 18:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, Yang Zhong
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/devel/kconfig.rst | 305 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 305 insertions(+)
create mode 100644 docs/devel/kconfig.rst
diff --git a/docs/devel/kconfig.rst b/docs/devel/kconfig.rst
new file mode 100644
index 0000000..0f84522
--- /dev/null
+++ b/docs/devel/kconfig.rst
@@ -0,0 +1,305 @@
+Introduction
+------------
+
+QEMU is a very versatile emulator; it can be built for a variety of
+targets, where each target can emulate various boards and at the same
+time different targets can share large amounts of code. For example,
+a POWER and an x86 board can run the same code to emulate a PCI network
+card, even though the boards use different PCI host bridges, and they
+can run the same code to emulate a SCSI disk while using different
+SCSI adapters. ARM, s390 and x86 boards can all present a virtio-blk
+disk to their guests, but with three different virtio guest interfaces.
+
+Each QEMU target enables a subset of the boards, devices and buses that
+are included in QEMU's source code. As a result, each QEMU executable
+only links a small subset of the files that form QEMU's source code;
+anything that is not needed to support a particular target is culled.
+
+QEMU uses a simple domain-specific language to describe the dependencies
+between components. This is useful for two reasons:
+
+* new targets and boards can be added without knowing in detail the
+ architecture of the hardware emulation subsystems. Boards only have
+ to list the components they need, and the compiled executable will
+ include all the required dependencies and all the devices that the
+ user can add to that board;
+
+* users can easily build reduced versions of QEMU that support only a subset
+ of boards or devices. For example, by default most targets will include
+ all emulated PCI devices that QEMU supports, but the build process is
+ configurable and it is easy to drop unnecessary (or otherwise unwanted)
+ code to make a leaner binary.
+
+This domain-specific language is based on the Kconfig language that
+originated in the Linux kernel, though it was heavily simplified and
+the handling of dependencies is stricter in QEMU.
+
+Unlike Linux, there is no user interface to edit the configuration, which
+is instead specified in per-target files under the ``default-configs/``
+directory of the QEMU source tree. This is because, unlike Linux,
+configuration and dependencies can be treated as a black box when building
+QEMU; the default configuration that QEMU ships with should be okay in
+almost all cases.
+
+The Kconfig language
+--------------------
+
+Kconfig defines configurable components in files named ``hw/*/Kconfig``.
+Note that configurable components are _not_ visible in C code as preprocessor
+symbols; they are only visible in the Makefile. Each configurable component
+defines a Makefile variable whose name starts with ``CONFIG_``.
+
+All elements have boolean (true/false) type; truth is written as ``y``, while
+falsehood is written ``n``. They are defined in a Kconfig
+stanza like the following::
+
+ config ARM_VIRT
+ bool
+ imply PCI_DEVICES
+ imply VFIO_AMD_XGBE
+ imply VFIO_XGMAC
+ select A15MPCORE
+ select ACPI
+ select ARM_SMMUV3
+
+The ``config`` keyword introduces a new configuration element. In the example
+above, Makefiles will have access to a variable named ``CONFIG_ARM_VIRT``,
+with value ``y`` or ``n`` (respectively for boolean true and false).
+
+Boolean expressions can be used within the language, whenever ``<expr>``
+is written in the remainder of this section. The ``&&``, ``||`` and
+``!`` operators respectively denote conjunction (AND), disjunction (OR)
+and negation (NOT).
+
+The ``bool`` data type declaration is optional, but it is suggested to
+include it for clarity and future-proofing. After ``bool`` the following
+directives can be included:
+
+**dependencies**: ``depends on <expr>``
+
+ This defines a dependency for this configurable element. Dependencies
+ evaluate an expression and force the value of the variable to false
+ if the expression is false.
+
+**reverse dependencies**: ``select <symbol> [if <expr>]``
+
+ While ``depends on`` can force a symbol to false, reverse dependencies can
+ be used to force another symbol to true. In the following example,
+ ``CONFIG_BAZ`` will be true whenever ``CONFIG_FOO`` is true::
+
+ config FOO
+ select BAZ
+
+ The optional expression will prevent ``select`` from having any effect
+ unless it is true.
+
+ Note that unlike Linux's Kconfig implementation, QEMU will detect
+ contradictions between ``depends on`` and ``select`` statements and prevent
+ you from building such a configuration.
+
+**default value**: ``default <value> [if <expr>]``
+
+ Default values are assigned to the config symbol if no other value was
+ set by the user via ``default-configs/*.mak`` files, and only if
+ ``select`` or ``depends on`` directives do not force the value to true
+ or false respectively. ``<value>`` can be ``y`` or ``n``; it cannot
+ be an arbitrary Boolean expression. However, a condition for applying
+ the default value can be added with ``if``.
+
+ A configuration element can have any number of default values (usually,
+ if more than one default is present, they will have different
+ conditions). If multiple default values satisfy their condition,
+ only the first defined one is active.
+
+**reverse default** (weak reverse dependency): ``imply <symbol> [if <expr>]``
+
+ This is similar to ``select`` as it applies a lower limit of ``y``
+ to another symbol. However, the lower limit is only a default
+ and the "implied" symbol's value may still be set to ``n`` from a
+ ``default-configs/*.mak`` files. The following two examples are
+ equivalent::
+
+ config FOO
+ bool
+ imply BAZ
+
+ config BAZ
+ bool
+ default y if FOO
+
+ The next section explains where to use ``imply`` or ``default y``.
+
+Guidelines for writing Kconfig files
+------------------------------------
+
+Configurable elements in QEMU fall under five broad groups. Each group
+declares its dependencies in different ways:
+
+**subsystems**, of which **buses** are a special case
+
+ Example::
+
+ config SCSI
+ bool
+
+ Subsystems always default to false (they have no ``default`` directive)
+ and are never visible in ``default-configs/*.mak`` files. It's
+ up to other symbols to ``select`` whatever subsystems they require.
+
+ They sometimes have ``select`` directives to bring in other required
+ subsystems or buses. For example, ``AUX`` (the DisplayPort auxiliary
+ channel "bus") selects ``I2C`` because it can act as an I2C master too.
+
+**devices**
+
+ Example::
+
+ config MEGASAS_SCSI_PCI
+ bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select SCSI
+
+ Devices are the most complex of the five. They can have a variety
+ of directives that cooperate so that a default configuration includes
+ all the devices that can be accessed from QEMU.
+
+ Devices *depend on* the bus that they lie on, for example a PCI
+ device would specify ``depends on PCI``. An MMIO device will likely
+ have no ``depends on`` directive. Devices also *select* the buses
+ that the device provides, for example a SCSI adapter would specify
+ ``select SCSI``. Finally, devices are usually ``default y`` if and
+ only if they have at least one ``depends on``; the default could be
+ conditional on a device group.
+
+ Devices also select any optional subsystem that they use; for example
+ a video card might specify ``select EDID`` if it needs to build EDID
+ information and publish it to the guest.
+
+**device groups**
+
+ Example::
+
+ config PCI_DEVICES
+ bool
+
+ Device groups provide a convenient mechanism to enable/disable many
+ devices in one go. This is useful when a set of devices is likely to
+ be enabled/disabled by several targets. Device groups usually need
+ no directive and are not used in the Makefile either; they only appear
+ as conditions for ``default y`` directives.
+
+ QEMU currently has two device groups, ``PCI_DEVICES`` and
+ ``TEST_DEVICES``. PCI devices usually have a ``default y if
+ PCI_DEVICES`` directive rather than just ``default y``. This lets
+ some boards (notably s390) easily support a subset of PCI devices,
+ for example only VFIO (passthrough) and virtio-pci devices.
+ ``TEST_DEVICES`` instead is used for devices that are rarely used on
+ production virtual machines, but provide useful hooks to test QEMU
+ or KVM.
+
+**boards**
+
+ Example::
+
+ config SUN4M
+ bool
+ imply TCX
+ imply CG3
+ select CS4231
+ select ECCMEMCTL
+ select EMPTY_SLOT
+ select ESCC
+ select ESP
+ select FDC
+ select SLAVIO
+ select LANCE
+ select M48T59
+ select STP2000
+
+ Boards specify their constituent devices using ``imply`` and ``select``
+ directives. A device should be listed under ``select`` if the board
+ cannot be started at all without it. It should be listed under
+ ``imply`` if (depending on the QEMU command line) the board may or
+ may not be started without it. Boards also default to false; they are
+ enabled by the ``default-configs/*.mak`` for the target they apply to.
+
+**internal elements**
+
+ Example::
+
+ config ECCMEMCTL
+ bool
+ select ECC
+
+ Internal elements group code that is useful in several boards or
+ devices. They are usually enabled with ``select`` and in turn select
+ other elements; they are never visible in ``default-configs/*.mak``
+ files, and often not even in the Makefile.
+
+Writing and modifying default configurations
+--------------------------------------------
+
+In addition to the Kconfig files under hw/, each target also includes
+a file called ``default-configs/TARGETNAME-softmmu.mak``. These files
+initialize some Kconfig variables to non-default values and provide the
+starting point to turn on devices and subsystems.
+
+A file in ``default-configs/`` looks like the following example::
+
+ # Default configuration for alpha-softmmu
+
+ # Uncomment the following lines to disable these optional devices:
+ #
+ #CONFIG_PCI_DEVICES=n
+ #CONFIG_TEST_DEVICES=n
+
+ # Boards:
+ #
+ CONFIG_DP264=y
+
+The first part, consisting of commented-out ``=n`` assignments, tells
+the user which devices or device groups are implied by the boards.
+The second part, consisting of ``=y`` assignments, tells the user which
+boards are supported by the target. The user will typically modify
+the default configuration by uncommenting lines in the first group,
+or commenting out lines in the second group.
+
+It is also possible to run QEMU's configure script with the
+``--with-default-devices`` option. When this is done, everything defaults
+to ``n`` unless it is ``select``ed or explicitly switched on in the
+``.mak`` files. In other words, ``default`` and ``imply`` directives
+are disabled. When QEMU is built with this option, the user will probably
+want to change some lines in the first group, for example like this::
+
+ CONFIG_PCI_DEVICES=y
+ #CONFIG_TEST_DEVICES=n
+
+and/or pick a subset of the devices in those device groups. Right now
+there is no single place that lists all the optional devices for
+``CONFIG_PCI_DEVICES`` and ``CONFIG_TEST_DEVICES``. In the future,
+we expect that ``.mak`` files will be automatically generated, so that
+they will include all these symbols and some help text on what they do.
+
+``Kconfig.host``
+----------------
+
+In some special cases, a configurable element depends on host features
+that are detected by QEMU's configure script; for example some devices
+depend on the availability of KVM or on the presence of a library on
+the host.
+
+These symbols should be listed in ``Kconfig.host`` like this::
+
+ config KVM
+ bool
+
+and also listed as follows in the top-level Makefile's ``MINIKCONF_ARGS``
+variable::
+
+ MINIKCONF_ARGS = \
+ $@ $*-config.devices.mak.d $< $(MINIKCONF_INPUTS) \
+ CONFIG_KVM=$(CONFIG_KVM) \
+ CONFIG_SPICE=$(CONFIG_SPICE) \
+ CONFIG_TPM=$(CONFIG_TPM) \
+ ...
--
1.8.3.1
^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (53 preceding siblings ...)
2019-03-04 18:20 ` [Qemu-devel] [PULL 54/54] kconfig: add documentation Paolo Bonzini
@ 2019-03-04 20:16 ` no-reply
2019-03-05 9:32 ` Peter Maydell
` (2 subsequent siblings)
57 siblings, 0 replies; 79+ messages in thread
From: no-reply @ 2019-03-04 20:16 UTC (permalink / raw)
To: pbonzini; +Cc: fam, qemu-devel, yang.zhong, thuth
Patchew URL: https://patchew.org/QEMU/1551723614-1823-1-git-send-email-pbonzini@redhat.com/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 1551723614-1823-1-git-send-email-pbonzini@redhat.com
Subject: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/1551723614-1823-1-git-send-email-pbonzini@redhat.com -> patchew/1551723614-1823-1-git-send-email-pbonzini@redhat.com
Switched to a new branch 'test'
0a6e26d5e8 kconfig: add documentation
ea170e8fde .travis.yml: test that no-default-device builds do not regress
1b47d6119c xtensa-softmmu.mak: express dependencies with Kconfig
268226f037 unicore32-softmmu.mak: express dependencies with Kconfig
4d127f4b59 sparc64-softmmu.mak: express dependencies with Kconfig
41dc3c5a6f sparc-softmmu.mak: express dependencies with Kconfig
177ea46f90 sh4-softmmu.mak: express dependencies with Kconfig
bfbd16edaa s390x: express dependencies with Kconfig
0da98e9d99 riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives
2bd6d98ea7 or1k-softmmu.mak: express dependencies with Kconfig
7ad0eeb7de nios2-softmmu.mak: express dependencies with Kconfig
d8036ee7a8 moxie-softmmu.mak: express dependencies with Kconfig
c23e77f5aa microblaze-softmmu.mak: express dependencies with Kconfig
c1a098f358 m68k-softmmu.mak: express dependencies with Kconfig
0a0ad1fa60 lm32-softmmu.mak: express dependencies with Kconfig
963592bc4d hppa-softmmu.mak: express dependencies with Kconfig
3d236ef789 cris-softmmu.mak: express dependencies with Kconfig
dcd0d9418c alpha-softmmu.mak: express dependencies with Kconfig
34f29f98a6 ppc: Express dependencies of the embedded machines with kconfig
a8403b6d98 ppc: Express dependencies of the Sam460EX machines with kconfig
c9a90ef24e ppc: Express dependencies of the Mac machines with kconfig
31419b35d4 ppc: Express dependencies of the 'prep' and '40p' machines with kconfig
58d83d1eea ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig
8f91d4bfd3 i386-softmmu.mak: remove all CONFIG_* except boards definitions
cbf73d8f0c ipmi: express dependencies with kconfig
0dd5fb4d6b sd: express dependencies with kconfig
97325e396a ssi: express dependencies with kconfig
332ad30853 isa: express SuperIO dependencies with Kconfig
6fec955cb3 tpm: express dependencies with Kconfig
45011d7502 virtio: express virtio dependencies with Kconfig
a88bb8c5c0 vfio: express vfio dependencies with Kconfig
8ca215b85e hyperv: express dependencies with kconfig
0463805988 display: express dependencies with kconfig
460da886d6 ptimer: express dependencies with Kconfig
6803092964 i2c: express dependencies with Kconfig
0cc4ae9ed0 i386: express dependencies with Kconfig
0c0f46ceb9 build: convert usb.mak to Kconfig
6937417da4 scsi: express dependencies with Kconfig
cc59241507 build: convert sound.mak to Kconfig
be2d02caf9 build: convert pci.mak to Kconfig
7951601a63 isa: express dependencies with kconfig
409dbbb6f2 hw/pci/Makefile.objs: make pcie configurable
a071d6e98d ide: express dependencies with Kconfig
7f5fdbf41d kconfig: introduce CONFIG_TEST_DEVICES
da6052b249 minikconfig: implement allnoconfig and defconfig modes
e8c2768dce build: switch to Kconfig
f83935e733 kconfig: introduce kconfig files
1f5dc409bc hw/display: make edid configurable
fe7e0fba75 minikconfig: add semantic analysis
c8f1845c7c minikconfig: add AST
194871c17a minikconfig: add parser skeleton
e8f333426c xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA
8f50814206 9pfs: remove unnecessary conditionals
5deb877614 block: fix recursion in hw/block/dataplane
=== OUTPUT BEGIN ===
1/54 Checking commit 5deb87761401 (block: fix recursion in hw/block/dataplane)
2/54 Checking commit 8f5081420656 (9pfs: remove unnecessary conditionals)
3/54 Checking commit e8f333426ca5 (xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA)
4/54 Checking commit 194871c17a47 (minikconfig: add parser skeleton)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#35:
new file mode 100644
WARNING: line over 80 characters
#259: FILE: scripts/minikconf.py:220:
+ 'Expected identifier starting with "CONFIG_"', TOK_NONE)
WARNING: line over 80 characters
#358: FILE: scripts/minikconf.py:319:
+ raise KconfigParserError(self, 'expected "source", "config", identifier, '
WARNING: line over 80 characters
#384: FILE: scripts/minikconf.py:345:
+ raise KconfigParserError(self, 'expected "source", "config" or identifier')
ERROR: line over 90 characters
#409: FILE: scripts/minikconf.py:370:
+ if self.src[self.cursor + length].isalnum() or self.src[self.cursor + length] == '|':
WARNING: line over 80 characters
#464: FILE: scripts/minikconf.py:425:
+ while self.src[self.cursor].isalnum() or self.src[self.cursor] == '_':
total: 1 errors, 5 warnings, 441 lines checked
Patch 4/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/54 Checking commit c8f1845c7c37 (minikconfig: add AST)
WARNING: line over 80 characters
#89: FILE: scripts/minikconf.py:90:
+ return "config %s default %s if %s" % (self.dest, value, self.cond)
total: 0 errors, 1 warnings, 177 lines checked
Patch 5/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
6/54 Checking commit fe7e0fba7561 (minikconfig: add semantic analysis)
ERROR: line over 90 characters
#125: FILE: scripts/minikconf.py:110:
+ raise KconfigDataError('contradiction between clauses when setting %s' % self)
WARNING: line over 80 characters
#228: FILE: scripts/minikconf.py:222:
+ debug_print(i, "->", [str(x) for x in self.referenced_vars[i].outgoing])
total: 1 errors, 1 warnings, 247 lines checked
Patch 6/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/54 Checking commit 1f5dc409bcc9 (hw/display: make edid configurable)
8/54 Checking commit f83935e733c1 (kconfig: introduce kconfig files)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#44:
new file mode 100644
WARNING: line over 80 characters
#1757: FILE: scripts/minikconf.py:657:
+ print ("%s: at least one argument is required" % argv[0], file=sys.stderr)
total: 0 errors, 2 warnings, 1358 lines checked
Patch 8/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/54 Checking commit e8c2768dce92 (build: switch to Kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#553:
deleted file mode 100644
total: 0 errors, 1 warnings, 374 lines checked
Patch 9/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/54 Checking commit da6052b24922 (minikconfig: implement allnoconfig and defconfig modes)
11/54 Checking commit 7f5fdbf41dc2 (kconfig: introduce CONFIG_TEST_DEVICES)
12/54 Checking commit a071d6e98d83 (ide: express dependencies with Kconfig)
13/54 Checking commit 409dbbb6f21d (hw/pci/Makefile.objs: make pcie configurable)
14/54 Checking commit 7951601a6310 (isa: express dependencies with kconfig)
15/54 Checking commit be2d02caf9a3 (build: convert pci.mak to Kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#145:
deleted file mode 100644
total: 0 errors, 1 warnings, 493 lines checked
Patch 15/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
16/54 Checking commit cc59241507f0 (build: convert sound.mak to Kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#68:
deleted file mode 100644
total: 0 errors, 1 warnings, 49 lines checked
Patch 16/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
17/54 Checking commit 6937417da4f9 (scsi: express dependencies with Kconfig)
18/54 Checking commit 0c0f46ceb9fe (build: convert usb.mak to Kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#158:
deleted file mode 100644
total: 0 errors, 1 warnings, 167 lines checked
Patch 18/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
19/54 Checking commit 0cc4ae9ed023 (i386: express dependencies with Kconfig)
20/54 Checking commit 6803092964f0 (i2c: express dependencies with Kconfig)
21/54 Checking commit 460da886d636 (ptimer: express dependencies with Kconfig)
22/54 Checking commit 0463805988e4 (display: express dependencies with kconfig)
23/54 Checking commit 8ca215b85e92 (hyperv: express dependencies with kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#17:
deleted file mode 100644
total: 0 errors, 1 warnings, 11 lines checked
Patch 23/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
24/54 Checking commit a88bb8c5c0ca (vfio: express vfio dependencies with Kconfig)
25/54 Checking commit 45011d750284 (virtio: express virtio dependencies with Kconfig)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#37:
deleted file mode 100644
total: 0 errors, 1 warnings, 97 lines checked
Patch 25/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
26/54 Checking commit 6fec955cb359 (tpm: express dependencies with Kconfig)
27/54 Checking commit 332ad3085359 (isa: express SuperIO dependencies with Kconfig)
28/54 Checking commit 97325e396a0b (ssi: express dependencies with kconfig)
29/54 Checking commit 0dd5fb4d6b3d (sd: express dependencies with kconfig)
30/54 Checking commit cbf73d8f0c30 (ipmi: express dependencies with kconfig)
31/54 Checking commit 8f91d4bfd333 (i386-softmmu.mak: remove all CONFIG_* except boards definitions)
32/54 Checking commit 58d83d1eea52 (ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig)
33/54 Checking commit 31419b35d46a (ppc: Express dependencies of the 'prep' and '40p' machines with kconfig)
34/54 Checking commit c9a90ef24eb7 (ppc: Express dependencies of the Mac machines with kconfig)
35/54 Checking commit a8403b6d98a8 (ppc: Express dependencies of the Sam460EX machines with kconfig)
36/54 Checking commit 34f29f98a676 (ppc: Express dependencies of the embedded machines with kconfig)
37/54 Checking commit dcd0d9418ca0 (alpha-softmmu.mak: express dependencies with Kconfig)
38/54 Checking commit 3d236ef7896f (cris-softmmu.mak: express dependencies with Kconfig)
39/54 Checking commit 963592bc4d8b (hppa-softmmu.mak: express dependencies with Kconfig)
40/54 Checking commit 0a0ad1fa605c (lm32-softmmu.mak: express dependencies with Kconfig)
41/54 Checking commit c1a098f35829 (m68k-softmmu.mak: express dependencies with Kconfig)
42/54 Checking commit c23e77f5aa26 (microblaze-softmmu.mak: express dependencies with Kconfig)
43/54 Checking commit d8036ee7a82a (moxie-softmmu.mak: express dependencies with Kconfig)
44/54 Checking commit 7ad0eeb7dead (nios2-softmmu.mak: express dependencies with Kconfig)
45/54 Checking commit 2bd6d98ea7c8 (or1k-softmmu.mak: express dependencies with Kconfig)
46/54 Checking commit 0da98e9d9936 (riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives)
47/54 Checking commit bfbd16edaa98 (s390x: express dependencies with Kconfig)
48/54 Checking commit 177ea46f90b8 (sh4-softmmu.mak: express dependencies with Kconfig)
49/54 Checking commit 41dc3c5a6ff6 (sparc-softmmu.mak: express dependencies with Kconfig)
50/54 Checking commit 4d127f4b59e5 (sparc64-softmmu.mak: express dependencies with Kconfig)
51/54 Checking commit 268226f03725 (unicore32-softmmu.mak: express dependencies with Kconfig)
52/54 Checking commit 1b47d6119c83 (xtensa-softmmu.mak: express dependencies with Kconfig)
53/54 Checking commit ea170e8fde6a (.travis.yml: test that no-default-device builds do not regress)
54/54 Checking commit 0a6e26d5e85b (kconfig: add documentation)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#11:
new file mode 100644
total: 0 errors, 1 warnings, 305 lines checked
Patch 54/54 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/1551723614-1823-1-git-send-email-pbonzini@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: express dependencies with Kconfig
2019-03-04 18:20 ` [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: " Paolo Bonzini
@ 2019-03-04 23:55 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 79+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-03-04 23:55 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel; +Cc: Yang Zhong, thuth, Gerd Hoffmann
On 3/4/19 7:20 PM, Paolo Bonzini wrote:
> %-softmmu.mak only keep boards and optional device
> definitions in Kconfig mode.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> default-configs/lm32-softmmu.mak | 10 ++++++----
> hw/display/Kconfig | 3 +--
> hw/lm32/Kconfig | 6 ++++++
> 3 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
> index f489838..6d25966 100644
> --- a/default-configs/lm32-softmmu.mak
> +++ b/default-configs/lm32-softmmu.mak
> @@ -1,8 +1,10 @@
> # Default configuration for lm32-softmmu
>
> +# Uncomment the following lines to disable these optional devices:
> +#
> +#CONFIG_MILKYMIST_TMU2=n # disabling it actually causes compile-time failures
> +
> +# Boards:
> +#
> CONFIG_LM32=y
> CONFIG_MILKYMIST=y
> -CONFIG_FRAMEBUFFER=y
> -CONFIG_PFLASH_CFI01=y
> -CONFIG_PFLASH_CFI02=y
> -CONFIG_SD=y
> diff --git a/hw/display/Kconfig b/hw/display/Kconfig
> index e126cbb..a96ea76 100644
> --- a/hw/display/Kconfig
> +++ b/hw/display/Kconfig
> @@ -70,8 +70,7 @@ config FRAMEBUFFER
>
> config MILKYMIST_TMU2
> bool
> - default y
> - depends on OPENGL && X11 && MILKYMIST
> + depends on OPENGL && X11
>
> config SM501
> bool
> diff --git a/hw/lm32/Kconfig b/hw/lm32/Kconfig
> index 4f45840..3d09c2d 100644
> --- a/hw/lm32/Kconfig
> +++ b/hw/lm32/Kconfig
> @@ -1,7 +1,13 @@
> config LM32
> bool
> select PTIMER
> + select PFLASH_CFI02
>
> config MILKYMIST
> bool
> + # FIXME: disabling it results in compile-time errors
> + select MILKYMIST_TMU2 if OPENGL && X11
This should be fixed by 57d434407a... which got merged recently, maybe
you didn't tried again after rebasing?
> select PTIMER
> + select PFLASH_CFI01
> + select FRAMEBUFFER
> + select SD
>
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (54 preceding siblings ...)
2019-03-04 20:16 ` [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS no-reply
@ 2019-03-05 9:32 ` Peter Maydell
2019-03-05 19:45 ` Thomas Huth
2019-03-06 10:57 ` Paolo Bonzini
2019-03-07 13:25 ` Peter Maydell
2019-03-08 16:23 ` no-reply
57 siblings, 2 replies; 79+ messages in thread
From: Peter Maydell @ 2019-03-05 9:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU Developers, Yang Zhong, Thomas Huth
On Mon, 4 Mar 2019 at 19:25, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 1ba530a4ecba6015d52d8f392fd327cfa07bc37a:
>
> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190304' into staging (2019-03-04 13:38:54 +0000)
>
> are available in the git repository at:
>
>
> git://github.com/bonzini/qemu.git tags/for-upstream-kconfig
>
> for you to fetch changes up to b1d8b9a6cc37e33dde1873379174de78957830ca:
>
> kconfig: add documentation (2019-03-04 19:09:35 +0100)
>
> ----------------------------------------------------------------
> Initial Kconfig work, excluding ARM and MIPS
Everything fails to build with errors like
make: *** No rule to make target `config-all-devices.mak', needed by
`subdir-aarch64-softmmu'. Stop.
or
make: *** No rule to make target
`/home/pm215/qemu/default-configs/pci.mak', needed by
`aarch64-softmmu/config-devices.mak'. Stop.
If there are special instructions for what to do with
build trees over the transition to kconfig, the pullreq
cover letter would be a good place to mention them :-)
thanks
-- PMM
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-05 9:32 ` Peter Maydell
@ 2019-03-05 19:45 ` Thomas Huth
2019-03-05 20:08 ` Eric Blake
2019-03-06 10:57 ` Paolo Bonzini
1 sibling, 1 reply; 79+ messages in thread
From: Thomas Huth @ 2019-03-05 19:45 UTC (permalink / raw)
To: Peter Maydell, Paolo Bonzini; +Cc: QEMU Developers, Yang Zhong
On 05/03/2019 10.32, Peter Maydell wrote:
> On Mon, 4 Mar 2019 at 19:25, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> The following changes since commit 1ba530a4ecba6015d52d8f392fd327cfa07bc37a:
>>
>> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190304' into staging (2019-03-04 13:38:54 +0000)
>>
>> are available in the git repository at:
>>
>>
>> git://github.com/bonzini/qemu.git tags/for-upstream-kconfig
>>
>> for you to fetch changes up to b1d8b9a6cc37e33dde1873379174de78957830ca:
>>
>> kconfig: add documentation (2019-03-04 19:09:35 +0100)
>>
>> ----------------------------------------------------------------
>> Initial Kconfig work, excluding ARM and MIPS
>
> Everything fails to build with errors like
> make: *** No rule to make target `config-all-devices.mak', needed by
> `subdir-aarch64-softmmu'. Stop.
>
> or
> make: *** No rule to make target
> `/home/pm215/qemu/default-configs/pci.mak', needed by
> `aarch64-softmmu/config-devices.mak'. Stop.
>
> If there are special instructions for what to do with
> build trees over the transition to kconfig, the pullreq
> cover letter would be a good place to mention them :-)
I think you've got to do a "make distclean" inbetween... that's the old
problem when a default-configs/*.mak file gets added or erased - we do
not properly re-generate the dependencies in that case.
Thomas
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-05 19:45 ` Thomas Huth
@ 2019-03-05 20:08 ` Eric Blake
2019-03-05 20:29 ` Philippe Mathieu-Daudé
2019-03-06 10:12 ` Thomas Huth
0 siblings, 2 replies; 79+ messages in thread
From: Eric Blake @ 2019-03-05 20:08 UTC (permalink / raw)
To: Thomas Huth, Peter Maydell, Paolo Bonzini; +Cc: Yang Zhong, QEMU Developers
On 3/5/19 1:45 PM, Thomas Huth wrote:
>> If there are special instructions for what to do with
>> build trees over the transition to kconfig, the pullreq
>> cover letter would be a good place to mention them :-)
>
> I think you've got to do a "make distclean" inbetween... that's the old
> problem when a default-configs/*.mak file gets added or erased - we do
> not properly re-generate the dependencies in that case.
As in this?
upgrade path:
build old commit
make distclean
git pull/branch/...
build new commit
downgrade path (when bisecting, backporting, ...)
build new commit
make distclean
git branch/reset/...
build old commit
We obviously can't fix old commits to recognize when we are downgrading
from a new commit, but is there anything we can do when upgrading to a
newer commit to more gracefully inform the user if they forgot a 'make
distclean' (or even better, to not make a 'make distclean' on upgrade
mandatory)? In particular, once this patch series lands, developers
doing a blind 'git pull' will end up in the situation:
build old commit
git pull
build new commit # oops
but may not realize that they first have to reset back to the old commit
prior to 'make distclean' to guarantee that it will work. Unless I'm
mistaken and 'make distclean' on an incremental build will work in spite
of the missing dependencies on *.mak files even when you forgot to clean
before upgrading.
'make distclean' is a heavy hammer, is there anything smaller in scope
that will fix the problem without nuking everything, such as a strategic
touch or rm of one particular file?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-05 20:08 ` Eric Blake
@ 2019-03-05 20:29 ` Philippe Mathieu-Daudé
2019-03-06 10:12 ` Thomas Huth
1 sibling, 0 replies; 79+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-03-05 20:29 UTC (permalink / raw)
To: Eric Blake, Thomas Huth, Peter Maydell, Paolo Bonzini
Cc: Yang Zhong, QEMU Developers
On 3/5/19 9:08 PM, Eric Blake wrote:
> On 3/5/19 1:45 PM, Thomas Huth wrote:
>
>>> If there are special instructions for what to do with
>>> build trees over the transition to kconfig, the pullreq
>>> cover letter would be a good place to mention them :-)
>>
>> I think you've got to do a "make distclean" inbetween... that's the old
>> problem when a default-configs/*.mak file gets added or erased - we do
>> not properly re-generate the dependencies in that case.
>
> As in this?
>
> upgrade path:
> build old commit
> make distclean
> git pull/branch/...
make distclean again?
> build new commit
>
> downgrade path (when bisecting, backporting, ...)
> build new commit
> make distclean
> git branch/reset/...
make distclean again?
> build old commit
>
> We obviously can't fix old commits to recognize when we are downgrading
> from a new commit, but is there anything we can do when upgrading to a
> newer commit to more gracefully inform the user if they forgot a 'make
> distclean' (or even better, to not make a 'make distclean' on upgrade
> mandatory)? In particular, once this patch series lands, developers
> doing a blind 'git pull' will end up in the situation:
>
> build old commit
> git pull
> build new commit # oops
>
> but may not realize that they first have to reset back to the old commit
> prior to 'make distclean' to guarantee that it will work. Unless I'm
> mistaken and 'make distclean' on an incremental build will work in spite
> of the missing dependencies on *.mak files even when you forgot to clean
> before upgrading.
>
> 'make distclean' is a heavy hammer, is there anything smaller in scope
> that will fix the problem without nuking everything, such as a strategic
> touch or rm of one particular file?
>
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-05 20:08 ` Eric Blake
2019-03-05 20:29 ` Philippe Mathieu-Daudé
@ 2019-03-06 10:12 ` Thomas Huth
2019-03-08 20:52 ` Eric Blake
1 sibling, 1 reply; 79+ messages in thread
From: Thomas Huth @ 2019-03-06 10:12 UTC (permalink / raw)
To: Eric Blake, Peter Maydell, Paolo Bonzini; +Cc: Yang Zhong, QEMU Developers
On 05/03/2019 21.08, Eric Blake wrote:
[...]
> 'make distclean' is a heavy hammer, is there anything smaller in scope
> that will fix the problem without nuking everything, such as a strategic
> touch or rm of one particular file?
Try this in the top-level folder of your build directory:
rm *.mak.d
... not sure whether we can somehow integrate that into the Makefile
magic, though...
Thomas
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-05 9:32 ` Peter Maydell
2019-03-05 19:45 ` Thomas Huth
@ 2019-03-06 10:57 ` Paolo Bonzini
2019-03-06 11:04 ` Thomas Huth
1 sibling, 1 reply; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-06 10:57 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers, Yang Zhong, Thomas Huth
On 05/03/19 10:32, Peter Maydell wrote:
> Everything fails to build with errors like
> make: *** No rule to make target `config-all-devices.mak', needed by
> `subdir-aarch64-softmmu'. Stop.
>
> or
> make: *** No rule to make target
> `/home/pm215/qemu/default-configs/pci.mak', needed by
> `aarch64-softmmu/config-devices.mak'. Stop.
>
> If there are special instructions for what to do with
> build trees over the transition to kconfig, the pullreq
> cover letter would be a good place to mention them :-)
As others mentioned, this is the "usual" stale dependency issue
requiring distclean.
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-06 10:57 ` Paolo Bonzini
@ 2019-03-06 11:04 ` Thomas Huth
2019-03-06 11:14 ` Philippe Mathieu-Daudé
2019-03-06 11:15 ` Paolo Bonzini
0 siblings, 2 replies; 79+ messages in thread
From: Thomas Huth @ 2019-03-06 11:04 UTC (permalink / raw)
To: Paolo Bonzini, Peter Maydell; +Cc: QEMU Developers, Yang Zhong
On 06/03/2019 11.57, Paolo Bonzini wrote:
> On 05/03/19 10:32, Peter Maydell wrote:
>> Everything fails to build with errors like
>> make: *** No rule to make target `config-all-devices.mak', needed by
>> `subdir-aarch64-softmmu'. Stop.
>>
>> or
>> make: *** No rule to make target
>> `/home/pm215/qemu/default-configs/pci.mak', needed by
>> `aarch64-softmmu/config-devices.mak'. Stop.
>>
>> If there are special instructions for what to do with
>> build trees over the transition to kconfig, the pullreq
>> cover letter would be a good place to mention them :-)
>
> As others mentioned, this is the "usual" stale dependency issue
> requiring distclean.
Can't we somehow add a dependency for the *.mak.d file so that they get
regenerated in this case? ... I tried to hack the Makefile, but so far I
failed...
Thomas
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-06 11:04 ` Thomas Huth
@ 2019-03-06 11:14 ` Philippe Mathieu-Daudé
2019-03-06 11:15 ` Paolo Bonzini
1 sibling, 0 replies; 79+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-03-06 11:14 UTC (permalink / raw)
To: Thomas Huth, Paolo Bonzini, Peter Maydell; +Cc: Yang Zhong, QEMU Developers
On 3/6/19 12:04 PM, Thomas Huth wrote:
> On 06/03/2019 11.57, Paolo Bonzini wrote:
>> On 05/03/19 10:32, Peter Maydell wrote:
>>> Everything fails to build with errors like
>>> make: *** No rule to make target `config-all-devices.mak', needed by
>>> `subdir-aarch64-softmmu'. Stop.
>>>
>>> or
>>> make: *** No rule to make target
>>> `/home/pm215/qemu/default-configs/pci.mak', needed by
>>> `aarch64-softmmu/config-devices.mak'. Stop.
>>>
>>> If there are special instructions for what to do with
>>> build trees over the transition to kconfig, the pullreq
>>> cover letter would be a good place to mention them :-)
>>
>> As others mentioned, this is the "usual" stale dependency issue
>> requiring distclean.
>
> Can't we somehow add a dependency for the *.mak.d file so that they get
> regenerated in this case? ... I tried to hack the Makefile, but so far I
> failed...
Isn't that ./configure responsibility?
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-06 11:04 ` Thomas Huth
2019-03-06 11:14 ` Philippe Mathieu-Daudé
@ 2019-03-06 11:15 ` Paolo Bonzini
1 sibling, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-06 11:15 UTC (permalink / raw)
To: Thomas Huth, Peter Maydell; +Cc: QEMU Developers, Yang Zhong
On 06/03/19 12:04, Thomas Huth wrote:
> On 06/03/2019 11.57, Paolo Bonzini wrote:
>> On 05/03/19 10:32, Peter Maydell wrote:
>>> Everything fails to build with errors like
>>> make: *** No rule to make target `config-all-devices.mak', needed by
>>> `subdir-aarch64-softmmu'. Stop.
>>>
>>> or
>>> make: *** No rule to make target
>>> `/home/pm215/qemu/default-configs/pci.mak', needed by
>>> `aarch64-softmmu/config-devices.mak'. Stop.
>>>
>>> If there are special instructions for what to do with
>>> build trees over the transition to kconfig, the pullreq
>>> cover letter would be a good place to mention them :-)
>>
>> As others mentioned, this is the "usual" stale dependency issue
>> requiring distclean.
>
> Can't we somehow add a dependency for the *.mak.d file so that they get
> regenerated in this case? ... I tried to hack the Makefile, but so far I
> failed...
What we should do is add dummy dependencies for the .mak files, so that
they do not trigger the error messages; this is how gcc -MD avoids the
issue for include files.
With Kconfig it should be a one-line patch, something like
for fname in data.previously_included:
print('%s: %s' % (argv[1], fname), file=deps)
print('%s:' % fname, file=deps)
but it wouldn't fix this case where the stale .mak file is preexisting.
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (55 preceding siblings ...)
2019-03-05 9:32 ` Peter Maydell
@ 2019-03-07 13:25 ` Peter Maydell
2019-03-07 13:47 ` Philippe Mathieu-Daudé
2019-03-07 13:55 ` Paolo Bonzini
2019-03-08 16:23 ` no-reply
57 siblings, 2 replies; 79+ messages in thread
From: Peter Maydell @ 2019-03-07 13:25 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU Developers, Yang Zhong, Thomas Huth
On Mon, 4 Mar 2019 at 19:25, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 1ba530a4ecba6015d52d8f392fd327cfa07bc37a:
>
> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190304' into staging (2019-03-04 13:38:54 +0000)
>
> are available in the git repository at:
>
>
> git://github.com/bonzini/qemu.git tags/for-upstream-kconfig
>
> for you to fetch changes up to b1d8b9a6cc37e33dde1873379174de78957830ca:
>
> kconfig: add documentation (2019-03-04 19:09:35 +0100)
>
> ----------------------------------------------------------------
> Initial Kconfig work, excluding ARM and MIPS
Build failure for the Windows builds:
In file included from /home/petmay01/qemu-for-merges/hw/tpm/tpm_emulator.c:37:0:
/home/petmay01/qemu-for-merges/hw/tpm/tpm_ioctl.h:11:21: fatal error:
sys/uio.h: No such file or directory
I'm not sure what's happened here. It looks like the Kconfig machinery
is putting CONFIG_TPM_EMULATOR in build/x86-64-softmmu/config-devices.mak,
but configure is trying to put it into config-host.mak. The configure
code is where the "don't do TPM on windows" check is, but the Kconfig
entry in config-devices.mak overrides that and tries to build this
code on Windows anyway.
All the other builds seemed to run ok (I'm just rerunning one lot
which failed due to an issue on my end; will follow up if there's
any failure there).
thanks
-- PMM
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-07 13:25 ` Peter Maydell
@ 2019-03-07 13:47 ` Philippe Mathieu-Daudé
2019-03-07 14:09 ` Paolo Bonzini
2019-03-07 13:55 ` Paolo Bonzini
1 sibling, 1 reply; 79+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-03-07 13:47 UTC (permalink / raw)
To: Peter Maydell, Paolo Bonzini; +Cc: Yang Zhong, Thomas Huth, QEMU Developers
On 3/7/19 2:25 PM, Peter Maydell wrote:
> On Mon, 4 Mar 2019 at 19:25, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> The following changes since commit 1ba530a4ecba6015d52d8f392fd327cfa07bc37a:
>>
>> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190304' into staging (2019-03-04 13:38:54 +0000)
>>
>> are available in the git repository at:
>>
>>
>> git://github.com/bonzini/qemu.git tags/for-upstream-kconfig
>>
>> for you to fetch changes up to b1d8b9a6cc37e33dde1873379174de78957830ca:
>>
>> kconfig: add documentation (2019-03-04 19:09:35 +0100)
>>
>> ----------------------------------------------------------------
>> Initial Kconfig work, excluding ARM and MIPS
>
> Build failure for the Windows builds:
>
> In file included from /home/petmay01/qemu-for-merges/hw/tpm/tpm_emulator.c:37:0:
> /home/petmay01/qemu-for-merges/hw/tpm/tpm_ioctl.h:11:21: fatal error:
> sys/uio.h: No such file or directory
>
> I'm not sure what's happened here. It looks like the Kconfig machinery
> is putting CONFIG_TPM_EMULATOR in build/x86-64-softmmu/config-devices.mak,
> but configure is trying to put it into config-host.mak. The configure
> code is where the "don't do TPM on windows" check is, but the Kconfig
> entry in config-devices.mak overrides that and tries to build this
> code on Windows anyway.
Paolo, we might need:
-- >8 --
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -336,6 +336,7 @@ MINIKCONF_ARGS = \
CONFIG_SPICE=$(CONFIG_SPICE) \
CONFIG_IVSHMEM=$(CONFIG_IVSHMEM) \
CONFIG_TPM=$(CONFIG_TPM) \
+ CONFIG_TPM_EMULATOR=$(CONFIG_TPM_EMULATOR) \
CONFIG_XEN=$(CONFIG_XEN) \
CONFIG_OPENGL=$(CONFIG_OPENGL) \
CONFIG_X11=$(CONFIG_X11) \
---
I'm not sure about CONFIG_TPM_PASSTHROUGH.
>
> All the other builds seemed to run ok (I'm just rerunning one lot
> which failed due to an issue on my end; will follow up if there's
> any failure there).
>
> thanks
> -- PMM
>
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-07 13:25 ` Peter Maydell
2019-03-07 13:47 ` Philippe Mathieu-Daudé
@ 2019-03-07 13:55 ` Paolo Bonzini
1 sibling, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-07 13:55 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers, Yang Zhong, Thomas Huth
On 07/03/19 14:25, Peter Maydell wrote:
> In file included from /home/petmay01/qemu-for-merges/hw/tpm/tpm_emulator.c:37:0:
> /home/petmay01/qemu-for-merges/hw/tpm/tpm_ioctl.h:11:21: fatal error:
> sys/uio.h: No such file or directory
>
> I'm not sure what's happened here. It looks like the Kconfig machinery
> is putting CONFIG_TPM_EMULATOR in build/x86-64-softmmu/config-devices.mak,
> but configure is trying to put it into config-host.mak. The configure
> code is where the "don't do TPM on windows" check is, but the Kconfig
> entry in config-devices.mak overrides that and tries to build this
> code on Windows anyway.
>
> All the other builds seemed to run ok (I'm just rerunning one lot
> which failed due to an issue on my end; will follow up if there's
> any failure there).
I did the final push to github from the wrong machine. :( Resending.
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-07 13:47 ` Philippe Mathieu-Daudé
@ 2019-03-07 14:09 ` Paolo Bonzini
0 siblings, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-07 14:09 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Peter Maydell
Cc: Yang Zhong, Thomas Huth, QEMU Developers
On 07/03/19 14:47, Philippe Mathieu-Daudé wrote:
> Paolo, we might need:
>
> -- >8 --
> diff --git a/Makefile b/Makefile
> --- a/Makefile
> +++ b/Makefile
> @@ -336,6 +336,7 @@ MINIKCONF_ARGS = \
> CONFIG_SPICE=$(CONFIG_SPICE) \
> CONFIG_IVSHMEM=$(CONFIG_IVSHMEM) \
> CONFIG_TPM=$(CONFIG_TPM) \
> + CONFIG_TPM_EMULATOR=$(CONFIG_TPM_EMULATOR) \
> CONFIG_XEN=$(CONFIG_XEN) \
> CONFIG_OPENGL=$(CONFIG_OPENGL) \
> CONFIG_X11=$(CONFIG_X11) \
> ---
>
> I'm not sure about CONFIG_TPM_PASSTHROUGH.
Instead of that I'm disabling tpm completely in configure for mingw:
tpm=""
...
if test "$tpm" = ""; then
if test "$mingw32" = "yes"; then
tpm=no
else
tpm=yes
fi
elif test "$tpm" = "yes"; then
if test "$mingw32" = "yes" ; then
error_exit "TPM emulation only available on POSIX systems"
fi
fi
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
` (56 preceding siblings ...)
2019-03-07 13:25 ` Peter Maydell
@ 2019-03-08 16:23 ` no-reply
57 siblings, 0 replies; 79+ messages in thread
From: no-reply @ 2019-03-08 16:23 UTC (permalink / raw)
To: pbonzini; +Cc: fam, qemu-devel, yang.zhong, thuth
Patchew URL: https://patchew.org/QEMU/1551723614-1823-1-git-send-email-pbonzini@redhat.com/
Hi,
This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.
=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
In file included from /tmp/qemu-test/src/hw/tpm/tpm_emulator.c:37:
/tmp/qemu-test/src/hw/tpm/tpm_ioctl.h:11:10: fatal error: sys/uio.h: No such file or directory
#include <sys/uio.h>
^~~~~~~~~~~
compilation terminated.
The full log is available at
http://patchew.org/logs/1551723614-1823-1-git-send-email-pbonzini@redhat.com/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS
2019-03-06 10:12 ` Thomas Huth
@ 2019-03-08 20:52 ` Eric Blake
0 siblings, 0 replies; 79+ messages in thread
From: Eric Blake @ 2019-03-08 20:52 UTC (permalink / raw)
To: Thomas Huth, Peter Maydell, Paolo Bonzini; +Cc: Yang Zhong, QEMU Developers
[-- Attachment #1: Type: text/plain, Size: 687 bytes --]
On 3/6/19 4:12 AM, Thomas Huth wrote:
> On 05/03/2019 21.08, Eric Blake wrote:
> [...]
>> 'make distclean' is a heavy hammer, is there anything smaller in scope
>> that will fix the problem without nuking everything, such as a strategic
>> touch or rm of one particular file?
>
> Try this in the top-level folder of your build directory:
>
> rm *.mak.d
Worked here, thanks!
>
> ... not sure whether we can somehow integrate that into the Makefile
> magic, though...
I'm not sure either, nor did I want to spend time today trying.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-04 18:19 ` [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig Paolo Bonzini
@ 2019-03-14 12:53 ` Andrea Bolognani
2019-03-14 13:00 ` Michael S. Tsirkin
2019-03-14 13:13 ` Paolo Bonzini
0 siblings, 2 replies; 79+ messages in thread
From: Andrea Bolognani @ 2019-03-14 12:53 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel, qemu-riscv
Cc: Yang Zhong, thuth, Michael S. Tsirkin, Palmer Dabbelt,
Alistair Francis, Richard W.M. Jones, David Abdurachmanov
On Mon, 2019-03-04 at 19:19 +0100, Paolo Bonzini wrote:
> 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. However, s390x does not want all the
> PCI devices, so there is a separate symbol to enable them.
[...]
> +++ b/default-configs/riscv32-softmmu.mak
> @@ -1,8 +1,8 @@
> # Default configuration for riscv-softmmu
>
> -include pci.mak
> include usb.mak
> -
> +CONFIG_PCI=y
> +CONFIG_PCI_DEVICES=y
> CONFIG_SERIAL=y
> CONFIG_VIRTIO_MMIO=y
I *think* this might have caused some unwanted changes for RISC-V.
pcie-root-port is built into qemu-system-riscv64 by default as of
dbbc277510aa (along with ioh3420!), but if you actually try to use it
you'll get:
$ ./riscv64-softmmu/qemu-system-riscv64 \
-M virt \
-device pcie-root-port
qemu-system-riscv64: -device pcie-root-port: MSI-X is not
supported by interrupt controller
This is a limitation we have been aware of, and the plan was to
enable the device in QEMU once it had been addressed: from the
libvirt side, the availability of the device would have meant that it
was safe to use it, but if the device is enabled in QEMU before it
can actually be used, then that makes detection on the libvirt side
problematic.
I haven't spent time digging further - and I'm not familiar enough
with the QEMU build system anyway O:-) - but I wouldn't be surprised
if the same happened for other architectures, too.
--
Andrea Bolognani / Red Hat / Virtualization
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 12:53 ` [Qemu-riscv] " Andrea Bolognani
@ 2019-03-14 13:00 ` Michael S. Tsirkin
2019-03-14 13:03 ` David Abdurachmanov
2019-03-14 13:44 ` Paolo Bonzini
2019-03-14 13:13 ` Paolo Bonzini
1 sibling, 2 replies; 79+ messages in thread
From: Michael S. Tsirkin @ 2019-03-14 13:00 UTC (permalink / raw)
To: Andrea Bolognani
Cc: Paolo Bonzini, qemu-devel, qemu-riscv, Yang Zhong, thuth,
Palmer Dabbelt, Alistair Francis, Richard W.M. Jones,
David Abdurachmanov
On Thu, Mar 14, 2019 at 01:53:48PM +0100, Andrea Bolognani wrote:
> On Mon, 2019-03-04 at 19:19 +0100, Paolo Bonzini wrote:
> > 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. However, s390x does not want all the
> > PCI devices, so there is a separate symbol to enable them.
> [...]
> > +++ b/default-configs/riscv32-softmmu.mak
> > @@ -1,8 +1,8 @@
> > # Default configuration for riscv-softmmu
> >
> > -include pci.mak
> > include usb.mak
> > -
> > +CONFIG_PCI=y
> > +CONFIG_PCI_DEVICES=y
> > CONFIG_SERIAL=y
> > CONFIG_VIRTIO_MMIO=y
>
> I *think* this might have caused some unwanted changes for RISC-V.
>
> pcie-root-port is built into qemu-system-riscv64 by default as of
> dbbc277510aa (along with ioh3420!), but if you actually try to use it
> you'll get:
>
> $ ./riscv64-softmmu/qemu-system-riscv64 \
> -M virt \
> -device pcie-root-port
> qemu-system-riscv64: -device pcie-root-port: MSI-X is not
> supported by interrupt controller
>
> This is a limitation we have been aware of, and the plan was to
> enable the device in QEMU once it had been addressed: from the
> libvirt side, the availability of the device would have meant that it
> was safe to use it, but if the device is enabled in QEMU before it
> can actually be used, then that makes detection on the libvirt side
> problematic.
>
> I haven't spent time digging further - and I'm not familiar enough
> with the QEMU build system anyway O:-) - but I wouldn't be surprised
> if the same happened for other architectures, too.
I'd say just disable it at build time by default.
How about a dependency on BROKEN? Developers can
enable it temporarily. Paolo?
> --
> Andrea Bolognani / Red Hat / Virtualization
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 13:00 ` Michael S. Tsirkin
@ 2019-03-14 13:03 ` David Abdurachmanov
2019-03-14 17:34 ` Paolo Bonzini
2019-03-14 13:44 ` Paolo Bonzini
1 sibling, 1 reply; 79+ messages in thread
From: David Abdurachmanov @ 2019-03-14 13:03 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Andrea Bolognani, Paolo Bonzini, qemu-devel, qemu-riscv,
Yang Zhong, thuth, Palmer Dabbelt, Alistair Francis,
Richard W.M. Jones
On Thu, Mar 14, 2019 at 2:00 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Thu, Mar 14, 2019 at 01:53:48PM +0100, Andrea Bolognani wrote:
> > On Mon, 2019-03-04 at 19:19 +0100, Paolo Bonzini wrote:
> > > 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. However, s390x does not want all the
> > > PCI devices, so there is a separate symbol to enable them.
> > [...]
> > > +++ b/default-configs/riscv32-softmmu.mak
> > > @@ -1,8 +1,8 @@
> > > # Default configuration for riscv-softmmu
> > >
> > > -include pci.mak
> > > include usb.mak
> > > -
> > > +CONFIG_PCI=y
> > > +CONFIG_PCI_DEVICES=y
> > > CONFIG_SERIAL=y
> > > CONFIG_VIRTIO_MMIO=y
> >
> > I *think* this might have caused some unwanted changes for RISC-V.
> >
> > pcie-root-port is built into qemu-system-riscv64 by default as of
> > dbbc277510aa (along with ioh3420!), but if you actually try to use it
> > you'll get:
> >
> > $ ./riscv64-softmmu/qemu-system-riscv64 \
> > -M virt \
> > -device pcie-root-port
> > qemu-system-riscv64: -device pcie-root-port: MSI-X is not
> > supported by interrupt controller
> >
> > This is a limitation we have been aware of, and the plan was to
> > enable the device in QEMU once it had been addressed: from the
> > libvirt side, the availability of the device would have meant that it
> > was safe to use it, but if the device is enabled in QEMU before it
> > can actually be used, then that makes detection on the libvirt side
> > problematic.
> >
> > I haven't spent time digging further - and I'm not familiar enough
> > with the QEMU build system anyway O:-) - but I wouldn't be surprised
> > if the same happened for other architectures, too.
>
> I'd say just disable it at build time by default.
> How about a dependency on BROKEN? Developers can
> enable it temporarily. Paolo?
Would it be enough to modify ./default-configs/riscv32-softmmu.mak by
adding:
CONFIG_PCIE_PORT=n
?
>
> > --
> > Andrea Bolognani / Red Hat / Virtualization
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 12:53 ` [Qemu-riscv] " Andrea Bolognani
2019-03-14 13:00 ` Michael S. Tsirkin
@ 2019-03-14 13:13 ` Paolo Bonzini
1 sibling, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-14 13:13 UTC (permalink / raw)
To: Andrea Bolognani, qemu-devel, qemu-riscv
Cc: Yang Zhong, thuth, Michael S. Tsirkin, Palmer Dabbelt,
Alistair Francis, Richard W.M. Jones, David Abdurachmanov
On 14/03/19 13:53, Andrea Bolognani wrote:
>
> $ ./riscv64-softmmu/qemu-system-riscv64 \
> -M virt \
> -device pcie-root-port
> qemu-system-riscv64: -device pcie-root-port: MSI-X is not
> supported by interrupt controller
>
> This is a limitation we have been aware of, and the plan was to
> enable the device in QEMU once it had been addressed: from the
> libvirt side, the availability of the device would have meant that it
> was safe to use it, but if the device is enabled in QEMU before it
> can actually be used, then that makes detection on the libvirt side
> problematic.
Interesting, I didn't know that. Kconfig is perfect for expressing this
kind of dependency though. I'll send a series soon.
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 13:00 ` Michael S. Tsirkin
2019-03-14 13:03 ` David Abdurachmanov
@ 2019-03-14 13:44 ` Paolo Bonzini
1 sibling, 0 replies; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-14 13:44 UTC (permalink / raw)
To: Michael S. Tsirkin, Andrea Bolognani
Cc: qemu-devel, qemu-riscv, Yang Zhong, thuth, Palmer Dabbelt,
Alistair Francis, Richard W.M. Jones, David Abdurachmanov
On 14/03/19 14:00, Michael S. Tsirkin wrote:
>>
>> I haven't spent time digging further - and I'm not familiar enough
>> with the QEMU build system anyway O:-) - but I wouldn't be surprised
>> if the same happened for other architectures, too.
> I'd say just disable it at build time by default.
> How about a dependency on BROKEN? Developers can
> enable it temporarily. Paolo?
>
Can do better. Sending patch as soon as build finishes. :)
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 13:03 ` David Abdurachmanov
@ 2019-03-14 17:34 ` Paolo Bonzini
2019-03-14 18:48 ` Markus Armbruster
0 siblings, 1 reply; 79+ messages in thread
From: Paolo Bonzini @ 2019-03-14 17:34 UTC (permalink / raw)
To: David Abdurachmanov, Michael S. Tsirkin
Cc: Yang Zhong, thuth, qemu-riscv, Richard W.M. Jones,
Palmer Dabbelt, Andrea Bolognani, qemu-devel, Alistair Francis
On 14/03/19 14:03, David Abdurachmanov wrote:
> Would it be enough to modify ./default-configs/riscv32-softmmu.mak by
> adding:
>
> CONFIG_PCIE_PORT=n
The missing dependency is for any board that doesn't support MSI, not
just RISC-V.
Note that technically what we do with msi_nonbroken makes no sense from
the PCI point of view. An "MSI" is just a memory write so there is no
such thing as a device that doesn't work because the board doesn't
support MSI; it should be up to the OS not to configure MSI unless it
knows the interrupt controller can be set up as a destination for MSIs.
The driver in the OS then can choose to use level-triggered interrupts
(INTX) instead, or it can refuse to load. At least, this is how QEMU
*should* work.
However, we started doing this msi_nonbroken thing, and therefore, since
we can model it correctly with Kconfig and obtain the same results as
pre-Kconfig, it's a better way to do it.
Paolo
^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Qemu-riscv] [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig
2019-03-14 17:34 ` Paolo Bonzini
@ 2019-03-14 18:48 ` Markus Armbruster
0 siblings, 0 replies; 79+ messages in thread
From: Markus Armbruster @ 2019-03-14 18:48 UTC (permalink / raw)
To: Paolo Bonzini
Cc: David Abdurachmanov, Michael S. Tsirkin, Yang Zhong, thuth,
qemu-riscv, qemu-devel, Palmer Dabbelt, Richard W.M. Jones,
Andrea Bolognani, Alistair Francis
Paolo Bonzini <pbonzini@redhat.com> writes:
> On 14/03/19 14:03, David Abdurachmanov wrote:
>> Would it be enough to modify ./default-configs/riscv32-softmmu.mak by
>> adding:
>>
>> CONFIG_PCIE_PORT=n
>
> The missing dependency is for any board that doesn't support MSI, not
> just RISC-V.
>
> Note that technically what we do with msi_nonbroken makes no sense from
> the PCI point of view. An "MSI" is just a memory write so there is no
> such thing as a device that doesn't work because the board doesn't
> support MSI; it should be up to the OS not to configure MSI unless it
> knows the interrupt controller can be set up as a destination for MSIs.
> The driver in the OS then can choose to use level-triggered interrupts
> (INTX) instead, or it can refuse to load. At least, this is how QEMU
> *should* work.
Yes.
The problem is virtual interrupt controllers that claim to support MSI
when they don't. The OS's probe returns "go ahead and use MSI", and the
system falls apart.
So we put in a lame work-around: if MSI is broken, mangle all PCI
devices to make them deny MSI capability.
The next problem is that we don't even know which of our interrupt
controllers have MSI working. So we summarily declare them all broken,
then have the few we actually know declare themselves non-broken.
A bit of background in the thread around
Message-ID: <87wppi1vol.fsf@blackfin.pond.sub.org>
https://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg00983.html
> However, we started doing this msi_nonbroken thing, and therefore, since
> we can model it correctly with Kconfig and obtain the same results as
> pre-Kconfig, it's a better way to do it.
As long as the MSI mess exists, we deal with it as well as we can.
^ permalink raw reply [flat|nested] 79+ messages in thread
end of thread, other threads:[~2019-03-14 20:16 UTC | newest]
Thread overview: 79+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-04 18:19 [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 01/54] block: fix recursion in hw/block/dataplane Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 02/54] 9pfs: remove unnecessary conditionals Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 03/54] xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 04/54] minikconfig: add parser skeleton Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 05/54] minikconfig: add AST Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 06/54] minikconfig: add semantic analysis Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 07/54] hw/display: make edid configurable Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 08/54] kconfig: introduce kconfig files Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 09/54] build: switch to Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 10/54] minikconfig: implement allnoconfig and defconfig modes Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 11/54] kconfig: introduce CONFIG_TEST_DEVICES Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 12/54] ide: express dependencies with Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 13/54] hw/pci/Makefile.objs: make pcie configurable Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 14/54] isa: express dependencies with kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 15/54] build: convert pci.mak to Kconfig Paolo Bonzini
2019-03-14 12:53 ` [Qemu-riscv] " Andrea Bolognani
2019-03-14 13:00 ` Michael S. Tsirkin
2019-03-14 13:03 ` David Abdurachmanov
2019-03-14 17:34 ` Paolo Bonzini
2019-03-14 18:48 ` Markus Armbruster
2019-03-14 13:44 ` Paolo Bonzini
2019-03-14 13:13 ` Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 16/54] build: convert sound.mak " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 17/54] scsi: express dependencies with Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 18/54] build: convert usb.mak to Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 19/54] i386: express dependencies with Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 20/54] i2c: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 21/54] ptimer: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 22/54] display: express dependencies with kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 23/54] hyperv: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 24/54] vfio: express vfio dependencies with Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 25/54] virtio: express virtio " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 26/54] tpm: express " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 27/54] isa: express SuperIO " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 28/54] ssi: express dependencies with kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 29/54] sd: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 30/54] ipmi: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 31/54] i386-softmmu.mak: remove all CONFIG_* except boards definitions Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 32/54] ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 33/54] ppc: Express dependencies of the 'prep' and '40p' " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 34/54] ppc: Express dependencies of the Mac " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 35/54] ppc: Express dependencies of the Sam460EX " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 36/54] ppc: Express dependencies of the embedded " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 37/54] alpha-softmmu.mak: express dependencies with Kconfig Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 38/54] cris-softmmu.mak: " Paolo Bonzini
2019-03-04 18:19 ` [Qemu-devel] [PULL 39/54] hppa-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 40/54] lm32-softmmu.mak: " Paolo Bonzini
2019-03-04 23:55 ` Philippe Mathieu-Daudé
2019-03-04 18:20 ` [Qemu-devel] [PULL 41/54] m68k-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 42/54] microblaze-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 43/54] moxie-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 44/54] nios2-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 45/54] or1k-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 46/54] riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 47/54] s390x: express dependencies with Kconfig Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 48/54] sh4-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 49/54] sparc-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 50/54] sparc64-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 51/54] unicore32-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 52/54] xtensa-softmmu.mak: " Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 53/54] .travis.yml: test that no-default-device builds do not regress Paolo Bonzini
2019-03-04 18:20 ` [Qemu-devel] [PULL 54/54] kconfig: add documentation Paolo Bonzini
2019-03-04 20:16 ` [Qemu-devel] [PULL 00/54] Kconfig conversion, excluding ARM and MIPS no-reply
2019-03-05 9:32 ` Peter Maydell
2019-03-05 19:45 ` Thomas Huth
2019-03-05 20:08 ` Eric Blake
2019-03-05 20:29 ` Philippe Mathieu-Daudé
2019-03-06 10:12 ` Thomas Huth
2019-03-08 20:52 ` Eric Blake
2019-03-06 10:57 ` Paolo Bonzini
2019-03-06 11:04 ` Thomas Huth
2019-03-06 11:14 ` Philippe Mathieu-Daudé
2019-03-06 11:15 ` Paolo Bonzini
2019-03-07 13:25 ` Peter Maydell
2019-03-07 13:47 ` Philippe Mathieu-Daudé
2019-03-07 14:09 ` Paolo Bonzini
2019-03-07 13:55 ` Paolo Bonzini
2019-03-08 16:23 ` no-reply
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.