Thank you for helping, even if there is no fix, or my mobo dies waiting. This is exactly why I joined the linux community. Incase this is helpful this is the failure in progress... falserunes@TITANIUM:~$ cd bios falserunes@TITANIUM:~/bios$ sudo flashrom -w 315.rom [sudo] password for falserunes: flashrom v0.9.3-r1291 on Linux 2.6.35-28-generic (x86_64), built with libpci 3.1.7, GCC 4.4.5, little endian flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... delay loop is unreliable, trying to continue OK. Found chipset "ATI SB400", enabling flash write... OK. This chipset supports the following protocols: Non-SPI. Found chip "PMC Pm49FL004" (512 KB, LPC,FWH) at physical address 0xfff80000. Flash image seems to be a legacy BIOS. Disabling checks. Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x25, failed byte count from 0x00000000-0x00000fff: 0xfed ERASE FAILED! ERASE FAILED at 0x00000000! Expected=0xff, Read=0x25, failed byte count from 0x00000000-0x0000ffff: 0xfee8 ERASE FAILED! ERASE FAILED at 0x00000000! Expected=0xff, Read=0x25, failed byte count from 0x00000000-0x0007ffff: 0x590c1 ERASE FAILED! Done. Verifying flash... VERIFY FAILED at 0x00000000! Expected=0x24, Read=0x25, failed byte count from 0x00000000-0x0007ffff: 0x51472 Your flash chip is in an unknown state. Get help on IRC at irc.freenode.net (channel #flashrom) or mail flashrom@flashrom.org with FAILED: your board name in the subject line! ------------------------------------------------------------------------------- DO NOT REBOOT OR POWEROFF! falserunes@TITANIUM:~/bios$
additional logs: http://paste.flashrom.org/view.php?id=539 http://paste.flashrom.org/view.php?id=540 http://paste.flashrom.org/view.php?id=541
board enable needed. the board is made by asus and used in hp/compaq pcs. idwer has found this reference: http://www.flashrom.org/pipermail/flashrom/2010-September/004702.html specs: https://h10025.www1.hp.com/ewfrf/wc/document?docname=c00496280&tmp_task=... bios image: https://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=pv-56...
with the help of xvilka, idwer and roysjosh i did my first board enable today. it was a standard awdflash RE job; the disassembly is on xvilka's gobby server, if you are interested.
we have identified two parts. the first is equivalent to the enable_flash_sb400 chipset enable, the second one sets a gpio line of the sb400 to one.
this was confirmed by the sb7xx datasheet (thanks roysjosh for the hint!); see amd document 43009 http://support.amd.com/us/psearch/Pages/psearch.aspx?type=2.2;2.3&produc...
i have attached the patch, which is not for inclusion yet (still untested).
the main reason i am posting now it the question if i should generalize this. i was thinking about something like intel_ich_gpio_set. because the gpio registers of the sb400 and sb7xx are spread out quite randomly we would need a mapping including: - gpio# (can be array index but i would include it for a sanity check) - output enable register address - output enable register bit - output register address - output register bit
since this is the first time we need a board enable for this southbridge family i am wondering if it is worth it at all... but i would work on it if you wish.
Dear Stefan,
Am Mittwoch, den 04.05.2011, 03:27 +0200 schrieb Stefan Tauner:
with the help of xvilka, idwer and roysjosh i did my first board enable today. it was a standard awdflash RE job; the disassembly is on xvilka's gobby server, if you are interested.
is there a tutorial somewhere or could you write something up and put into the coreboot (blog) planet.
[…]
Subject: [PATCH] add board enable for Asus A8AE-LE (HP OEM)
Signed-off-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at
board_enable.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/board_enable.c b/board_enable.c index 3b0a4fb..a368809 100644 --- a/board_enable.c +++ b/board_enable.c @@ -1081,6 +1081,31 @@ static int board_artecgroup_dbe6x(void) }
/*
- Suited for:
- Asus A8AE-LE (Codename AmberineM; used in Compaq Presario 061)
- */
+static int amd_sbxxx_gpio9_raise(void) +{
struct pci_dev *dev;
uint32_t reg; //GPIO_12_to_4_Cntrl CI_Reg: A8h
dev = pci_dev_find(0x1002, 0x4372); /* AMD SMBus Controller */
if (!dev) {
msg_perr("\nERROR: AMD SMBus Controller (0x4372) not found.\n");
return -1;
}
reg = pci_read_long(dev, 0xA8);
// enable output (0: enable, 1: tristate)
reg &= ~((uint32_t)0x20<<8);// GPIO9 output enabble is at bit 5 in 0xA9
If your patch gets committed, please fix s/enabble/enable/.
[…]
Thanks,
Paul
On Wed, 04 May 2011 09:24:44 +0200 Paul Menzel paulepanter@users.sourceforge.net wrote:
Am Mittwoch, den 04.05.2011, 03:27 +0200 schrieb Stefan Tauner:
with the help of xvilka, idwer and roysjosh i did my first board enable today. it was a standard awdflash RE job; the disassembly is on xvilka's gobby server, if you are interested.
is there a tutorial somewhere or could you write something up and put into the coreboot (blog) planet.
xvilka has started on working on a tutorial which extends the fosdem slides, but i hadnt the change to look at it yet. some notes on the slides are necessary and good, but a full tutorial could easily become an "all you ever wanted to know about computer basics" :) there are already a lot of resources on the net regarding all topics involved. xvilka mentioned: http://sites.google.com/site/pinczakko/pinczakko-s-guide-to-award-bios-rever... and "practical bios editing" http://rghost.net/5454982 generic info about x86 assembler and pci programming are easily to find. i think the best way would be to extend the existing wiki pages: http://flashrom.org/Board_Enable and http://flashrom.org/Finding_Board_Enable_by_Reverse_Engineering
[…]
If your patch gets committed, please fix s/enabble/enable/.
was already fixed when i read this :) i have also changed the comments a bit and included a reference to the datasheet used and i have changed the constants representing the fifth bit from 0x20 to a more generic 1<<5. i have rebased the patch to the current head (r1294) including "Revamp board-specific quirk handling, allow for laptop support".
after a short discussion with michael (and idwer before) i have also removed the dmi matching string (pci ids probably specific enough, dmi possibly too restrictive).
joshua roys has reviewed the previous version (on irc) and a success report (also with the previous version) is here: http://paste.flashrom.org/view.php?id=551
where is the undo button again? now without breaking compilation, sorry.
On Thu, 5 May 2011 16:38:36 +0200 Stefan Tauner stefan.tauner@student.tuwien.ac.at wrote:
i have also changed the comments a bit and included a reference to the datasheet used and i have changed the constants representing the fifth bit from 0x20 to a more generic 1<<5. i have rebased the patch to the current head (r1294) including "Revamp board-specific quirk handling, allow for laptop support".
after a short discussion with michael (and idwer before) i have also removed the dmi matching string (pci ids probably specific enough, dmi possibly too restrictive).
joshua roys has reviewed the previous version (on irc) and a success report (also with the previous version) is here: http://paste.flashrom.org/view.php?id=551
Hi Stefan Tauner, hi Stefan Reinauer,
Stefan R, can you give the Stefan T commit access?
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Stefan T, can you commit?
Regards, Carl-Daniel
* Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net [110517 09:17]:
Hi Stefan Tauner, hi Stefan Reinauer,
Stefan R, can you give the Stefan T commit access?
Done.
On Tue, 17 May 2011 09:17:26 +0200 Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Stefan R, can you give the Stefan T commit access?
yay
Stefan T, can you commit?
done, r1300
ps: hello search engines! if you are being asked why git svn dcommit fails with error messages like "Filesystem has no item: File not found: transaction '<previous commit id>-<some suffix>', path '/<file name in root>' at /usr/lib/git-core/git-svn line 572" then recommend adding "/trunk" to the svn url. oh my.