kconfig: express dependency of individual boards on libfdt

Now that boards are enabled by default and the "CONFIG_FOO=y"
entries are gone from configs/devices/, there cannot be any more
a conflicts between the default contents of configs/devices/
and a failed "depends on" clause.

With this change, each individual board or target can express
whether it needs FDT.  It can then include the common code in the
build via "select DEVICE_TREE", which will also as tell meson to link
with libfdt.

This allows building non-microvm x86 emulators without having
libfdt available.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2024-04-30 21:08:15 +02:00
parent 1935b7ead1
commit d641ec30be
14 changed files with 34 additions and 12 deletions

View file

@ -25,7 +25,6 @@ config TPM
config FDT config FDT
bool bool
select DEVICE_TREE
config VHOST_USER config VHOST_USER
bool bool

View file

@ -15,6 +15,7 @@ config ARM_VIRT
select ACPI select ACPI
select ARM_SMMUV3 select ARM_SMMUV3
select GPIO_KEY select GPIO_KEY
select DEVICE_TREE
select FW_CFG_DMA select FW_CFG_DMA
select PCI_EXPRESS select PCI_EXPRESS
select PCI_EXPRESS_GENERIC_BRIDGE select PCI_EXPRESS_GENERIC_BRIDGE
@ -265,6 +266,7 @@ config SBSA_REF
default y default y
depends on TCG && AARCH64 depends on TCG && AARCH64
imply PCI_DEVICES imply PCI_DEVICES
select DEVICE_TREE
select AHCI select AHCI
select ARM_SMMUV3 select ARM_SMMUV3
select GPIO_KEY select GPIO_KEY
@ -347,6 +349,7 @@ config VEXPRESS
bool bool
default y default y
depends on TCG && ARM depends on TCG && ARM
select DEVICE_TREE
select A9MPCORE select A9MPCORE
select A15MPCORE select A15MPCORE
select ARM_MPTIMER select ARM_MPTIMER
@ -492,6 +495,7 @@ config XLNX_ZYNQMP_ARM
select CPU_CLUSTER select CPU_CLUSTER
select DDC select DDC
select DPCD select DPCD
select DEVICE_TREE
select SDHCI select SDHCI
select SSI select SSI
select SSI_M25P80 select SSI_M25P80
@ -509,6 +513,7 @@ config XLNX_VERSAL
depends on TCG && AARCH64 depends on TCG && AARCH64
select ARM_GIC select ARM_GIC
select CPU_CLUSTER select CPU_CLUSTER
select DEVICE_TREE
select PL011 select PL011
select CADENCE select CADENCE
select VIRTIO_MMIO select VIRTIO_MMIO

View file

@ -115,7 +115,8 @@ config Q35
config MICROVM config MICROVM
bool bool
default y default y
depends on I386 depends on I386 && FDT
select DEVICE_TREE
select SERIAL_ISA # for serial_hds_isa_init() select SERIAL_ISA # for serial_hds_isa_init()
select ISA_BUS select ISA_BUS
select APIC select APIC

View file

@ -1,7 +1,8 @@
config LOONGARCH_VIRT config LOONGARCH_VIRT
bool bool
default y default y
depends on LOONGARCH64 depends on LOONGARCH64 && FDT
select DEVICE_TREE
select PCI select PCI
select PCI_EXPRESS_GENERIC_BRIDGE select PCI_EXPRESS_GENERIC_BRIDGE
imply VIRTIO_VGA imply VIRTIO_VGA

View file

@ -80,9 +80,10 @@ config MIPS_CPS
config MIPS_BOSTON config MIPS_BOSTON
bool bool
default y default y
depends on MIPS64 && !TARGET_BIG_ENDIAN depends on MIPS64 && !TARGET_BIG_ENDIAN && FDT
imply PCI_DEVICES imply PCI_DEVICES
imply TEST_DEVICES imply TEST_DEVICES
select DEVICE_TREE
select FITLOADER select FITLOADER
select MIPS_CPS select MIPS_CPS
select PCI_EXPRESS_XILINX select PCI_EXPRESS_XILINX

View file

@ -2,6 +2,7 @@ config OR1K_SIM
bool bool
default y default y
depends on OPENRISC depends on OPENRISC
select DEVICE_TREE
select SERIAL select SERIAL
select OPENCORES_ETH select OPENCORES_ETH
select OMPIC select OMPIC
@ -14,6 +15,7 @@ config OR1K_VIRT
imply PCI_DEVICES imply PCI_DEVICES
imply VIRTIO_VGA imply VIRTIO_VGA
imply TEST_DEVICES imply TEST_DEVICES
select DEVICE_TREE
select PCI select PCI
select PCI_EXPRESS_GENERIC_BRIDGE select PCI_EXPRESS_GENERIC_BRIDGE
select GOLDFISH_RTC select GOLDFISH_RTC

View file

