Hi
@Ray Ni,
@Zhichao Gao,
Could you please help to review this change?
Thanks,
Nickle
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Thejaswani
> Putta via groups.io
> Sent: Friday, April 21, 2023 9:00 AM
> To: devel@edk2.groups.io
> Cc: Ray Ni <ray.ni@intel.com>; Zhichao Gao <zhichao.gao@intel.com>
> Subject: [edk2-devel] [PATCH] ShellPkg: Add a condition to print accurate type0
> Bios Size in smbiosview.
>
> External email: Use caution opening links or attachments
>
>
> As per the SMBIOS spec, in smbios type0 table, if the Bios size is greater than
> 16MB, extended bios size is used to update size information and bios size is set
> to 0xff. when this data is printed by smbiosview, both bios size and extended
> bios size is printed if the smbios version is beyond 3.1, which is incorrect as Bios
> size is set to 0xff when rom size is more than 16MB.
>
> To fix this bug, added a condition to print bios size only when it is not set to 0xff
> or if the smbios version is older than 3.1.
>
> Signed-off-by: Thejaswani Putta <tputta@nvidia.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhichao Gao <zhichao.gao@intel.com>
> ---
> .../Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> index 1811cf0c44..5448abaa22 100644
> --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> @@ -339,7 +339,9 @@ SmbiosPrintStructure (
> ShellPrintEx (-1, -1, L"BIOS Version: %a\n", LibGetSmbiosString (Struct,
> Struct->Type0->BiosVersion));
> ShellPrintEx (-1, -1, L"BIOS Starting Address Segment: 0x%x\n", Struct-
> >Type0->BiosSegment);
> ShellPrintEx (-1, -1, L"BIOS Release Date: %a\n", LibGetSmbiosString (Struct,
> Struct->Type0->BiosReleaseDate));
> - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), gShellDebug1HiiHandle, 64 *
> (Struct->Type0->BiosSize + 1));
> + if ((Struct->Type0->BiosSize != 0xFF) || !(AE_SMBIOS_VERSION (0x3, 0x1))) {
> + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), gShellDebug1HiiHandle, 64 *
> (Struct->Type0->BiosSize + 1));
> + }
>
> DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64 *)(UINTN)&(Struct-
> >Type0->BiosCharacteristics)), Option);
>
> --
> 2.17.1
>
>
>
>
>