]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/PrePi: Moved Exception Vector Table to ArmPkg/DebugAgentBaseLib
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 28 Sep 2012 09:54:13 +0000 (09:54 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 28 Sep 2012 09:54:13 +0000 (09:54 +0000)
In case a DebugAgent library is supported for a specific debugger, we would
expect the exception be caught by DebugAgentLib.
The DebugAgentBaseLib exposes the cause of the exception to the user in the
Serial Terminal.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13766 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/PrePi/Exception.S [deleted file]
ArmPlatformPkg/PrePi/Exception.asm [deleted file]
ArmPlatformPkg/PrePi/PeiMPCore.inf
ArmPlatformPkg/PrePi/PeiUniCore.inf
ArmPlatformPkg/PrePi/PrePi.c
ArmPlatformPkg/PrePi/PrePi.h

diff --git a/ArmPlatformPkg/PrePi/Exception.S b/ArmPlatformPkg/PrePi/Exception.S
deleted file mode 100755 (executable)
index bd59682..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//\r
-//  Copyright (c) 2011, ARM Limited. All rights reserved.\r
-//  \r
-# This program and the accompanying materials                          \r
-#  are licensed and made available under the terms and conditions of the BSD License         \r
-#  which accompanies this distribution.  The full text of the license may be found at        \r
-#  http://opensource.org/licenses/bsd-license.php\r
-#\r
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-#\r
-#\r
-\r
-#include <AsmMacroIoLib.h>\r
-#include <Base.h>\r
-#include <AutoGen.h>\r
-\r
-#start of the code section\r
-.text\r
-.align 5\r
-\r
-# IMPORT\r
-GCC_ASM_IMPORT(PrePiCommonExceptionEntry)\r
-\r
-# EXPORT\r
-GCC_ASM_EXPORT(PrePiVectorTable)\r
-\r
-//============================================================\r
-//Default Exception Handlers\r
-//============================================================\r
-  \r
-ASM_PFX(PrePiVectorTable):\r
-  b _DefaultResetHandler\r
-  b _DefaultUndefined\r
-  b _DefaultSWI\r
-  b _DefaultPrefetchAbort\r
-  b _DefaultDataAbort\r
-  b _DefaultReserved\r
-  b _DefaultIrq\r
-  b _DefaultFiq\r
-\r
-//\r
-// Default Exception handlers: There is no plan to return from any of these exceptions.\r
-// No context saving at all.\r
-//\r
-_DefaultResetHandler:\r
-  mov  r1, lr\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #0\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultUndefined:\r
-  sub  r1, LR, #4\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #1\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultSWI:\r
-  sub  r1, LR, #4\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #2\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultPrefetchAbort:\r
-  sub  r1, LR, #4\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #3\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultDataAbort:\r
-  sub  r1, LR, #8\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #4\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultReserved:\r
-  mov  r1, lr\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #5\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultIrq:\r
-  sub  r1, LR, #4\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #6\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
-_DefaultFiq:\r
-  sub  r1, LR, #4\r
-  # Switch to SVC for common stack\r
-  cps  #0x13\r
-  mov  r0, #7\r
-  blx   ASM_PFX(PrePiCommonExceptionEntry)\r
-\r
diff --git a/ArmPlatformPkg/PrePi/Exception.asm b/ArmPlatformPkg/PrePi/Exception.asm
deleted file mode 100644 (file)
index 26f41d1..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-//  Copyright (c) 2011, ARM Limited. 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.             
-//
-//
-
-#include <AsmMacroIoLib.h>
-#include <Base.h>
-#include <AutoGen.h>
-
-  IMPORT  PrePiCommonExceptionEntry
-  EXPORT  PrePiVectorTable
-  
-  PRESERVE8
-  AREA    PrePeiCoreException, CODE, READONLY, CODEALIGN, ALIGN=5
-
-//============================================================
-//Default Exception Handlers
-//============================================================
-//TODO: there should be better way to handle the exceptions during the early stage. At the moment they are spinning in infinite loop
-  
-PrePiVectorTable
-  b _DefaultResetHandler
-  b _DefaultUndefined
-  b _DefaultSWI
-  b _DefaultPrefetchAbort
-  b _DefaultDataAbort
-  b _DefaultReserved
-  b _DefaultIrq
-  b _DefaultFiq
-
-//
-// Default Exception handlers: There is no plan to return from any of these exceptions.
-// No context saving at all.
-//
-_DefaultResetHandler
-   mov  r1, lr
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #0
-   blx   PrePiCommonExceptionEntry
-
-_DefaultUndefined
-   sub  r1, LR, #4
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #1
-   blx   PrePiCommonExceptionEntry
-
-_DefaultSWI
-   sub  r1, LR, #4
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #2
-   blx   PrePiCommonExceptionEntry
-
-_DefaultPrefetchAbort
-   sub  r1, LR, #4
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #3
-   blx   PrePiCommonExceptionEntry
-
-_DefaultDataAbort
-   sub  r1, LR, #8
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #4
-   blx   PrePiCommonExceptionEntry
-
-_DefaultReserved
-   mov  r1, lr
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #5
-   blx   PrePiCommonExceptionEntry
-   
-_DefaultIrq
-   sub  r1, LR, #4
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #6
-   blx   PrePiCommonExceptionEntry
-
-_DefaultFiq
-   sub  r1, LR, #4
-   cps       #0x13                     ; Switch to SVC for common stack
-   mov  r0, #7
-   blx   PrePiCommonExceptionEntry
-
-  END
index df89dfd3a7c97f474dd9f10fa1cc8dc5fc2eb15e..cd61b7a2fcd5e6b7e430d9098add86d232f57106 100755 (executable)
@@ -23,8 +23,6 @@
   PrePi.c\r
   ModuleEntryPoint.S   | GCC\r
   ModuleEntryPoint.asm | RVCT\r
-  Exception.S | GCC\r
-  Exception.asm | RVCT\r
   MainMPCore.c\r
   \r
 [Packages]\r
index 1a59fdc086ec8b180f8c3ef0edcf3a54b5d51d77..f28768ecf8b0b602f061f4fb3de04514dc8154b5 100755 (executable)
@@ -23,8 +23,6 @@
   PrePi.c\r
   ModuleEntryPoint.S   | GCC\r
   ModuleEntryPoint.asm | RVCT\r
-  Exception.asm | RVCT\r
-  Exception.S | GCC\r
   MainUniCore.c\r
   \r
 [Packages]\r
index c393812439a69c8b7d532fa3b5752d98e6ddce46..c3fca90ca9826bb81679e14e1adf26f89b0224bf 100755 (executable)
 // Not used when PrePi in run in XIP mode\r
 UINTN mGlobalVariableBase = 0;\r
 \r
-VOID\r
-PrePiCommonExceptionEntry (\r
-  IN UINT32 Entry,\r
-  IN UINT32 LR\r
-  );\r
-\r
 EFI_STATUS\r
 EFIAPI\r
 ExtractGuidedSectionLibConstructor (\r
@@ -256,10 +250,6 @@ CEntryPoint (
     }\r
   }\r
   \r
-  // Write VBAR - The Vector table must be 32-byte aligned\r
-  ASSERT (((UINT32)PrePiVectorTable & ((1 << 5)-1)) == 0);\r
-  ArmWriteVBar ((UINT32)PrePiVectorTable);\r
-\r
   // If not primary Jump to Secondary Main\r
   if (IS_PRIMARY_CORE(MpId)) {\r
     // Goto primary Main.\r
@@ -272,44 +262,3 @@ CEntryPoint (
   ASSERT (FALSE);\r
 }\r
 \r
-VOID\r
-PrePiCommonExceptionEntry (\r
-  IN UINT32 Entry,\r
-  IN UINT32 LR\r
-  )\r
-{\r
-  CHAR8           Buffer[100];\r
-  UINTN           CharCount;\r
-\r
-  switch (Entry) {\r
-  case 0:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reset Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 1:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Undefined Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 2:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"SWI Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 3:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"PrefetchAbort Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 4:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"DataAbort Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 5:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reserved Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 6:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"IRQ Exception at 0x%X\n\r",LR);\r
-    break;\r
-  case 7:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"FIQ Exception at 0x%X\n\r",LR);\r
-    break;\r
-  default:\r
-    CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Unknown Exception at 0x%X\n\r",LR);\r
-    break;\r
-  }\r
-  SerialPortWrite ((UINT8 *) Buffer, CharCount);\r
-  while(1);\r
-}\r
index 3e976fadfb52754d27a2034985bc34f97f463aa7..deb88516887999ff476b28f47e616d18bb0ede3f 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 *\r
 *  This program and the accompanying materials\r
 *  are licensed and made available under the terms and conditions of the BSD License\r
 \r
 #define SerialPrint(txt)  SerialPortWrite (txt, AsciiStrLen(txt)+1);\r
 \r
-// Vector Table for PrePi Phase\r
-VOID\r
-PrePiVectorTable (\r
-  VOID\r
-  );\r
-\r
 RETURN_STATUS\r
 EFIAPI\r
 TimerConstructor (\r