summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed/setup-sa1100.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boot/compressed/setup-sa1100.S')
-rw-r--r--arch/arm/boot/compressed/setup-sa1100.S26
1 files changed, 21 insertions, 5 deletions
diff --git a/arch/arm/boot/compressed/setup-sa1100.S b/arch/arm/boot/compressed/setup-sa1100.S
index 6fd5b84e6..f7657773b 100644
--- a/arch/arm/boot/compressed/setup-sa1100.S
+++ b/arch/arm/boot/compressed/setup-sa1100.S
@@ -9,8 +9,9 @@
* Runtime test for Neponset added.
*/
-#define __ASSEMBLY__
#include <linux/linkage.h>
+#include <linux/config.h>
+#include <asm/mach-types.h>
.text
@@ -44,6 +45,12 @@ SCR_loc: .long SYMBOL_NAME(SCR_value)
#define GPIO_2_9 0x3fc
+/*
+ * void sa1100_setup( int arch_id );
+ *
+ * This is called from decompress_kernel() with the arch_decomp_setup() macro.
+ */
+
ENTRY(sa1100_setup)
mov r3, r0 @ keep machine type in r3
@@ -51,7 +58,7 @@ ENTRY(sa1100_setup)
@ (taken from "Intel StrongARM SA-1110 Microprocessor Development Board
@ User's Guide," p.4-9)
- teq r3, #25 @ MACH_TYPE_ASSABET
+ teq r3, #MACH_TYPE_ASSABET
bne skip_SCR
ldr r0, GPIO_BASE
@@ -80,8 +87,8 @@ ENTRY(sa1100_setup)
skip_SCR:
@ Initialize UART (if bootloader has not done it yet)...
- teq r3, #16 @ MACH_TYPE_BRUTUS
- teqne r3, #25 @ MACH_TYPE_ASSABET
+ teq r3, #MACH_TYPE_BRUTUS
+ teqne r3, #MACH_TYPE_ASSABET
bne skip_uart
@ UART3 if Assabet is used with Neponset
@@ -92,7 +99,7 @@ skip_SCR:
@ At least for Brutus, the UART1 is used through
@ the alternate GPIO function...
- teq r3, #16 @ MACH_TYPE_BRUTUS
+ teq r3, #MACH_TYPE_BRUTUS
bne uart1
alt_GPIO_uart: ldr r0, GPIO_BASE
@@ -126,5 +133,14 @@ uart_init: ldr r1, [r0, #UTSR1]
mov r1, #0xff @ flush status reg
str r1, [r0, #UTSR0]
skip_uart:
+
+ @ Extra specific setup calls
+ @ The machine type is passed in r0
+ mov r0, r3
+#ifdef CONFIG_SA1100_NANOENGINE
+ teq r0, #32 @ MACH_TYPE_NANOENGINE
+ beq SYMBOL_NAME(bse_setup)
+#endif
+
out: mov pc, lr