Uniflash and ASUS KT600

Questions that don't belong in the other forums.
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

Well, I need to reprogram a SST 49LF004B (FWH/LPC, 512KB) flash chip of a DFI Infinity NF4 Ultra (nForce4/IT8712F/Award) that went bad after power loss last night.

At the moment I only have a ASUS A7V600-X (Apollo KT600/IT8712F/Award) motherboard laying around for hotswap, but it has a PMC Pm49FL002 (FWH/LPC, 256KB) flash chip.

I know these two flash chips are pin compatible and need the same voltage to operate/flash, although they differ in size.

I was thinking of using Uniflash to write the 512KB chip and I've seen that Apollo KT400(A) was tested and it's functional, but there's no sign of Apollo KT600 support, is it because no feedback has been reported or Apollo KT600 isn't actually supported ?

I'm assuming Apollo KT600 chipset can handle 512KB flash EEPROMs as another Apollo KT600 motherboard (MSI KT6 Delta) uses 512KB flash chips.

So do you guys think this is going to work ?

Any input will be appreciated.
ajzchips
El cheapo dude
Posts: 3048
Joined: Sat Mar 23, 2002 12:41 pm
Location: Madrid, Spain

I'd wait for Rainbow, the Uniflash developer, to reply...
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

OK, Rainbow, please feel free to post your thoughts.

And by the way, the people that read my message please feel free too.
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

For correct support nVidia chipsets - changes:

Code: Select all

 If SouthMan = $10DE {nVidia} then {v1.30}
  Begin
   SouthFunc:=$1600;
   case SouthId of
    $01B2: begin SouthName:='nVidia MCP/MCP-D'; SouthFunc:=$1601; end; {v1.41re}
    $0060: begin SouthName:='nVidia MCP2'; SouthFunc:=$1602; end; {v1.41re}
    $0080: begin SouthName:='nVidia MCP2A/MCP2S'; SouthFunc:=$1602; end; {v1.41re}
    $00D0: begin SouthName:='nVidia nForce3 LPC Bridge'; SouthFunc:=$1602; end; {v1.41re}
    $00E0: begin SouthName:='nVidia nForce3 250Gb LPC Bridge'; SouthFunc:=$1602; end; {v1.41re}
    $0050: begin SouthName:='nVidia nForce4 LPC Bridge'; SouthFunc:=$1602; end; {v1.45re}
    $0030: begin SouthName:='nVidia MCP-04'; SouthFunc:=$1602; end; {v1.45re}
   end;
  End;

