summaryrefslogtreecommitdiffstats
path: root/firmware/rolo.c
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-02-26 21:15:40 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-02-26 21:15:40 +0000
commit38436038a9e50e8314967672fb5e7b9a5009a4be (patch)
treede8509ed132bbc5a4c039b33950284d525f0485a /firmware/rolo.c
parent935fad7fd1bf16477447f0ff9745f5a72e3bfd62 (diff)
downloadrockbox-38436038a9e50e8314967672fb5e7b9a5009a4be.tar.gz
rockbox-38436038a9e50e8314967672fb5e7b9a5009a4be.tar.bz2
rockbox-38436038a9e50e8314967672fb5e7b9a5009a4be.zip
Ingenic Jz4740:
* Add initial RoLo support * Don't enable IRAM in plugins for now * Initial try at getting PCM working (doesn't crash anymore at least) * Replace hard-coded constant with #define in usb-jz4740 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20115 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/rolo.c')
-rw-r--r--firmware/rolo.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/rolo.c b/firmware/rolo.c
index 014f00e2c7..510720ed1a 100644
--- a/firmware/rolo.c
+++ b/firmware/rolo.c
@@ -180,6 +180,12 @@ void rolo_restart(const unsigned char* source, unsigned char* dest,
"mov pc, %0 \n"
: : "r"(dest)
);
+#elif defined(CPU_MIPS)
+ cpucache_invalidate();
+ asm volatile(
+ "jr %0 \n"
+ : : "r"(dest)
+ );
#endif
}
#endif
@@ -197,7 +203,7 @@ int rolo_load(const char* filename)
{
int fd;
long length;
-#if defined(CPU_COLDFIRE) || defined(CPU_ARM)
+#if defined(CPU_COLDFIRE) || defined(CPU_ARM) || defined(CPU_MIPS)
#if !defined(MI4_FORMAT)
int i;
#endif
@@ -231,7 +237,7 @@ int rolo_load(const char* filename)
#if defined(CPU_COLDFIRE) || defined(CPU_PP) || (CONFIG_CPU==DM320) \
|| defined(CPU_TCC780X) || (CONFIG_CPU==IMX31L) || (CONFIG_CPU == S3C2440) \
- || (CONFIG_CPU==AS3525)
+ || (CONFIG_CPU==AS3525) || (CONFIG_CPU==JZ4732)
/* Read and save checksum */
lseek(fd, FIRMWARE_OFFSET_FILE_CRC, SEEK_SET);
if (read(fd, &file_checksum, 4) != 4) {