diff options
Diffstat (limited to 'ArmPlatformPkg')
-rw-r--r-- | ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c | 3 | ||||
-rw-r--r-- | ArmPlatformPkg/PrePeiCore/PrePeiCore.c | 29 | ||||
-rw-r--r-- | ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf | 1 | ||||
-rw-r--r-- | ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf | 1 | ||||
-rw-r--r-- | ArmPlatformPkg/Sec/Sec.c | 50 | ||||
-rw-r--r-- | ArmPlatformPkg/Sec/Sec.inf | 1 |
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 |