[Patch V4 6/9] UefiPayloadPkg: Creat gPldSmbiosTableGuid Hob


Guo Dong
 

Reviewed-by: Guo Dong <guo.dong@intel.com>

-----Original Message-----
From: Liu, Zhiguang <zhiguang.liu@intel.com>
Sent: Wednesday, June 9, 2021 6:33 PM
To: devel@edk2.groups.io
Cc: Ma, Maurice <maurice.ma@intel.com>; Dong, Guo
<guo.dong@intel.com>; You, Benjamin <benjamin.you@intel.com>
Subject: [Patch V4 6/9] UefiPayloadPkg: Creat gPldSmbiosTableGuid Hob

From SysTableInfo Hob, get Smbios table address, and creat
gPldSmbiosTableGuid Hob
to store it. Remove diretly adding smbios table to ConfigurationTable.
Dxe module SmbiosDxe will parse it and install smbios table from it.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c | 11 +----------
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf | 3 +--
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 12 +++++++++++-
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 3 ++-
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf | 3 ++-
5 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
index a746d0581e..56b85b8e6d 100644
--- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
+++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
@@ -2,7 +2,7 @@
This driver will report some MMIO/IO resources to dxe core, extract smbios
and acpi

tables from bootloader.



- Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>

+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>

SPDX-License-Identifier: BSD-2-Clause-Patent



**/

@@ -129,15 +129,6 @@ BlDxeEntryPoint (
ASSERT_EFI_ERROR (Status);

}



- //

- // Install Smbios Table

- //

- if (SystemTableInfo->SmbiosTableBase != 0 && SystemTableInfo-
SmbiosTableSize != 0) {
- DEBUG ((DEBUG_ERROR, "Install Smbios Table at 0x%lx, length 0x%x\n",
SystemTableInfo->SmbiosTableBase, SystemTableInfo->SmbiosTableSize));

- Status = gBS->InstallConfigurationTable (&gEfiSmbiosTableGuid, (VOID
*)(UINTN)SystemTableInfo->SmbiosTableBase);

- ASSERT_EFI_ERROR (Status);

- }

-

//

// Find the frame buffer information and update PCDs

//

diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
index cebc811355..30f41f8c39 100644
--- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
+++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
@@ -3,7 +3,7 @@
#

# Report some MMIO/IO resources to dxe core, extract smbios and acpi
tables

#

-# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>

+# Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>

#

# SPDX-License-Identifier: BSD-2-Clause-Patent

#

@@ -43,7 +43,6 @@


[Guids]

gEfiAcpiTableGuid

- gEfiSmbiosTableGuid

gUefiSystemTableInfoGuid

gUefiAcpiBoardInfoGuid

gEfiGraphicsInfoHobGuid

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
index 805f5448d9..80f66a3fd5 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
@@ -1,6 +1,6 @@
/** @file



- Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>

+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>

SPDX-License-Identifier: BSD-2-Clause-Patent



**/

