47,9 → 47,10 |
#include <config.h> |
#include <interrupt.h> |
#include <arch/regutils.h> |
//#include <arch/drivers/init.h> |
#include <arch/drivers/gxemul.h> |
#include <userspace.h> |
bootinfo_t bootinfo; |
uintptr_t supervisor_sp /*__attribute__ ((section (".text")))*/; |
|
//TODO: Remove include and move into exceptio.c |
#include <arch/exception.h> |
96,9 → 97,6 |
init.tasks[i].addr = bootinfo.tasks[i].addr; |
init.tasks[i].size = bootinfo.tasks[i].size; |
} |
|
/* TODO this code just setups irq testing bed */ |
setup_exception_stacks(); |
} |
|
void arch_pre_mm_init(void) |
107,6 → 105,9 |
|
/* It is not assumed by default */ |
interrupts_disable(); |
|
setup_exception_stacks(); |
|
|
} |
|
114,29 → 115,22 |
|
void arch_post_mm_init(void) |
{ |
dprintf("arch_post_mm_init start()\n"); |
/* Initialize dispatch table |
Note: Have to be after page_init() */ |
// dprintf("arch_post_mm_init start()\n"); |
gxemul_hw_map_init(); |
|
/* Initialize dispatch table */ |
exception_init(); |
|
// drivers_init(); |
// drivers_init(); |
interrupt_init(); |
|
// console_init(device_assign_devno()); |
console_init(device_assign_devno()); |
//fb_init(0x12000000, 640, 480, 1920, VISUAL_RGB_8_8_8); |
|
// interrupts_enable(); |
// asm __volatile__ ("ldr pc, =0x70000000"); // prefetch exception |
//while(1); |
/* |
uspace_arg_t uspace; |
uspace.uspace_entry = (void*)prefetch_exception_generator; |
uspace.uspace_stack = (void*)0x6000000; |
uspace.uspace_uarg = &uspace; |
interrupts_enable(); |
dprintf("arch_post_mm_init end()\n"); |
// while(1); |
|
userspace(&uspace); |
*/ |
dprintf("arch_post_mm_init end()\n"); |
} |
|
void arch_post_cpu_init(void) |
163,7 → 157,7 |
/** Perform arm32 specific tasks needed before the new thread is scheduled. */ |
void before_thread_runs_arch(void) |
{ |
/* TODO */ |
supervisor_sp = (uintptr_t) &THREAD->kstack/*[THREAD_STACK_SIZE-SP_DELTA]*/; |
} |
|
void after_thread_ran_arch(void) |