[BACK]Return to loader.S CVS log [TXT][DIR] Up to [local] / funnyos / arch / testarm / boot

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
Branch: MAIN
Changes since 1.1: +2 -3 lines

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