diff --git a/Legacy/BootPlatform/EfiLdr/Debug.c b/Legacy/BootPlatform/EfiLdr/Debug.c new file mode 100644 index 00000000..e91549ac --- /dev/null +++ b/Legacy/BootPlatform/EfiLdr/Debug.c @@ -0,0 +1,79 @@ +/*++ + +Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + Debug.c + +Abstract: + +Revision History: + +--*/ +#include "EfiLdr.h" +#include "Debug.h" + +UINT8 *mCursor; +UINT8 mHeaderIndex = 10; + +VOID +PrintHeader ( + CHAR8 Char + ) +{ + *(UINT8 *)(UINTN)(0x000b8000 + mHeaderIndex) = Char; + mHeaderIndex += 2; +} + +VOID +ClearScreen ( + VOID + ) +{ + UINT32 Index; + + mCursor = (UINT8 *)(UINTN)(0x000b8000 + 160); + for (Index = 0; Index < 80 * 49; Index++) { + *mCursor = ' '; + mCursor += 2; + } + + mCursor = (UINT8 *)(UINTN)(0x000b8000 + 160); +} + +VOID +EFIAPI +PrintString ( + IN CONST CHAR8 *FormatString, + ... + ) +{ + UINTN Index; + CHAR8 PrintBuffer[256]; + VA_LIST Marker; + + VA_START (Marker, FormatString); + AsciiVSPrint (PrintBuffer, sizeof (PrintBuffer), FormatString, Marker); + VA_END (Marker); + + for (Index = 0; PrintBuffer[Index] != 0; Index++) { + if (PrintBuffer[Index] == '\n') { + mCursor = (UINT8 *)(UINTN)(0xb8000 + (((((UINTN)mCursor - 0xb8000) + 160) / 160) * 160)); + } else { + *mCursor = (UINT8)PrintBuffer[Index]; + mCursor += 2; + } + } + + // + // All information also output to serial port. + // + SerialPortWrite ((UINT8 *)PrintBuffer, Index); +} diff --git a/Legacy/BootPlatform/EfiLdr/Debug.h b/Legacy/BootPlatform/EfiLdr/Debug.h new file mode 100644 index 00000000..9897aed2 --- /dev/null +++ b/Legacy/BootPlatform/EfiLdr/Debug.h @@ -0,0 +1,44 @@ +/*++ + +Copyright (c) 2006, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + Debug.h + +Abstract: + +Revision History: + +--*/ + +#ifndef _EFILDR_DEBUG_H_ +#define _EFILDR_DEBUG_H_ + +#include +#include + +VOID +PrintHeader ( + CHAR8 Char + ); + +VOID +EFIAPI +PrintString ( + IN CONST CHAR8 *FormatString, + ... + ); + +VOID +ClearScreen ( + VOID + ); + +#endif diff --git a/Legacy/BootPlatform/EfiLdr/EfiLdr.h b/Legacy/BootPlatform/EfiLdr/EfiLdr.h index 05a076e7..fd833437 100644 --- a/Legacy/BootPlatform/EfiLdr/EfiLdr.h +++ b/Legacy/BootPlatform/EfiLdr/EfiLdr.h @@ -28,8 +28,6 @@ Revision History: #include #include #include -#include -#include #define INT15_E820_AddressRangeMemory 1 #define INT15_E820_AddressRangeReserved 2 diff --git a/Legacy/BootPlatform/EfiLdr/EfiLdr.inf b/Legacy/BootPlatform/EfiLdr/EfiLdr.inf index 303cd573..6b50c35d 100644 --- a/Legacy/BootPlatform/EfiLdr/EfiLdr.inf +++ b/Legacy/BootPlatform/EfiLdr/EfiLdr.inf @@ -38,9 +38,11 @@ UefiImageOnlyFvLib [Sources] + Debug.h Support.h EfiLdr.h EfiLoader.c + Debug.c PeLoader.c Support.c LzmaDecompress.h diff --git a/Legacy/BootPlatform/EfiLdr/EfiLoader.c b/Legacy/BootPlatform/EfiLdr/EfiLoader.c index 9f41d198..2bbd1749 100644 --- a/Legacy/BootPlatform/EfiLdr/EfiLoader.c +++ b/Legacy/BootPlatform/EfiLdr/EfiLoader.c @@ -20,6 +20,7 @@ Revision History: #include "EfiLdr.h" #include "Support.h" +#include "Debug.h" #include "LzmaDecompress.h" EFILDR_LOADED_IMAGE DxeCoreImage; @@ -52,7 +53,7 @@ EfiLoader ( #if 0 SerialPortInitialize (); - SerialPortWrite ((UINT8 *)"EfiLdr\r\n", L_STR_LEN ("EfiLdr\r\n")); + PrintString ("EfiLdr\n"); #endif // diff --git a/Legacy/BootPlatform/EfiLdr/PeLoader.c b/Legacy/BootPlatform/EfiLdr/PeLoader.c index 75ca7606..bcf3e3d1 100644 --- a/Legacy/BootPlatform/EfiLdr/PeLoader.c +++ b/Legacy/BootPlatform/EfiLdr/PeLoader.c @@ -20,6 +20,7 @@ Revision History: --*/ #include "EfiLdr.h" +#include "Debug.h" #include "Support.h" #include