mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg: Changed the reference base of the PI Global Pointer Offset
Before the PI Global Pointer Offsets were refered to the top of the Global Pointer region (negative offset). After this commit the Global Pointer Offset are relative to the base of the Global Pointer region. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12172 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
8c454d9800
commit
ca8afbca68
|
@ -73,8 +73,8 @@
|
|||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize|0x4|UINT32|0x00000016
|
||||
# PeiServicePtr and HobListPtr shares the same location in the PEI Global Variable list
|
||||
# PeiServicePtr is only valid with PEI Core and HobListPtr only when the PEI Core is skipped.
|
||||
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset|0x4|UINT32|0x00000017
|
||||
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset|0x4|UINT32|0x00000018
|
||||
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset|0x0|UINT32|0x00000017
|
||||
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset|0x0|UINT32|0x00000018
|
||||
|
||||
#
|
||||
# ARM Primecells
|
||||
|
|
|
@ -39,7 +39,10 @@ SetPeiServicesTablePointer (
|
|||
UINTN *PeiPtrLoc;
|
||||
ASSERT (PeiServicesTablePointer != NULL);
|
||||
|
||||
PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) + (PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) - PcdGet32 (PcdPeiServicePtrGlobalOffset));
|
||||
PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) +
|
||||
(PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) -
|
||||
PcdGet32 (PcdPeiGlobalVariableSize) +
|
||||
PcdGet32 (PcdPeiServicePtrGlobalOffset));
|
||||
*PeiPtrLoc = (UINTN)PeiServicesTablePointer;
|
||||
}
|
||||
|
||||
|
@ -63,7 +66,10 @@ GetPeiServicesTablePointer (
|
|||
{
|
||||
UINTN *PeiPtrLoc;
|
||||
|
||||
PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) + (PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) - PcdGet32 (PcdPeiServicePtrGlobalOffset));
|
||||
PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) +
|
||||
(PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) -
|
||||
PcdGet32 (PcdPeiGlobalVariableSize) +
|
||||
PcdGet32 (PcdPeiServicePtrGlobalOffset));
|
||||
return (CONST EFI_PEI_SERVICES **)*PeiPtrLoc;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue