From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 88E3A74003A for ; Thu, 22 Feb 2024 16:01:16 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=SvQf645Rg7L4TeduZ4zxNdxz2YU60WJrDH44RV0VzhY=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1708617675; v=1; b=w4m8BV4/QjmJaAdaEuvfcZzZ0OLGCmmo7ArCNO04RGy1zgkEbj1a7zAJQBrc0aIb6inMgMY9 1qE5f43qyIhF8LK/QP/Phtbvd644NNfx3vOcw6a0CZPAnxa3qn4Gkeh1x+RkrsaPVJ0JrLOLpCW aINpFnW4tL3Ld6wmB3QYsD9o= X-Received: by 127.0.0.2 with SMTP id 0lYNYY7687511xpVbtwot0qi; Thu, 22 Feb 2024 08:01:15 -0800 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web11.16296.1708617673436188903 for ; Thu, 22 Feb 2024 08:01:13 -0800 X-Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-590-xwWrUfNLPT2eDJh8s84Nkw-1; Thu, 22 Feb 2024 11:01:08 -0500 X-MC-Unique: xwWrUfNLPT2eDJh8s84Nkw-1 X-Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CC93C106D061; Thu, 22 Feb 2024 16:01:07 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.192.237]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 65D9824E4; Thu, 22 Feb 2024 16:01:07 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 34C341801A82; Thu, 22 Feb 2024 17:01:06 +0100 (CET) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Laszlo Ersek , Ray Ni , Rahul Kumar , Oliver Steffen , Gerd Hoffmann 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 Message-ID: <20240222160106.686484-2-kraxel@redhat.com> In-Reply-To: <20240222160106.686484-1-kraxel@redhat.com> References: <20240222160106.686484-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: qkSkCEQxl08J6qAP2N9ODTQ1x7686176AA= Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="w4m8BV4/"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io 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 --- 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] -=-=-=-=-=-=-=-=-=-=-=-