On Thu, 29 Aug 2024 at 10:48, Nhi Pham via groups.io <nhi=os.amperecomputing....@groups.io> wrote: > > Pushed as 03d3395552c5 >
Thanks for finally providing a fix for this! Is there any way to detect whether a firmware build has this fix? > ________________________________ > From: Chuong Tran OS <chu...@amperemail.onmicrosoft.com> > Sent: Thursday, August 29, 2024 3:25 PM > To: Nhi Pham OS <n...@os.amperecomputing.com>; devel@edk2.groups.io > <devel@edk2.groups.io> > Cc: quic_llind...@quicinc.com <quic_llind...@quicinc.com>; Chuong Tran OS > <chu...@os.amperecomputing.com>; Rebecca Cran OS > <rebe...@os.amperecomputing.com> > Subject: Re: [PATCH 1/1] AmpereAltraPkg/FlashLib: Fix kernel crash if not > call SetVirtualAddressMap() > > Acked-by: Chuong Tran <chu...@os.amperecomputing.com> > > Thanks, > Chuong > > On 8/14/2024 10:22 AM, Nhi Pham wrote: > > From: Chuong Tran <chu...@os.amperecomputing.com> > > > > OS kernel with greater than or equal to 48-bit VA space avoids EFI's > > SetVirtualAddressMap() runtime service on Arm64 and simply uses the 1:1 > > address mapping that UEFI used at booting. However, AmpereAltraPkg's > > RuntimeFlashLib replies on function call SetVirtualAddressMap() to > > determine whether it is in boot time or run-time. If > > SetVirtualAddressMap() has not been called prior, it causes the kernel > > crash. This patch fixes that issue by removing the separation between > > UEFI boot time and run-time in RuntimeFlashLib. > > > > Signed-off-by: Nhi Pham <n...@os.amperecomputing.com> > > --- > > Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLibCommon.c | 11 > > +++-------- > > Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.c | 2 -- > > 2 files changed, 3 insertions(+), 10 deletions(-) > > > > diff --git > > a/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLibCommon.c > > b/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLibCommon.c > > index 83695c857a11..0b000c2aad46 100644 > > --- a/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLibCommon.c > > +++ b/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLibCommon.c > > @@ -15,7 +15,6 @@ > > > > #include "FlashLibCommon.h" > > > > -BOOLEAN gFlashLibRuntime = FALSE; > > UINT8 *gFlashLibPhysicalBuffer; > > UINT8 *gFlashLibVirtualBuffer; > > > > @@ -34,13 +33,9 @@ ConvertToPhysicalBuffer ( > > IN UINT32 Size > > ) > > { > > - if (gFlashLibRuntime) { > > - ASSERT (VirtualPtr != NULL); > > - CopyMem (gFlashLibVirtualBuffer, VirtualPtr, Size); > > - return gFlashLibPhysicalBuffer; > > - } > > - > > - return VirtualPtr; > > + ASSERT (VirtualPtr != NULL); > > + CopyMem (gFlashLibVirtualBuffer, VirtualPtr, Size); > > + return gFlashLibPhysicalBuffer; > > } > > > > /** > > diff --git > > a/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.c > > b/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.c > > index 2dcd13e08146..14cef8e17ece 100644 > > --- a/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.c > > +++ b/Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.c > > @@ -35,8 +35,6 @@ FlashLibAddressChangeEvent ( > > { > > gRT->ConvertPointer (0x0, (VOID **)&gFlashLibVirtualBuffer); > > gRT->ConvertPointer (0x0, (VOID **)&mMmCommunicationProtocol); > > - > > - gFlashLibRuntime = TRUE; > > } > > > > /** > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120430): https://edk2.groups.io/g/devel/message/120430 Mute This Topic: https://groups.io/mt/107889187/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-