diff --git a/kaleid/kernel/init/init.c b/kaleid/kernel/init/init.c index 0875b1e..5c2a9c2 100644 --- a/kaleid/kernel/init/init.c +++ b/kaleid/kernel/init/init.c @@ -50,7 +50,6 @@ noreturn void BtStartKern(multiboot_info_t *mbInfo, uint mbMagic, void *codeSeg) MmInitMemoryMap(); MmInitPaging(); - // Interrupts launching KeSetupIDT(); KeEnableIRQs(); diff --git a/kaleid/kernel/mm/paging.c b/kaleid/kernel/mm/paging.c index d9827dd..b87920f 100644 --- a/kaleid/kernel/mm/paging.c +++ b/kaleid/kernel/mm/paging.c @@ -31,7 +31,7 @@ enum MF_NX = 1 << 31 }; -#define RAM 8 +#define RAM_MAX 16 #define NB_4K 2 //----------- @@ -40,7 +40,7 @@ volatile pdpe_t MmPML4[512] __attribute__((__aligned__(4096))); volatile pde_t MmPDP[512] __attribute__((__aligned__(4096))); -volatile pde_t MmPD[512 * RAM] __attribute__((__aligned__(4096))); +volatile pde_t MmPD[512 * RAM_MAX] __attribute__((__aligned__(4096))); volatile pte_t MmPT[512 * NB_4K] __attribute__((__aligned__(4096))); @@ -60,7 +60,7 @@ void MmInitPaging(void) // STACK GUARD PAGE if ((ulong)i*4096 == (ulong)BtLoaderInfo.stackEndAddr) { - MmPT[i] = ((ulong)i * 4096) | MF_PRESENT; + MmPT[i] = ((ulong)i * 4096); MmStackGuards[0] = i; continue; } @@ -76,7 +76,7 @@ void MmInitPaging(void) // STACK GARD PAGE if ((ulong)i*4096 == (ulong)BtLoaderInfo.kernelEndAddr) { - MmPT[i] = ((ulong)i * 4096) | MF_PRESENT; + MmPT[i] = ((ulong)i * 4096); MmStackGuards[1] = i; continue; } @@ -88,11 +88,11 @@ void MmInitPaging(void) MmPD[i] = (ulong)(&MmPT[i*512])| MF_PRESENT | MF_READWRITE; } - for (int i = NB_4K; i < 512 * RAM; i++) { + for (int i = NB_4K; i < 512 * RAM_MAX; i++) { MmPD[i] = ((ulong)i * 2048 * 1024) | MF_PRESENT | MF_READWRITE | MF_HUGE; } - for (int i = 0; i < RAM; i++) { + for (int i = 0; i < RAM_MAX; i++) { MmPDP[i] = (ulong)(&MmPD[i*512])| MF_PRESENT | MF_READWRITE; } diff --git a/kaleid/kernel/sh/shcmds.c b/kaleid/kernel/sh/shcmds.c index bf89436..b48e50a 100644 --- a/kaleid/kernel/sh/shcmds.c +++ b/kaleid/kernel/sh/shcmds.c @@ -224,7 +224,7 @@ error_t CmdDie(int argc, char **argv, char *cmdline) error_t CmdPF(int argc, char **argv, char *cmdline) { - *((char*)0xDEADBEEF0) = 1; + *((char*)BtLoaderInfo.stackEndAddr + 16) = 1; return EOK; }