/* * $Id: loader.S,v 1.1 2007/10/16 08:41:04 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 irqc_intr nop _vector_fiq: nop /* last word of the physical memory */ Astack: .word 0x01fffffc