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.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/arm/Kconfig | 2 ++
hw/core/Kconfig | 3 +++
hw/core/Makefile.objs | 2 +-
hw/pci-host/Kconfig | 3 ++-
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index af8cffde9c..0bb3bbe9d3 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -277,6 +277,7 @@ config RASPI
config STM32F205_SOC
bool
select ARM_V7M
+ select OR_IRQ
select STM32F2XX_TIMER
select STM32F2XX_USART
select STM32F2XX_SYSCFG
@@ -424,6 +425,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 d493a051ee..dd2c2ca812 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -17,7 +17,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
--
2.21.0
On 5/14/19 12:00 PM, Thomas Huth wrote: > 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. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/arm/Kconfig | 2 ++ > hw/core/Kconfig | 3 +++ > hw/core/Makefile.objs | 2 +- > hw/pci-host/Kconfig | 3 ++- > 4 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig > index af8cffde9c..0bb3bbe9d3 100644 > --- a/hw/arm/Kconfig > +++ b/hw/arm/Kconfig > @@ -277,6 +277,7 @@ config RASPI > config STM32F205_SOC > bool > select ARM_V7M > + select OR_IRQ > select STM32F2XX_TIMER > select STM32F2XX_USART > select STM32F2XX_SYSCFG > @@ -424,6 +425,7 @@ config ARMSSE > select IOTKIT_SECCTL > select IOTKIT_SYSCTL > select IOTKIT_SYSINFO > + select OR_IRQ > select TZ_MPC > select TZ_MSC > select TZ_PPC You missed the MPS2* boards > 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 d493a051ee..dd2c2ca812 100644 > --- a/hw/core/Makefile.objs > +++ b/hw/core/Makefile.objs > @@ -17,7 +17,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 >
On 14/05/2019 12.35, Philippe Mathieu-Daudé wrote: > On 5/14/19 12:00 PM, Thomas Huth wrote: >> 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. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> hw/arm/Kconfig | 2 ++ >> hw/core/Kconfig | 3 +++ >> hw/core/Makefile.objs | 2 +- >> hw/pci-host/Kconfig | 3 ++- >> 4 files changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig >> index af8cffde9c..0bb3bbe9d3 100644 >> --- a/hw/arm/Kconfig >> +++ b/hw/arm/Kconfig >> @@ -277,6 +277,7 @@ config RASPI >> config STM32F205_SOC >> bool >> select ARM_V7M >> + select OR_IRQ >> select STM32F2XX_TIMER >> select STM32F2XX_USART >> select STM32F2XX_SYSCFG >> @@ -424,6 +425,7 @@ config ARMSSE >> select IOTKIT_SECCTL >> select IOTKIT_SYSCTL >> select IOTKIT_SYSINFO >> + select OR_IRQ >> select TZ_MPC >> select TZ_MSC >> select TZ_PPC > > You missed the MPS2* boards No, the MPS2 boards "select ARMSSE", so this gets added via the above hunk there. But as mentioned in the reply to Peter, it's likely better to add it there, too. Thomas
On Tue, 14 May 2019 at 11:00, Thomas Huth <thuth@redhat.com> wrote: > > 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. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/arm/Kconfig | 2 ++ > hw/core/Kconfig | 3 +++ > hw/core/Makefile.objs | 2 +- > hw/pci-host/Kconfig | 3 ++- > 4 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig > index af8cffde9c..0bb3bbe9d3 100644 > --- a/hw/arm/Kconfig > +++ b/hw/arm/Kconfig > @@ -277,6 +277,7 @@ config RASPI > config STM32F205_SOC > bool > select ARM_V7M > + select OR_IRQ > select STM32F2XX_TIMER > select STM32F2XX_USART > select STM32F2XX_SYSCFG > @@ -424,6 +425,7 @@ config ARMSSE > select IOTKIT_SECCTL > select IOTKIT_SYSCTL > select IOTKIT_SYSINFO > + select OR_IRQ > select TZ_MPC > select TZ_MSC > select TZ_PPC In cases like this where a device is used both by an SoC and also directly by the board code that uses that SoC, should we put the select OR_IRQ only in the SoC's config, or also in the board model's config (ie, in "config MPS2" as well as "config ARMSSE") ? thanks -- PMM
On 5/14/19 12:06 PM, Peter Maydell wrote: > On Tue, 14 May 2019 at 11:00, Thomas Huth <thuth@redhat.com> wrote: >> >> 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. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> hw/arm/Kconfig | 2 ++ >> hw/core/Kconfig | 3 +++ >> hw/core/Makefile.objs | 2 +- >> hw/pci-host/Kconfig | 3 ++- >> 4 files changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig >> index af8cffde9c..0bb3bbe9d3 100644 >> --- a/hw/arm/Kconfig >> +++ b/hw/arm/Kconfig >> @@ -277,6 +277,7 @@ config RASPI >> config STM32F205_SOC >> bool >> select ARM_V7M >> + select OR_IRQ >> select STM32F2XX_TIMER >> select STM32F2XX_USART >> select STM32F2XX_SYSCFG >> @@ -424,6 +425,7 @@ config ARMSSE >> select IOTKIT_SECCTL >> select IOTKIT_SYSCTL >> select IOTKIT_SYSINFO >> + select OR_IRQ >> select TZ_MPC >> select TZ_MSC >> select TZ_PPC > > In cases like this where a device is used both by > an SoC and also directly by the board code that uses > that SoC, should we put the select OR_IRQ only in > the SoC's config, or also in the board model's config > (ie, in "config MPS2" as well as "config ARMSSE") ? Someone should be able to work on the board without having to look at the SoC code/config, so both :) The idea of Kconfig is you only worry about a specific device, and the qgraph sort the rest out. So having in both place is safer, and helps to visualize dependencies in the graph tree (I'm slowly working on this feature to help new-comer to understand model dependencies).
On 14/05/2019 12.25, Philippe Mathieu-Daudé wrote: > On 5/14/19 12:06 PM, Peter Maydell wrote: >> On Tue, 14 May 2019 at 11:00, Thomas Huth <thuth@redhat.com> wrote: >>> >>> 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. >>> >>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>> --- >>> hw/arm/Kconfig | 2 ++ >>> hw/core/Kconfig | 3 +++ >>> hw/core/Makefile.objs | 2 +- >>> hw/pci-host/Kconfig | 3 ++- >>> 4 files changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig >>> index af8cffde9c..0bb3bbe9d3 100644 >>> --- a/hw/arm/Kconfig >>> +++ b/hw/arm/Kconfig >>> @@ -277,6 +277,7 @@ config RASPI >>> config STM32F205_SOC >>> bool >>> select ARM_V7M >>> + select OR_IRQ >>> select STM32F2XX_TIMER >>> select STM32F2XX_USART >>> select STM32F2XX_SYSCFG >>> @@ -424,6 +425,7 @@ config ARMSSE >>> select IOTKIT_SECCTL >>> select IOTKIT_SYSCTL >>> select IOTKIT_SYSINFO >>> + select OR_IRQ >>> select TZ_MPC >>> select TZ_MSC >>> select TZ_PPC >> >> In cases like this where a device is used both by >> an SoC and also directly by the board code that uses >> that SoC, should we put the select OR_IRQ only in >> the SoC's config, or also in the board model's config >> (ie, in "config MPS2" as well as "config ARMSSE") ? > > Someone should be able to work on the board without having to look at > the SoC code/config, so both :) The idea of Kconfig is you only worry > about a specific device, and the qgraph sort the rest out. I don't have a strong opinion here, but likely is safer indeed to put the switch into both sections in this case - so if one of the two ever gets changed, the config switch is still there for the other one that still requires it. I'll send a v2. Thomas
On 5/14/19 12:25 PM, Philippe Mathieu-Daudé wrote: > On 5/14/19 12:06 PM, Peter Maydell wrote: >> On Tue, 14 May 2019 at 11:00, Thomas Huth <thuth@redhat.com> wrote: >>> >>> 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. >>> >>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>> --- >>> hw/arm/Kconfig | 2 ++ >>> hw/core/Kconfig | 3 +++ >>> hw/core/Makefile.objs | 2 +- >>> hw/pci-host/Kconfig | 3 ++- >>> 4 files changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig >>> index af8cffde9c..0bb3bbe9d3 100644 >>> --- a/hw/arm/Kconfig >>> +++ b/hw/arm/Kconfig >>> @@ -277,6 +277,7 @@ config RASPI >>> config STM32F205_SOC >>> bool >>> select ARM_V7M >>> + select OR_IRQ >>> select STM32F2XX_TIMER >>> select STM32F2XX_USART >>> select STM32F2XX_SYSCFG >>> @@ -424,6 +425,7 @@ config ARMSSE >>> select IOTKIT_SECCTL >>> select IOTKIT_SYSCTL >>> select IOTKIT_SYSINFO >>> + select OR_IRQ >>> select TZ_MPC >>> select TZ_MSC >>> select TZ_PPC >> >> In cases like this where a device is used both by >> an SoC and also directly by the board code that uses >> that SoC, should we put the select OR_IRQ only in >> the SoC's config, or also in the board model's config >> (ie, in "config MPS2" as well as "config ARMSSE") ? > > Someone should be able to work on the board without having to look at > the SoC code/config, so both :) The idea of Kconfig is you only worry > about a specific device, and the qgraph sort the rest out. Hypothetical example if you only use the selector in the SoC config: If you replace the SoC OR_IRQ by a more complex device or extended one, the board will lack the OR_IRQ selector. Using Kconfig selectors in all place a dependency is explicit also ease backports. > > So having in both place is safer, and helps to visualize dependencies in > the graph tree (I'm slowly working on this feature to help new-comer to > understand model dependencies). >
© 2016 - 2026 Red Hat, Inc.