Re: [edk2-devel][PATCH v5 1/7] IntelSiliconPkg/ReportCpuHobLib: Add ReportCpuHobLib
Reviewed-by: Sai Chaganty -Original Message- From: Chuang, SofiaX Sent: Monday, May 10, 2021 12:54 PM To: devel@edk2.groups.io Cc: Chuang, SofiaX ; Ni, Ray ; Chaganty, Rangasai V Subject: [edk2-devel][PATCH v5 1/7] IntelSiliconPkg/ReportCpuHobLib: Add ReportCpuHobLib From: SofiaX Chuang REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3298 Add ReportCpuHobLib Signed-off-by: SofiaX Chuang Cc: Ray Ni Cc: Rangasai V Chaganty --- .../Include/Library/ReportCpuHobLib.h | 27 + .../Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 6 ++- .../Intel/IntelSiliconPkg/IntelSiliconPkg.dsc | 1 + .../Library/ReportCpuHobLib/ReportCpuHobLib.c | 39 +++ .../ReportCpuHobLib/ReportCpuHobLib.inf | 26 + 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf diff --git a/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h new file mode 100644 index 00..106ab3d436 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h @@ -0,0 +1,27 @@ +/** @file++ Report CPU HOB library++ This library report the CPU HOB +with Physical Address bits.++Copyright (c) 2021, Intel Corporation. All +rights reserved.+SPDX-License-Identifier: +BSD-2-Clause-Patent++**/++#ifndef _REPORT_CPU_HOB_LIB_H_+#define +_REPORT_CPU_HOB_LIB_H_++#include ++/**+ Build a HOB for +the CPU.+**/+VOID+EFIAPI+ReportCpuHob (+ VOID+ );++#endif+diff --git +a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec +b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec index 4a2cbca5c1..2461ab8e06 100644 --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec @@ -3,7 +3,7 @@ # # This package provides common open source Intel silicon modules. #-# Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.+# Copyright (c) 2016 - 2021, Intel Corporation. All rights reserved. # SPDX-License-Identifier: BSD-2-Clause-Patent # ##@@ -42,6 +42,10 @@ # AslUpdateLib|Include/Library/AslUpdateLib.h + ## @libraryclass Provides services to report CPU hob+ #+ ReportCpuHobLib|Include/Library/ReportCpuHobLib.h+ [Guids] ## GUID for Package token space # {A9F8D54E-1107-4F0A-ADD0-4587E7A4A735}diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc index 5e0de7e19a..1092371d84 100644 --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc @@ -93,6 +93,7 @@ IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.inf IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.inf IntelSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf+ IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf [BuildOptions] *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACESdiff --git a/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c new file mode 100644 index 00..3f67b477d2 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHob +++ Lib.c @@ -0,0 +1,39 @@ +/** @file+ Source code file for Report CPU HOB library.++Copyright (c) 2021, Intel Corporation. All rights reserved.+SPDX-License-Identifier: BSD-2-Clause-Patent++**/++#include +#include +#include +#include +++/**+ Build a HOB for the CPU.+**/+VOID+EFIAPI+ReportCpuHob (+ VOID+ )+{+ UINT8 PhysicalAddressBits;+ CPUID_VIR_PHY_ADDRESS_SIZE_EAX AddressSizeEax;++ AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, , NULL, NULL, NULL);+ if (AddressSizeEax.Uint32 >= CPUID_VIR_PHY_ADDRESS_SIZE) {+ AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, , NULL, NULL, NULL);+PhysicalAddressBits = AddressSizeEax.Bits.PhysicalAddressBits;+ } else {+PhysicalAddressBits = 36;+ }++ ///+ /// Create a CPU hand-off information+ ///+ BuildCpuHob (PhysicalAddressBits, 16);+}diff --git a/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf new file mode 100644 index 00..1d2d6b4151 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHob +++ Lib.inf @@ -0,0 +1,26 @@ +### @file+# Component information file for the Report CPU HOB library.+#+# Copyright (c) 2021, Intel Corporation. All rights reserved.+#+# SPDX-License-Identifier: BSD-2-Clause-Patent+#+###++[Defines]+ INF_VERSION = 0x00010005+ BASE_NAME = ReportCpuHobLib+ FILE_G
Re: [edk2-devel][PATCH v5 1/7] IntelSiliconPkg/ReportCpuHobLib: Add ReportCpuHobLib
Reviewed-by: Ray Ni > -Original Message- > From: Chuang, SofiaX > Sent: Tuesday, May 11, 2021 3:54 AM > To: devel@edk2.groups.io > Cc: Chuang, SofiaX ; Ni, Ray ; > Chaganty, Rangasai V > > Subject: [edk2-devel][PATCH v5 1/7] IntelSiliconPkg/ReportCpuHobLib: Add > ReportCpuHobLib > > From: SofiaX Chuang > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3298 > > Add ReportCpuHobLib > > Signed-off-by: SofiaX Chuang > Cc: Ray Ni > Cc: Rangasai V Chaganty > --- > .../Include/Library/ReportCpuHobLib.h | 27 + > .../Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 6 ++- > .../Intel/IntelSiliconPkg/IntelSiliconPkg.dsc | 1 + > .../Library/ReportCpuHobLib/ReportCpuHobLib.c | 39 +++ > .../ReportCpuHobLib/ReportCpuHobLib.inf | 26 + > 5 files changed, 98 insertions(+), 1 deletion(-) > create mode 100644 > Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h > create mode 100644 > Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c > create mode 100644 > Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf > > diff --git a/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h > b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h > new file mode 100644 > index 00..106ab3d436 > --- /dev/null > +++ b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h > @@ -0,0 +1,27 @@ > +/** @file > > + > > + Report CPU HOB library > > + > > + This library report the CPU HOB with Physical Address bits. > > + > > +Copyright (c) 2021, Intel Corporation. All rights reserved. > > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef _REPORT_CPU_HOB_LIB_H_ > > +#define _REPORT_CPU_HOB_LIB_H_ > > + > > +#include > > + > > +/** > > + Build a HOB for the CPU. > > +**/ > > +VOID > > +EFIAPI > > +ReportCpuHob ( > > + VOID > > + ); > > + > > +#endif > > + > > diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec > b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec > index 4a2cbca5c1..2461ab8e06 100644 > --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec > +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec > @@ -3,7 +3,7 @@ > # > > # This package provides common open source Intel silicon modules. > > # > > -# Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved. > > +# Copyright (c) 2016 - 2021, Intel Corporation. All rights reserved. > > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > ## > > @@ -42,6 +42,10 @@ ># > >AslUpdateLib|Include/Library/AslUpdateLib.h > > > > + ## @libraryclass Provides services to report CPU hob > > + # > > + ReportCpuHobLib|Include/Library/ReportCpuHobLib.h > > + > > [Guids] > >## GUID for Package token space > ># {A9F8D54E-1107-4F0A-ADD0-4587E7A4A735} > > diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc > b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc > index 5e0de7e19a..1092371d84 100644 > --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc > +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc > @@ -93,6 +93,7 @@ >IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.inf > > > IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.inf > >IntelSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf > > + IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf > > > > [BuildOptions] > >*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES > > diff --git > a/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c > b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c > new file mode 100644 > index 00..3f67b477d2 > --- /dev/null > +++ b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c > @@ -0,0 +1,39 @@ > +/** @file > > + Source code file for Report CPU HOB library. > > + > > +Copyright (c) 2021, Intel Corporation. All rights reserved. > > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#include > > +#include > > +#include > > +#include > > + > > + > > +/** > > + Build a HOB for the CPU. > > +**/ > > +VOID > > +EFIAPI > > +ReportCpuHob ( > > + VOID > > + ) > > +{ &g
[edk2-devel][PATCH v5 1/7] IntelSiliconPkg/ReportCpuHobLib: Add ReportCpuHobLib
From: SofiaX Chuang REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3298 Add ReportCpuHobLib Signed-off-by: SofiaX Chuang Cc: Ray Ni Cc: Rangasai V Chaganty --- .../Include/Library/ReportCpuHobLib.h | 27 + .../Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 6 ++- .../Intel/IntelSiliconPkg/IntelSiliconPkg.dsc | 1 + .../Library/ReportCpuHobLib/ReportCpuHobLib.c | 39 +++ .../ReportCpuHobLib/ReportCpuHobLib.inf | 26 + 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf diff --git a/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h new file mode 100644 index 00..106ab3d436 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Include/Library/ReportCpuHobLib.h @@ -0,0 +1,27 @@ +/** @file + + Report CPU HOB library + + This library report the CPU HOB with Physical Address bits. + +Copyright (c) 2021, Intel Corporation. All rights reserved. +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _REPORT_CPU_HOB_LIB_H_ +#define _REPORT_CPU_HOB_LIB_H_ + +#include + +/** + Build a HOB for the CPU. +**/ +VOID +EFIAPI +ReportCpuHob ( + VOID + ); + +#endif + diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec index 4a2cbca5c1..2461ab8e06 100644 --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec @@ -3,7 +3,7 @@ # # This package provides common open source Intel silicon modules. # -# Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved. +# Copyright (c) 2016 - 2021, Intel Corporation. All rights reserved. # SPDX-License-Identifier: BSD-2-Clause-Patent # ## @@ -42,6 +42,10 @@ # AslUpdateLib|Include/Library/AslUpdateLib.h + ## @libraryclass Provides services to report CPU hob + # + ReportCpuHobLib|Include/Library/ReportCpuHobLib.h + [Guids] ## GUID for Package token space # {A9F8D54E-1107-4F0A-ADD0-4587E7A4A735} diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc index 5e0de7e19a..1092371d84 100644 --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc @@ -93,6 +93,7 @@ IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.inf IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.inf IntelSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf + IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf [BuildOptions] *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES diff --git a/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c new file mode 100644 index 00..3f67b477d2 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.c @@ -0,0 +1,39 @@ +/** @file + Source code file for Report CPU HOB library. + +Copyright (c) 2021, Intel Corporation. All rights reserved. +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include + + +/** + Build a HOB for the CPU. +**/ +VOID +EFIAPI +ReportCpuHob ( + VOID + ) +{ + UINT8 PhysicalAddressBits; + CPUID_VIR_PHY_ADDRESS_SIZE_EAX AddressSizeEax; + + AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, , NULL, NULL, NULL); + if (AddressSizeEax.Uint32 >= CPUID_VIR_PHY_ADDRESS_SIZE) { +AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, , NULL, NULL, NULL); +PhysicalAddressBits = AddressSizeEax.Bits.PhysicalAddressBits; + } else { +PhysicalAddressBits = 36; + } + + /// + /// Create a CPU hand-off information + /// + BuildCpuHob (PhysicalAddressBits, 16); +} diff --git a/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf new file mode 100644 index 00..1d2d6b4151 --- /dev/null +++ b/Silicon/Intel/IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.inf @@ -0,0 +1,26 @@ +### @file +# Component information file for the Report CPU HOB library. +# +# Copyright (c) 2021, Intel Corporation. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +### + +[Defines] + INF_VERSION= 0x00010005 + BASE_NAME = ReportCpuHobLib + FILE_GUID = 0A1C9D6B-44BE-4FD7-A4A2-D0E68D436848 + VERSION_STRING = 1.0 + MODULE_TYPE= PEIM + LIBRARY_CLASS = ReportCpuHobLib + +[LibraryClasses] + BaseLib + HobLib +