summaryrefslogtreecommitdiff
path: root/dmidecode.c
diff options
context:
space:
mode:
authorkhali <khali>2008-11-02 11:19:34 +0000
committerkhali <khali>2008-11-02 11:19:34 +0000
commit11274138528cf0d639a097f033bce1ed9c916524 (patch)
treeb249d1b7952cc770d384116718676f9e653be132 /dmidecode.c
parentdab284fe0fb8cb4ff31a96245a0bd0f0c0df7e4b (diff)
downloaddmidecode-11274138528cf0d639a097f033bce1ed9c916524.tar.gz
Decode boot integrity services entry point entries (DMI type 31).
Diffstat (limited to 'dmidecode.c')
-rw-r--r--dmidecode.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/dmidecode.c b/dmidecode.c
index 186a81b..a01d360 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -45,6 +45,8 @@
* - AMD publication #25481 revision 2.18
* "CPUID Specification"
* http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25481.pdf
+ * - BIOS Integrity Services Application Programming Interface version 1.0
+ * http://www.intel.com/design/archives/wfm/downloads/bisspec.htm
*/
#include <stdio.h>
@@ -3583,6 +3585,14 @@ static void dmi_decode(const struct dmi_header *h, u16 ver)
case 31: /* 3.3.32 Boot Integrity Services Entry Point */
printf("Boot Integrity Services Entry Point\n");
+ if (h->length < 0x1C) break;
+ printf("\tChecksum: %s\n",
+ checksum(data, h->length) ? "OK" : "Invalid");
+ printf("\t16-bit Entry Point Address: %04X:%04X\n",
+ DWORD(data + 0x08) >> 16,
+ DWORD(data + 0x08) & 0xFFFF);
+ printf("\t32-bit Entry Point Address: 0x%08X\n",
+ DWORD(data + 0x0C));
break;
case 32: /* 3.3.33 System Boot Information */