diff options
author | Duggapu Chinni B <chinni.b.duggapu@intel.com> | 2024-04-05 09:30:48 +0530 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2024-04-09 17:15:10 +0000 |
commit | 543add1d414f6016829f7d706fdefb3b830020ef (patch) | |
tree | 0d71314bfa32cee3d3c7606bd9602520f4ae3e9d /IntelFsp2Pkg/FspSecCore/SecFsp.c | |
parent | 932db9df0caa26daca4edf133fb2aed7b4a9193e (diff) | |
download | edk2-543add1d414f6016829f7d706fdefb3b830020ef.tar.gz edk2-543add1d414f6016829f7d706fdefb3b830020ef.tar.bz2 edk2-543add1d414f6016829f7d706fdefb3b830020ef.zip |
IntelFsp2Pkg: Fsp T new ARCH UPD Support
Changes to support spec changes
1. Remove usage of Pcd.
2. Change code to validate the Temporary Ram size input.
3. Consume the input saved in YMM Register
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chiu Chasel <chasel.chiu@intel.com>
Cc: Duggapu Chinni B <chinni.b.duggapu@intel.com>
Cc: Ni Ray <ray.ni@intel.com>
Signed-off-by: Duggapu Chinni B <chinni.b.duggapu@intel.com>
Reviewed-by: Chiu Chasel <chasel.chiu@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Diffstat (limited to 'IntelFsp2Pkg/FspSecCore/SecFsp.c')
-rw-r--r-- | IntelFsp2Pkg/FspSecCore/SecFsp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/IntelFsp2Pkg/FspSecCore/SecFsp.c b/IntelFsp2Pkg/FspSecCore/SecFsp.c index 11be1f97ca..281d39a24b 100644 --- a/IntelFsp2Pkg/FspSecCore/SecFsp.c +++ b/IntelFsp2Pkg/FspSecCore/SecFsp.c @@ -54,6 +54,7 @@ SecGetPlatformData ( UINT32 TopOfCar;
UINT32 *StackPtr;
UINT32 DwordSize;
+ UINT32 TemporaryRamSize;
FspPlatformData = &FspData->PlatformData;
@@ -67,12 +68,20 @@ SecGetPlatformData ( FspPlatformData->MicrocodeRegionSize = 0;
FspPlatformData->CodeRegionBase = 0;
FspPlatformData->CodeRegionSize = 0;
+ TemporaryRamSize = 0;
//
// Pointer to the size field
//
TopOfCar = PcdGet32 (PcdTemporaryRamBase) + PcdGet32 (PcdTemporaryRamSize);
StackPtr = (UINT32 *)(TopOfCar - sizeof (UINT32));
+ if ((*(StackPtr - 1) != FSP_MCUD_SIGNATURE) && (FspData->FspInfoHeader->ImageAttribute & BIT4)) {
+ ReadTemporaryRamSize (PcdGet32 (PcdTemporaryRamBase), &TemporaryRamSize);
+ if (TemporaryRamSize) {
+ TopOfCar = PcdGet32 (PcdTemporaryRamBase) + TemporaryRamSize;
+ StackPtr = (UINT32 *)(TopOfCar - sizeof (UINT32));
+ }
+ }
if (*(StackPtr - 1) == FSP_MCUD_SIGNATURE) {
while (*StackPtr != 0) {
|