the following patch was just integrated into master:
commit d23ee5de2233d2f200dc15bf4a7669599c2b2014
Author: Nico Huber <nico.h(a)gmx.de>
Date: Thu Aug 11 22:45:55 2016 +0200
mainboard: Clean up boot_option/reboot_bits in cmos.layout
Since commit 3bfd7cc (drivers/pc80: Rework normal / fallback selector
code) the reboot counter stored in `reboot_bits` isn't reset on a reboot
with `boot_option = 1` any more. Hence, with SKIP_MAX_REBOOT_CNT_CLEAR
enabled, later stages (e.g. payload, OS) have to clear the counter too,
when they want to switch to normal boot. So change the bits to (h)ex
instead of (r)eserved.
To clarify their meaning, rename `reboot_bits` to `reboot_counter`. Also
remove all occurences of the obsolete `last_boot` bit that have sneaked
in again since 24391321 (mainboard: Remove last_boot NVRAM option).
Change-Id: Ib3fc38115ce951b75374e0d1347798b23db7243c
Signed-off-by: Nico Huber <nico.h(a)gmx.de>
Reviewed-on: https://review.coreboot.org/16157
Tested-by: build bot (Jenkins)
Reviewed-by: Timothy Pearson <tpearson(a)raptorengineering.com>
Reviewed-by: York Yang <york.yang(a)intel.com>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
See https://review.coreboot.org/16157 for details.
-gerrit
Rizwan Qureshi (rizwan.qureshi(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16236
-gerrit
commit 2d5fe75b8d9d45dddb049e2ec5b1d38cfcf16435
Author: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Date: Sun Aug 14 15:48:33 2016 +0530
soc/intel/skylake: Correct Cache as ram size
DCACHE_RAM_SIZE_TOTAL is set to 0x40000 and is being used to
set up CAR. Whereas DCACHE_RAM_SIZE which is set to 0x10000
is used to calculate the _car_region_end in car.ld. If the FSP CAR
requirement is greater than or even close to DCACHE_RAM_SIZE then,
the CAR region for FSP will be determined to be below the overall
CAR region boundary i.e, out of CAR memory range.
This is working with FSP 1.1 because we provide the FspCarSize
and FspCarBase explicitly in a UPD. Hence, FSP is still able to
use the upper region of CAR memory for its purpose.
However, it will be a problem in case of FSP2.0 where FSP usable CAR
is calculated using _car_region_end.
So, Remove the the use of DCACHE_RAM_SIZE_TOTAL and set
DCACHE_RAM_SIZE to correct value i.e, 0x40000(256KB)
Change-Id: Ie2cb8bb0705a37edb3414850d7659f8a3dd6958b
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
---
src/soc/intel/skylake/Kconfig | 6 +-----
src/soc/intel/skylake/bootblock/cache_as_ram.S | 4 ++--
src/soc/intel/skylake/romstage/romstage.c | 2 +-
3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index 8c8b1b7..3df4bd7 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -84,7 +84,7 @@ config DCACHE_RAM_BASE
config DCACHE_RAM_SIZE
hex "Length in bytes of cache-as-RAM"
- default 0x10000
+ default 0x40000
help
The size of the cache-as-ram region required during bootblock
and/or romstage.
@@ -199,10 +199,6 @@ config NHLT_SSM4567
help
Include DSP firmware settings for ssm4567 smart amplifier.
-config DCACHE_RAM_SIZE_TOTAL
- hex
- default 0x40000
-
config SKIP_FSP_CAR
bool "Skip cache as RAM setup in FSP"
default y
diff --git a/src/soc/intel/skylake/bootblock/cache_as_ram.S b/src/soc/intel/skylake/bootblock/cache_as_ram.S
index 89a3cf0..3f8f0f0 100644
--- a/src/soc/intel/skylake/bootblock/cache_as_ram.S
+++ b/src/soc/intel/skylake/bootblock/cache_as_ram.S
@@ -116,7 +116,7 @@ clear_var_mtrr:
/* Configure the MTRR mask for the size region */
mov $MTRR_PHYS_MASK(0), %ecx
- mov $CONFIG_DCACHE_RAM_SIZE_TOTAL, %eax /* size mask */
+ mov $CONFIG_DCACHE_RAM_SIZE, %eax /* size mask */
dec %eax
not %eax
or $MTRR_PHYS_MASK_VALID, %eax
@@ -216,7 +216,7 @@ find_llc_subleaf:
wrmsr
movl $CONFIG_DCACHE_RAM_BASE, %edi
- movl $CONFIG_DCACHE_RAM_SIZE_TOTAL, %ecx
+ movl $CONFIG_DCACHE_RAM_SIZE, %ecx
shr $0x02, %ecx
movl $CACHE_INIT_VALUE, %eax
cld
diff --git a/src/soc/intel/skylake/romstage/romstage.c b/src/soc/intel/skylake/romstage/romstage.c
index fda6087..0ec2f99 100644
--- a/src/soc/intel/skylake/romstage/romstage.c
+++ b/src/soc/intel/skylake/romstage/romstage.c
@@ -93,7 +93,7 @@ void soc_memory_init_params(struct romstage_params *params,
upd->DdrFreqLimit = config->DdrFreqLimit;
if (IS_ENABLED(CONFIG_SKIP_FSP_CAR)) {
upd->FspCarBase = CONFIG_DCACHE_RAM_BASE;
- upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE_TOTAL;
+ upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE;
}
}
Rizwan Qureshi (rizwan.qureshi(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16236
-gerrit
commit 3717b9d5852ba35827137404b715b1b85391d660
Author: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Date: Sun Aug 14 15:48:33 2016 +0530
soc/intel/skylake: Cache as ram size correction
DCACHE_RAM_SIZE_TOTAL is set to 0x40000 and is being used to
set up CAR. Whereas DCACHE_RAM_SIZE which is set to 0x10000
is used to calculate the _car_region_end in car.ld. If the FSP CAR
requirement is greater than or even close to DCACHE_RAM_SIZE then,
the CAR region for FSP will be determined to be below the overall
CAR region boundary i.e, out of CAR memory range.
This is working with FSP 1.1 because we provide the FspCarSize
and FspCarBase explicitly in a UPD. Hence, FSP is still able to
use the upper region of CAR memory for its purpose.
However, it will be a problem in case of FSP2.0 where FSP usable CAR
is calculated using _car_region_end.
So, Remove the the use of DCACHE_RAM_SIZE_TOTAL and set
DCACHE_RAM_SIZE to correct value i.e, 0x40000(256KB)
Change-Id: Ie2cb8bb0705a37edb3414850d7659f8a3dd6958b
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
---
src/soc/intel/skylake/Kconfig | 6 +-----
src/soc/intel/skylake/bootblock/cache_as_ram.S | 4 ++--
src/soc/intel/skylake/romstage/romstage.c | 2 +-
3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index 8c8b1b7..3df4bd7 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -84,7 +84,7 @@ config DCACHE_RAM_BASE
config DCACHE_RAM_SIZE
hex "Length in bytes of cache-as-RAM"
- default 0x10000
+ default 0x40000
help
The size of the cache-as-ram region required during bootblock
and/or romstage.
@@ -199,10 +199,6 @@ config NHLT_SSM4567
help
Include DSP firmware settings for ssm4567 smart amplifier.
-config DCACHE_RAM_SIZE_TOTAL
- hex
- default 0x40000
-
config SKIP_FSP_CAR
bool "Skip cache as RAM setup in FSP"
default y
diff --git a/src/soc/intel/skylake/bootblock/cache_as_ram.S b/src/soc/intel/skylake/bootblock/cache_as_ram.S
index 89a3cf0..3f8f0f0 100644
--- a/src/soc/intel/skylake/bootblock/cache_as_ram.S
+++ b/src/soc/intel/skylake/bootblock/cache_as_ram.S
@@ -116,7 +116,7 @@ clear_var_mtrr:
/* Configure the MTRR mask for the size region */
mov $MTRR_PHYS_MASK(0), %ecx
- mov $CONFIG_DCACHE_RAM_SIZE_TOTAL, %eax /* size mask */
+ mov $CONFIG_DCACHE_RAM_SIZE, %eax /* size mask */
dec %eax
not %eax
or $MTRR_PHYS_MASK_VALID, %eax
@@ -216,7 +216,7 @@ find_llc_subleaf:
wrmsr
movl $CONFIG_DCACHE_RAM_BASE, %edi
- movl $CONFIG_DCACHE_RAM_SIZE_TOTAL, %ecx
+ movl $CONFIG_DCACHE_RAM_SIZE, %ecx
shr $0x02, %ecx
movl $CACHE_INIT_VALUE, %eax
cld
diff --git a/src/soc/intel/skylake/romstage/romstage.c b/src/soc/intel/skylake/romstage/romstage.c
index fda6087..0ec2f99 100644
--- a/src/soc/intel/skylake/romstage/romstage.c
+++ b/src/soc/intel/skylake/romstage/romstage.c
@@ -93,7 +93,7 @@ void soc_memory_init_params(struct romstage_params *params,
upd->DdrFreqLimit = config->DdrFreqLimit;
if (IS_ENABLED(CONFIG_SKIP_FSP_CAR)) {
upd->FspCarBase = CONFIG_DCACHE_RAM_BASE;
- upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE_TOTAL;
+ upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE;
}
}
the following patch was just integrated into master:
commit 4f79e6618519fa1aa8e8afaac57fc7dbfeeb4484
Author: Julius Werner <jwerner(a)chromium.org>
Date: Mon Aug 15 16:14:15 2016 -0700
console: Change CONFIG_CHROMEOS requirement from do_printk_va_list()
CONFIG_VBOOT was recently moved to be independent from CONFIG_CHROMEOS.
Change the code guard for do_printk_va_list() accordingly, since it's
used by vboot (not Chrome OS) code.
Change-Id: I44e868d2fd8e1368eeda2f10a35d0a2bd7259759
Signed-off-by: Julius Werner <jwerner(a)chromium.org>
Reviewed-on: https://review.coreboot.org/16230
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See https://review.coreboot.org/16230 for details.
-gerrit
the following patch was just integrated into master:
commit 4157bd8d61ad709a29072cb4505b3cc7463e515b
Author: Julius Werner <jwerner(a)chromium.org>
Date: Mon Aug 15 16:10:27 2016 -0700
vboot: Move TPM-related Kconfig selects from CHROMEOS to VBOOT
CONFIG_VBOOT was recently moved to be independent from CONFIG_CHROMEOS.
However, the latter still has some 'select' clauses to ensure that
required TPM libraries are built. The TPM is an essential part of vboot,
and without these libraries the vboot code cannot compile... therefore,
they should be moved under CONFIG_VBOOT.
Change-Id: I0145558e5127c65c6a82d62f25b5a39e24cb8726
Signed-off-by: Julius Werner <jwerner(a)chromium.org>
Reviewed-on: https://review.coreboot.org/16229
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
See https://review.coreboot.org/16229 for details.
-gerrit
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16235
-gerrit
commit c3c0fa9c8e242bc2b01a144e1cf3ff3bb54f6c27
Author: Julius Werner <jwerner(a)chromium.org>
Date: Thu Aug 11 16:37:57 2016 -0700
google/gru: Add new PWM regulator duty numbers for revision 6
We're changing the PWM regulator bounds on Kevin from rev6 onwards, so
we'll need to use different duty cycle values for them. We really want a
proper PWM regulator driver that can calculate these values
automatically from voltages, but until we have that this patch just
hardcodes the new numbers in.
(Yes, this is a patch for the mainboard/google/gru board family that only
touches a file from the rockchip/rk3399 SoC. That too is something
that'll be fixed up in a later CL.)
BRANCH=None
BUG=chrome-os-partner:54888
TEST=Booted Kevin rev4 (for whatever that's worth...).
Change-Id: Ibb6ab5c6517d83ffb5e32cb17d0de33e8ec10293
Signed-off-by: Martin Roth <martinroth(a)chromium.org>
Original-Commit-Id: 4cb2a939295e2b6443c5dbd3374982224322304b
Original-Change-Id: I8757cc54f2478d20bb948a1a0a7398b0404a7b1f
Original-Signed-off-by: Julius Werner <jwerner(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/368410
Original-Commit-Ready: Dan Shi <dshi(a)chromium.org>
Original-Reviewed-by: Douglas Anderson <dianders(a)chromium.org>
---
src/soc/rockchip/rk3399/romstage.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/soc/rockchip/rk3399/romstage.c b/src/soc/rockchip/rk3399/romstage.c
index 8adaa7c..ccf42b9 100644
--- a/src/soc/rockchip/rk3399/romstage.c
+++ b/src/soc/rockchip/rk3399/romstage.c
@@ -79,12 +79,24 @@ static void init_dvs_outputs(void)
*/
duty_ns = 2860; /* 0.9v */
+ /* TODO: Clean all this up, implement proper pwm_regulator driver. */
if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN)) {
id = board_id();
if (id <= 2)
duty_ns = 1906; /* 1.1v */
else if (id == 3)
duty_ns = 2621; /* 0.95v */
+ else if (id >= 6) {
+ /* GPU: 3337 * (12043 - 9000) / (12043 - 7984) = 2501 */
+ pwm_init(0, 3337, 2501);
+ /* BIG: 3337 * (12837 - 9000) / (12837 - 7985) = 2638 */
+ pwm_init(1, 3337, 2638);
+ /* LIT: 3337 * (12807 - 9000) / (12807 - 8009) = 2647 */
+ pwm_init(2, 3337, 2647);
+ /* CTR: 3337 * (10507 - 9500) / (10507 - 7996) = 1338 */
+ pwm_init(3, 3337, 1338);
+ return;
+ }
}
for (i = 0; i < 4; i++)
Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16213
-gerrit
commit f5c1c10285911646bd0285974897a9294c567150
Author: Felix Held <felix-coreboot(a)felixheld.de>
Date: Sat Aug 13 23:27:15 2016 +0200
bd82x6x/pch: move global variables to static variables in functions
Change-Id: I9e5795f9d601e5d2e7331715e5cd3848389cd594
Signed-off-by: Felix Held <felix-coreboot(a)felixheld.de>
---
src/southbridge/intel/bd82x6x/pch.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/southbridge/intel/bd82x6x/pch.c b/src/southbridge/intel/bd82x6x/pch.c
index 4a5b1c2..974abb1 100644
--- a/src/southbridge/intel/bd82x6x/pch.c
+++ b/src/southbridge/intel/bd82x6x/pch.c
@@ -26,11 +26,10 @@
#endif
#include "pch.h"
-static int pch_revision_id = -1;
-static int pch_type = -1;
int pch_silicon_revision(void)
{
+ static int pch_revision_id = -1;
device_t dev;
#ifdef __SMM__
@@ -46,6 +45,7 @@ int pch_silicon_revision(void)
int pch_silicon_type(void)
{
+ static int pch_type = -1;
device_t dev;
#ifdef __SMM__
Vaibhav Shankar (vaibhav.shankar(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16233
-gerrit
commit b3047f930b32d7de6a83a80e8687e4b8276c7dcf
Author: vaibhav <vaibhav.shankar(a)intel.com>
Date: Mon Aug 15 11:32:26 2016 -0700
soc/intel/apollolake: ASL methods for eMMC
PS0 and PS3 methods implemented to support eMMC power gate
in S0ix suspend and resume.
Signed-off-by: vaibhav <vaibhav.shankar(a)intel.com>
Change-Id: Ia974e9ed67ee520d16f6d6a60294bc62a120fd76
---
src/soc/intel/apollolake/acpi/scs.asl | 103 ++++++++++++++++++++++++++
src/soc/intel/apollolake/acpi/southbridge.asl | 4 +
2 files changed, 107 insertions(+)
diff --git a/src/soc/intel/apollolake/acpi/scs.asl b/src/soc/intel/apollolake/acpi/scs.asl
new file mode 100644
index 0000000..32bed29
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/scs.asl
@@ -0,0 +1,103 @@
+/**************************************************************************;
+;* *;
+;* Intel Confidential *;
+;* *;
+;* Intel Corporation - ACPI Reference Code for the Broxton *;
+;* Family of Customer Reference Boards. *;
+;* *;
+;* *;
+;* Copyright (c) 2012 - 2016 Intel Corporation. All rights reserved *;
+;* This software and associated documentation (if any) is furnished *;
+;* under a license and may only be used or copied in accordance *;
+;* with the terms of the license. Except as permitted by such *;
+;* license, no part of this software or documentation may be *;
+;* reproduced, stored in a retrieval system, or transmitted in any *;
+;* form or by any means without the express written consent of *;
+;* Intel Corporation. *;
+;* *;
+;* *;
+;**************************************************************************/
+/*++
+ This file contains an 'Intel Peripheral Driver' and is
+ licensed for Intel CPUs and chipsets under the terms of your
+ license agreement with Intel or your vendor. This file may
+ be modified by the user, subject to additional terms of the
+ license agreement
+--*/
+scope (\_SB.PCI0) {
+
+ OperationRegion (SBMM, SystemMemory, OR( OR (CONFIG_IOSF_BASE_ADDRESS,
+ ShiftLeft(0xD6, 16)), 0x0600), 0x18)
+ Field (SBMM, DWordAcc, NoLock, Preserve)
+ {
+ Offset (0x00),
+ GENR, 32,
+ Offset (0x08),
+ , 5,
+ GRR3, 1,
+ }
+
+ //
+ // SCC power gate control method, this method must be serialized as multiple
+ // device will control
+ //the GENR register
+ //
+ // Arguments: (2)
+ // Arg0: 0-AND 1-OR
+ // Arg1: Value
+ Method (SCPG, 2, Serialized)
+ {
+ Name (TMP, 0x0)
+ if (LEqual(Arg0, 0x1)) {
+ Store (\_SB.PCI0.GENR, TMP)
+ Or (TMP, Arg1, \_SB.PCI0.GENR)
+
+ } ElseIf(LEqual(Arg0, 0x0)) {
+ Store (\_SB.PCI0.GENR, TMP)
+ And (TMP, Arg1, \_SB.PCI0.GENR)
+ }
+ }
+
+ //
+ // eMMC
+ //
+ Device(SDHA) {
+ Name (_ADR, 0x001C0000)
+ Name (_DDN, "Intel(R) eMMC Controller - 80865ACC")
+ Name (_UID, 1)
+ //Method for port80 debug
+ OperationRegion (POST, SystemIO, 0x80, 1)
+ Field (POST, ByteAcc, Lock, Preserve)
+ {
+ DBG0, 8
+ }
+
+ Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
+ {
+ // To enable port 80 debug
+ // Store(0xB1, DBG0)
+
+ // Clear clock gate
+ \_SB.PCI0.SCPG(0,0xFFFFFFBE) // Clear bit 6 and 0
+ Sleep (2) // Sleep 2 ms
+ // To enable port 80 debug
+ // Store(0xB2, DBG0)
+ }
+
+ Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
+ {
+ //
+ // Enable power gate
+ // To enable port 80 debug
+ // Store(0xB3, DBG0)
+
+ // Restore clock gate
+ \_SB.PCI0.SCPG(1,0x00000041) // restore bit 6 and 0
+
+ // To enable port 80 debug
+ //Store(0xB4, DBG0)
+ }
+
+ } // Device(SDHA)
+
+}
diff --git a/src/soc/intel/apollolake/acpi/southbridge.asl b/src/soc/intel/apollolake/acpi/southbridge.asl
index 5b29abb..75b681c 100644
--- a/src/soc/intel/apollolake/acpi/southbridge.asl
+++ b/src/soc/intel/apollolake/acpi/southbridge.asl
@@ -31,5 +31,9 @@
/* LPC */
#include "lpc.asl"
+/* eMMC */
+#include "scs.asl"
+
+
/* PCI _OSC */
#include <soc/intel/common/acpi/pci_osc.asl>