mb/lenovo/{x200,t400}: Add VBOOT support

Tested on thinkpad X200 with CONFIG_H8_FN_KEY_AS_VBOOT_RECOVERY_SW
selected, the RW_A slot is properly selected unless the FN button is
pressed. 600+ms are spend waiting for the EC to be ready.

Change-Id: I689fe310e5b828f2e68fcbe9afd582f35738ed1d
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35998
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Arthur Heymans 2019-10-12 19:21:25 +02:00 committed by Patrick Georgi
parent 334211e4a6
commit 41f826a498
6 changed files with 95 additions and 0 deletions

View File

@ -28,6 +28,24 @@ config BOARD_SPECIFIC_OPTIONS
select MAINBOARD_USES_IFD_GBE_REGION if !BOARD_LENOVO_R500 select MAINBOARD_USES_IFD_GBE_REGION if !BOARD_LENOVO_R500
select INTEL_GMA_HAVE_VBT select INTEL_GMA_HAVE_VBT
config VBOOT
select VBOOT_VBNV_CMOS
select GBB_FLAG_DISABLE_LID_SHUTDOWN
select GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC
select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC
select GBB_FLAG_DISABLE_FWMP
config VBOOT_SLOTS_RW_A
default y
config VBOOT_VBNV_OFFSET
hex
default 0x82
config FMDFILE
string
default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/vboot-rwa.fmd" if VBOOT
config MAINBOARD_DIR config MAINBOARD_DIR
string string
default lenovo/t400 default lenovo/t400

View File

@ -88,6 +88,9 @@ entries
# RAM initialization internal data # RAM initialization internal data
1024 128 r 0 read_training_results 1024 128 r 0 read_training_results
# VBOOT
1152 128 r 0 vbnv
# ----------------------------------------------------------------- # -----------------------------------------------------------------
enumerations enumerations

View File

@ -0,0 +1,26 @@
FLASH@0xff800000 0x800000 {
SI_ALL@0x0 0x600000 {
SI_DESC@0x0 0x1000
SI_ME@0x1000 0x5f5000
SI_GBE@0x5f6000 0x2000
SI_PD@0x5f8000 0x8000
}
SI_BIOS@0x600000 0x200000 {
RW_SECTION_A 0x100000 {
VBLOCK_A 0x10000
FW_MAIN_A(CBFS)
RW_FWID_A 0x40
}
RW_VPD(PRESERVE) 0x1000
CONSOLE 0x10000
SMMSTORE(PRESERVE) 0x40000
WP_RO {
FMAP 0x800
RO_FRID 0x40
RO_PADDING 0x7c0
RO_VPD(PRESERVE) 0x1000
GBB 0x1e000
COREBOOT(CBFS)
}
}
}

View File

@ -24,6 +24,24 @@ config BOARD_SPECIFIC_OPTIONS
select MAINBOARD_HAS_LIBGFXINIT select MAINBOARD_HAS_LIBGFXINIT
select MAINBOARD_USES_IFD_GBE_REGION select MAINBOARD_USES_IFD_GBE_REGION
config VBOOT
select VBOOT_VBNV_CMOS
select GBB_FLAG_DISABLE_LID_SHUTDOWN
select GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC
select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC
select GBB_FLAG_DISABLE_FWMP
config VBOOT_SLOTS_RW_A
default y
config VBOOT_VBNV_OFFSET
hex
default 0x82
config FMDFILE
string
default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/vboot-rwa.fmd" if VBOOT
config MAINBOARD_DIR config MAINBOARD_DIR
string string
default lenovo/x200 default lenovo/x200

View File

@ -86,6 +86,10 @@ entries
# RAM initialization internal data # RAM initialization internal data
1024 128 r 0 read_training_results 1024 128 r 0 read_training_results
# VBOOT
1152 128 r 0 vbnv
# ----------------------------------------------------------------- # -----------------------------------------------------------------
enumerations enumerations

View File

@ -0,0 +1,26 @@
FLASH@0xff800000 0x800000 {
SI_ALL@0x0 0x600000 {
SI_DESC@0x0 0x1000
SI_ME@0x1000 0x5f5000
SI_GBE@0x5f6000 0x2000
SI_PD@0x5f8000 0x8000
}
SI_BIOS@0x600000 0x200000 {
RW_SECTION_A 0x100000 {
VBLOCK_A 0x10000
FW_MAIN_A(CBFS)
RW_FWID_A 0x40
}
RW_VPD(PRESERVE) 0x1000
CONSOLE 0x10000
SMMSTORE(PRESERVE) 0x40000
WP_RO {
FMAP 0x800
RO_FRID 0x40
RO_PADDING 0x7c0
RO_VPD(PRESERVE) 0x1000
GBB 0x1e000
COREBOOT(CBFS)
}
}
}