summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2012-11-20 18:27:25 +0100
committerMarcin Bukat <marcin.bukat@gmail.com>2012-11-20 18:27:25 +0100
commitb3cb6d516818168e0605457ae6c42b759000a0dc (patch)
treeb711561d2b32d2fb61450b7299281958f16f522f /apps/debug_menu.c
parentf44d95630c1629627b99a2ccf06b434d23027bb3 (diff)
downloadrockbox-b3cb6d516818168e0605457ae6c42b759000a0dc.zip
rockbox-b3cb6d516818168e0605457ae6c42b759000a0dc.tar.gz
rockbox-b3cb6d516818168e0605457ae6c42b759000a0dc.tar.bz2
rockbox-b3cb6d516818168e0605457ae6c42b759000a0dc.tar.xz
rk27xx: dump ROM content
Change-Id: Ib70300bb1a78b49730f3942ddb2085e770dabfb9
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index ad20fe0..b332d5d 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -1805,6 +1805,38 @@ static bool dbg_save_roms(void)
return false;
}
+#elif CONFIG_CPU == RK27XX
+static bool dbg_save_roms(void)
+{
+ char buf[0x200];
+
+ int fd = creat("/rom.bin", 0666);
+ if(fd < 0)
+ return false;
+
+ for(int addr = 0; addr < 0x2000; addr += sizeof(buf))
+ {
+ int old_irq = disable_irq_save();
+
+ /* map rom at 0 */
+ SCU_REMAP = 0;
+ commit_discard_idcache();
+
+ /* copy rom */
+ memcpy((void *)buf, (void *)addr, sizeof(buf));
+
+ /* map iram back at 0 */
+ SCU_REMAP = 0xdeadbeef;
+ commit_discard_idcache();
+
+ restore_irq(old_irq);
+
+ write(fd, (void *)buf, sizeof(buf));
+ }
+ close(fd);
+
+ return false;
+}
#endif /* CPU */
#ifndef SIMULATOR
@@ -2162,7 +2194,7 @@ static const struct {
#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || \
(defined(CPU_PP) && !(CONFIG_STORAGE & STORAGE_SD)) || \
CONFIG_CPU == IMX31L || defined(CPU_TCC780X) || CONFIG_CPU == AS3525v2 || \
- CONFIG_CPU == AS3525
+ CONFIG_CPU == AS3525 || CONFIG_CPU == RK27XX
{ "Dump ROM contents", dbg_save_roms },
#endif
#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || defined(CPU_PP) \