Arthur Heymans has uploaded this change for review.

View Change

mb/lenovo/x60: Add VBOOT support

This also adds vboot support for the i945 platform in general.

It's relatively slow to boot. It takes 1.5s to get to the payload.
In timestamps there are entries related to TPM, which are somewhat
weird given that the TPM is not enabled on this device (buggy).

TESTED: boot X60, with CONFIG_H8_FN_KEY_AS_VBOOT_RECOVERY_SW=y you
can force the recovery bootpath.

Change-Id: Ia9666194e98b7d23b97eaff08e6177684e35eca7
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
---
M src/mainboard/lenovo/x60/Kconfig
M src/mainboard/lenovo/x60/cmos.layout
A src/mainboard/lenovo/x60/vboot-rwa.fmd
M src/northbridge/intel/i945/Kconfig
4 files changed, 39 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/48/37148/1
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
index a1a5fec..3b5fa85 100644
--- a/src/mainboard/lenovo/x60/Kconfig
+++ b/src/mainboard/lenovo/x60/Kconfig
@@ -26,6 +26,20 @@
select I945_LVDS
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 0x78
+
config MAINBOARD_DIR
string
default lenovo/x60
diff --git a/src/mainboard/lenovo/x60/cmos.layout b/src/mainboard/lenovo/x60/cmos.layout
index bfc78bc..4de7c06 100644
--- a/src/mainboard/lenovo/x60/cmos.layout
+++ b/src/mainboard/lenovo/x60/cmos.layout
@@ -94,6 +94,8 @@
1040 8 r 0 RCVENMT
1048 4 r 0 C0DRT1
1052 4 r 0 C1DRT1
+
+1056 128 r 0 vbnv
# -----------------------------------------------------------------

enumerations
diff --git a/src/mainboard/lenovo/x60/vboot-rwa.fmd b/src/mainboard/lenovo/x60/vboot-rwa.fmd
new file mode 100644
index 0000000..b21cff3
--- /dev/null
+++ b/src/mainboard/lenovo/x60/vboot-rwa.fmd
@@ -0,0 +1,19 @@
+FLASH@0xffe00000 0x200000 {
+ BIOS {
+ RW_SECTION_A 0x100000 {
+ VBLOCK_A 0x10000
+ FW_MAIN_A(CBFS)
+ RW_FWID_A 0x40
+ }
+ RW_VPD(PRESERVE) 0x1000
+ CONSOLE 0x10000
+ WP_RO {
+ FMAP 0x800
+ RO_FRID 0x40
+ RO_PADDING 0x7c0
+ RO_VPD(PRESERVE) 0x1000
+ GBB 0x1e000
+ COREBOOT(CBFS)
+ }
+ }
+}
diff --git a/src/northbridge/intel/i945/Kconfig b/src/northbridge/intel/i945/Kconfig
index a0550ec..a624bf4 100644
--- a/src/northbridge/intel/i945/Kconfig
+++ b/src/northbridge/intel/i945/Kconfig
@@ -29,6 +29,10 @@
select PARALLEL_MP
select C_ENVIRONMENT_BOOTBLOCK

+config VBOOT
+ select VBOOT_STARTS_IN_BOOTBLOCK
+ select VBOOT_SEPARATE_VERSTAGE
+
config NORTHBRIDGE_INTEL_SUBTYPE_I945GC
def_bool n
config NORTHBRIDGE_INTEL_SUBTYPE_I945GM

To view, visit change 37148. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ia9666194e98b7d23b97eaff08e6177684e35eca7
Gerrit-Change-Number: 37148
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz>
Gerrit-MessageType: newchange