* [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models
@ 2025-02-21 16:27 Andrew Jones
2025-02-21 16:27 ` [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures Andrew Jones
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Andrew Jones @ 2025-02-21 16:27 UTC (permalink / raw)
To: kvm, kvm-riscv, kvmarm
Cc: alexandru.elisei, eric.auger, atishp, cleger, pbonzini, thuth
Provide a couple patches allowing a QEMU machine model other than 'virt'
to be used. We just need to be able to override 'virt' in the command
line and it's also nice to be able to specify a different UART address
for any early (pre DT parsing) outputs.
Andrew Jones (2):
configure: Allow earlycon for all architectures
riscv: Introduce MACHINE_OVERRIDE
configure | 88 +++++++++++++++++++++++++++----------------------------
riscv/run | 6 ++--
2 files changed, 47 insertions(+), 47 deletions(-)
--
2.48.1
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 5+ messages in thread* [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures 2025-02-21 16:27 [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones @ 2025-02-21 16:27 ` Andrew Jones 2025-03-04 9:12 ` Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 2/2] riscv: Introduce MACHINE_OVERRIDE Andrew Jones 2025-03-04 9:31 ` [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones 2 siblings, 1 reply; 5+ messages in thread From: Andrew Jones @ 2025-02-21 16:27 UTC (permalink / raw) To: kvm, kvm-riscv, kvmarm Cc: alexandru.elisei, eric.auger, atishp, cleger, pbonzini, thuth, Andrew Jones From: Andrew Jones <ajones@ventanamicro.com> earlycon could be used by any architecture so check it outside the arm block and apply it to riscv right away. Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- configure | 88 +++++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/configure b/configure index 86cf1da36467..7e462aaf1190 100755 --- a/configure +++ b/configure @@ -78,10 +78,9 @@ usage() { 4k [default], 16k, 64k for arm64. 4k [default], 64k for ppc64. --earlycon=EARLYCON - Specify the UART name, type and address (optional, arm and - arm64 only). The specified address will overwrite the UART - address set by the --target option. EARLYCON can be one of - (case sensitive): + Specify the UART name, type and address (optional). + The specified address will overwrite the UART address set by + the --target option. EARLYCON can be one of (case sensitive): uart[8250],mmio,ADDR Specify an 8250 compatible UART at address ADDR. Supported register stride is 8 bit only. @@ -283,6 +282,41 @@ else fi fi +if [ "$earlycon" ]; then + IFS=, read -r name type_addr addr <<<"$earlycon" + if [ "$name" != "uart" ] && [ "$name" != "uart8250" ] && [ "$name" != "pl011" ]; then + echo "unknown earlycon name: $name" + usage + fi + + if [ "$name" = "pl011" ]; then + if [ -z "$addr" ]; then + addr=$type_addr + else + if [ "$type_addr" != "mmio32" ]; then + echo "unknown $name earlycon type: $type_addr" + usage + fi + fi + else + if [ "$type_addr" != "mmio" ]; then + echo "unknown $name earlycon type: $type_addr" + usage + fi + fi + + if [ -z "$addr" ]; then + echo "missing $name earlycon address" + usage + fi + if [[ $addr =~ ^0(x|X)[0-9a-fA-F]+$ ]] || [[ $addr =~ ^[0-9]+$ ]]; then + uart_early_addr=$addr + else + echo "invalid $name earlycon address: $addr" + usage + fi +fi + [ -z "$processor" ] && processor="$arch" if [ "$processor" = "arm64" ]; then @@ -296,51 +330,14 @@ if [ "$arch" = "i386" ] || [ "$arch" = "x86_64" ]; then elif [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then testdir=arm if [ "$target" = "qemu" ]; then - arm_uart_early_addr=0x09000000 + : "${uart_early_addr:=0x9000000}" elif [ "$target" = "kvmtool" ]; then - arm_uart_early_addr=0x1000000 + : "${uart_early_addr:=0x1000000}" errata_force=1 else echo "--target must be one of 'qemu' or 'kvmtool'!" usage fi - - if [ "$earlycon" ]; then - IFS=, read -r name type_addr addr <<<"$earlycon" - if [ "$name" != "uart" ] && [ "$name" != "uart8250" ] && - [ "$name" != "pl011" ]; then - echo "unknown earlycon name: $name" - usage - fi - - if [ "$name" = "pl011" ]; then - if [ -z "$addr" ]; then - addr=$type_addr - else - if [ "$type_addr" != "mmio32" ]; then - echo "unknown $name earlycon type: $type_addr" - usage - fi - fi - else - if [ "$type_addr" != "mmio" ]; then - echo "unknown $name earlycon type: $type_addr" - usage - fi - fi - - if [ -z "$addr" ]; then - echo "missing $name earlycon address" - usage - fi - if [[ $addr =~ ^0(x|X)[0-9a-fA-F]+$ ]] || - [[ $addr =~ ^[0-9]+$ ]]; then - arm_uart_early_addr=$addr - else - echo "invalid $name earlycon address: $addr" - usage - fi - fi elif [ "$arch" = "ppc64" ]; then testdir=powerpc firmware="$testdir/boot_rom.bin" @@ -351,6 +348,7 @@ elif [ "$arch" = "ppc64" ]; then elif [ "$arch" = "riscv32" ] || [ "$arch" = "riscv64" ]; then testdir=riscv arch_libdir=riscv + : "${uart_early_addr:=0x10000000}" elif [ "$arch" = "s390x" ]; then testdir=s390x else @@ -491,7 +489,7 @@ EOF if [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then cat <<EOF >> lib/config.h -#define CONFIG_UART_EARLY_BASE ${arm_uart_early_addr} +#define CONFIG_UART_EARLY_BASE ${uart_early_addr} #define CONFIG_ERRATA_FORCE ${errata_force} EOF @@ -506,7 +504,7 @@ EOF elif [ "$arch" = "riscv32" ] || [ "$arch" = "riscv64" ]; then cat <<EOF >> lib/config.h -#define CONFIG_UART_EARLY_BASE 0x10000000 +#define CONFIG_UART_EARLY_BASE ${uart_early_addr} EOF fi -- 2.48.1 -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures 2025-02-21 16:27 ` [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures Andrew Jones @ 2025-03-04 9:12 ` Andrew Jones 0 siblings, 0 replies; 5+ messages in thread From: Andrew Jones @ 2025-03-04 9:12 UTC (permalink / raw) To: kvm, kvm-riscv, kvmarm Cc: alexandru.elisei, eric.auger, atishp, cleger, pbonzini, thuth, Andrew Jones On Fri, Feb 21, 2025 at 05:27:55PM +0100, Andrew Jones wrote: > From: Andrew Jones <ajones@ventanamicro.com> > > earlycon could be used by any architecture so check it outside the > arm block and apply it to riscv right away. > > Signed-off-by: Andrew Jones <ajones@ventanamicro.com> > --- > configure | 88 +++++++++++++++++++++++++++---------------------------- > 1 file changed, 43 insertions(+), 45 deletions(-) > > diff --git a/configure b/configure > index 86cf1da36467..7e462aaf1190 100755 > --- a/configure > +++ b/configure > @@ -78,10 +78,9 @@ usage() { > 4k [default], 16k, 64k for arm64. > 4k [default], 64k for ppc64. > --earlycon=EARLYCON > - Specify the UART name, type and address (optional, arm and > - arm64 only). The specified address will overwrite the UART > - address set by the --target option. EARLYCON can be one of > - (case sensitive): > + Specify the UART name, type and address (optional). > + The specified address will overwrite the UART address set by > + the --target option. EARLYCON can be one of (case sensitive): I'll add (arm/arm64 and riscv32/riscv64 only) since no other architecture is paying attention to the parameter at this time. Thanks, drew > uart[8250],mmio,ADDR > Specify an 8250 compatible UART at address ADDR. Supported > register stride is 8 bit only. > @@ -283,6 +282,41 @@ else > fi > fi > > +if [ "$earlycon" ]; then > + IFS=, read -r name type_addr addr <<<"$earlycon" > + if [ "$name" != "uart" ] && [ "$name" != "uart8250" ] && [ "$name" != "pl011" ]; then > + echo "unknown earlycon name: $name" > + usage > + fi > + > + if [ "$name" = "pl011" ]; then > + if [ -z "$addr" ]; then > + addr=$type_addr > + else > + if [ "$type_addr" != "mmio32" ]; then > + echo "unknown $name earlycon type: $type_addr" > + usage > + fi > + fi > + else > + if [ "$type_addr" != "mmio" ]; then > + echo "unknown $name earlycon type: $type_addr" > + usage > + fi > + fi > + > + if [ -z "$addr" ]; then > + echo "missing $name earlycon address" > + usage > + fi > + if [[ $addr =~ ^0(x|X)[0-9a-fA-F]+$ ]] || [[ $addr =~ ^[0-9]+$ ]]; then > + uart_early_addr=$addr > + else > + echo "invalid $name earlycon address: $addr" > + usage > + fi > +fi > + > [ -z "$processor" ] && processor="$arch" > > if [ "$processor" = "arm64" ]; then > @@ -296,51 +330,14 @@ if [ "$arch" = "i386" ] || [ "$arch" = "x86_64" ]; then > elif [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then > testdir=arm > if [ "$target" = "qemu" ]; then > - arm_uart_early_addr=0x09000000 > + : "${uart_early_addr:=0x9000000}" > elif [ "$target" = "kvmtool" ]; then > - arm_uart_early_addr=0x1000000 > + : "${uart_early_addr:=0x1000000}" > errata_force=1 > else > echo "--target must be one of 'qemu' or 'kvmtool'!" > usage > fi > - > - if [ "$earlycon" ]; then > - IFS=, read -r name type_addr addr <<<"$earlycon" > - if [ "$name" != "uart" ] && [ "$name" != "uart8250" ] && > - [ "$name" != "pl011" ]; then > - echo "unknown earlycon name: $name" > - usage > - fi > - > - if [ "$name" = "pl011" ]; then > - if [ -z "$addr" ]; then > - addr=$type_addr > - else > - if [ "$type_addr" != "mmio32" ]; then > - echo "unknown $name earlycon type: $type_addr" > - usage > - fi > - fi > - else > - if [ "$type_addr" != "mmio" ]; then > - echo "unknown $name earlycon type: $type_addr" > - usage > - fi > - fi > - > - if [ -z "$addr" ]; then > - echo "missing $name earlycon address" > - usage > - fi > - if [[ $addr =~ ^0(x|X)[0-9a-fA-F]+$ ]] || > - [[ $addr =~ ^[0-9]+$ ]]; then > - arm_uart_early_addr=$addr > - else > - echo "invalid $name earlycon address: $addr" > - usage > - fi > - fi > elif [ "$arch" = "ppc64" ]; then > testdir=powerpc > firmware="$testdir/boot_rom.bin" > @@ -351,6 +348,7 @@ elif [ "$arch" = "ppc64" ]; then > elif [ "$arch" = "riscv32" ] || [ "$arch" = "riscv64" ]; then > testdir=riscv > arch_libdir=riscv > + : "${uart_early_addr:=0x10000000}" > elif [ "$arch" = "s390x" ]; then > testdir=s390x > else > @@ -491,7 +489,7 @@ EOF > if [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then > cat <<EOF >> lib/config.h > > -#define CONFIG_UART_EARLY_BASE ${arm_uart_early_addr} > +#define CONFIG_UART_EARLY_BASE ${uart_early_addr} > #define CONFIG_ERRATA_FORCE ${errata_force} > > EOF > @@ -506,7 +504,7 @@ EOF > elif [ "$arch" = "riscv32" ] || [ "$arch" = "riscv64" ]; then > cat <<EOF >> lib/config.h > > -#define CONFIG_UART_EARLY_BASE 0x10000000 > +#define CONFIG_UART_EARLY_BASE ${uart_early_addr} > > EOF > fi > -- > 2.48.1 > -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv ^ permalink raw reply [flat|nested] 5+ messages in thread
* [kvm-unit-tests PATCH 2/2] riscv: Introduce MACHINE_OVERRIDE 2025-02-21 16:27 [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures Andrew Jones @ 2025-02-21 16:27 ` Andrew Jones 2025-03-04 9:31 ` [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones 2 siblings, 0 replies; 5+ messages in thread From: Andrew Jones @ 2025-02-21 16:27 UTC (permalink / raw) To: kvm, kvm-riscv, kvmarm Cc: alexandru.elisei, eric.auger, atishp, cleger, pbonzini, thuth, Andrew Jones From: Andrew Jones <ajones@ventanamicro.com> Allow riscv tests to use QEMU machine types other than virt. Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- riscv/run | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/riscv/run b/riscv/run index 73f2bf54dc32..e2f5a922728c 100755 --- a/riscv/run +++ b/riscv/run @@ -10,10 +10,12 @@ if [ -z "$KUT_STANDALONE" ]; then fi # Allow user overrides of some config.mak variables +mach=$MACHINE_OVERRIDE processor=$PROCESSOR_OVERRIDE firmware=$FIRMWARE_OVERRIDE [ "$PROCESSOR" = "$ARCH" ] && PROCESSOR="max" +: "${mach:=virt}" : "${processor:=$PROCESSOR}" : "${firmware:=$FIRMWARE}" [ "$firmware" ] && firmware="-bios $firmware" @@ -23,11 +25,11 @@ set_qemu_accelerator || exit $? acc="-accel $ACCEL$ACCEL_PROPS" qemu=$(search_qemu_binary) || exit $? -if ! $qemu -machine '?' | grep -q 'RISC-V VirtIO board'; then +if [ "$mach" = 'virt' ] && ! $qemu -machine '?' | grep -q 'RISC-V VirtIO board'; then echo "$qemu doesn't support mach-virt ('-machine virt'). Exiting." exit 2 fi -mach='-machine virt' +mach="-machine $mach" command="$qemu -nodefaults -nographic -serial mon:stdio" command+=" $mach $acc $firmware -cpu $processor " -- 2.48.1 -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models 2025-02-21 16:27 [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 2/2] riscv: Introduce MACHINE_OVERRIDE Andrew Jones @ 2025-03-04 9:31 ` Andrew Jones 2 siblings, 0 replies; 5+ messages in thread From: Andrew Jones @ 2025-03-04 9:31 UTC (permalink / raw) To: kvm, kvm-riscv, kvmarm Cc: alexandru.elisei, eric.auger, atishp, cleger, pbonzini, thuth On Fri, Feb 21, 2025 at 05:27:54PM +0100, Andrew Jones wrote: > Provide a couple patches allowing a QEMU machine model other than 'virt' > to be used. We just need to be able to override 'virt' in the command > line and it's also nice to be able to specify a different UART address > for any early (pre DT parsing) outputs. > > Andrew Jones (2): > configure: Allow earlycon for all architectures > riscv: Introduce MACHINE_OVERRIDE > > configure | 88 +++++++++++++++++++++++++++---------------------------- > riscv/run | 6 ++-- > 2 files changed, 47 insertions(+), 47 deletions(-) > > -- > 2.48.1 Merged. Thanks, drew -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-03-04 9:37 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-02-21 16:27 [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures Andrew Jones 2025-03-04 9:12 ` Andrew Jones 2025-02-21 16:27 ` [kvm-unit-tests PATCH 2/2] riscv: Introduce MACHINE_OVERRIDE Andrew Jones 2025-03-04 9:31 ` [kvm-unit-tests PATCH 0/2] riscv: Run with other QEMU models Andrew Jones
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).