diff options
Diffstat (limited to 'board/amcc/taishan/taishan.c')
| -rw-r--r-- | board/amcc/taishan/taishan.c | 50 | 
1 files changed, 31 insertions, 19 deletions
| diff --git a/board/amcc/taishan/taishan.c b/board/amcc/taishan/taishan.c index b6c306539..fdd82e7cc 100644 --- a/board/amcc/taishan/taishan.c +++ b/board/amcc/taishan/taishan.c @@ -119,36 +119,48 @@ int board_early_init_f (void)  	/*--------------------------------------------------------------------  	 * Setup the interrupt controller polarities, triggers, etc.  	 *-------------------------------------------------------------------*/ -	mtdcr (uic0sr, 0xffffffff);	/* clear all */ -	mtdcr (uic0er, 0x00000000);	/* disable all */ -	mtdcr (uic0cr, 0x00000009);	/* SMI & UIC1 crit are critical */ -	mtdcr (uic0pr, 0xfffffe13);	/* per ref-board manual */ -	mtdcr (uic0tr, 0x01c00008);	/* per ref-board manual */ -	mtdcr (uic0vr, 0x00000001);	/* int31 highest, base=0x000 */ -	mtdcr (uic0sr, 0xffffffff);	/* clear all */ - +	/* +	 * Because of the interrupt handling rework to handle 440GX interrupts +	 * with the common code, we needed to change names of the UIC registers. +	 * Here the new relationship: +	 * +	 * U-Boot name	440GX name +	 * ----------------------- +	 * UIC0		UICB0 +	 * UIC1		UIC0 +	 * UIC2		UIC1 +	 * UIC3		UIC2 +	 */  	mtdcr (uic1sr, 0xffffffff);	/* clear all */  	mtdcr (uic1er, 0x00000000);	/* disable all */ -	mtdcr (uic1cr, 0x00000000);	/* all non-critical */ -	mtdcr (uic1pr, 0xffffe0ff);	/* per ref-board manual */ -	mtdcr (uic1tr, 0x00ffc000);	/* per ref-board manual */ +	mtdcr (uic1cr, 0x00000009);	/* SMI & UIC1 crit are critical */ +	mtdcr (uic1pr, 0xfffffe13);	/* per ref-board manual */ +	mtdcr (uic1tr, 0x01c00008);	/* per ref-board manual */  	mtdcr (uic1vr, 0x00000001);	/* int31 highest, base=0x000 */  	mtdcr (uic1sr, 0xffffffff);	/* clear all */  	mtdcr (uic2sr, 0xffffffff);	/* clear all */  	mtdcr (uic2er, 0x00000000);	/* disable all */  	mtdcr (uic2cr, 0x00000000);	/* all non-critical */ -	mtdcr (uic2pr, 0xffffffff);	/* per ref-board manual */ -	mtdcr (uic2tr, 0x00ff8c0f);	/* per ref-board manual */ +	mtdcr (uic2pr, 0xffffe0ff);	/* per ref-board manual */ +	mtdcr (uic2tr, 0x00ffc000);	/* per ref-board manual */  	mtdcr (uic2vr, 0x00000001);	/* int31 highest, base=0x000 */  	mtdcr (uic2sr, 0xffffffff);	/* clear all */ -	mtdcr (uicb0sr, 0xfc000000);	/* clear all */ -	mtdcr (uicb0er, 0x00000000);	/* disable all */ -	mtdcr (uicb0cr, 0x00000000);	/* all non-critical */ -	mtdcr (uicb0pr, 0xfc000000);	/* */ -	mtdcr (uicb0tr, 0x00000000);	/* */ -	mtdcr (uicb0vr, 0x00000001);	/* */ +	mtdcr (uic3sr, 0xffffffff);	/* clear all */ +	mtdcr (uic3er, 0x00000000);	/* disable all */ +	mtdcr (uic3cr, 0x00000000);	/* all non-critical */ +	mtdcr (uic3pr, 0xffffffff);	/* per ref-board manual */ +	mtdcr (uic3tr, 0x00ff8c0f);	/* per ref-board manual */ +	mtdcr (uic3vr, 0x00000001);	/* int31 highest, base=0x000 */ +	mtdcr (uic3sr, 0xffffffff);	/* clear all */ + +	mtdcr (uic0sr, 0xfc000000);	/* clear all */ +	mtdcr (uic0er, 0x00000000);	/* disable all */ +	mtdcr (uic0cr, 0x00000000);	/* all non-critical */ +	mtdcr (uic0pr, 0xfc000000);	/* */ +	mtdcr (uic0tr, 0x00000000);	/* */ +	mtdcr (uic0vr, 0x00000001);	/* */  	/* Enable two GPIO 10~11 and TraceA signal */  	mfsdr(sdr_pfc0,reg); |