diff options
author | Pratik Prajapati <pratikkumar.v.prajapati@intel.com> | 2017-05-17 14:28:25 -0700 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2017-05-22 23:38:17 +0200 |
commit | 4a907c79a2f5028104dfa9d960d261020832357f (patch) | |
tree | 428545b6c804e7bc1ad3bc3999c94404b1f062ee /src/soc/intel/skylake | |
parent | f714965e8deca6e092f0a416d2c4c752a225e39e (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>
Diffstat (limited to 'src/soc/intel/skylake')
-rw-r--r-- | src/soc/intel/skylake/include/soc/me.h | 12 | ||||
-rw-r--r-- | src/soc/intel/skylake/me.c | 14 |
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"); + } } /* |