» Willkommen auf AMD Overclocking «

Der Alexander
offline


OC Newbie
11 Jahre dabei !


:moin:

Hab einen Applebred zu Mobile-Xp gemacht und habe 2 Boards mit AMI Bios. Nun heißt es überall: L5[1] schließen und L6 Brücken zurechtschneiden, damit der Prozessor nicht mit 24x startet. Auf L6 Brücken hatte ich keine Lust, hatte schon Probleme mit L5 Brücken (mit Lack wegkratzen und so ...).  Und der richtige Multi muß noch gefunden werden!
Also hab ich im Bios rumgestochert (habe eigentlich was anderes gesucht), hier das Ergebnis:

Als Erstes braucht man ein Bios.
Dann schaut man es mit amibcp an.
Code
BCP760.EXE bios.bin /l


Folgendes sollte in etwa zu sehen sein:
Code

DOS/4G Protected Mode Run-time  Version 2.01a
Copyright (c) Tenberry Software, Inc. 1996
+-----------------------------------------------------------------------------+
        AMIBIOS ROM Module Manipulation Utility - Module Information        
  Copyright (C)2002 American Megatrends Inc. All Rights Reserved. v7.60.04  
+-----------------------------------------------------------------------------
BIOS Version : 0700                  BIOS Date    : 04/25/03                
BIOS Tag     :                            BIOS Size    : 256  Kb                
+-----------------------------------------------------------------------------
Module ID/Name        RomLoc     SourceSize   SizeInRom     %%    RunLoc    ru
+-----------------------------------------------------------------------------
   INIT               F000:C000 04000(016384) 04000(016384) 00.00 ---- ----
   NVRAM/ESCD         F000:8000 04000(016384) 04000(016384) 00.00 ---- ----
   AMD SIP ROM        F000:7400 00C00(003072) 00C00(003072) 00.00 ---- ----
?02 Runtime            F066:000E 09940(039232) 06D7A(028026) 28.56 F000:66C0
08 Interface          EFF5:0004 00706(001798) 0071A(001818) 00.00 Dynamic  
?00 POST               EB54:0009 05CFA(023802) 04A0B(018955) 20.36 F000:0000
?03 DIM                E7ED:0003 04E86(020102) 03676(013942) 30.64 E000:B170
?04 Setup Client       E457:0000 05CC6(023750) 03963(014691) 38.14 Dynamic  
?01 Setup Server       E2F0:000D 01C74(007284) 01663(005731) 21.32 F000:0000
06 DMI Data           E2BB:0009 00340(000832) 00354(000852) 00.00 Dynamic  
?09 MP                 E280:0002 00471(001137) 003B7(000951) 16.36 Dynamic  
?0A Notebook           D8C8:0009 10000(065536) 09B79(039801) 39.27 Dynamic  
?0D Int-13             D389:0003 06F2D(028461) 053F6(021494) 24.48 Dynamic  
?0F ACPI Table         D351:0008 0984B(038987) 0037B(000891) 97.71 Dynamic  
?10 ACPI AML           D1F6:0000 033C1(013249) 015B8(005560) 58.03 Dynamic  
?12 Configuration      D16B:0002 00A04(002564) 008AE(002222) 13.34 Dynamic  
?13 DMI Code           D0D1:0008 00BF2(003058) 0099A(002458) 19.62 Dynamic  
?3C UserDefined        D08B:000C 0059C(001436) 0045C(001116) 22.28 Dynamic  
?33 Still Logo Data    CE85:0003 06816(026646) 02069(008297) 68.86 Dynamic  
?32 Still Logo Code    CE65:000F 002FF(000767) 001F4(000500) 34.81 Dynamic  
?31 Small OEM Logo     CE41:000C 00693(001683) 00243(000579) 65.60 Dynamic  
0C ROM-ID             CE40:0000 00008(000008) 0001C(000028) 00.00 Dynamic  
?60 ASCII Font         CDEB:0002 01000(004096) 0054E(001358) 66.85 Dynamic  
?50 Default Language   CCE6:0005 025BC(009660) 0104D(004173) 56.80 Dynamic  
?43 UserDefined        CC3D:000B 00F2C(003884) 00A8A(002698) 30.54 Dynamic  
?20 PCI AddOn ROM      C42D:0003 0D000(053248) 08108(033032) 37.97 3065:1106
+-----------------------------------------------------------------------------
Bytes Used       : 03BD35 ( 245045)     Bytes Free       : 0042CB (  17099)
+-----------------------------------------------------------------------------+

!! Module Manipulation Successful !!


Falls nicht, hat man kein Ami Bios oder es ist zu alt/neu oder sonst was...
Interessant ist das Modul 02 Runtime, da passiert die frühe Initialisierung.
Deshalb extrahiere ich das mit
Code

bcp760 bios.bin /e runtime.bin 2

Jetzt  öffne ich die runtime.bin mit Disassembler und finde diese interessante Stelle:
Code

:0001.48E9 6660                   pushad
:0001.48EB 66B807000080           mov eax, 80000007
:0001.48F1 0FA2                   cpuid
:0001.48F3 F6C202                 test dl, 02
:0001.48F6 743C                   je 4934
:0001.48F8 66B9420001C0           mov ecx, C0010042
:0001.48FE 0F32                   rdmsr
:0001.4900 8AD8                   mov bl , al
:0001.4902 80E31F                 and bl, 1F
:0001.4905 66C1E810               shr eax, 10
:0001.4909 6683E01F               and eax, 0000001F
:0001.490D 38D8                   cmp al , bl
:0001.490F 7406                   je 4917
:0001.4911 2EC606FAAF01           mov byte ptr cs:[AFFA], 01

