From 6cd78f195f03007e6e6987217df4cd40079d03a2 Mon Sep 17 00:00:00 2001 From: josh Date: Thu, 7 Jan 2010 15:56:53 +0000 Subject: [PATCH] changed kernel stack top to 0x40000000 (1GB) virtual git-svn-id: svn://anubis/hos/trunk@81 5b3e749e-e535-0410-8002-a9bb6afbdfca --- kernel/boot/k_bootstrap.cc | 7 +++---- kernel/include/hos_defines.h | 2 +- kernel/sys/cpu.h | 3 +++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/kernel/boot/k_bootstrap.cc b/kernel/boot/k_bootstrap.cc index 75f35b8..a405229 100644 --- a/kernel/boot/k_bootstrap.cc +++ b/kernel/boot/k_bootstrap.cc @@ -4,6 +4,7 @@ #include "hos_types.h" #include "hos_defines.h" #include "multiboot.h" +#include "sys/cpu.h" #include "k_early_panic.h" #include "mm/mm.h" #include "lang/kio.h" @@ -63,10 +64,8 @@ void k_bootstrap(mb_info_t * mb_info, u32_t mb_magic) kio_bootstrap(); DEBUG_LETTER(5, 'f'); - __asm__ __volatile__ ("mov $0xF0000000, %%esp;" - : /* no outputs */ - : /* no inputs */ - : /* no clobbers */); + /* begin using the permanent stack */ + write_esp(KERNEL_STACK_TOP); k_main(); idle_loop(); diff --git a/kernel/include/hos_defines.h b/kernel/include/hos_defines.h index d1231b8..5cd9ea4 100644 --- a/kernel/include/hos_defines.h +++ b/kernel/include/hos_defines.h @@ -31,7 +31,7 @@ extern u8_t _end; #define KERNEL_VIRTUAL_ADDRESS ((u32_t)KERNEL_CODE) #define KERNEL_SIZE ((u32_t)(KERNEL_END - KERNEL_CODE)) -#define KERNEL_STACK_TOP 0xF0000000 +#define KERNEL_STACK_TOP 0x40000000 #define KERNEL_TIMER_FREQ 1000 diff --git a/kernel/sys/cpu.h b/kernel/sys/cpu.h index d30f3a7..1f9ff4b 100644 --- a/kernel/sys/cpu.h +++ b/kernel/sys/cpu.h @@ -34,4 +34,7 @@ static u32_t read_cr3() #define write_cr3(val) \ __asm__ __volatile__ ("movl %0, %%cr3" : : "r" (val)); +#define write_esp(val) \ + __asm__ __volatile__ ("movl %0, %%esp" : : "r" (val)); + #endif