Patchwork Asus A7V8X needs a board enable.

login
register
about
Submitter Luc Verhaegen
Date 2009-07-12 01:53:48
Message ID <20090712015348.GA25657@skynet.be>
Download mbox | patch
Permalink /patch/29/
State Accepted
Commit r652
Headers show

Comments

Luc Verhaegen - 2009-07-12 01:53:48
Attached is the hopefully final patch for the board enable. Glenn will 
now test it with the boards original bios. If this succeeds, then we had 
two issues combined;
* board enable.
* something funky going on with the SST49LF040B that got hot-swapped 
into the place of the boards original SST49LF040.

Luc Verhaegen.
Board enable for Asus A7V8X.

GP51 is attached to both WP# and TBL#.

Made possible by the quick response of ITE when asked for information, and
the tenacious testing of Glenn Mueller <mechwarrior5@hotmail.com> who owns
this hardware.

Signed-off-by: Luc Verhaegen <libv@skynet.be>
Luc Verhaegen - 2009-07-12 14:12:03
On Sun, Jul 12, 2009 at 03:53:48AM +0200, Luc Verhaegen wrote:
> Attached is the hopefully final patch for the board enable. Glenn will 
> now test it with the boards original bios. If this succeeds, then we had 
> two issues combined;
> * board enable.
> * something funky going on with the SST49LF040B that got hot-swapped 
> into the place of the boards original SST49LF040.
> 
> Luc Verhaegen.

Glenn, since you tested this successfully, can you reply with an:
"Acked-by:" statement?

Thanks,

Luc Verhaegen.
Glenn Mueller - 2009-07-13 02:31:24
Acked-by: Glenn Mueller (mechwarrior5@hotmail.com)
 
Erased and flashed successfully the factory chip for the board. Proved this to myself by flashing the bios for my 650i machine onto it and taking the off chance it would boot from it... it did, a hot swap and an awdflash later my 650i is operational again on its factory chip and reflashed the a7v8x with its factory bios too. Good news is it worked perfect. E-mail sent from the 650i even :) Let me know if you still want to try and make the a7v8x flash the other chips or if it doesn't really matter.
 
> Date: Sun, 12 Jul 2009 16:12:03 +0200
> From: libv@skynet.be
> To: mechwarrior5@hotmail.com
> CC: flashrom@flashrom.org
> Subject: Re: [flashrom] Asus A7V8X needs a board enable.
> 
> On Sun, Jul 12, 2009 at 03:53:48AM +0200, Luc Verhaegen wrote:
> > Attached is the hopefully final patch for the board enable. Glenn will 
> > now test it with the boards original bios. If this succeeds, then we had 
> > two issues combined;
> > * board enable.
> > * something funky going on with the SST49LF040B that got hot-swapped 
> > into the place of the boards original SST49LF040.
> > 
> > Luc Verhaegen.
> 
> Glenn, since you tested this successfully, can you reply with an:
> "Acked-by:" statement?
> 
> Thanks,
> 
> Luc Verhaegen.



Windows Liveā„¢: Keep your life in sync. Check it out.
Luc Verhaegen - 2009-07-13 12:53:32
On Mon, Jul 13, 2009 at 02:31:24AM +0000, Glenn Mueller wrote:
> 
> 
> 
> Acked-by: Glenn Mueller (mechwarrior5@hotmail.com)
>  
> Erased and flashed successfully the factory chip for the board. Proved 
> this to myself by flashing the bios for my 650i machine onto it and 
> taking the off chance it would boot from it... it did, a hot swap and 
> an awdflash later my 650i is operational again on its factory chip and 
> reflashed the a7v8x with its factory bios too. Good news is it worked 
> perfect. E-mail sent from the 650i even :) Let me know if you still 
> want to try and make the a7v8x flash the other chips or if it doesn't 
> really matter.

Thanks, -> r652

Ok, so flashing worked on the sst49lf040b in the 650i?

Have you tried setting the board enable on the a7v8x with the 040, and 
only inserting the 040b after this, when the WP and TBL have been raised 
already?

