ArmPlatformPkg: Moved ARMv7 specific files to a 'Arm' subdirectory
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14182 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
62
ArmPlatformPkg/PrePeiCore/Arm/ArchPrePeiCore.c
Normal file
62
ArmPlatformPkg/PrePeiCore/Arm/ArchPrePeiCore.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/** @file
|
||||
* Main file supporting the transition to PEI Core in Normal World for Versatile Express
|
||||
*
|
||||
* Copyright (c) 2012, 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 <Library/PrintLib.h>
|
||||
#include <Library/SerialPortLib.h>
|
||||
|
||||
#include "PrePeiCore.h"
|
||||
|
||||
VOID
|
||||
PeiCommonExceptionEntry (
|
||||
IN UINT32 Entry,
|
||||
IN UINTN LR
|
||||
)
|
||||
{
|
||||
CHAR8 Buffer[100];
|
||||
UINTN CharCount;
|
||||
|
||||
switch (Entry) {
|
||||
case 0:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reset Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 1:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Undefined Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 2:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"SWI Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 3:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"PrefetchAbort Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 4:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"DataAbort Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 5:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reserved Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 6:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"IRQ Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 7:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"FIQ Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
default:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Unknown Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
}
|
||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||
while(1);
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* Main file supporting the transition to PEI Core in Normal World for Versatile Express
|
||||
*
|
||||
* Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||
* Copyright (c) 2011-2012, 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
|
||||
@@ -15,9 +15,7 @@
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/DebugAgentLib.h>
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/SerialPortLib.h>
|
||||
|
||||
#include <Ppi/ArmGlobalVariable.h>
|
||||
|
||||
@@ -74,10 +72,10 @@ CEntryPoint (
|
||||
)
|
||||
{
|
||||
//Clean Data cache
|
||||
ArmCleanInvalidateDataCache();
|
||||
ArmCleanInvalidateDataCache ();
|
||||
|
||||
//Invalidate instruction cache
|
||||
ArmInvalidateInstructionCache();
|
||||
ArmInvalidateInstructionCache ();
|
||||
|
||||
// Enable Instruction & Data caches
|
||||
ArmEnableDataCache ();
|
||||
@@ -88,9 +86,9 @@ CEntryPoint (
|
||||
// as Non-secure interface is already enabled in Secure world.
|
||||
//
|
||||
|
||||
// Write VBAR - The Vector table must be 32-byte aligned
|
||||
ASSERT(((UINT32)PeiVectorTable & ((1 << 5)-1)) == 0);
|
||||
ArmWriteVBar((UINT32)PeiVectorTable);
|
||||
// Write VBAR - The Exception Vector table must be aligned to its requirement
|
||||
ASSERT (((UINTN)PeiVectorTable & ARM_VECTOR_TABLE_ALIGNMENT) == 0);
|
||||
ArmWriteVBar ((UINTN)PeiVectorTable);
|
||||
|
||||
//Note: The MMU will be enabled by MemoryPeim. Only the primary core will have the MMU on.
|
||||
|
||||
@@ -162,44 +160,3 @@ PrePeiCoreGetGlobalVariableMemory (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
VOID
|
||||
PeiCommonExceptionEntry (
|
||||
IN UINT32 Entry,
|
||||
IN UINT32 LR
|
||||
)
|
||||
{
|
||||
CHAR8 Buffer[100];
|
||||
UINTN CharCount;
|
||||
|
||||
switch (Entry) {
|
||||
case 0:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reset Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 1:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Undefined Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 2:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"SWI Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 3:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"PrefetchAbort Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 4:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"DataAbort Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 5:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Reserved Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 6:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"IRQ Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
case 7:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"FIQ Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
default:
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"Unknown Exception at 0x%X\n\r",LR);
|
||||
break;
|
||||
}
|
||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||
while(1);
|
||||
}
|
||||
|
@@ -74,4 +74,10 @@ SecondaryMain (
|
||||
IN UINTN MpId
|
||||
);
|
||||
|
||||
VOID
|
||||
PeiCommonExceptionEntry (
|
||||
IN UINT32 Entry,
|
||||
IN UINTN LR
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@@ -20,16 +20,19 @@
|
||||
MODULE_TYPE = SEC
|
||||
VERSION_STRING = 1.0
|
||||
|
||||
[Sources.ARM]
|
||||
PrePeiCoreEntryPoint.asm | RVCT
|
||||
PrePeiCoreEntryPoint.S | GCC
|
||||
PrePeiCore.c
|
||||
[Sources.common]
|
||||
MainMPCore.c
|
||||
SwitchStack.asm | RVCT
|
||||
SwitchStack.S | GCC
|
||||
Exception.asm | RVCT
|
||||
Exception.S | GCC
|
||||
|
||||
PrePeiCore.c
|
||||
|
||||
[Sources.ARM]
|
||||
Arm/ArchPrePeiCore.c
|
||||
Arm/PrePeiCoreEntryPoint.asm | RVCT
|
||||
Arm/PrePeiCoreEntryPoint.S | GCC
|
||||
Arm/SwitchStack.asm | RVCT
|
||||
Arm/SwitchStack.S | GCC
|
||||
Arm/Exception.asm | RVCT
|
||||
Arm/Exception.S | GCC
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
|
@@ -20,15 +20,18 @@
|
||||
MODULE_TYPE = SEC
|
||||
VERSION_STRING = 1.0
|
||||
|
||||
[Sources.ARM]
|
||||
PrePeiCoreEntryPoint.asm | RVCT
|
||||
PrePeiCoreEntryPoint.S | GCC
|
||||
[Sources.common]
|
||||
PrePeiCore.c
|
||||
MainUniCore.c
|
||||
SwitchStack.asm | RVCT
|
||||
SwitchStack.S | GCC
|
||||
Exception.asm | RVCT
|
||||
Exception.S | GCC
|
||||
|
||||
[Sources.ARM]
|
||||
Arm/ArchPrePeiCore.c
|
||||
Arm/PrePeiCoreEntryPoint.asm | RVCT
|
||||
Arm/PrePeiCoreEntryPoint.S | GCC
|
||||
Arm/SwitchStack.asm | RVCT
|
||||
Arm/SwitchStack.S | GCC
|
||||
Arm/Exception.asm | RVCT
|
||||
Arm/Exception.S | GCC
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
Reference in New Issue
Block a user