diff options
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/start.S | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/start.S b/arch/powerpc/cpu/mpc85xx/start.S index 2b29364c3..93de9df0b 100644 --- a/arch/powerpc/cpu/mpc85xx/start.S +++ b/arch/powerpc/cpu/mpc85xx/start.S @@ -1493,6 +1493,39 @@ trap_init:  	cmplw	0,r7,r8  	blt	2b +	/* Update IVORs as per relocated vector table address */ +	li	r7,0x0100 +	mtspr	IVOR0,r7	/* 0: Critical input */ +	li	r7,0x0200 +	mtspr	IVOR1,r7	/* 1: Machine check */ +	li	r7,0x0300 +	mtspr	IVOR2,r7	/* 2: Data storage */ +	li	r7,0x0400 +	mtspr	IVOR3,r7	/* 3: Instruction storage */ +	li	r7,0x0500 +	mtspr	IVOR4,r7	/* 4: External interrupt */ +	li	r7,0x0600 +	mtspr	IVOR5,r7	/* 5: Alignment */ +	li	r7,0x0700 +	mtspr	IVOR6,r7	/* 6: Program check */ +	li	r7,0x0800 +	mtspr	IVOR7,r7	/* 7: floating point unavailable */ +	li	r7,0x0900 +	mtspr	IVOR8,r7	/* 8: System call */ +	/* 9: Auxiliary processor unavailable(unsupported) */ +	li	r7,0x0a00 +	mtspr	IVOR10,r7	/* 10: Decrementer */ +	li	r7,0x0b00 +	mtspr	IVOR11,r7	/* 11: Interval timer */ +	li	r7,0x0c00 +	mtspr	IVOR12,r7	/* 12: Watchdog timer */ +	li	r7,0x0d00 +	mtspr	IVOR13,r7	/* 13: Data TLB error */ +	li	r7,0x0e00 +	mtspr	IVOR14,r7	/* 14: Instruction TLB error */ +	li	r7,0x0f00 +	mtspr	IVOR15,r7	/* 15: Debug */ +  	lis	r7,0x0  	mtspr	IVPR,r7 |