Message ID | 20200521195911.19685-12-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | accel: Allow targets to use Kconfig, disable semihosting by default | expand |
On 5/21/20 12:59 PM, Philippe Mathieu-Daudé wrote: > +++ b/hw/semihosting/Kconfig > @@ -1,3 +1,5 @@ > > +# default is 'n' > config SEMIHOSTING > - bool > + bool > + depends on TCG > diff --git a/target/arm/Kconfig b/target/arm/Kconfig > new file mode 100644 > index 0000000000..035592dd86 > --- /dev/null > +++ b/target/arm/Kconfig > @@ -0,0 +1,2 @@ > +config SEMIHOSTING > + default y if TCG Did you answer my question about replicating the TCG test? If you did, I missed it... r~
On 5/22/20 6:26 AM, Richard Henderson wrote: > On 5/21/20 12:59 PM, Philippe Mathieu-Daudé wrote: >> +++ b/hw/semihosting/Kconfig >> @@ -1,3 +1,5 @@ >> >> +# default is 'n' >> config SEMIHOSTING >> - bool >> + bool >> + depends on TCG >> diff --git a/target/arm/Kconfig b/target/arm/Kconfig >> new file mode 100644 >> index 0000000000..035592dd86 >> --- /dev/null >> +++ b/target/arm/Kconfig >> @@ -0,0 +1,2 @@ >> +config SEMIHOSTING >> + default y if TCG > > Did you answer my question about replicating the TCG test? If you did, I > missed it... Shortly before posting this series: https://www.mail-archive.com/qemu-devel@nongnu.org/msg705992.html There is indeed something wrong with this patch, but I'm not seeing it. - semihosting only makes sense with TCG accelerator This is the "depends on TCG" - some targets (if built with TCG enabled) require semihosting This would be a per-target "select SEMIHOSTING if TCG" Another problem is some targets only require semihosting in system-mode; and this approach select it for both system/user modes. Paolo... help!
On 5/21/20 9:59 PM, Philippe Mathieu-Daudé wrote: > The semihosting feature is only meaningful when using TCG. > > Do not enable it by default, and let the few targets requiring > it to manually select it. > The targets restricted to TCG that previously selected it > (see commit 16932bb761e52c2 'introduce CONFIG_SEMIHOSTING') > are left unmodified; however the selection is moved to the > target Kconfig. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > v3: Fixed odd hidden \xC2 UTF-8 chars: > > Traceback (most recent call last): > File "qemu/scripts/minikconf.py", line 355, in parse_file > self.src = fp.read() > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 21: ordinal not in range(128) > --- > default-configs/arm-softmmu.mak | 1 - > default-configs/lm32-softmmu.mak | 2 -- > default-configs/m68k-softmmu.mak | 2 -- > default-configs/mips-softmmu-common.mak | 3 --- > default-configs/nios2-softmmu.mak | 2 -- > default-configs/xtensa-softmmu.mak | 2 -- > hw/semihosting/Kconfig | 4 +++- > target/arm/Kconfig | 2 ++ > target/lm32/Kconfig | 2 ++ > target/m68k/Kconfig | 2 ++ > target/mips/Kconfig | 2 ++ > target/nios2/Kconfig | 2 ++ > target/riscv/Kconfig | 2 ++ > target/xtensa/Kconfig | 2 ++ > 14 files changed, 17 insertions(+), 13 deletions(-) > create mode 100644 target/arm/Kconfig > create mode 100644 target/lm32/Kconfig > create mode 100644 target/m68k/Kconfig > create mode 100644 target/mips/Kconfig > create mode 100644 target/nios2/Kconfig > create mode 100644 target/riscv/Kconfig > create mode 100644 target/xtensa/Kconfig > > diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak > index 8fc09a4a51..f6044f1121 100644 > --- a/default-configs/arm-softmmu.mak > +++ b/default-configs/arm-softmmu.mak > @@ -40,6 +40,5 @@ CONFIG_MICROBIT=y > CONFIG_FSL_IMX25=y > CONFIG_FSL_IMX7=y > CONFIG_FSL_IMX6UL=y > -CONFIG_SEMIHOSTING=y > CONFIG_ALLWINNER_H3=y > CONFIG_ACPI_APEI=y > diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak > index 115b3e34c9..6d259665d6 100644 > --- a/default-configs/lm32-softmmu.mak > +++ b/default-configs/lm32-softmmu.mak > @@ -4,8 +4,6 @@ > # > #CONFIG_MILKYMIST_TMU2=n # disabling it actually causes compile-time failures > > -CONFIG_SEMIHOSTING=y > - > # Boards: > # > CONFIG_LM32=y > diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak > index 6629fd2aa3..4fef4bd731 100644 > --- a/default-configs/m68k-softmmu.mak > +++ b/default-configs/m68k-softmmu.mak > @@ -1,7 +1,5 @@ > # Default configuration for m68k-softmmu > > -CONFIG_SEMIHOSTING=y > - > # Boards: > # > CONFIG_AN5206=y > diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak > index da29c6c0b2..6c0904b200 100644 > --- a/default-configs/mips-softmmu-common.mak > +++ b/default-configs/mips-softmmu-common.mak > @@ -1,8 +1,5 @@ > # Common mips*-softmmu CONFIG defines > > -# CONFIG_SEMIHOSTING is always required on this architecture > -CONFIG_SEMIHOSTING=y > - > CONFIG_ISA_BUS=y > CONFIG_PCI=y > CONFIG_PCI_DEVICES=y > diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak > index 1bc4082ea9..e130d024e6 100644 > --- a/default-configs/nios2-softmmu.mak > +++ b/default-configs/nios2-softmmu.mak > @@ -1,7 +1,5 @@ > # Default configuration for nios2-softmmu > > -CONFIG_SEMIHOSTING=y > - > # Boards: > # > CONFIG_NIOS2_10M50=y > diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak > index 4fe1bf00c9..49e4c9da88 100644 > --- a/default-configs/xtensa-softmmu.mak > +++ b/default-configs/xtensa-softmmu.mak > @@ -1,7 +1,5 @@ > # Default configuration for Xtensa > > -CONFIG_SEMIHOSTING=y > - > # Boards: > # > CONFIG_XTENSA_SIM=y > diff --git a/hw/semihosting/Kconfig b/hw/semihosting/Kconfig > index efe0a30734..30befcdd21 100644 > --- a/hw/semihosting/Kconfig > +++ b/hw/semihosting/Kconfig > @@ -1,3 +1,5 @@ > > +# default is 'n' > config SEMIHOSTING > - bool > + bool > + depends on TCG > diff --git a/target/arm/Kconfig b/target/arm/Kconfig > new file mode 100644 > index 0000000000..035592dd86 > --- /dev/null > +++ b/target/arm/Kconfig > @@ -0,0 +1,2 @@ > +config SEMIHOSTING > + default y if TCG This patch is incorrect, because previously the feature was selected for system-mode only, and now it is selected in user-mode too. [...]
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index 8fc09a4a51..f6044f1121 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -40,6 +40,5 @@ CONFIG_MICROBIT=y CONFIG_FSL_IMX25=y CONFIG_FSL_IMX7=y CONFIG_FSL_IMX6UL=y -CONFIG_SEMIHOSTING=y CONFIG_ALLWINNER_H3=y CONFIG_ACPI_APEI=y diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak index 115b3e34c9..6d259665d6 100644 --- a/default-configs/lm32-softmmu.mak +++ b/default-configs/lm32-softmmu.mak @@ -4,8 +4,6 @@ # #CONFIG_MILKYMIST_TMU2=n # disabling it actually causes compile-time failures -CONFIG_SEMIHOSTING=y - # Boards: # CONFIG_LM32=y diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak index 6629fd2aa3..4fef4bd731 100644 --- a/default-configs/m68k-softmmu.mak +++ b/default-configs/m68k-softmmu.mak @@ -1,7 +1,5 @@ # Default configuration for m68k-softmmu -CONFIG_SEMIHOSTING=y - # Boards: # CONFIG_AN5206=y diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak index da29c6c0b2..6c0904b200 100644 --- a/default-configs/mips-softmmu-common.mak +++ b/default-configs/mips-softmmu-common.mak @@ -1,8 +1,5 @@ # Common mips*-softmmu CONFIG defines -# CONFIG_SEMIHOSTING is always required on this architecture -CONFIG_SEMIHOSTING=y - CONFIG_ISA_BUS=y CONFIG_PCI=y CONFIG_PCI_DEVICES=y diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak index 1bc4082ea9..e130d024e6 100644 --- a/default-configs/nios2-softmmu.mak +++ b/default-configs/nios2-softmmu.mak @@ -1,7 +1,5 @@ # Default configuration for nios2-softmmu -CONFIG_SEMIHOSTING=y - # Boards: # CONFIG_NIOS2_10M50=y diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak index 4fe1bf00c9..49e4c9da88 100644 --- a/default-configs/xtensa-softmmu.mak +++ b/default-configs/xtensa-softmmu.mak @@ -1,7 +1,5 @@ # Default configuration for Xtensa -CONFIG_SEMIHOSTING=y - # Boards: # CONFIG_XTENSA_SIM=y diff --git a/hw/semihosting/Kconfig b/hw/semihosting/Kconfig index efe0a30734..30befcdd21 100644 --- a/hw/semihosting/Kconfig +++ b/hw/semihosting/Kconfig @@ -1,3 +1,5 @@ +# default is 'n' config SEMIHOSTING - bool + bool + depends on TCG diff --git a/target/arm/Kconfig b/target/arm/Kconfig new file mode 100644 index 0000000000..035592dd86 --- /dev/null +++ b/target/arm/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y if TCG diff --git a/target/lm32/Kconfig b/target/lm32/Kconfig new file mode 100644 index 0000000000..68b946e79b --- /dev/null +++ b/target/lm32/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y diff --git a/target/m68k/Kconfig b/target/m68k/Kconfig new file mode 100644 index 0000000000..68b946e79b --- /dev/null +++ b/target/m68k/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y diff --git a/target/mips/Kconfig b/target/mips/Kconfig new file mode 100644 index 0000000000..035592dd86 --- /dev/null +++ b/target/mips/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y if TCG diff --git a/target/nios2/Kconfig b/target/nios2/Kconfig new file mode 100644 index 0000000000..68b946e79b --- /dev/null +++ b/target/nios2/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y diff --git a/target/riscv/Kconfig b/target/riscv/Kconfig new file mode 100644 index 0000000000..035592dd86 --- /dev/null +++ b/target/riscv/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y if TCG diff --git a/target/xtensa/Kconfig b/target/xtensa/Kconfig new file mode 100644 index 0000000000..68b946e79b --- /dev/null +++ b/target/xtensa/Kconfig @@ -0,0 +1,2 @@ +config SEMIHOSTING + default y
The semihosting feature is only meaningful when using TCG. Do not enable it by default, and let the few targets requiring it to manually select it. The targets restricted to TCG that previously selected it (see commit 16932bb761e52c2 'introduce CONFIG_SEMIHOSTING') are left unmodified; however the selection is moved to the target Kconfig. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- v3: Fixed odd hidden \xC2 UTF-8 chars: Traceback (most recent call last): File "qemu/scripts/minikconf.py", line 355, in parse_file self.src = fp.read() UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 21: ordinal not in range(128) --- default-configs/arm-softmmu.mak | 1 - default-configs/lm32-softmmu.mak | 2 -- default-configs/m68k-softmmu.mak | 2 -- default-configs/mips-softmmu-common.mak | 3 --- default-configs/nios2-softmmu.mak | 2 -- default-configs/xtensa-softmmu.mak | 2 -- hw/semihosting/Kconfig | 4 +++- target/arm/Kconfig | 2 ++ target/lm32/Kconfig | 2 ++ target/m68k/Kconfig | 2 ++ target/mips/Kconfig | 2 ++ target/nios2/Kconfig | 2 ++ target/riscv/Kconfig | 2 ++ target/xtensa/Kconfig | 2 ++ 14 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 target/arm/Kconfig create mode 100644 target/lm32/Kconfig create mode 100644 target/m68k/Kconfig create mode 100644 target/mips/Kconfig create mode 100644 target/nios2/Kconfig create mode 100644 target/riscv/Kconfig create mode 100644 target/xtensa/Kconfig