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>
This commit is contained in:
parent
5fc6f90ef7
commit
bc98cc66b2
9 changed files with 42 additions and 36 deletions
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 = {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue