summaryrefslogtreecommitdiff
path: root/firmware/rolo.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/rolo.c')
-rw-r--r--firmware/rolo.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/rolo.c b/firmware/rolo.c
index eb49a18c01..848b35b056 100644
--- a/firmware/rolo.c
+++ b/firmware/rolo.c
@@ -167,6 +167,15 @@ void rolo_restart(const unsigned char* source, unsigned char* dest,
167 "mov r0, #0x10000000 \n" 167 "mov r0, #0x10000000 \n"
168 "mov pc, r0 \n" 168 "mov pc, r0 \n"
169 ); 169 );
170
171#elif defined(CPU_TCC780X)
172 /* Flush cache */
173 flush_icache();
174
175 asm volatile(
176 "mov pc, %0 \n"
177 : : "r"(dest)
178 );
170#endif 179#endif
171} 180}
172#endif 181#endif
@@ -216,7 +225,8 @@ int rolo_load(const char* filename)
216 225
217 length = filesize(fd) - FIRMWARE_OFFSET_FILE_DATA; 226 length = filesize(fd) - FIRMWARE_OFFSET_FILE_DATA;
218 227
219#if defined(CPU_COLDFIRE) || defined(CPU_PP) || (CONFIG_CPU==DM320) 228#if defined(CPU_COLDFIRE) || defined(CPU_PP) || (CONFIG_CPU==DM320) \
229 || defined(CPU_TCC780X)
220 /* Read and save checksum */ 230 /* Read and save checksum */
221 lseek(fd, FIRMWARE_OFFSET_FILE_CRC, SEEK_SET); 231 lseek(fd, FIRMWARE_OFFSET_FILE_CRC, SEEK_SET);
222 if (read(fd, &file_checksum, 4) != 4) { 232 if (read(fd, &file_checksum, 4) != 4) {