Add definitions for 5-level paging and refactor constants
This commit is contained in:
parent
e57985da8d
commit
3ca6d04f6b
@ -18,11 +18,18 @@
|
|||||||
#define MM_PAGE_SHIFT 12L
|
#define MM_PAGE_SHIFT 12L
|
||||||
#define MM_PAGE_SIZE 4096
|
#define MM_PAGE_SIZE 4096
|
||||||
|
|
||||||
/* Page directory and page base addresses */
|
/* Page directory and page base addresses for 4-level paging */
|
||||||
#define MM_PTE_BASE 0xFFFFF68000000000UI64
|
#define MM_PTE_BASE 0xFFFFF68000000000ULL
|
||||||
#define MM_PDE_BASE 0xFFFFF6FB40000000UI64
|
#define MM_PDE_BASE 0xFFFFF6FB40000000ULL
|
||||||
#define MM_PPE_BASE 0xFFFFF6FB7DA00000UI64
|
#define MM_PPE_BASE 0xFFFFF6FB7DA00000ULL
|
||||||
#define MM_PXE_BASE 0xFFFFF6FB7DBED000UI64
|
#define MM_PXE_BASE 0xFFFFF6FB7DBED000ULL
|
||||||
|
|
||||||
|
/* Page directory and page base addresses for 5-level paging */
|
||||||
|
#define MM_PTE_LA57_BASE 0xFFFFF68000000000ULL
|
||||||
|
#define MM_PDE_LA57_BASE 0xFFFFF78000000000ULL
|
||||||
|
#define MM_PPE_LA57_BASE 0xFFFFF78800000000ULL
|
||||||
|
#define MM_PXE_LA57_BASE 0xFFFFF78840000000ULL
|
||||||
|
#define MM_P5E_LA57_BASE 0xFFFFF78840200000ULL
|
||||||
|
|
||||||
/* PTE shift values */
|
/* PTE shift values */
|
||||||
#define MM_PTE_SHIFT 3
|
#define MM_PTE_SHIFT 3
|
||||||
@ -54,7 +61,7 @@
|
|||||||
#define MM_HARDWARE_VA_START 0xFFFFFFFFFFC00000ULL
|
#define MM_HARDWARE_VA_START 0xFFFFFFFFFFC00000ULL
|
||||||
|
|
||||||
/* Maximum physical address used by HAL allocations */
|
/* Maximum physical address used by HAL allocations */
|
||||||
#define MM_MAXIMUM_PHYSICAL_ADDRESS 0x00000000FFFFFFFF
|
#define MM_MAXIMUM_PHYSICAL_ADDRESS 0x00000000FFFFFFFFULL
|
||||||
|
|
||||||
/* Page size enumeration list */
|
/* Page size enumeration list */
|
||||||
typedef enum _PAGE_SIZE
|
typedef enum _PAGE_SIZE
|
||||||
|
@ -185,7 +185,7 @@ XtEnablePaging(IN PXTBL_PAGE_MAPPING PageMap)
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
/* Build page map */
|
/* Build page map */
|
||||||
Status = XtLdrProtocol->Memory.BuildPageMap(PageMap, 0xFFFFF6FB7DBED000);
|
Status = XtLdrProtocol->Memory.BuildPageMap(PageMap, (PageMap->PageMapLevel > 4) ? MM_P5E_LA57_BASE : MM_PXE_BASE);
|
||||||
if(Status != STATUS_EFI_SUCCESS)
|
if(Status != STATUS_EFI_SUCCESS)
|
||||||
{
|
{
|
||||||
/* Failed to build page map */
|
/* Failed to build page map */
|
||||||
|
@ -126,7 +126,7 @@ XtEnablePaging(IN PXTBL_PAGE_MAPPING PageMap)
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
/* Build page map */
|
/* Build page map */
|
||||||
Status = XtLdrProtocol->Memory.BuildPageMap(PageMap, 0xC0000000);
|
Status = XtLdrProtocol->Memory.BuildPageMap(PageMap, MM_PTE_BASE);
|
||||||
if(Status != STATUS_EFI_SUCCESS)
|
if(Status != STATUS_EFI_SUCCESS)
|
||||||
{
|
{
|
||||||
/* Failed to build page map */
|
/* Failed to build page map */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user