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: [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures
Date: Fri, 21 Feb 2025 17:27:55 +0100 [thread overview]
Message-ID: <20250221162753.126290-5-andrew.jones@linux.dev> (raw)
In-Reply-To: <20250221162753.126290-4-andrew.jones@linux.dev>
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
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: [kvm-unit-tests PATCH 1/2] configure: Allow earlycon for all architectures
Date: Fri, 21 Feb 2025 17:27:55 +0100 [thread overview]
Message-ID: <20250221162753.126290-5-andrew.jones@linux.dev> (raw)
In-Reply-To: <20250221162753.126290-4-andrew.jones@linux.dev>
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
next prev parent reply other threads:[~2025-02-21 16:31 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 ` Andrew Jones [this message]
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-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=20250221162753.126290-5-andrew.jones@linux.dev \
--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.