summaryrefslogtreecommitdiff
path: root/src/cpu/intel/haswell
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-10-29 11:18:04 +0100
committerNico Huber <nico.h@gmx.de>2021-01-11 23:42:55 +0000
commit9dd1eb6fde1ef238605afa3893f0b009da8baa29 (patch)
tree9560c3236fefa19c3c68078a61e450a4c98205be /src/cpu/intel/haswell
parent242fd2810c86b82e5aea8f8244c13955dbd8b9db (diff)
cpu/intel/haswell: Add delay for TPM before Flex Ratio reboot
Commit 542307b815 (broadwell: Add small delay before Flex Ratio reboot) introduced a workaround for Broadwell. Implement it on Haswell as well. Since this is only necessary when a TPM is present on a system, only do the delay (which is not that small, to be honest) on TPM-enabled builds. Change-Id: Id8b58e9fa2a1c81989305f5b4b765b82c01e1596 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46941 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu/intel/haswell')
-rw-r--r--src/cpu/intel/haswell/bootblock.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cpu/intel/haswell/bootblock.c b/src/cpu/intel/haswell/bootblock.c
index c9e3f2abad..7066637f24 100644
--- a/src/cpu/intel/haswell/bootblock.c
+++ b/src/cpu/intel/haswell/bootblock.c
@@ -4,6 +4,7 @@
#include <arch/bootblock.h>
#include <cpu/x86/msr.h>
#include <arch/io.h>
+#include <delay.h>
#include <halt.h>
#include "haswell.h"
@@ -50,6 +51,10 @@ static void set_flex_ratio_to_tdp_nominal(void)
/* Set soft reset control to use register value */
RCBA32_OR(SOFT_RESET_CTRL, 1);
+ /* Delay before reset to avoid potential TPM lockout */
+ if (CONFIG(TPM1) || CONFIG(TPM2))
+ mdelay(30);
+
/* Issue warm reset, will be "CPU only" due to soft reset data */
outb(0x0, 0xcf9);
outb(0x6, 0xcf9);