* [edk2-devel] [Patch V2 0/3] Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg.
@ 2023-11-17 9:39 duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg duntan
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: duntan @ 2023-11-17 9:39 UTC (permalink / raw)
To: devel
In the V2 patch set: Added more comments in the new MpInformation.h to document that some fields in this HOB may be invalidated.
Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg.
Previously, the HOB is defined, created and consumed only in StandaloneMmPkg. The HOB contains the number
of processors and EFI_PROCESSOR_INFORMATION structure. This is the same as the information that PiSmmCpuDxeSmm
uses EfiMpServiceProtocolGuid to get.
The incoming plan is to create gMpInformationHobGuid for both StandaloneMm and legacy DXE_SMM in early
phase(for example in CpuMpPei). Then PiSmmCpuDxeSmm can consume the hob, which can simplify code logic
in PiSmmCpuDxeSmm driver.
So move this HOB definition to UefiCpuPkg in this patch series.
Dun Tan (3):
UefiCpuPkg: Create MpInformation.h in UefiCpuPkg
StandaloneMmPkg:Add UefiCpuPkg.dec in DependencyCheck
StandaloneMmPkg:Remove MpInformation.h
StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf | 1 +
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf | 1 +
StandaloneMmPkg/StandaloneMmPkg.ci.yaml | 3 ++-
StandaloneMmPkg/StandaloneMmPkg.dec | 1 -
{StandaloneMmPkg => UefiCpuPkg}/Include/Guid/MpInformation.h | 6 +++++-
UefiCpuPkg/UefiCpuPkg.dec | 3 +++
6 files changed, 12 insertions(+), 3 deletions(-)
rename {StandaloneMmPkg => UefiCpuPkg}/Include/Guid/MpInformation.h (71%)
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111347): https://edk2.groups.io/g/devel/message/111347
Mute This Topic: https://groups.io/mt/102644629/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 5+ messages in thread
* [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg
2023-11-17 9:39 [edk2-devel] [Patch V2 0/3] Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg duntan
@ 2023-11-17 9:39 ` duntan
2023-11-17 20:13 ` Laszlo Ersek
2023-11-17 9:39 ` [edk2-devel] [Patch V2 2/3] StandaloneMmPkg:Add UefiCpuPkg.dec in DependencyCheck duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 3/3] StandaloneMmPkg:Remove MpInformation.h duntan
2 siblings, 1 reply; 5+ messages in thread
From: duntan @ 2023-11-17 9:39 UTC (permalink / raw)
To: devel; +Cc: Eric Dong, Ray Ni, Rahul Kumar, Gerd Hoffmann, Laszlo Ersek
Copy MpInformation.h and gMpInformationHobGuid to
UefiCpuPkg.
Previously, the HOB is defined, created and consumed
only in StandaloneMmPkg. The HOB contains the number
of processors and EFI_PROCESSOR_INFORMATION structure.
This is the same as the information that PiSmmCpuDxeSmm
uses EfiMpServiceProtocolGuid to get.
The incoming plan is to create gMpInformationHobGuid
for both StandaloneMm and legacy DXE_SMM in early
phase. Then PiSmmCpuDxeSmm can consume the hob, which can
simplified code logic about consuming MpService Protocol.
So move this HOB definition to UefiCpuPkg.
Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
---
UefiCpuPkg/Include/Guid/MpInformation.h | 39 +++++++++++++++++++++++++++++++++++++++
UefiCpuPkg/UefiCpuPkg.dec | 3 +++
2 files changed, 42 insertions(+)
diff --git a/UefiCpuPkg/Include/Guid/MpInformation.h b/UefiCpuPkg/Include/Guid/MpInformation.h
new file mode 100644
index 0000000000..29da80d4df
--- /dev/null
+++ b/UefiCpuPkg/Include/Guid/MpInformation.h
@@ -0,0 +1,39 @@
+/** @file
+ EFI MP information protocol provides a lightweight MP_SERVICES_PROTOCOL.
+
+ MP information protocol only provides static information of MP processor.
+
+ If SwitchBSP or Enable/DisableAP in MP service is called between the HOB
+ production and HOB consumption, EFI_PROCESSOR_INFORMATION.StatusFlag and
+ NumberOfEnabledProcessors fields in this HOB may be invalidated.
+
+ Copyright (c) 2009 - 2023, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _MP_INFORMATION_H_
+#define _MP_INFORMATION_H_
+
+#include <Protocol/MpService.h>
+#include <PiPei.h>
+#include <Ppi/SecPlatformInformation.h>
+
+#define MP_INFORMATION_GUID \
+ { \
+ 0xba33f15d, 0x4000, 0x45c1, {0x8e, 0x88, 0xf9, 0x16, 0x92, 0xd4, 0x57, 0xe3} \
+ }
+
+#pragma pack(1)
+typedef struct {
+ UINT64 NumberOfProcessors;
+ UINT64 NumberOfEnabledProcessors;
+ EFI_PROCESSOR_INFORMATION ProcessorInfoBuffer[];
+} MP_INFORMATION_HOB_DATA;
+#pragma pack()
+
+extern EFI_GUID gMpInformationHobGuid;
+
+#endif
diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec
index 0b5431dbf7..92860b4c6e 100644
--- a/UefiCpuPkg/UefiCpuPkg.dec
+++ b/UefiCpuPkg/UefiCpuPkg.dec
@@ -85,6 +85,9 @@
## Include/Guid/SmmBaseHob.h
gSmmBaseHobGuid = { 0xc2217ba7, 0x03bb, 0x4f63, {0xa6, 0x47, 0x7c, 0x25, 0xc5, 0xfc, 0x9d, 0x73 }}
+ ## Include/Guid/MpInformation.h
+ gMpInformationHobGuid = { 0xba33f15d, 0x4000, 0x45c1, { 0x8e, 0x88, 0xf9, 0x16, 0x92, 0xd4, 0x57, 0xe3 }}
+
[Protocols]
## Include/Protocol/SmmCpuService.h
gEfiSmmCpuServiceProtocolGuid = { 0x1d202cab, 0xc8ab, 0x4d5c, { 0x94, 0xf7, 0x3c, 0xfc, 0xc0, 0xd3, 0xd3, 0x35 }}
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111348): https://edk2.groups.io/g/devel/message/111348
Mute This Topic: https://groups.io/mt/102644630/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [edk2-devel] [Patch V2 2/3] StandaloneMmPkg:Add UefiCpuPkg.dec in DependencyCheck
2023-11-17 9:39 [edk2-devel] [Patch V2 0/3] Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg duntan
@ 2023-11-17 9:39 ` duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 3/3] StandaloneMmPkg:Remove MpInformation.h duntan
2 siblings, 0 replies; 5+ messages in thread
From: duntan @ 2023-11-17 9:39 UTC (permalink / raw)
To: devel; +Cc: Ard Biesheuvel, Sami Mujawar, Ray Ni, Laszlo Ersek, Gerd Hoffmann
Add UefiCpuPkg.dec in DependencyCheck section of
StandaloneMmPkg.ci.yaml to allow StandaloneMmPkg
depend on UefiCpuPkg.
Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
StandaloneMmPkg/StandaloneMmPkg.ci.yaml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/StandaloneMmPkg/StandaloneMmPkg.ci.yaml b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
index 4777532a7e..ebd35f515e 100644
--- a/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
+++ b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
@@ -39,7 +39,8 @@
"EmbeddedPkg/EmbeddedPkg.dec",
"StandaloneMmPkg/StandaloneMmPkg.dec",
"MdeModulePkg/MdeModulePkg.dec",
- "MdePkg/MdePkg.dec"
+ "MdePkg/MdePkg.dec",
+ "UefiCpuPkg/UefiCpuPkg.dec"
],
# For host based unit tests
"AcceptableDependencies-HOST_APPLICATION":[
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111349): https://edk2.groups.io/g/devel/message/111349
Mute This Topic: https://groups.io/mt/102644631/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [edk2-devel] [Patch V2 3/3] StandaloneMmPkg:Remove MpInformation.h
2023-11-17 9:39 [edk2-devel] [Patch V2 0/3] Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 2/3] StandaloneMmPkg:Add UefiCpuPkg.dec in DependencyCheck duntan
@ 2023-11-17 9:39 ` duntan
2 siblings, 0 replies; 5+ messages in thread
From: duntan @ 2023-11-17 9:39 UTC (permalink / raw)
To: devel; +Cc: Ard Biesheuvel, Sami Mujawar, Ray Ni, Laszlo Ersek, Gerd Hoffmann
Remove MpInformation.h in StandaloneMmPkg since
it has been moved to UefiCpuPkg
Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf | 1 +
StandaloneMmPkg/Include/Guid/MpInformation.h | 35 -----------------------------------
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf | 1 +
StandaloneMmPkg/StandaloneMmPkg.dec | 1 -
4 files changed, 2 insertions(+), 36 deletions(-)
diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
index 1fcb17d89d..4ed0e395c8 100644
--- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
+++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
@@ -27,6 +27,7 @@
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
StandaloneMmPkg/StandaloneMmPkg.dec
+ UefiCpuPkg/UefiCpuPkg.dec
[LibraryClasses]
ArmLib
diff --git a/StandaloneMmPkg/Include/Guid/MpInformation.h b/StandaloneMmPkg/Include/Guid/MpInformation.h
deleted file mode 100644
index dbf88d12de..0000000000
--- a/StandaloneMmPkg/Include/Guid/MpInformation.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/** @file
- EFI MP information protocol provides a lightweight MP_SERVICES_PROTOCOL.
-
- MP information protocol only provides static information of MP processor.
-
- Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
- Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef _MP_INFORMATION_H_
-#define _MP_INFORMATION_H_
-
-#include <Protocol/MpService.h>
-#include <PiPei.h>
-#include <Ppi/SecPlatformInformation.h>
-
-#define MP_INFORMATION_GUID \
- { \
- 0xba33f15d, 0x4000, 0x45c1, {0x8e, 0x88, 0xf9, 0x16, 0x92, 0xd4, 0x57, 0xe3} \
- }
-
-#pragma pack(1)
-typedef struct {
- UINT64 NumberOfProcessors;
- UINT64 NumberOfEnabledProcessors;
- EFI_PROCESSOR_INFORMATION ProcessorInfoBuffer[];
-} MP_INFORMATION_HOB_DATA;
-#pragma pack()
-
-extern EFI_GUID gMpInformationHobGuid;
-
-#endif
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
index 75cfb98c0e..1fc31360ce 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
@@ -33,6 +33,7 @@
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
StandaloneMmPkg/StandaloneMmPkg.dec
+ UefiCpuPkg/UefiCpuPkg.dec
[Packages.ARM, Packages.AARCH64]
ArmPkg/ArmPkg.dec
diff --git a/StandaloneMmPkg/StandaloneMmPkg.dec b/StandaloneMmPkg/StandaloneMmPkg.dec
index 46784d94e4..01f37deebb 100644
--- a/StandaloneMmPkg/StandaloneMmPkg.dec
+++ b/StandaloneMmPkg/StandaloneMmPkg.dec
@@ -36,7 +36,6 @@
[Guids]
gStandaloneMmPkgTokenSpaceGuid = { 0x18fe7632, 0xf5c8, 0x4e63, { 0x8d, 0xe8, 0x17, 0xa5, 0x5c, 0x59, 0x13, 0xbd }}
- gMpInformationHobGuid = { 0xba33f15d, 0x4000, 0x45c1, { 0x8e, 0x88, 0xf9, 0x16, 0x92, 0xd4, 0x57, 0xe3 }}
gMmFvDispatchGuid = { 0xb65694cc, 0x09e3, 0x4c3b, { 0xb5, 0xcd, 0x05, 0xf4, 0x4d, 0x3c, 0xdb, 0xff }}
## Include/Guid/MmCoreData.h
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111350): https://edk2.groups.io/g/devel/message/111350
Mute This Topic: https://groups.io/mt/102644632/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg
2023-11-17 9:39 ` [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg duntan
@ 2023-11-17 20:13 ` Laszlo Ersek
0 siblings, 0 replies; 5+ messages in thread
From: Laszlo Ersek @ 2023-11-17 20:13 UTC (permalink / raw)
To: devel, dun.tan; +Cc: Eric Dong, Ray Ni, Rahul Kumar, Gerd Hoffmann
On 11/17/23 10:39, duntan wrote:
> Copy MpInformation.h and gMpInformationHobGuid to
> UefiCpuPkg.
> Previously, the HOB is defined, created and consumed
> only in StandaloneMmPkg. The HOB contains the number
> of processors and EFI_PROCESSOR_INFORMATION structure.
> This is the same as the information that PiSmmCpuDxeSmm
> uses EfiMpServiceProtocolGuid to get.
> The incoming plan is to create gMpInformationHobGuid
> for both StandaloneMm and legacy DXE_SMM in early
> phase. Then PiSmmCpuDxeSmm can consume the hob, which can
> simplified code logic about consuming MpService Protocol.
> So move this HOB definition to UefiCpuPkg.
>
> Signed-off-by: Dun Tan <dun.tan@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> ---
> UefiCpuPkg/Include/Guid/MpInformation.h | 39 +++++++++++++++++++++++++++++++++++++++
> UefiCpuPkg/UefiCpuPkg.dec | 3 +++
> 2 files changed, 42 insertions(+)
>
> diff --git a/UefiCpuPkg/Include/Guid/MpInformation.h b/UefiCpuPkg/Include/Guid/MpInformation.h
> new file mode 100644
> index 0000000000..29da80d4df
> --- /dev/null
> +++ b/UefiCpuPkg/Include/Guid/MpInformation.h
> @@ -0,0 +1,39 @@
> +/** @file
> + EFI MP information protocol provides a lightweight MP_SERVICES_PROTOCOL.
> +
> + MP information protocol only provides static information of MP processor.
> +
> + If SwitchBSP or Enable/DisableAP in MP service is called between the HOB
> + production and HOB consumption, EFI_PROCESSOR_INFORMATION.StatusFlag and
> + NumberOfEnabledProcessors fields in this HOB may be invalidated.
Thanks for the update.
Acked-by: Laszlo Ersek <lersek@redhat.com>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111410): https://edk2.groups.io/g/devel/message/111410
Mute This Topic: https://groups.io/mt/102644630/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-11-17 20:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-17 9:39 [edk2-devel] [Patch V2 0/3] Move gMpInformationHobGuid from StandaloneMmPkg to UefiCpuPkg duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 1/3] UefiCpuPkg: Create MpInformation.h in UefiCpuPkg duntan
2023-11-17 20:13 ` Laszlo Ersek
2023-11-17 9:39 ` [edk2-devel] [Patch V2 2/3] StandaloneMmPkg:Add UefiCpuPkg.dec in DependencyCheck duntan
2023-11-17 9:39 ` [edk2-devel] [Patch V2 3/3] StandaloneMmPkg:Remove MpInformation.h duntan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox