From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.12636.1586875748417462506 for ; Tue, 14 Apr 2020 07:49:08 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: chandana.c.kumar@intel.com) IronPort-SDR: +VMyrreWGl1w5eVYpn5GjmnuFLBCp3Q7BsHS6/pn5aphTfN1ZpO0fhJYIjiKJnFBfpBj0ykbNh GEzcH/KTXiTQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2020 07:49:07 -0700 IronPort-SDR: NUDlPhhO5Z+iuma89k7Sa10TWUg9dBJq559r3X8Co4Bzw8APfRaKCxmcd/BcwgPEVDtPZ/WLxa PmJXVOvuqQVQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,382,1580803200"; d="scan'208";a="256531568" Received: from cckumar-desk1.gar.corp.intel.com ([10.66.179.82]) by orsmga006.jf.intel.com with ESMTP; 14 Apr 2020 07:49:05 -0700 From: "Kumar, Chandana C" To: devel@edk2.groups.io Cc: Sai Chaganty , Chasel Chiu , Nate DeSimone Subject: [Patch V2] MinPlatformPkg/PlatformInitPei: Create Library Instance of ReportCpuHobLib. Date: Tue, 14 Apr 2020 20:19:04 +0530 Message-Id: <20200414144904.45356-1-chandana.c.kumar@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 Create an Library instance of ReportCpuHobLib from PlatformInitPei driver, so that from platform side reporting Physical address bits can be overriden. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2674 Signed-off-by: Chandana Kumar Cc: Sai Chaganty Cc: Chasel Chiu Cc: Nate DeSimone --- 0001-MinPlatformPkg-PlatformInitPei-Create-an-Library-Ins.patch | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Intel/MinPlatformPkg/Include/Library/ReportCpuHobLib.h | 23 +++++++++++++++++++++++ Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 3 ++- Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c | 32 ++++++++++++++++++++++++++++++++ Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf | 27 +++++++++++++++++++++++++++ Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c | 25 ++----------------------- 6 files changed, 253 insertions(+), 24 deletions(-) diff --git a/0001-MinPlatformPkg-PlatformInitPei-Create-an-Library-Ins.patch b/0001-MinPlatformPkg-PlatformInitPei-Create-an-Library-Ins.patch new file mode 100644 index 0000000000..6df277b8e7 --- /dev/null +++ b/0001-MinPlatformPkg-PlatformInitPei-Create-an-Library-Ins.patch @@ -0,0 +1,167 @@ +From 987a6ff35c4e415593e0441d86b6dab6cc5d4f5d Mon Sep 17 00:00:00 2001 +From: Chandana Kumar +Date: Tue, 14 Apr 2020 16:57:23 +0530 +Subject: [Patch V1] MinPlatformPkg/PlatformInitPei: Create Library Instance of ReportCpuHobLib. + +REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2674 + +Create an Library instance of ReportCpuHobLib from PlatformInitPei driver, +so that from platform side reporting Physical address bits can be overriden. + +Signed-off-by: Chandana Kumar +Cc: Sai Chaganty +Cc: Chasel Chiu +Cc: Nate DeSimone +--- + Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 3 ++- + Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c | 32 ++++++++++++++++++++++++++++++++ + Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf | 27 +++++++++++++++++++++++++++ + Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c | 25 ++----------------------- + 4 files changed, 63 insertions(+), 24 deletions(-) + +diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc +index 13a0fda272..b62351dac6 100644 +--- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc ++++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc +@@ -1,7 +1,7 @@ + ## @file + # Platform description. + # +-# Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
++# Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.
+ # + # SPDX-License-Identifier: BSD-2-Clause-Patent + # +@@ -92,6 +92,7 @@ + # + FspWrapperPlatformLib|MinPlatformPkg/FspWrapper/Library/PeiFspWrapperPlatformLib/PeiFspWrapperPlatformLib.inf + ReportFvLib|MinPlatformPkg/PlatformInit/Library/PeiReportFvLib/PeiReportFvLib.inf ++ ReportCpuHobLib|MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf + TestPointCheckLib|MinPlatformPkg/Test/Library/TestPointCheckLib/PeiTestPointCheckLib.inf + TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/PeiTestPointLib.inf + SetCacheMtrrLib|MinPlatformPkg/Library/SetCacheMtrrLib/SetCacheMtrrLibNull.inf +diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c +new file mode 100644 +index 0000000000..b20b8c61a9 +--- /dev/null ++++ b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c +@@ -0,0 +1,32 @@ ++/** @file ++ Source code file for Report CPU HOB library. ++ ++Copyright (c) 2020, Intel Corporation. All rights reserved.
++SPDX-License-Identifier: BSD-2-Clause-Patent ++ ++**/ ++ ++#include ++#include ++ ++VOID ++ReportCpuHob ( ++ VOID ++ ) ++{ ++ UINT8 PhysicalAddressBits; ++ UINT32 RegEax; ++ ++ AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); ++ if (RegEax >= 0x80000008) { ++ AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); ++ PhysicalAddressBits = (UINT8) RegEax; ++ } else { ++ PhysicalAddressBits = 36; ++ } ++ ++ /// ++ /// Create a CPU hand-off information ++ /// ++ BuildCpuHob (PhysicalAddressBits, 16); ++} +\ No newline at end of file +diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf +new file mode 100644 +index 0000000000..ae6ec901a1 +--- /dev/null ++++ b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf +@@ -0,0 +1,27 @@ ++### @file ++# Component information file for the Report CPU HOB library. ++# ++# Copyright (c) 2020, Intel Corporation. All rights reserved.
++# ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++# ++### ++ ++[Defines] ++ INF_VERSION = 0x00010005 ++ BASE_NAME = ReportCpuHobLib ++ FILE_GUID = F19AA754-CE24-448D-B755-1F939B00C25D ++ VERSION_STRING = 1.0 ++ MODULE_TYPE = BASE ++ LIBRARY_CLASS = ReportCpuHobLib ++ ++[LibraryClasses] ++ BaseLib ++ HobLib ++ ++[Packages] ++ MdePkg/MdePkg.dec ++ MinPlatformPkg/MinPlatformPkg.dec ++ ++[Sources] ++ PeiReportFvLib.c +diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c b/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c +index efdeb6a91c..48cbe0dfbe 100644 +--- a/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c ++++ b/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c +@@ -1,7 +1,7 @@ + /** @file + Source code file for Platform Init Pre-Memory PEI module + +-Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
++Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -26,6 +26,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #include + #include ++#include + #include + #include + #include +@@ -355,28 +356,6 @@ Done: + return EFI_SUCCESS; + } + +-VOID +-ReportCpuHob ( +- VOID +- ) +-{ +- UINT8 PhysicalAddressBits; +- UINT32 RegEax; +- +- AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); +- if (RegEax >= 0x80000008) { +- AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); +- PhysicalAddressBits = (UINT8) RegEax; +- } else { +- PhysicalAddressBits = 36; +- } +- +- /// +- /// Create a CPU hand-off information +- /// +- BuildCpuHob (PhysicalAddressBits, 16); +-} +- + /** + Install Firmware Volume Hob's once there is main memory + +-- +2.16.2.windows.1 + diff --git a/Platform/Intel/MinPlatformPkg/Include/Library/ReportCpuHobLib.h b/Platform/Intel/MinPlatformPkg/Include/Library/ReportCpuHobLib.h new file mode 100644 index 0000000000..1b023007ca --- /dev/null +++ b/Platform/Intel/MinPlatformPkg/Include/Library/ReportCpuHobLib.h @@ -0,0 +1,23 @@ +/** @file + + Report CPU HOB library + + This library report the CPU HOB with Physical Address bits. + +Copyright (c) 2020, 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 +#include + +VOID +ReportCpuHob ( + VOID + ) + +#endif \ No newline at end of file diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc index 13a0fda272..b62351dac6 100644 --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc @@ -1,7 +1,7 @@ ## @file # Platform description. # -# Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -92,6 +92,7 @@ # FspWrapperPlatformLib|MinPlatformPkg/FspWrapper/Library/PeiFspWrapperPlatformLib/PeiFspWrapperPlatformLib.inf ReportFvLib|MinPlatformPkg/PlatformInit/Library/PeiReportFvLib/PeiReportFvLib.inf + ReportCpuHobLib|MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf TestPointCheckLib|MinPlatformPkg/Test/Library/TestPointCheckLib/PeiTestPointCheckLib.inf TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/PeiTestPointLib.inf SetCacheMtrrLib|MinPlatformPkg/Library/SetCacheMtrrLib/SetCacheMtrrLibNull.inf diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c new file mode 100644 index 0000000000..b20b8c61a9 --- /dev/null +++ b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.c @@ -0,0 +1,32 @@ +/** @file + Source code file for Report CPU HOB library. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include + +VOID +ReportCpuHob ( + VOID + ) +{ + UINT8 PhysicalAddressBits; + UINT32 RegEax; + + AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); + if (RegEax >= 0x80000008) { + AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); + PhysicalAddressBits = (UINT8) RegEax; + } else { + PhysicalAddressBits = 36; + } + + /// + /// Create a CPU hand-off information + /// + BuildCpuHob (PhysicalAddressBits, 16); +} \ No newline at end of file diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf new file mode 100644 index 0000000000..ae6ec901a1 --- /dev/null +++ b/Platform/Intel/MinPlatformPkg/PlatformInit/Library/ReportCpuHobLib/ReportCpuHobLib.inf @@ -0,0 +1,27 @@ +### @file +# Component information file for the Report CPU HOB library. +# +# Copyright (c) 2020, Intel Corporation. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +### + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = ReportCpuHobLib + FILE_GUID = F19AA754-CE24-448D-B755-1F939B00C25D + VERSION_STRING = 1.0 + MODULE_TYPE = BASE + LIBRARY_CLASS = ReportCpuHobLib + +[LibraryClasses] + BaseLib + HobLib + +[Packages] + MdePkg/MdePkg.dec + MinPlatformPkg/MinPlatformPkg.dec + +[Sources] + PeiReportFvLib.c diff --git a/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c b/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c index efdeb6a91c..48cbe0dfbe 100644 --- a/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c +++ b/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c @@ -1,7 +1,7 @@ /** @file Source code file for Platform Init Pre-Memory PEI module -Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -26,6 +26,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include #include #include +#include #include #include #include @@ -355,28 +356,6 @@ Done: return EFI_SUCCESS; } -VOID -ReportCpuHob ( - VOID - ) -{ - UINT8 PhysicalAddressBits; - UINT32 RegEax; - - AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); - if (RegEax >= 0x80000008) { - AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); - PhysicalAddressBits = (UINT8) RegEax; - } else { - PhysicalAddressBits = 36; - } - - /// - /// Create a CPU hand-off information - /// - BuildCpuHob (PhysicalAddressBits, 16); -} - /** Install Firmware Volume Hob's once there is main memory -- 2.16.2.windows.1