aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--resources/utilities/ich9deblob/src/gbe/gbe.c11
-rw-r--r--resources/utilities/ich9deblob/src/ich9gen/mkgbe.c13
2 files changed, 17 insertions, 7 deletions
diff --git a/resources/utilities/ich9deblob/src/gbe/gbe.c b/resources/utilities/ich9deblob/src/gbe/gbe.c
index 12b8d990..150d1495 100644
--- a/resources/utilities/ich9deblob/src/gbe/gbe.c
+++ b/resources/utilities/ich9deblob/src/gbe/gbe.c
@@ -104,9 +104,17 @@ struct GBEREGIONRECORD_8K deblobbedGbeStructFromFactory(struct GBEREGIONRECORD_8
deblobbedGbeStruct8k.backup.padding[i] = 0xFF; /* FF is correct. In the struct, this is a char buffer. */
} /* We really only need to do this for words 40h-53h, but let's just nuke the whole lot. It's all 0xFF anyway. */
+ /* Set the default MAC address */
+ deblobbedGbeStruct8k.backup.macAddress[0] = 0x00;
+ deblobbedGbeStruct8k.backup.macAddress[1] = 0xF5;
+ deblobbedGbeStruct8k.backup.macAddress[2] = 0xF0;
+ deblobbedGbeStruct8k.backup.macAddress[3] = 0x40;
+ deblobbedGbeStruct8k.backup.macAddress[4] = 0x71;
+ deblobbedGbeStruct8k.backup.macAddress[5] = 0xFE;
+
/* Fix the checksum */
deblobbedGbeStruct8k.backup.checkSum = gbeGetChecksumFrom4kStruct(deblobbedGbeStruct8k.backup, GBECHECKSUMTOTAL);
- /* Main Gbe region on X200 (as shipped by Lenovo) is broken. Fix it by over-writing it with the contents of Gbe/Backup */
+ /* Main Gbe region on X200 (as shipped by Lenovo) is broken. Fix it by over-writing it with the contents of the backup */
memcpy(&deblobbedGbeStruct8k.main, &deblobbedGbeStruct8k.backup, GBEREGIONSIZE_4K);
return deblobbedGbeStruct8k;
@@ -190,6 +198,7 @@ int notCreatedCFileFromGbeStruct4k(struct GBEREGIONRECORD_4K gbeStruct4k, char*
fprintf(fp, "\n");
/* Words 00h to 02h: MAC Address */
fprintf(fp, " /* MAC address (words 00h to 02h) */\n");
+ fprintf(fp, " /* see ../gbe/gbe.c */\n");
for (i = 0; i < 6; i++) {
fprintf(fp, " gbeStruct4k.macAddress[%d] = 0x%02x;\n", i, gbeStruct4k.macAddress[i]);
}
diff --git a/resources/utilities/ich9deblob/src/ich9gen/mkgbe.c b/resources/utilities/ich9deblob/src/ich9gen/mkgbe.c
index 2765048e..bde7bef2 100644
--- a/resources/utilities/ich9deblob/src/ich9gen/mkgbe.c
+++ b/resources/utilities/ich9deblob/src/ich9gen/mkgbe.c
@@ -26,12 +26,13 @@ struct GBEREGIONRECORD_4K generatedGbeStruct4k()
struct GBEREGIONRECORD_4K gbeStruct4k;
/* MAC address (words 00h to 02h) */
+ /* see ../gbe/gbe.c */
gbeStruct4k.macAddress[0] = 0x00;
- gbeStruct4k.macAddress[1] = 0x1f;
- gbeStruct4k.macAddress[2] = 0x16;
- gbeStruct4k.macAddress[3] = 0x32;
- gbeStruct4k.macAddress[4] = 0x50;
- gbeStruct4k.macAddress[5] = 0xe5;
+ gbeStruct4k.macAddress[1] = 0xf5;
+ gbeStruct4k.macAddress[2] = 0xf0;
+ gbeStruct4k.macAddress[3] = 0x40;
+ gbeStruct4k.macAddress[4] = 0x71;
+ gbeStruct4k.macAddress[5] = 0xfe;
/* Word 03h (Reserved) */
gbeStruct4k.reservedWord03h.reserved1_0 = 0x00;
@@ -236,7 +237,7 @@ struct GBEREGIONRECORD_4K generatedGbeStruct4k()
gbeStruct4k.pxeSoftwareRegion.paddingWords34hTo3Eh[10] = 0xffff;
/* Word 3Fh (Checksum) */
- gbeStruct4k.checkSum = 0x3285;
+ gbeStruct4k.checkSum = 0x348a;
/* The rest of Gbe (word 40h or byte 80h onwards) is just padding (0xFF) */
for (i = 0; i < 3968; i++) {