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>
This commit is contained in:
Sridhar Siricilla
2020-02-19 14:41:36 +05:30
committed by Patrick Georgi
parent c2a2d2ba26
commit 24a974a8cb
6 changed files with 78 additions and 214 deletions

View File

@@ -192,10 +192,6 @@ union me_hfsts6 {
} __packed fields;
};
#define MKHI_GEN_GROUP_ID 0xff
#define MKHI_GET_FW_VERSION 0x02
void intel_me_status(void);
int send_global_reset(void);

View File

@@ -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);