2 * linux/arch/arm/boot/compressed/head.S
4 * Copyright (C) 1999, 2000, 2001 Nexus Electronics Ltd
8 /* There are three different ways the kernel can be
9 booted on a 7500 system: from Angel (loaded in RAM), from
10 16-bit ROM or from 32-bit Flash. Luckily, a single kernel
11 image does for them all. */
12 /* This branch is taken if the CPU memory width matches the
13 actual device in use. The default at power on is 16 bits
14 so we must be prepared for a mismatch. */
15 .section ".start", "ax"
19 .word 0xb632 @ mov r11, #0x03200000
21 .word 0x0000 @ mov r0, #0
23 .word 0x0080 @ strb r0, [r11, #0x80]
25 .word 0xf000 @ mov pc, #0
31 /* This is a direct-from-ROM boot. Copy the kernel into
32 RAM and run it there. */
34 mcr p15, 0, r0, c1, c0, 0
37 mov r12, #0x03000000 @ point to LEDs
38 orr r12, r12, #0x00020000
54 mov r12, #0x03000000 @ point to LEDs
55 orr r12, r12, #0x00020000
62 mov r1, #14 /* MACH_TYPE_CLPS7500 */
65 #ifdef CONFIG_ANGELBOOT
66 /* Call Angel to switch into SVC mode. */
70 /* Ensure all interrupts are off and MMU disabled */
76 orr lr, lr, #0x10000000
77 mov r0, #0x30 @ MMU off
78 mcr p15, 0, r0, c1, c0, 0