[flashrom] AMD - SP5100 - take SPI ownership (1/2)

Racine, Michel michel.racine at hp.com
Tue Apr 2 20:26:15 CEST 2013


Hello Rudolf,

Here's more information; this email is quite lengthy. Please let me know how you would like to proceed. I should be getting my own SF100 soon, so my turn-around will be faster.

---

Using a DediProg SF100 in system programmer to unbrick; reprogram with previous AMI (original BIOS on the AMD board).
NOTE:
    Needed to tell programmer software to auto-unprotect protected blocks before programming.
Boot is Ok. Poweroff, reboot

---

Using flashrom (with IMC patch), flash coreboot base build for AMD Persimmon board.
Passes verifying flash; but IMC resume failed.
Poweroff - doesn't fully power off. Stops with "Power down."; manual poweroff

---

Reboot system, and able to ssh into system; no VGA from the board itself.
No VGA is expected because I did not add a vBios to the coreboot image.

---

Trying to flash back the AMI original bios; fails with:

root at debian:~# ./flashrom_imcpatch -p internal -w AMI.rom
flashrom v0.9.6.1-r1564 on Linux 2.6.32-5-686 (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xc717d000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... (Shutting down IMC failed!)
FAILED!
FATAL ERROR!
Error: Programmer initialization failed.

---

Power off, unplug board power supply, moving both jumpers (JP12, JP13 on pin 2-3) for 30 seconds to clear CMOS settings.
Reboot; Retry flashrom AMI; outputs:

root at debian:~# ./flashrom_imcpatch -p internal -w AMI.rom
flashrom v0.9.6.1-r1564 on Linux 2.6.32-5-686 (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xc717d000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found SST flash chip "SST25VF032B" (4096 kB, SPI) at physical address 0xffc00000                                                             .
Flash image seems to be a legacy BIOS. Disabling coreboot-related checks.
Reading old flash chip contents... done.
Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00000fff: 0x200
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000008! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00007fff: 0xfff
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000008! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x0000ffff: 0x1fff
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000008! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x7ffff
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x80000
ERASE FAILED!
FAILED!
Uh oh. Erase/write failed. Checking if anything changed.
Your flash chip is in an unknown state.
Get help on IRC at chat.freenode.net (channel #flashrom) or
mail flashrom at flashrom.org with the subject "FAILED: <your board name>"!
-------------------------------------------------------------------------------
DO NOT REBOOT OR POWEROFF!

---

Try again:

root at debian:~# ./flashrom_imcpatch -p internal -w AMI.rom
flashrom v0.9.6.1-r1564 on Linux 2.6.32-5-686 (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xc717d000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found SST flash chip "SST25VF032B" (4096 kB, SPI) at physical address 0xffc00000.
Flash image seems to be a legacy BIOS. Disabling coreboot-related checks.
Reading old flash chip contents... done.
Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00000fff: 0x200
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00007fff: 0x1000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x0000ffff: 0x2000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x80000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x80000
ERASE FAILED!
FAILED!
Uh oh. Erase/write failed. Checking if anything changed.
Good. It seems nothing was changed.
Writing to the flash chip apparently didn't do anything.
This means we have to add special support for your board, programmer or flash chip.
Please report this on IRC at irc.freenode.net (channel #flashrom) or
mail flashrom at flashrom.org!
-------------------------------------------------------------------------------
You may now reboot or simply leave the machine running.

---

Strongly suspect bricked.
Now trying (note, no mention of IMC):

root at debian:~# ./flashrom_imcpatch -p internal
flashrom v0.9.6.1-r1564 on Linux 2.6.32-5-686 (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xc717d000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found SST flash chip "SST25VF032B" (4096 kB, SPI) at physical address 0xffc00000.
No operations were specified.

---

Trying erase:

root at debian:~# ./flashrom_imcpatch -p internal --erase
flashrom v0.9.6.1-r1564 on Linux 2.6.32-5-686 (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xc717d000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found SST flash chip "SST25VF032B" (4096 kB, SPI) at physical address 0xffc00000.
Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00000fff: 0x200
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x00007fff: 0x1000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x0000ffff: 0x2000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x80000
ERASE FAILED!
Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x7f, failed byte count from 0x00000000-0x003fffff: 0x80000
ERASE FAILED!
FAILED!
Your flash chip is in an unknown state.
Get help on IRC at chat.freenode.net (channel #flashrom) or
mail flashrom at flashrom.org with the subject "FAILED: <your board name>"!
-------------------------------------------------------------------------------
DO NOT REBOOT OR POWEROFF!

---

Try reboot; nothing
Manual poweroff, unplug jumpers and power supply for 30 seconds
Power on
Nothing

---

Cheers,
Michel.


-----Original Message-----
From: Rudolf Marek [mailto:r.marek at assembler.cz] 
Sent: Saturday, March 30, 2013 3:54 AM
To: Racine, Michel
Cc: Stefan Tauner; roxfan; frederic.temporelli at bull.net; wmkamp at datakamp.de; flashrom at flashrom.org
Subject: Re: [flashrom] AMD - SP5100 - take SPI ownership (1/2)

Hi,

Found chipset "AMD SB7x0/SB8x0/SB9x0" with PCI ID 1002:439d. Enabling flash write...
EC SIO is at 0x16e
EC MBOX is at 0x3e
(Shutting down IMC)
SPI base address is at 0xfec10000

This means that firmware correctly responded to the command and most likely moved itself to internal RAM.

Verifying flash... VERIFIED.

EC SIO is at 0x16e
EC MBOX is at 0x3e
(IMC resume failed!)

This means that firmware was not able to continue at the end?

I have a couple of questions:

1) did you perform full power cycle (even unplugging the PSU)?

I suspect that the IMC may run even if main cpu is off. I also suspect it fully initializes only if performing this "cold boot".

2) what was the update? It was from original BIOS to coreboot? Does coreboot have a embedded IMC image? Does the IMC image start at the same location?

What we could  additionally check is if the IMC firmware location does not match in source and dest image, bail out. Or if the base addr has been changed.

Thanks
Rudolf





More information about the flashrom mailing list