[coreboot-gerrit] Change in ...coreboot[master]: soc/intel/apollolake: Add support to print ME version
Furquan Shaikh (Code Review)
gerrit at coreboot.org
Sat Dec 1 03:38:00 CET 2018
Furquan Shaikh has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/29989
Change subject: soc/intel/apollolake: Add support to print ME version
......................................................................
soc/intel/apollolake: Add support to print ME version
This change adds support to print ME version if UART_DEBUG is
enabled. Check for UART_DEBUG is necessary because talking to ME to
get the firmware version adds ~0.6 seconds to boot time.
TEST=Verified on octopus that ME version printed is correct.
Change-Id: I41217371558da1af694a2705e005429155d62838
Signed-off-by: Furquan Shaikh <furquan at google.com>
---
M src/soc/intel/apollolake/cse.c
1 file changed, 73 insertions(+), 11 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/89/29989/1
diff --git a/src/soc/intel/apollolake/cse.c b/src/soc/intel/apollolake/cse.c
index cfb3b8a..26249bc 100644
--- a/src/soc/intel/apollolake/cse.c
+++ b/src/soc/intel/apollolake/cse.c
@@ -42,6 +42,9 @@
#define READ_FILE_FLAG_EMULATED (1 << 2)
#define READ_FILE_FLAG_HW (1 << 3)
+#define MKHI_GROUP_ID_GEN 0xff
+#define GET_FW_VERSION 0x02
+
#define MCA_MAX_FILE_PATH_SIZE 64
#define FUSE_LOCK_FILE "/fpf/intel/SocCfgLock"
@@ -55,6 +58,17 @@
#define FPF_STATUS_FMAP "FPF_STATUS"
+union mkhi_header {
+ uint32_t data;
+ struct {
+ uint32_t group_id: 8;
+ uint32_t command: 7;
+ uint32_t is_response: 1;
+ uint32_t reserved: 8;
+ uint32_t result: 8;
+ } __packed fields;
+};
+
/*
* Read file from CSE internal filesystem.
* size is maximum length of provided buffer buff, which is updated with actual
@@ -67,17 +81,6 @@
int res;
size_t reply_size;
- union mkhi_header {
- uint32_t data;
- struct {
- uint32_t group_id: 8;
- uint32_t command: 7;
- uint32_t is_response: 1;
- uint32_t reserved: 8;
- uint32_t result: 8;
- } __packed fields;
- };
-
struct mca_command {
union mkhi_header mkhi_hdr;
char file_name[MCA_MAX_FILE_PATH_SIZE];
@@ -192,6 +195,63 @@
return reg;
}
+static void dump_cse_version(void)
+{
+ int res;
+ size_t reply_size;
+
+ struct fw_version_cmd {
+ union mkhi_header mkhi_hdr;
+ } __packed msg;
+
+ struct version {
+ uint16_t minor;
+ uint16_t major;
+ uint16_t build;
+ uint16_t hotfix;
+ } __packed;
+
+ struct fw_version_response {
+ union mkhi_header mkhi_hdr;
+ struct version code;
+ struct version nftp;
+ struct version fitc;
+ } __packed rsp;
+
+ /*
+ * Print ME version only if UART debugging is enabled. Else, it takes
+ * ~0.6 second to talk to ME and get this information.
+ */
+ if (!IS_ENABLED(CONFIG_UART_DEBUG))
+ return;
+
+ msg.mkhi_hdr.fields.group_id = MKHI_GROUP_ID_GEN;
+ msg.mkhi_hdr.fields.command = GET_FW_VERSION;
+
+ res = heci_send(&msg, sizeof(msg), BIOS_HOST_ADDR, HECI_MKHI_ADDR);
+
+ if (!res) {
+ printk(BIOS_ERR, "Failed to send HECI message.\n");
+ return;
+ }
+
+ reply_size = sizeof(rsp);
+ res = heci_receive(&rsp, &reply_size);
+
+ if (!res) {
+ printk(BIOS_ERR, "Failed to receive HECI reply.\n");
+ return;
+ }
+
+ if (rsp.mkhi_hdr.fields.result != 0) {
+ printk(BIOS_ERR, "Failed to get ME version.\n");
+ return;
+ }
+
+ printk(BIOS_DEBUG, "ME: Version: %d.%d.%d.%d\n", rsp.code.major,
+ rsp.code.minor, rsp.code.hotfix, rsp.code.build);
+}
+
static void dump_cse_state(void)
{
uint32_t fwsts1;
@@ -222,6 +282,8 @@
printk(BIOS_DEBUG, "unknown");
}
printk(BIOS_DEBUG, "\n");
+
+ dump_cse_version();
}
#define PCR_PSFX_T0_SHDW_PCIEN 0x1C
--
To view, visit https://review.coreboot.org/c/coreboot/+/29989
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I41217371558da1af694a2705e005429155d62838
Gerrit-Change-Number: 29989
Gerrit-PatchSet: 1
Gerrit-Owner: Furquan Shaikh <furquan at google.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20181201/c611f997/attachment.html>
More information about the coreboot-gerrit
mailing list