summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:27:48 +0000
committerRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:27:48 +0000
commit6aa807d32170eb463ede46397cb43c1c4088cbe9 (patch)
treebad103ff445aa938ca8e579ab72ccf513122749c /apps/plugins
parent8ea82ff4a8b03141c7bc0491dda351dc0645ccd8 (diff)
downloadrockbox-6aa807d32170eb463ede46397cb43c1c4088cbe9.zip
rockbox-6aa807d32170eb463ede46397cb43c1c4088cbe9.tar.gz
rockbox-6aa807d32170eb463ede46397cb43c1c4088cbe9.tar.bz2
rockbox-6aa807d32170eb463ede46397cb43c1c4088cbe9.tar.xz
Sansa AMS: PCM driver (FS#9592)
Note that on low memory targets (Clip/m200v4 tested) you will encounter random crashes. Applying FS#9332 seems to help a lot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19342 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/plugin.lds14
1 files changed, 14 insertions, 0 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 52ec938..0c5c1e8 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -37,6 +37,8 @@ OUTPUT_FORMAT(elf32-sh)
#include "imx31l.h"
/* Reserve 1mb for LCD buffer/TTB as in app.lds */
#define DRAMSIZE (MEMORYSIZE * 0x100000 - 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE
+#elif CONFIG_CPU==AS3525 && MEMORYSIZE <= 2
+#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET
#else
#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE
#endif
@@ -87,17 +89,29 @@ OUTPUT_FORMAT(elf32-sh)
#define IRAM DRAM
#define IRAMSIZE 0
#elif CONFIG_CPU==AS3525
+#if MEMORYSIZE <= 2
+#define IRAMSIZE 0 /* simulates no IRAM since codec is already entirely in IRAM */
+#define CODEC_ORIGIN (0x50000 - CODEC_SIZE)
+#define PLUGIN_ORIGIN (DRAMORIG + DRAMSIZE)
+#else
#define IRAMORIG 0x0
#define IRAMSIZE 0x50000
+#endif
#define DRAMORIG 0x30000000
+
#else
#define DRAMORIG 0x09000000 + STUBOFFSET
#endif
#define PLUGIN_LENGTH PLUGIN_BUFFER_SIZE
+#ifndef CODEC_ORIGIN /* targets can specify another origin */
#define CODEC_ORIGIN (DRAMORIG + (DRAMSIZE))
+#endif
+
+#ifndef PLUGIN_ORIGIN /* targets can specify another origin */
#define PLUGIN_ORIGIN (CODEC_ORIGIN + CODEC_SIZE)
+#endif
#ifdef CODEC
#define THIS_LENGTH CODEC_SIZE