On 2/20/24 18:49, Gerd Hoffmann wrote:
> Rename the MpHandOff parameter to FirstMpHandOff. Add a loop so the
> function inspects all HOBs present in the system.
>
> Signed-off-by: Gerd Hoffmann <[email protected]>
> ---
> UefiCpuPkg/Library/MpInitLib/MpLib.c | 23 +++++++++++++++--------
> 1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c
> b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> index e764bc9e4228..8f198ff6d817 100644
> --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
> +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> @@ -1894,26 +1894,33 @@ CheckAllAPs (
> /**
> This function Get BspNumber.
>
> - @param[in] MpHandOff Pointer to MpHandOff
> + @param[in] FirstMpHandOff Pointer to first MpHandOff HOB.
... also, it would be more precise to say "first MpHandOff HOB body".
Laszlo
> @return BspNumber
> **/
> UINT32
> GetBspNumber (
> - IN CONST MP_HAND_OFF *MpHandOff
> + IN CONST MP_HAND_OFF *FirstMpHandOff
> )
> {
> - UINT32 ApicId;
> - UINT32 BspNumber;
> - UINT32 Index;
> + UINT32 ApicId;
> + UINT32 BspNumber;
> + UINT32 Index;
> + CONST MP_HAND_OFF *MpHandOff;
>
> //
> // Get the processor number for the BSP
> //
> BspNumber = MAX_UINT32;
> ApicId = GetInitialApicId ();
> - for (Index = 0; Index < MpHandOff->CpuCount; Index++) {
> - if (MpHandOff->Info[Index].ApicId == ApicId) {
> - BspNumber = Index;
> +
> + for (MpHandOff = FirstMpHandOff;
> + MpHandOff != NULL;
> + MpHandOff = GetNextMpHandOffHob (MpHandOff))
> + {
> + for (Index = 0; Index < MpHandOff->CpuCount; Index++) {
> + if (MpHandOff->Info[Index].ApicId == ApicId) {
> + BspNumber = MpHandOff->ProcessorIndex + Index;
> + }
> }
> }
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115763): https://edk2.groups.io/g/devel/message/115763
Mute This Topic: https://groups.io/mt/104472310/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-