From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (NAM02-DM3-obe.outbound.protection.outlook.com [40.107.95.120]) by mx.groups.io with SMTP id smtpd.web09.14120.1663266189612463985 for ; Thu, 15 Sep 2022 11:23:10 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="no key for verify" header.i=@amperemail.onmicrosoft.com header.s=selector1-amperemail-onmicrosoft-com header.b=foKOjgtU; spf=pass (domain: os.amperecomputing.com, ip: 40.107.95.120, mailfrom: nhi@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jd+6KzxCaivDUPAdHSdvY+hX3JFpqLg/mW3JjaBXjpBOj258RsCUx2yItyZ8SAGn0e9Qh6uh4l+sua7KogHFPtOEXjohWvaaCWHIiV4V+K69kco+z/WOE+A7nQooAk8y469xX0dFOpcrERrTkB9QM8/WErjA9U7P8bPcJKsanYICJrGJUG3pPaZ159GHfJP2C1h3xZx/E+ALg+sWO4KRc6KZuOWAFh51FTKZGYWPi7q2jC+GjhAKALBaPcJky+5DmNRoCLJyl4QkABwwBhhQCZT0AYyAJni+dAl345+CA0JqlaMi28zyAYlIgHj5+KhaQGXvAYjxxC+D0RRXinukIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZdHAg1jgvULTlZP5SwqTs1vB4tRX0gpureZdSDGvrMg=; b=TgUtBscfC8jjvHfAlwPbiAk0iOVlr7AnUnkotFoo1kb8puDTHWY8fmjssNDdtfAQailGq+1a4lDBSQhPYk1FN2Wo09hXKHJgTjCcNYNBK+hT1TA0HADG2h5AvgEo2Fv1/pS5T52GHfZBwoP2LgLUv6rEqhZMA+iGIFo1QvBqE5kP+kODY5S5NKKkkR+4KGNPor/i7mQz43XP5OeMkAy/a22veYbEd72WRdsfZbs6kAkt3eggS0PuJ8PWFjorqzSokSEoPmD0OAdWVNSYMhJqlrESt7db20LNDBFvLjIiALDZaWIy2yFOPKxNyClW9WAwqVXOZObl+HpK0XcP7Y3S0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=amperemail.onmicrosoft.com; dkim=pass header.d=amperemail.onmicrosoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amperemail.onmicrosoft.com; s=selector1-amperemail-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZdHAg1jgvULTlZP5SwqTs1vB4tRX0gpureZdSDGvrMg=; b=foKOjgtU17KZ/esMQbXGtKTc9AJEs/D9pSbGRK5r+uPEs8vujX9V1k/pjfYf8Cse30yfbYkSeclLNbtgexIdnxgkkgIHuFhLk3bOZmfvky13Ulkre/E9lphE40FY4DCqITnRKpbDIPItRYACUbM+QZ4TlMfCF5eutiQUyp2Alz0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amperemail.onmicrosoft.com; Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by CO1PR01MB7257.prod.exchangelabs.com (2603:10b6:303:150::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.14; Thu, 15 Sep 2022 18:23:05 +0000 Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::fc6b:4f56:8f32:dfa5]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::fc6b:4f56:8f32:dfa5%4]) with mapi id 15.20.5612.022; Thu, 15 Sep 2022 18:23:04 +0000 Message-ID: <402b3f32-ee70-565f-914e-0befd706f2c5@amperemail.onmicrosoft.com> Date: Fri, 16 Sep 2022 01:22:54 +0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH v3 6/6] ArmPkg/SmbiosMiscDxe: Get SMBIOS information from OemMiscLib To: Leif Lindholm , Nhi Pham Cc: devel@edk2.groups.io, ardb+tianocore@kernel.org, sami.mujawar@arm.com, quic_rcran@quicinc.com, patches@amperecomputing.com, Minh Nguyen , Rebecca Cran , Ard Biesheuvel References: <20220913061947.735951-1-nhi@os.amperecomputing.com> <20220913061947.735951-7-nhi@os.amperecomputing.com> From: "Nhi Pham" In-Reply-To: X-ClientProxiedBy: SG2PR01CA0124.apcprd01.prod.exchangelabs.com (2603:1096:4:40::28) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) Return-Path: nhi@os.amperecomputing.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|CO1PR01MB7257:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a1dfd4a-6bbb-4b5f-532d-08da9747547c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DbtSN50jlmsrgHTE5hIbygovNBwlREp8VCB6ztWSv20+o8XqB0qg3oEkXfBUA65WM/zVFH/eN/UZVda7DzvjjHs15KJh8UBWhMIzazwGEpRXA4bvrCMic/bx3YEXbMRJmoLZUdepQLRDdnDWxBPgti0Q3buEApvBsFhoijGcdOjtJ5QZONW+qnQVhyOnbufZkE9mfyrFjjNhnyigREdngk3c3tMq2+kI9ccJtAjzz+tK1T8+p7KMeWZut3Ci91qEZKTHSM4CmCCxnA97H8CtJ3PEyxVquV6BHQTNPx9Cf81chl7ONp5gN/WwXbQGPq8ksGiur4Yhy/iYb99Hsj7TNHYnoB+WRqw+0Qf+WcHsOO01+ufSiMC5GePaWTq4M5SuD1HAGV/F/ih+XjLKN6XZaTFhOszmu3ibBaw0bnPy8RlnsygngN/rxK50SxHxtf7zxOXWhPqV78OjQvHEgcrPrmVCz+MolxKMN7mOrVFVY+/JWgaFMhPBKtIEN3r/D8PLbbKwUqMwroAEWojxdtozBjH06861AJXiHoUqr9PkDsxWXbw4bQiT6d7Ok91KBFeJpqiRUnIYbc/MfUClBRqmseyn+1hV4kjGbsjB3ud7aaKJyg3K7MbDH9jOVmPpMvG3vAFsZ4XexwfYaA1VJ/PQYRllnBVjabzpSN6Ou1ol+XUWse+smsEJ0tCUMrkV8omWOc/q7hkBK/Dpa2Ppp6qgMgl3IMTW3nb4k5E+tvjCWs6o952Yn8UCYKX7QQzqRiSLUEaUdGc1M3NzOsE/BaxH5H/Bk29tEaqEOzcufR83OXV5wNPSDs9J6WflcRxrkHFL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR01MB7287.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(39850400004)(376002)(346002)(396003)(366004)(451199015)(83170400001)(38350700002)(38100700002)(6666004)(316002)(2906002)(8936002)(6506007)(52116002)(53546011)(110136005)(54906003)(83380400001)(41300700001)(31686004)(6486002)(26005)(186003)(6512007)(42882007)(31696002)(5660300002)(66476007)(66946007)(66556008)(478600001)(8676002)(2616005)(4326008)(43740500002)(44824005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VktwUTVMMXdRN0xMd3dIa1VNa2lWMmVkcTJFc3Q1dEdRd3gwL1N0cWllRjJK?= =?utf-8?B?Mk8rT29yY05JUG9KWitmWTJQOVFOVXh0cnhyRzNRVG1KNEhoNHRPQSt0V3VN?= =?utf-8?B?dFlnZDN1M1NZM3NVRk5RY0duOXBxT3pWR2JDaUlPWXdXNVY5ckt0ZmZXd1gy?= =?utf-8?B?eDV2TTE4aUNBaTJQWVlwamJva0hIODFhUjQyeW1PeGFLWFl4Z1huMlVHdU1t?= =?utf-8?B?Qm9Idi9Xc1BPaTZkb3NadVNJWkx2NFk5Wmt0bEl3cFlFNWlEc0JMMVN6dDRh?= =?utf-8?B?eWJlak1ZWTNaalQwUEJXWGRMRTZBdmw4b3gvTTVhd1NaUVp1a0E3cVVOVjQ3?= =?utf-8?B?eTZOV2x2RUdLKzlqYnVycXlkRHUveXZvOXZLeDdRZ1Q1MjJvWFRBZGhuNzd2?= =?utf-8?B?V1hsaGxzU0g2NlZZYXVLTHFiNHhBKy8yUTJrMjFVNWc2TGFGd21GQlJqa1cz?= =?utf-8?B?NmNvVmFFT1JJSHg3a1ZNTEprSGZiWUhZQ0lLWldpL3pMdVVRMVBzTVV3Zzh0?= =?utf-8?B?dGkyQ1RiLzRWRlVMeGlJSVc4dVcxQlplS3VoVFdBbHhhcVh4QUZWZWVoVkh3?= =?utf-8?B?c05EUEw3QTViMkR4T0g0UWRxby9URlQ4S0NmZDlYeXlJNjY4WEw1YVZvKzQr?= =?utf-8?B?RG5XWVhENXIwTDVNZ3N6d2Q1ZjhPMk0rRnRrZmI1eW1vTFZUMXB2djF2VEFo?= =?utf-8?B?U1c0TmhnUC9FMENta1YyV2EzVklKTlNTbjBYVEpISml3MzBqNlI0dzBZdFc0?= =?utf-8?B?Z3R4TkUwdm0yVjdqdk1uUFdkSm5TMEdkaTVVUXJBdy9BSGRLZG84aDJNWU9G?= =?utf-8?B?WlpYc0VSQUQxUGF4MXpDRFJxT2ZLaWtIWEZSK3p4Y2dTaFRvMXc1VU53aE42?= =?utf-8?B?Q3NRVlVUYzFNTmU0RE44anBleHBHT0I4bm5UM2hGcERtQ2p2ZFl2UDZTUnpH?= =?utf-8?B?RjNYV3dpTHJGSWJPbHZyMk9KVEtLTzIxNmZQZ0hIOWdsaFdJaGNJRzhCaE1u?= =?utf-8?B?QVNZT3czSXhrcEUrTWxOWVNkQ1dHalI2Q1V2U3QwM0JlTFM1bit4UUEvcUhl?= =?utf-8?B?MmlnZkcxZkdkYk94TVM4dG9GVDRZbzhhdEtXdU80aEtnaGFTRjFWRUhYa3Nh?= =?utf-8?B?MDRxK2laUWpyNjVGazIrNjZCNWZleGlrbFN3dDFadHM0bW0zeGRwUElMTWdI?= =?utf-8?B?SGlhR2czNjNIdUhIZHM1NUdNaVFCdU5KcDJQSE8ycTVQakZOOFFaeTg1ZDFv?= =?utf-8?B?V0VUQmNOTld3cUFvSngvam12cHlSYk9RS3I0dUJvTUxKa1NOVXhUbzU0bEFt?= =?utf-8?B?VDVhenhhU08xYnU3S2dvZENwMzlxNzZmS0Q4TTFMMXdUUXBZS1B0Y1NJLzNO?= =?utf-8?B?c2lhdnhaWGhITUFwbXltaUlocGlrNFdyS2F0bWI5MHo4QytpOW56WGdGSHUy?= =?utf-8?B?MEE2a25uNzltdDFrOUVlQXpJanlXZ29BeWVDaTNCV3o2NnBqNGhiYUFvRnJS?= =?utf-8?B?cS8zSXkzY2ZMRHo3VkIwaVA3N1QvTWNKajNOYWVqOVpMNWlyVGdJeUFPNS80?= =?utf-8?B?YW9Hc2RXV1lNL1hTM0VIRDVzYk9MOWJBeThDRnRrRHpCYm9EQ05Cangwcngr?= =?utf-8?B?NVAwL2lFQzh5RTE1Uzg4aGw4OHpnWXlLdnhBdFVhT0kzb01PZm1yT0t5OW5h?= =?utf-8?B?SURQRGVhVHIrcVBOVE1TNmN3NTRBYzFqUmZYRjdsU2RXSmVwb1VPT3Q0RWlr?= =?utf-8?B?ai9VSnRlR0FoN3J3cUZtbjJNMFhjOTlZcHR5Y3o0SkhIYkhOaDZlSVFIV200?= =?utf-8?B?SVA0NU5yYVc0M09ZWXFicmlzYzNLcTZSczVUOWRxNGoxemtzWHhxdTVxSlFj?= =?utf-8?B?QVBaeFVqZ0V6Q0tQNWRqbmxlTUJ6ajFyS0phVXFBUitEZG94ZlRGbndLWGJt?= =?utf-8?B?d1M4OTJ4Y1FwMitoMDNaK29Yd1kwdTNBV05wdzVLTWhXNTA3Wkpacm1NM3k3?= =?utf-8?B?Z2s3RmRQYnJUaExIZExNMjhERlBsMXFtbS9GeVRoai90OGJ2ZXYyT05tcGxH?= =?utf-8?B?Q3BsWklzZ1dPWFd2MVYxR09jSVVCK2NnSWRjUUtSVHZXWG5LOWN2clBCMFp2?= =?utf-8?B?eXFDMEJNRGRVNGRjVE9YNzdKZjlnTDhMTlM1TkZWUksxTnZwcUlwWldLSzZR?= =?utf-8?Q?B2mX6P5td6j3VJxilZvvf/g=3D?= X-OriginatorOrg: amperemail.onmicrosoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a1dfd4a-6bbb-4b5f-532d-08da9747547c X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2022 18:23:04.5846 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: teflFyX0B/QSuRKKZk2tlfeKY3CkvOMuIhkmLXE1iyKKs6Ym8uCx18MpDgbuULk40YMDzCtlVN2L0spBicoLCLnCWjJa+79Q+eLwUgWTmH4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR01MB7257 Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks Leif. I will fix as your suggestion. -Nhi On 9/15/2022 5:54 PM, Leif Lindholm wrote: > On Tue, Sep 13, 2022 at 13:19:47 +0700, Nhi Pham wrote: >> From: Minh Nguyen >> >> In some scenarios, the information of Bios Version, Bios Release >> and Embedded Controller Firmware Release are fetched during UEFI >> booting. This patch supports updating those fields dynamically >> when the PCDs are empty. >> >> Signed-off-by: Nhi Pham >> Reviewed-by: Rebecca Cran >> Reviewed-by: Sami Mujawar >> Acked-by: Ard Biesheuvel >> --- >> ArmPkg/Include/Library/OemMiscLib.h | 21 +++++++++++++ >> ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c | 28 +++++++++++++++++ >> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c | 32 +++++++++++++------- >> 3 files changed, 70 insertions(+), 11 deletions(-) >> >> diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/OemMiscLib.h >> index 1936619d9b5b..541274999e5c 100644 >> --- a/ArmPkg/Include/Library/OemMiscLib.h >> +++ b/ArmPkg/Include/Library/OemMiscLib.h >> @@ -37,6 +37,7 @@ typedef struct { >> } OEM_MISC_PROCESSOR_DATA; >> >> typedef enum { >> + BiosVersionType00, >> ProductNameType01, >> SerialNumType01, >> UuidType01, >> @@ -247,4 +248,24 @@ OemGetSystemUuid ( >> OUT GUID *SystemUuid >> ); >> >> +/** Fetches the BIOS release. >> + >> + @return The BIOS release. >> +**/ >> +UINT16 >> +EFIAPI >> +OemGetBiosRelease ( >> + VOID >> + ); >> + >> +/** Fetches the embedded controller firmware release. >> + >> + @return The embedded controller firmware release. >> +**/ >> +UINT16 >> +EFIAPI >> +OemGetEmbeddedControllerFirmwareRelease ( >> + VOID >> + ); >> + >> #endif // OEM_MISC_LIB_H_ >> diff --git a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c >> index 32f6d55c1a9a..788ccab9e8c1 100644 >> --- a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c >> +++ b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c >> @@ -254,3 +254,31 @@ OemGetSystemUuid ( >> ASSERT (FALSE); >> CopyGuid (SystemUuid, &gZeroGuid); >> } >> + >> +/** Fetches the BIOS release. >> + >> + @return The BIOS release. >> +**/ >> +UINT16 >> +EFIAPI >> +OemGetBiosRelease ( >> + VOID >> + ) >> +{ >> + ASSERT (FALSE); >> + return 0xFFFF; > This is a change in behaviour. > The pre-existing behaviour would be preserved by returning the value > of PcdGet16 (PcdSystemBiosRelease), which defaults to 0xFFFF. > >> +} >> + >> +/** Fetches the embedded controller firmware release. >> + >> + @return The embedded controller firmware release. >> +**/ >> +UINT16 >> +EFIAPI >> +OemGetEmbeddedControllerFirmwareRelease ( >> + VOID >> + ) >> +{ >> + ASSERT (FALSE); >> + return 0xFFFF; > Same as above, but PcdEmbeddedControllerFirmwareRelease. > > No other comments on this set. > (Feel free to see that as Acked-by: Leif Lindholm > for 1-5/6, but you already have the tags you need for those.) > > / > Leif > >> +} >> diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> index b49c4b754cab..e9106a8a2fec 100644 >> --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> @@ -1,5 +1,6 @@ >> /** @file >> >> + Copyright (c) 2022, Ampere Computing LLC. All rights reserved.
>> Copyright (c) 2021, NUVIA Inc. All rights reserved.
>> Copyright (c) 2009, Intel Corporation. All rights reserved.
>> Copyright (c) 2015, Hisilicon Limited. All rights reserved.
>> @@ -13,6 +14,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> >> @@ -191,11 +193,11 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) { >> TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION); >> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL); >> } else { >> - Version = (CHAR16 *)PcdGetPtr (PcdFirmwareVersionString); >> - if (StrLen (Version) > 0) { >> - TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION); >> - HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL); >> - } >> + OemUpdateSmbiosInfo ( >> + mSmbiosMiscHiiHandle, >> + STRING_TOKEN (STR_MISC_BIOS_VERSION), >> + BiosVersionType00 >> + ); >> } >> >> Char16String = GetBiosReleaseDate (); >> @@ -251,13 +253,21 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) { >> } >> } >> >> - SmbiosRecord->SystemBiosMajorRelease = (UINT8)(PcdGet16 (PcdSystemBiosRelease) >> 8); >> - SmbiosRecord->SystemBiosMinorRelease = (UINT8)(PcdGet16 (PcdSystemBiosRelease) & 0xFF); >> + if (PcdGet16 (PcdSystemBiosRelease) != 0xFFFF) { >> + SmbiosRecord->SystemBiosMajorRelease = (UINT8)(PcdGet16 (PcdSystemBiosRelease) >> 8); >> + SmbiosRecord->SystemBiosMinorRelease = (UINT8)(PcdGet16 (PcdSystemBiosRelease) & 0xFF); >> + } else { >> + SmbiosRecord->SystemBiosMajorRelease = (UINT8)(OemGetBiosRelease () >> 8); >> + SmbiosRecord->SystemBiosMinorRelease = (UINT8)(OemGetBiosRelease () & 0xFF); >> + } >> >> - SmbiosRecord->EmbeddedControllerFirmwareMajorRelease = (UINT16) >> - (PcdGet16 (PcdEmbeddedControllerFirmwareRelease) >> 8); >> - SmbiosRecord->EmbeddedControllerFirmwareMinorRelease = (UINT16) >> - (PcdGet16 (PcdEmbeddedControllerFirmwareRelease) & 0xFF); >> + if (PcdGet16 (PcdEmbeddedControllerFirmwareRelease) != 0xFFFF) { >> + SmbiosRecord->EmbeddedControllerFirmwareMajorRelease = (UINT16)(PcdGet16 (PcdEmbeddedControllerFirmwareRelease) >> 8); >> + SmbiosRecord->EmbeddedControllerFirmwareMinorRelease = (UINT16)(PcdGet16 (PcdEmbeddedControllerFirmwareRelease) & 0xFF); >> + } else { >> + SmbiosRecord->EmbeddedControllerFirmwareMajorRelease = (UINT16)(OemGetEmbeddedControllerFirmwareRelease () >> 8); >> + SmbiosRecord->EmbeddedControllerFirmwareMinorRelease = (UINT16)(OemGetEmbeddedControllerFirmwareRelease () & 0xFF); >> + } >> >> OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1); >> UnicodeStrToAsciiStrS (Vendor, OptionalStrStart, VendorStrLen + 1); >> -- >> 2.25.1 >>