summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common/block/include/intelblocks/cse.h
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2021-04-30 16:38:17 +0100
committerFelix Held <felix-coreboot@felixheld.de>2021-11-22 14:47:05 +0000
commit69ed3ed5d8c944a90873c10e8ca3bc15042dda22 (patch)
tree07c00fa9f8aaf75e4b09911c421036435465b839 /src/soc/intel/common/block/include/intelblocks/cse.h
parent89b6d4bf12aed24f7988009f414435f76d098810 (diff)
downloadcoreboot-69ed3ed5d8c944a90873c10e8ca3bc15042dda22.tar.gz
coreboot-69ed3ed5d8c944a90873c10e8ca3bc15042dda22.tar.bz2
coreboot-69ed3ed5d8c944a90873c10e8ca3bc15042dda22.zip
soc/intel: Allow enable/disable ME via CMOS
Add .enable method that will set the CSME state. The state is based on the new CMOS option me_state, with values of 0 and 1. The method is very stable when switching between different firmware platforms. This method should not be used in combination with USE_ME_CLEANER. State 1 will result in: ME: Current Working State : 4 ME: Current Operation State : 1 ME: Current Operation Mode : 3 ME: Error Code : 2 State 0 will result in: ME: Current Working State : 5 ME: Current Operation State : 1 ME: Current Operation Mode : 0 ME: Error Code : 0 Tested on: KBL-R: i7-8550u CML: i3-10110u, i7-10710u TGL: i3-1110G4, i7-1165G7 Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I374db3b7c0ded71cdc18f27970252fec7220cc20 Reviewed-on: https://review.coreboot.org/c/coreboot/+/52800 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Crawford <tcrawford@system76.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Diffstat (limited to 'src/soc/intel/common/block/include/intelblocks/cse.h')
-rw-r--r--src/soc/intel/common/block/include/intelblocks/cse.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/include/intelblocks/cse.h b/src/soc/intel/common/block/include/intelblocks/cse.h
index 7f455708e338..4184b17c5288 100644
--- a/src/soc/intel/common/block/include/intelblocks/cse.h
+++ b/src/soc/intel/common/block/include/intelblocks/cse.h
@@ -11,10 +11,15 @@
#define MKHI_GROUP_ID_HMRFPO 0x5
#define MKHI_GROUP_ID_GEN 0xff
#define MKHI_GROUP_ID_BUP_COMMON 0xf0
+#define MKHI_GROUP_ID_FWCAPS 0x3
/* Global Reset Command ID */
#define MKHI_CBM_GLOBAL_RESET_REQ 0xb
+/* Set State Command ID */
+#define MKHI_SET_ME_DISABLE 0x3
+#define MKHI_SET_ME_ENABLE 0x3
+
/* Origin of Global Reset command */
#define GR_ORIGIN_BIOS_POST 0x2
@@ -44,6 +49,12 @@
#define ME_HFS1_COM_SOFT_TEMP_DISABLE 0x3
#define ME_HFS1_COM_SECOVER_MEI_MSG 0x5
+/* ME Disable Rule */
+#define ME_DISABLE_RULE_ID 6
+#define ME_DISABLE_RULE_LENGTH 4
+#define ME_DISABLE_COMMAND 0
+#define ME_DISABLE_ATTEMPTS 3
+
/* ME Firmware SKU Types */
#define ME_HFS3_FW_SKU_CONSUMER 0x2
#define ME_HFS3_FW_SKU_CORPORATE 0x3