Patchwork Board enable for Abit IP35 Pro

login
register
about
Submitter Michael Karcher
Date 2010-01-27 12:00:29
Message ID <1264593629-3770-1-git-send-email-flashrom@mkarcher.dialup.fu-berlin.de>
Download mbox | patch
Permalink /patch/843/
State Superseded
Headers show

Comments

Michael Karcher - 2010-01-27 12:00:29
This board is like the IP35. Just changed the IDs to match.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
---
 board_enable.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Michael Karcher - 2010-02-11 18:07:36
[context: The story from the IRC channel is like this: Jordan Farrell
did a BIOS upgrade where flashrom showed success, entered Setup after
reboot, and the system behaved strange after the following reset: It
turned itself off after some seconds. After that, he was back to the old
BIOS version.]

Am Samstag, den 06.02.2010, 00:51 +0100 schrieb Michael Karcher:
> Am Freitag, den 05.02.2010, 22:42 +0100 schrieb Jordan Farrell:
> I did not commit this patch as I did not yet get around to find out what
> mechanism undoes the successfull flashing you observed.

Now I took apart the whole BIOS image for your board, and I was unable
to find any reflash code in it. What I did find was code that rewrites
blocks 0 and 8 of your BIOS. Block zero contains ESCD stuff and I didn't
work out what's exactly in block 8, but I the BIOS code itself is stored
in blocks 1 to 7, CPU microcode updates are stored in blocks 12-14, and
BIOS initialization code in blocks 14 and 15. Blocks 9 to 11 are unused.

If your BIOS chip (the 32 pin PLCC one) really is the chip detected by
flashrom and not a bigger chip that masquerades as the smaller one and
contains the reflash code in the hidden part of it, I have no idea which
code could reflash it, where the old ROM contents might be stored and
how to prevent that. The standard AWDFLASH utility provided with your
board does not seem to contain board-specific code, as this type of code
is put to the BIOS instead.

Could you please try again and double-check that the image you write is
really the image you wanted to write, and that this image you want to
write really is a newer version of the BIOS than the one you currently
have in your flash chip?

Regards,
  Michael Karcher

Patch

diff --git a/board_enable.c b/board_enable.c
index e535d4f..c89fc99 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -844,6 +844,7 @@  static int intel_ich_gpio_set(int gpio, int raise)
 
 /**
  * Suited for Abit IP35: Intel P35 + ICH9R.
+ * Suited for Abit IP35 Pro: Intel P35 + ICH9R.
  */
 static int intel_ich_gpio16_raise(const char *name)
 {
@@ -1185,6 +1186,7 @@  struct board_pciid_enable board_pciid_enables[] = {
 
 	/* first pci-id set [4],          second pci-id set [4],          dmi identifier coreboot id [2],             vendor name    board name       max_rom_...  flash enable */
 	{0x8086, 0x2926, 0x147b, 0x1084,  0x11ab, 0x4364, 0x147b, 0x1084, NULL,          NULL,         NULL,          "Abit",        "IP35",                  0,   intel_ich_gpio16_raise},
+	{0x8086, 0x2926, 0x147b, 0x1083,  0x10ec, 0x8167, 0x147b, 0x1083, NULL,          NULL,         NULL,          "Abit",        "IP35 Pro",              0,   intel_ich_gpio16_raise},
 	{0x105a, 0x0d30, 0x105a, 0x4d33,  0x8086, 0x1130, 0x8086,      0, NULL,          NULL,         NULL,          "Acorp",       "6A815EPD",              0,   board_acorp_6a815epd},
 	{0x8086, 0x24D4, 0x1849, 0x24D0,  0x8086, 0x24D5, 0x1849, 0x9739, NULL,          NULL,         NULL,          "ASRock",      "P4i65GV",               0,   intel_ich_gpio23_raise},
 	{0x1022, 0x746B,      0,      0,       0,      0,      0,      0, NULL,          "AGAMI",      "ARUMA",       "agami",       "Aruma",                 0,   w83627hf_gpio24_raise_2e},