summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-31 12:09:31 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-31 12:09:31 +0000
commit2637d1ef354a4db0e3fc676a8985ee40b5401eba (patch)
tree67c9a6f689cb7cce835952c8953fbfe24c221381
parente100fa8c1e5218865ff6f2c5dd646c2e6ceca49d (diff)
downloadedk2-platforms-2637d1ef354a4db0e3fc676a8985ee40b5401eba.tar.xz
ArmPlatformPkg: Use Serial print function to print out non debugging information
Exception errors and early print statements must be also print out in Release builds. Replace the DEBUG() macro by the SerialPortWrite() function. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11474 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c3
-rw-r--r--ArmPlatformPkg/PrePeiCore/PrePeiCore.c29
-rw-r--r--ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf1
-rw-r--r--ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf1
-rw-r--r--ArmPlatformPkg/Sec/Sec.c50
-rw-r--r--ArmPlatformPkg/Sec/Sec.inf1
6 files changed, 57 insertions, 28 deletions
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
index 497e0da066..69091d1119 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
@@ -18,6 +18,9 @@
#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
#include <Drivers/PL341Dmc.h>
+#include <Library/SerialPortLib.h>
+
+#define SerialPrint(txt) SerialPortWrite (txt, AsciiStrLen(txt)+1);
// DDR2 timings
struct pl341_dmc_config ddr_timings = {
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c
index 51c09223dc..40a0e69bc0 100644
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c
@@ -113,35 +113,44 @@ SecTemporaryRamSupport (
return EFI_SUCCESS;
}
-VOID PeiCommonExceptionEntry(UINT32 Entry, UINT32 LR) {
+VOID
+PeiCommonExceptionEntry (
+ IN UINT32 Entry,
+ IN UINT32 LR
+ )
+{
+ CHAR8 Buffer[100];
+ UINTN CharCount;
+
switch (Entry) {
case 0:
- DEBUG((EFI_D_ERROR,"Reset Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reset Exception at 0x%X\n\r",LR);
break;
case 1:
- DEBUG((EFI_D_ERROR,"Undefined Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Undefined Exception at 0x%X\n\r",LR);
break;
case 2:
- DEBUG((EFI_D_ERROR,"SWI Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"SWI Exception at 0x%X\n\r",LR);
break;
case 3:
- DEBUG((EFI_D_ERROR,"PrefetchAbort Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"PrefetchAbort Exception at 0x%X\n\r",LR);
break;
case 4:
- DEBUG((EFI_D_ERROR,"DataAbort Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"DataAbort Exception at 0x%X\n\r",LR);
break;
case 5:
- DEBUG((EFI_D_ERROR,"Reserved Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reserved Exception at 0x%X\n\r",LR);
break;
case 6:
- DEBUG((EFI_D_ERROR,"IRQ Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"IRQ Exception at 0x%X\n\r",LR);
break;
case 7:
- DEBUG((EFI_D_ERROR,"FIQ Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"FIQ Exception at 0x%X\n\r",LR);
break;
default:
- DEBUG((EFI_D_ERROR,"Unknown Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Unknown Exception at 0x%X\n\r",LR);
break;
}
+ SerialPortWrite ((UINT8 *) Buffer, CharCount);
while(1);
}
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
index 3f133d270a..ed85234b36 100644
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
@@ -45,6 +45,7 @@
ArmPlatformLib
ArmMPCoreMailBoxLib
PL390GicNonSecLib
+ SerialPortLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
index 3144a7a460..a7bf3bd986 100644
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
@@ -43,6 +43,7 @@
IoLib
ArmLib
ArmPlatformLib
+ SerialPortLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid
diff --git a/ArmPlatformPkg/Sec/Sec.c b/ArmPlatformPkg/Sec/Sec.c
index 2ae01d8e54..4de49329d4 100644
--- a/ArmPlatformPkg/Sec/Sec.c
+++ b/ArmPlatformPkg/Sec/Sec.c
@@ -15,6 +15,7 @@
#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
+#include <Library/PrintLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/ArmLib.h>
@@ -24,6 +25,8 @@
#include <Library/SerialPortLib.h>
#include <Library/ArmPlatformLib.h>
+#define SerialPrint(txt) SerialPortWrite (txt, AsciiStrLen(txt)+1);
+
extern VOID *monitor_vector_table;
VOID ArmSetupGicNonSecure (
@@ -58,6 +61,9 @@ CEntryPoint (
IN UINTN CoreId
)
{
+ CHAR8 Buffer[100];
+ UINTN CharCount;
+
// Primary CPU clears out the SCU tag RAMs, secondaries wait
if (CoreId == 0) {
if (FixedPcdGet32(PcdMPCoreSupport)) {
@@ -67,8 +73,10 @@ CEntryPoint (
// SEC phase needs to run library constructors by hand. This assumes we are linked against the SerialLib
// In non SEC modules the init call is in autogenerated code.
SerialPortInitialize ();
+
// Start talking
- DEBUG ((EFI_D_ERROR, "UART Enabled\n"));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"UEFI firmware built at %a on %a\n\r",__TIME__, __DATE__);
+ SerialPortWrite ((UINT8 *) Buffer, CharCount);
// Now we've got UART, make the check:
// - The Vector table must be 32-byte aligned
@@ -172,7 +180,7 @@ CEntryPoint (
ArmWriteScr(SCR_NS | SCR_FW | SCR_AW);
} else {
if(0 == CoreId){
- DEBUG ((EFI_D_ERROR, "Trust Zone Configuration is disabled\n"));
+ SerialPrint ("Trust Zone Configuration is disabled\n\r");
}
//Trustzone is not enabled, just enable the Distributor and CPU interface
@@ -189,11 +197,12 @@ CEntryPoint (
if (CoreId == 0) {
UINTN* StartAddress = (UINTN*)PcdGet32(PcdEmbeddedFdBaseAddress);
- DEBUG ((EFI_D_ERROR, "Waiting for firmware at 0x%08X ...\n",StartAddress));
-
// Patch the DRAM to make an infinite loop at the start address
*StartAddress = 0xEAFFFFFE; // opcode for while(1)
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Waiting for firmware at 0x%08X ...\n\r",StartAddress);
+ SerialPortWrite ((UINT8 *) Buffer, CharCount);
+
// To enter into Non Secure state, we need to make a return from exception
return_from_exception(PcdGet32(PcdEmbeddedFdBaseAddress));
} else {
@@ -208,10 +217,6 @@ CEntryPoint (
return_from_exception((UINTN)NonSecureWaitForFirmware);
}
} else {
- if (CoreId == 0) {
- DEBUG ((EFI_D_ERROR, "Standalone Firmware\n"));
- }
-
// To enter into Non Secure state, we need to make a return from exception
return_from_exception(PcdGet32(PcdEmbeddedFdBaseAddress));
}
@@ -241,35 +246,44 @@ VOID NonSecureWaitForFirmware() {
ASSERT (FALSE);
}
-VOID SecCommonExceptionEntry(UINT32 Entry, UINT32 LR) {
+VOID
+SecCommonExceptionEntry (
+ IN UINT32 Entry,
+ IN UINT32 LR
+ )
+{
+ CHAR8 Buffer[100];
+ UINTN CharCount;
+
switch (Entry) {
case 0:
- DEBUG((EFI_D_ERROR,"Reset Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reset Exception at 0x%X\n\r",LR);
break;
case 1:
- DEBUG((EFI_D_ERROR,"Undefined Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Undefined Exception at 0x%X\n\r",LR);
break;
case 2:
- DEBUG((EFI_D_ERROR,"SWI Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"SWI Exception at 0x%X\n\r",LR);
break;
case 3:
- DEBUG((EFI_D_ERROR,"PrefetchAbort Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"PrefetchAbort Exception at 0x%X\n\r",LR);
break;
case 4:
- DEBUG((EFI_D_ERROR,"DataAbort Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"DataAbort Exception at 0x%X\n\r",LR);
break;
case 5:
- DEBUG((EFI_D_ERROR,"Reserved Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reserved Exception at 0x%X\n\r",LR);
break;
case 6:
- DEBUG((EFI_D_ERROR,"IRQ Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"IRQ Exception at 0x%X\n\r",LR);
break;
case 7:
- DEBUG((EFI_D_ERROR,"FIQ Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"FIQ Exception at 0x%X\n\r",LR);
break;
default:
- DEBUG((EFI_D_ERROR,"Unknown Exception at 0x%X\n",LR));
+ CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Unknown Exception at 0x%X\n\r",LR);
break;
}
+ SerialPortWrite ((UINT8 *) Buffer, CharCount);
while(1);
}
diff --git a/ArmPlatformPkg/Sec/Sec.inf b/ArmPlatformPkg/Sec/Sec.inf
index 7180e1a5ad..983d87198e 100644
--- a/ArmPlatformPkg/Sec/Sec.inf
+++ b/ArmPlatformPkg/Sec/Sec.inf
@@ -44,6 +44,7 @@
ArmPlatformLib
L2X0CacheLib
PL390GicSecLib
+ SerialPortLib
[FeaturePcd]
gArmPlatformTokenSpaceGuid.PcdStandalone