/******************************************************************************
 * Copyright (c) 2004, 2008 IBM Corporation
 * All rights reserved.
 * This program and the accompanying materials
 * are made available under the terms of the BSD License
 * which accompanies this distribution, and is available at
 * http://www.opensource.org/licenses/bsd-license.php
 *
 * Contributors:
 *     IBM Corporation - initial implementation
 *****************************************************************************/

#include <cpu.h>
#include <xvect.h>

	.globl _start
	/* All exception vectors *******************/
_start:
	.org 0x100
	/* check if Master / Slave *****************/
	/* Master will go to XVECT_M_HANDLER       */
	/* Slave  will go to XVECT_S_HANDLER       */
	ld	r3,XVECT_S_HANDLER(0)
	mfspr	r0, PIR
	cmpwi	r0, 0
	bne	0f
	ld	r3,XVECT_M_HANDLER(0)
0:
	mtctr	r3
	li	r0,0x100
	bctr

	/* FIXME: Also need 0280, 0380, 0f20, etc. */

	.irp i, 0x0200,0x0280,0x0300,0x0380,0x0400,0x0480,0x0500,0x0600,0x0700, \
		0x0800,0x0900,0x0a00,0x0b00,0x0c00,0x0d00,0x0e00,0x0f00, \
		0x1000,0x1100,0x1200,0x1300,0x1400,0x1500,0x1600,0x1700, \
		0x1800,0x1900,0x1a00,0x1b00,0x1c00,0x1d00,0x1e00,0x1f00, \
		0x2000,0x2100,0x2200,0x2300,0x2400,0x2500,0x2600,0x2700, \
		0x2800,0x2900,0x2a00,0x2b00,0x2c00,0x2d00,0x2e00,0x2f00
	.org \i

	/* enable this if you get exceptions before the console works    */
	/* this will allow using the hardware debugger to see where      */
	/* it traps, and with what register values etc.                  */
	// b	$

	mtsprg	0, r0
	mfctr	r0
	mtsprg  2,r0
	mflr	r0
	mtsprg  3,r0
	ld	r0, XVECT_M_HANDLER(0)
	mtctr	r0
	li	r0, \i
	bctr
	.endr


	.org XVECT_M_HANDLER
	.quad 0

	.org XVECT_S_HANDLER
	.quad 0

	.org XVECT_TOPADDR
	.byte 0x36		# to fill out to exactly 16kB
