aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake/cse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/apollolake/cse.c')
-rw-r--r--src/soc/intel/apollolake/cse.c33
1 files changed, 9 insertions, 24 deletions
diff --git a/src/soc/intel/apollolake/cse.c b/src/soc/intel/apollolake/cse.c
index 260c6c6dc6..6ee1a155ea 100644
--- a/src/soc/intel/apollolake/cse.c
+++ b/src/soc/intel/apollolake/cse.c
@@ -52,17 +52,6 @@ static enum fuse_flash_state {
#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
@@ -76,7 +65,7 @@ static int read_cse_file(const char *path, void *buff, size_t *size,
size_t reply_size;
struct mca_command {
- union mkhi_header mkhi_hdr;
+ struct mkhi_hdr hdr;
char file_name[MCA_MAX_FILE_PATH_SIZE];
uint32_t offset;
uint32_t data_size;
@@ -84,7 +73,7 @@ static int read_cse_file(const char *path, void *buff, size_t *size,
} __packed msg;
struct mca_response {
- union mkhi_header mkhi_hdr;
+ struct mkhi_hdr hdr;
uint32_t data_size;
uint8_t buffer[128];
} __packed rmsg;
@@ -99,8 +88,8 @@ static int read_cse_file(const char *path, void *buff, size_t *size,
return 0;
}
strncpy(msg.file_name, path, sizeof(msg.file_name));
- msg.mkhi_hdr.fields.group_id = MKHI_GROUP_ID_MCA;
- msg.mkhi_hdr.fields.command = READ_FILE;
+ msg.hdr.group_id = MKHI_GROUP_ID_MCA;
+ msg.hdr.command = READ_FILE;
msg.flags = flags;
msg.data_size = *size;
msg.offset = offset;
@@ -195,11 +184,7 @@ static void dump_cse_version(void *unused)
{
int res;
size_t reply_size;
-
- struct fw_version_cmd {
- union mkhi_header mkhi_hdr;
- } __packed msg;
-
+ struct mkhi_hdr msg;
struct version {
uint16_t minor;
uint16_t major;
@@ -208,7 +193,7 @@ static void dump_cse_version(void *unused)
} __packed;
struct fw_version_response {
- union mkhi_header mkhi_hdr;
+ struct mkhi_hdr hdr;
struct version code;
struct version nftp;
struct version fitc;
@@ -221,8 +206,8 @@ static void dump_cse_version(void *unused)
if (!CONFIG(CONSOLE_SERIAL))
return;
- msg.mkhi_hdr.fields.group_id = MKHI_GROUP_ID_GEN;
- msg.mkhi_hdr.fields.command = GET_FW_VERSION;
+ msg.group_id = MKHI_GROUP_ID_GEN;
+ msg.command = GET_FW_VERSION;
res = heci_send(&msg, sizeof(msg), BIOS_HOST_ADDR, HECI_MKHI_ADDR);
@@ -239,7 +224,7 @@ static void dump_cse_version(void *unused)
return;
}
- if (rsp.mkhi_hdr.fields.result != 0) {
+ if (rsp.hdr.result != 0) {
printk(BIOS_ERR, "Failed to get ME version.\n");
return;
}