patch-2.4.4 linux/arch/arm/boot/compressed/setup-sa1100.S

Next file: linux/arch/arm/config.in
Previous file: linux/arch/arm/boot/compressed/ofw-shark.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.3/linux/arch/arm/boot/compressed/setup-sa1100.S linux/arch/arm/boot/compressed/setup-sa1100.S
@@ -24,6 +24,9 @@
 PPC_BASE:	.long	0x90060000
 #define PPAR	0x08
 
+IC_BASE:	.long	0x90050000
+#define ICMR	0x04
+
 UART1_BASE:	.long	0x80010000
 UART3_BASE:	.long	0x80050000
 #define UTCR0           0x00
@@ -52,6 +55,11 @@
 ENTRY(sa1100_setup)
 		mov	r3, r0			@ keep machine type in r3
 
+		@ Clear all interrupt sources
+		ldr	r0, IC_BASE
+		mov	r1, #0
+		str	r1, [r0, #ICMR]
+
 @ Read System Configuration "Register" for Assabet.
 @ (taken from "Intel StrongARM SA-1110 Microprocessor Development Board
 @ User's Guide," p.4-9)
@@ -87,6 +95,7 @@
 		@ Initialize UART (if bootloader has not done it yet)...
 		teq	r3, #MACH_TYPE_BRUTUS
 		teqne	r3, #MACH_TYPE_ASSABET
+		teqne	r3, #MACH_TYPE_GRAPHICSCLIENT
 		bne	skip_uart
 
 		@ UART3 if Assabet is used with Neponset
@@ -95,6 +104,11 @@
 		ldreq	r0, UART3_BASE
 		beq	uart_init
 
+		@ UART3 on GraphicsClient
+		teq	r3, #MACH_TYPE_GRAPHICSCLIENT
+		ldreq	r0, UART3_BASE
+		beq	uart_init
+
 		@ At least for Brutus, the UART1 is used through
 		@ the alternate GPIO function...
 		teq	r3, #MACH_TYPE_BRUTUS
@@ -115,7 +129,8 @@
 
 uart1:		ldr	r0, UART1_BASE
 
-uart_init:	ldr	r1, [r0, #UTSR1]
+uart_init:
+1:		ldr	r1, [r0, #UTSR1]
 		tst	r1, #1<<0		@ TBY
 		bne	1b
 		mov	r1, #0

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)