diff options
author | Michał Żygowski <michal.zygowski@3mdeb.com> | 2022-10-04 10:55:38 +0200 |
---|---|---|
committer | Michał Żygowski <michal.zygowski@3mdeb.com> | 2023-01-27 16:25:37 +0000 |
commit | daa17107cbe68194a36f14911e420eee21310c00 (patch) | |
tree | a9a69aafbe2e08cd69c2e332429170209cdb3e44 /src/soc/intel/common/block/include/intelblocks | |
parent | 0b6954b8d538f0e7eb6b7aa852fb0e3a4a9ed352 (diff) |
intelblocks/cse: Add functions to check and change PTT state
Add functions that allow checking and changing PTT state at runtime.
Can be useful for platforms that want to use dTPM instead and have no
means to stitch ME firmware binary with disabled PTT.
The changing function also checks for the current feature states via
HECI to ensure that the feature state will not be changed if not
needed.
TEST=Successfully switch to dTPM on Comet Lake i5-10210U SoC.
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: I8426c46eada2d503d6ee72324c5d0025da3f2028
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68919
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Diffstat (limited to 'src/soc/intel/common/block/include/intelblocks')
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/cse.h | 20 |
1 files changed, 20 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 b031aa3390..4634984756 100644 --- a/src/soc/intel/common/block/include/intelblocks/cse.h +++ b/src/soc/intel/common/block/include/intelblocks/cse.h @@ -30,6 +30,14 @@ /* Get Firmware Version Command Id */ #define MKHI_GEN_GET_FW_VERSION 0x2 +/* Firmware Feature Shipment Time State Override Command Id */ +#define MKHI_GEN_FW_FEATURE_SHIPMENT_OVER 0x14 +#define ME_FW_FEATURE_PTT BIT(29) + +/* Get Firmware Feature State Command Id */ +#define MKHI_FWCAPS_GET_FW_FEATURE_STATE 0x02 +#define ME_FEATURE_STATE_RULE_ID 0x20 + /* MEI bus disable command. Must be sent to MEI client endpoint, not MKHI */ #define MEI_BUS_DISABLE_COMMAND 0xc @@ -567,4 +575,16 @@ void cse_get_telemetry_data(void); /* Function to log the cse WP information like range, if WP etc. */ void cse_log_ro_write_protection_info(bool mfg_mode); +/* + * Changes Intel PTT feature state at runtime. Global reset is required after + * successful HECI command completion. + */ +void cse_enable_ptt(bool state); + +/* + * Queries CSE for runtime status of firmware features. + * Returns 0 on success and < 0 on failure. + */ +enum cb_err cse_get_fw_feature_state(uint32_t *feature_state); + #endif // SOC_INTEL_COMMON_CSE_H |