Message ID | 20171117160913.17292-8-ard.biesheuvel@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | ArmVirtPkg: get rid of ArmPlatformLib | expand |
On 11/17/17 17:09, Ard Biesheuvel wrote: > 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> > --- > ArmVirtPkg/ArmVirt.dsc.inc | 1 - > ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 14 ++------------ > ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S | 14 ++------------ > ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 1 - > 4 files changed, 4 insertions(+), 26 deletions(-) > > diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc > index 50eb8675d1c0..5d7edff104b5 100644 > --- a/ArmVirtPkg/ArmVirt.dsc.inc > +++ b/ArmVirtPkg/ArmVirt.dsc.inc > @@ -93,7 +93,6 @@ [LibraryClasses.common] > ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf > ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf > ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf > - ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf > ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf > ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf > ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf > diff --git a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S > index 3296aedfe9aa..891cf1fcab40 100644 > --- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S > +++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S > @@ -111,22 +111,12 @@ _GetBaseUefiMemory: > > _GetStackBase: > // r1 = The top of the Mpcore Stacks Before pushing the patch, please consider updating the "r1" comment here, in the aarch64 version. Acked-by: Laszlo Ersek <lersek@redhat.com> Thanks Laszlo > + mov sp, x1 > + > // Stack for the primary core = PrimaryCoreStack > MOV32 (x2, FixedPcdGet32(PcdCPUCorePrimaryStackSize)) > 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 x1, x21 > mov x2, x22 > diff --git a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S > index a918c191432e..ced08593e9de 100644 > --- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S > +++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S > @@ -120,22 +120,12 @@ _GetBaseUefiMemory: > > _GetStackBase: > // r1 = The top of the Mpcore Stacks > + mov sp, r1 > + > // Stack for the primary core = PrimaryCoreStack > MOV32 (r2, FixedPcdGet32(PcdCPUCorePrimaryStackSize)) > 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 r1, r11 > mov r2, r9 > diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > index e816e9583da8..ae9a088c7256 100755 > --- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > +++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > @@ -54,7 +54,6 @@ [LibraryClasses] > LzmaDecompressLib > PeCoffGetEntryPointLib > PrePiLib > - ArmPlatformStackLib > MemoryAllocationLib > HobLib > PrePiHobListPointerLib > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index 50eb8675d1c0..5d7edff104b5 100644 --- a/ArmVirtPkg/ArmVirt.dsc.inc +++ b/ArmVirtPkg/ArmVirt.dsc.inc @@ -93,7 +93,6 @@ [LibraryClasses.common] ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf - ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf diff --git a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S index 3296aedfe9aa..891cf1fcab40 100644 --- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S @@ -111,22 +111,12 @@ _GetBaseUefiMemory: _GetStackBase: // r1 = The top of the Mpcore Stacks + mov sp, x1 + // Stack for the primary core = PrimaryCoreStack MOV32 (x2, FixedPcdGet32(PcdCPUCorePrimaryStackSize)) 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 x1, x21 mov x2, x22 diff --git a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S index a918c191432e..ced08593e9de 100644 --- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S @@ -120,22 +120,12 @@ _GetBaseUefiMemory: _GetStackBase: // r1 = The top of the Mpcore Stacks + mov sp, r1 + // Stack for the primary core = PrimaryCoreStack MOV32 (r2, FixedPcdGet32(PcdCPUCorePrimaryStackSize)) 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 r1, r11 mov r2, r9 diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf index e816e9583da8..ae9a088c7256 100755 --- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf +++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf @@ -54,7 +54,6 @@ [LibraryClasses] LzmaDecompressLib PeCoffGetEntryPointLib PrePiLib - ArmPlatformStackLib MemoryAllocationLib HobLib PrePiHobListPointerLib
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> --- ArmVirtPkg/ArmVirt.dsc.inc | 1 - ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 14 ++------------ ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S | 14 ++------------ ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 1 - 4 files changed, 4 insertions(+), 26 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel