Ben Gardner (gardner.ben(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15047
-gerrit
commit cc49754bba4b7757d833a45a9373fa2012eafc2c
Author: Ben Gardner <gardner.ben(a)gmail.com>
Date: Wed Jun 1 09:25:28 2016 -0500
intel/fsp_baytrail/i2c: mask i2c interrupts in i2c_init()
i2c_init() leaves the I2C device enabled. Combined with the default
interrupt mask (0x8ff) and the fact that the interrupt line is shared,
this leads to an interrupt storm in the OS until a proper I2C driver
is loaded.
This change clears the interrupt mask to prevent the interrupt storm.
Change-Id: I0424a00753d06e26639750f065a7a08a710bfaba
Signed-off-by: Ben Gardner <gardner.ben(a)gmail.com>
---
src/soc/intel/fsp_baytrail/i2c.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/soc/intel/fsp_baytrail/i2c.c b/src/soc/intel/fsp_baytrail/i2c.c
index eb83180..4565ba4 100644
--- a/src/soc/intel/fsp_baytrail/i2c.c
+++ b/src/soc/intel/fsp_baytrail/i2c.c
@@ -141,6 +141,8 @@ int i2c_init(unsigned bus)
/* For 400 kHz, the counter value is 0x7d */
write32(base_ptr + I2C_FS_SCL_HCNT, 0x7d);
write32(base_ptr + I2C_FS_SCL_LCNT, 0x7d);
+ /* no interrupts in BIOS */
+ write32(base_ptr + I2C_INTR_MASK, 0);
/* Enable the I2C controller for operation */
write32(base_ptr + I2C_ENABLE, 0x1);
Iru Cai (mytbk920423(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14632
-gerrit
commit 007ba382c795c62302beb7df0803b5ddebe90e94
Author: Iru Cai <mytbk920423(a)gmail.com>
Date: Fri May 6 23:05:28 2016 +0800
lenovo/t420: correct the eSATA port
The eSATA port of Lenovo T420 is port 3. I've checked it on an iGPU
model and a dGPU model.
Change-Id: I64bcc887140c1634dd1475d29e97780a5128d0be
Signed-off-by: Iru Cai <mytbk920423(a)gmail.com>
---
src/mainboard/lenovo/t420/devicetree.cb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mainboard/lenovo/t420/devicetree.cb b/src/mainboard/lenovo/t420/devicetree.cb
index 8041e5b..f549d4c 100644
--- a/src/mainboard/lenovo/t420/devicetree.cb
+++ b/src/mainboard/lenovo/t420/devicetree.cb
@@ -54,8 +54,8 @@ chip northbridge/intel/sandybridge
register "gpi1_routing" = "2"
register "gpi13_routing" = "2"
- # Enable SATA ports 0 (HDD bay) & 1 (ODD bay) & 2 (mSATA) & 4 (dock) & 5 (eSATA)
- register "sata_port_map" = "0x37"
+ # Enable SATA ports 0 (HDD bay) & 1 (ODD bay) & 2 (mSATA) & 3 (eSATA) & 4 (dock)
+ register "sata_port_map" = "0x1f"
# Set max SATA speed to 6.0 Gb/s
register "sata_interface_speed_support" = "0x3"
Furquan Shaikh (furquan(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15045
-gerrit
commit bbb37c86194bcb4004146a2e013d5ce3a86733e9
Author: Furquan Shaikh <furquan(a)google.com>
Date: Wed Jun 1 01:53:18 2016 -0700
cbfs: Use NO_XIP_EARLY_STAGES to decide if stage is XIP
Modern platforms like Apollolake do not use XIP for early stages. In
such cases, cbfs_prog_stage_load should check for NO_XIP_EARLY_STAGES
instead of relying on ARCH_X86 to decide if a stage is XIP.
Change-Id: I1729ce82b5f678ce8c37256090fcf353cc22b1ec
Signed-off-by: Furquan Shaikh <furquan(a)google.com>
---
src/Kconfig | 3 +--
src/lib/cbfs.c | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index f93c2cc..6e6e944 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -204,8 +204,7 @@ config NO_XIP_EARLY_STAGES
default n if ARCH_X86
default y
help
- Identify if --xip parameter needs to be passed into cbfstool for early
- stages.
+ Identify if early stages are eXecute-In-Place(XIP).
config EARLY_CBMEM_INIT
def_bool !LATE_CBMEM_INIT
diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c
index 764a6f7..aa652c2 100644
--- a/src/lib/cbfs.c
+++ b/src/lib/cbfs.c
@@ -192,7 +192,7 @@ int cbfs_prog_stage_load(struct prog *pstage)
/* Hacky way to not load programs over read only media. The stages
* that would hit this path initialize themselves. */
- if (ENV_VERSTAGE && IS_ENABLED(CONFIG_ARCH_X86) &&
+ if (ENV_VERSTAGE && !IS_ENABLED(CONFIG_NO_XIP_EARLY_STAGES) &&
IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED)) {
void *mapping = rdev_mmap(fh, foffset, fsize);
rdev_munmap(fh, mapping);