From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web10.15294.1601473037877499176 for ; Wed, 30 Sep 2020 06:37:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=XUyEitNL; spf=pass (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=05423c58e6=abner.chang@hpe.com) Received: from pps.filterd (m0150245.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 08UDS2qB010617; Wed, 30 Sep 2020 13:37:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=GK8GvtbjtgdzLr0WFOvjnTxu917zQGZRARTzmR0pORo=; b=XUyEitNLX55MXb/jdHx2hr6t2sOuuK+j1JoC9cf9DJomZ3EipbvBhzlj9zBu5UJCRtbS tqIehBEi5sIp77sguFLPfAFDTeu9mJcBC6f41zAybCMRt8dxem5E0rao2joyWEyMSMpF UiKyRno5OI5W8LO9FXWCyLeTGE6VE+YquCNgnoN9orMzGERsmQ1DPpGjfrDQOGl1OWZq 1C7jnBnWttQevgmc2xeNplhjcPHGUjs/RL4jQYiFEO7AflaCEhgiNzAqKc4WLQKj9qTo o2YojHZbPb/EKUmqqWmD+n+3WxX7t2Z/X6i7hoV/fTCEzMMeWYAq2OKa9w+lKaIj4gxr sw== Received: from g2t2352.austin.hpe.com (g2t2352.austin.hpe.com [15.233.44.25]) by mx0b-002e3701.pphosted.com with ESMTP id 33v8yr054a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Sep 2020 13:37:16 +0000 Received: from G9W8456.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.216.161.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2352.austin.hpe.com (Postfix) with ESMTPS id 3710891; Wed, 30 Sep 2020 13:37:16 +0000 (UTC) Received: from G4W9121.americas.hpqcorp.net (2002:10d2:1510::10d2:1510) by G9W8456.americas.hpqcorp.net (2002:10d8:a15f::10d8:a15f) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 30 Sep 2020 13:37:15 +0000 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (15.241.52.10) by G4W9121.americas.hpqcorp.net (16.210.21.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 30 Sep 2020 13:37:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N85HmwLTxQeLo5eJEr+bfTbkucnWl2TJYQWhDf/zi6e4Fj1nDMq2j5hPcGGHJjfZeirSQHE58NQaFPUb0bwEDFYCsttIOcBIxs1amQyURocfJMd/3alq4p3VaGus83bveKWZlvQDvDaIybIfmL9QkU3KZZAa8yRvl1NNtRQNr4mhewC6liq/soCln5r0b2LrDn3SY9IOuXpQEr0pfwk+as0jaw8hU+BLbbZ0D5/FXC2qRJ7t0VjX72/p8oCNbkrxywxsxVkV1vt9r2EYQB9kxAPnYjng9+QUas6ddwZAp1Fj9s3oouu1HqBbfFZcmDUHIDQk8DRG9OcUaQ2Db/fnqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GK8GvtbjtgdzLr0WFOvjnTxu917zQGZRARTzmR0pORo=; b=KqMubMlmrmyUw0fW+gK1Eik/RvBHNVKqTCKKUck27GVxXKnFxCqUlqV1pxVnolbMxfz6obp5iXren67mNZwek852lboSvMKU7r3BD4cVBMUn0wR650fBsdtsAlw8eIligGGx9wb+E5+GwEy1A2C6a+hZFEjieli17RliAYXxiJAUyQRxI7DUHSYHnrKNoQf3ApNlGV1RCojo6P/YjRZEuEYH7gadcFptQuev5R4myjLVkpO3KJf8YMejMpnuadAJrTkYk6lGowVKimd3wj/F9w7/DtMAgRH65HghEqxAs6Rb+YAC4CksWQMhGPpnFKbaiymTL3NQ78OXovXslp72uA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0648.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:750b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32; Wed, 30 Sep 2020 13:37:14 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::d111:132b:4b87:a9ea]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::d111:132b:4b87:a9ea%3]) with mapi id 15.20.3433.032; Wed, 30 Sep 2020 13:37:14 +0000 From: "Abner Chang" To: "Schaefer, Daniel" , "devel@edk2.groups.io" CC: Leif Lindholm Subject: Re: [PATCH 1/1] Silicon/SiFive: Handle case of NULL FirmwareContext Thread-Topic: [PATCH 1/1] Silicon/SiFive: Handle case of NULL FirmwareContext Thread-Index: AQHWlwa+QU/ZGXhS2EOxW50w3CNdS6mBLxww Date: Wed, 30 Sep 2020 13:37:14 +0000 Message-ID: References: <20200930085005.27148-1-daniel.schaefer@hpe.com> <20200930085005.27148-2-daniel.schaefer@hpe.com> In-Reply-To: <20200930085005.27148-2-daniel.schaefer@hpe.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: hpe.com; dkim=none (message not signed) header.d=none;hpe.com; dmarc=none action=none header.from=hpe.com; x-originating-ip: [1.34.113.40] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 6ae271b6-290a-496e-a91b-08d86545f12f x-ms-traffictypediagnostic: CS1PR8401MB0648: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iHRMYQAAft0kUk7bOhYh3GQzd21SbUb3JFO42WPdKvweGO6RoA5Wx6BoprfLjewj9Yg7D3tskZ7hBJnJnIH/nSNt+yd4RMr2RK6jVuOGt4hY8E/PlnQycUvmP8/BokoV1HNBarG1G/wQF1fzWB2IDpVfUp9U9GaYSUqFWjw43AWGDs0W9OADFCR4BKl1OlPrjqbYUwRZh8kvqk7AYtf2dn2tQe+wQ/SECh/jm4hNKOPfOzVe8899ElpOH1NBTV/OwsFgFMKQ1DN1GwsMPanNlAjZTUS21Qlx0KZ72ogddJaPi7QDPRJX0KsDcIFas/SE79PX0WEodWuVajnggawGiA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(6029001)(396003)(136003)(346002)(366004)(39860400002)(376002)(4326008)(53546011)(6506007)(26005)(186003)(8936002)(55016002)(9686003)(8676002)(7696005)(86362001)(478600001)(66946007)(76116006)(19627235002)(64756008)(66446008)(66556008)(66476007)(33656002)(5660300002)(52536014)(71200400001)(316002)(110136005)(2906002)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: D9GN97dynBTv/F3Lcmvyf+ayzW3MVzLyY8vq2EjB11jYVVSBkey4ehRuLJ093xNwvwAzoKSxVoy2Yv3xPDopTqgk/y1FoO5DxJ9oKZZNav06pW6Jmcv++tIdgXm/O4f3Kq5+dw1kYUQobCzTedZd843Ie1n/43ZLjzFW9i/Ozg28JFrZjH11gE6YDmm3272fwDK/f8nQTv1oDVmPD591Tpy3RQuRC5LRuC0tuiDozjwYZ0cmA/3iZlvav8x2I6lNXt/KYOLmxPipqIqlrj6B7GDQSKvQZNFpBdr+Y/pY1ZoSA/SdgTSz2OPohd5NmfIgpuOIdKTD85ZUZeA5ZckkdZpijUbdoXn5QAwpv+W6omA4wW2IYIE6x37jSHRyMlD4353+gmK5cFed54OkbW0i7ZH/D/T61qsJ6d1EM5G8C5wVTyt/dMDsTgZxnYWrEwLB2erdrabVjL+SlM9Q3W2MN067Z/E1PWb+i9hECRYV84pGNIe/7nZNVAOQRdXoztJPfFsGSCn5J0qMqJyPcHsJcBcMihvp84pPd83S2HrXOobT17jZSLP6x3WbiagPdckPsBDeUR7MFhDXLX2KvFkyhqI0lDTLBfWBYqw7FuizkZ9RAvtC1bylbF6vB3OeAYt5i7o4iGOL91zP1xu892/Eng== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 6ae271b6-290a-496e-a91b-08d86545f12f X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 13:37:14.5087 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Gt11/cvFWvjYVTxVSfzPJU1x2e4WzAbjd3UqTKi1AiSv2nZponQrweFuTmRTzRm2QKRNR2YK8RJEUQ27oCI0jA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0648 X-OriginatorOrg: hpe.com X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-09-30_07:2020-09-30,2020-09-30 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 impostorscore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009300107 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Abner Chang > -----Original Message----- > From: Schaefer, Daniel > Sent: Wednesday, September 30, 2020 4:50 PM > To: devel@edk2.groups.io > Cc: Schaefer, Daniel ; Chang, Abner (HPS > SW/FW Technologist) ; Leif Lindholm > > Subject: [PATCH 1/1] Silicon/SiFive: Handle case of NULL FirmwareContext >=20 > Abort creating the SMBIOS HOBs if there's no firmware context to get the > information from. > Turn SbiLib functions for getting mscratch into VOID since they can never > practically fail. >=20 > Signed-off-by: Daniel Schaefer > Cc: Abner Chang > Cc: Leif Lindholm > --- > .../Include/Library/RiscVEdk2SbiLib.h | 12 ++--- > .../PlatformPkg/Universal/Sec/SecMain.c | 11 +++-- > .../Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c | 46 +++++++------------ > .../Library/PeiCoreInfoHobLib/CoreInfoHob.c | 13 ++++-- > 4 files changed, 36 insertions(+), 46 deletions(-) >=20 > diff --git a/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.= h > b/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h > index 558841a970ce..f81ea06b05b0 100644 > --- a/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h > +++ b/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h > @@ -514,9 +514,8 @@ SbiVendorCall ( > access the firmware context. @param[out] ScratchSpace The s= cratch > space pointer.- @retval EFI_SUCCESS The operation succeeds.= **/- > EFI_STATUS+VOID EFIAPI SbiGetMscratch ( OUT SBI_SCRATCH > **ScratchSpace@@ -527,9 +526,8 @@ SbiGetMscratch ( > @param[in] HartId The hart id. @param[out] ScratchSp= ace The > scratch space pointer.- @retval EFI_SUCCESS The operation s= ucceeds. > **/-EFI_STATUS+VOID EFIAPI SbiGetMscratchHartid ( IN UINTN > HartId,@@ -540,9 +538,8 @@ SbiGetMscratchHartid ( > Get firmware context of the calling hart. @param[out] FirmwareConte= xt > The firmware context pointer.- @retval EFI_SUCCESS The oper= ation > succeeds. **/-EFI_STATUS+VOID EFIAPI SbiGetFirmwareContext ( OUT > EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT **FirmwareContext@@ -552,9 > +549,8 @@ SbiGetFirmwareContext ( > Set firmware context of the calling hart. @param[in] FirmwareContex= t > The firmware context pointer.- @retval EFI_SUCCESS The oper= ation > succeeds. **/-EFI_STATUS+VOID EFIAPI SbiSetFirmwareContext ( IN > EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *FirmwareContextdiff --git > a/Platform/RISC-V/PlatformPkg/Universal/Sec/SecMain.c b/Platform/RISC- > V/PlatformPkg/Universal/Sec/SecMain.c > index 877777bfa1ab..fa9ecd789a57 100644 > --- a/Platform/RISC-V/PlatformPkg/Universal/Sec/SecMain.c > +++ b/Platform/RISC-V/PlatformPkg/Universal/Sec/SecMain.c > @@ -415,7 +415,10 @@ EFI_STATUS EFIAPI TemporaryRamDone ( > return EFI_SUCCESS; } -/** Handles SBI calls of EDK2's SBI FW > extension+/**+ Handles SBI calls of EDK2's SBI FW extension.++ The retu= rn > value is the error code returned by the SBI call. @param[in] ExtId = The > extension ID of the FW extension. @param[in] FuncId The called > function ID.@@ -424,7 +427,7 @@ EFI_STATUS EFIAPI TemporaryRamDone ( > @param[out] OutTrap Trap info for trapping further, see OpenSBI c= ode. > Is ignored if return value is not SBI_ETRAP. - @retval 0 = If the handler > succeeds.+ @retval SBI_OK If the handler succeeds. @retval > SBI_ENOTSUPP If there's no function with the given ID. @retval > SBI_ETRAP If the called SBI functions wants to trap further. **/@@= -436,7 > +439,7 @@ STATIC int SbiEcallFirmwareHandler ( > OUT struct sbi_trap_info *OutTrap ) {- int Ret =3D 0;+ int Ret =3D= SBI_OK; > switch (FuncId) { case SBI_EXT_FW_MSCRATCH_FUNC:@@ -447,6 +450,8 > @@ STATIC int SbiEcallFirmwareHandler ( > break; default: Ret =3D SBI_ENOTSUPP;+ DEBUG ((DEBU= G_ERROR, > "%a: Called SBI firmware ecall with invalid function ID\n", __FUNCTION__)= );+ > ASSERT (FALSE); }; return Ret;diff --git a/Silicon/RISC- > V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c b/Silicon/RISC- > V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c > index 0df505d2675b..9bbeaaec3f7a 100644 > --- a/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib= .c > +++ b/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLi > +++ b.c > @@ -801,9 +801,8 @@ SbiVendorCall ( > access the firmware context. @param[out] ScratchSpace The s= cratch > space pointer.- @retval EFI_SUCCESS The operation succeeds.= **/- > EFI_STATUS+VOID EFIAPI SbiGetMscratch ( OUT SBI_SCRATCH > **ScratchSpace@@ -811,11 +810,10 @@ SbiGetMscratch ( > { SbiRet Ret =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, > 0); - if (!Ret.Error) {- *ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;-= }+ // > Our ecall handler never returns an error, only when the func id is invali= d+ > ASSERT (Ret.Error =3D=3D SBI_OK); - return EFI_SUCCESS;+ *ScratchSpace = =3D > (SBI_SCRATCH *)Ret.Value; } /**@@ -823,9 +821,8 @@ SbiGetMscratch ( > @param[in] HartId The hart id. @param[out] ScratchSp= ace The > scratch space pointer.- @retval EFI_SUCCESS The operation s= ucceeds. > **/-EFI_STATUS+VOID EFIAPI SbiGetMscratchHartid ( IN UINTN > HartId,@@ -839,11 +836,10 @@ SbiGetMscratchHartid ( > HartId ); - if (!Ret.Error) {- *Sc= ratchSpace =3D (SBI_SCRATCH > *)Ret.Value;- }+ // Our ecall handler never returns an error, only when= the > func id is invalid+ ASSERT (Ret.Error =3D=3D SBI_OK); - return EFI_SUCC= ESS;+ > *ScratchSpace =3D (SBI_SCRATCH *)Ret.Value; } /**@@ -852,7 +848,7 @@ > SbiGetMscratchHartid ( > @param[out] FirmwareContext The firmware context pointer. @retv= al > EFI_SUCCESS The operation succeeds. **/-EFI_STATUS+VOID EFIA= PI > SbiGetFirmwareContext ( OUT EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT > **FirmwareContext@@ -860,24 +856,18 @@ SbiGetFirmwareContext ( > { SBI_SCRATCH *ScratchSpace; SBI_PLATFORM *SbiPlatform;- SbiRet Re= t > =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, 0); - if > (!Ret.Error) {- ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;- SbiPlat= form =3D > (SBI_PLATFORM *)sbi_platform_ptr(ScratchSpace);- *FirmwareContext =3D > (EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *)SbiPlatform- > >firmware_context;- }-- return EFI_SUCCESS;+ > SbiGetMscratch(&ScratchSpace);+ SbiPlatform =3D (SBI_PLATFORM > *)sbi_platform_ptr(ScratchSpace);+ *FirmwareContext =3D > (EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *)SbiPlatform- > >firmware_context; } /** Set firmware context of the calling hart. > @param[in] FirmwareContext The firmware context pointer.- @retval > EFI_SUCCESS The operation succeeds. **/-EFI_STATUS+VOID EFIA= PI > SbiSetFirmwareContext ( IN EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT > *FirmwareContext@@ -885,13 +875,9 @@ SbiSetFirmwareContext ( > { SBI_SCRATCH *ScratchSpace; SBI_PLATFORM *SbiPlatform;- SbiRet Re= t > =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, 0); - if > (!Ret.Error) {- ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;- SbiPlat= form =3D > (SBI_PLATFORM *)sbi_platform_ptr (ScratchSpace);- SbiPlatform- > >firmware_context =3D (UINTN)FirmwareContext;- }+ > SbiGetMscratch(&ScratchSpace); - return EFI_SUCCESS;+ SbiPlatform =3D > (SBI_PLATFORM *)sbi_platform_ptr (ScratchSpace);+ SbiPlatform- > >firmware_context =3D (UINTN)FirmwareContext; }diff --git > a/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c > b/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c > index edeabf028ff8..88f36cbbe299 100644 > --- a/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c > +++ b/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c > @@ -38,7 +38,7 @@ > @return EFI_SUCCESS The PEIM initialized successfully. > EFI_UNSUPPORTED HART is ignored by platform.-+ EFI_NOT_FOUND > Processor specific data hob is not available. **/ EFI_STATUS EFIAPI@@ -56= ,7 > +56,6 @@ CreateU54E51CoreProcessorSpecificDataHob ( > RISC_V_PROCESSOR_SPECIFIC_HOB_DATA ProcessorSpecDataHob; > EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *FirmwareContext; > EFI_RISCV_FIRMWARE_CONTEXT_HART_SPECIFIC > *FirmwareContextHartSpecific;- EFI_STATUS Status; DEBUG > ((DEBUG_INFO, "%a: Entry.\n", __FUNCTION__)); @@ -64,9 +63,14 @@ > CreateU54E51CoreProcessorSpecificDataHob ( > return EFI_INVALID_PARAMETER; } - Status =3D SbiGetFirmwareContex= t > (&FirmwareContext);- ASSERT_EFI_ERROR (Status);+ > SbiGetFirmwareContext (&FirmwareContext);+ ASSERT > (FirmwareContext !=3D NULL);+ if (FirmwareContext =3D=3D NULL) {+ DEB= UG > ((DEBUG_ERROR, "Failed to get the pointer of > EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT of hart %d\n", HartId));+ return > EFI_NOT_FOUND;+ } DEBUG ((DEBUG_INFO, " Firmware Context is at > 0x%x.\n", FirmwareContext));+ FirmwareContextHartSpecific =3D > FirmwareContext->HartSpecific[HartId]; DEBUG ((DEBUG_INFO, " > Firmware Context Hart specific is at 0x%x.\n", FirmwareContextHartSpecifi= c)); > if (FirmwareContextHartSpecific =3D=3D NULL) {@@ -102,7 +106,6 @@ > CreateU54E51CoreProcessorSpecificDataHob ( > ProcessorSpecDataHob.ProcessorSpecificData.SupervisorModeXlen = =3D > RegisterLen64; } - DebugPrintHartSpecificInfo (&ProcessorSpecDataHob)= ; > //-- > 2.28.0