Thanks Ted for updating patch! Reviewed-by: Chasel Chiu <chasel.c...@intel.com>
> -----Original Message----- > From: Kuo, Ted <ted....@intel.com> > Sent: Monday, March 14, 2022 10:33 AM > To: devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Zeng, Star <star.z...@intel.com>; S, Ashraf > Ali <ashraf.al...@intel.com> > Subject: [edk2-devel][PATCH v2] IntelFsp2Pkg: BaseFspDebugLibSerialPort > Support for X64 > > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3833 > Add BaseFspDebugLibSerialPort Support for X64. > > Cc: Chasel Chiu <chasel.c...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > Cc: Ashraf Ali S <ashraf.al...@intel.com> > Cc: Ted Kuo <ted....@intel.com> > Signed-off-by: Ted Kuo <ted....@intel.com> > --- > .../BaseFspDebugLibSerialPort.inf | 5 ++- > .../Library/BaseFspDebugLibSerialPort/DebugLib.c | 39 > +++++++++++++--------- > .../BaseFspDebugLibSerialPort/X64/FspDebug.nasm | 25 ++++++++++++++ > 3 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 > IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/X64/FspDebug.nasm > > diff --git > a/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.i > nf > b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.i > nf > index 14b1899e6c..395def57c3 100644 > --- > a/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.i > nf > +++ b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSeri > +++ alPort.inf > @@ -16,7 +16,7 @@ > LIBRARY_CLASS = DebugLib > > # > -# VALID_ARCHITECTURES = IA32 > +# VALID_ARCHITECTURES = IA32 X64 > # > > [Sources] > @@ -25,6 +25,9 @@ > [Sources.Ia32] > Ia32/FspDebug.nasm > > +[Sources.X64] > + X64/FspDebug.nasm > + > [Packages] > MdePkg/MdePkg.dec > IntelFsp2Pkg/IntelFsp2Pkg.dec > diff --git a/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/DebugLib.c > b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/DebugLib.c > index c8824cde7f..cb2317bfb2 100644 > --- a/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/DebugLib.c > +++ b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/DebugLib.c > @@ -33,7 +33,7 @@ VA_LIST mVaListNull; > > @return StackFramePointer stack frame pointer of function call. > **/ > -UINT32 * > +UINTN * > EFIAPI > GetStackFramePointer ( > VOID > @@ -193,13 +193,13 @@ DebugBPrint ( > **/ > VOID > FillHex ( > - UINT32 Value, > + UINTN Value, > CHAR8 *Buffer > ) > { > INTN Idx; > > - for (Idx = 7; Idx >= 0; Idx--) { > + for (Idx = (sizeof (UINTN) * 2) - 1; Idx >= 0; Idx--) { > Buffer[Idx] = mHexTable[Value & 0x0F]; > Value >>= 4; > } > @@ -228,26 +228,35 @@ DebugAssertInternal ( > ) > { > CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH]; > - UINT32 *Frame; > + UINTN *Frame; > > - Frame = (UINT32 *)GetStackFramePointer (); > + Frame = (UINTN *)GetStackFramePointer (); > > // > // Generate the ASSERT() message in Ascii format > // > - AsciiStrnCpyS ( > - Buffer, > - sizeof (Buffer) / sizeof (CHAR8), > - "-> EBP:0x00000000 EIP:0x00000000\n", > - sizeof (Buffer) / sizeof (CHAR8) - 1 > - ); > + if (sizeof (UINTN) == sizeof (UINT32)) { > + AsciiStrnCpyS ( > + Buffer, > + sizeof (Buffer) / sizeof (CHAR8), > + "-> EBP:0x00000000 EIP:0x00000000\n", > + sizeof (Buffer) / sizeof (CHAR8) - 1 > + ); > + } else { > + AsciiStrnCpyS ( > + Buffer, > + sizeof (Buffer) / sizeof (CHAR8), > + "-> RBP:0x0000000000000000 RIP:0x0000000000000000\n", > + sizeof (Buffer) / sizeof (CHAR8) - 1 > + ); > + } > SerialPortWrite ((UINT8 *)"ASSERT DUMP:\n", 13); > while (Frame != NULL) { > - FillHex ((UINT32)Frame, Buffer + 9); > - FillHex (Frame[1], Buffer + 9 + 8 + 8); > + FillHex ((UINTN)Frame, Buffer + 9); > + FillHex (Frame[1], Buffer + 9 + (sizeof (UINTN) * 2) + 8); > SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer)); > - if ((Frame[0] > (UINT32)Frame) && (Frame[0] < (UINT32)Frame + > 0x00100000)) { > - Frame = (UINT32 *)Frame[0]; > + if ((Frame[0] > (UINTN)Frame) && (Frame[0] < (UINTN)Frame + 0x00100000)) > { > + Frame = (UINTN *)Frame[0]; > } else { > Frame = NULL; > } > diff --git > a/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/X64/FspDebug.nasm > b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/X64/FspDebug.nasm > new file mode 100644 > index 0000000000..6cf0f0af8b > --- /dev/null > +++ b/IntelFsp2Pkg/Library/BaseFspDebugLibSerialPort/X64/FspDebug.nasm > @@ -0,0 +1,25 @@ > +;---------------------------------------------------------------------- > +-------- > +; > +; Copyright (c) 2022, Intel Corporation. All rights reserved.<BR> ; > +SPDX-License-Identifier: BSD-2-Clause-Patent ; ; Abstract: > +; > +; FSP Debug functions > +; > +;---------------------------------------------------------------------- > +-------- > + > + SECTION .text > + > +;---------------------------------------------------------------------- > +-------- > +; UINT32 * > +; EFIAPI > +; GetStackFramePointer ( > +; VOID > +; ); > +;---------------------------------------------------------------------- > +-------- > +global ASM_PFX(GetStackFramePointer) > +ASM_PFX(GetStackFramePointer): > + mov rax, rbp > + ret > + > -- > 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#87556): https://edk2.groups.io/g/devel/message/87556 Mute This Topic: https://groups.io/mt/89765496/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-