summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/system-s5l8700.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8700/system-s5l8700.c')
-rw-r--r--firmware/target/arm/s5l8700/system-s5l8700.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/firmware/target/arm/s5l8700/system-s5l8700.c b/firmware/target/arm/s5l8700/system-s5l8700.c
index 070d3b9462..3477bb8886 100644
--- a/firmware/target/arm/s5l8700/system-s5l8700.c
+++ b/firmware/target/arm/s5l8700/system-s5l8700.c
@@ -154,20 +154,19 @@ void system_init(void)
154 154
155void system_reboot(void) 155void system_reboot(void)
156{ 156{
157#ifdef IPODNANO2G 157#ifdef IPOD_NANO2G
158 if (ftl_sync() != 0) panicf("Failed to unmount flash!"); 158 if (ftl_sync() != 0) panicf("Failed to unmount flash!");
159 159
160 /* Reset the SoC */ 160 /* Reset the SoC */
161 asm volatile(" \ 161 asm volatile("msr CPSR_c, #0xd3 \n"
162 msr CPSR_c, #0xd3 \ 162 "mov r5, #0x110000 \n"
163 mov r5, #0x110000 \ 163 "add r5, r5, #0xff \n"
164 add r5, r5, #0xff \ 164 "add r6, r5, #0xa00 \n"
165 add r6, r5, #0xa00 \ 165 "mov r10, #0x3c800000 \n"
166 mov r10, #0x3c800000 \ 166 "str r6, [r10] \n"
167 str r6, [r10] \ 167 "mov r6, #0xff0 \n"
168 mov r6, #0xff0 \ 168 "str r6, [r10,#4] \n"
169 str r6, [r10,#4] \ 169 "str r5, [r10] \n");
170 str r5, [r10]")
171 170
172 /* Wait for reboot to kick in */ 171 /* Wait for reboot to kick in */
173 while(1); 172 while(1);