summaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/me.c
diff options
context:
space:
mode:
authorSridhar Siricilla <sridhar.siricilla@intel.com>2020-02-19 14:41:36 +0530
committerPatrick Georgi <pgeorgi@google.com>2020-03-02 11:38:18 +0000
commit24a974a8cbbbf0009cbbec3f5dc11aa8e35c26a8 (patch)
treee9d49747b44ca0a9ceb2b2cf31a9bea6e9c3df4e /src/soc/intel/skylake/me.c
parentc2a2d2ba268561fe0d4f076702a77071d6d6b57a (diff)
downloadcoreboot-24a974a8cbbbf0009cbbec3f5dc11aa8e35c26a8.tar.xz
soc/intel/{common, skl, cnl, apl}: Move print_me_fw_version() to CSE lib
Move print_me_fw_version(), remove print_me_version/dump_me_version from cnl/skl/apl and make changes to call print_me_version() which is defined in the CSE lib. TEST=Verified on hatch, soraka and bobba. Change-Id: I7567fac100b14dc207b7fc6060e7a064fb05caf6 Signed-off-by: Sridhar Siricilla <sridhar.siricilla@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/39010 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Diffstat (limited to 'src/soc/intel/skylake/me.c')
-rw-r--r--src/soc/intel/skylake/me.c80
1 files changed, 6 insertions, 74 deletions
diff --git a/src/soc/intel/skylake/me.c b/src/soc/intel/skylake/me.c
index b45234ec65..45a7c485ea 100644
--- a/src/soc/intel/skylake/me.c
+++ b/src/soc/intel/skylake/me.c
@@ -196,80 +196,6 @@ static const char *const me_progress_bup_values[] = {
"M0 kernel load",
};
-static void print_me_version(void *unused)
-{
- struct version {
- uint16_t minor;
- uint16_t major;
- uint16_t build;
- uint16_t hotfix;
- } __packed;
-
- struct fw_ver_resp {
- struct mkhi_hdr hdr;
- struct version code;
- struct version rec;
- struct version fitc;
- } __packed;
-
- const struct mkhi_hdr fw_ver_msg = {
- .group_id = MKHI_GEN_GROUP_ID,
- .command = MKHI_GET_FW_VERSION,
- };
-
- struct fw_ver_resp resp;
- size_t resp_size = sizeof(resp);
- union me_hfsts1 hfs1;
-
- /*
- * Print ME version only if UART debugging is enabled. Else, it takes ~1
- * second to talk to ME and get this information.
- */
- if (!CONFIG(CONSOLE_SERIAL))
- return;
-
- if (!is_cse_enabled())
- return;
-
- hfs1.data = me_read_config32(PCI_ME_HFSTS1);
- /*
- * This command can be run only if:
- * - Working state is normal and
- * - Operation mode is normal.
- */
- if ((hfs1.fields.working_state != ME_HFS_CWS_NORMAL) ||
- (hfs1.fields.operation_mode != ME_HFS_MODE_NORMAL))
- goto failed;
-
- /*
- * It is important to do a heci_reset to ensure BIOS and ME are in sync
- * before reading firmware version.
- */
- heci_reset();
-
- if (!heci_send(&fw_ver_msg, sizeof(fw_ver_msg), BIOS_HOST_ADDR,
- HECI_MKHI_ADDR))
- goto failed;
-
- if (!heci_receive(&resp, &resp_size))
- goto failed;
-
- if (resp.hdr.result)
- goto failed;
-
- printk(BIOS_DEBUG, "ME: Version : %d.%d.%d.%d\n", resp.code.major,
- resp.code.minor, resp.code.hotfix, resp.code.build);
- return;
-
-failed:
- printk(BIOS_DEBUG, "ME: Version : Unavailable\n");
-}
-/*
- * This can't be put in intel_me_status because by the time control
- * reaches there, ME doesn't respond to GET_FW_VERSION command.
- */
-BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_EXIT, print_me_version, NULL);
-
void intel_me_status(void)
{
union me_hfsts1 hfs1;
@@ -445,3 +371,9 @@ int send_global_reset(void)
ret:
return status;
}
+
+/*
+ * This can't be put in intel_me_status because by the time control
+ * reaches there, ME doesn't respond to GET_FW_VERSION command.
+ */
+BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_EXIT, print_me_fw_version, NULL);