From: Andrew Jones <andrew.jones@linux.dev>
To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org,
kvmarm@lists.linux.dev
Cc: alexandru.elisei@arm.com, eric.auger@redhat.com,
atishp@rivosinc.com, cleger@rivosinc.com, pbonzini@redhat.com,
thuth@redhat.com, Andrew Jones <ajones@ventanamicro.com>
Subject: Re: [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures
Date: Tue, 4 Mar 2025 10:12:30 +0100 [thread overview]
Message-ID: <20250304-4e2ee456d30819f9a38239c8@orel> (raw)
In-Reply-To: <20250221162753.126290-5-andrew.jones@linux.dev>
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
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Jones <andrew.jones@linux.dev>
To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org,
kvmarm@lists.linux.dev
Cc: alexandru.elisei@arm.com, eric.auger@redhat.com,
atishp@rivosinc.com, cleger@rivosinc.com, pbonzini@redhat.com,
thuth@redhat.com, Andrew Jones <ajones@ventanamicro.com>
Subject: Re: [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures
Date: Tue, 4 Mar 2025 10:12:30 +0100 [thread overview]
Message-ID: <20250304-4e2ee456d30819f9a38239c8@orel> (raw)
In-Reply-To: <20250221162753.126290-5-andrew.jones@linux.dev>
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
>
next prev parent reply other threads:[~2025-03-04 9:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
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-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:12 ` Andrew Jones [this message]
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-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
2025-03-04 9:31 ` Andrew Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250304-4e2ee456d30819f9a38239c8@orel \
--to=andrew.jones@linux.dev \
--cc=ajones@ventanamicro.com \
--cc=alexandru.elisei@arm.com \
--cc=atishp@rivosinc.com \
--cc=cleger@rivosinc.com \
--cc=eric.auger@redhat.com \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=pbonzini@redhat.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.