From 3b17b2458726bf7e2cf640d29ebe14f8af587905 Mon Sep 17 00:00:00 2001 From: "Ma, Maurice" Date: Wed, 29 Apr 2015 03:10:24 +0000 Subject: Add dual FSP binaries support. There are two FSP images at different locations in a flash (one factory version is read only and other in updatable version) TempRamInit, FspMemoryInit and TempRamExit are executed from factory version and FspSiliconInit/NotifyPhase will be executed from updatable version. Also update FSP specification version to v1.1. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Ma, Maurice" Reviewed-by: "Yao, Jiewen" git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17248 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/BaseFspSwitchStackLib/Ia32/Stack.asm | 24 ++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm') diff --git a/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm b/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm index d04f229a6b..1efab52059 100644 --- a/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm +++ b/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm @@ -1,6 +1,6 @@ ;------------------------------------------------------------------------------ ; -; Copyright (c) 2014, Intel Corporation. All rights reserved.
+; Copyright (c) 2014 - 2015, Intel Corporation. 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 @@ -28,7 +28,8 @@ ;------------------------------------------------------------------------------ EXTERNDEF C MeasurePoint:PROC Pei2LoaderSwitchStack PROC C PUBLIC - jmp Loader2PeiSwitchStack + xor eax, eax + jmp FspSwitchStack Pei2LoaderSwitchStack ENDP ;------------------------------------------------------------------------------ @@ -38,10 +39,21 @@ Pei2LoaderSwitchStack ENDP ; VOID ; ) ;------------------------------------------------------------------------------ -EXTERNDEF C SwapStack:PROC Loader2PeiSwitchStack PROC C PUBLIC + jmp FspSwitchStack +Loader2PeiSwitchStack ENDP + +;------------------------------------------------------------------------------ +; UINT32 +; EFIAPI +; FspSwitchStack ( +; VOID +; ) +;------------------------------------------------------------------------------ +EXTERNDEF C SwapStack:PROC +FspSwitchStack PROC C PUBLIC ; Save current contexts - push offset exit + push eax pushfd cli pushad @@ -58,8 +70,8 @@ Loader2PeiSwitchStack PROC C PUBLIC add esp, 8 popad popfd -exit: + add esp, 4 ret -Loader2PeiSwitchStack ENDP +FspSwitchStack ENDP END -- cgit v1.2.3