diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2009-02-07 10:09:13 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2009-02-07 10:09:13 +0000 |
commit | 4d3a020f274d49c2b8f10cfdad8c67aaa153bebe (patch) | |
tree | ec04c17d0579a27f6e1f8b2085d5996e6e59f430 /firmware/target/arm/imx31/gigabeat-s | |
parent | f747d9d39e48c8bbf938220427584c4d8bf41b4c (diff) | |
download | rockbox-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.c | 10 |
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 | ||
32 | static volatile bool lcd_on = true; | 33 | static 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 */ |
47 | void lcd_init_device(void) | 48 | void 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. */ |