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.
Uniflash and ASUS KT600
-
- 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;
Thank you.apple_rom wrote:KT600 support by Uniflash 1.40.
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 ?
I can't test this right now as I forgot I sold the Duron I had...added specific support for Asus A7V266 and A7V8X-X (they use Super I/O GPO pins)...
Thanks again.
-
- Use my patch at your own risk!!
- Posts: 125
- Joined: Tue Jan 07, 2003 11:39 am
- Location: Minsk
- Contact:
Run with "-Asus" key.One more thing, ASUS A7V600-X benefits from this specific support too ?
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.apple_rom wrote:Run with "-Asus" key.One more thing, ASUS A7V600-X benefits from this specific support too ?
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;
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 ?
-
- Use my patch at your own risk!!
- Posts: 125
- Joined: Tue Jan 07, 2003 11:39 am
- Location: Minsk
- Contact:
Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta), but Asus use flashrom with LPC-interface (like nVidia-chipsets).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 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 wrote:Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta), but Asus use flashrom with LPC-interface (like nVidia-chipsets).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 ?
-
- Use my patch at your own risk!!
- Posts: 125
- Joined: Tue Jan 07, 2003 11:39 am
- Location: Minsk
- Contact:
Under "PP" i implied "old", "usual" flashroms (A0-A18), rather then _multiplexed_ (A0-A10/mp) parallel-programming.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 ?
To example:
1. PP = SST29EE020
2. FWH = SST49LF002A
3. LPC = SST49LF040
OK, thanks for clearing that up.apple_rom wrote:Under "PP" i implied "old", "usual" flashroms (A0-A18), rather then _multiplexed_ (A0-A10/mp) parallel-programming.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 ?
To example:
1. PP = SST29EE020
2. FWH = SST49LF002A
3. LPC = SST49LF040
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.

-
- The Hardware Archivist
- Posts: 6287
- 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.
Did they use PP-interface flashrom chips only?Because KT600 use "by default" only flashrom with PP-interface (including MSI KT6 Delta)
edwin/evasive
Do not assume anything
System error, strike any user to continue...
Do not assume anything
System error, strike any user to continue...