From: "Gerd Hoffmann" <kraxel@redhat.com>
To: devel@edk2.groups.io
Cc: Laszlo Ersek <lersek@redhat.com>, Ray Ni <ray.ni@intel.com>,
Rahul Kumar <rahul1.kumar@intel.com>,
Oliver Steffen <osteffen@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>
Subject: [edk2-devel] [PATCH v3 1/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to GetMpHandOffHob
Date: Thu, 22 Feb 2024 17:01:01 +0100 [thread overview]
Message-ID: <20240222160106.686484-2-kraxel@redhat.com> (raw)
In-Reply-To: <20240222160106.686484-1-kraxel@redhat.com>
Rename the function to GetNextMpHandOffHob(), add MP_HAND_OFF parameter.
When called with NULL pointer return the body of the first HOB, otherwise
return the next in the chain.
Also add the function prototype to the MpLib.h header file.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
UefiCpuPkg/Library/MpInitLib/MpLib.h | 12 ++++++++++++
UefiCpuPkg/Library/MpInitLib/MpLib.c | 26 ++++++++++++++++----------
2 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.h b/UefiCpuPkg/Library/MpInitLib/MpLib.h
index a96a6389c17d..fab2b2d493ca 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.h
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.h
@@ -485,6 +485,18 @@ SwitchApContext (
IN MP_HAND_OFF *MpHandOff
);
+/**
+ Get pointer to next MP_HAND_OFF GUIDed HOB body.
+
+ @param[in] MpHandOff Previous HOB body. Pass NULL to get the first HOB.
+
+ @return The pointer to MP_HAND_OFF structure.
+**/
+MP_HAND_OFF *
+GetNextMpHandOffHob (
+ IN CONST MP_HAND_OFF *MpHandOff
+ );
+
/**
Get available EfiBootServicesCode memory below 4GB by specified size.
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index cdfb570e61a0..16fc7dc066fd 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -1961,25 +1961,31 @@ SwitchApContext (
}
/**
- Get pointer to MP_HAND_OFF GUIDed HOB.
+ Get pointer to next MP_HAND_OFF GUIDed HOB body.
+
+ @param[in] MpHandOff Previous HOB body. Pass NULL to get the first HOB.
@return The pointer to MP_HAND_OFF structure.
**/
MP_HAND_OFF *
-GetMpHandOffHob (
- VOID
+GetNextMpHandOffHob (
+ IN CONST MP_HAND_OFF *MpHandOff
)
{
EFI_HOB_GUID_TYPE *GuidHob;
- MP_HAND_OFF *MpHandOff;
- MpHandOff = NULL;
- GuidHob = GetFirstGuidHob (&mMpHandOffGuid);
- if (GuidHob != NULL) {
- MpHandOff = (MP_HAND_OFF *)GET_GUID_HOB_DATA (GuidHob);
+ if (MpHandOff == NULL) {
+ GuidHob = GetFirstGuidHob (&mMpHandOffGuid);
+ } else {
+ GuidHob = (VOID *)(((UINT8 *)MpHandOff) - sizeof (EFI_HOB_GUID_TYPE));
+ GuidHob = GetNextGuidHob (&mMpHandOffGuid, GET_NEXT_HOB (GuidHob));
}
- return MpHandOff;
+ if (GuidHob == NULL) {
+ return NULL;
+ }
+
+ return (MP_HAND_OFF *)GET_GUID_HOB_DATA (GuidHob);
}
/**
@@ -2020,7 +2026,7 @@ MpInitLibInitialize (
UINTN BackupBufferAddr;
UINTN ApIdtBase;
- MpHandOff = GetMpHandOffHob ();
+ MpHandOff = GetNextMpHandOffHob (NULL);
if (MpHandOff == NULL) {
MaxLogicalProcessorNumber = PcdGet32 (PcdCpuMaxLogicalProcessorNumber);
} else {
--
2.43.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115828): https://edk2.groups.io/g/devel/message/115828
Mute This Topic: https://groups.io/mt/104510907/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-02-22 16:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-22 16:01 [edk2-devel] [PATCH v3 0/6] UefiCpuPkg/MpInitLib: Add support for multiple MP_HAND_OFF HOBs Gerd Hoffmann
2024-02-22 16:01 ` Gerd Hoffmann [this message]
2024-02-23 2:35 ` [edk2-devel] [PATCH v3 1/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to GetMpHandOffHob Ni, Ray
2024-02-26 13:42 ` Laszlo Ersek
2024-02-22 16:01 ` [edk2-devel] [PATCH v3 2/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to GetBspNumber() Gerd Hoffmann
2024-02-22 16:01 ` [edk2-devel] [PATCH v3 3/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to SwitchApContext() Gerd Hoffmann
2024-02-22 16:01 ` [edk2-devel] [PATCH v3 4/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to MpInitLibInitialize Gerd Hoffmann
2024-02-26 13:51 ` Laszlo Ersek
2024-02-22 16:01 ` [edk2-devel] [PATCH v3 5/6] UefiCpuPkg/MpInitLib: Add support for multiple HOBs to SaveCpuMpData() Gerd Hoffmann
2024-02-23 2:16 ` Ni, Ray
2024-02-26 13:55 ` Laszlo Ersek
2024-02-26 13:55 ` Laszlo Ersek
2024-02-22 16:01 ` [edk2-devel] [PATCH v3 6/6] UefiCpuPkg/MpInitLib: return early in GetBspNumber() Gerd Hoffmann
2024-02-23 2:33 ` Ni, Ray
2024-02-26 13:59 ` Laszlo Ersek
2024-02-26 14:01 ` Laszlo Ersek
2024-02-26 15:08 ` [edk2-devel] [PATCH v3 0/6] UefiCpuPkg/MpInitLib: Add support for multiple MP_HAND_OFF HOBs Laszlo Ersek
2024-02-26 15:41 ` Joey Vagedes via groups.io
2024-02-26 16:01 ` Laszlo Ersek
2024-02-26 16:02 ` Laszlo Ersek
2024-02-26 15:19 ` Laszlo Ersek
2024-02-26 22:17 ` Laszlo Ersek
2024-02-27 6:28 ` Ni, Ray
2024-02-27 12:11 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240222160106.686484-2-kraxel@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox