Forum: PC-Programmierung Bitte um Erlaeuterung einer Funktion in debug.com


von M. K. (knogle)


Lesenswert?

Hallo liebe Community ,

Ich und einige weitere Personen stehen vor einem grossen Problem

Ich habe bereits bei einigen anderen Foren angefragt jedoch finden sich 
leider keine Leute die wirklich Ahnung davon haben und uns weiterhelfen 
koennen.. Also seid ihr meine letzte Hoffnung :D

Ich habe vor einiger Zeit (ca. 20 Tage her) einen Artikel geschrieben 
ueber das guter P/L Verhaeltnis der Xeon X5600er Reihe und das man ein 
Dual CPU System bereits unter 300 Euro kriegen kann

Einige Personen haben sich bereits eins zugelegt mich inbegriffen jedoch 
gibt es einen Haken.. Der Standardtakt ist zu niedrig und deshalb 
wuerden wir gerne uebertakten

Das Problem ist das es fuer dieses Board (Intel S5520HCR und Intel 
S5520SCR) kein MOD Bios gibt welches die Moeglichkeiten fuers OC 
eroeffnet

Wir haben bereits einige andere Server Boards gefunden und das EVGA SR2 
jedoch sind diese entweder zu teuer oder bieten zu wenig Moeglichkeiten

Ich habe bereits versuche gestartet etwas zu aendern mithilfe von DOS 
und DEBUG.COM jedoch bin ich trotz meiner Assembler Kentnisse 
gescheitert

Wuerde sich jemand bereit erklaeren so etwas zu machen?? Geld waere auch 
drinnen ..

Kann man den BCLK und andere Dinge wie QPI Link ueberhaupt in DOS 
veraendern ueber das CMOS oder braucht man da ein modifiziertes BIOS?


Was ich rausgefunden habe ist das der Taktgenerator von Realtek ist 
(Realtek RTM868 -505 ODER RTM860) wobei wir als erstes von dem ICS Chip 
unter dem PCIe X16 Slot ausgegangen sind wobei dieser in diesem Fall nur 
ein PCIe Puffer ist

Bisher habe ich es leider nur geschafft das CMOS und BIOS zu zerstoeren 
unter DOS via Debug jedoch nichts was zum Ziel fuehren koennte

Ein kaputtes BIOS duerfte kein Problem sein da ich bereits einen 
weiteren Chip angefordert habe und das Geraet dein Dual BIOS besitzt

Wir sind uns der komplexitaet dieses Systems bewusst , jedoch waere es 
schong ganz schoen wenn man immerhin den Basistakt , QPI Link 
beeinflussen koennte oder zumindest den Multi auf maximum stellen kann




Nochmal kurz meine Erkentnisse und das System:

Intel S5520HCR Server Board

2x Xeon X5650 6 Kern CPUs @2,6Ghz

600W Bequiet! 600W Netzteil

GTX 660 EVGA Grafikkarte

LSI 92118i RAID Controller


- Taktgeber ist wahrscheinlich ein ARM Prozessor mit 64MB weshalb ich 
das BIOS wohl auch nicht disassemblieren konnte da er einen Prozessor 
vom Typ "z60" will
- System hat Dual BIOS



- Nach langem nachforschen konnte ich im BIOS Pfade entdecken wie z.b. : 
X:\Thurley\TL60\Temp\IA32\IchSmbusArpDisabled.pdb



Bitte ganz dringend um Hilfe!! Gegenleistung waere auch drinnen!!

Das hier habe ich bereits durchgearbeitet 
http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/5520-5500-chipset-ioh-datasheet.pdf

: Bearbeitet durch User
von M. K. (knogle)


Lesenswert?

Hallo liebe Cmommunity ,

Ich beschaeftige mich momentan mit dem BIOS meines Dual CPU Systems ( 
Eventuell kann ja jemand den Thread verschieben aus dem Bereich PC Soft- 
Hardware in PC Programmierung)
und ich nutze DOS und dort die debug funktion da ich wohl nur im real 
mode wirklich was dran machen kann

Habe die debug funktion zuvor nur gelegentlich genutzt vor vielen Jahren 
deshalb stellen sich mir jetzt einige Fragen



Was macht dieser Befehl genau ?
O 70 17
O 71 17

Mir ist diese Schreibweise nicht bekannt , vielleicht kann jemand das ja 
fuer mich in Assembler uebersetzen was fuer mich verstaendlich waere

Der Befehl soll angeblich dazu da sein um das CMOS zu loeschen jedoch 
wird bei meinem System nur die Uhrzeit zurueckgesetzt :D


Kann ich den SMBus eigentlich in DOS aktivieren ? Der wird irgendwie 
deaktiviert durch das BIOS


Kann ich via NASM oder MASM den CPU Takt oder QPI Link irgendwie 
beeinflussen oder den Basistakt anheben oder den QPI Link ueber die 
6,4GT/s hinaus?


MfG und danke im vorraus

von Peter II (Gast)


Lesenswert?

M. K. schrieb:
> Was macht dieser Befehl genau ?

Google: "Debug o"

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/debug_o.mspx?mfr=true


es schreibt einen wert an eine IO Adresse. Die Frage ist was bei einem 
normales PC dort liegt.

von M. K. (knogle)


Lesenswert?

Peter II schrieb:
> M. K. schrieb:
>> Was macht dieser Befehl genau ?
>
> Google: "Debug o"
>
> 
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/debug_o.mspx?mfr=true
>
>
> es schreibt einen wert an eine IO Adresse. Die Frage ist was bei einem
> normales PC dort liegt.

Also wenn ich es richtig verstehe wird dann mti 0 71 17 in dem Fall int 
71 (CMOS Uhr) ein Wert da rein geschrieben und die resetet?

Aber warum funktioniert dann int 70 nicht

von TomA (Gast)


Lesenswert?

Hallo M.K.

lange ist es her! Soweit ich mich erinnere ist das der Ausgabebefehl für 
einen Port "O Portnummer Ausgabebyte". Demnach schreibst du auf Port 70 
und 71 jeweils den Wert 17. Die Zahlen waren glaube ich alle 
Hexadezimal?

Nun mußt du noch wissen, was hinter den Ports 70 und 71 steckt!

Es gab auch ein kleines Buch über den Debugger "Debug entschlüsselt".

Gruß. Tom

von M. K. (knogle)


Lesenswert?

TomA schrieb:
> Hallo M.K.
>
> lange ist es her! Soweit ich mich erinnere ist das der Ausgabebefehl für
> einen Port "O Portnummer Ausgabebyte". Demnach schreibst du auf Port 70
> und 71 jeweils den Wert 17. Die Zahlen waren glaube ich alle
> Hexadezimal?
>
> Nun mußt du noch wissen, was hinter den Ports 70 und 71 steckt!
>
> Es gab auch ein kleines Buch über den Debugger "Debug entschlüsselt".
>
> Gruß. Tom

Danke dir Tom,

Das klingt gut , das werde ich mir mal anschaffen

Ja also Port 70 ist die CMOS Uhr und 71 das CMOS jedoch kann ich 71 
irgendwie nicht resetten

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

M. K. schrieb:
> Also wenn ich es richtig verstehe wird dann mti 0 71 17 in dem Fall int
> 71 (CMOS Uhr) ein Wert da rein geschrieben und die resetet?
>
> Aber warum funktioniert dann int 70 nicht

es wird schon funktionieren. Aber vermutlich steht an dieser Adresse 
einfach keine Bios-Einstellung mehr.

So etwas war noch nicht wirklich portable. Es gibt verschiedene Biose 
(Award, Phönix, Ami ... )

Und ob das in Zeiten von UEFI überhaupt nicht funktioniert ist 
fragwürdig. Es mach auch wenig sinn sich heute noch damit zu 
beschäftigen. Dann fang lieber mit µC an, diese haben eine Doku.

von M. K. (knogle)


Lesenswert?

Leider habe ich wohl keine andere Wahl ausser mich mit dem BIOS selbst 
auseinander zu setzen was bei der Groesse von 8MB wohl eine Ewigkeit 
dauern wird

