Patrick Rudolph has uploaded this change for review.

View Change

mb/lenovo/*: Add support for VBOOT on 12MiB devices

Enable VBOOT support on all devices that have a 8 MiB flash, using a
single RW_MAIN_A partition, allowing the use of tianocore payload in
both RW_MAIN_A and WP_RO.

* Add VBNV section to cmos.layout
* Add FMAP for VBOOT and regular boot
* Select Kconfigs for VBOOT
* Enable VBOOT_SLOTS_RW_A by default

Untested.

Change-Id: I8a35a06ece1e9d57a2ef23970e61ae26fafce543
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
M src/mainboard/lenovo/t430/Kconfig
A src/mainboard/lenovo/t430/board.fmd
M src/mainboard/lenovo/t430/cmos.layout
A src/mainboard/lenovo/t430/vboot-rwa.fmd
M src/mainboard/lenovo/t430s/Kconfig
A src/mainboard/lenovo/t430s/board.fmd
M src/mainboard/lenovo/t430s/cmos.layout
A src/mainboard/lenovo/t430s/vboot-rwa.fmd
M src/mainboard/lenovo/t530/Kconfig
A src/mainboard/lenovo/t530/board.fmd
M src/mainboard/lenovo/t530/cmos.layout
A src/mainboard/lenovo/t530/vboot-rwa.fmd
M src/mainboard/lenovo/x131e/Kconfig
A src/mainboard/lenovo/x131e/board.fmd
M src/mainboard/lenovo/x131e/cmos.layout
A src/mainboard/lenovo/x131e/vboot-rwa.fmd
M src/mainboard/lenovo/x1_carbon_gen1/Kconfig
A src/mainboard/lenovo/x1_carbon_gen1/board.fmd
M src/mainboard/lenovo/x1_carbon_gen1/cmos.layout
A src/mainboard/lenovo/x1_carbon_gen1/vboot-rwa.fmd
M src/mainboard/lenovo/x230/Kconfig
A src/mainboard/lenovo/x230/board.fmd
M src/mainboard/lenovo/x230/cmos.layout
A src/mainboard/lenovo/x230/vboot-rwa.fmd
24 files changed, 408 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/17/32617/1
diff --git a/src/mainboard/lenovo/t430/Kconfig b/src/mainboard/lenovo/t430/Kconfig
index dbeaadb..fdccd66 100644
--- a/src/mainboard/lenovo/t430/Kconfig
+++ b/src/mainboard/lenovo/t430/Kconfig
@@ -26,6 +26,21 @@
select INTEL_GMA_HAVE_VBT
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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config MAINBOARD_DIR
string
default lenovo/t430
diff --git a/src/mainboard/lenovo/t430/board.fmd b/src/mainboard/lenovo/t430/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/t430/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/t430/cmos.layout b/src/mainboard/lenovo/t430/cmos.layout
index 1b50e7f..f9757f0 100644
--- a/src/mainboard/lenovo/t430/cmos.layout
+++ b/src/mainboard/lenovo/t430/cmos.layout
@@ -80,6 +80,9 @@
#437 3 r 0 unused
440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/t430/vboot-rwa.fmd b/src/mainboard/lenovo/t430/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/t430/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/t430s/Kconfig b/src/mainboard/lenovo/t430s/Kconfig
index bad1837..a56f577 100644
--- a/src/mainboard/lenovo/t430s/Kconfig
+++ b/src/mainboard/lenovo/t430s/Kconfig
@@ -26,6 +26,21 @@
# Workaround for EC/KBC IRQ1.
select SERIRQ_CONTINUOUS_MODE

+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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config MAINBOARD_DIR
string
default lenovo/t430s
diff --git a/src/mainboard/lenovo/t430s/board.fmd b/src/mainboard/lenovo/t430s/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/t430s/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/t430s/cmos.layout b/src/mainboard/lenovo/t430s/cmos.layout
index 97d97ed..891a294 100644
--- a/src/mainboard/lenovo/t430s/cmos.layout
+++ b/src/mainboard/lenovo/t430s/cmos.layout
@@ -80,6 +80,9 @@
#436 4 r 0 unused
440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/t430s/vboot-rwa.fmd b/src/mainboard/lenovo/t430s/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/t430s/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/t530/Kconfig b/src/mainboard/lenovo/t530/Kconfig
index b36460d..df011e4 100644
--- a/src/mainboard/lenovo/t530/Kconfig
+++ b/src/mainboard/lenovo/t530/Kconfig
@@ -27,6 +27,21 @@

if BOARD_LENOVO_BASEBOARD_T530

+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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config VARIANT_DIR
string
default "t530" if BOARD_LENOVO_T530
diff --git a/src/mainboard/lenovo/t530/board.fmd b/src/mainboard/lenovo/t530/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/t530/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/t530/cmos.layout b/src/mainboard/lenovo/t530/cmos.layout
index 3400a4d..0c8c546 100644
--- a/src/mainboard/lenovo/t530/cmos.layout
+++ b/src/mainboard/lenovo/t530/cmos.layout
@@ -81,6 +81,9 @@

440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/t530/vboot-rwa.fmd b/src/mainboard/lenovo/t530/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/t530/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x131e/Kconfig b/src/mainboard/lenovo/x131e/Kconfig
index e7da8d0..3da7b3b 100644
--- a/src/mainboard/lenovo/x131e/Kconfig
+++ b/src/mainboard/lenovo/x131e/Kconfig
@@ -21,6 +21,21 @@
select SERIRQ_CONTINUOUS_MODE
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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config MAINBOARD_DIR
string
default lenovo/x131e
diff --git a/src/mainboard/lenovo/x131e/board.fmd b/src/mainboard/lenovo/x131e/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/x131e/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x131e/cmos.layout b/src/mainboard/lenovo/x131e/cmos.layout
index 93c74fb..41b8354 100644
--- a/src/mainboard/lenovo/x131e/cmos.layout
+++ b/src/mainboard/lenovo/x131e/cmos.layout
@@ -79,6 +79,9 @@

440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/x131e/vboot-rwa.fmd b/src/mainboard/lenovo/x131e/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/x131e/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
index 520853c..29060d9 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
+++ b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
@@ -26,6 +26,21 @@
# Workaround for EC/KBC IRQ1.
select SERIRQ_CONTINUOUS_MODE

+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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config MAINBOARD_DIR
string
default lenovo/x1_carbon_gen1
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/board.fmd b/src/mainboard/lenovo/x1_carbon_gen1/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/x1_carbon_gen1/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/cmos.layout b/src/mainboard/lenovo/x1_carbon_gen1/cmos.layout
index bb25261..55a8a58 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/cmos.layout
+++ b/src/mainboard/lenovo/x1_carbon_gen1/cmos.layout
@@ -80,6 +80,9 @@

440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/vboot-rwa.fmd b/src/mainboard/lenovo/x1_carbon_gen1/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/x1_carbon_gen1/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x230/Kconfig b/src/mainboard/lenovo/x230/Kconfig
index 5b34b83..e7d7720 100644
--- a/src/mainboard/lenovo/x230/Kconfig
+++ b/src/mainboard/lenovo/x230/Kconfig
@@ -27,6 +27,21 @@
# Workaround for EC/KBC IRQ1.
select SERIRQ_CONTINUOUS_MODE

+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
+ select HAS_RECOVERY_MRC_CACHE
+
+config VBOOT_SLOTS_RW_AB
+ default y
+
+config VBOOT_VBNV_OFFSET
+ hex
+ default 0x2a
+
config MAINBOARD_DIR
string
default lenovo/x230
diff --git a/src/mainboard/lenovo/x230/board.fmd b/src/mainboard/lenovo/x230/board.fmd
new file mode 100644
index 0000000..9180e12
--- /dev/null
+++ b/src/mainboard/lenovo/x230/board.fmd
@@ -0,0 +1,16 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_MRC_CACHE@0 0x10000
+ SMMSTORE(PRESERVE)@0x10000 0x40000
+
+ WP_RO@0x50000 0x6a0000 {
+ FMAP@0x0 0x800
+ COREBOOT(CBFS)@0x1000 0x69f000
+ }
+ }
+}
diff --git a/src/mainboard/lenovo/x230/cmos.layout b/src/mainboard/lenovo/x230/cmos.layout
index 27197fb..9903400 100644
--- a/src/mainboard/lenovo/x230/cmos.layout
+++ b/src/mainboard/lenovo/x230/cmos.layout
@@ -80,6 +80,9 @@

440 8 h 0 volume

+# VBOOT
+448 128 r 0 vbnv
+
# SandyBridge MRC Scrambler Seed values
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
diff --git a/src/mainboard/lenovo/x230/vboot-rwa.fmd b/src/mainboard/lenovo/x230/vboot-rwa.fmd
new file mode 100644
index 0000000..58eb9e3
--- /dev/null
+++ b/src/mainboard/lenovo/x230/vboot-rwa.fmd
@@ -0,0 +1,34 @@
+FLASH@0xff400000 0xc00000 {
+ SI_ALL@0x0 0x500000 {
+ SI_DESC@0x0 0x1000
+ SI_GBE@0x1000 0x2000
+ SI_ME@0x3000 0x4ed000
+ }
+ SI_BIOS@0x500000 0x700000 {
+ RW_SECTION_A@0x00000 0x280000 {
+ VBLOCK_A@0x0 0x10000
+ FW_MAIN_A(CBFS)@0x10000 0x16ffc0
+ RW_FWID_A@0x17ffc0 0x40
+ }
+ RW_SECTION_B@0x280000 0x280000 {
+ VBLOCK_B@0x0 0x10000
+ FW_MAIN_B(CBFS)@0x10000 0x16ffc0
+ RW_FWID_B@0x17ffc0 0x40
+ }
+ UNIFIED_MRC_CACHE@0x500000 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_VPD(PRESERVE)@0x520000 0x1000
+ SMMSTORE(PRESERVE)@0x521000 0x40000
+
+ WP_RO@0x581000 0x17f000 {
+ FMAP@0x0 0x800
+ RO_FRID@0x800 0x40
+ RO_PADDING@0x840 0x7c0
+ RO_VPD(PRESERVE)@0x1000 0x1000
+ GBB@0x2000 0x1e000
+ COREBOOT(CBFS)@0x20000 0x15f000
+ }
+ }
+}

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

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I8a35a06ece1e9d57a2ef23970e61ae26fafce543
Gerrit-Change-Number: 32617
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-Reviewer: Alexander Couzens <lynxis@fe80.eu>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-MessageType: newchange