Sumeet R Pawnikar (sumeet.r.pawnikar(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17921
-gerrit
commit 7e45c8be0bb17b3da161279d902e346eb627b7d6
Author: Sumeet Pawnikar <sumeet.r.pawnikar(a)intel.com>
Date: Thu Dec 22 13:53:16 2016 +0530
mainboard/google/chell: Set TCC activation offset to 10 degree C
With the default TCC activation offset value as 0 and Tjmax
temperature value as 100 degree C, Pcode firmware starts taking
prochot action at 100 degree C [Tjmax-Offset].
But before Pcode firmware starts prochot action at 100 degree C,
device is getting shutdown at 99 degree C due to DPTF critical
CPU temperature.
This patch sets TCC activation offset value to 10 degree C for
thermal throttle action to prevent this kind of shutdown.
BUG=chrome-os-partner:59397
BRANCH=None.
TEST=Built, booted on skylake and verified target offset value.
Change-Id: I0811ef481a4b3ce4bd6ef24f2aa8160f44f9c990
Signed-off-by: Sumeet Pawnikar <sumeet.r.pawnikar(a)intel.com>
---
src/mainboard/google/chell/devicetree.cb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mainboard/google/chell/devicetree.cb b/src/mainboard/google/chell/devicetree.cb
index 34250d3..2ffaec6 100644
--- a/src/mainboard/google/chell/devicetree.cb
+++ b/src/mainboard/google/chell/devicetree.cb
@@ -183,6 +183,8 @@ chip soc/intel/skylake
# PL2 override 15W
register "tdp_pl2_override" = "15"
+ register "tcc_offset" = "10" # TCC of 90C
+
# Send an extra VR mailbox command for the supported MPS IMVP8 model
register "SendVrMbxCmd" = "1"
Sumeet R Pawnikar (sumeet.r.pawnikar(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17889
-gerrit
commit d4e437821b1f74401ed2360e2272b38c690c8fbc
Author: Sumeet Pawnikar <sumeet.r.pawnikar(a)intel.com>
Date: Thu Dec 22 13:48:46 2016 +0530
soc/intel/skylake: set TCC activation by BSP only
TCC activation functionality has package scope. It was set
for all CPU in the system which is unnecessary.
In this patch TCC activation is being set by the BSP only.
BUG=chrome-os-partner:59397
BRANCH=None.
TEST=Built for skylake platform and verified the TCC activation
value before and after S3.
Change-Id: Iacf64cbc40871bbec3bede65f196bf292e0149a6
Signed-off-by: Sumeet Pawnikar <sumeet.r.pawnikar(a)intel.com>
---
src/soc/intel/skylake/cpu.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/soc/intel/skylake/cpu.c b/src/soc/intel/skylake/cpu.c
index 3ec8d2c..e8616f0 100644
--- a/src/soc/intel/skylake/cpu.c
+++ b/src/soc/intel/skylake/cpu.c
@@ -197,7 +197,7 @@ static void configure_thermal_target(void)
config_t *conf = dev->chip_info;
msr_t msr;
- /* Set TCC activaiton offset if supported */
+ /* Set TCC activation offset if supported */
msr = rdmsr(MSR_PLATFORM_INFO);
if ((msr.lo & (1 << 30)) && conf->tcc_offset) {
msr = rdmsr(MSR_TEMPERATURE_TARGET);
@@ -366,9 +366,6 @@ static void cpu_core_init(device_t cpu)
/* Configure Intel Speed Shift */
configure_isst();
- /* Thermal throttle activation offset */
- configure_thermal_target();
-
/* Enable Direct Cache Access */
configure_dca_cap();
@@ -484,6 +481,9 @@ void soc_init_cpus(device_t dev)
if (mp_init_with_smm(cpu_bus, &mp_ops)) {
printk(BIOS_ERR, "MP initialization failure.\n");
}
+
+ /* Thermal throttle activation offset */
+ configure_thermal_target();
}
int soc_skip_ucode_update(u32 current_patch_id, u32 new_patch_id)
Ricardo Ribalda Delgado (ricardo.ribalda(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17934
-gerrit
commit abe58c1afd7370742368ab700bcdf350c7a72a8f
Author: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
Date: Wed Dec 21 20:57:13 2016 +0100
amd/hudson/agesa: Fix position of hudson_fwm
AMDFWTOOL calculates the location of the amdfw based on the
CONFIG_ROM_SIZE. If HUDSON_FWM_POSITION does not match that location the
resulting rom does not boot.
On this patch we force the position of HUDSON_FWM_POSITION to the
position calculated by amdfwrom.
Tested on a Bettong board with a 16MiB flash.
Change-Id: I3ce69f77174327c18ff97e551c0665c9f633991e
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
---
src/southbridge/amd/agesa/hudson/Kconfig | 23 -----------------------
src/southbridge/amd/agesa/hudson/Makefile.inc | 3 +--
2 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/src/southbridge/amd/agesa/hudson/Kconfig b/src/southbridge/amd/agesa/hudson/Kconfig
index eed83ae..91ebe03 100644
--- a/src/southbridge/amd/agesa/hudson/Kconfig
+++ b/src/southbridge/amd/agesa/hudson/Kconfig
@@ -101,29 +101,6 @@ config HUDSON_FWM
default y if HUDSON_XHCI_FWM || HUDSON_IMC_FWM || HUDSON_GEC_FWM
default n
-if HUDSON_FWM
-
-config HUDSON_FWM_POSITION
- hex "Hudson Firmware ROM Position"
- default 0xFFF20000 if BOARD_ROMSIZE_KB_1024
- default 0xFFE20000 if BOARD_ROMSIZE_KB_2048
- default 0xFFC20000 if BOARD_ROMSIZE_KB_4096
- default 0xFF820000 if BOARD_ROMSIZE_KB_8192
- default 0xFF020000 if BOARD_ROMSIZE_KB_16384
- help
- Hudson requires the firmware MUST be located at
- a specific address (ROM start address + 0x20000), otherwise
- xhci host Controller can not find or load the xhci firmware.
-
- The firmware start address is dependent on the ROM chip size.
- The default offset is 0x20000 from the ROM start address, namely
- 0xFFF20000 if flash chip size is 1M
- 0xFFE20000 if flash chip size is 2M
- 0xFFC20000 if flash chip size is 4M
- 0xFF820000 if flash chip size is 8M
- 0xFF020000 if flash chip size is 16M
-endif # HUDSON_FWM
-
config HUDSON_SATA_MODE
int "SATA Mode"
default 0
diff --git a/src/southbridge/amd/agesa/hudson/Makefile.inc b/src/southbridge/amd/agesa/hudson/Makefile.inc
index 2e8b13b..7595889 100644
--- a/src/southbridge/amd/agesa/hudson/Makefile.inc
+++ b/src/southbridge/amd/agesa/hudson/Makefile.inc
@@ -35,8 +35,7 @@ ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c smi_util.c
# +-----------+---------------+----------------+------------+
# EC ROM should be 64K aligned.
-HUDSON_FWM_POS_CALC=$(call int-add, $(call int-subtract, 0xffffffff $(call int-multiply, $(CONFIG_COREBOOT_ROMSIZE_KB) 1024)) 0x20000 1)
-HUDSON_FWM_POSITION=$(shell printf %u $(CONFIG_HUDSON_FWM_POSITION))
+HUDSON_FWM_POSITION=$(call int-add, $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 0x20000 1)
ifdef CONFIG_HUDSON_AHCI_ROM
stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID))
Ricardo Ribalda Delgado (ricardo.ribalda(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17925
-gerrit
commit 596a25ccb78f0a457c01c9be5bacb860507007ae
Author: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
Date: Tue Dec 20 10:51:08 2016 +0100
amd/hudson/pi: Fix position of hudson_fwm
AMDFWTOOL calculates the location of the amdfw based on the
CONFIG_ROM_SIZE. If HUDSON_FWM_POSITION does not match that location the
resulting rom does not boot.
On this patch we force the position of HUDSON_FWM_POSITION to the
position calculated by amdfwrom.
Tested on a Bettong board with a 16MiB flash.
Change-Id: Id2ee96ee076293d48ade84fd6e976ca994dcf491
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
---
src/southbridge/amd/pi/hudson/Kconfig | 23 -----------------------
src/southbridge/amd/pi/hudson/Makefile.inc | 3 +--
2 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/src/southbridge/amd/pi/hudson/Kconfig b/src/southbridge/amd/pi/hudson/Kconfig
index afa03aa..f6e3355 100644
--- a/src/southbridge/amd/pi/hudson/Kconfig
+++ b/src/southbridge/amd/pi/hudson/Kconfig
@@ -103,29 +103,6 @@ config HUDSON_FWM
default y if HUDSON_XHCI_FWM || HUDSON_IMC_FWM || HUDSON_GEC_FWM || HUDSON_PSP
default n
-if HUDSON_FWM
-
-config HUDSON_FWM_POSITION
- hex "Hudson Firmware ROM Position"
- default 0xFFF20000 if BOARD_ROMSIZE_KB_1024
- default 0xFFE20000 if BOARD_ROMSIZE_KB_2048
- default 0xFFC20000 if BOARD_ROMSIZE_KB_4096
- default 0xFF820000 if BOARD_ROMSIZE_KB_8192
- default 0xFF020000 if BOARD_ROMSIZE_KB_16384
- help
- Hudson requires the firmware MUST be located at
- a specific address (ROM start address + 0x20000), otherwise
- xhci host Controller can not find or load the xhci firmware.
-
- The firmware start address is dependent on the ROM chip size.
- The default offset is 0x20000 from the ROM start address, namely
- 0xFFF20000 if flash chip size is 1M
- 0xFFE20000 if flash chip size is 2M
- 0xFFC20000 if flash chip size is 4M
- 0xFF820000 if flash chip size is 8M
- 0xFF020000 if flash chip size is 16M
-endif # HUDSON_FWM
-
config AMD_PUBKEY_FILE
depends on HUDSON_PSP
string "AMD public Key"
diff --git a/src/southbridge/amd/pi/hudson/Makefile.inc b/src/southbridge/amd/pi/hudson/Makefile.inc
index 292da76..24a757c 100644
--- a/src/southbridge/amd/pi/hudson/Makefile.inc
+++ b/src/southbridge/amd/pi/hudson/Makefile.inc
@@ -67,8 +67,7 @@ ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c smi_util.c
#
# EC ROM should be 64K aligned.
-HUDSON_FWM_POS_CALC=$(call int-add, $(call int-subtract, 0xffffffff $(call int-multiply, $(CONFIG_COREBOOT_ROMSIZE_KB) 1024)) 0x20000 1)
-HUDSON_FWM_POSITION=$(shell printf %u $(CONFIG_HUDSON_FWM_POSITION))
+HUDSON_FWM_POSITION=$(call int-add, $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 0x20000 1)
##
ifeq ($(CONFIG_HUDSON_PSP), y)
the following patch was just integrated into master:
commit 35562d8b6477058e6bca31b5cedd9d4897124fc7
Author: Paul Kocialkowski <contact(a)paulk.fr>
Date: Mon Dec 19 19:22:39 2016 +0100
libpayload: Get current tick from high register in generic timer
This fixes the generic timer driver to get the current tick from the
high register, so that comparison with the high count value (obtained
previously from the same register) has a chance to succeed.
Change-Id: I5ce02bfa15a91ad34641b8e24813a5b7ca790ec3
Signed-off-by: Paul Kocialkowski <contact(a)paulk.fr>
Reviewed-on: https://review.coreboot.org/17929
Tested-by: build bot (Jenkins)
Reviewed-by: Nico Huber <nico.h(a)gmx.de>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
See https://review.coreboot.org/17929 for details.
-gerrit
Ricardo Ribalda Delgado (ricardo.ribalda(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17924
-gerrit
commit e12095ff877b8a059cbc7d800934e6d022ebf84e
Author: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
Date: Tue Dec 20 10:08:45 2016 +0100
agesawrapper: Fix endless loop on bettong
AGESA AmdInitEarly() reconfigures the lapic timer in a way that
conflicts with lapic/apic_timer.
This results in an endless loop when printk() is called after
AmdInitEarly() and before the apic_timer is initialized.
This patch forces a reconfiguration of the timer after
AmdInitEarly() is called.
Codepath of the endless loop:
printk()->
(...)->
uart_tx_byte->
uart8250_mem_tx_byte->
udelay()->
start = lapic_read(LAPIC_TMCCT);
do {
value = lapic_read(LAPIC_TMCCT);
} while ((start - value) < ticks);
[lapic_read returns the same value after AmdInitEarly()]
Change-Id: I1a08789c89401b2bf6d11846ad7c376bfc68801b
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda(a)gmail.com>
---
src/northbridge/amd/pi/agesawrapper.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/northbridge/amd/pi/agesawrapper.c b/src/northbridge/amd/pi/agesawrapper.c
index 8e16e75..0edfc13 100644
--- a/src/northbridge/amd/pi/agesawrapper.c
+++ b/src/northbridge/amd/pi/agesawrapper.c
@@ -15,6 +15,7 @@
#include <AGESA.h>
#include <cbfs.h>
+#include <delay.h>
#include <cpu/amd/pi/s3_resume.h>
#include <cpu/x86/mtrr.h>
#include <cpuRegisters.h>
@@ -107,6 +108,13 @@ AGESA_STATUS agesawrapper_amdinitearly(void)
AmdEarlyParamsPtr->GnbConfig.PsppPolicy = PsppDisabled;
status = AmdInitEarly ((AMD_EARLY_PARAMS *)AmdParamStruct.NewStructPtr);
+#if CONFIG_BOARD_AMD_BETTONG
+ /*
+ * init_timer() needs to be called on CZ PI, because AGESA resets the LAPIC reload value
+ * on the AMD_INIT_EARLY call
+ */
+ init_timer();
+#endif
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(AmdParamStruct.StdHeader.HeapStatus);
AmdReleaseStruct (&AmdParamStruct);