From nobody Sun Feb 8 18:37:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635261866324870.8748926299467; Tue, 26 Oct 2021 08:24:26 -0700 (PDT) Received: from localhost ([::1]:46490 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfOJN-0004OH-Bk for importer@patchew.org; Tue, 26 Oct 2021 11:24:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO6h-0001SO-P8 for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:32399) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO6e-0004Gn-GZ for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:19 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-386-LZ1mYwJGP8Ks9Q399kav-Q-1; Tue, 26 Oct 2021 11:11:08 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 62630101B4A3; Tue, 26 Oct 2021 15:11:07 +0000 (UTC) Received: from localhost (unknown [10.22.17.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9E4D3100751A; Tue, 26 Oct 2021 15:11:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635261072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Mdf2tFrR48heWDECv6SjjvW3NydipqmBR2MtQDmUJgA=; b=HhsVaI1tXCK86zGS9ZnE5A+ugNyew2cigA2qskf/P+oMNoPdc9Ab/wAuL3BZFUjtlCkzrE vBrITzNXHBY64qPuYSqMc8b/eaPoSEdT7i0VqD20N37MnXTPxia6+M1Umm3ry0fpYRXE2j 0XtY6Gpo/Um+ZstD37WICzz/NWoYgVM= X-MC-Unique: LZ1mYwJGP8Ks9Q399kav-Q-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH v3 1/3] smbios: Rename SMBIOS_ENTRY_POINT_* enums Date: Tue, 26 Oct 2021 11:10:58 -0400 Message-Id: <20211026151100.1691925-2-ehabkost@redhat.com> In-Reply-To: <20211026151100.1691925-1-ehabkost@redhat.com> References: <20211026151100.1691925-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Daniel P. Berrange" , Eduardo Habkost , "Michael S. Tsirkin" , Eric Blake , Richard Henderson , Markus Armbruster , Michael Roth , qemu-arm@nongnu.org, Paolo Bonzini , Ani Sinha , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635261866759100002 Rename the enums to match the naming style used by QAPI, and to use "32" and "64" instead of "20" and "31". This will allow us to more easily move the enum to the QAPI schema later. About the naming choice: "SMBIOS 2.1 entry point"/"SMBIO 3.0 entry point" and "32-bit entry point"/"64-bit entry point" are synonymous in the SMBIOS specification. However, the phrases "32-bit entry point" and "64-bit entry point" are used more often. The new names also avoid confusion between the entry point format and the actual SMBIOS version reported in the entry point structure. For example: currently the 32-bit entry point actually report SMBIOS 2.8 support, not 2.1. Based on portions of a patch submitted by Daniel P. Berrang=C3=A9. Signed-off-by: Eduardo Habkost Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- First version of this code was submitted at: https://lore.kernel.org/qemu-devel/20200908165438.1008942-5-berrange@redhat= .com Changes from v2: * Use "32" and "64" instead of "2_0" and "3_1" Changes from v1: * Patch was split in two * Hunks included this patch are not changed from v1 --- include/hw/firmware/smbios.h | 4 ++-- hw/arm/virt.c | 2 +- hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 2 +- hw/smbios/smbios.c | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/hw/firmware/smbios.h b/include/hw/firmware/smbios.h index 5a0dd0c8cff..d916baed6a9 100644 --- a/include/hw/firmware/smbios.h +++ b/include/hw/firmware/smbios.h @@ -27,8 +27,8 @@ struct smbios_phys_mem_area { * SMBIOS spec defined tables */ typedef enum SmbiosEntryPointType { - SMBIOS_ENTRY_POINT_21, - SMBIOS_ENTRY_POINT_30, + SMBIOS_ENTRY_POINT_TYPE_32, + SMBIOS_ENTRY_POINT_TYPE_64, } SmbiosEntryPointType; =20 /* SMBIOS Entry Point diff --git a/hw/arm/virt.c b/hw/arm/virt.c index ca433adb5b1..2bd73d501da 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1589,7 +1589,7 @@ static void virt_build_smbios(VirtMachineState *vms) =20 smbios_set_defaults("QEMU", product, vmc->smbios_old_sys_ver ? "1.0" : mc->name, false, - true, SMBIOS_ENTRY_POINT_30); + true, SMBIOS_ENTRY_POINT_TYPE_64); =20 smbios_get_tables(MACHINE(vms), NULL, 0, &smbios_tables, &smbios_tables_len, diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 6ad0d763c57..17c050694f5 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -177,7 +177,7 @@ static void pc_init1(MachineState *machine, smbios_set_defaults("QEMU", "Standard PC (i440FX + PIIX, 1996)", mc->name, pcmc->smbios_legacy_mode, pcmc->smbios_uuid_encoded, - SMBIOS_ENTRY_POINT_21); + SMBIOS_ENTRY_POINT_TYPE_32); } =20 /* allocate ram and load rom/bios */ diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index fcc6e4eb2b8..48419ebfd5f 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -199,7 +199,7 @@ static void pc_q35_init(MachineState *machine) smbios_set_defaults("QEMU", "Standard PC (Q35 + ICH9, 2009)", mc->name, pcmc->smbios_legacy_mode, pcmc->smbios_uuid_encoded, - SMBIOS_ENTRY_POINT_21); + SMBIOS_ENTRY_POINT_TYPE_32); } =20 /* allocate ram and load rom/bios */ diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index 7397e567373..6013df1698e 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -62,7 +62,7 @@ uint8_t *smbios_tables; size_t smbios_tables_len; unsigned smbios_table_max; unsigned smbios_table_cnt; -static SmbiosEntryPointType smbios_ep_type =3D SMBIOS_ENTRY_POINT_21; +static SmbiosEntryPointType smbios_ep_type =3D SMBIOS_ENTRY_POINT_TYPE_32; =20 static SmbiosEntryPoint ep; =20 @@ -432,7 +432,7 @@ static void smbios_validate_table(MachineState *ms) exit(1); } =20 - if (smbios_ep_type =3D=3D SMBIOS_ENTRY_POINT_21 && + if (smbios_ep_type =3D=3D SMBIOS_ENTRY_POINT_TYPE_32 && smbios_tables_len > SMBIOS_21_MAX_TABLES_LEN) { error_report("SMBIOS 2.1 table length %zu exceeds %d", smbios_tables_len, SMBIOS_21_MAX_TABLES_LEN); @@ -927,7 +927,7 @@ void smbios_set_defaults(const char *manufacturer, cons= t char *product, static void smbios_entry_point_setup(void) { switch (smbios_ep_type) { - case SMBIOS_ENTRY_POINT_21: + case SMBIOS_ENTRY_POINT_TYPE_32: memcpy(ep.ep21.anchor_string, "_SM_", 4); memcpy(ep.ep21.intermediate_anchor_string, "_DMI_", 5); ep.ep21.length =3D sizeof(struct smbios_21_entry_point); @@ -950,7 +950,7 @@ static void smbios_entry_point_setup(void) ep.ep21.structure_table_address =3D cpu_to_le32(0); =20 break; - case SMBIOS_ENTRY_POINT_30: + case SMBIOS_ENTRY_POINT_TYPE_64: memcpy(ep.ep30.anchor_string, "_SM3_", 5); ep.ep30.length =3D sizeof(struct smbios_30_entry_point); ep.ep30.entry_point_revision =3D 1; --=20 2.32.0 From nobody Sun Feb 8 18:37:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635262057565687.6748506702855; Tue, 26 Oct 2021 08:27:37 -0700 (PDT) Received: from localhost ([::1]:55194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfOMS-0001tK-ED for importer@patchew.org; Tue, 26 Oct 2021 11:27:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44014) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO6w-00021N-Uv for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53574) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO6v-0004KD-69 for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:34 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-380-CeLRO342NQe5m0r-f-4Reg-1; Tue, 26 Oct 2021 11:11:31 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C633DEC1AE; Tue, 26 Oct 2021 15:11:29 +0000 (UTC) Received: from localhost (unknown [10.22.17.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0606E17DBA; Tue, 26 Oct 2021 15:11:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635261092; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hs44lyH7kz/lQR/nw1zRo9zWMi8XCPpsTXrMpnV8vrs=; b=dKF+x+pvIb5P/J9+q7yVJcthZeyLg0k0Y8RzLXSmHpwsaUsIzBmR/HiVTRUf6C8GbG+w+G TZXXno8tzM8wOleLeV+Er/UxW99/HhJvF1BNZKBybT8t/+nv99OJp5E8brpXQzXQ2Yrb0z e6y9e0QdzHqr9Rvxnv/1Ki2S3dsOEiw= X-MC-Unique: CeLRO342NQe5m0r-f-4Reg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH v3 2/3] hw/smbios: Use qapi for SmbiosEntryPointType Date: Tue, 26 Oct 2021 11:10:59 -0400 Message-Id: <20211026151100.1691925-3-ehabkost@redhat.com> In-Reply-To: <20211026151100.1691925-1-ehabkost@redhat.com> References: <20211026151100.1691925-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Daniel P. Berrange" , Eduardo Habkost , "Michael S. Tsirkin" , Eric Blake , Richard Henderson , Markus Armbruster , Michael Roth , qemu-arm@nongnu.org, Paolo Bonzini , Ani Sinha , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635262060507100001 This prepares for exposing the SMBIOS entry point type as a machine property on x86. Based on a patch from Daniel P. Berrang=C3=A9. Signed-off-by: Daniel P. Berrang=C3=A9 Signed-off-by: Eduardo Habkost Acked-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- First version of this code was submitted at: https://lore.kernel.org/qemu-devel/20200908165438.1008942-5-berrange@redhat= .com Changes from v2: * Rename "2_0"/"3_1" to "32"/"64", to make the names more QAPI-friendly (as underscores and dots are not allowed by QAPI) * Move definition from smbios.json back to machine.json (no need for a separate file just for one enum) Changes from v1: * Patch was split in two * Moved definition to smbios.json --- include/hw/firmware/smbios.h | 10 ++-------- qapi/machine.json | 12 ++++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/hw/firmware/smbios.h b/include/hw/firmware/smbios.h index d916baed6a9..4b7ad77a44f 100644 --- a/include/hw/firmware/smbios.h +++ b/include/hw/firmware/smbios.h @@ -1,6 +1,8 @@ #ifndef QEMU_SMBIOS_H #define QEMU_SMBIOS_H =20 +#include "qapi/qapi-types-machine.h" + /* * SMBIOS Support * @@ -23,14 +25,6 @@ struct smbios_phys_mem_area { uint64_t length; }; =20 -/* - * SMBIOS spec defined tables - */ -typedef enum SmbiosEntryPointType { - SMBIOS_ENTRY_POINT_TYPE_32, - SMBIOS_ENTRY_POINT_TYPE_64, -} SmbiosEntryPointType; - /* SMBIOS Entry Point * There are two types of entry points defined in the SMBIOS specification * (see below). BIOS must place the entry point(s) at a 16-byte-aligned diff --git a/qapi/machine.json b/qapi/machine.json index 5db54df298f..0a13579275f 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -1411,3 +1411,15 @@ '*cores': 'int', '*threads': 'int', '*maxcpus': 'int' } } + +## +# @SmbiosEntryPointType: +# +# @32: SMBIOS version 2.1 (32-bit) Entry Point +# +# @64: SMBIOS version 3.0 (64-bit) Entry Point +# +# Since: 6.1 +## +{ 'enum': 'SmbiosEntryPointType', + 'data': [ '32', '64' ] } --=20 2.32.0 From nobody Sun Feb 8 18:37:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163526210426732.69799881402639; Tue, 26 Oct 2021 08:28:24 -0700 (PDT) Received: from localhost ([::1]:58046 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfOND-0003le-Aw for importer@patchew.org; Tue, 26 Oct 2021 11:28:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44062) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO74-0002Cd-PE for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:51408) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO72-0004UI-Uq for qemu-devel@nongnu.org; Tue, 26 Oct 2021 11:11:42 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-227-eNSfdWkdN_OEYleeoUuNVw-1; Tue, 26 Oct 2021 11:11:35 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 77958101B4A4; Tue, 26 Oct 2021 15:11:34 +0000 (UTC) Received: from localhost (unknown [10.22.17.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 69C055F4E0; Tue, 26 Oct 2021 15:11:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635261099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WksQepENHSVs450wBWVB7cwqfPbkUBmDbyaSnQ9L77k=; b=c7s1HLKlIvlJGcq+FMzLXOqdLKKukSAtMgGsogNAWD4hTmnO/T/fqu9CiYWqaAktH/b4NC qqaFZdNE7QUqVdKHswSJmP+oANQdZ2cu58ruPR/os2esGHJeXwNQUZ4r6adRFo2ZNRGa3S lmXuodHJL9ktKn4xIBXPUBdb8xa+DlY= X-MC-Unique: eNSfdWkdN_OEYleeoUuNVw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH v3 3/3] hw/i386: expose a "smbios-entry-point-type" PC machine property Date: Tue, 26 Oct 2021 11:11:00 -0400 Message-Id: <20211026151100.1691925-4-ehabkost@redhat.com> In-Reply-To: <20211026151100.1691925-1-ehabkost@redhat.com> References: <20211026151100.1691925-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Daniel P. Berrange" , Eduardo Habkost , "Michael S. Tsirkin" , Eric Blake , Richard Henderson , Markus Armbruster , Michael Roth , qemu-arm@nongnu.org, Paolo Bonzini , Ani Sinha , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635262106634100001 The i440fx and Q35 machine types are both hardcoded to use the legacy SMBIOS 2.1 (32-bit) entry point. This is a sensible conservative choice because SeaBIOS only supports SMBIOS 2.1 EDK2, however, can also support SMBIOS 3.0 (64-bit) entry points, and QEMU already uses this on the ARM virt machine type. This adds a property to allow the choice of SMBIOS entry point versions For example to opt in to 64-bit SMBIOS entry point: $QEMU -machine q35,smbios-entry-point-type=3D64 Based on a patch submitted by Daniel Berrang=C3=A9. Signed-off-by: Daniel P. Berrang=C3=A9 Signed-off-by: Eduardo Habkost Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- This is patch was previously submitted at: https://lore.kernel.org/qemu-devel/20200908165438.1008942-6-berrange@redhat= .com Changes from v2: * Rename "smbios-ep" to "smbios-entry-point-type" Changes from v1: * Include qapi-visit-smbios.h instead of qapi-visit-machine.h * Commit message fix: s/smbios_ep/smbios-ep/ --- include/hw/i386/pc.h | 4 ++++ hw/i386/pc.c | 26 ++++++++++++++++++++++++++ hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 2 +- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 11426e26dc3..95f7f55cdc6 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -13,6 +13,7 @@ #include "hw/hotplug.h" #include "qom/object.h" #include "hw/i386/sgx-epc.h" +#include "hw/firmware/smbios.h" =20 #define HPET_INTCAP "hpet-intcap" =20 @@ -39,6 +40,7 @@ typedef struct PCMachineState { /* Configuration options: */ uint64_t max_ram_below_4g; OnOffAuto vmport; + SmbiosEntryPointType smbios_entry_point_type; =20 bool acpi_build_enabled; bool smbus_enabled; @@ -62,6 +64,8 @@ typedef struct PCMachineState { #define PC_MACHINE_SATA "sata" #define PC_MACHINE_PIT "pit" #define PC_MACHINE_MAX_FW_SIZE "max-fw-size" +#define PC_MACHINE_SMBIOS_EP "smbios-entry-point-type" + /** * PCMachineClass: * diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 86223acfd34..bbeae19fa2f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -77,6 +77,7 @@ #include "hw/mem/nvdimm.h" #include "qapi/error.h" #include "qapi/qapi-visit-common.h" +#include "qapi/qapi-visit-machine.h" #include "qapi/visitor.h" #include "hw/core/cpu.h" #include "hw/usb.h" @@ -1494,6 +1495,23 @@ static void pc_machine_set_default_bus_bypass_iommu(= Object *obj, bool value, pcms->default_bus_bypass_iommu =3D value; } =20 +static void pc_machine_get_smbios_ep(Object *obj, Visitor *v, const char *= name, + void *opaque, Error **errp) +{ + PCMachineState *pcms =3D PC_MACHINE(obj); + SmbiosEntryPointType smbios_entry_point_type =3D pcms->smbios_entry_po= int_type; + + visit_type_SmbiosEntryPointType(v, name, &smbios_entry_point_type, err= p); +} + +static void pc_machine_set_smbios_ep(Object *obj, Visitor *v, const char *= name, + void *opaque, Error **errp) +{ + PCMachineState *pcms =3D PC_MACHINE(obj); + + visit_type_SmbiosEntryPointType(v, name, &pcms->smbios_entry_point_typ= e, errp); +} + static void pc_machine_get_max_ram_below_4g(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -1584,6 +1602,8 @@ static void pc_machine_initfn(Object *obj) pcms->vmport =3D ON_OFF_AUTO_OFF; #endif /* CONFIG_VMPORT */ pcms->max_ram_below_4g =3D 0; /* use default */ + pcms->smbios_entry_point_type =3D SMBIOS_ENTRY_POINT_TYPE_32; + /* acpi build is enabled by default if machine supports it */ pcms->acpi_build_enabled =3D PC_MACHINE_GET_CLASS(pcms)->has_acpi_buil= d; pcms->smbus_enabled =3D true; @@ -1727,6 +1747,12 @@ static void pc_machine_class_init(ObjectClass *oc, v= oid *data) NULL, NULL); object_class_property_set_description(oc, PC_MACHINE_MAX_FW_SIZE, "Maximum combined firmware size"); + + object_class_property_add(oc, PC_MACHINE_SMBIOS_EP, "str", + pc_machine_get_smbios_ep, pc_machine_set_smbios_ep, + NULL, NULL); + object_class_property_set_description(oc, PC_MACHINE_SMBIOS_EP, + "SMBIOS Entry Point type [32, 64]"); } =20 static const TypeInfo pc_machine_info =3D { diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 17c050694f5..45e3c760915 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -177,7 +177,7 @@ static void pc_init1(MachineState *machine, smbios_set_defaults("QEMU", "Standard PC (i440FX + PIIX, 1996)", mc->name, pcmc->smbios_legacy_mode, pcmc->smbios_uuid_encoded, - SMBIOS_ENTRY_POINT_TYPE_32); + pcms->smbios_entry_point_type); } =20 /* allocate ram and load rom/bios */ diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 48419ebfd5f..a6477db880b 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -199,7 +199,7 @@ static void pc_q35_init(MachineState *machine) smbios_set_defaults("QEMU", "Standard PC (Q35 + ICH9, 2009)", mc->name, pcmc->smbios_legacy_mode, pcmc->smbios_uuid_encoded, - SMBIOS_ENTRY_POINT_TYPE_32); + pcms->smbios_entry_point_type); } =20 /* allocate ram and load rom/bios */ --=20 2.32.0