summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/gigabeat-s
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2009-02-07 10:09:13 +0000
committerMichael Sevakis <jethead71@rockbox.org>2009-02-07 10:09:13 +0000
commit4d3a020f274d49c2b8f10cfdad8c67aaa153bebe (patch)
treeec04c17d0579a27f6e1f8b2085d5996e6e59f430 /firmware/target/arm/imx31/gigabeat-s
parentf747d9d39e48c8bbf938220427584c4d8bf41b4c (diff)
downloadrockbox-4d3a020f274d49c2b8f10cfdad8c67aaa153bebe.tar.gz
rockbox-4d3a020f274d49c2b8f10cfdad8c67aaa153bebe.zip
Gigabeat S: Move the LCD framebuffer address so that DRAM can be mapped flat between physical and virtual addresses. NO BOOTLOADER UPDATE SHOULD BE NEEDED. The firmware image now handles low-level system setup as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19935 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s')
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c
index eb14152775..c353380221 100644
--- a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c
+++ b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c
@@ -27,6 +27,7 @@
27#include "lcd-target.h" 27#include "lcd-target.h"
28#include "backlight-target.h" 28#include "backlight-target.h"
29 29
30#define MAIN_LCD_IDMAC_CHANNEL 14
30#define LCDADDR(x, y) (&lcd_framebuffer[(y)][(x)]) 31#define LCDADDR(x, y) (&lcd_framebuffer[(y)][(x)])
31 32
32static volatile bool lcd_on = true; 33static volatile bool lcd_on = true;
@@ -46,6 +47,15 @@ extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src,
46/* LCD init */ 47/* LCD init */
47void lcd_init_device(void) 48void lcd_init_device(void)
48{ 49{
50 /* Move the framebuffer */
51#ifdef BOOTLOADER
52 /* Only do this once to avoid flicker */
53 memset(FRAME, 0x00, FRAME_SIZE);
54#endif
55 IPU_IDMAC_CHA_EN &= ~(1ul << MAIN_LCD_IDMAC_CHANNEL);
56 IPU_IMA_ADDR = ((0x1 << 16) | (MAIN_LCD_IDMAC_CHANNEL << 4)) + (1 << 3);
57 IPU_IMA_DATA = FRAME_PHYS_ADDR;
58 IPU_IDMAC_CHA_EN |= (1ul << MAIN_LCD_IDMAC_CHANNEL);
49} 59}
50 60
51/* Update a fraction of the display. */ 61/* Update a fraction of the display. */