#include <asm/arch/cpu.h>
-#define S5P_OTHERS_REG_BASE(x) (S5P_PA_CLK_OTHERS + (x))
-#define S5PC1XX_SW_RST S5P_OTHERS_REG_BASE(0x0)
+#define S5PC100_SWRESET 0xE0200000
+#define S5PC110_SWRESET 0xE0102000
.globl reset_cpu
reset_cpu:
ldr r1, =S5PC1XX_PRO_ID
ldr r2, [r1]
- ldr r3, =0xFFF
- and r2, r3, r2, lsr #12
- ldr r3, =0xC000
- orr r2, r3, r2
- ldr r1, =S5PC1XX_SW_RST
+ ldr r4, =0x00010000
+ and r4, r2, r4
+ cmp r4, #0
+ bne 110f
+ /* S5PC100 */
+ ldr r1, =S5PC100_SWRESET
+ ldr r2, =0xC100
+ b 200f
+110: /* S5PC110 */
+ ldr r1, =S5PC110_SWRESET
+ mov r2, #1
+200:
str r2, [r1]
_loop_forever:
b _loop_forever