From b4588d5b4c34918f32bfba80abb0b7338588e2be Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Fri, 24 May 2024 16:30:39 +0200 Subject: [PATCH] Make ExectOS only run on processors which support PAE --- sdk/xtdk/i686/mmtypes.h | 11 ++++------- xtoskrnl/ke/amd64/krnlinit.c | 2 -- xtoskrnl/ke/i686/krnlinit.c | 2 -- xtoskrnl/mm/i686/init.c | 29 +++++------------------------ xtoskrnl/mm/init.c | 15 --------------- 5 files changed, 9 insertions(+), 50 deletions(-) diff --git a/sdk/xtdk/i686/mmtypes.h b/sdk/xtdk/i686/mmtypes.h index a57b6b3..3f83e8d 100644 --- a/sdk/xtdk/i686/mmtypes.h +++ b/sdk/xtdk/i686/mmtypes.h @@ -20,16 +20,13 @@ /* Page directory and page base addresses */ #define MM_PTE_BASE 0xC0000000 -#define MM_PDE_BASE 0xC0300000 -#define MM_PDE_PAE_BASE 0xC0600000 +#define MM_PDE_BASE 0xC0600000 /* PTE shift values */ -#define MM_PTE_SHIFT 2 +#define MM_PTE_SHIFT 3 #define MM_PTI_SHIFT 12 -#define MM_PDI_SHIFT 22 -#define MM_PTE_PAE_SHIFT 3 -#define MM_PDI_PAE_SHIFT 21 -#define MM_PPI_PAE_SHIFT 30 +#define MM_PDI_SHIFT 21 +#define MM_PPI_SHIFT 30 /* Minimum number of physical pages needed by the system */ #define MM_MINIMUM_PHYSICAL_PAGES 1100 diff --git a/xtoskrnl/ke/amd64/krnlinit.c b/xtoskrnl/ke/amd64/krnlinit.c index ec75688..863fcda 100644 --- a/xtoskrnl/ke/amd64/krnlinit.c +++ b/xtoskrnl/ke/amd64/krnlinit.c @@ -20,8 +20,6 @@ XTAPI VOID KepInitializeKernel(VOID) { - /* Initialize architecture specific hardware extensions */ - MmInitializeHardware(); } /** diff --git a/xtoskrnl/ke/i686/krnlinit.c b/xtoskrnl/ke/i686/krnlinit.c index e8a0adf..e762941 100644 --- a/xtoskrnl/ke/i686/krnlinit.c +++ b/xtoskrnl/ke/i686/krnlinit.c @@ -20,8 +20,6 @@ XTAPI VOID KepInitializeKernel(VOID) { - /* Initialize architecture specific hardware extensions */ - MmInitializeHardware(); } /** diff --git a/xtoskrnl/mm/i686/init.c b/xtoskrnl/mm/i686/init.c index 100f6f6..aed604b 100644 --- a/xtoskrnl/mm/i686/init.c +++ b/xtoskrnl/mm/i686/init.c @@ -23,27 +23,11 @@ XTAPI PMMPTE MmpGetPdeAddress(PVOID Address) { - ULONG Offset, PdeBase, PdiShift, PteShift; - - /* Get PDI and PTE shifts based on memory extension flag */ - if(MmpMemoryExtension) - { - /* Get bit shifts for PAE system */ - PdeBase = MM_PDE_PAE_BASE; - PdiShift = MM_PDI_PAE_SHIFT; - PteShift = MM_PTE_PAE_SHIFT; - } - else - { - /* Get bit shifts for non-PAE system */ - PdeBase = MM_PDE_BASE; - PdiShift = MM_PDI_SHIFT; - PteShift = MM_PTE_SHIFT; - } + ULONG Offset; /* Calculate offset and return PTE address */ - Offset = ((((ULONG)(Address)) >> PdiShift) << PteShift); - return (PMMPTE)(PdeBase + Offset); + Offset = ((((ULONG)(Address)) >> MM_PDI_SHIFT) << MM_PTE_SHIFT); + return (PMMPTE)(MM_PDE_BASE + Offset); } /** @@ -60,13 +44,10 @@ XTAPI PMMPTE MmpGetPteAddress(PVOID Address) { - ULONG Offset, PteShift; - - /* Get PTE shift based on memory extension flag */ - PteShift = MmpMemoryExtension ? MM_PTE_PAE_SHIFT : MM_PTE_SHIFT; + ULONG Offset; /* Calculate offset and return PTE address */ - Offset = ((((ULONG)(Address)) >> MM_PTI_SHIFT) << PteShift); + Offset = ((((ULONG)(Address)) >> MM_PTI_SHIFT) << MM_PTE_SHIFT); return (PMMPTE)(MM_PTE_BASE + Offset); } diff --git a/xtoskrnl/mm/init.c b/xtoskrnl/mm/init.c index 8cd87cf..2aa5ae0 100644 --- a/xtoskrnl/mm/init.c +++ b/xtoskrnl/mm/init.c @@ -9,21 +9,6 @@ #include -/** - * Performs an early pre-initialization of hardware-related structures. - * - * @return This routine does not return any value. - * - * @since XT 1.0 - */ -XTAPI -VOID -MmInitializeHardware(VOID) -{ - /* Check for architecture-specific memory extensions enabled by the firmware or boot loader */ - MmpMemoryExtension = MmpMemoryExtensionEnabled(); -} - /** * Performs an early initialization of the XTOS Memory Manager. *