[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU
From: |
Yang Zhong |
Subject: |
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU |
Date: |
Fri, 25 Jan 2019 19:07:08 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Jan 25, 2019 at 11:06:19AM +0100, Paolo Bonzini wrote:
> (I'm only momentarily at the helm and will give control back to Yang after
> this iteration.)
>
> This is still RFC mostly because of the lack of documentation, and because
> only x86 is fully converted, but it's converging. Other targets still
> enable embedded devices in default-configs/ instead of using "select"
> directives. For many targets, the conversion will be trivial because
> they only support one board. The complex ones are ARM, MIPS and PPC
> of course. s390 as usual is just different in some respects, but all
> of its issues are sorted out already in this series and so it's just
> yet another single-board target.
>
> It supports defconfig (default-configs file chooses boards only)
> and allnoconfig (default-configs file chooses devices too) and builds
> all targets. I haven't yet checked that the configuration is the same
> before and after the conversion, but at least device-introspection-test
> and other qtests all pass, which did catch some errors.
>
> As mentioned in the previous versions, this is only a replacement
> for default-configs, in order to simplify configuration and remove
> the need to track dependencies between configuration symbols. In
> fact, even with the current incomplete conversion the diffstat
> for default-configs is already
>
> 31 files changed, 108 insertions(+), 241 deletions(-)
>
> Devices can be disabled by adding for example
>
> CONFIG_HPET=n
>
> to default-configs/i386-softmmu.mak. If you prefer they can be
> listed manually and "make allnoconfig" can be executed before
> building. This probably should become a configure option
> "--without-default-devices" instead.
>
> For the previous discussions on the Kconfig design, see
> http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html
>
> Patches 1-27 should probably be committed now, so please review! Yang,
> once they are reviewed you can extract them and post them to the
> mailing list as non-RFC!
Thanks Paolo, you helped me address comments in v4 and i will do it.
Yang
> As to the rest, you're welcome to try them, post conversions for the
> simple targets, suggest usability improvements, and whatever. Thanks to
> everyone for the work on the previous iterations. It's great to see
> the work on this GSoC project come back to life after five years!
>
> v4->v5: new patches 1, 2, 3, 13, 26, 27, 47, 49, 50, 52
> Removed CONFIG_TYPHOON (patch 20)
> Removed CONFIG_DINO (patch 22)
> ported minikconf to python 3
> improved some minikconf error messages
> added missing symbols in patch 32
> added CONFIG_VHOST_USER and CONFIG_LINUX, made CONFIG_KVM per target
> (patch 33)
> removed $(...) assignments from default-configs/ (patch 33)
> moved allnoconfig patch earlier, removed allyesconfig/randconfig
> add CONFIG_PCI_EXPRESS to non-x86 targets (patch 36)
> added CONFIG_PCI_DEVICES in patch 37 to support s390x
> virtio-mmio does not support vhost-user yet (patches 40 and 48)
> fix PCSPK for platforms that lack an i8254 (patch 41)
> add "select ISA_BUS" to I82378 and SUN4U (patch 41)
> changed QXL/VTD/AMD_IOMMU from "select" to "default y if ..." (patch 42)
> moved "select PAM" and "select ISA_BUS" from board to device (patch 42)
> brought patch 44 up to date
> fixed MILKYMIST_TMU2 to only apply to MILKYMIST (patch 45)
> new config symbol VIRTIO_INPUT_HOST
> fixed select/depends for virtio (patch 48)
> moved some ACPI dependencies from board to devices (patch 51)
>
> Paolo Bonzini (27):
> arm: disable CONFIG_SERIAL_ISA
> ide: split ioport registration to a separate file
> vfio: move conditional up to hw/Makefile.objs
> build: actually use CONFIG_PAM
> hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards
> hw/s390/Makefile.objs: Create new CONFIG_* variables for s390x boards and
> devices
> hw/i2c/Makefile.objs: Create new CONFIG_* variables for EEPROM and ACPI
> controller
> hw/vfio/Makefile.objs: Create new CONFIG_* variables for VFIO core and PCI
> minikconfig: add parser skeleton
> minikconfig: add AST
> minikconfig: add semantic analysis
> kconfig: introduce kconfig files
> build: switch to Kconfig
> minikconf: implement allnoconfig and defconfig
> ide: express dependencies with Kconfig
> build: convert pci.mak to Kconfig
> build: convert sound.mak to Kconfig
> build: convert usb.mak to Kconfig
> scsi: express dependencies with Kconfig
> isa: express dependencies with 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
> kconfig: introduce CONFIG_TEST_DEVICES
>
> Yang Zhong (17):
> hw/pci-host/Makefile.objs: make CONFIGS clear for PCI EXPRESS
> hw/arm/Makefile.objs: CONFIG_VIRT created for virt board
> hw/nios2/Makefile.objs: Conditionally build nios2
> hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards
> hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64
> hw/alpha/Makefile.objs: Create CONFIG_* for alpha
> hw/cris/Makefile.objs: Create CONFIG_* for cris
> hw/hppa/Makefile.objs: Create CONFIG_* for hppa
> hw/moxie/Makefile.objs: Conditionally build moxie
> hw/openrisc/Makefile.objs: Create CONFIG_* for openrisc
> hw/tricore/Makefile.objs: Create CONFIG_* for tricore
> 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
>
> Ákos Kovács (8):
> hw/m68k/Makefile.objs: Conditionally build boards
> hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx
> boards
> hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards
> hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_*
> hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards
> and device
> hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created
> hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst
> hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga
> conditionally
>
> Kconfig.host | 24 ++
> Makefile | 27 +-
> Makefile.target | 7 +-
> configure | 3 +
> default-configs/alpha-softmmu.mak | 14 +-
> default-configs/arm-softmmu.mak | 16 +-
> default-configs/cris-softmmu.mak | 2 +-
> default-configs/hppa-softmmu.mak | 6 +-
> default-configs/hyperv.mak | 2 -
> default-configs/i386-softmmu.mak | 77 +---
> default-configs/lm32-softmmu.mak | 2 -
> default-configs/m68k-softmmu.mak | 3 +-
> default-configs/microblaze-softmmu.mak | 4 +-
> default-configs/mips-softmmu-common.mak | 13 +-
> default-configs/mips64el-softmmu.mak | 3 +-
> default-configs/moxie-softmmu.mak | 1 +
> default-configs/nios2-softmmu.mak | 2 +-
> default-configs/or1k-softmmu.mak | 1 +
> default-configs/pci.mak | 49 ---
> default-configs/ppc-softmmu.mak | 28 +-
> default-configs/ppc64-softmmu.mak | 5 -
> default-configs/riscv32-softmmu.mak | 15 +-
> default-configs/riscv64-softmmu.mak | 15 +-
> default-configs/s390x-softmmu.mak | 9 +-
> default-configs/sh4-softmmu.mak | 17 +-
> default-configs/sh4eb-softmmu.mak | 15 +-
> default-configs/sound.mak | 4 -
> default-configs/sparc-softmmu.mak | 3 +-
> default-configs/sparc64-softmmu.mak | 9 +-
> default-configs/tricore-softmmu.mak | 1 +
> default-configs/unicore32-softmmu.mak | 1 -
> default-configs/usb.mak | 11 -
> default-configs/virtio.mak | 15 -
> default-configs/xtensa-softmmu.mak | 3 +
> default-configs/xtensaeb-softmmu.mak | 3 +
> docs/devel/build-system.txt | 1 -
> hw/9pfs/Kconfig | 6 +
> hw/Kconfig | 73 ++++
> hw/Makefile.objs | 4 +-
> hw/acpi/Kconfig | 29 ++
> hw/adc/Kconfig | 2 +
> hw/alpha/Kconfig | 2 +
> hw/alpha/Makefile.objs | 2 +-
> hw/arm/Kconfig | 117 ++++++
> hw/arm/Makefile.objs | 3 +-
> hw/audio/Kconfig | 52 +++
> hw/block/Kconfig | 38 ++
> hw/bt/Kconfig | 2 +
> hw/char/Kconfig | 42 ++
> hw/core/Kconfig | 11 +
> hw/cpu/Kconfig | 8 +
> hw/cris/Kconfig | 6 +
> hw/cris/Makefile.objs | 2 +-
> hw/display/Kconfig | 107 +++++
> hw/display/Makefile.objs | 4 +-
> hw/dma/Kconfig | 21 +
> hw/gpio/Kconfig | 9 +
> hw/hppa/Kconfig | 5 +
> hw/hppa/Makefile.objs | 2 +-
> hw/hyperv/Kconfig | 9 +
> hw/i2c/Kconfig | 27 ++
> hw/i2c/Makefile.objs | 7 +-
> hw/i386/Kconfig | 88 ++++
> hw/i386/Makefile.objs | 4 +-
> hw/ide/Kconfig | 54 +++
> hw/ide/Makefile.objs | 6 +-
> hw/ide/core.c | 25 --
> hw/ide/ioport.c | 67 ++++
> hw/input/Kconfig | 33 ++
> hw/intc/Kconfig | 59 +++
> hw/ipack/Kconfig | 4 +
> hw/ipmi/Kconfig | 22 +
> hw/isa/Kconfig | 53 +++
> hw/lm32/Kconfig | 7 +
> hw/lm32/Makefile.objs | 4 +-
> hw/m68k/Kconfig | 10 +
> hw/m68k/Makefile.objs | 4 +-
> hw/mem/Kconfig | 10 +
> hw/microblaze/Kconfig | 8 +
> hw/microblaze/Makefile.objs | 6 +-
> hw/mips/Kconfig | 21 +
> hw/mips/Makefile.objs | 5 +-
> hw/misc/Kconfig | 112 ++++++
> hw/misc/macio/Kconfig | 11 +
> hw/moxie/Kconfig | 2 +
> hw/moxie/Makefile.objs | 2 +-
> hw/net/Kconfig | 122 ++++++
> hw/net/Makefile.objs | 4 +-
> hw/nios2/Kconfig | 5 +
> hw/nios2/Makefile.objs | 3 +-
> hw/nvram/Kconfig | 8 +
> hw/openrisc/Kconfig | 2 +
> hw/openrisc/Makefile.objs | 2 +-
> hw/pci-bridge/Kconfig | 29 ++
> hw/pci-host/Kconfig | 49 +++
> hw/pci-host/Makefile.objs | 10 +-
> hw/pci/Kconfig | 9 +
> hw/pci/Makefile.objs | 9 +-
> hw/pcmcia/Kconfig | 2 +
> hw/ppc/Kconfig | 60 +++
> hw/ppc/Makefile.objs | 11 +-
> hw/riscv/Kconfig | 19 +
> hw/riscv/Makefile.objs | 22 +-
> hw/s390x/Kconfig | 2 +
> hw/s390x/Makefile.objs | 2 +
> hw/scsi/Kconfig | 54 +++
> hw/scsi/Makefile.objs | 2 +-
> hw/sd/Kconfig | 14 +
> hw/sh4/Kconfig | 12 +
> hw/sh4/Makefile.objs | 4 +-
> hw/smbios/Kconfig | 2 +
> hw/sparc/Kconfig | 13 +
> hw/sparc/Makefile.objs | 4 +-
> hw/sparc64/Kconfig | 6 +
> hw/sparc64/Makefile.objs | 6 +-
> hw/ssi/Kconfig | 14 +
> hw/timer/Kconfig | 63 +++
> hw/tpm/Kconfig | 27 ++
> hw/tricore/Kconfig | 2 +
> hw/tricore/Makefile.objs | 2 +-
> hw/unicore32/Kconfig | 3 +
> hw/usb/Kconfig | 91 +++++
> hw/vfio/Kconfig | 36 ++
> hw/vfio/Makefile.objs | 9 +-
> hw/virtio/Kconfig | 27 ++
> hw/watchdog/Kconfig | 16 +
> hw/xtensa/Kconfig | 5 +
> hw/xtensa/Makefile.objs | 4 +-
> rules.mak | 2 +-
> scripts/make_device_config.sh | 30 --
> scripts/minikconf.py | 687
> ++++++++++++++++++++++++++++++++
> 131 files changed, 2749 insertions(+), 374 deletions(-)
> create mode 100644 Kconfig.host
> delete mode 100644 default-configs/hyperv.mak
> delete mode 100644 default-configs/pci.mak
> delete mode 100644 default-configs/sound.mak
> delete mode 100644 default-configs/usb.mak
> delete mode 100644 default-configs/virtio.mak
> create mode 100644 hw/9pfs/Kconfig
> create mode 100644 hw/Kconfig
> create mode 100644 hw/acpi/Kconfig
> create mode 100644 hw/adc/Kconfig
> create mode 100644 hw/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/ide/ioport.c
> 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
- Re: [Qemu-devel] [PATCH 41/52] isa: express dependencies with kconfig, (continued)
Re: [Qemu-devel] [PATCH 41/52] isa: express dependencies with kconfig, Thomas Huth, 2019/01/30
Re: [Qemu-devel] [PATCH 41/52] isa: express dependencies with kconfig, Philippe Mathieu-Daudé, 2019/01/31
[Qemu-devel] [PATCH 50/52] isa: express SuperIO dependencies with Kconfig, Paolo Bonzini, 2019/01/25
[Qemu-devel] [PATCH 52/52] kconfig: introduce CONFIG_TEST_DEVICES, Paolo Bonzini, 2019/01/25
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU,
Yang Zhong <=
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31
Re: [Qemu-devel] [RFC PATCH v5 00/52] Support Kconfig in QEMU, no-reply, 2019/01/31