git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SMP Work (APs now start, just seem to lock up on lgdt, or whatever is at that address)
[tpg/acess2.git]
/
Kernel
/
arch
/
x86
/
mm_virt.c
diff --git
a/Kernel/arch/x86/mm_virt.c
b/Kernel/arch/x86/mm_virt.c
index
4f272e7
..
0ef6771
100644
(file)
--- a/
Kernel/arch/x86/mm_virt.c
+++ b/
Kernel/arch/x86/mm_virt.c
@@
-105,10
+105,10
@@
Uint32 gWorkerStacks[(NUM_WORKER_STACKS+31)/32];
void MM_PreinitVirtual()
{
#if USE_PAE
void MM_PreinitVirtual()
{
#if USE_PAE
- gaInitPDPT[ 0 ] = 0;
+
//
gaInitPDPT[ 0 ] = 0;
gaInitPageDir[ ((PAGE_TABLE_ADDR >> TAB)-3*512+3)*2 ] = ((tTabEnt)&gaInitPageDir - KERNEL_BASE) | 3;
#else
gaInitPageDir[ ((PAGE_TABLE_ADDR >> TAB)-3*512+3)*2 ] = ((tTabEnt)&gaInitPageDir - KERNEL_BASE) | 3;
#else
- gaInitPageDir[ 0 ] = 0;
+ //gaInitPageDir[ 0 ] = 0; // Needed for SMP startup code
gaInitPageDir[ PAGE_TABLE_ADDR >> 22 ] = ((tTabEnt)&gaInitPageDir - KERNEL_BASE) | 3;
#endif
INVLPG( PAGE_TABLE_ADDR );
gaInitPageDir[ PAGE_TABLE_ADDR >> 22 ] = ((tTabEnt)&gaInitPageDir - KERNEL_BASE) | 3;
#endif
INVLPG( PAGE_TABLE_ADDR );
@@
-958,21
+958,12
@@
tVAddr MM_AllocDMA(int Pages, int MaxBits, tPAddr *PhysAddr)
}
// Slow Allocate
}
// Slow Allocate
- phys = MM_AllocPhysRange(Pages);
+ phys = MM_AllocPhysRange(Pages
, MaxBits
);
// - Was it allocated?
if(phys == 0) {
LEAVE('i', 0);
return 0;
}
// - Was it allocated?
if(phys == 0) {
LEAVE('i', 0);
return 0;
}
- // - Check if the memory is OK
- if(phys + (Pages-1)*0x1000 > maxCheck)
- {
- // Deallocate and return 0
- for(;Pages--;phys+=0x1000)
- MM_DerefPhys(phys);
- LEAVE('i', 0);
- return 0;
- }
// Allocated successfully, now map
ret = MM_MapHWPage(phys, Pages);
// Allocated successfully, now map
ret = MM_MapHWPage(phys, Pages);
UCC
git Repository :: git.ucc.asn.au