:0001.4917 66C1EA08               shr edx, 08
:0001.491B 6681E2001F0000         and edx, 00001F00
:0001.4922 660BC2                 or eax, edx
:0001.4925 660D00001300           or eax, 00130000
:0001.492B 66BA10270000           mov edx, 00002710
:0001.4931 49                     dec cx
:0001.4932 0F30                   wrmsr

:0001.4934 E80400                 call 493B
:0001.4937 6661                   popad
:0001.4939 C3                     ret

Hier passiert folgendes:
Der Befehl cpuid fragt die Fähigkeiten des Prozessors ab und wenn dieser die FID-Änderung unterstützt, wird der max. FID gesetzt. Beim Desktop normalerweise 11x oder bei verbundener L5[1], je nach Zustand von L6. Bis zum Befehl wrmsr läuft der Prozessor mit dem Desktop-Startmulti.
Also ersetze ich  wrmsr mit 2 nop.
Nun ersetze ich die Runtime im Bios mit meiner.

Code
BCP760.EXE bios.bin /r runtime.bin 2 /m F000 66C0

F000 66C0 ist RunLoc(ation) und muß wie im Original sein.
Mit
Code
BCP760.EXE bios.bin /l
noch das ganze anschauen/prüfen.
Es sollten keine Fehlemeldungen ausgegeben werden.
Nun Bios flashen und fertig.
Theoretisch kann man jeden anderen Multi setzen (ungetestet), wenn man
Code
shr eax, 10
durch
Code
mov ax, xxyy
nop

ersetzt.
xxyy=0x0 für 11x, 0x2 für 12x, 0x1ff für 24x, bei anderen Werten in der FID-Tabelle suchen.

Nun die Zusammenfassung für den interessierten Laien:
1.
Code

bcp760 bios.bin /e runtime.bin 2

2. runtime.bin mit Hexeditor öffnen und nach 66B9420001C0 (sollte eigentlich nur 1 mal vorhanden sein, sonst bischen schauen) suchen, wenige Bytes später 0F30 durch 9090 ersetzen und speichern.
3.
Code
BCP760.EXE bios.bin /r runtime.bin 2 /m F000 66C0

Für F000 66C0 andere Werte einsetzen!!!! (Kriegt man mit BCP760.EXE bios.bin /l raus.)
Wenn jetzt BCP760.EXE bios.bin /l nicht meckert, kann geflasht werden.

Für beliebigen Multi ersetzt man 66C1E810 durch b8yyxx90, man beachte die Drehung von xx und yy (ist eine Eigenart von x86 Architektur), also z. B. bei FID 0x0001 (11,5x) b8010090 und bei FID 0x01FF (24x) b8FF0190.
Aber wie gesagt ungetestet, kann ja einer machen und posten. ;)

So das wars.

Alexander Schlegel

P.S.
Für den AWARD gibt es wohl den Biospatcher von apple_rom, soll irgendwann auch den AMI patchen können, die Seite kann ich aber seit Kurzem nicht mehr erreichen, kann das einer prüfen, vlt. gibts bei mir ein Problem?
Das da oben ist aber alleine auf meinem Mist gewachsen, ging erstaunlich leicht. Da ich keine Lösung im Internet gefunden habe, gehe ich mal davon aus, daß ich der "Erstentdecker" bin, sonst her mit dem Link!
Ich sag nur eins: "Verbreitet die Kunde!"

(Geändert von Der Alexander um 1:44 am Mai 6, 2006)

Das mit L5[1] war wohl nicht ganz richtig, hab mich aber nicht lange damit beschäftigt, weil es jetzt funktioniert.
Situation bei mir:
L5[1] offen: Max. Multi 11x(default), Startmulti= Max. Multi
L5[1] geschlossen + Biospatch: Startmulti = 12x (weil Duron 1600), Max. Multi 24x (wie mit den meisten AWARD BIOSen)

(Geändert von Der Alexander um 16:00 am Mai 10, 2006)

Beiträge gesamt: 3 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2006 | Dabei seit: 4218 Tagen | Erstellt: 1:07 am 6. Mai 2006
Der Alexander
offline


OC Newbie
11 Jahre dabei !


Über 50 mal betrachtet und keiner sagt was.
Was ist los? Zu kompliziert, braucht das keiner?
Wenn jetzt einer kommt mit: "Zu spät, usw.", da sag ich: "Mir doch egal.":)
Nein, im Ernst, Sockel A-System ist noch für viele Aufgaben mehr als ausreichend, imo.
Ein Rechner mit Palomino@933MHz/1,3V, und der Prozessor ist nicht so dolle, verbraucht bei mir ca. 60W in Idle-Zustand, beim Internetsurfen macht der Prozessor die meiste Zeit ja gar nichts. Hier braucht man einfach nicht mehr (Verlust)leistung.
OC ist natürlich auch erlaubt.:)
Ich hab das ganze in erster Linie für mich gemacht, weil mir die Lösungen im Internetz nicht zusagten.

Beiträge gesamt: 3 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2006 | Dabei seit: 4218 Tagen | Erstellt: 16:15 am 7. Mai 2006