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

>

>

>

>

>