/branches/arm/kernel/arch/arm32/src/exception.c |
---|
148,6 → 148,8 |
*/ |
static void irq_exception(int exc_no, istate_t* istate) |
{ |
// TODO: move somewhere to gxemul.c and use machine_irq_exception (or some similar |
// name) to avoid using MACHINE == MACHINE_GXEMUL_TESTARM |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
uint32_t sources = gxemul_irqc_get_sources(); |
int i = 0; |
/branches/arm/kernel/arch/arm32/src/console.c |
---|
34,13 → 34,11 |
#include <console/console.h> |
#include <arch/console.h> |
#include <arch/drivers/gxemul.h> |
#include <arch/machine.h> |
void console_init(devno_t devno) |
{ |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
gxemul_console(devno); |
#endif |
machine_console_init(devno); |
} |
/** Acquire console back for kernel |
48,9 → 46,7 |
*/ |
void arch_grab_console(void) |
{ |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
gxemul_kbd_grab(); |
#endif |
machine_grab_console(); |
} |
/** Return console to userspace |
58,9 → 54,7 |
*/ |
void arch_release_console(void) |
{ |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
gxemul_kbd_release(); |
#endif |
machine_release_console(); |
} |
/** @} |
/branches/arm/kernel/arch/arm32/src/arm32.c |
---|
46,7 → 46,7 |
#include <print.h> |
#include <config.h> |
#include <interrupt.h> |
#include <arch/drivers/init.h> |
#include <arch/machine.h> |
bootinfo_t bootinfo; |
82,7 → 82,7 |
Note: Have to be after page_init() */ |
exception_init(); |
drivers_init(); |
machine_hw_map_init(); |
interrupt_init(); |
console_init(device_assign_devno()); |
89,7 → 89,7 |
//fb_init(0x12000000, 640, 480, 1920, VISUAL_RGB_8_8_8); |
interrupts_enable(); |
while(1); |
// while(1); |
dprintf("arch_post_mm_init end()\n"); |
} |
/branches/arm/kernel/arch/arm32/src/mm/memory_init.c |
---|
34,13 → 34,11 |
#include <arch/mm/memory_init.h> |
#include <arch/mm/page.h> |
#include <arch/drivers/gxemul.h> |
#include <arch/machine.h> |
size_t get_memory_size(void) |
{ |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
return gxemul_get_memory_size(); |
#endif |
return machine_get_memory_size(); |
} |
/branches/arm/kernel/arch/arm32/src/interrupt.c |
---|
35,7 → 35,7 |
#include <arch/asm.h> |
#include <arch/regutils.h> |
#include <ddi/irq.h> |
#include <arch/drivers/gxemul.h> |
#include <arch/machine.h> |
#include <interrupt.h> |
#define IRQ_COUNT 8 |
92,11 → 92,7 |
void interrupt_init(void) |
{ |
irq_init(IRQ_COUNT, IRQ_COUNT); |
#if MACHINE == MACHINE_GXEMUL_TESTARM |
gxemul_timer_irq_init(); |
gxemul_timer_start(GXEMUL_TIMER_FREQ); |
#endif |
machine_timer_irq_start(); |
} |
/branches/arm/kernel/arch/arm32/src/drivers/init.c |
---|
File deleted |
/branches/arm/kernel/arch/arm32/src/drivers/gxemul.c |
---|
41,6 → 41,7 |
#include <print.h> |
#include <ddi/device.h> |
#include <mm/page.h> |
#include <arch/machine.h> |
/** Address of devices. */ |
#define GXEMUL_VIDEORAM 0x10000000 |
78,7 → 79,7 |
/** Initializes #gxemul_hw_map. */ |
void gxemul_hw_map_init(void) |
void machine_hw_map_init(void) |
{ |
gxemul_hw_map.videoram = hw_map(GXEMUL_VIDEORAM, PAGE_SIZE); |
gxemul_hw_map.kbd = hw_map(GXEMUL_KBD, PAGE_SIZE); |
152,7 → 153,7 |
return IRQ_ACCEPT; |
} |
void gxemul_kbd_grab(void) |
void machine_grab_console(void) |
{ |
ipl_t ipl = interrupts_disable(); |
spinlock_lock(&gxemul_irq.lock); |
161,7 → 162,7 |
interrupts_restore(ipl); |
} |
void gxemul_kbd_release(void) |
void machine_release_console(void) |
{ |
ipl_t ipl = interrupts_disable(); |
spinlock_lock(&gxemul_irq.lock); |
173,7 → 174,7 |
/** Return console object representing gxemul console */ |
void gxemul_console(devno_t devno) |
void machine_console_init(devno_t devno) |
{ |
chardev_initialize("gxemul_console", &console, &gxemul_ops); |
stdin = &console; |
280,8 → 281,14 |
irq_register(&gxemul_timer_irq); |
} |
size_t gxemul_get_memory_size(void) |
void machine_timer_irq_start() |
{ |
gxemul_timer_irq_init(); |
gxemul_timer_start(GXEMUL_TIMER_FREQ); |
} |
size_t machine_get_memory_size(void) |
{ |
return *((int*)(GXEMUL_MP + GXEMUL_MP_MEMSIZE_OFFSET)); |
} |