diff options
author | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2009-02-26 21:15:40 +0000 |
---|---|---|
committer | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2009-02-26 21:15:40 +0000 |
commit | 38436038a9e50e8314967672fb5e7b9a5009a4be (patch) | |
tree | de8509ed132bbc5a4c039b33950284d525f0485a /firmware/rolo.c | |
parent | 935fad7fd1bf16477447f0ff9745f5a72e3bfd62 (diff) | |
download | rockbox-38436038a9e50e8314967672fb5e7b9a5009a4be.tar.gz 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.c | 10 |
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) { |