diff options
-rw-r--r-- | apps/plugins/plugin.lds | 4 | ||||
-rw-r--r-- | firmware/export/config.h | 10 | ||||
-rw-r--r-- | firmware/export/config/sansaclipplus.h | 2 | ||||
-rw-r--r-- | firmware/export/config/sansaclipv2.h | 2 | ||||
-rw-r--r-- | firmware/export/config/sansafuzev2.h | 2 | ||||
-rw-r--r-- | firmware/target/arm/as3525/app.lds | 12 |
6 files changed, 18 insertions, 14 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 0ef27603e9..3a88867fa1 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -68,7 +68,7 @@ OUTPUT_FORMAT(elf32-littlemips) #elif CONFIG_CPU==AS3525 || CONFIG_CPU==AS3525v2 #include "cpu.h" #define DRAMORIG DRAM_ORIG -#ifdef AMS_LOWMEM +#if defined(AMS_LOWMEM) || (CONFIG_CPU == AS3525v2) #define DRAMSIZE (DRAM_SIZE - PLUGIN_BUFFER_SIZE - STUBOFFSET - TTB_SIZE) #else #define DRAMSIZE (DRAM_SIZE - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE - TTB_SIZE) @@ -131,7 +131,7 @@ OUTPUT_FORMAT(elf32-littlemips) #define IRAMSIZE 0 #elif CONFIG_CPU==AS3525 || CONFIG_CPU==AS3525v2 -#ifdef AMS_LOWMEM +#if defined(AMS_LOWMEM) || (CONFIG_CPU == AS3525v2) #define IRAMSIZE 0 /* simulates no IRAM since codec is already entirely in IRAM */ #define CODEC_ORIGIN (IRAM_ORIG + IRAM_SIZE - CODEC_SIZE) #define PLUGIN_ORIGIN (DRAM_ORIG + DRAMSIZE) diff --git a/firmware/export/config.h b/firmware/export/config.h index 5bff51fbef..04bf15faaf 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -719,8 +719,8 @@ Lyre prototype 1 */ defined(CPU_COLDFIRE) || /* Coldfire: core, plugins, codecs */ \ defined(CPU_PP) || /* PortalPlayer: core, plugins, codecs */ \ (CONFIG_CPU == AS3525 && MEMORYSIZE > 2) || /* AS3525 +2MB: core, plugins, codecs */ \ - (CONFIG_CPU == AS3525v2) || /* AS3525v2: core, plugins, codecs */ \ - (CONFIG_CPU == AS3525 && MEMORYSIZE <= 2 && !defined(PLUGIN) && !defined(CODEC)) || /* AS3525 2MB:core only */ \ + (CONFIG_CPU == AS3525 && MEMORYSIZE <= 2 && !defined(PLUGIN) && !defined(CODEC)) || /* AS3525 2MB: core only */ \ + (CONFIG_CPU == AS3525v2 && !defined(PLUGIN) && !defined(CODEC)) || /* AS3525v2: core only */ \ (CONFIG_CPU == PNX0101) || \ defined(CPU_S5L870X)) || /* Samsung S5L8700: core, plugins, codecs */ \ (CONFIG_CPU == JZ4732 && !defined(PLUGIN) && !defined(CODEC)) /* Jz4740: core only */ @@ -729,7 +729,8 @@ Lyre prototype 1 */ #define IDATA_ATTR __attribute__ ((section(".idata"))) #define IBSS_ATTR __attribute__ ((section(".ibss"))) #define USE_IRAM -#if CONFIG_CPU != SH7034 && (CONFIG_CPU != AS3525 || MEMORYSIZE > 2) && CONFIG_CPU != JZ4732 +#if CONFIG_CPU != SH7034 && (CONFIG_CPU != AS3525 || MEMORYSIZE > 2) \ + && CONFIG_CPU != JZ4732 #define PLUGIN_USE_IRAM #endif #if defined(CPU_ARM) @@ -747,7 +748,8 @@ Lyre prototype 1 */ #define IBSS_ATTR #define STATICIRAM static #endif -#if (defined(CPU_PP) || (CONFIG_CPU == AS3525)) && !defined(SIMULATOR) && !defined(BOOTLOADER) +#if (defined(CPU_PP) || (CONFIG_CPU == AS3525)) \ + && !defined(SIMULATOR) && !defined(BOOTLOADER) /* Functions that have INIT_ATTR attached are NOT guaranteed to survive after * root_menu() has been called. Their code may be overwritten by other data or * code in order to save RAM, and references to them might point into diff --git a/firmware/export/config/sansaclipplus.h b/firmware/export/config/sansaclipplus.h index c5e6aa5c34..ed8c7bb685 100644 --- a/firmware/export/config/sansaclipplus.h +++ b/firmware/export/config/sansaclipplus.h @@ -112,7 +112,7 @@ #define HAVE_FAT16SUPPORT /* The number of bytes reserved for loadable codecs */ -#define CODEC_SIZE 0x100000 +#define CODEC_SIZE (0x100000-0x8000) /* The number of bytes reserved for loadable plugins */ #define PLUGIN_BUFFER_SIZE 0x80000 diff --git a/firmware/export/config/sansaclipv2.h b/firmware/export/config/sansaclipv2.h index 8ac90ddcde..876d95ac22 100644 --- a/firmware/export/config/sansaclipv2.h +++ b/firmware/export/config/sansaclipv2.h @@ -108,7 +108,7 @@ #define HAVE_FAT16SUPPORT /* The number of bytes reserved for loadable codecs */ -#define CODEC_SIZE 0x100000 +#define CODEC_SIZE (0x100000-0x8000) /* The number of bytes reserved for loadable plugins */ #define PLUGIN_BUFFER_SIZE 0x80000 diff --git a/firmware/export/config/sansafuzev2.h b/firmware/export/config/sansafuzev2.h index 73ac7ce17a..71d76f4725 100644 --- a/firmware/export/config/sansafuzev2.h +++ b/firmware/export/config/sansafuzev2.h @@ -100,7 +100,7 @@ #define HAVE_FAT16SUPPORT /* The number of bytes reserved for loadable codecs */ -#define CODEC_SIZE 0x100000 +#define CODEC_SIZE (0x100000-0x8000) /* The number of bytes reserved for loadable plugins */ #define PLUGIN_BUFFER_SIZE 0x80000 diff --git a/firmware/target/arm/as3525/app.lds b/firmware/target/arm/as3525/app.lds index 56a4b20fa6..f9d070e60d 100644 --- a/firmware/target/arm/as3525/app.lds +++ b/firmware/target/arm/as3525/app.lds @@ -23,8 +23,10 @@ STARTUP(target/arm/crt0.o) /* End of the audio buffer, where the codec buffer starts */ #define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) +#define CODEC_BUFFER_FILLS_IRAM defined(AMS_LOWMEM) || (CONFIG_CPU == AS3525v2) -#ifdef AMS_LOWMEM +#if CODEC_BUFFER_FILLS_IRAM +/* Entire codec buffer in IRAM */ #define DRAMSIZE (DRAM_SIZE - STUBOFFSET - PLUGINSIZE - TTB_SIZE) #define CODECORIG (IRAMORIG + (IRAM_SIZE - CODEC_SIZE)) #define IRAMSIZE (IRAM_SIZE - CODEC_SIZE) @@ -36,7 +38,7 @@ STARTUP(target/arm/crt0.o) /* Where the codec buffer ends, and the plugin buffer starts */ -#ifdef AMS_LOWMEM +#if CODEC_BUFFER_FILLS_IRAM #define ENDADDR (ENDAUDIOADDR) #else #define ENDADDR (ENDAUDIOADDR + CODECSIZE) @@ -44,7 +46,7 @@ STARTUP(target/arm/crt0.o) MEMORY { -#ifdef AMS_LOWMEM +#if CODEC_BUFFER_FILLS_IRAM CODEC_IRAM : ORIGIN = CODECORIG, LENGTH = CODEC_SIZE #endif IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE @@ -110,7 +112,7 @@ SECTIONS _iend = .; } > IRAM - .init CODECORIG : + .init ENDADDR : { . = ALIGN(4); _initstart = .; @@ -154,7 +156,7 @@ SECTIONS { codecbuf = .; _codecbuf = .; -#ifdef AMS_LOWMEM +#if CODEC_BUFFER_FILLS_IRAM } > CODEC_IRAM #else } > DRAM |