diff options
-rw-r--r-- | ArmPkg/Include/AsmMacroIoLibV8.h | 24 | ||||
-rw-r--r-- | ArmPkg/Library/ArmLib/AArch64/AArch64Support.S | 3 | ||||
-rw-r--r-- | ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S | 4 | ||||
-rw-r--r-- | ArmPlatformPkg/PrePeiCore/AArch64/Exception.S | 5 | ||||
-rw-r--r-- | ArmPlatformPkg/PrePeiCore/AArch64/PrePeiCoreEntryPoint.S | 10 |
5 files changed, 17 insertions, 29 deletions
diff --git a/ArmPkg/Include/AsmMacroIoLibV8.h b/ArmPkg/Include/AsmMacroIoLibV8.h index 78a033cb4f..5ab1b5723e 100644 --- a/ArmPkg/Include/AsmMacroIoLibV8.h +++ b/ArmPkg/Include/AsmMacroIoLibV8.h @@ -106,24 +106,24 @@ _InitializePrimaryStackEnd: // Provide the Macro with a safe temp xreg to use.
#define EL1_OR_EL2(SAFE_XREG) \
mrs SAFE_XREG, CurrentEL ;\
- cmp SAFE_XREG, #0x4 ;\
- b.eq 1f ;\
- cmp SAFE_XREG, #0x8 ;\
- b.eq 2f ;\
- b dead ;// We should never get here.
+ cmp SAFE_XREG, #0x8 ;\
+ b.eq 2f ;\
+ cmp SAFE_XREG, #0x4 ;\
+ b.ne . ;// We should never get here
+// EL1 code starts here
// CurrentEL : 0xC = EL3; 8 = EL2; 4 = EL1
// This only selects between EL1 and EL2 and EL3, else we die.
// Provide the Macro with a safe temp xreg to use.
-#define EL1_OR_EL2_OR_EL3(SAFE_XREG) \
+#define EL1_OR_EL2_OR_EL3(SAFE_XREG) \
mrs SAFE_XREG, CurrentEL ;\
+ cmp SAFE_XREG, #0xC ;\
+ b.eq 3f ;\
+ cmp SAFE_XREG, #0x8 ;\
+ b.eq 2f ;\
cmp SAFE_XREG, #0x4 ;\
- b.eq 1f ;\
- cmp SAFE_XREG, #0x8 ;\
- b.eq 2f ;\
- cmp SAFE_XREG, #0xC ;\
- b.eq 3f ;\
- b dead ;// We should never get here.
+ b.ne . ;// We should never get here
+// EL1 code starts here
#else
diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index 5901ffacd4..66c310bb31 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -503,7 +503,4 @@ ASM_PFX(ArmReadCurrentEL): mrs x0, CurrentEL
ret
-dead:
- b dead
-
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S b/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S index cf2ec76be9..5dd3fca5e9 100644 --- a/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S +++ b/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S @@ -1,7 +1,7 @@ #------------------------------------------------------------------------------
#
# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-# Copyright (c) 2011 - 2013, ARM Limited. All rights reserved.
+# Copyright (c) 2011 - 2014, 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
@@ -196,7 +196,5 @@ ASM_PFX(ArmCallSEV): sev
ret
-dead:
- b dead
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmPlatformPkg/PrePeiCore/AArch64/Exception.S b/ArmPlatformPkg/PrePeiCore/AArch64/Exception.S index 9ca422b2f5..1fc39e68a1 100644 --- a/ArmPlatformPkg/PrePeiCore/AArch64/Exception.S +++ b/ArmPlatformPkg/PrePeiCore/AArch64/Exception.S @@ -1,5 +1,5 @@ #
-# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2014, 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
@@ -79,6 +79,3 @@ _DefaultFiq_h: _DefaultSError_h:
mov x0, #EXCEPT_AARCH64_SERROR
TO_HANDLER
-
-dead:
- b dead
diff --git a/ArmPlatformPkg/PrePeiCore/AArch64/PrePeiCoreEntryPoint.S b/ArmPlatformPkg/PrePeiCore/AArch64/PrePeiCoreEntryPoint.S index 5bdbe4585f..05a823ba21 100644 --- a/ArmPlatformPkg/PrePeiCore/AArch64/PrePeiCoreEntryPoint.S +++ b/ArmPlatformPkg/PrePeiCore/AArch64/PrePeiCoreEntryPoint.S @@ -1,5 +1,5 @@ //
-// Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+// Copyright (c) 2011-2014, 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
@@ -43,13 +43,12 @@ ASM_PFX(_ModuleEntryPoint): // changes.
// Which EL are we running at? Every EL needs some level of setup...
- EL1_OR_EL2_OR_EL3(x0)
+// We should not run this code in EL3
+ EL1_OR_EL2(x0)
1:bl ASM_PFX(SetupExceptionLevel1)
b ASM_PFX(MainEntryPoint)
2:bl ASM_PFX(SetupExceptionLevel2)
b ASM_PFX(MainEntryPoint)
-3:// If we are at EL3 we die.
- b dead
ASM_PFX(MainEntryPoint):
// Identify CPU ID
@@ -109,6 +108,3 @@ _SetupPrimaryCoreStack: // 128-bit variable on the stack
SetPrimaryStack (x1, x2, x3, x4)
b _PrepareArguments
-
-dead:
- b dead
|