Message ID | 20190514100019.13263-3-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | Kconfig switches for core / misc devices | expand |
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 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 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). >
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
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
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(-)