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 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
# 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
CONFIG_STRONGARM=y
CONFIG_HIGHBANK=y
CONFIG_MUSICPAL=y
+
+# for realview and versatilepb
+CONFIG_SCSI=y
+CONFIG_LSI_SCSI_PCI=y
-include pci.mak
include usb.mak
+CONFIG_PCI=y
+CONFIG_PCI_DEVICES=y
CONFIG_SERIAL=y
CONFIG_SERIAL_ISA=y
CONFIG_ISA_BUS=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
# 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
CONFIG_DIMM=y
CONFIG_NVDIMM=y
CONFIG_ACPI_NVDIMM=y
-CONFIG_PCIE_PORT=y
CONFIG_XIO3130=y
CONFIG_IOH3420=y
CONFIG_I82801B11=y
# 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
CONFIG_G364FB=y
CONFIG_JAZZ_LED=y
CONFIG_VT82C686=y
+CONFIG_AHCI=y
CONFIG_MIPS_BOSTON=y
CONFIG_FITLOADER=y
CONFIG_PCI_EXPRESS=y
+++ /dev/null
-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_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM)
-CONFIG_ROCKER=y
-CONFIG_VFIO_PCI=y
-CONFIG_EDID=y
# 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:
# 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
# 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
# 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
# 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
# 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
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)
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
config HDA
bool
+ default y if PCI_DEVICES
+ depends on PCI
config PCSPK
bool
config NVME_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config VIRTIO_BLK
bool
config SERIAL_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
config VIRTIO_SERIAL
bool
config VGA_CIRRUS
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config G364FB
bool
config VGA_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VGA
config VGA_ISA
bool
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
config QXL
bool
depends on SPICE && PCI
+ select VGA
config VIRTIO_GPU
bool
config VIRTIO_VGA
bool
+ default y if PCI_DEVICES
+ depends on VIRTIO_PCI
+ select VGA
config DPCD
bool
config IDE_PCI
bool
+ depends on PCI
select IDE_CORE
config IDE_ISA
config AHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
select IDE_QDEV
config IDE_SII3112
config IPACK
bool
+ default y if PCI_DEVICES
+ depends on PCI
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
config IVSHMEM_DEVICE
bool
- default y
+ default y if PCI_DEVICES
depends on PCI && LINUX && IVSHMEM
config ECCMEMCTL
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
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
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
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
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
config PCI_EXPRESS
bool
select PCI
+
+config PCI_DEVICES
+ bool
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
config SDHCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select SD
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
config VIRTIO_PCI
bool
+ default y if PCI_DEVICES
+ depends on PCI
+ select VIRTIO
config VIRTIO_MMIO
bool
config WDT_IB6300ESB
bool
+ default y if PCI_DEVICES
+ depends on PCI
config WDT_IB700
bool