forked from xt-sys/exectos
Make ExectOS only run on processors which support PAE
This commit is contained in:
parent
5221db2e63
commit
b4588d5b4c
@ -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
|
||||
|
@ -20,8 +20,6 @@ XTAPI
|
||||
VOID
|
||||
KepInitializeKernel(VOID)
|
||||
{
|
||||
/* Initialize architecture specific hardware extensions */
|
||||
MmInitializeHardware();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -20,8 +20,6 @@ XTAPI
|
||||
VOID
|
||||
KepInitializeKernel(VOID)
|
||||
{
|
||||
/* Initialize architecture specific hardware extensions */
|
||||
MmInitializeHardware();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -9,21 +9,6 @@
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user