[coreboot-gerrit] New patch to review for coreboot: util/ifdtool: Rename soft straps and add more debug output

Damien Zammit (damien@zamaudio.com) gerrit at coreboot.org
Wed Nov 9 03:57:40 CET 2016


Damien Zammit (damien at zamaudio.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17333

-gerrit

commit 30de9181423f543b5cb49b4c054a284dc4b4f5f7
Author: Damien Zammit <damien at zamaudio.com>
Date:   Wed Nov 9 13:49:54 2016 +1100

    util/ifdtool: Rename soft straps and add more debug output
    
    "Processor" straps should be called northbridge straps,
    since they apply to the memory controller hub (MCH).
    "pch" straps should be called southbridge straps,
    since they can apply to either platform controller hub,
    or ICH depending on chipset model (ICH/PCH).
    
    Extra debug output was obtained from specs in ich9deblob tool
    from libreboot.
    
    Q: Are some of these changes specific to ICH9 ?
    
    Change-Id: If5d0e9a80b5579d3fbedabddc2dc5b13d1679980
    Signed-off-by: Damien Zammit <damien at zamaudio.com>
---
 util/ifdtool/ifdtool.c | 67 ++++++++++++++++++++++++++++++++------------------
 util/ifdtool/ifdtool.h | 25 +++----------------
 2 files changed, 47 insertions(+), 45 deletions(-)

diff --git a/util/ifdtool/ifdtool.c b/util/ifdtool/ifdtool.c
index 74588e1..9708ce1 100644
--- a/util/ifdtool/ifdtool.c
+++ b/util/ifdtool/ifdtool.c
@@ -425,25 +425,39 @@ static void dump_fcba(fcba_t * fcba)
 
 static void dump_fpsba(fpsba_t * fpsba)
 {
-	printf("Found PCH Strap Section\n");
-	printf("PCHSTRP0:  0x%08x\n", fpsba->pchstrp0);
-	printf("PCHSTRP1:  0x%08x\n", fpsba->pchstrp1);
-	printf("PCHSTRP2:  0x%08x\n", fpsba->pchstrp2);
-	printf("PCHSTRP3:  0x%08x\n", fpsba->pchstrp3);
-	printf("PCHSTRP4:  0x%08x\n", fpsba->pchstrp4);
-	printf("PCHSTRP5:  0x%08x\n", fpsba->pchstrp5);
-	printf("PCHSTRP6:  0x%08x\n", fpsba->pchstrp6);
-	printf("PCHSTRP7:  0x%08x\n", fpsba->pchstrp7);
-	printf("PCHSTRP8:  0x%08x\n", fpsba->pchstrp8);
-	printf("PCHSTRP9:  0x%08x\n", fpsba->pchstrp9);
-	printf("PCHSTRP10: 0x%08x\n", fpsba->pchstrp10);
-	printf("PCHSTRP11: 0x%08x\n", fpsba->pchstrp11);
-	printf("PCHSTRP12: 0x%08x\n", fpsba->pchstrp12);
-	printf("PCHSTRP13: 0x%08x\n", fpsba->pchstrp13);
-	printf("PCHSTRP14: 0x%08x\n", fpsba->pchstrp14);
-	printf("PCHSTRP15: 0x%08x\n", fpsba->pchstrp15);
-	printf("PCHSTRP16: 0x%08x\n", fpsba->pchstrp16);
-	printf("PCHSTRP17: 0x%08x\n\n", fpsba->pchstrp17);
+	printf("Found PCH/ICH (southbridge) Strap Section\n");
+	printf("PCH/ICH STRAP0:  0x%08x\n", fpsba->sbstrap[0]);
+	printf("  ME - disable completely            : %d\n", fpsba->sbstrap[0] & 1);
+	printf("  TCO mode (0=legacy, 1=TCO)         : %d\n", (fpsba->sbstrap[0] & 0x80) >> 7);
+	printf("  ME - SMBus 7-bit address           : 0x%02x\n", (fpsba->sbstrap[0] & 0x7f00) >> 8);
+	printf("  BMC mode enabled                   : %d\n", (fpsba->sbstrap[0] & 0x8000) >> 15);
+	printf("  Trip point NJCLK (0=3v3, 1=1v8)    : %d\n", (fpsba->sbstrap[0] & 0x10000) >> 16);
+	printf("  PCIe Port 6 (0=PCIe, 1=iGbE)       : %d\n", (fpsba->sbstrap[0] & 0x80000) >> 19);
+	printf("  LANPHYPC_GP12_SEL (0=GPIO, 1=PHY)  : %d\n", (fpsba->sbstrap[0] & 0x100000) >> 20);
+	printf("  DMI RequesterID cpu check disable  : %d\n", (fpsba->sbstrap[0] & 0x1000000) >> 24);
+	printf("  ME 2 - SMBus 7-bit address         : 0x%02x\n", (fpsba->sbstrap[0] & 0xfe000000) >> 25);
+	printf("PCH/ICH STRAP1:  0x%08x\n", fpsba->sbstrap[1]);
+	printf("  North MLink Dyn Clk Gating         : %d\n", fpsba->sbstrap[1] & 1);
+	printf("  South MLink Dyn Clk Gating         : %d\n", (fpsba->sbstrap[1] & 2) >> 1);
+	printf("  ME SMBus Dyn Clk Gating            : %d\n", (fpsba->sbstrap[1] & 4) >> 2);
+	printf("  SST Dyn Clk Gating                 : %d\n", (fpsba->sbstrap[1] & 8) >> 3);
+	printf("  North MLink 2 requests (0=1, 1=2)  : %d\n", (fpsba->sbstrap[1] & 0x100) >> 8);
+	printf("PCH/ICH STRAP2:  0x%08x\n", fpsba->sbstrap[2]);
+	printf("PCH/ICH STRAP3:  0x%08x\n", fpsba->sbstrap[3]);
+	printf("PCH/ICH STRAP4:  0x%08x\n", fpsba->sbstrap[4]);
+	printf("PCH/ICH STRAP5:  0x%08x\n", fpsba->sbstrap[5]);
+	printf("PCH/ICH STRAP6:  0x%08x\n", fpsba->sbstrap[6]);
+	printf("PCH/ICH STRAP7:  0x%08x\n", fpsba->sbstrap[7]);
+	printf("PCH/ICH STRAP8:  0x%08x\n", fpsba->sbstrap[8]);
+	printf("PCH/ICH STRAP9:  0x%08x\n", fpsba->sbstrap[9]);
+	printf("PCH/ICH STRAP10: 0x%08x\n", fpsba->sbstrap[10]);
+	printf("PCH/ICH STRAP11: 0x%08x\n", fpsba->sbstrap[11]);
+	printf("PCH/ICH STRAP12: 0x%08x\n", fpsba->sbstrap[12]);
+	printf("PCH/ICH STRAP13: 0x%08x\n", fpsba->sbstrap[13]);
+	printf("PCH/ICH STRAP14: 0x%08x\n", fpsba->sbstrap[14]);
+	printf("PCH/ICH STRAP15: 0x%08x\n", fpsba->sbstrap[15]);
+	printf("PCH/ICH STRAP16: 0x%08x\n", fpsba->sbstrap[16]);
+	printf("PCH/ICH STRAP17: 0x%08x\n\n", fpsba->sbstrap[17]);
 }
 
 static void decode_flmstr(uint32_t flmstr)
@@ -511,11 +525,16 @@ static void dump_fmba(fmba_t * fmba)
 
 static void dump_fmsba(fmsba_t * fmsba)
 {
-	printf("Found Processor Strap Section\n");
-	printf("????:      0x%08x\n", fmsba->data[0]);
-	printf("????:      0x%08x\n", fmsba->data[1]);
-	printf("????:      0x%08x\n", fmsba->data[2]);
-	printf("????:      0x%08x\n", fmsba->data[3]);
+	printf("Found Processor/MCH (northbridge) Strap Section\n");
+	printf("MCHSTRAP0: 0x%08x\n", fmsba->nbstrap[0]);
+	printf("  ME - disable completely            : %d\n", fmsba->nbstrap[0] & 1);
+	printf("  ME - boot from flash instead of rom: %d\n", (fmsba->nbstrap[0] & 2) >> 1);
+	printf("  iTPM disable                       : %d\n", (fmsba->nbstrap[0] & 4) >> 2);
+	printf("  SPI fingerprint sensor present CS#1: %d\n", (fmsba->nbstrap[0] & 64) >> 6);
+	printf("  ME - alternate disable (ME FW apps): %d\n", (fmsba->nbstrap[0] & 128) >> 7);
+	printf("MCHSTRAP1: 0x%08x\n", fmsba->nbstrap[1]);
+	printf("MCHSTRAP2: 0x%08x\n", fmsba->nbstrap[2]);
+	printf("MCHSTRAP3: 0x%08x\n", fmsba->nbstrap[3]);
 }
 
 static void dump_jid(uint32_t jid)
diff --git a/util/ifdtool/ifdtool.h b/util/ifdtool/ifdtool.h
index 7878712..f791b22 100644
--- a/util/ifdtool/ifdtool.h
+++ b/util/ifdtool/ifdtool.h
@@ -75,26 +75,9 @@ typedef struct {
 	uint32_t flpb;
 } __attribute__((packed)) fcba_t;
 
-// pch strap
+// pch/ich (southbridge) strap
 typedef struct {
-	uint32_t pchstrp0;
-	uint32_t pchstrp1;
-	uint32_t pchstrp2;
-	uint32_t pchstrp3;
-	uint32_t pchstrp4;
-	uint32_t pchstrp5;
-	uint32_t pchstrp6;
-	uint32_t pchstrp7;
-	uint32_t pchstrp8;
-	uint32_t pchstrp9;
-	uint32_t pchstrp10;
-	uint32_t pchstrp11;
-	uint32_t pchstrp12;
-	uint32_t pchstrp13;
-	uint32_t pchstrp14;
-	uint32_t pchstrp15;
-	uint32_t pchstrp16;
-	uint32_t pchstrp17;
+	uint32_t sbstrap[18];
 } __attribute__((packed)) fpsba_t;
 
 /*
@@ -115,9 +98,9 @@ typedef struct {
 	uint32_t flmstr5;
 } __attribute__((packed)) fmba_t;
 
-// processor strap
+// processor/mch (northbridge) strap
 typedef struct {
-	uint32_t data[8];
+	uint32_t nbstrap[8];
 } __attribute__((packed)) fmsba_t;
 
 // ME VSCC



More information about the coreboot-gerrit mailing list