hw/riscv/virt.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
The -bios option is silently ignored if used in combination with -enable-kvm.
The reason is that the machine starts in S-Mode, and the bios typically runs in
M-Mode.
Better exit in that case to not confuse the user.
Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
---
hw/riscv/virt.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index da50cbed43..09609c96e8 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -1308,12 +1308,18 @@ static void virt_machine_init(MachineState *machine)
/*
* Only direct boot kernel is currently supported for KVM VM,
- * so the "-bios" parameter is ignored and treated like "-bios none"
- * when KVM is enabled.
+ * so the "-bios" parameter is not supported when KVM is enabled.
*/
if (kvm_enabled()) {
- g_free(machine->firmware);
- machine->firmware = g_strdup("none");
+ if (machine->firmware) {
+ if (strcmp(machine->firmware, "none")) {
+ error_report("Machine mode firmware is not supported in "
+ "combination with KVM.");
+ exit(1);
+ }
+ } else {
+ machine->firmware = g_strdup("none");
+ }
}
if (riscv_is_32bit(&s->soc[0])) {
--
2.32.0
On Fri, Apr 1, 2022 at 8:19 PM Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de> wrote: > > The -bios option is silently ignored if used in combination with -enable-kvm. > The reason is that the machine starts in S-Mode, and the bios typically runs in > M-Mode. > > Better exit in that case to not confuse the user. > > Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de> > --- > hw/riscv/virt.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
On Fri, Apr 1, 2022 at 10:18 PM Ralf Ramsauer
<ralf.ramsauer@oth-regensburg.de> wrote:
>
> The -bios option is silently ignored if used in combination with -enable-kvm.
> The reason is that the machine starts in S-Mode, and the bios typically runs in
> M-Mode.
>
> Better exit in that case to not confuse the user.
>
> Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
Thanks!
Applied to riscv-to-apply.next
Alistair
> ---
> hw/riscv/virt.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index da50cbed43..09609c96e8 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -1308,12 +1308,18 @@ static void virt_machine_init(MachineState *machine)
>
> /*
> * Only direct boot kernel is currently supported for KVM VM,
> - * so the "-bios" parameter is ignored and treated like "-bios none"
> - * when KVM is enabled.
> + * so the "-bios" parameter is not supported when KVM is enabled.
> */
> if (kvm_enabled()) {
> - g_free(machine->firmware);
> - machine->firmware = g_strdup("none");
> + if (machine->firmware) {
> + if (strcmp(machine->firmware, "none")) {
> + error_report("Machine mode firmware is not supported in "
> + "combination with KVM.");
> + exit(1);
> + }
> + } else {
> + machine->firmware = g_strdup("none");
> + }
> }
>
> if (riscv_is_32bit(&s->soc[0])) {
> --
> 2.32.0
>
On Fri, Apr 1, 2022 at 5:48 PM Ralf Ramsauer
<ralf.ramsauer@oth-regensburg.de> wrote:
>
> The -bios option is silently ignored if used in combination with -enable-kvm.
> The reason is that the machine starts in S-Mode, and the bios typically runs in
> M-Mode.
>
> Better exit in that case to not confuse the user.
>
> Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
Looks good to me.
Reviewed-by: Anup Patel <anup@brainfault.org>
Regards,
Anup
> ---
> hw/riscv/virt.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index da50cbed43..09609c96e8 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -1308,12 +1308,18 @@ static void virt_machine_init(MachineState *machine)
>
> /*
> * Only direct boot kernel is currently supported for KVM VM,
> - * so the "-bios" parameter is ignored and treated like "-bios none"
> - * when KVM is enabled.
> + * so the "-bios" parameter is not supported when KVM is enabled.
> */
> if (kvm_enabled()) {
> - g_free(machine->firmware);
> - machine->firmware = g_strdup("none");
> + if (machine->firmware) {
> + if (strcmp(machine->firmware, "none")) {
> + error_report("Machine mode firmware is not supported in "
> + "combination with KVM.");
> + exit(1);
> + }
> + } else {
> + machine->firmware = g_strdup("none");
> + }
> }
>
> if (riscv_is_32bit(&s->soc[0])) {
> --
> 2.32.0
>
On Fri, Apr 1, 2022 at 10:18 PM Ralf Ramsauer
<ralf.ramsauer@oth-regensburg.de> wrote:
>
> The -bios option is silently ignored if used in combination with -enable-kvm.
> The reason is that the machine starts in S-Mode, and the bios typically runs in
> M-Mode.
>
> Better exit in that case to not confuse the user.
>
> Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> hw/riscv/virt.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index da50cbed43..09609c96e8 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -1308,12 +1308,18 @@ static void virt_machine_init(MachineState *machine)
>
> /*
> * Only direct boot kernel is currently supported for KVM VM,
> - * so the "-bios" parameter is ignored and treated like "-bios none"
> - * when KVM is enabled.
> + * so the "-bios" parameter is not supported when KVM is enabled.
> */
> if (kvm_enabled()) {
> - g_free(machine->firmware);
> - machine->firmware = g_strdup("none");
> + if (machine->firmware) {
> + if (strcmp(machine->firmware, "none")) {
> + error_report("Machine mode firmware is not supported in "
> + "combination with KVM.");
> + exit(1);
> + }
> + } else {
> + machine->firmware = g_strdup("none");
> + }
> }
>
> if (riscv_is_32bit(&s->soc[0])) {
> --
> 2.32.0
>
© 2016 - 2026 Red Hat, Inc.