Mein Ziel ist es lediglich die Geschwindigkeit des QPI Links und den 
Basistakt zu beeinflussen , jedoch ist das System so komplex das es wohl 
noch ne Weile dauern wird

Selbst das Arbeiten mit Disassemblern funktioniert nicht da es sich 
irgendwie um einen Prozessor des Typs z60 handelt welcher wohl den 64MB 
ARM Prozessor des eingebetetten Systems darstellt .

Auf einem anderen System aus dem selben Jahr , ebenfalls mit UEFI und 
ebenfalls ein AMI Bios funktioniert das resetten sogar

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

M. K. schrieb:
> Mein Ziel ist es lediglich die Geschwindigkeit des QPI Links und den
> Basistakt zu beeinflussen , jedoch ist das System so komplex das es wohl
> noch ne Weile dauern wird

Und was soll das werden wenn es fertig ist?

von TomA (Gast)


Lesenswert?

Ich fürchte auch, daß die alten Unterlagen bei modernen PC's nicht mehr 
wirklich weiterhelfen. Das meiste wird noch stimmen, aber am Rest 
scheitert man dann.

Das O-Kommando deines Beispiels ist übrigens kein x86-Befehl, sondern 
eines der Debug-Kommandos. Hat auch nichts mit Interrupt zu tun.

Habe mein altes "Debug enträtselt" gefunden, hat die ISBN 3-89390-337-2.

Aber ob es wirklich Sinn macht es zu besorgen?

Gruß. Tom

von M. K. (knogle)


Lesenswert?

TomA schrieb:
> Ich fürchte auch, daß die alten Unterlagen bei modernen PC's nicht mehr
> wirklich weiterhelfen. Das meiste wird noch stimmen, aber am Rest
> scheitert man dann.
>
> Das O-Kommando deines Beispiels ist übrigens kein x86-Befehl, sondern
> eines der Debug-Kommandos. Hat auch nichts mit Interrupt zu tun.
>
> Habe mein altes "Debug enträtselt" gefunden, hat die ISBN 3-89390-337-2.
>
> Aber ob es wirklich Sinn macht es zu besorgen?
>
> Gruß. Tom

Naja ich denke ich werd mich zumindest wieder mit Assembler auseinander 
setzen muessen da auch ein Teil des BIOS in C und Assembler geschrieben 
ist

Naja ich will herausfinden wie man den Takt bei der Kiste beeinflussen 
kann , also das Ziel ist es eigentlich frueher oder spaeter zu 
uebertakten da es auch andere Server Boards gibt fuer Sockel 1366 mit 
denen man uebertakten kann und das EVGA SR 2 also muss es mit dem Ding 
auf 5520 Chipsatz auch irgendwie drin sein

Kenne sonst niemand der sich damit beschaeftigt

: Bearbeitet durch User
von TomA (Gast)


Lesenswert?

Da wünsche ich dir viel Erfolg dazu und viel Zeit, es zu realisieren. :)

Gruß. Tom

von M. K. (knogle)


Lesenswert?

