summaryrefslogtreecommitdiff
path: root/common/cmd_vboot_twostop.c
diff options
context:
space:
mode:
authorTom Wai-Hong Tam <waihong@chromium.org>2011-08-12 18:27:31 +0800
committerSimon Glass <sjg@chromium.org>2011-08-29 10:59:30 -0700
commit2efaa58738ab9c907aeb8ade8b535b9aaa9c4a64 (patch)
tree6b0d6b2bd8cffb65d7f7e33d8d6abf3558d1b19b /common/cmd_vboot_twostop.c
parent59838c878aa585589c758d49ae011a3fa50c36ca (diff)
CHROMIUM: Assign the frame buffer address as FDT one instead of u-boot one.
The framebuffer address should be specified in the device tree and not u-boot assigned. This FDT value should be the same as the one defined in Linux kernel; otherwise, it causes screen flicker. The FDT value overrides the framebuffer allocated at the top of memory by board_init_f(). If the framebuffer address is not defined in the FDT, falls back to use the address allocated by board_init_f(). BUG=chrome-os-partner:5338 TEST=build without error and boot Chrome OS on Aebl, see the screen not corrupted and splash screen showed. Change-Id: Ia6a996d127d74d6084900814d2c934fb95518e23 Reviewed-on: http://gerrit.chromium.org/gerrit/5877 Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org> Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
Diffstat (limited to 'common/cmd_vboot_twostop.c')
-rw-r--r--common/cmd_vboot_twostop.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/cmd_vboot_twostop.c b/common/cmd_vboot_twostop.c
index e922a116b80..44a30b615af 100644
--- a/common/cmd_vboot_twostop.c
+++ b/common/cmd_vboot_twostop.c
@@ -164,6 +164,7 @@ static void
wipe_unused_memory(crossystem_data_t *cdata, VbCommonParams *cparams)
{
#ifdef CONFIG_OF_CONTROL
+ int fb_size, lcd_line_length;
memory_wipe_t wipe;
struct fdt_memory config;
@@ -186,6 +187,12 @@ wipe_unused_memory(crossystem_data_t *cdata, VbCommonParams *cparams)
(uintptr_t)TEGRA_LP0_ADDR,
(uintptr_t)(TEGRA_LP0_ADDR + TEGRA_LP0_SIZE));
+ /* Excludes the frame buffer. */
+ fb_size = lcd_get_size(&lcd_line_length);
+ memory_wipe_exclude(&wipe,
+ (uintptr_t)gd->fb_base,
+ (uintptr_t)gd->fb_base + fb_size);
+
memory_wipe_execute(&wipe);
#else
printf("wipe_unused_memory depends on fdt_decode_memory which"