aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-04-30 21:08:15 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2024-05-10 15:45:15 +0200
commitd641ec30be4963f43bffe033f5265a57cb8f4c90 (patch)
treeaa87df2c809f45e751ff609d0214e07f6d998f10
parent1935b7ead18dbcbf459dbe7a8fd4253fbe1ed4d0 (diff)
downloadqemu-d641ec30be4963f43bffe033f5265a57cb8f4c90.zip
qemu-d641ec30be4963f43bffe033f5265a57cb8f4c90.tar.gz
qemu-d641ec30be4963f43bffe033f5265a57cb8f4c90.tar.bz2
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>
-rw-r--r--Kconfig.host1
-rw-r--r--hw/arm/Kconfig5
-rw-r--r--hw/i386/Kconfig3
-rw-r--r--hw/loongarch/Kconfig3
-rw-r--r--hw/mips/Kconfig3
-rw-r--r--hw/openrisc/Kconfig2
-rw-r--r--hw/ppc/Kconfig15
-rw-r--r--hw/riscv/Kconfig4
-rw-r--r--hw/rx/Kconfig3
-rw-r--r--hw/xtensa/Kconfig1
-rw-r--r--target/arm/Kconfig2
-rw-r--r--target/microblaze/Kconfig1
-rw-r--r--target/openrisc/Kconfig1
-rw-r--r--target/riscv/Kconfig2
14 files changed, 34 insertions, 12 deletions
diff --git a/Kconfig.host b/Kconfig.host
index a0d4a52..17f4050 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -25,7 +25,6 @@ config TPM
config FDT
bool
- select DEVICE_TREE
config VHOST_USER
bool
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 98c264e..8b97683 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -15,6 +15,7 @@ config ARM_VIRT
select ACPI
select ARM_SMMUV3
select GPIO_KEY
+ select DEVICE_TREE
select FW_CFG_DMA
select PCI_EXPRESS
select PCI_EXPRESS_GENERIC_BRIDGE
@@ -265,6 +266,7 @@ config SBSA_REF
default y
depends on TCG && AARCH64
imply PCI_DEVICES
+ select DEVICE_TREE
select AHCI
select ARM_SMMUV3
select GPIO_KEY
@@ -347,6 +349,7 @@ config VEXPRESS
bool
default y
depends on TCG && ARM
+ select DEVICE_TREE
select A9MPCORE
select A15MPCORE
select ARM_MPTIMER
@@ -492,6 +495,7 @@ config XLNX_ZYNQMP_ARM
select CPU_CLUSTER
select DDC
select DPCD
+ select DEVICE_TREE
select SDHCI
select SSI
select SSI_M25P80
@@ -509,6 +513,7 @@ config XLNX_VERSAL
depends on TCG && AARCH64
select ARM_GIC
select CPU_CLUSTER
+ select DEVICE_TREE
select PL011
select CADENCE
select VIRTIO_MMIO
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 40b1e44..f4a33b6 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -115,7 +115,8 @@ config Q35
config MICROVM
bool
default y
- depends on I386
+ depends on I386 && FDT
+ select DEVICE_TREE
select SERIAL_ISA # for serial_hds_isa_init()
select ISA_BUS
select APIC
diff --git a/hw/loongarch/Kconfig b/hw/loongarch/Kconfig
index ad77502..90a0dba 100644
--- a/hw/loongarch/Kconfig
+++ b/hw/loongarch/Kconfig
@@ -1,7 +1,8 @@
config LOONGARCH_VIRT
bool
default y
- depends on LOONGARCH64
+ depends on LOONGARCH64 && FDT
+ select DEVICE_TREE
select PCI
select PCI_EXPRESS_GENERIC_BRIDGE
imply VIRTIO_VGA
diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig
index 9bccb36..a7f26ed 100644
--- a/hw/mips/Kconfig
+++ b/hw/mips/Kconfig
@@ -80,9 +80,10 @@ config MIPS_CPS
config MIPS_BOSTON
bool
default y
- depends on MIPS64 && !TARGET_BIG_ENDIAN
+ depends on MIPS64 && !TARGET_BIG_ENDIAN && FDT
imply PCI_DEVICES
imply TEST_DEVICES
+ select DEVICE_TREE
select FITLOADER
select MIPS_CPS
select PCI_EXPRESS_XILINX
diff --git a/hw/openrisc/Kconfig b/hw/openrisc/Kconfig
index 9c9015e..76b953c 100644
--- a/hw/openrisc/Kconfig
+++ b/hw/openrisc/Kconfig
@@ -2,6 +2,7 @@ config OR1K_SIM
bool
default y
depends on OPENRISC
+ select DEVICE_TREE
select SERIAL
select OPENCORES_ETH
select OMPIC
@@ -14,6 +15,7 @@ config OR1K_VIRT
imply PCI_DEVICES
imply VIRTIO_VGA
imply TEST_DEVICES
+ select DEVICE_TREE
select PCI
select PCI_EXPRESS_GENERIC_BRIDGE
select GOLDFISH_RTC
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 78f83e7..347212f 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -1,7 +1,7 @@
config PSERIES
bool
default y
- depends on PPC64
+ depends on PPC64 && FDT
imply USB_OHCI_PCI
imply PCI_DEVICES
imply TEST_DEVICES
@@ -26,7 +26,7 @@ config SPAPR_RNG
config POWERNV
bool
default y
- depends on PPC64
+ depends on PPC64 && FDT
imply PCI_DEVICES
imply TEST_DEVICES
select ISA_IPMI_BT
@@ -52,7 +52,7 @@ config PPC405
config PPC440
bool
default y
- depends on PPC
+ depends on PPC && FDT
imply PCI_DEVICES
imply TEST_DEVICES
imply E1000_PCI
@@ -71,7 +71,7 @@ config PPC4XX
config SAM460EX
bool
default y
- depends on PPC
+ depends on PPC && FDT
select PFLASH_CFI01
select IDE_SII3112
select M41T80
@@ -168,19 +168,19 @@ config E500
config E500PLAT
bool
default y
- depends on PPC
+ depends on PPC && FDT
select E500
config MPC8544DS
bool
default y
- depends on PPC
+ depends on PPC && FDT
select E500
config VIRTEX
bool
default y
- depends on PPC
+ depends on PPC && FDT
select PPC4XX
select PFLASH_CFI01
select SERIAL
@@ -193,6 +193,7 @@ config FW_CFG_PPC
bool
config FDT_PPC
+ select DEVICE_TREE
bool
config VOF
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
index 5f5f9e3..a2030e3 100644
--- a/hw/riscv/Kconfig
+++ b/hw/riscv/Kconfig
@@ -12,6 +12,7 @@ config MICROCHIP_PFSOC
depends on RISCV64
select CADENCE_SDHCI
select CPU_CLUSTER
+ select DEVICE_TREE
select MCHP_PFSOC_DMC
select MCHP_PFSOC_IOSCB
select MCHP_PFSOC_MMUART
@@ -37,6 +38,7 @@ config RISCV_VIRT
imply VIRTIO_VGA
imply TEST_DEVICES
imply TPM_TIS_SYSBUS
+ select DEVICE_TREE
select RISCV_NUMA
select GOLDFISH_RTC
select PCI
@@ -82,6 +84,7 @@ config SIFIVE_U
depends on RISCV32 || RISCV64
select CADENCE
select CPU_CLUSTER
+ select DEVICE_TREE
select RISCV_ACLINT
select SIFIVE_GPIO
select SIFIVE_PDMA
@@ -99,6 +102,7 @@ config SPIKE
bool
default y
depends on RISCV32 || RISCV64
+ select DEVICE_TREE
select RISCV_NUMA
select HTIF
select RISCV_ACLINT
diff --git a/hw/rx/Kconfig b/hw/rx/Kconfig
index b2fa2b7..aa9242d 100644
--- a/hw/rx/Kconfig
+++ b/hw/rx/Kconfig
@@ -8,5 +8,6 @@ config RX62N_MCU
config RX_GDBSIM
bool
default y
- depends on RX
+ depends on RX && FDT
+ select DEVICE_TREE
select RX62N_MCU
diff --git a/hw/xtensa/Kconfig b/hw/xtensa/Kconfig
index 443b415..8ea283a 100644
--- a/hw/xtensa/Kconfig
+++ b/hw/xtensa/Kconfig
@@ -15,6 +15,7 @@ config XTENSA_XTFPGA
bool
default y
depends on XTENSA
+ imply DEVICE_TREE
select OPENCORES_ETH
select PFLASH_CFI01
select SERIAL
diff --git a/target/arm/Kconfig b/target/arm/Kconfig
index 5847c5a..7f8a221 100644
--- a/target/arm/Kconfig
+++ b/target/arm/Kconfig
@@ -6,6 +6,8 @@ config ARM
# translate.c v7m helpers under ARM_V7M.
select ARM_V7M if TCG
+ select DEVICE_TREE # needed by boot.c
+
config AARCH64
bool
select ARM
diff --git a/target/microblaze/Kconfig b/target/microblaze/Kconfig
index a5410d9..e91d58d 100644
--- a/target/microblaze/Kconfig
+++ b/target/microblaze/Kconfig
@@ -1,2 +1,3 @@
config MICROBLAZE
bool
+ select DEVICE_TREE # needed by boot.c
diff --git a/target/openrisc/Kconfig b/target/openrisc/Kconfig
index e0da4ac..cd66c2e 100644
--- a/target/openrisc/Kconfig
+++ b/target/openrisc/Kconfig
@@ -1,2 +1,3 @@
config OPENRISC
bool
+ select DEVICE_TREE # needed by boot.c
diff --git a/target/riscv/Kconfig b/target/riscv/Kconfig
index adb7de3..5f30df2 100644
--- a/target/riscv/Kconfig
+++ b/target/riscv/Kconfig
@@ -1,7 +1,9 @@
config RISCV32
bool
select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting()
+ select DEVICE_TREE # needed by boot.c
config RISCV64
bool
select ARM_COMPATIBLE_SEMIHOSTING # for do_common_semihosting()
+ select DEVICE_TREE # needed by boot.c