From 1377db63ff80bbb28da572c7b276ba56faea5f94 Mon Sep 17 00:00:00 2001 From: oliviermartin Date: Tue, 28 Feb 2012 17:23:53 +0000 Subject: ArmPlatformPkg: Updated the stack setup to have the same geometry between the Secure and Normal World Having a similar setup reduces the error during the MPCore stack setup. The stack setup is described on this wikipage: https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ArmPlatformPkg/Stack git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13058 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Include/AsmMacroIoLib.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'ArmPkg/Include/AsmMacroIoLib.h') diff --git a/ArmPkg/Include/AsmMacroIoLib.h b/ArmPkg/Include/AsmMacroIoLib.h index 644c654665..a4ae22dca0 100644 --- a/ArmPkg/Include/AsmMacroIoLib.h +++ b/ArmPkg/Include/AsmMacroIoLib.h @@ -2,6 +2,7 @@ Macros to work around lack of Apple support for LDR register, =expr Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+ Copyright (c) 2011-2012, ARM Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -132,7 +133,16 @@ and Tmp, GlobalSize, #7 ; \ rsbne Tmp, Tmp, #8 ; \ add GlobalSize, GlobalSize, Tmp ; \ - sub sp, StackTop, GlobalSize + sub sp, StackTop, GlobalSize ; \ + ; \ + mov Tmp, sp ; \ + mov GlobalSize, #0x0 ; \ +_SetPrimaryStackInitGlobals: ; \ + cmp Tmp, StackTop ; \ + beq _SetPrimaryStackEnd ; \ + str GlobalSize, [Tmp], #4 ; \ + b _SetPrimaryStackInitGlobals ; \ +_SetPrimaryStackEnd: #elif defined (__GNUC__) @@ -192,7 +202,16 @@ and Tmp, GlobalSize, #7 ; \ rsbne Tmp, Tmp, #8 ; \ add GlobalSize, GlobalSize, Tmp ; \ - sub sp, StackTop, GlobalSize + sub sp, StackTop, GlobalSize ; \ + ; \ + mov Tmp, sp ; \ + mov GlobalSize, #0x0 ; \ +_SetPrimaryStackInitGlobals: ; \ + cmp Tmp, StackTop ; \ + beq _SetPrimaryStackEnd ; \ + str GlobalSize, [Tmp], #4 ; \ + b _SetPrimaryStackInitGlobals ; \ +_SetPrimaryStackEnd: #else -- cgit v1.2.3