* [PATCH v1 1/5] meson: Introduce target-specific Kconfig [not found] <20210621152120.4465-1-alex.bennee@linaro.org> @ 2021-06-21 15:21 ` Alex Bennée 2021-07-06 10:52 ` Thomas Huth 2021-06-21 15:21 ` [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL Alex Bennée 2021-06-21 15:21 ` [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices Alex Bennée 2 siblings, 1 reply; 13+ messages in thread From: Alex Bennée @ 2021-06-21 15:21 UTC (permalink / raw) To: qemu-devel Cc: thuth, pbonzini, Philippe Mathieu-Daudé, Alex Bennée, Richard Henderson, Peter Maydell, Michael Rolnik, Edgar E. Iglesias, Laurent Vivier, Aurelien Jarno, Jiaxun Yang, Aleksandar Rikalo, Chris Wulff, Marek Vasut, Stafford Horne, David Gibson, Greg Kurz, Palmer Dabbelt, Alistair Francis, Bin Meng, Yoshinori Sato, Cornelia Huck, David Hildenbrand, Mark Cave-Ayland, Artyom Tarasenko, Bastian Koppelmann, Max Filippov, open list:ARM TCG CPUs, open list:PowerPC TCG CPUs, open list:RISC-V TCG CPUs, open list:S390 general arch... From: Philippe Mathieu-Daudé <f4bug@amsat.org> Add a target-specific Kconfig. We need the definitions in Kconfig so the minikconf tool can verify they exit. However CONFIG_FOO is only enabled for target foo via the meson.build rules. Two architecture have a particularity, ARM and MIPS: their 64-bit version include the 32-bit subset. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210131111316.232778-6-f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- vajb: - removed targets that no longer exist - reword commit message to show why we need the Kconfigs --- meson.build | 3 ++- Kconfig | 1 + target/Kconfig | 19 +++++++++++++++++++ target/alpha/Kconfig | 2 ++ target/arm/Kconfig | 6 ++++++ target/avr/Kconfig | 2 ++ target/cris/Kconfig | 2 ++ target/hppa/Kconfig | 2 ++ target/i386/Kconfig | 5 +++++ target/m68k/Kconfig | 2 ++ target/microblaze/Kconfig | 2 ++ target/mips/Kconfig | 6 ++++++ target/nios2/Kconfig | 2 ++ target/openrisc/Kconfig | 2 ++ target/ppc/Kconfig | 5 +++++ target/riscv/Kconfig | 5 +++++ target/rx/Kconfig | 2 ++ target/s390x/Kconfig | 2 ++ target/sh4/Kconfig | 2 ++ target/sparc/Kconfig | 5 +++++ target/tricore/Kconfig | 2 ++ target/xtensa/Kconfig | 2 ++ 22 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 target/Kconfig create mode 100644 target/alpha/Kconfig create mode 100644 target/arm/Kconfig create mode 100644 target/avr/Kconfig create mode 100644 target/cris/Kconfig create mode 100644 target/hppa/Kconfig create mode 100644 target/i386/Kconfig create mode 100644 target/m68k/Kconfig create mode 100644 target/microblaze/Kconfig create mode 100644 target/mips/Kconfig create mode 100644 target/nios2/Kconfig create mode 100644 target/openrisc/Kconfig create mode 100644 target/ppc/Kconfig create mode 100644 target/riscv/Kconfig create mode 100644 target/rx/Kconfig create mode 100644 target/s390x/Kconfig create mode 100644 target/sh4/Kconfig create mode 100644 target/sparc/Kconfig create mode 100644 target/tricore/Kconfig create mode 100644 target/xtensa/Kconfig diff --git a/meson.build b/meson.build index d8a92666fb..3ddd22ab7a 100644 --- a/meson.build +++ b/meson.build @@ -1377,7 +1377,8 @@ foreach target : target_dirs command: [minikconf, get_option('default_devices') ? '--defconfig' : '--allnoconfig', config_devices_mak, '@DEPFILE@', '@INPUT@', - host_kconfig, accel_kconfig]) + host_kconfig, accel_kconfig, + 'CONFIG_' + config_target['TARGET_ARCH'].to_upper() + '=y']) config_devices_data = configuration_data() config_devices = keyval.load(config_devices_mak) diff --git a/Kconfig b/Kconfig index d52ebd839b..fb6a24a2de 100644 --- a/Kconfig +++ b/Kconfig @@ -1,5 +1,6 @@ source Kconfig.host source backends/Kconfig source accel/Kconfig +source target/Kconfig source hw/Kconfig source semihosting/Kconfig diff --git a/target/Kconfig b/target/Kconfig new file mode 100644 index 0000000000..ae7f24fc66 --- /dev/null +++ b/target/Kconfig @@ -0,0 +1,19 @@ +source alpha/Kconfig +source arm/Kconfig +source avr/Kconfig +source cris/Kconfig +source hppa/Kconfig +source i386/Kconfig +source m68k/Kconfig +source microblaze/Kconfig +source mips/Kconfig +source nios2/Kconfig +source openrisc/Kconfig +source ppc/Kconfig +source riscv/Kconfig +source rx/Kconfig +source s390x/Kconfig +source sh4/Kconfig +source sparc/Kconfig +source tricore/Kconfig +source xtensa/Kconfig diff --git a/target/alpha/Kconfig b/target/alpha/Kconfig new file mode 100644 index 0000000000..267222c05b --- /dev/null +++ b/target/alpha/Kconfig @@ -0,0 +1,2 @@ +config ALPHA + bool diff --git a/target/arm/Kconfig b/target/arm/Kconfig new file mode 100644 index 0000000000..3f3394a22b --- /dev/null +++ b/target/arm/Kconfig @@ -0,0 +1,6 @@ +config ARM + bool + +config AARCH64 + bool + select ARM diff --git a/target/avr/Kconfig b/target/avr/Kconfig new file mode 100644 index 0000000000..155592d353 --- /dev/null +++ b/target/avr/Kconfig @@ -0,0 +1,2 @@ +config AVR + bool diff --git a/target/cris/Kconfig b/target/cris/Kconfig new file mode 100644 index 0000000000..3fdc309fbb --- /dev/null +++ b/target/cris/Kconfig @@ -0,0 +1,2 @@ +config CRIS + bool diff --git a/target/hppa/Kconfig b/target/hppa/Kconfig new file mode 100644 index 0000000000..395a35d799 --- /dev/null +++ b/target/hppa/Kconfig @@ -0,0 +1,2 @@ +config HPPA + bool diff --git a/target/i386/Kconfig b/target/i386/Kconfig new file mode 100644 index 0000000000..ce6968906e --- /dev/null +++ b/target/i386/Kconfig @@ -0,0 +1,5 @@ +config I386 + bool + +config X86_64 + bool diff --git a/target/m68k/Kconfig b/target/m68k/Kconfig new file mode 100644 index 0000000000..23debad519 --- /dev/null +++ b/target/m68k/Kconfig @@ -0,0 +1,2 @@ +config M68K + bool diff --git a/target/microblaze/Kconfig b/target/microblaze/Kconfig new file mode 100644 index 0000000000..a5410d9218 --- /dev/null +++ b/target/microblaze/Kconfig @@ -0,0 +1,2 @@ +config MICROBLAZE + bool diff --git a/target/mips/Kconfig b/target/mips/Kconfig new file mode 100644 index 0000000000..6adf145354 --- /dev/null +++ b/target/mips/Kconfig @@ -0,0 +1,6 @@ +config MIPS + bool + +config MIPS64 + bool + select MIPS diff --git a/target/nios2/Kconfig b/target/nios2/Kconfig new file mode 100644 index 0000000000..1529ab8950 --- /dev/null +++ b/target/nios2/Kconfig @@ -0,0 +1,2 @@ +config NIOS2 + bool diff --git a/target/openrisc/Kconfig b/target/openrisc/Kconfig new file mode 100644 index 0000000000..e0da4ac1df --- /dev/null +++ b/target/openrisc/Kconfig @@ -0,0 +1,2 @@ +config OPENRISC + bool diff --git a/target/ppc/Kconfig b/target/ppc/Kconfig new file mode 100644 index 0000000000..3ff152051a --- /dev/null +++ b/target/ppc/Kconfig @@ -0,0 +1,5 @@ +config PPC + bool + +config PPC64 + bool diff --git a/target/riscv/Kconfig b/target/riscv/Kconfig new file mode 100644 index 0000000000..b9e5932f13 --- /dev/null +++ b/target/riscv/Kconfig @@ -0,0 +1,5 @@ +config RISCV32 + bool + +config RISCV64 + bool diff --git a/target/rx/Kconfig b/target/rx/Kconfig new file mode 100644 index 0000000000..aceb5ed28f --- /dev/null +++ b/target/rx/Kconfig @@ -0,0 +1,2 @@ +config RX + bool diff --git a/target/s390x/Kconfig b/target/s390x/Kconfig new file mode 100644 index 0000000000..72da48136c --- /dev/null +++ b/target/s390x/Kconfig @@ -0,0 +1,2 @@ +config S390X + bool diff --git a/target/sh4/Kconfig b/target/sh4/Kconfig new file mode 100644 index 0000000000..2397c86028 --- /dev/null +++ b/target/sh4/Kconfig @@ -0,0 +1,2 @@ +config SH4 + bool diff --git a/target/sparc/Kconfig b/target/sparc/Kconfig new file mode 100644 index 0000000000..70cc0f3a21 --- /dev/null +++ b/target/sparc/Kconfig @@ -0,0 +1,5 @@ +config SPARC + bool + +config SPARC64 + bool diff --git a/target/tricore/Kconfig b/target/tricore/Kconfig new file mode 100644 index 0000000000..9313409309 --- /dev/null +++ b/target/tricore/Kconfig @@ -0,0 +1,2 @@ +config TRICORE + bool diff --git a/target/xtensa/Kconfig b/target/xtensa/Kconfig new file mode 100644 index 0000000000..a3c8dc7f6d --- /dev/null +++ b/target/xtensa/Kconfig @@ -0,0 +1,2 @@ +config XTENSA + bool -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/5] meson: Introduce target-specific Kconfig 2021-06-21 15:21 ` [PATCH v1 1/5] meson: Introduce target-specific Kconfig Alex Bennée @ 2021-07-06 10:52 ` Thomas Huth 2021-07-06 12:47 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 13+ messages in thread From: Thomas Huth @ 2021-07-06 10:52 UTC (permalink / raw) To: Alex Bennée, qemu-devel Cc: pbonzini, Philippe Mathieu-Daudé, Richard Henderson, Peter Maydell, Michael Rolnik, Edgar E. Iglesias, Laurent Vivier, Aurelien Jarno, Jiaxun Yang, Aleksandar Rikalo, Chris Wulff, Marek Vasut, Stafford Horne, David Gibson, Greg Kurz, Palmer Dabbelt, Alistair Francis, Bin Meng, Yoshinori Sato, Cornelia Huck, David Hildenbrand, Mark Cave-Ayland, Artyom Tarasenko, Bastian Koppelmann, Max Filippov, open list:ARM TCG CPUs, open list:PowerPC TCG CPUs, open list:RISC-V TCG CPUs, open list:S390 general arch... On 21/06/2021 17.21, Alex Bennée wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Add a target-specific Kconfig. We need the definitions in Kconfig so > the minikconf tool can verify they exit. However CONFIG_FOO is only s/exit/exist/ ? > enabled for target foo via the meson.build rules. > > Two architecture have a particularity, ARM and MIPS: > their 64-bit version include the 32-bit subset. Why do you mention these here, but not x86, Sparc, PPC and RISC-V which also have 32-bit and 64-bit variants? The patch itself looks fine to me, so once you've clarified the commit message: Reviewed-by: Thomas Huth <thuth@redhat.com> > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Message-Id: <20210131111316.232778-6-f4bug@amsat.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > --- > vajb: > - removed targets that no longer exist > - reword commit message to show why we need the Kconfigs > --- > meson.build | 3 ++- > Kconfig | 1 + > target/Kconfig | 19 +++++++++++++++++++ > target/alpha/Kconfig | 2 ++ > target/arm/Kconfig | 6 ++++++ > target/avr/Kconfig | 2 ++ > target/cris/Kconfig | 2 ++ > target/hppa/Kconfig | 2 ++ > target/i386/Kconfig | 5 +++++ > target/m68k/Kconfig | 2 ++ > target/microblaze/Kconfig | 2 ++ > target/mips/Kconfig | 6 ++++++ > target/nios2/Kconfig | 2 ++ > target/openrisc/Kconfig | 2 ++ > target/ppc/Kconfig | 5 +++++ > target/riscv/Kconfig | 5 +++++ > target/rx/Kconfig | 2 ++ > target/s390x/Kconfig | 2 ++ > target/sh4/Kconfig | 2 ++ > target/sparc/Kconfig | 5 +++++ > target/tricore/Kconfig | 2 ++ > target/xtensa/Kconfig | 2 ++ > 22 files changed, 80 insertions(+), 1 deletion(-) > create mode 100644 target/Kconfig > create mode 100644 target/alpha/Kconfig > create mode 100644 target/arm/Kconfig > create mode 100644 target/avr/Kconfig > create mode 100644 target/cris/Kconfig > create mode 100644 target/hppa/Kconfig > create mode 100644 target/i386/Kconfig > create mode 100644 target/m68k/Kconfig > create mode 100644 target/microblaze/Kconfig > create mode 100644 target/mips/Kconfig > create mode 100644 target/nios2/Kconfig > create mode 100644 target/openrisc/Kconfig > create mode 100644 target/ppc/Kconfig > create mode 100644 target/riscv/Kconfig > create mode 100644 target/rx/Kconfig > create mode 100644 target/s390x/Kconfig > create mode 100644 target/sh4/Kconfig > create mode 100644 target/sparc/Kconfig > create mode 100644 target/tricore/Kconfig > create mode 100644 target/xtensa/Kconfig > > diff --git a/meson.build b/meson.build > index d8a92666fb..3ddd22ab7a 100644 > --- a/meson.build > +++ b/meson.build > @@ -1377,7 +1377,8 @@ foreach target : target_dirs > command: [minikconf, > get_option('default_devices') ? '--defconfig' : '--allnoconfig', > config_devices_mak, '@DEPFILE@', '@INPUT@', > - host_kconfig, accel_kconfig]) > + host_kconfig, accel_kconfig, > + 'CONFIG_' + config_target['TARGET_ARCH'].to_upper() + '=y']) > > config_devices_data = configuration_data() > config_devices = keyval.load(config_devices_mak) > diff --git a/Kconfig b/Kconfig > index d52ebd839b..fb6a24a2de 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -1,5 +1,6 @@ > source Kconfig.host > source backends/Kconfig > source accel/Kconfig > +source target/Kconfig > source hw/Kconfig > source semihosting/Kconfig > diff --git a/target/Kconfig b/target/Kconfig > new file mode 100644 > index 0000000000..ae7f24fc66 > --- /dev/null > +++ b/target/Kconfig > @@ -0,0 +1,19 @@ > +source alpha/Kconfig > +source arm/Kconfig > +source avr/Kconfig > +source cris/Kconfig > +source hppa/Kconfig > +source i386/Kconfig > +source m68k/Kconfig > +source microblaze/Kconfig > +source mips/Kconfig > +source nios2/Kconfig > +source openrisc/Kconfig > +source ppc/Kconfig > +source riscv/Kconfig > +source rx/Kconfig > +source s390x/Kconfig > +source sh4/Kconfig > +source sparc/Kconfig > +source tricore/Kconfig > +source xtensa/Kconfig > diff --git a/target/alpha/Kconfig b/target/alpha/Kconfig > new file mode 100644 > index 0000000000..267222c05b > --- /dev/null > +++ b/target/alpha/Kconfig > @@ -0,0 +1,2 @@ > +config ALPHA > + bool > diff --git a/target/arm/Kconfig b/target/arm/Kconfig > new file mode 100644 > index 0000000000..3f3394a22b > --- /dev/null > +++ b/target/arm/Kconfig > @@ -0,0 +1,6 @@ > +config ARM > + bool > + > +config AARCH64 > + bool > + select ARM > diff --git a/target/avr/Kconfig b/target/avr/Kconfig > new file mode 100644 > index 0000000000..155592d353 > --- /dev/null > +++ b/target/avr/Kconfig > @@ -0,0 +1,2 @@ > +config AVR > + bool > diff --git a/target/cris/Kconfig b/target/cris/Kconfig > new file mode 100644 > index 0000000000..3fdc309fbb > --- /dev/null > +++ b/target/cris/Kconfig > @@ -0,0 +1,2 @@ > +config CRIS > + bool > diff --git a/target/hppa/Kconfig b/target/hppa/Kconfig > new file mode 100644 > index 0000000000..395a35d799 > --- /dev/null > +++ b/target/hppa/Kconfig > @@ -0,0 +1,2 @@ > +config HPPA > + bool > diff --git a/target/i386/Kconfig b/target/i386/Kconfig > new file mode 100644 > index 0000000000..ce6968906e > --- /dev/null > +++ b/target/i386/Kconfig > @@ -0,0 +1,5 @@ > +config I386 > + bool > + > +config X86_64 > + bool > diff --git a/target/m68k/Kconfig b/target/m68k/Kconfig > new file mode 100644 > index 0000000000..23debad519 > --- /dev/null > +++ b/target/m68k/Kconfig > @@ -0,0 +1,2 @@ > +config M68K > + bool > diff --git a/target/microblaze/Kconfig b/target/microblaze/Kconfig > new file mode 100644 > index 0000000000..a5410d9218 > --- /dev/null > +++ b/target/microblaze/Kconfig > @@ -0,0 +1,2 @@ > +config MICROBLAZE > + bool > diff --git a/target/mips/Kconfig b/target/mips/Kconfig > new file mode 100644 > index 0000000000..6adf145354 > --- /dev/null > +++ b/target/mips/Kconfig > @@ -0,0 +1,6 @@ > +config MIPS > + bool > + > +config MIPS64 > + bool > + select MIPS > diff --git a/target/nios2/Kconfig b/target/nios2/Kconfig > new file mode 100644 > index 0000000000..1529ab8950 > --- /dev/null > +++ b/target/nios2/Kconfig > @@ -0,0 +1,2 @@ > +config NIOS2 > + bool > diff --git a/target/openrisc/Kconfig b/target/openrisc/Kconfig > new file mode 100644 > index 0000000000..e0da4ac1df > --- /dev/null > +++ b/target/openrisc/Kconfig > @@ -0,0 +1,2 @@ > +config OPENRISC > + bool > diff --git a/target/ppc/Kconfig b/target/ppc/Kconfig > new file mode 100644 > index 0000000000..3ff152051a > --- /dev/null > +++ b/target/ppc/Kconfig > @@ -0,0 +1,5 @@ > +config PPC > + bool > + > +config PPC64 > + bool > diff --git a/target/riscv/Kconfig b/target/riscv/Kconfig > new file mode 100644 > index 0000000000..b9e5932f13 > --- /dev/null > +++ b/target/riscv/Kconfig > @@ -0,0 +1,5 @@ > +config RISCV32 > + bool > + > +config RISCV64 > + bool > diff --git a/target/rx/Kconfig b/target/rx/Kconfig > new file mode 100644 > index 0000000000..aceb5ed28f > --- /dev/null > +++ b/target/rx/Kconfig > @@ -0,0 +1,2 @@ > +config RX > + bool > diff --git a/target/s390x/Kconfig b/target/s390x/Kconfig > new file mode 100644 > index 0000000000..72da48136c > --- /dev/null > +++ b/target/s390x/Kconfig > @@ -0,0 +1,2 @@ > +config S390X > + bool > diff --git a/target/sh4/Kconfig b/target/sh4/Kconfig > new file mode 100644 > index 0000000000..2397c86028 > --- /dev/null > +++ b/target/sh4/Kconfig > @@ -0,0 +1,2 @@ > +config SH4 > + bool > diff --git a/target/sparc/Kconfig b/target/sparc/Kconfig > new file mode 100644 > index 0000000000..70cc0f3a21 > --- /dev/null > +++ b/target/sparc/Kconfig > @@ -0,0 +1,5 @@ > +config SPARC > + bool > + > +config SPARC64 > + bool > diff --git a/target/tricore/Kconfig b/target/tricore/Kconfig > new file mode 100644 > index 0000000000..9313409309 > --- /dev/null > +++ b/target/tricore/Kconfig > @@ -0,0 +1,2 @@ > +config TRICORE > + bool > diff --git a/target/xtensa/Kconfig b/target/xtensa/Kconfig > new file mode 100644 > index 0000000000..a3c8dc7f6d > --- /dev/null > +++ b/target/xtensa/Kconfig > @@ -0,0 +1,2 @@ > +config XTENSA > + bool > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/5] meson: Introduce target-specific Kconfig 2021-07-06 10:52 ` Thomas Huth @ 2021-07-06 12:47 ` Philippe Mathieu-Daudé 2021-07-06 13:10 ` Thomas Huth 0 siblings, 1 reply; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-06 12:47 UTC (permalink / raw) To: Thomas Huth, Alex Bennée, qemu-devel Cc: Peter Maydell, Cornelia Huck, David Hildenbrand, Bin Meng, Mark Cave-Ayland, Jiaxun Yang, Laurent Vivier, Max Filippov, Alistair Francis, Marek Vasut, Yoshinori Sato, open list:PowerPC TCG CPUs, Artyom Tarasenko, Aleksandar Rikalo, Richard Henderson, Greg Kurz, open list:S390 general arch..., open list:ARM TCG CPUs, Michael Rolnik, Stafford Horne, David Gibson, open list:RISC-V TCG CPUs, Bastian Koppelmann, Chris Wulff, Palmer Dabbelt, pbonzini, Aurelien Jarno On 7/6/21 12:52 PM, Thomas Huth wrote: > On 21/06/2021 17.21, Alex Bennée wrote: >> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >> >> Add a target-specific Kconfig. We need the definitions in Kconfig so >> the minikconf tool can verify they exit. However CONFIG_FOO is only > > s/exit/exist/ ? > >> enabled for target foo via the meson.build rules. >> >> Two architecture have a particularity, ARM and MIPS: >> their 64-bit version include the 32-bit subset. > > Why do you mention these here, but not x86, Sparc, PPC and RISC-V which > also have 32-bit and 64-bit variants? Because we consider them as different targets, they don't include (kselect) the subset. > > The patch itself looks fine to me, so once you've clarified the commit > message: > > Reviewed-by: Thomas Huth <thuth@redhat.com> > > >> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> Message-Id: <20210131111316.232778-6-f4bug@amsat.org> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> >> --- >> vajb: >> - removed targets that no longer exist >> - reword commit message to show why we need the Kconfigs >> --- >> diff --git a/target/arm/Kconfig b/target/arm/Kconfig >> new file mode 100644 >> index 0000000000..3f3394a22b >> --- /dev/null >> +++ b/target/arm/Kconfig >> @@ -0,0 +1,6 @@ >> +config ARM >> + bool >> + >> +config AARCH64 >> + bool >> + select ARM >> diff --git a/target/mips/Kconfig b/target/mips/Kconfig >> new file mode 100644 >> index 0000000000..6adf145354 >> --- /dev/null >> +++ b/target/mips/Kconfig >> @@ -0,0 +1,6 @@ >> +config MIPS >> + bool >> + >> +config MIPS64 >> + bool >> + select MIPS ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/5] meson: Introduce target-specific Kconfig 2021-07-06 12:47 ` Philippe Mathieu-Daudé @ 2021-07-06 13:10 ` Thomas Huth 2021-07-06 13:40 ` Philippe Mathieu-Daudé 2021-07-06 13:52 ` Alex Bennée 0 siblings, 2 replies; 13+ messages in thread From: Thomas Huth @ 2021-07-06 13:10 UTC (permalink / raw) To: Philippe Mathieu-Daudé, Alex Bennée, qemu-devel Cc: Peter Maydell, Cornelia Huck, David Hildenbrand, Bin Meng, Mark Cave-Ayland, Jiaxun Yang, Laurent Vivier, Max Filippov, Alistair Francis, Marek Vasut, Yoshinori Sato, open list:PowerPC TCG CPUs, Artyom Tarasenko, Aleksandar Rikalo, Richard Henderson, Greg Kurz, open list:S390 general arch..., open list:ARM TCG CPUs, Michael Rolnik, Stafford Horne, David Gibson, open list:RISC-V TCG CPUs, Bastian Koppelmann, Chris Wulff, Palmer Dabbelt, pbonzini, Aurelien Jarno On 06/07/2021 14.47, Philippe Mathieu-Daudé wrote: > On 7/6/21 12:52 PM, Thomas Huth wrote: >> On 21/06/2021 17.21, Alex Bennée wrote: >>> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >>> >>> Add a target-specific Kconfig. We need the definitions in Kconfig so >>> the minikconf tool can verify they exit. However CONFIG_FOO is only >> >> s/exit/exist/ ? >> >>> enabled for target foo via the meson.build rules. >>> >>> Two architecture have a particularity, ARM and MIPS: >>> their 64-bit version include the 32-bit subset. >> >> Why do you mention these here, but not x86, Sparc, PPC and RISC-V which >> also have 32-bit and 64-bit variants? > > Because we consider them as different targets, they don't include > (kselect) the subset. And why is that done this way? There is certainly a big difference between Sparc and Sparc64, but for x86 and PPC, the 64-bit variant is a superset of the 32-bit variant, so why is it done different here compared to ARM and MIPS? Thomas >> >> The patch itself looks fine to me, so once you've clarified the commit >> message: >> >> Reviewed-by: Thomas Huth <thuth@redhat.com> >> >> >>> >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >>> Message-Id: <20210131111316.232778-6-f4bug@amsat.org> >>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >>> >>> --- >>> vajb: >>> - removed targets that no longer exist >>> - reword commit message to show why we need the Kconfigs >>> --- > >>> diff --git a/target/arm/Kconfig b/target/arm/Kconfig >>> new file mode 100644 >>> index 0000000000..3f3394a22b >>> --- /dev/null >>> +++ b/target/arm/Kconfig >>> @@ -0,0 +1,6 @@ >>> +config ARM >>> + bool >>> + >>> +config AARCH64 >>> + bool >>> + select ARM > >>> diff --git a/target/mips/Kconfig b/target/mips/Kconfig >>> new file mode 100644 >>> index 0000000000..6adf145354 >>> --- /dev/null >>> +++ b/target/mips/Kconfig >>> @@ -0,0 +1,6 @@ >>> +config MIPS >>> + bool >>> + >>> +config MIPS64 >>> + bool >>> + select MIPS > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/5] meson: Introduce target-specific Kconfig 2021-07-06 13:10 ` Thomas Huth @ 2021-07-06 13:40 ` Philippe Mathieu-Daudé 2021-07-06 13:52 ` Alex Bennée 1 sibling, 0 replies; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-06 13:40 UTC (permalink / raw) To: Thomas Huth, Alex Bennée, qemu-devel Cc: Peter Maydell, Chris Wulff, David Hildenbrand, Bin Meng, Mark Cave-Ayland, Jiaxun Yang, Max Filippov, Alistair Francis, Marek Vasut, Yoshinori Sato, Palmer Dabbelt, Artyom Tarasenko, Aleksandar Rikalo, Richard Henderson, Greg Kurz, open list:S390 general arch..., open list:ARM TCG CPUs, Michael Rolnik, Stafford Horne, David Gibson, open list:RISC-V TCG CPUs, Bastian Koppelmann, Cornelia Huck, Laurent Vivier, open list:PowerPC TCG CPUs, pbonzini, Aurelien Jarno On 7/6/21 3:10 PM, Thomas Huth wrote: > On 06/07/2021 14.47, Philippe Mathieu-Daudé wrote: >> On 7/6/21 12:52 PM, Thomas Huth wrote: >>> On 21/06/2021 17.21, Alex Bennée wrote: >>>> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >>>> >>>> Add a target-specific Kconfig. We need the definitions in Kconfig so >>>> the minikconf tool can verify they exit. However CONFIG_FOO is only >>> >>> s/exit/exist/ ? >>> >>>> enabled for target foo via the meson.build rules. >>>> >>>> Two architecture have a particularity, ARM and MIPS: >>>> their 64-bit version include the 32-bit subset. >>> >>> Why do you mention these here, but not x86, Sparc, PPC and RISC-V which >>> also have 32-bit and 64-bit variants? >> >> Because we consider them as different targets, they don't include >> (kselect) the subset. > > And why is that done this way? There is certainly a big difference > between Sparc and Sparc64, but for x86 and PPC, the 64-bit variant is a > superset of the 32-bit variant, so why is it done different here > compared to ARM and MIPS? I don't know these targets well. Maybe the 64-bit variants do include their 32-bit subset. If you know, I can easily send a new patch. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/5] meson: Introduce target-specific Kconfig 2021-07-06 13:10 ` Thomas Huth 2021-07-06 13:40 ` Philippe Mathieu-Daudé @ 2021-07-06 13:52 ` Alex Bennée 1 sibling, 0 replies; 13+ messages in thread From: Alex Bennée @ 2021-07-06 13:52 UTC (permalink / raw) To: Thomas Huth Cc: Philippe Mathieu-Daudé, qemu-devel, Peter Maydell, Cornelia Huck, David Hildenbrand, Bin Meng, Mark Cave-Ayland, Jiaxun Yang, Laurent Vivier, Max Filippov, Alistair Francis, Marek Vasut, Yoshinori Sato, open list:PowerPC TCG CPUs, Artyom Tarasenko, Aleksandar Rikalo, Richard Henderson, Greg Kurz, open list:S390 general arch..., open list:ARM TCG CPUs, Michael Rolnik, Stafford Horne, David Gibson, open list:RISC-V TCG CPUs, Bastian Koppelmann, Chris Wulff, Palmer Dabbelt, pbonzini, Aurelien Jarno Thomas Huth <thuth@redhat.com> writes: > On 06/07/2021 14.47, Philippe Mathieu-Daudé wrote: >> On 7/6/21 12:52 PM, Thomas Huth wrote: >>> On 21/06/2021 17.21, Alex Bennée wrote: >>>> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >>>> >>>> Add a target-specific Kconfig. We need the definitions in Kconfig so >>>> the minikconf tool can verify they exit. However CONFIG_FOO is only >>> >>> s/exit/exist/ ? >>> >>>> enabled for target foo via the meson.build rules. >>>> >>>> Two architecture have a particularity, ARM and MIPS: >>>> their 64-bit version include the 32-bit subset. >>> >>> Why do you mention these here, but not x86, Sparc, PPC and RISC-V which >>> also have 32-bit and 64-bit variants? >> Because we consider them as different targets, they don't include >> (kselect) the subset. > > And why is that done this way? There is certainly a big difference > between Sparc and Sparc64, but for x86 and PPC, the 64-bit variant is > a superset of the 32-bit variant, so why is it done different here > compared to ARM and MIPS? Both ARM and MIPS have a somewhat separated set of translate.c functions which means they can be built as individual units. AFAICT all the others have a unified translate.c that handles all ISA variants so they couldn't be built as standalone units if they wanted to. You are right for AArch64 at least we have to include translate.c to support AArch32 encoding. But for qemu-arm we skip all the 64 bit stuff by compilation units: arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'cpu64.c', 'gdbstub64.c', 'helper-a64.c', 'mte_helper.c', 'pauth_helper.c', 'sve_helper.c', 'translate-a64.c', 'translate-sve.c', )) > > Thomas > > >>> >>> The patch itself looks fine to me, so once you've clarified the commit >>> message: >>> >>> Reviewed-by: Thomas Huth <thuth@redhat.com> >>> >>> >>>> >>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >>>> Message-Id: <20210131111316.232778-6-f4bug@amsat.org> >>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >>>> >>>> --- >>>> vajb: >>>> - removed targets that no longer exist >>>> - reword commit message to show why we need the Kconfigs >>>> --- >> >>>> diff --git a/target/arm/Kconfig b/target/arm/Kconfig >>>> new file mode 100644 >>>> index 0000000000..3f3394a22b >>>> --- /dev/null >>>> +++ b/target/arm/Kconfig >>>> @@ -0,0 +1,6 @@ >>>> +config ARM >>>> + bool >>>> + >>>> +config AARCH64 >>>> + bool >>>> + select ARM >> >>>> diff --git a/target/mips/Kconfig b/target/mips/Kconfig >>>> new file mode 100644 >>>> index 0000000000..6adf145354 >>>> --- /dev/null >>>> +++ b/target/mips/Kconfig >>>> @@ -0,0 +1,6 @@ >>>> +config MIPS >>>> + bool >>>> + >>>> +config MIPS64 >>>> + bool >>>> + select MIPS >> -- Alex Bennée ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL [not found] <20210621152120.4465-1-alex.bennee@linaro.org> 2021-06-21 15:21 ` [PATCH v1 1/5] meson: Introduce target-specific Kconfig Alex Bennée @ 2021-06-21 15:21 ` Alex Bennée 2021-06-21 19:00 ` Philippe Mathieu-Daudé 2021-07-06 10:53 ` Thomas Huth 2021-06-21 15:21 ` [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices Alex Bennée 2 siblings, 2 replies; 13+ messages in thread From: Alex Bennée @ 2021-06-21 15:21 UTC (permalink / raw) To: qemu-devel Cc: thuth, pbonzini, Alex Bennée, Richard Henderson, Peter Maydell, open list:ARM TCG CPUs We need this functionality due to: /* XRAM IRQs get ORed into a single line. */ object_initialize_child(OBJECT(s), "xram-irq-orgate", &s->lpd.xram.irq_orgate, TYPE_OR_IRQ); Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- hw/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 647b5c8b43..528f71bb9d 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -368,6 +368,7 @@ config XLNX_VERSAL select UNIMP select XLNX_ZDMA select XLNX_ZYNQMP + select OR_IRQ config NPCM7XX bool -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL 2021-06-21 15:21 ` [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL Alex Bennée @ 2021-06-21 19:00 ` Philippe Mathieu-Daudé 2021-06-21 20:00 ` Edgar E. Iglesias 2021-07-06 10:53 ` Thomas Huth 1 sibling, 1 reply; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-06-21 19:00 UTC (permalink / raw) To: Alex Bennée, qemu-devel Cc: Peter Maydell, thuth, Richard Henderson, open list:ARM TCG CPUs, pbonzini On 6/21/21 5:21 PM, Alex Bennée wrote: > We need this functionality due to: > > /* XRAM IRQs get ORed into a single line. */ > object_initialize_child(OBJECT(s), "xram-irq-orgate", > &s->lpd.xram.irq_orgate, TYPE_OR_IRQ); > Fixes: a55b441b2ca ("hw/arm: versal: Add support for the XRAMs") > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/arm/Kconfig | 1 + > 1 file changed, 1 insertion(+) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL 2021-06-21 19:00 ` Philippe Mathieu-Daudé @ 2021-06-21 20:00 ` Edgar E. Iglesias 0 siblings, 0 replies; 13+ messages in thread From: Edgar E. Iglesias @ 2021-06-21 20:00 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Alex Bennée, qemu-devel, Peter Maydell, thuth, open list:ARM TCG CPUs, Richard Henderson, pbonzini On Mon, Jun 21, 2021 at 09:00:22PM +0200, Philippe Mathieu-Daudé wrote: > On 6/21/21 5:21 PM, Alex Bennée wrote: > > We need this functionality due to: > > > > /* XRAM IRQs get ORed into a single line. */ > > object_initialize_child(OBJECT(s), "xram-irq-orgate", > > &s->lpd.xram.irq_orgate, TYPE_OR_IRQ); > > > > Fixes: a55b441b2ca ("hw/arm: versal: Add support for the XRAMs") > > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL 2021-06-21 15:21 ` [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL Alex Bennée 2021-06-21 19:00 ` Philippe Mathieu-Daudé @ 2021-07-06 10:53 ` Thomas Huth 1 sibling, 0 replies; 13+ messages in thread From: Thomas Huth @ 2021-07-06 10:53 UTC (permalink / raw) To: Alex Bennée, qemu-devel Cc: pbonzini, Richard Henderson, Peter Maydell, open list:ARM TCG CPUs On 21/06/2021 17.21, Alex Bennée wrote: > We need this functionality due to: > > /* XRAM IRQs get ORed into a single line. */ > object_initialize_child(OBJECT(s), "xram-irq-orgate", > &s->lpd.xram.irq_orgate, TYPE_OR_IRQ); > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/arm/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig > index 647b5c8b43..528f71bb9d 100644 > --- a/hw/arm/Kconfig > +++ b/hw/arm/Kconfig > @@ -368,6 +368,7 @@ config XLNX_VERSAL > select UNIMP > select XLNX_ZDMA > select XLNX_ZYNQMP > + select OR_IRQ > > config NPCM7XX > bool > Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices [not found] <20210621152120.4465-1-alex.bennee@linaro.org> 2021-06-21 15:21 ` [PATCH v1 1/5] meson: Introduce target-specific Kconfig Alex Bennée 2021-06-21 15:21 ` [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL Alex Bennée @ 2021-06-21 15:21 ` Alex Bennée 2021-07-06 11:04 ` Thomas Huth 2021-07-06 12:14 ` Philippe Mathieu-Daudé 2 siblings, 2 replies; 13+ messages in thread From: Alex Bennée @ 2021-06-21 15:21 UTC (permalink / raw) To: qemu-devel Cc: thuth, pbonzini, Alex Bennée, Richard Henderson, Peter Maydell, open list:ARM TCG CPUs We currently select CONFIG_V7M for a bunch of our m-profile devices. The last sticking point is translate.c which cannot be compiled without expecting v7m support. Express this dependency in Kconfig rather than in default devices as a stepping stone to a fully configurable translate.c. While we are at it we also need to select ARM_COMPATIBLE_SEMIHOSTING as that is implied for M profile machines. Acked-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- vconfigs - cherry pick from re-factor - minor tweak to subject line --- default-configs/devices/arm-softmmu.mak | 3 --- hw/arm/Kconfig | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/default-configs/devices/arm-softmmu.mak b/default-configs/devices/arm-softmmu.mak index 0500156a0c..4114aa9e35 100644 --- a/default-configs/devices/arm-softmmu.mak +++ b/default-configs/devices/arm-softmmu.mak @@ -1,8 +1,5 @@ # Default configuration for arm-softmmu -# TODO: ARM_V7M is currently always required - make this more flexible! -CONFIG_ARM_V7M=y - # CONFIG_PCI_DEVICES=n # CONFIG_TEST_DEVICES=n diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 528f71bb9d..062fe94b64 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -296,7 +296,10 @@ config ZYNQ config ARM_V7M bool + # currently v7M must be included in a TCG build due to translate.c + default y if TCG && (ARM || AARCH64) select PTIMER + select ARM_COMPATIBLE_SEMIHOSTING config ALLWINNER_A10 bool -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices 2021-06-21 15:21 ` [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices Alex Bennée @ 2021-07-06 11:04 ` Thomas Huth 2021-07-06 12:14 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 13+ messages in thread From: Thomas Huth @ 2021-07-06 11:04 UTC (permalink / raw) To: Alex Bennée, qemu-devel Cc: pbonzini, Richard Henderson, Peter Maydell, open list:ARM TCG CPUs On 21/06/2021 17.21, Alex Bennée wrote: > We currently select CONFIG_V7M for a bunch of our m-profile devices. > The last sticking point is translate.c which cannot be compiled > without expecting v7m support. Express this dependency in Kconfig > rather than in default devices as a stepping stone to a fully > configurable translate.c. > > While we are at it we also need to select ARM_COMPATIBLE_SEMIHOSTING > as that is implied for M profile machines. > > Acked-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > --- > vconfigs > - cherry pick from re-factor > - minor tweak to subject line > --- > default-configs/devices/arm-softmmu.mak | 3 --- > hw/arm/Kconfig | 3 +++ > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/default-configs/devices/arm-softmmu.mak b/default-configs/devices/arm-softmmu.mak > index 0500156a0c..4114aa9e35 100644 > --- a/default-configs/devices/arm-softmmu.mak > +++ b/default-configs/devices/arm-softmmu.mak > @@ -1,8 +1,5 @@ > # Default configuration for arm-softmmu > > -# TODO: ARM_V7M is currently always required - make this more flexible! > -CONFIG_ARM_V7M=y > - > # CONFIG_PCI_DEVICES=n > # CONFIG_TEST_DEVICES=n > > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig > index 528f71bb9d..062fe94b64 100644 > --- a/hw/arm/Kconfig > +++ b/hw/arm/Kconfig > @@ -296,7 +296,10 @@ config ZYNQ > > config ARM_V7M > bool > + # currently v7M must be included in a TCG build due to translate.c > + default y if TCG && (ARM || AARCH64) > select PTIMER > + select ARM_COMPATIBLE_SEMIHOSTING Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices 2021-06-21 15:21 ` [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices Alex Bennée 2021-07-06 11:04 ` Thomas Huth @ 2021-07-06 12:14 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-06 12:14 UTC (permalink / raw) To: Alex Bennée, qemu-devel Cc: Peter Maydell, thuth, Richard Henderson, open list:ARM TCG CPUs, pbonzini On 6/21/21 5:21 PM, Alex Bennée wrote: > We currently select CONFIG_V7M for a bunch of our m-profile devices. > The last sticking point is translate.c which cannot be compiled > without expecting v7m support. Express this dependency in Kconfig > rather than in default devices as a stepping stone to a fully > configurable translate.c. > > While we are at it we also need to select ARM_COMPATIBLE_SEMIHOSTING > as that is implied for M profile machines. > > Acked-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > --- > vconfigs > - cherry pick from re-factor > - minor tweak to subject line > --- > default-configs/devices/arm-softmmu.mak | 3 --- > hw/arm/Kconfig | 3 +++ > 2 files changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-07-06 13:55 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20210621152120.4465-1-alex.bennee@linaro.org>
2021-06-21 15:21 ` [PATCH v1 1/5] meson: Introduce target-specific Kconfig Alex Bennée
2021-07-06 10:52 ` Thomas Huth
2021-07-06 12:47 ` Philippe Mathieu-Daudé
2021-07-06 13:10 ` Thomas Huth
2021-07-06 13:40 ` Philippe Mathieu-Daudé
2021-07-06 13:52 ` Alex Bennée
2021-06-21 15:21 ` [PATCH v1 2/5] hw/arm: add dependency on OR_IRQ for XLNX_VERSAL Alex Bennée
2021-06-21 19:00 ` Philippe Mathieu-Daudé
2021-06-21 20:00 ` Edgar E. Iglesias
2021-07-06 10:53 ` Thomas Huth
2021-06-21 15:21 ` [PATCH v1 3/5] hw/arm: move CONFIG_V7M out of default-devices Alex Bennée
2021-07-06 11:04 ` Thomas Huth
2021-07-06 12:14 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).