summaryrefslogtreecommitdiff
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.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/soc/intel/apollolake/cse.c b/src/soc/intel/apollolake/cse.c
index 0f11809297..8473d20aef 100644
--- a/src/soc/intel/apollolake/cse.c
+++ b/src/soc/intel/apollolake/cse.c
@@ -8,6 +8,7 @@
#include <intelblocks/cse.h>
#include <intelblocks/p2sb.h>
#include <intelblocks/pcr.h>
+#include <soc/cse.h>
#include <soc/heci.h>
#include <soc/iomap.h>
#include <soc/pcr_ids.h>
@@ -156,25 +157,32 @@ static uint32_t dump_status(int index, int reg_addr)
static void dump_cse_state(void)
{
- uint32_t fwsts1;
+ union cse_fwsts1 fwsts1;
if (!is_cse_enabled())
return;
- fwsts1 = dump_status(1, PCI_ME_HFSTS1);
+ fwsts1.data = dump_status(1, PCI_ME_HFSTS1);
dump_status(2, PCI_ME_HFSTS2);
dump_status(3, PCI_ME_HFSTS3);
dump_status(4, PCI_ME_HFSTS4);
dump_status(5, PCI_ME_HFSTS5);
dump_status(6, PCI_ME_HFSTS6);
- /* Minimal decoding is done here in order to call out most important
- pieces. Manufacturing mode needs to be locked down prior to shipping
- the product so it's called out explicitly. */
- printk(BIOS_DEBUG, "ME: Manufacturing Mode : %s\n",
- (fwsts1 & (1 << 0x4)) ? "YES" : "NO");
-
- printk(BIOS_DEBUG, "ME: FPF status : ");
+ printk(BIOS_DEBUG, "CSE: Working State : %u\n",
+ fwsts1.fields.working_state);
+ printk(BIOS_DEBUG, "CSE: Manufacturing Mode : %s\n",
+ fwsts1.fields.mfg_mode ? "YES" : "NO");
+ printk(BIOS_DEBUG, "CSE: Operation State : %u\n",
+ fwsts1.fields.operation_state);
+ printk(BIOS_DEBUG, "CSE: FW Init Complete : %s\n",
+ fwsts1.fields.fw_init_complete ? "YES" : "NO");
+ printk(BIOS_DEBUG, "CSE: Error Code : %u\n",
+ fwsts1.fields.error_code);
+ printk(BIOS_DEBUG, "CSE: Operation Mode : %u\n",
+ fwsts1.fields.operation_mode);
+
+ printk(BIOS_DEBUG, "CSE: FPF status : ");
switch (g_fuse_state) {
case FUSE_FLASH_UNFUSED:
printk(BIOS_DEBUG, "unfused");