the following patch was just integrated into master:
commit e00365217cf30c7b8510fca0e7e60d0905b73752
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:57:57 2017 -0800
google/eve: Enable separate recovery MRC cache
In order to get quick boot speeds into recovery enable the
feature that allows for a separate recovery MRC cache.
This requires shuffling the FMAP around a bit in order to
provide another region for the recovery MRC cache. To make
that shuffling easier, group the RW components into another
sub-region so it can use relative addresses.
BUG=chrome-os-partner:58666
TEST=manual testing on eve: check that recovery uses the MRC
cache, and that normal mode does too. Check that if cache is
retrained in recovery mode it is also retrained in normal mode.
Also check that events show up in the log when retrain happens.
Change-Id: I6a9507eb0b919b3af2752e2499904cc62509c06a
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Reviewed-on: https://review.coreboot.org/18199
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
See https://review.coreboot.org/18199 for details.
-gerrit
the following patch was just integrated into master:
commit 4234ca276419314a0df598c7375c683def67ab1a
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:55:03 2017 -0800
soc/intel/skylake: Include I2C code in romstage
The lpss_i2c driver is enabled in romstage, so the SOC needs to
export the pre-ram compatible I2C controller info, which for
skylake is in the bootblock/i2c.c file.
This was not causing a compiler error in normal use, but when
adding I2C debug code in romstage it failed to compile.
With this added, I can now do I2C transactions in romstage.
Change-Id: I0778b0497d0b6936df47c29b2ce942c8d90cf39b
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Reviewed-on: https://review.coreboot.org/18198
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
See https://review.coreboot.org/18198 for details.
-gerrit
the following patch was just integrated into master:
commit 367c9b328fd084509f8ed41ecf3c64ebc2e02e17
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 15:42:26 2017 -0800
google/eve: Enable keyboard backlight in bootblock
Enable the keyboard backlight as early in boot as possible to
provide a indication that the BIOS is executing.
Since this is bootblock it can't use the convenience function
for checking for S3 resume so just read the PM1 value from the
SOC and check it directly.
Use a value of 75% for the current system as that is visible
without being full brightness.
BUG=chrome-os-partner:61464
TEST=boot on eve and check that keyboard backlight is enabled
as soon as the SOC starts booting
Change-Id: I9ac78e9c3913a2776943088f35142afe3ffef056
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Reviewed-on: https://review.coreboot.org/18197
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
See https://review.coreboot.org/18197 for details.
-gerrit
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18198
-gerrit
commit 8ad1b37b3a67ca9bf125b9728190f7a672453ab7
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:55:03 2017 -0800
soc/intel/skylake: Include I2C code in romstage
The lpss_i2c driver is enabled in romstage, so the SOC needs to
export the pre-ram compatible I2C controller info, which for
skylake is in the bootblock/i2c.c file.
This was not causing a compiler error in normal use, but when
adding I2C debug code in romstage it failed to compile.
With this added, I can now do I2C transactions in romstage.
Change-Id: I0778b0497d0b6936df47c29b2ce942c8d90cf39b
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/soc/intel/skylake/Makefile.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/soc/intel/skylake/Makefile.inc b/src/soc/intel/skylake/Makefile.inc
index 3a474e7..4b6fcfc 100644
--- a/src/soc/intel/skylake/Makefile.inc
+++ b/src/soc/intel/skylake/Makefile.inc
@@ -38,6 +38,7 @@ verstage-y += spi.c
romstage-y += flash_controller.c
romstage-y += gpio.c
+romstage-y += bootblock/i2c.c
romstage-y += memmap.c
romstage-y += monotonic_timer.c
romstage-y += me.c
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18199
-gerrit
commit ddaba2ddbe73b6497c0a24f7a43a733a3a22ea78
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:57:57 2017 -0800
google/eve: Enable separate recovery MRC cache
In order to get quick boot speeds into recovery enable the
feature that allows for a separate recovery MRC cache.
This requires shuffling the FMAP around a bit in order to
provide another region for the recovery MRC cache. To make
that shuffling easier, group the RW components into another
sub-region so it can use relative addresses.
BUG=chrome-os-partner:58666
TEST=manual testing on eve: check that recovery uses the MRC
cache, and that normal mode does too. Check that if cache is
retrained in recovery mode it is also retrained in normal mode.
Also check that events show up in the log when retrain happens.
Change-Id: I6a9507eb0b919b3af2752e2499904cc62509c06a
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/mainboard/google/eve/Kconfig | 2 ++
src/mainboard/google/eve/chromeos.fmd | 31 ++++++++++++++++++-------------
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/src/mainboard/google/eve/Kconfig b/src/mainboard/google/eve/Kconfig
index 32c029d..e83e7d9 100644
--- a/src/mainboard/google/eve/Kconfig
+++ b/src/mainboard/google/eve/Kconfig
@@ -18,7 +18,9 @@ config BOARD_SPECIFIC_OPTIONS
config CHROMEOS
select EC_GOOGLE_CHROMEEC_SWITCHES
+ select HAS_RECOVERY_MRC_CACHE
select LID_SWITCH
+ select MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN
config DRIVERS_I2C_GENERIC
def_bool y
diff --git a/src/mainboard/google/eve/chromeos.fmd b/src/mainboard/google/eve/chromeos.fmd
index 58b6127..bdadcf7 100644
--- a/src/mainboard/google/eve/chromeos.fmd
+++ b/src/mainboard/google/eve/chromeos.fmd
@@ -4,24 +4,29 @@ FLASH@0xff000000 0x1000000 {
SI_ME@0x1000 0x1ff000
}
SI_BIOS@0x200000 0xe00000 {
- RW_SECTION_A@0x0 0x3f0000 {
+ RW_SECTION_A@0x0 0x3e8000 {
VBLOCK_A@0x0 0x10000
- FW_MAIN_A(CBFS)@0x10000 0x3dffc0
- RW_FWID_A@0x3effc0 0x40
+ FW_MAIN_A(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_A@0x3e7fc0 0x40
}
- RW_SECTION_B@0x3f0000 0x3f0000 {
+ RW_SECTION_B@0x3e8000 0x3e8000 {
VBLOCK_B@0x0 0x10000
- FW_MAIN_B(CBFS)@0x10000 0x3dffc0
- RW_FWID_B@0x3effc0 0x40
+ FW_MAIN_B(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_B@0x3e7fc0 0x40
}
- RW_MRC_CACHE@0x7e0000 0x10000
- RW_ELOG@0x7f0000 0x4000
- RW_SHARED@0x7f4000 0x4000 {
- SHARED_DATA@0x0 0x2000
- VBLOCK_DEV@0x2000 0x2000
+ RW_MISC@0x7d0000 0x30000 {
+ UNIFIED_MRC_CACHE@0x0 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_ELOG@0x20000 0x4000
+ RW_SHARED@0x24000 0x4000 {
+ SHARED_DATA@0x0 0x2000
+ VBLOCK_DEV@0x2000 0x2000
+ }
+ RW_VPD@0x28000 0x2000
+ RW_NVRAM@0x2a000 0x6000
}
- RW_VPD@0x7f8000 0x2000
- RW_NVRAM@0x7fa000 0x6000
RW_LEGACY(CBFS)@0x800000 0x200000
WP_RO@0xa00000 0x400000 {
RO_VPD@0x0 0x4000
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18198
-gerrit
commit 029c12001071eaa9a04e4d1e70fffc233c8806ad
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:55:03 2017 -0800
soc/intel/skylake: Include I2C code in romstage
The lpss_i2c driver is enabled in romstage, so the SOC needs to
export the pre-ram compatible I2C controller info, which for
skylake is in the bootblock/i2c.c file.
This was not causing a compile in normal use, but when I was
adding some I2C debug code in romstage it failed to compile.
With this added, I can now do I2C transactions in romstage.
Change-Id: I0778b0497d0b6936df47c29b2ce942c8d90cf39b
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/soc/intel/skylake/Makefile.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/soc/intel/skylake/Makefile.inc b/src/soc/intel/skylake/Makefile.inc
index 3a474e7..4b6fcfc 100644
--- a/src/soc/intel/skylake/Makefile.inc
+++ b/src/soc/intel/skylake/Makefile.inc
@@ -38,6 +38,7 @@ verstage-y += spi.c
romstage-y += flash_controller.c
romstage-y += gpio.c
+romstage-y += bootblock/i2c.c
romstage-y += memmap.c
romstage-y += monotonic_timer.c
romstage-y += me.c
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18197
-gerrit
commit 2f7cefaa30246099710bb572eba20072dc1501fd
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 15:42:26 2017 -0800
google/eve: Enable keyboard backlight in bootblock
Enable the keyboard backlight as early in boot as possible to
provide a indication that the BIOS is executing.
Since this is bootblock it can't use the convenience function
for checking for S3 resume so just read the PM1 value from the
SOC and check it directly.
Use a value of 75% for the current system as that is visible
without being full brightness.
BUG=chrome-os-partner:61464
TEST=boot on eve and check that keyboard backlight is enabled
as soon as the SOC starts booting
Change-Id: I9ac78e9c3913a2776943088f35142afe3ffef056
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/mainboard/google/eve/bootblock.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/mainboard/google/eve/bootblock.c b/src/mainboard/google/eve/bootblock.c
index 2c524f4..baca9c8 100644
--- a/src/mainboard/google/eve/bootblock.c
+++ b/src/mainboard/google/eve/bootblock.c
@@ -14,9 +14,13 @@
* GNU General Public License for more details.
*/
+#include <arch/io.h>
#include <bootblock_common.h>
+#include <ec/google/chromeec/ec.h>
#include <gpio.h>
#include <soc/gpio.h>
+#include <soc/iomap.h>
+#include <soc/pm.h>
#include "gpio.h"
static void early_config_gpio(void)
@@ -26,5 +30,12 @@ static void early_config_gpio(void)
void bootblock_mainboard_init(void)
{
+ uint32_t pm1_cnt = inl(ACPI_BASE_ADDRESS + PM1_CNT);
+ uint32_t pm1_sts = inl(ACPI_BASE_ADDRESS + PM1_STS);
+
+ /* Turn on keyboard backlight to indicate we are booting */
+ if ((pm1_sts & WAK_STS) && (acpi_sleep_from_pm1(pm1_cnt) != ACPI_S3))
+ google_chromeec_kbbacklight(75);
+
early_config_gpio();
}
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18199
-gerrit
commit a6f759eecf1ff7b8c21beba207d9f06b7570033b
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:57:57 2017 -0800
google/eve: Enable separate recovery MRC cache
In order to get quick boot speeds into recovery enable the
feature that allows for a separate recovery MRC cache.
This requires shuffling the FMAP around a bit in order to
provide another region for the recovery MRC cache. To make
that shuffling easier, group the RW components into another
sub-region so it can use relative addresses.
BUG=chrome-os-partner:58666
TEST=manual testing on eve: check that recovery uses the MRC
cache, and that normal mode does too. Check that if cache is
retrained in recovery mode it is also retrained in normal mode.
Also check that events show up in the log when retrain happens.
Change-Id: I6a9507eb0b919b3af2752e2499904cc62509c06a
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/mainboard/google/eve/Kconfig | 2 ++
src/mainboard/google/eve/chromeos.fmd | 31 ++++++++++++++++++-------------
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/src/mainboard/google/eve/Kconfig b/src/mainboard/google/eve/Kconfig
index 32c029d..e83e7d9 100644
--- a/src/mainboard/google/eve/Kconfig
+++ b/src/mainboard/google/eve/Kconfig
@@ -18,7 +18,9 @@ config BOARD_SPECIFIC_OPTIONS
config CHROMEOS
select EC_GOOGLE_CHROMEEC_SWITCHES
+ select HAS_RECOVERY_MRC_CACHE
select LID_SWITCH
+ select MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN
config DRIVERS_I2C_GENERIC
def_bool y
diff --git a/src/mainboard/google/eve/chromeos.fmd b/src/mainboard/google/eve/chromeos.fmd
index 58b6127..bdadcf7 100644
--- a/src/mainboard/google/eve/chromeos.fmd
+++ b/src/mainboard/google/eve/chromeos.fmd
@@ -4,24 +4,29 @@ FLASH@0xff000000 0x1000000 {
SI_ME@0x1000 0x1ff000
}
SI_BIOS@0x200000 0xe00000 {
- RW_SECTION_A@0x0 0x3f0000 {
+ RW_SECTION_A@0x0 0x3e8000 {
VBLOCK_A@0x0 0x10000
- FW_MAIN_A(CBFS)@0x10000 0x3dffc0
- RW_FWID_A@0x3effc0 0x40
+ FW_MAIN_A(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_A@0x3e7fc0 0x40
}
- RW_SECTION_B@0x3f0000 0x3f0000 {
+ RW_SECTION_B@0x3e8000 0x3e8000 {
VBLOCK_B@0x0 0x10000
- FW_MAIN_B(CBFS)@0x10000 0x3dffc0
- RW_FWID_B@0x3effc0 0x40
+ FW_MAIN_B(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_B@0x3e7fc0 0x40
}
- RW_MRC_CACHE@0x7e0000 0x10000
- RW_ELOG@0x7f0000 0x4000
- RW_SHARED@0x7f4000 0x4000 {
- SHARED_DATA@0x0 0x2000
- VBLOCK_DEV@0x2000 0x2000
+ RW_MISC@0x7d0000 0x30000 {
+ UNIFIED_MRC_CACHE@0x0 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_ELOG@0x20000 0x4000
+ RW_SHARED@0x24000 0x4000 {
+ SHARED_DATA@0x0 0x2000
+ VBLOCK_DEV@0x2000 0x2000
+ }
+ RW_VPD@0x28000 0x2000
+ RW_NVRAM@0x2a000 0x6000
}
- RW_VPD@0x7f8000 0x2000
- RW_NVRAM@0x7fa000 0x6000
RW_LEGACY(CBFS)@0x800000 0x200000
WP_RO@0xa00000 0x400000 {
RO_VPD@0x0 0x4000
Duncan Laurie (dlaurie(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18198
-gerrit
commit 5283cc366e7cbf2eda6e95aa022f7bb86aa28c48
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Sat Jan 21 16:55:03 2017 -0800
soc/intel/skylake: Include I2C code in romstage
The lpss_i2c driver is enabled in romstage, so the SOC needs to
export the pre-ram compatible I2C controller info, which for
skylake is in the bootblock/i2c.c file.
This was not causing a compile in normal use, but when I was
adding some I2C debug code in romstage it failed to compile.
With this added, I can now do I2C transactions in romstage.
Change-Id: I0778b0497d0b6936df47c29b2ce942c8d90cf39b
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/soc/intel/skylake/Makefile.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/soc/intel/skylake/Makefile.inc b/src/soc/intel/skylake/Makefile.inc
index 3a474e7..4b6fcfc 100644
--- a/src/soc/intel/skylake/Makefile.inc
+++ b/src/soc/intel/skylake/Makefile.inc
@@ -38,6 +38,7 @@ verstage-y += spi.c
romstage-y += flash_controller.c
romstage-y += gpio.c
+romstage-y += bootblock/i2c.c
romstage-y += memmap.c
romstage-y += monotonic_timer.c
romstage-y += me.c