Luc Verhaegen.
Glenn Mueller - 2009-07-14 08:18:10
Yes the sst49lf040B came from the 650i and once i got a good boot out of the chip from the A7V8X i was able to hot flash using dr-dos and the factory program. That is only a working solution if your board boots. Tried enabling with factory chip then swapping to flash it still gave the same error. I am more surprised to see that the 650I booted from the sst49lf040, just for grins i ran the flash program on the 040 to see what it detected it as... a sst49lf080A?
Oh yeah I found an old file I had lying around it it is supposed to be the full 2 meg award vanilla bios. I thought you guys may be interested in it contains alot of files but requires assembling etc before flashable. I haven't been able to do anything with it yet I got it when I was looking to make this 650I run a 45nm cpu... I don't think I can :) Anywayz it is up for grabs.

 
> Date: Mon, 13 Jul 2009 14:53:32 +0200
> To: mechwarrior5@hotmail.com
> CC: flashrom@flashrom.org
> Subject: Re: [flashrom] FW: Asus A7V8X needs a board enable.
> From: libv@skynet.be
> 
> On Mon, Jul 13, 2009 at 02:31:24AM +0000, Glenn Mueller wrote:
> > 
> > 
> > 
> > Acked-by: Glenn Mueller (mechwarrior5@hotmail.com)
> > 
> > Erased and flashed successfully the factory chip for the board. Proved 
> > this to myself by flashing the bios for my 650i machine onto it and 
> > taking the off chance it would boot from it... it did, a hot swap and 
> > an awdflash later my 650i is operational again on its factory chip and 
> > reflashed the a7v8x with its factory bios too. Good news is it worked 
> > perfect. E-mail sent from the 650i even :) Let me know if you still 
> > want to try and make the a7v8x flash the other chips or if it doesn't 
> > really matter.
> 
> Thanks, -> r652
> 
> Ok, so flashing worked on the sst49lf040b in the 650i?
> 
> Have you tried setting the board enable on the a7v8x with the 040, and 
> only inserting the 040b after this, when the WP and TBL have been raised 
> already?
> 
> Luc Verhaegen.
Luc Verhaegen - 2009-07-14 11:30:16
On Tue, Jul 14, 2009 at 08:18:10AM +0000, Glenn Mueller wrote:
> 
> Yes the sst49lf040B came from the 650i and once i got a good boot out 
> of the chip from the A7V8X i was able to hot flash using dr-dos and 
> the factory program. That is only a working solution if your board 
> boots. Tried enabling with factory chip then swapping to flash it 
> still gave the same error. I am more surprised to see that the 650I 
> booted from the sst49lf040, just for grins i ran the flash program on 
> the 040 to see what it detected it as... a sst49lf080A?

Aha, so you flashed using another program. Can you try flashing the B 
variant using flashrom in your 650i board?

Luc Verhaegen.
Luc Verhaegen - 2009-07-15 08:26:18
On Wed, Jul 15, 2009 at 02:02:17AM +0000, Glenn Mueller wrote:
> 
> Sure I can try but is my board or chipset supported at all by your program?

Chipset; should be ok.
Board; try and find out, but in general, very little boards actually 
need a board enable. And the board enable usually is the more tangible 
of issues we can fix :)

Our big question here is, can we really support the flash part. And if 
we can, why didn't it work in the asus a7v8x?

Luc Verhaegen.

Patch

Index: board_enable.c
===================================================================
--- board_enable.c	(revision 650)
+++ board_enable.c	(working copy)
@@ -832,6 +832,44 @@ 
 }
 
 /**
+ * Suited for Asus A7V8X: VIA KT400 + VT8235 + IT8703F-A
+ */
+static int board_asus_a7v8x(const char *name)
+{
+	uint16_t id, base;
+	uint8_t tmp;
+
+	/* find the IT8703F */
+	w836xx_ext_enter(0x2E);
+	id = (sio_read(0x2E, 0x20) << 8) | sio_read(0x2E, 0x21);
+	w836xx_ext_leave(0x2E);
+
+	if (id != 0x8701) {
+		fprintf(stderr, "\nERROR: IT8703F SuperIO not found.\n");
+		return -1;
+	}
+
+	/* Get the GP567 IO base */
+	w836xx_ext_enter(0x2E);
+	sio_write(0x2E, 0x07, 0x0C);
+	base = (sio_read(0x2E, 0x60) << 8) | sio_read(0x2E, 0x61);
+	w836xx_ext_leave(0x2E);
+
+	if (!base) {
+		fprintf(stderr, "\nERROR: Failed to read IT8703F SuperIO GPIO"
+			" Base.\n");
+		return -1;
+	}
+
+	/* Raise GP51. */
+	tmp = INB(base);
+	tmp |= 0x02;
+	OUTB(tmp, base);
+
+	return 0;
+}
+
+/**
  * We use 2 sets of IDs here, you're free to choose which is which. This
  * is to provide a very high degree of certainty when matching a board on
  * the basis of subsystem/card IDs. As not every vendor handles
@@ -860,6 +898,7 @@ 
 	{0x1106, 0x3177, 0x17F2, 0x3177,  0x1106, 0x3148, 0x17F2, 0x3148, NULL,         NULL,          "Albatron",    "PM266A*",            board_epox_ep_8k5a2},
 	{0x1022, 0x2090,      0,      0,  0x1022, 0x2080,      0,      0, "artecgroup", "dbe61",       "Artec Group", "DBE61",              board_artecgroup_dbe6x},
 	{0x1022, 0x2090,      0,      0,  0x1022, 0x2080,      0,      0, "artecgroup", "dbe62",       "Artec Group", "DBE62",              board_artecgroup_dbe6x},
+	{0x1106, 0x3189, 0x1043, 0x807F,  0x1106, 0x3177, 0x1043, 0x808C, NULL,         NULL,          "ASUS",        "A7V8X",              board_asus_a7v8x},
 	{0x1106, 0x3177, 0x1043, 0x80A1,  0x1106, 0x3205, 0x1043, 0x8118, NULL,         NULL,          "ASUS",        "A7V8X-MX SE",        board_asus_a7v8x_mx},
 	{0x8086, 0x1a30, 0x1043, 0x8070,  0x8086, 0x244b, 0x1043, 0x8028, NULL,         NULL,          "ASUS",        "P4B266",             ich2_gpio22_raise},
 	{0x10B9, 0x1541,      0,      0,  0x10B9, 0x1533,      0,      0, "asus",       "p5a",         "ASUS",        "P5A",                board_asus_p5a},