Implement page map info initialization
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 24s
Builds / ExectOS (i686, debug) (push) Failing after 21s
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (i686, release) (push) Failing after 33s

This commit is contained in:
Aiken Harris 2025-08-16 20:28:05 +02:00
parent 8491e5fed1
commit de2973ac42
Signed by: harraiken
GPG Key ID: C40F06CB7493C1F5
2 changed files with 52 additions and 2 deletions

View File

@ -20,7 +20,31 @@ XTAPI
VOID VOID
MmInitializePageMapSupport(VOID) MmInitializePageMapSupport(VOID)
{ {
UNIMPLEMENTED; /* Check if XPA is enabled */
if(MmpGetExtendedPhysicalAddressingStatus())
{
/* Set PML5 page map information */
MmpPageMapInfo.Xpa = TRUE;
/* Set PML5 base addresses */
MmpPageMapInfo.PteBase = MM_PTE_LA57_BASE;
MmpPageMapInfo.PdeBase = MM_PDE_LA57_BASE;
MmpPageMapInfo.PpeBase = MM_PPE_LA57_BASE;
MmpPageMapInfo.PxeBase = MM_PXE_LA57_BASE;
MmpPageMapInfo.P5eBase = MM_P5E_LA57_BASE;
}
else
{
/* Set PML4 page map information */
MmpPageMapInfo.Xpa = FALSE;
/* Set PML4 base addresses */
MmpPageMapInfo.PteBase = MM_PTE_BASE;
MmpPageMapInfo.PdeBase = MM_PDE_BASE;
MmpPageMapInfo.PpeBase = MM_PPE_BASE;
MmpPageMapInfo.PxeBase = MM_PXE_BASE;
MmpPageMapInfo.P5eBase = 0x0;
}
} }
/** /**

View File

@ -20,7 +20,33 @@ XTAPI
VOID VOID
MmInitializePageMapSupport(VOID) MmInitializePageMapSupport(VOID)
{ {
UNIMPLEMENTED; /* Check if XPA is enabled */
if(MmpGetExtendedPhysicalAddressingStatus())
{
/* Set PML3 page map information */
MmpPageMapInfo.Xpa = TRUE;
/* Set PML3 base addresses */
MmpPageMapInfo.PteBase = MM_PTE_BASE;
MmpPageMapInfo.PdeBase = MM_PDE_BASE;
/* Set PML3 shift values */
MmpPageMapInfo.PdiShift = MM_PDI_SHIFT;
MmpPageMapInfo.PteShift = MM_PTE_SHIFT;
}
else
{
/* Set PML2 page map information */
MmpPageMapInfo.Xpa = FALSE;
/* Set PML2 base addresses */
MmpPageMapInfo.PteBase = MM_PTE_BASE;
MmpPageMapInfo.PdeBase = MM_PDE_LEGACY_BASE;
/* Set PML2 shift values */
MmpPageMapInfo.PdiShift = MM_PDI_LEGACY_SHIFT;
MmpPageMapInfo.PteShift = MM_PTE_LEGACY_SHIFT;
}
} }
/** /**