@ -1,7 +1,7 @@
config PSERIES config PSERIES
bool bool
default y default y
depends on PPC64 depends on PPC64 && FDT
imply USB_OHCI_PCI imply USB_OHCI_PCI
imply PCI_DEVICES imply PCI_DEVICES
imply TEST_DEVICES imply TEST_DEVICES
@ -26,7 +26,7 @@ config SPAPR_RNG
config POWERNV config POWERNV
bool bool
default y default y
depends on PPC64 depends on PPC64 && FDT
imply PCI_DEVICES imply PCI_DEVICES
imply TEST_DEVICES imply TEST_DEVICES
select ISA_IPMI_BT select ISA_IPMI_BT
@ -52,7 +52,7 @@ config PPC405
config PPC440 config PPC440
bool bool
default y default y
depends on PPC depends on PPC && FDT
imply PCI_DEVICES imply PCI_DEVICES
imply TEST_DEVICES imply TEST_DEVICES
imply E1000_PCI imply E1000_PCI
@ -71,7 +71,7 @@ config PPC4XX
config SAM460EX config SAM460EX
bool bool
default y default y
depends on PPC depends on PPC && FDT
select PFLASH_CFI01 select PFLASH_CFI01
select IDE_SII3112 select IDE_SII3112
select M41T80 select M41T80
@ -168,19 +168,19 @@ config E500
config E500PLAT config E500PLAT
bool bool
default y default y
depends on PPC depends on PPC && FDT
select E500 select E500
config MPC8544DS config MPC8544DS
bool bool
default y default y
depends on PPC depends on PPC && FDT
select E500 select E500
config VIRTEX config VIRTEX
bool bool
default y default y
depends on PPC depends on PPC && FDT
select PPC4XX select PPC4XX
select PFLASH_CFI01 select PFLASH_CFI01
select SERIAL select SERIAL
@ -193,6 +193,7 @@ config FW_CFG_PPC
bool bool
config FDT_PPC config FDT_PPC
select DEVICE_TREE
bool bool
config VOF config VOF

View file

@ -12,6 +12,7 @@ config MICROCHIP_PFSOC
depends on RISCV64 depends on RISCV64
select CADENCE_SDHCI select CADENCE_SDHCI
select CPU_CLUSTER select CPU_CLUSTER
select DEVICE_TREE
select MCHP_PFSOC_DMC select MCHP_PFSOC_DMC
select MCHP_PFSOC_IOSCB select MCHP_PFSOC_IOSCB
select MCHP_PFSOC_MMUART select MCHP_PFSOC_MMUART
@ -37,6 +38,7 @@ config RISCV_VIRT
imply VIRTIO_VGA imply VIRTIO_VGA
imply TEST_DEVICES imply TEST_DEVICES
imply TPM_TIS_SYSBUS imply TPM_TIS_SYSBUS
select DEVICE_TREE
select RISCV_NUMA select RISCV_NUMA
select GOLDFISH_RTC select GOLDFISH_RTC
select PCI select PCI
@ -82,6 +84,7 @@ config SIFIVE_U
depends on RISCV32 || RISCV64 depends on RISCV32 || RISCV64
select CADENCE select CADENCE
select CPU_CLUSTER select CPU_CLUSTER
select DEVICE_TREE
select RISCV_ACLINT select RISCV_ACLINT
select SIFIVE_GPIO select SIFIVE_GPIO
select SIFIVE_PDMA select SIFIVE_PDMA
@ -99,6 +102,7 @@ config SPIKE
bool bool
default y default y
depends on RISCV32 || RISCV64 depends on RISCV32 || RISCV64
select DEVICE_TREE
select RISCV_NUMA select RISCV_NUMA
select HTIF select HTIF
select RISCV_ACLINT select RISCV_ACLINT

View file

@ -8,5 +8,6 @@ config RX62N_MCU
config RX_GDBSIM config RX_GDBSIM
bool bool
default y default y
depends on RX depends on RX && FDT
select DEVICE_TREE
select RX62N_MCU select RX62N_MCU

View file

@ -15,6 +15,7 @@ config XTENSA_XTFPGA
bool bool
default y default y
depends on XTENSA depends on XTENSA
imply DEVICE_TREE
select OPENCORES_ETH select OPENCORES_ETH
select PFLASH_CFI01 select PFLASH_CFI01
select SERIAL select SERIAL

View file

@ -6,6 +6,8 @@ config ARM
# translate.c v7m helpers under ARM_V7M. # translate.c v7m helpers under ARM_V7M.
select ARM_V7M if TCG select ARM_V7M if TCG
select DEVICE_TREE # needed by boot.c
config AARCH64 config AARCH64
bool bool
select ARM select ARM

View file

@ -1,2 +1,3 @@
config MICROBLAZE config MICROBLAZE
bool bool
select DEVICE_TREE # needed by boot.c

View file

@ -1,2 +1,3 @@
config OPENRISC config OPENRISC
bool bool
select DEVICE_TREE # needed by boot.c

View file

@ -1,7 +1,9 @@
config RISCV32 config RISCV32
bool bool
select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting() select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting()
select DEVICE_TREE # needed by boot.c
config RISCV64 config RISCV64
bool bool
select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting() select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting()
select DEVICE_TREE # needed by boot.c