![]() ![]() | ![]() |
File: [local] / funnyos / arch / testarm / boot / loader.S (download)
Revision 1.2, Mon Oct 29 20:34:23 2007 UTC (16 years, 8 months ago) by init
jump to irq_trampoline on ARM IRQ (0x00000018); when an irq device is attached to system, it registers its xxx_irq to jump into from irq_trampoline(). |
/* * $Id: loader.S,v 1.2 2007/10/29 20:34:23 init Exp $ */ /* * FunnyOS loader * for gxemul test arm machines. */ .text .global _start .global main _start: bl _vector_reset /* reset */ bl _vector_undef /* undefined insn */ bl _vector_swi /* software intr handler */ bl _vector_dataabrt /* data abort */ bl _vector_prefabrt /* prefetch abort */ .word 0x00000000 /* [reserved] */ bl _vector_irq /* IRQ */ bl _vector_fiq /* Fast Interrupt Request */ _vector_reset: /* Will enter here just right after RESET. Set up stack and call main. */ ldr r13, Astack /* XXX stack at the end of phys mem */ b main /* NOTREACHED */ _vector_undef: /* Undefined insn handler */ mov pc, r14 _vector_swi: mov pc, r14 _vector_dataabrt: /* XXX fatal */ nop _vector_prefabrt: nop _vector_irq: bl irq_trampoline _vector_fiq: nop /* last word of the physical memory */ Astack: .word 0x01fffffc