Eigentlich wuerde ich Leute dafuer suchen und diese bezahlen , jedoch 
finden sich keine qualifizierten Personen weshalb ich wohl selbst ran 
muss :(

von Simon S. (-schumi-)


Lesenswert?

M. K. schrieb:
> Naja ich will herausfinden wie man den Takt bei der Kiste beeinflussen
> kann , also das Ziel ist es eigentlich frueher oder spaeter zu
> uebertakten

Genau das selbe habe ich auch mit eine Doppel-CPU System vor! Allerdings 
X86 (2x Xeon E5450 Quadcore). Und ich habe folgenden Weg gefunden: Auf 
den Motherboards gibt es (soweit ich weis immer) einen PLL-Chip, der die 
ganzen Basistakte zur verfügung stellt. Wenn man Glück hat, ist der via 
I²C angebunden. Jetzt muss man folgendes machen:
 * PLL-Chip finden -> IC bei dem ein 14.3MHz Quarz ganz in der Nähe ist, 
weiteres: http://www.cpufsb.de/FSB.HTM
 * Programm finden mit dem man den Chip verstellen kann. Ein Programm 
für Linux ist z.B. das hier http://lfsb.sourceforge.net/
 * Falls man kein Programm findet: Datenblatt suchen und selbst was 
zusammenkloppen. Da bin ich gerade und habe das Problem, dass zwei 
Register andere Inhalte haben jenachdem ob das Write-Enable-Bit gesetzt 
ist oder nicht oO. Aber ich habe es immerhin schonmal geschafft den Takt 
leicht zu verändern ohne das dass System abstürzt

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

M. K. schrieb:
> jedoch finden sich keine qualifizierten Personen

Möglicherweise interessieren sich die "qualifizierten Personen", die in 
diesem Forum unterwegs sind, einfach nicht für die Aufgabenstellung:

> Mein Ziel ist es lediglich die Geschwindigkeit des QPI Links und den
> Basistakt zu beeinflussen

Wozu soll das gut sein? Ist Dir Dein PC zu stabil, läuft er zu 
zuverlässig?

von M. K. (knogle)


Lesenswert?

Rufus Τ. Firefly schrieb:
> M. K. schrieb:
>> jedoch finden sich keine qualifizierten Personen
>
> Möglicherweise interessieren sich die "qualifizierten Personen", die in
> diesem Forum unterwegs sind, einfach nicht für die Aufgabenstellung:
>
>> Mein Ziel ist es lediglich die Geschwindigkeit des QPI Links und den
>> Basistakt zu beeinflussen
>
> Wozu soll das gut sein? Ist Dir Dein PC zu stabil, läuft er zu
> zuverlässig?

Der Takt ist einfach zu niedrig fuer einige Single Thread Anwendungen

Nachdem ich meinen Review veroeffentlicht habe sind ziemlich viele Leute 
wieder auf den Sockel 1366 und Dual CPU Systemen umgestiegen da 2 Xeon 
X5650 CPUs gebraucht 80 Deollar kosten und ein neues Dual CPU Board 80 
Dollar also 240 Dollar gesammmt

Ich wuerde gerne mehr Leistung rausholen da ich das Board fuer ganz gut 
halte und es bei anderen Server Boards bisher auch umgesetzt wurde 
jedoch das Board damals wohl unbezahlbar war weshalb sich niemand dran 
gewagt hat

Zudem habe ich herausgefunden das der QPI Link bei hoeherem Takt 
limitieren wird

@Rufus : Koenntest du mein Thema moeglicherweise in den PC 
Programmierung Bereich verschieben? 
http://www.mikrocontroller.net/topic/338202#new

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

M. K. schrieb:
> Naja ich denke ich werd mich zumindest wieder mit Assembler auseinander
> setzen muessen da auch ein Teil des BIOS in C und Assembler geschrieben
> ist

Ich verstehe den ganzen Ansatz nicht: schon beim seligen IBM AT, bei dem 
das BIOS noch dokumentiert und kommentiert war, läuft schon ein Teil des 
BIOS im Protected Mode, von dem ein DOS Debug garnichts wissen kann. 
Ganz abgesehen von 32bit-Programmen, memory managment hardware und den 
zahllosen Assembler-Befehlen, die in den Jahrzehnten seither 
dazugekommen sind und die Debug daher garnicht kennen kann. Das ist ja 
so wie wenn ein Neanderthaler mit einer Steinaxt die Funktionsweise 
einer CNC-Maschine analysieren will.

"Resetten" schafft er auch.

Georg

von Georg (Gast)


Lesenswert?

Hallo,

falls jemand das trotzdem noch wissen will: Debug wird beschrieben in 
"The MSDOS Encyclopedia", 1988 Microsoft Press, ISBN 1-55615-174-8.

Da stehen auch viele andere Dinge drin, die man nicht mehr braucht.

Georg

von Jens G. (jensig)


Lesenswert?

Warum nicht gleich das zu rate ziehen:

http://kipirvine.com/asm/debug/Debug_Tutorial.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.