mirror of https://github.com/acidanthera/audk.git
ArmVirtPkg/PrePi: remove ArmPlatformStackLib dependency
ArmPlatformStackLib has hooks into primary/secondary core PCDs and other ArmPlatformLib related junk, so let's simply set the stack pointer directly. This is trivial given that our PrePi is unicore only. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
0ae69a2e04
commit
523509aeea
|
@ -93,7 +93,6 @@
|
||||||
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
||||||
ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
|
ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
|
||||||
ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
|
|
||||||
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
||||||
ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
|
ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
|
||||||
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
|
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
|
||||||
|
|
|
@ -111,22 +111,12 @@ _GetBaseUefiMemory:
|
||||||
|
|
||||||
_GetStackBase:
|
_GetStackBase:
|
||||||
// r1 = The top of the Mpcore Stacks
|
// r1 = The top of the Mpcore Stacks
|
||||||
|
mov sp, x1
|
||||||
|
|
||||||
// Stack for the primary core = PrimaryCoreStack
|
// Stack for the primary core = PrimaryCoreStack
|
||||||
MOV32 (x2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
MOV32 (x2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
||||||
sub x22, x1, x2
|
sub x22, x1, x2
|
||||||
|
|
||||||
// Stack for the secondary core = Number of Cores - 1
|
|
||||||
MOV32 (x1, (FixedPcdGet32(PcdCoreCount) - 1) * FixedPcdGet32(PcdCPUCoreSecondaryStackSize))
|
|
||||||
sub x22, x22, x1
|
|
||||||
|
|
||||||
// x22 = The base of the MpCore Stacks (primary stack & secondary stacks)
|
|
||||||
mov x0, x22
|
|
||||||
mov x1, x20
|
|
||||||
//ArmPlatformStackSet(StackBase, MpId, PrimaryStackSize, SecondaryStackSize)
|
|
||||||
MOV32 (x2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
|
||||||
MOV32 (x3, FixedPcdGet32(PcdCPUCoreSecondaryStackSize))
|
|
||||||
bl ASM_PFX(ArmPlatformStackSet)
|
|
||||||
|
|
||||||
mov x0, x20
|
mov x0, x20
|
||||||
mov x1, x21
|
mov x1, x21
|
||||||
mov x2, x22
|
mov x2, x22
|
||||||
|
|
|
@ -120,22 +120,12 @@ _GetBaseUefiMemory:
|
||||||
|
|
||||||
_GetStackBase:
|
_GetStackBase:
|
||||||
// r1 = The top of the Mpcore Stacks
|
// r1 = The top of the Mpcore Stacks
|
||||||
|
mov sp, r1
|
||||||
|
|
||||||
// Stack for the primary core = PrimaryCoreStack
|
// Stack for the primary core = PrimaryCoreStack
|
||||||
MOV32 (r2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
MOV32 (r2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
||||||
sub r9, r1, r2
|
sub r9, r1, r2
|
||||||
|
|
||||||
// Stack for the secondary core = Number of Cores - 1
|
|
||||||
MOV32 (r1, (FixedPcdGet32(PcdCoreCount) - 1) * FixedPcdGet32(PcdCPUCoreSecondaryStackSize))
|
|
||||||
sub r9, r9, r1
|
|
||||||
|
|
||||||
// r9 = The base of the MpCore Stacks (primary stack & secondary stacks)
|
|
||||||
mov r0, r9
|
|
||||||
mov r1, r10
|
|
||||||
//ArmPlatformStackSet(StackBase, MpId, PrimaryStackSize, SecondaryStackSize)
|
|
||||||
MOV32 (r2, FixedPcdGet32(PcdCPUCorePrimaryStackSize))
|
|
||||||
MOV32 (r3, FixedPcdGet32(PcdCPUCoreSecondaryStackSize))
|
|
||||||
bl ASM_PFX(ArmPlatformStackSet)
|
|
||||||
|
|
||||||
mov r0, r10
|
mov r0, r10
|
||||||
mov r1, r11
|
mov r1, r11
|
||||||
mov r2, r9
|
mov r2, r9
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
LzmaDecompressLib
|
LzmaDecompressLib
|
||||||
PeCoffGetEntryPointLib
|
PeCoffGetEntryPointLib
|
||||||
PrePiLib
|
PrePiLib
|
||||||
ArmPlatformStackLib
|
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
HobLib
|
HobLib
|
||||||
PrePiHobListPointerLib
|
PrePiHobListPointerLib
|
||||||
|
|
Loading…
Reference in New Issue