2 /// Assembly procedures to get and set ESAL entry point.
4 /// Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
5 /// This program and the accompanying materials
6 /// are licensed and made available under the terms and conditions of the BSD License
7 /// which accompanies this distribution. The full text of the license may be found at
8 /// http://opensource.org/licenses/bsd-license.php.
10 /// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 /// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
22 ASM_GLOBAL GetEsalEntryPoint
24 //-----------------------------------------------------------------------------
28 // Return Esal global and PSR register.
34 // r8 = EFI_SAL_SUCCESS
35 // r9 = Physical Plabel
36 // r10 = Virtual Plabel
39 // As per static calling conventions.
42 //---------------------------------------------------------------------------
43 PROCEDURE_ENTRY (GetEsalEntryPoint)
45 NESTED_SETUP (0,8,0,0)
49 add r8 = (EsalEntryPoint - EsalCalcStart), r8;;
57 PROCEDURE_EXIT (GetEsalEntryPoint)
59 //-----------------------------------------------------------------------------
61 // SetEsalPhysicalEntryPoint
63 // Set the dispatcher entry point
66 // in0 = Physical address of Esal Dispatcher
70 // r8 = EFI_SAL_SUCCESS
72 // As per static calling conventions.
75 //---------------------------------------------------------------------------
76 PROCEDURE_ENTRY (SetEsalPhysicalEntryPoint)
78 NESTED_SETUP (2,8,0,0)
82 add r8 = (EsalEntryPoint - EsalCalcStart1), r8;;
90 PROCEDURE_EXIT (SetEsalPhysicalEntryPoint)
92 //-----------------------------------------------------------------------------
94 // SetEsalVirtualEntryPoint
96 // Register physical address of Esal globals.
99 // in0 = Virtual address of Esal Dispatcher
103 // r8 = EFI_SAL_ERROR
105 // As per static calling conventions.
108 //---------------------------------------------------------------------------
109 PROCEDURE_ENTRY (SetEsalVirtualEntryPoint)
111 NESTED_SETUP (2,8,0,0)
115 add r8 = (EsalEntryPoint - EsalCalcStart2), r8;;
124 PROCEDURE_EXIT (SetEsalVirtualEntryPoint)
128 data8 0 // Physical Entry
130 data8 0 // Virtual Entry