Introduce a config whether dock is inited in romstage or not

Instead of depending on exact mobo configure general characteristic whether
dock is configured in romstage or ramstage.

X60 and T60 have superio in dock so it needs to be inited to get serial, so
it should be inited in romstage.

On X201 there is nothing useful that early in boot but it's needed to init more
to get dock working, in particular EC init needs to be done first.
Change-Id: If5072e3dec883a94cd2d5643a92f7f6c3c9feee9
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/4294
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Vladimir Serbinenko 2013-11-27 21:36:25 +01:00 committed by Stefan Reinauer
parent dfc0881272
commit 161e9cc56b
5 changed files with 11 additions and 10 deletions

View File

@ -1,3 +1,6 @@
config EC_LENOVO_H8 config EC_LENOVO_H8
select EC_ACPI select EC_ACPI
bool bool
config H8_DOCK_EARLY_INIT
bool

View File

@ -29,10 +29,6 @@
#include <string.h> #include <string.h>
#include <kconfig.h> #include <kconfig.h>
#if IS_ENABLED (CONFIG_BOARD_LENOVO_X201)
#include "mainboard/lenovo/x201/dock.h"
#endif
static void h8_bluetooth_enable(int on) static void h8_bluetooth_enable(int on)
{ {
if (on) if (on)
@ -187,12 +183,8 @@ static void h8_enable(device_t dev)
} }
h8_set_audio_mute(0); h8_set_audio_mute(0);
#if IS_ENABLED (CONFIG_BOARD_LENOVO_X201) #if !IS_ENABLED(CONFIG_H8_DOCK_EARLY_INIT)
if (dock_present()) { h8_mainboard_init_dock ();
printk(BIOS_DEBUG, "dock is connected\n");
dock_connect();
} else
printk(BIOS_DEBUG, "dock is not connected\n");
#endif #endif
} }

View File

@ -29,6 +29,10 @@ void h8_disable_event(int event);
int h8_ultrabay_device_present(void); int h8_ultrabay_device_present(void);
u8 h8_build_id_and_function_spec_version(char *buf, u8 buf_len); u8 h8_build_id_and_function_spec_version(char *buf, u8 buf_len);
#if !IS_ENABLED (CONFIG_H8_DOCK_EARLY_INIT)
void h8_mainboard_init_dock (void);
#endif
/* EC registers */ /* EC registers */
#define H8_CONFIG0 0x00 #define H8_CONFIG0 0x00
#define H8_CONFIG0_EVENTS_ENABLE 0x02 #define H8_CONFIG0_EVENTS_ENABLE 0x02

View File

@ -22,6 +22,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_ACPI_TABLES select HAVE_ACPI_TABLES
select HAVE_ACPI_RESUME select HAVE_ACPI_RESUME
select EARLY_CBMEM_INIT select EARLY_CBMEM_INIT
select H8_DOCK_EARLY_INIT
config MAINBOARD_DIR config MAINBOARD_DIR
string string
default lenovo/t60 default lenovo/t60

View File

@ -25,6 +25,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select USE_OPTION_TABLE select USE_OPTION_TABLE
select MAINBOARD_HAS_NATIVE_VGA_INIT select MAINBOARD_HAS_NATIVE_VGA_INIT
select EARLY_CBMEM_INIT select EARLY_CBMEM_INIT
select H8_DOCK_EARLY_INIT
config MAINBOARD_DIR config MAINBOARD_DIR
string string