[edk2-devel] [PATCH 1/1] ArmPkg: SmbiosMiscDxe: Don't populate ExtendedBiosSize when size < 16MB

Nhi Pham via groups.io nhi=os.amperecomputing.com at groups.io
Tue Oct 5 03:04:50 UTC 2021


Thanks, Rebecca for the patch.

Acked-by: Nhi Pham <nhi at os.amperecomputing.com>

Best regards,
Nhi

On 05/10/2021 01:00, Sami Mujawar wrote:
> Hi Rebecca,
>
> Thank you for this patch. These changes look good to me.
>
> Reviewed-by: Sami Mujawar <sami.mujawar at arm.com>
>
> Regards,
>
> Sami Mujawar
>
> On 04/10/2021 05:22 PM, Rebecca Cran wrote:
>> According to the SMBIOS specification, the ExtendedBiosSize field should
>> be zero when the BIOS size is less than 16MB:
>>
>> "Size (n) where 64K * (n+1) is the size of the
>> physical device containing the BIOS, in
>> bytes.
>> FFh - size is 16MB or greater, see Extended
>> BIOS ROM Size for actual size."
>>
>> Fix the code in MiscBiosVendorFunction.c to only populate the
>> ExtendedBiosSize field if the BIOS size is greater than 16MB.
>>
>> Fix the code to correctly populate the ExtendedBiosSize field with the
>> unit bits set to MB if the size is between 16MB and 16GB.
>>
>> Signed-off-by: Rebecca Cran <rebecca at nuviainc.com>
>> ---
>> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c 
>> | 7 ++++---
>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git 
>> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c 
>> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> index 5aea32521bd3..5679ebaac8a5 100644
>> --- 
>> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> +++ 
>> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> @@ -240,11 +240,12 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor)
>>     SmbiosRecord->BiosSegment = (UINT16)(FixedPcdGet32 
>> (PcdFdBaseAddress) / SIZE_64KB);
>>     if (BiosPhysicalSize < SIZE_16MB) {
>>       SmbiosRecord->BiosSize = Base2ToByteWith64KUnit 
>> (BiosPhysicalSize) - 1;
>> -    SmbiosRecord->ExtendedBiosSize.Size = BiosPhysicalSize / SIZE_1MB;
>> -    SmbiosRecord->ExtendedBiosSize.Unit = 0; // Size is in MB
>>     } else {
>>       SmbiosRecord->BiosSize = 0xFF;
>> -    if (BiosPhysicalSize > 0x3FFF) {
>> +    if (BiosPhysicalSize < SIZE_16GB) {
>> +      SmbiosRecord->ExtendedBiosSize.Size = BiosPhysicalSize / 
>> SIZE_1MB;
>> +      SmbiosRecord->ExtendedBiosSize.Unit = 0; // Size is in MB
>> +    } else {
>>         SmbiosRecord->ExtendedBiosSize.Size = BiosPhysicalSize / 
>> SIZE_1GB;
>>         SmbiosRecord->ExtendedBiosSize.Unit = 1; // Size is in GB
>>       }
>
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose 
> the contents to any other person, use it for any purpose, or store or 
> copy the information in any medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81471): https://edk2.groups.io/g/devel/message/81471
Mute This Topic: https://groups.io/mt/86071273/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list