summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/plugin.lds2
-rw-r--r--firmware/app.lds2
-rw-r--r--firmware/drivers/lcd-16bit.c2
-rw-r--r--firmware/export/config-iaudiox5.h2
-rw-r--r--firmware/export/config.h5
5 files changed, 10 insertions, 3 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 010a75ed13..eb21dd6eec 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -30,7 +30,7 @@ OUTPUT_FORMAT(elf32-sh)
#define IRAMSIZE 0xc000
#elif defined(IAUDIO_X5)
#define DRAMORIG 0x31000000
-#define IRAMORIG 0x1000c000
+#define IRAMORIG 0x10014000
#define IRAMSIZE 0xc000
#elif defined(ARCH_IPOD)
#define DRAMORIG 0x00000000
diff --git a/firmware/app.lds b/firmware/app.lds
index 0d7c191660..3416f5c6b6 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -125,7 +125,7 @@ _pluginbuf = 0;
#elif defined(IAUDIO_X5)
#define DRAMORIG 0x31000000 + STUBOFFSET
#define IRAMORIG 0x10000000
-#define IRAMSIZE 0xc000
+#define IRAMSIZE 0x14000
#elif (CONFIG_CPU==PP5002) || (CONFIG_CPU==PP5020)
#define DRAMORIG 0x00000000 + STUBOFFSET
#define IRAMORIG 0x40000000
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index e98403aa1b..d337ea95a4 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -43,7 +43,7 @@ enum fill_opt {
};
/*** globals ***/
-fb_data lcd_framebuffer[LCD_HEIGHT][LCD_WIDTH] __attribute__ ((aligned (16)));
+fb_data lcd_framebuffer[LCD_HEIGHT][LCD_WIDTH] IRAM_LCDFRAMEBUFFER __attribute__ ((aligned (16)));
static fb_data* lcd_backdrop = NULL;
static long lcd_backdrop_offset IDATA_ATTR = 0;
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index 746ca26e31..b33bae913b 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -23,6 +23,8 @@
#define LCD_DEPTH 16 /* pseudo 262.144 colors */
#define LCD_PIXELFORMAT RGB565 /* rgb565 */
+#define IRAM_LCDFRAMEBUFFER IDATA_ATTR /* put the lcd frame buffer in IRAM */
+
/* remote LCD */
#define LCD_REMOTE_WIDTH 128
#define LCD_REMOTE_HEIGHT 64
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 5420cb37f4..d919b8b4f6 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -229,4 +229,9 @@
#define IBSS_ATTR
#endif
+#ifndef IRAM_LCDFRAMEBUFFER
+/* if the LCD framebuffer has not been moved to IRAM, define it empty here */
+#define IRAM_LCDFRAMEBUFFER
+#endif
+
#endif