PI Enabling: the address of PeiServices Pointer should be

1) Set to preceding of IDT table in PeiCore's entry
2) Migrate to preceding of new memory IDT table when memory is discovery

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4059 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2
2007-10-09 08:16:53 +00:00
parent d173d9c761
commit 81c7803cf4
10 changed files with 165 additions and 19 deletions

View File

@@ -395,7 +395,8 @@ Returns:
// Migrate IDT from CAR into real memory, so after stack switches to
// the new memory, the caller can get memory version PeiServiceTable.
//
//MigrateIdtTable (PeiServices);
MigrateIdtTable (PeiServices);
//
// Since we are at dispatch level, only the Core's private data
// is preserved, nobody else should have any data on the stack.

View File

@@ -166,6 +166,11 @@ Returns:
InitializePpiServices (&PrivateData, OldCoreData);
//
// Save PeiServicePointer so that it can be retrieved anywhere.
//
SetPeiServicesTablePointer(&PrivateData.PS);
if (OldCoreData != NULL) {
PERF_END (NULL,"PreMem", NULL, 0);