Revert "Add 2 APIs in SmmCpuFeaturesLib."
This reverts SVN r18958 / git commit
9daa916dd1
.
The patch series had been fully reviewed on edk2-devel, but it got
committed as a single squashed patch. Revert it for now.
Link: http://thread.gmane.org/gmane.comp.bios.edk2.devel/4951
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18978 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
fc8c919525
commit
118930fa28
|
@ -363,39 +363,4 @@ SmmCpuFeaturesWriteSaveStateRegister (
|
||||||
IN CONST VOID *Buffer
|
IN CONST VOID *Buffer
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
|
||||||
This function is hook point called after the gEfiSmmReadyToLockProtocolGuid
|
|
||||||
notification is completely processed.
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
SmmCpuFeaturesCompleteSmmReadyToLock (
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
This API provides a method for a CPU to allocate a specific region for storing page tables.
|
|
||||||
|
|
||||||
This API can be called more once to allocate memory for page tables.
|
|
||||||
|
|
||||||
Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the
|
|
||||||
allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL
|
|
||||||
is returned. If there is not enough memory remaining to satisfy the request, then NULL is
|
|
||||||
returned.
|
|
||||||
|
|
||||||
This function can also return NULL if there is no preference on where the page tables are allocated in SMRAM.
|
|
||||||
|
|
||||||
@param Pages The number of 4 KB pages to allocate.
|
|
||||||
|
|
||||||
@return A pointer to the allocated buffer for page tables.
|
|
||||||
@retval NULL Fail to allocate a specific region for storing page tables,
|
|
||||||
Or there is no preference on where the page tables are allocated in SMRAM.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID *
|
|
||||||
EFIAPI
|
|
||||||
SmmCpuFeaturesAllocatePageTableMemory (
|
|
||||||
IN UINTN Pages
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -615,44 +615,3 @@ SmmCpuFeaturesWriteSaveStateRegister (
|
||||||
{
|
{
|
||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This function is hook point called after the gEfiSmmReadyToLockProtocolGuid
|
|
||||||
notification is completely processed.
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
SmmCpuFeaturesCompleteSmmReadyToLock (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
This API provides a method for a CPU to allocate a specific region for storing page tables.
|
|
||||||
|
|
||||||
This API can be called more once to allocate memory for page tables.
|
|
||||||
|
|
||||||
Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the
|
|
||||||
allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL
|
|
||||||
is returned. If there is not enough memory remaining to satisfy the request, then NULL is
|
|
||||||
returned.
|
|
||||||
|
|
||||||
This function can also return NULL if there is no preference on where the page tables are allocated in SMRAM.
|
|
||||||
|
|
||||||
@param Pages The number of 4 KB pages to allocate.
|
|
||||||
|
|
||||||
@return A pointer to the allocated buffer for page tables.
|
|
||||||
@retval NULL Fail to allocate a specific region for storing page tables,
|
|
||||||
Or there is no preference on where the page tables are allocated in SMRAM.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID *
|
|
||||||
EFIAPI
|
|
||||||
SmmCpuFeaturesAllocatePageTableMemory (
|
|
||||||
IN UINTN Pages
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -770,7 +770,7 @@ Gen4GPageTable (
|
||||||
//
|
//
|
||||||
// Allocate the page table
|
// Allocate the page table
|
||||||
//
|
//
|
||||||
PageTable = AllocatePageTableMemory (ExtraPages + 5 + PagesNeeded);
|
PageTable = AllocatePages (ExtraPages + 5 + PagesNeeded);
|
||||||
ASSERT (PageTable != NULL);
|
ASSERT (PageTable != NULL);
|
||||||
|
|
||||||
PageTable = (VOID *)((UINTN)PageTable + EFI_PAGES_TO_SIZE (ExtraPages));
|
PageTable = (VOID *)((UINTN)PageTable + EFI_PAGES_TO_SIZE (ExtraPages));
|
||||||
|
@ -872,7 +872,7 @@ SetCacheability (
|
||||||
//
|
//
|
||||||
// Allocate a page from SMRAM
|
// Allocate a page from SMRAM
|
||||||
//
|
//
|
||||||
NewPageTableAddress = AllocatePageTableMemory (1);
|
NewPageTableAddress = AllocatePages (1);
|
||||||
ASSERT (NewPageTableAddress != NULL);
|
ASSERT (NewPageTableAddress != NULL);
|
||||||
|
|
||||||
NewPageTable = (UINT64 *)NewPageTableAddress;
|
NewPageTable = (UINT64 *)NewPageTableAddress;
|
||||||
|
|
|
@ -970,9 +970,9 @@ PiCpuSmmEntry (
|
||||||
//
|
//
|
||||||
BufferPages = EFI_SIZE_TO_PAGES (SIZE_32KB + TileSize * (mMaxNumberOfCpus - 1));
|
BufferPages = EFI_SIZE_TO_PAGES (SIZE_32KB + TileSize * (mMaxNumberOfCpus - 1));
|
||||||
if ((FamilyId == 4) || (FamilyId == 5)) {
|
if ((FamilyId == 4) || (FamilyId == 5)) {
|
||||||
Buffer = AllocateAlignedPages (BufferPages, SIZE_32KB);
|
Buffer = AllocateAlignedCodePages (BufferPages, SIZE_32KB);
|
||||||
} else {
|
} else {
|
||||||
Buffer = AllocateAlignedPages (BufferPages, SIZE_4KB);
|
Buffer = AllocateAlignedCodePages (BufferPages, SIZE_4KB);
|
||||||
}
|
}
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
DEBUG ((EFI_D_INFO, "SMRAM SaveState Buffer (0x%08x, 0x%08x)\n", Buffer, EFI_PAGES_TO_SIZE(BufferPages)));
|
DEBUG ((EFI_D_INFO, "SMRAM SaveState Buffer (0x%08x, 0x%08x)\n", Buffer, EFI_PAGES_TO_SIZE(BufferPages)));
|
||||||
|
@ -1415,35 +1415,6 @@ ConfigSmmCodeAccessCheck (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This API provides a way to allocate memory for page table.
|
|
||||||
|
|
||||||
This API can be called more once to allocate memory for page tables.
|
|
||||||
|
|
||||||
Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the
|
|
||||||
allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL
|
|
||||||
is returned. If there is not enough memory remaining to satisfy the request, then NULL is
|
|
||||||
returned.
|
|
||||||
|
|
||||||
@param Pages The number of 4 KB pages to allocate.
|
|
||||||
|
|
||||||
@return A pointer to the allocated buffer or NULL if allocation fails.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID *
|
|
||||||
AllocatePageTableMemory (
|
|
||||||
IN UINTN Pages
|
|
||||||
)
|
|
||||||
{
|
|
||||||
VOID *Buffer;
|
|
||||||
|
|
||||||
Buffer = SmmCpuFeaturesAllocatePageTableMemory (Pages);
|
|
||||||
if (Buffer != NULL) {
|
|
||||||
return Buffer;
|
|
||||||
}
|
|
||||||
return AllocatePages (Pages);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Perform the remaining tasks.
|
Perform the remaining tasks.
|
||||||
|
|
||||||
|
@ -1469,8 +1440,6 @@ PerformRemainingTasks (
|
||||||
//
|
//
|
||||||
ConfigSmmCodeAccessCheck ();
|
ConfigSmmCodeAccessCheck ();
|
||||||
|
|
||||||
SmmCpuFeaturesCompleteSmmReadyToLock ();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clean SMM ready to lock flag
|
// Clean SMM ready to lock flag
|
||||||
//
|
//
|
||||||
|
@ -1496,8 +1465,6 @@ PerformPreTasks (
|
||||||
//
|
//
|
||||||
ConfigSmmCodeAccessCheck ();
|
ConfigSmmCodeAccessCheck ();
|
||||||
|
|
||||||
SmmCpuFeaturesCompleteSmmReadyToLock ();
|
|
||||||
|
|
||||||
mRestoreSmmConfigurationInS3 = FALSE;
|
mRestoreSmmConfigurationInS3 = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -718,25 +718,4 @@ VOID
|
||||||
DumpModuleInfoByIp (
|
DumpModuleInfoByIp (
|
||||||
IN UINTN CallerIpAddress
|
IN UINTN CallerIpAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
|
||||||
This API provides a way to allocate memory for page table.
|
|
||||||
|
|
||||||
This API can be called more once to allocate memory for page tables.
|
|
||||||
|
|
||||||
Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the
|
|
||||||
allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL
|
|
||||||
is returned. If there is not enough memory remaining to satisfy the request, then NULL is
|
|
||||||
returned.
|
|
||||||
|
|
||||||
@param Pages The number of 4 KB pages to allocate.
|
|
||||||
|
|
||||||
@return A pointer to the allocated buffer or NULL if allocation fails.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID *
|
|
||||||
AllocatePageTableMemory (
|
|
||||||
IN UINTN Pages
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -552,7 +552,7 @@ InitPaging (
|
||||||
//
|
//
|
||||||
ASSERT (Address == (*Pte & PHYSICAL_ADDRESS_MASK));
|
ASSERT (Address == (*Pte & PHYSICAL_ADDRESS_MASK));
|
||||||
|
|
||||||
Pt = AllocatePageTableMemory (1);
|
Pt = AllocatePages (1);
|
||||||
ASSERT (Pt != NULL);
|
ASSERT (Pt != NULL);
|
||||||
|
|
||||||
// Split it
|
// Split it
|
||||||
|
|
Loading…
Reference in New Issue