summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPratik Prajapati <pratikkumar.v.prajapati@intel.com>2017-05-17 14:28:25 -0700
committerAaron Durbin <adurbin@chromium.org>2017-05-22 23:38:17 +0200
commit4a907c79a2f5028104dfa9d960d261020832357f (patch)
tree428545b6c804e7bc1ad3bc3999c94404b1f062ee
parentf714965e8deca6e092f0a416d2c4c752a225e39e (diff)
soc/intel/skylake: Display FPF status of CSME
Field Programmable Fuses (FPF) status maintained by CSME in bits 30:31 of FWSTS6 for Skylake and Kabylake. FPF committed means CSME has blown the fuses. Change-Id: If63c7874e6c894749df8100426faca0ad432384b Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati@intel.com> Reviewed-on: https://review.coreboot.org/19747 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
-rw-r--r--src/soc/intel/skylake/include/soc/me.h12
-rw-r--r--src/soc/intel/skylake/me.c14
2 files changed, 26 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/include/soc/me.h b/src/soc/intel/skylake/include/soc/me.h
index 8dc21c381f..2736d1a04f 100644
--- a/src/soc/intel/skylake/include/soc/me.h
+++ b/src/soc/intel/skylake/include/soc/me.h
@@ -186,6 +186,18 @@ union me_hfs3 {
} __attribute__ ((packed)) fields;
};
+#define PCI_ME_HFSTS6 0x6c
+#define ME_HFS6_FPF_NOT_COMMITTED 0x0
+#define ME_HFS6_FPF_ERROR 0x2
+
+union me_hfs6 {
+ u32 data;
+ struct {
+ u32 reserved1: 30;
+ u32 fpf_nvars: 2;
+ } __attribute__ ((packed)) fields;
+};
+
/*
* Management Engine MMIO registers
*/
diff --git a/src/soc/intel/skylake/me.c b/src/soc/intel/skylake/me.c
index 5bc5c951f7..1865c00f7e 100644
--- a/src/soc/intel/skylake/me.c
+++ b/src/soc/intel/skylake/me.c
@@ -224,10 +224,12 @@ void intel_me_status(void)
union me_hfs hfs;
union me_hfs2 hfs2;
union me_hfs3 hfs3;
+ union me_hfs6 hfs6;
hfs.data = me_read_config32(PCI_ME_HFSTS1);
hfs2.data = me_read_config32(PCI_ME_HFSTS2);
hfs3.data = me_read_config32(PCI_ME_HFSTS3);
+ hfs6.data = me_read_config32(PCI_ME_HFSTS6);
/* Check Current States */
printk(BIOS_DEBUG, "ME: FW Partition Table : %s\n",
@@ -341,6 +343,18 @@ void intel_me_status(void)
hfs3.fields.fw_sku);
}
}
+
+ printk(BIOS_DEBUG, "ME: FPF status : ");
+ switch (hfs6.fields.fpf_nvars) {
+ case ME_HFS6_FPF_NOT_COMMITTED:
+ printk(BIOS_DEBUG, "unfused\n");
+ break;
+ case ME_HFS6_FPF_ERROR:
+ printk(BIOS_DEBUG, "unknown\n");
+ break;
+ default:
+ printk(BIOS_DEBUG, "fused\n");
+ }
}
/*