@@ -234,6 +234,7 @@ BuildHobFromBl (
EFI_PEI_GRAPHICS_INFO_HOB *NewGfxInfo;

EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo;

EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo;

+ UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmBiosTableHob;



//

// Parse memory info and build memory HOBs

@@ -276,6 +277,15 @@ BuildHobFromBl (
DEBUG ((DEBUG_INFO, "Detected Acpi Table at 0x%lx, length 0x%x\n",
SysTableInfo.AcpiTableBase, SysTableInfo.AcpiTableSize));

DEBUG ((DEBUG_INFO, "Detected Smbios Table at 0x%lx, length 0x%x\n",
SysTableInfo.SmbiosTableBase, SysTableInfo.SmbiosTableSize));

}

+ //

+ // Creat SmBios table Hob

+ //

+ SmBiosTableHob = BuildGuidHob (&gUniversalPayloadSmbiosTableGuid,
sizeof (UNIVERSAL_PAYLOAD_SMBIOS_TABLE));

+ ASSERT (SmBiosTableHob != NULL);

+ SmBiosTableHob->Header.Revision =
UNIVERSAL_PAYLOAD_SMBIOS_TABLE_REVISION;

+ SmBiosTableHob->Header.Length = sizeof
(UNIVERSAL_PAYLOAD_SMBIOS_TABLE);

+ SmBiosTableHob->SmBiosEntryPoint = SysTableInfo.SmbiosTableBase;

+ DEBUG ((DEBUG_INFO, "Create smbios table
gUniversalPayloadSmbiosTableGuid guid hob\n"));



//

// Create guid hob for acpi board information

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
index 2c84d6ed53..e7d0d15118 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
@@ -1,6 +1,6 @@
/** @file

*

-* Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>

+* Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>

*

* SPDX-License-Identifier: BSD-2-Clause-Patent

*

@@ -31,6 +31,7 @@
#include <Guid/MemoryMapInfoGuid.h>

#include <Guid/AcpiBoardInfoGuid.h>

#include <Guid/GraphicsInfoHob.h>

+#include <UniversalPayload/SmbiosTable.h>





#define LEGACY_8259_MASK_REGISTER_MASTER 0x21

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
index cc59f1903b..fc5b5ce9d4 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
@@ -1,7 +1,7 @@
## @file

# This is the first module for UEFI payload.

#

-# Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>

+# Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>

# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>

#

# SPDX-License-Identifier: BSD-2-Clause-Patent

@@ -64,6 +64,7 @@
gEfiGraphicsInfoHobGuid

gEfiGraphicsDeviceInfoHobGuid

gUefiAcpiBoardInfoGuid

+ gUniversalPayloadSmbiosTableGuid



[FeaturePcd.IA32]

gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ##
CONSUMES

--
2.30.0.windows.2


Zhiguang Liu
 

From SysTableInfo Hob, get Smbios table address, and creat gPldSmbiosTableG=
uid Hob
to store it. Remove diretly adding smbios table to ConfigurationTable.
Dxe module SmbiosDxe will parse it and install smbios table from it.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c | 11 +----------
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf | 3 +--
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 12 +++++++++++-
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 3 ++-
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf | 3 ++-
5 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c b/UefiPayloadPkg/Bl=
SupportDxe/BlSupportDxe.c
index a746d0581e..56b85b8e6d 100644
--- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
+++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
@@ -2,7 +2,7 @@
This driver will report some MMIO/IO resources to dxe core, extract smbi=
os and acpi=0D
tables from bootloader.=0D
=0D
- Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>=0D
+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>=0D
SPDX-License-Identifier: BSD-2-Clause-Patent=0D
=0D
**/=0D
@@ -129,15 +129,6 @@ BlDxeEntryPoint (
ASSERT_EFI_ERROR (Status);=0D
}=0D
=0D
- //=0D
- // Install Smbios Table=0D
- //=0D
- if (SystemTableInfo->SmbiosTableBase !=3D 0 && SystemTableInfo->SmbiosTa=
bleSize !=3D 0) {=0D
- DEBUG ((DEBUG_ERROR, "Install Smbios Table at 0x%lx, length 0x%x\n", S=
ystemTableInfo->SmbiosTableBase, SystemTableInfo->SmbiosTableSize));=0D
- Status =3D gBS->InstallConfigurationTable (&gEfiSmbiosTableGuid, (VOID=
*)(UINTN)SystemTableInfo->SmbiosTableBase);=0D
- ASSERT_EFI_ERROR (Status);=0D
- }=0D
-=0D
//=0D
// Find the frame buffer information and update PCDs=0D
//=0D
diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf b/UefiPayloadPkg/=
BlSupportDxe/BlSupportDxe.inf
index cebc811355..30f41f8c39 100644
--- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
+++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
@@ -3,7 +3,7 @@
#=0D
# Report some MMIO/IO resources to dxe core, extract smbios and acpi table=
s=0D
#=0D
-# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>=
=0D
+# Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>=
=0D
#=0D
# SPDX-License-Identifier: BSD-2-Clause-Patent=0D
#=0D
@@ -43,7 +43,6 @@
=0D
[Guids]=0D
gEfiAcpiTableGuid=0D
- gEfiSmbiosTableGuid=0D
gUefiSystemTableInfoGuid=0D
gUefiAcpiBoardInfoGuid=0D
gEfiGraphicsInfoHobGuid=0D
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPaylo=
adPkg/UefiPayloadEntry/UefiPayloadEntry.c
index 805f5448d9..80f66a3fd5 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
@@ -1,6 +1,6 @@
/** @file=0D
=0D
- Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>=0D
+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>=0D
SPDX-License-Identifier: BSD-2-Clause-Patent=0D
=0D
**/=0D
@@ -234,6 +234,7 @@ BuildHobFromBl (
EFI_PEI_GRAPHICS_INFO_HOB *NewGfxInfo;=0D
EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo;=0D
EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo;=0D
+ UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmBiosTableHob;=0D
=0D
//=0D
// Parse memory info and build memory HOBs=0D
@@ -276,6 +277,15 @@ BuildHobFromBl (
DEBUG ((DEBUG_INFO, "Detected Acpi Table at 0x%lx, length 0x%x\n", Sys=
TableInfo.AcpiTableBase, SysTableInfo.AcpiTableSize));=0D
DEBUG ((DEBUG_INFO, "Detected Smbios Table at 0x%lx, length 0x%x\n", S=
ysTableInfo.SmbiosTableBase, SysTableInfo.SmbiosTableSize));=0D
}=0D
+ //=0D
+ // Creat SmBios table Hob=0D
+ //=0D
+ SmBiosTableHob =3D BuildGuidHob (&gUniversalPayloadSmbiosTableGuid, size=
of (UNIVERSAL_PAYLOAD_SMBIOS_TABLE));=0D
+ ASSERT (SmBiosTableHob !=3D NULL);=0D
+ SmBiosTableHob->Header.Revision =3D UNIVERSAL_PAYLOAD_SMBIOS_TABLE_REVIS=
ION;=0D
+ SmBiosTableHob->Header.Length =3D sizeof (UNIVERSAL_PAYLOAD_SMBIOS_TABLE=
);=0D
+ SmBiosTableHob->SmBiosEntryPoint =3D SysTableInfo.SmbiosTableBase;=0D
+ DEBUG ((DEBUG_INFO, "Create smbios table gUniversalPayloadSmbiosTableGui=
d guid hob\n"));=0D
=0D
//=0D
// Create guid hob for acpi board information=0D
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h b/UefiPaylo=
adPkg/UefiPayloadEntry/UefiPayloadEntry.h
index 2c84d6ed53..e7d0d15118 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
@@ -1,6 +1,6 @@
/** @file=0D
*=0D
-* Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>=0D
+* Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>=0D
*=0D
* SPDX-License-Identifier: BSD-2-Clause-Patent=0D
*=0D
@@ -31,6 +31,7 @@
#include <Guid/MemoryMapInfoGuid.h>=0D
#include <Guid/AcpiBoardInfoGuid.h>=0D
#include <Guid/GraphicsInfoHob.h>=0D
+#include <UniversalPayload/SmbiosTable.h>=0D
=0D
=0D
#define LEGACY_8259_MASK_REGISTER_MASTER 0x21=0D
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf b/UefiPay=
loadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
index cc59f1903b..fc5b5ce9d4 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
@@ -1,7 +1,7 @@
## @file=0D
# This is the first module for UEFI payload.=0D
#=0D
-# Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>=
=0D
+# Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>=
=0D
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>=0D
#=0D
# SPDX-License-Identifier: BSD-2-Clause-Patent=0D
@@ -64,6 +64,7 @@
gEfiGraphicsInfoHobGuid=0D
gEfiGraphicsDeviceInfoHobGuid=0D
gUefiAcpiBoardInfoGuid=0D
+ gUniversalPayloadSmbiosTableGuid=0D
=0D
[FeaturePcd.IA32]=0D
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUME=
S=0D
--=20
2.30.0.windows.2