From 193d78a19a42e9f1365f1cbfba3b4496538f717f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Sat, 27 Apr 2019 16:14:57 +0200 Subject: [PATCH 1/8] hw/Kconfig: Move the generic XLNX_ZYNQMP to the root hw/Kconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The XLNX_ZYNQMP config is used in multiple subdirectories (timer, intc). Move it to the root hw/Kconfig. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20190427141459.19728-2-philmd@redhat.com> Reviewed-by: Alistair Francis Signed-off-by: Thomas Huth --- hw/Kconfig | 3 +++ hw/timer/Kconfig | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/Kconfig b/hw/Kconfig index 195f541e50..dbae1c0852 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -73,3 +73,6 @@ config XILINX config XILINX_AXI bool select PTIMER # for hw/dma/xilinx_axidma.c + +config XLNX_ZYNQMP + bool diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig index 51921eb63f..eefc95f35e 100644 --- a/hw/timer/Kconfig +++ b/hw/timer/Kconfig @@ -34,9 +34,6 @@ config TWL92230 bool depends on I2C -config XLNX_ZYNQMP - bool - config ALTERA_TIMER bool select PTIMER From 604b3a7c51d6de3948b585a512eb7c99c881edd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Sat, 27 Apr 2019 16:14:58 +0200 Subject: [PATCH 2/8] hw/intc: Only build the xlnx-iomod-intc device for the MicroBlaze PMU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Xilinx I/O Module Interrupt Controller is only used by the MicroBlaze PMU, not by the AArch64 machine. Move it from the generic ZynqMP object list to the PMU specific. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20190427141459.19728-3-philmd@redhat.com> Reviewed-by: Thomas Huth Reviewed-by: Alistair Francis Signed-off-by: Thomas Huth --- hw/intc/Makefile.objs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs index 03019b9a03..f726d87532 100644 --- a/hw/intc/Makefile.objs +++ b/hw/intc/Makefile.objs @@ -3,7 +3,7 @@ common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o common-obj-$(CONFIG_PL190) += pl190.o common-obj-$(CONFIG_PUV3) += puv3_intc.o common-obj-$(CONFIG_XILINX) += xilinx_intc.o -common-obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-pmu-iomod-intc.o +common-obj-$(CONFIG_XLNX_ZYNQMP_PMU) += xlnx-pmu-iomod-intc.o common-obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp-ipi.o common-obj-$(CONFIG_ETRAXFS) += etraxfs_pic.o common-obj-$(CONFIG_IMX) += imx_avic.o imx_gpcv2.o From f78bf4f941be7af9b8c488a4d6afd0ab6604f442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Sat, 27 Apr 2019 16:14:59 +0200 Subject: [PATCH 3/8] hw/dma: Do not build the xlnx_dpdma device for the MicroBlaze machines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The xlnx_dpdma device is only used by the ZynqMP AArch64 machine (not the MicroBlaze PMU). Remove it from the ZynqMP generic objects. (Note, this entry was duplicated for the AArch64). Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20190427141459.19728-4-philmd@redhat.com> Reviewed-by: Thomas Huth Reviewed-by: Alistair Francis Signed-off-by: Thomas Huth --- hw/dma/Makefile.objs | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs index 8b39f9c600..b672e7a522 100644 --- a/hw/dma/Makefile.objs +++ b/hw/dma/Makefile.objs @@ -8,7 +8,6 @@ common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o common-obj-$(CONFIG_ZYNQ_DEVCFG) += xlnx-zynq-devcfg.o common-obj-$(CONFIG_ETRAXFS) += etraxfs_dma.o common-obj-$(CONFIG_STP2000) += sparc32_dma.o -obj-$(CONFIG_XLNX_ZYNQMP) += xlnx_dpdma.o obj-$(CONFIG_XLNX_ZYNQMP_ARM) += xlnx_dpdma.o common-obj-$(CONFIG_XLNX_ZYNQMP_ARM) += xlnx-zdma.o From 883e150f62e483286e3207dfa5756cf57271d2b3 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 14 May 2019 07:59:34 +0200 Subject: [PATCH 4/8] hw/core: Add a config switch for the "register" device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "register" device is only used by certain machines. Let's add a proper config switch for it so that it only gets compiled when we really need it. Message-Id: <20190817101931.28386-5-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Signed-off-by: Thomas Huth --- hw/Kconfig | 1 + hw/core/Kconfig | 3 +++ hw/core/Makefile.objs | 2 +- hw/dma/Kconfig | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/Kconfig b/hw/Kconfig index dbae1c0852..b45db3c813 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -76,3 +76,4 @@ config XILINX_AXI config XLNX_ZYNQMP bool + select REGISTER diff --git a/hw/core/Kconfig b/hw/core/Kconfig index c2a1ae8122..d11920fcb3 100644 --- a/hw/core/Kconfig +++ b/hw/core/Kconfig @@ -9,3 +9,6 @@ config FITLOADER config PLATFORM_BUS bool + +config REGISTER + bool diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index f8481d959f..d6cfb2a81b 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -17,7 +17,7 @@ common-obj-$(CONFIG_SOFTMMU) += machine.o common-obj-$(CONFIG_SOFTMMU) += loader.o common-obj-$(CONFIG_FITLOADER) += loader-fit.o common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o -common-obj-$(CONFIG_SOFTMMU) += register.o +common-obj-$(CONFIG_REGISTER) += register.o common-obj-$(CONFIG_SOFTMMU) += or-irq.o common-obj-$(CONFIG_SOFTMMU) += split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o diff --git a/hw/dma/Kconfig b/hw/dma/Kconfig index 751dec5426..5c61b67bc0 100644 --- a/hw/dma/Kconfig +++ b/hw/dma/Kconfig @@ -16,6 +16,7 @@ config I8257 config ZYNQ_DEVCFG bool + select REGISTER config STP2000 bool From 282467f41904725aaae68e19ea9dece92708ceb4 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 14 May 2019 08:13:28 +0200 Subject: [PATCH 5/8] hw/core: Add a config switch for the "or-irq" device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "or-irq" device is only used by certain machines. Let's add a proper config switch for it so that it only gets compiled when we really need it. Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20190817101931.28386-6-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/arm/Kconfig | 3 +++ hw/core/Kconfig | 3 +++ hw/core/Makefile.objs | 2 +- hw/pci-host/Kconfig | 3 ++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index ab65ecd216..849195c3f6 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -292,6 +292,7 @@ config RASPI config STM32F205_SOC bool select ARM_V7M + select OR_IRQ select STM32F2XX_TIMER select STM32F2XX_USART select STM32F2XX_SYSCFG @@ -360,6 +361,7 @@ config MPS2 select LAN9118 select MPS2_FPGAIO select MPS2_SCC + select OR_IRQ select PL022 # Serial port select PL080 # DMA controller @@ -439,6 +441,7 @@ config ARMSSE select IOTKIT_SECCTL select IOTKIT_SYSCTL select IOTKIT_SYSINFO + select OR_IRQ select TZ_MPC select TZ_MSC select TZ_PPC diff --git a/hw/core/Kconfig b/hw/core/Kconfig index d11920fcb3..984143456a 100644 --- a/hw/core/Kconfig +++ b/hw/core/Kconfig @@ -7,6 +7,9 @@ config PTIMER config FITLOADER bool +config OR_IRQ + bool + config PLATFORM_BUS bool diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index d6cfb2a81b..ce337bd7c9 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -18,7 +18,7 @@ common-obj-$(CONFIG_SOFTMMU) += loader.o common-obj-$(CONFIG_FITLOADER) += loader-fit.o common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o common-obj-$(CONFIG_REGISTER) += register.o -common-obj-$(CONFIG_SOFTMMU) += or-irq.o +common-obj-$(CONFIG_OR_IRQ) += or-irq.o common-obj-$(CONFIG_SOFTMMU) += split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o common-obj-$(CONFIG_SOFTMMU) += generic-loader.o diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index 8c16d96b3f..1edc1a31d4 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -2,8 +2,9 @@ config PAM bool config PREP_PCI - select PCI bool + select PCI + select OR_IRQ config GRACKLE_PCI select PCI From 853c01672bbe3099c5fa31f56350f781b01187b4 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 14 May 2019 10:24:28 +0200 Subject: [PATCH 6/8] hw/core: Add a config switch for the "split-irq" device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "split-irq" device is currently only used by machines that use CONFIG_ARMSSE. Let's add a proper CONFIG_SPLIT_IRQ switch for this so that it only gets compiled when we really need it. Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20190817101931.28386-7-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/arm/Kconfig | 3 +++ hw/core/Kconfig | 3 +++ hw/core/Makefile.objs | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 849195c3f6..6e24c73b54 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -81,6 +81,7 @@ config MUSCA select ARMSSE select PL011 select PL031 + select SPLIT_IRQ config MUSICPAL bool @@ -364,6 +365,7 @@ config MPS2 select OR_IRQ select PL022 # Serial port select PL080 # DMA controller + select SPLIT_IRQ config FSL_IMX7 bool @@ -442,6 +444,7 @@ config ARMSSE select IOTKIT_SYSCTL select IOTKIT_SYSINFO select OR_IRQ + select SPLIT_IRQ select TZ_MPC select TZ_MSC select TZ_PPC diff --git a/hw/core/Kconfig b/hw/core/Kconfig index 984143456a..fffb3d62b2 100644 --- a/hw/core/Kconfig +++ b/hw/core/Kconfig @@ -15,3 +15,6 @@ config PLATFORM_BUS config REGISTER bool + +config SPLIT_IRQ + bool diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index ce337bd7c9..bb1afe422a 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -19,7 +19,7 @@ common-obj-$(CONFIG_FITLOADER) += loader-fit.o common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o common-obj-$(CONFIG_REGISTER) += register.o common-obj-$(CONFIG_OR_IRQ) += or-irq.o -common-obj-$(CONFIG_SOFTMMU) += split-irq.o +common-obj-$(CONFIG_SPLIT_IRQ) += split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o common-obj-$(CONFIG_SOFTMMU) += generic-loader.o common-obj-$(CONFIG_SOFTMMU) += null-machine.o From 5aa78a895781eb26de7204fff737599b689ac0b1 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 14 May 2019 07:26:53 +0200 Subject: [PATCH 7/8] hw/misc: Add a config switch for the "unimplemented" device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The device is only used by some few boards. Let's use a proper Kconfig switch so that we only compile this code if we really need it. Message-Id: <20190817101931.28386-8-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth --- hw/arm/Kconfig | 11 +++++++++++ hw/microblaze/Kconfig | 1 + hw/misc/Kconfig | 3 +++ hw/misc/Makefile.objs | 2 +- hw/sparc64/Kconfig | 1 + 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 6e24c73b54..76a2a6bcbf 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -82,6 +82,7 @@ config MUSCA select PL011 select PL031 select SPLIT_IRQ + select UNIMP config MUSICPAL bool @@ -217,6 +218,7 @@ config STELLARIS select SSI_SD select STELLARIS_INPUT select STELLARIS_ENET # ethernet + select UNIMP config STRONGARM bool @@ -283,6 +285,7 @@ config ALLWINNER_A10 select ALLWINNER_A10_PIC select ALLWINNER_EMAC select SERIAL + select UNIMP config RASPI bool @@ -320,6 +323,7 @@ config XLNX_VERSAL select PL011 select CADENCE select VIRTIO_MMIO + select UNIMP config FSL_IMX25 bool @@ -355,6 +359,7 @@ config ASPEED_SOC select SSI_M25P80 select TMP105 select TMP421 + select UNIMP config MPS2 bool @@ -366,6 +371,7 @@ config MPS2 select PL022 # Serial port select PL080 # DMA controller select SPLIT_IRQ + select UNIMP config FSL_IMX7 bool @@ -378,6 +384,7 @@ config FSL_IMX7 select IMX_I2C select PCI_EXPRESS_DESIGNWARE select SDHCI + select UNIMP config ARM_SMMUV3 bool @@ -389,6 +396,7 @@ config FSL_IMX6UL select IMX_FEC select IMX_I2C select SDHCI + select UNIMP config MICROBIT bool @@ -398,6 +406,7 @@ config NRF51_SOC bool select I2C select ARM_V7M + select UNIMP config EMCRAFT_SF2 bool @@ -410,6 +419,7 @@ config MSF2 select PTIMER select SERIAL select SSI + select UNIMP config ZAURUS bool @@ -448,6 +458,7 @@ config ARMSSE select TZ_MPC select TZ_MSC select TZ_PPC + select UNIMP config ARMSSE_CPUID bool diff --git a/hw/microblaze/Kconfig b/hw/microblaze/Kconfig index c4dc120973..e2697ced9c 100644 --- a/hw/microblaze/Kconfig +++ b/hw/microblaze/Kconfig @@ -4,6 +4,7 @@ config PETALOGIX_S3ADSP1800 select XILINX select XILINX_AXI select XILINX_ETHLITE + select UNIMP config PETALOGIX_ML605 bool diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index 385e1b0cec..51754bb47c 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -117,4 +117,7 @@ config AUX bool select I2C +config UNIMP + bool + source macio/Kconfig diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index e9aab519a1..e4aad707fb 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -9,7 +9,7 @@ common-obj-$(CONFIG_PCI_TESTDEV) += pci-testdev.o common-obj-$(CONFIG_EDU) += edu.o common-obj-$(CONFIG_PCA9552) += pca9552.o -common-obj-y += unimp.o +common-obj-$(CONFIG_UNIMP) += unimp.o common-obj-$(CONFIG_FW_CFG_DMA) += vmcoreinfo.o # ARM devices diff --git a/hw/sparc64/Kconfig b/hw/sparc64/Kconfig index d4d76a89be..f9f8b0f73a 100644 --- a/hw/sparc64/Kconfig +++ b/hw/sparc64/Kconfig @@ -17,3 +17,4 @@ config NIAGARA bool select EMPTY_SLOT select SUN4V_RTC + select UNIMP From f874d7293589ab42bf5da0c03c9048e5d11c292f Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 30 Jul 2019 15:40:50 +0200 Subject: [PATCH 8/8] hw/core: Add a config switch for the generic loader device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The generic loader device is completely optional. Let's add a proper config switch for it so that people can disable it if they don't need it and want to create a minimalistic QEMU binary. Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20190817101931.28386-9-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/core/Kconfig | 4 ++++ hw/core/Makefile.objs | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/core/Kconfig b/hw/core/Kconfig index fffb3d62b2..fdf03514d7 100644 --- a/hw/core/Kconfig +++ b/hw/core/Kconfig @@ -7,6 +7,10 @@ config PTIMER config FITLOADER bool +config GENERIC_LOADER + bool + default y + config OR_IRQ bool diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index bb1afe422a..b49f880a0c 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -21,7 +21,7 @@ common-obj-$(CONFIG_REGISTER) += register.o common-obj-$(CONFIG_OR_IRQ) += or-irq.o common-obj-$(CONFIG_SPLIT_IRQ) += split-irq.o common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o -common-obj-$(CONFIG_SOFTMMU) += generic-loader.o +common-obj-$(CONFIG_GENERIC_LOADER) += generic-loader.o common-obj-$(CONFIG_SOFTMMU) += null-machine.o obj-$(CONFIG_SOFTMMU) += machine-qmp-cmds.o