Code: Select all

  $16 : Begin {nForce method} {v1.30}
           case Lo(SouthFunc) of
            $01: Begin {nForce(1) method} {v1.41re}
         If Map then
          Begin
           PIIXReg := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $44 );
           LogWrite('nForce method: reg $44 = '+Hl(PIIXReg));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $44, PIIXReg or $100);
           PIIXReg2 := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $70 );
           LogWrite('nForce method: reg $70 = '+Hl(PIIXReg2));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $70, PIIXReg2 and $FFE0FFFF or $C0);
           PIIXReg3 := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $74 );
           LogWrite('nForce method: reg $74 = '+Hl(PIIXReg3));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $74, 0);
           PIIXReg4 := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $78 );
           LogWrite('nForce method: reg $78 = '+Hl(PIIXReg4));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $78, 0);
           PIIXReg5 := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $7C );
           LogWrite('nForce method: reg $7C = '+Hl(PIIXReg5));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $7C, 0);
          End else
          Begin
           LogWrite('nForce method: restoring reg $44 from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $44 )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $44, PIIXReg );
           LogWrite('nForce method: restoring reg $70 from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $70 )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $70, PIIXReg2 );
           LogWrite('nForce method: restoring reg $74 from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $74 )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $74, PIIXReg3 );
           LogWrite('nForce method: restoring reg $78 from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $78 )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $78, PIIXReg4 );
           LogWrite('nForce method: restoring reg $7C from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $7C )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $7C, PIIXReg5 );
          End;
                 End;
            $02: Begin {nForce2 and higher method} {v1.41re}
         If Map then
          Begin
           PIIXReg := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $6C );
           LogWrite('nForce method: reg $6C = '+Hl(PIIXReg));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $6C, PIIXReg or $100);
           PIIXReg2 := GetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $90 );
           LogWrite('nForce method: reg $90 = '+Hl(PIIXReg2));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $90, PIIXReg2 and $FF00FFFF);
          End else
          Begin
           LogWrite('nForce method: restoring reg $6C from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $6C )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $6C, PIIXReg );
           LogWrite('nForce method: restoring reg $90 from '+Hl(GetPCIRegD( $00, SouthPos shr 3,
            SouthPos and $7, $90 )));
           SetPCIRegD( $00, SouthPos shr 3, SouthPos and $7, $90, PIIXReg2 );
          End;
                 End;
               End;
        End;
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

Good find apple_rom.

Any info on KT600 support ?
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

KT600 support by Uniflash 1.40.
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

apple_rom wrote:KT600 support by Uniflash 1.40.
Thank you.

OK, do you think it's possible to write the 512KB flash chip ( SST 49LF004B ) in ASUS A7V600-X ( PMC Pm49FL002 ) using Uniflash 1.40 ?

One more thing, ASUS A7V600-X benefits from this specific support too ?
added specific support for Asus A7V266 and A7V8X-X (they use Super I/O GPO pins)...
I can't test this right now as I forgot I sold the Duron I had...

Thanks again.
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

One more thing, ASUS A7V600-X benefits from this specific support too ?
Run with "-Asus" key.
If don`t correctly work (most certainly so be it for 4Mbit-bioses) change:

Code: Select all

 if AsusUsed then
  begin
    if Map then AsusEnable else AsusDisable;
    ROMEnabled:=Map;
    {Exit; <- comment this string}
  end;
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

apple_rom wrote:
One more thing, ASUS A7V600-X benefits from this specific support too ?
Run with "-Asus" key.
If don`t correctly work (most certainly so be it for 4Mbit-bioses) change:

Code: Select all

 if AsusUsed then
  begin
    if Map then AsusEnable else AsusDisable;
    ROMEnabled:=Map;
    {Exit; <- comment this string}
  end;
Thank you apple_rom, I'll try the -ASUS switch.

It's weird because it seems to me that VIA 8377/8237 can work with 4Mbit flash EEPROMs as MSI KT6 Delta has 4Mbit (524,288 bytes) firmware updates :

So why do you think 4Mbit flash EEPROMs may not work ?

I'm not into programming so I hope someone else can help me. Rainbow ?
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

It's weird because it seems to me that VIA 8377/8237 can work with 4Mbit flash EEPROMs as MSI KT6 Delta has 4Mbit (524,288 bytes) firmware updates :

So why do you think 4Mbit flash EEPROMs may not work ?
Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta), but Asus use flashrom with LPC-interface (like nVidia-chipsets).
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

apple_rom wrote:
It's weird because it seems to me that VIA 8377/8237 can work with 4Mbit flash EEPROMs as MSI KT6 Delta has 4Mbit (524,288 bytes) firmware updates :

So why do you think 4Mbit flash EEPROMs may not work ?
Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta), but Asus use flashrom with LPC-interface (like nVidia-chipsets).
I guess there shouldn't be any problems as both flash chips have Parallel Programming (PP) and LPC interfaces, I've checked out the datasheets, but isn't PP used for fast factory programming with programming equipment while FWH/LPC for in-system programming ?
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

I guess there shouldn't be any problems as both flash chips have Parallel Programming (PP) and LPC interfaces, I've checked out the datasheets, but isn't PP used for fast factory programming with programming equipment while FWH/LPC for in-system programming ?
Under "PP" i implied "old", "usual" flashroms (A0-A18), rather then _multiplexed_ (A0-A10/mp) parallel-programming.
To example:
1. PP = SST29EE020
2. FWH = SST49LF002A
3. LPC = SST49LF040
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

apple_rom wrote:
I guess there shouldn't be any problems as both flash chips have Parallel Programming (PP) and LPC interfaces, I've checked out the datasheets, but isn't PP used for fast factory programming with programming equipment while FWH/LPC for in-system programming ?
Under "PP" i implied "old", "usual" flashroms (A0-A18), rather then _multiplexed_ (A0-A10/mp) parallel-programming.
To example:
1. PP = SST29EE020
2. FWH = SST49LF002A
3. LPC = SST49LF040
OK, thanks for clearing that up.

Now I'm seeing some people had problems writing chips using Uniflash in KT400/KT600 motherboards, it seems there's a problem after flashing, data mismatch or something like that.

I guess I won't be able to try it until weekend but I think this is probably not going work. :cry:
Qortado
BIOS Newbie
Posts: 16
Joined: Fri Jul 01, 2005 6:41 am

Rainbow are you there ?
edwin
The Hardware Archivist
Posts: 6286
Joined: Wed Mar 20, 2002 7:11 pm
Location: Netherlands
Contact:

Qortado wrote: Now I'm seeing some people had problems writing chips using Uniflash in KT400/KT600 motherboards, it seems there's a problem after flashing, data mismatch or something like that.
Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta)
Did they use PP-interface flashrom chips only?
edwin/evasive

Do not assume anything

System error, strike any user to continue...
Post Reply