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 <kra...@redhat.com> > --- > 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: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-