summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2015-09-02 09:21:36 -0500
committerAaron Durbin <adurbin@chromium.org>2015-09-04 15:09:00 +0000
commitbc98cc66b2fe787173ec04b84ea11bc3e57fe373 (patch)
tree15e1aa71a74fd52bfbc25f0055c3015cb31ca983 /src/soc
parent5fc6f90ef7d3a69e87a004b07b99ef337c6d3380 (diff)
bootmode: add display_init_required()
Some of the Chrome OS boards were directly calling vboot called in some form after contorting around #ifdef preprocessor macros. The reasoning is that Chrome OS doesn't always do display initialization during startup. It's runtime dependent. While this is a requirement that doesn't mean vboot functions should be sprinkled around in the mainboard and chipset code. Instead provide one function, display_init_required(), that provides the policy for determining display initialization action. For Chrome OS devices this function honors vboot_skip_display_init() and all other configurations default to initializing display. Change-Id: I403213e22c0e621e148773597a550addfbaf3f7e Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/11490 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/nvidia/tegra124/soc.c8
-rw-r--r--src/soc/nvidia/tegra132/soc.c13
-rw-r--r--src/soc/nvidia/tegra210/soc.c13
-rw-r--r--src/soc/rockchip/rk3288/soc.c8
4 files changed, 22 insertions, 20 deletions
diff --git a/src/soc/nvidia/tegra124/soc.c b/src/soc/nvidia/tegra124/soc.c
index 406457bc79..c38232daec 100644
--- a/src/soc/nvidia/tegra124/soc.c
+++ b/src/soc/nvidia/tegra124/soc.c
@@ -20,13 +20,13 @@
*/
#include <arch/io.h>
+#include <bootmode.h>
#include <console/console.h>
#include <device/device.h>
#include <soc/nvidia/tegra/dc.h>
#include <soc/display.h>
#include <soc/sdram.h>
#include <symbols.h>
-#include <vendorcode/google/chromeos/chromeos.h>
#include "chip.h"
@@ -53,10 +53,10 @@ static void soc_enable(device_t dev)
static void soc_init(device_t dev)
{
- if (vboot_skip_display_init())
- printk(BIOS_INFO, "Skipping display init.\n");
- else
+ if (display_init_required())
display_startup(dev);
+ else
+ printk(BIOS_INFO, "Skipping display init.\n");
printk(BIOS_INFO, "CPU: Tegra124\n");
}
diff --git a/src/soc/nvidia/tegra132/soc.c b/src/soc/nvidia/tegra132/soc.c
index 4ca866cbf6..a65f36d430 100644
--- a/src/soc/nvidia/tegra132/soc.c
+++ b/src/soc/nvidia/tegra132/soc.c
@@ -22,6 +22,7 @@
#include <arch/cache.h>
#include <arch/spintable.h>
#include <cpu/cpu.h>
+#include <bootmode.h>
#include <bootstate.h>
#include <cbmem.h>
#include <console/console.h>
@@ -34,7 +35,6 @@
#include <soc/nvidia/tegra/apbmisc.h>
#include <string.h>
#include <timer.h>
-#include <vendorcode/google/chromeos/chromeos.h>
#include "chip.h"
@@ -101,12 +101,13 @@ static void soc_init(device_t dev)
/* Lock down VPR */
lock_down_vpr();
-#if IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT)
- if (vboot_skip_display_init())
- printk(BIOS_INFO, "Skipping display init.\n");
- else
+ if (!IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT))
+ return;
+
+ if (display_init_required())
display_startup(dev);
-#endif
+ else
+ printk(BIOS_INFO, "Skipping display init.\n");
}
static struct device_operations soc_ops = {
diff --git a/src/soc/nvidia/tegra210/soc.c b/src/soc/nvidia/tegra210/soc.c
index 9e67531b76..981b09c8a2 100644
--- a/src/soc/nvidia/tegra210/soc.c
+++ b/src/soc/nvidia/tegra210/soc.c
@@ -22,6 +22,7 @@
#include <arch/cache.h>
#include <arch/spintable.h>
#include <cpu/cpu.h>
+#include <bootmode.h>
#include <bootstate.h>
#include <cbmem.h>
#include <console/console.h>
@@ -35,7 +36,6 @@
#include <soc/nvidia/tegra/apbmisc.h>
#include <string.h>
#include <timer.h>
-#include <vendorcode/google/chromeos/chromeos.h>
#include <soc/sdram.h>
#include <soc/sdram_configs.h>
@@ -92,12 +92,13 @@ static void soc_init(device_t dev)
spintable_init((void *)cfg->spintable_addr);
arch_initialize_cpus(dev, &cntrl_ops);
-#if IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT)
- if (vboot_skip_display_init())
- printk(BIOS_INFO, "Skipping display init.\n");
- else
+ if (!IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT))
+ return;
+
+ if (display_init_required())
display_startup(dev);
-#endif
+ else
+ printk(BIOS_INFO, "Skipping display init.\n");
}
static void soc_noop(device_t dev)
diff --git a/src/soc/rockchip/rk3288/soc.c b/src/soc/rockchip/rk3288/soc.c
index a13086a21f..a9484b4831 100644
--- a/src/soc/rockchip/rk3288/soc.c
+++ b/src/soc/rockchip/rk3288/soc.c
@@ -18,6 +18,7 @@
*/
#include <arch/cache.h>
+#include <bootmode.h>
#include <cbmem.h>
#include <console/console.h>
#include <delay.h>
@@ -30,18 +31,17 @@
#include <stdlib.h>
#include <string.h>
#include <symbols.h>
-#include <vendorcode/google/chromeos/chromeos.h>
#include "chip.h"
static void soc_init(device_t dev)
{
ram_resource(dev, 0, (uintptr_t)_dram/KiB, sdram_size_mb()*(MiB/KiB));
- if (vboot_skip_display_init())
- printk(BIOS_INFO, "Skipping display init.\n");
- else
+ if (display_init_required())
rk_display_init(dev, (uintptr_t)_framebuffer,
_framebuffer_size);
+ else
+ printk(BIOS_INFO, "Skipping display init.\n");
}
static struct device_operations soc_ops = {