qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 18/19] pc/q35: set SMBIOS entry point type to 'auto' by defau


From: Ani Sinha
Subject: Re: [PATCH 18/19] pc/q35: set SMBIOS entry point type to 'auto' by default
Date: Tue, 5 Mar 2024 17:51:14 +0530


> On 27-Feb-2024, at 21:17, Igor Mammedov <imammedo@redhat.com> wrote:
> 
> Use smbios-entry-point-type='auto' for newer machine types as a workaround
> for Windows not detecting SMBIOS tables. Which makes QEMU pick SMBIOS tables
> based on configuration (with 2.x preferred and fallback to 3.x if the former
> isn't compatible with configuration)
> 
> Default compat setting of smbios-entry-point-type after series
> for pc/q35 machines:
>  * 9.0-newer: 'auto'
>  * 8.1-8.2: '64'
>  * 8.0-older: '32'
> 
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2008
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

Reviewed-by: Ani Sinha <anisinha@redhat.com>

> ---
> hw/i386/pc.c      | 2 +-
> hw/i386/pc_piix.c | 4 ++++
> hw/i386/pc_q35.c  | 3 +++
> 3 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 56562e7d9e..2f69dfd0a8 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1831,7 +1831,7 @@ static void pc_machine_class_init(ObjectClass *oc, void 
> *data)
>     mc->nvdimm_supported = true;
>     mc->smp_props.dies_supported = true;
>     mc->default_ram_id = "pc.ram";
> -    pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_64;
> +    pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_AUTO;
> 
>     object_class_property_add(oc, PC_MACHINE_MAX_RAM_BELOW_4G, "size",
>         pc_machine_get_max_ram_below_4g, pc_machine_set_max_ram_below_4g,
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index ec7c07b362..f9da942c55 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -535,12 +535,16 @@ DEFINE_I440FX_MACHINE(v9_0, "pc-i440fx-9.0", NULL,
> 
> static void pc_i440fx_8_2_machine_options(MachineClass *m)
> {
> +    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> +
>     pc_i440fx_9_0_machine_options(m);
>     m->alias = NULL;
>     m->is_default = false;
> 
>     compat_props_add(m->compat_props, hw_compat_8_2, hw_compat_8_2_len);
>     compat_props_add(m->compat_props, pc_compat_8_2, pc_compat_8_2_len);
> +    /* For pc-i44fx-8.2 and 8.1, use SMBIOS 3.X by default */
> +    pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_64;
> }
> 
> DEFINE_I440FX_MACHINE(v8_2, "pc-i440fx-8.2", NULL,
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 53fb3db26d..da3f92bea7 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -371,10 +371,13 @@ DEFINE_Q35_MACHINE(v9_0, "pc-q35-9.0", NULL,
> 
> static void pc_q35_8_2_machine_options(MachineClass *m)
> {
> +    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
>     pc_q35_9_0_machine_options(m);
>     m->alias = NULL;
>     compat_props_add(m->compat_props, hw_compat_8_2, hw_compat_8_2_len);
>     compat_props_add(m->compat_props, pc_compat_8_2, pc_compat_8_2_len);
> +    /* For pc-q35-8.2 and 8.1, use SMBIOS 3.X by default */
> +    pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_64;
> }
> 
> DEFINE_Q35_MACHINE(v8_2, "pc-q35-8.2", NULL,
> -- 
> 2.39.3
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]