Der temporäre Debug

Domestos & Derivate
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Der temporäre Debug

Beitrag von MHC »

Der temporäre Debug

So Leute jetzt kommt mal wieder was neues ... 8)

Ihr wisst ja nun alle, dass beim sogenannten mhc_debug keine Rückmeldung erfolgt,
da der Loader ja noch nicht im Debug ist. Es wäre aber schön etwas zu sehen ...

Fakt ist, dass die 'Product?'-Variable im RAM 'abgelegt' wird.
Wenn man nun im RAM diese Variable auf 0x00000000 ändert, wäre der Loader im Debug.
Aber nur temporär, da beim nächsten Start die Variable wieder aus dem Flash
geholt wird ...

Aber wie ändere ich nun das RAM ?? .... ganz einfach ...
Anlass war das rumprobieren mit SRecord ... damit kann ja ein Programm
über die serielle Schnittstelle ins RAM geladen werden ... und das brachte
mich auf die Idee:
warum nicht einfach die 4Byte der Variable auf 00 setzen ...

Und es geht ...
dazu braucht man nur folgendes Wissen ...
wo befindet sich diese Variable ?? ....
na da ----->
[1.Änderung]
(hab zwar unten die kompletten RAM-Adressen gepostet, aber ich editier die mal hier mit rein ... manche lesen nicht soweit *lol* )

Nokia Bmon 1.0 : 0x029c60
Nokia Bmon 1.2 : 0x029d18
Philips Bmon 1.0 : 0x02a84c
Sagem Bmon 1.0 : 0x029dd8
Sagem Bmon 1.1 : 0x02a9cc
Sagem Bmon 1.2 : 0x02a9cc
Sagem Bmon 1.3 : 0x02ad10

--- ohne Garantie ---

wie man sieht ist es wieder Hardware und Bmon Version abhängig !!!
[/Änderung] :wink:

so wie muss nun der SRecord aussehen ?

S208xxxxxx0000000000 (man beachte ... grosses 'S' !!!)

Bedeutung:

S2
---> Srecord mit 3Byte Adressfeld

08
---> Länge

xxxxxx
---> 3Byte Adressfeld (hier die RAM-Adresse eingeben zb. 029d18 )

00000000
---> 4Byte Datenfeld (also unsere 'Product?'-Variable )

00
---> 1Byte CRC ... hier Absichtlich falsche CRC, damit der Srecord-Download abgebrochen wird


so wie funktioniert das nun ...

1. mhc_Debug bis zum Punkt 'icache' ausführen
2. jetzt dl und [ENTER] tippen (aktiviert SRecord Download)
3. jetzt den Srecord eintippen ... fertig Box ist im Debug (Prompt erscheint)

so beim eintippen muss man folgendes beachten :

1. das S muss gross geschrieben werden
2. bei den Buchstaben der Hexzahlen (a;b;c;d;e;f) ist es egal
3. keine Leerzeichen oder [ENTER] tippen !!
4. die Zeichen werden nicht ge-echo't ... also bei einem Terminalprogramm ohne
Lokal-Echo sieht man nicht was man tippt !!!
Es kann nichts kaputt gehen, da wir nur das RAM ändern ...
Also wenn nach der Meldung vom Loader
"dl: srec chksum error in line 1.
in record xx, calculated xx"
und kein Prompt (dbox2:root> ) erscheint, hat man sich vertippt oder falsche RAM-Adresse genommen ... dann unbedingt Box neu starten und von vorne beginnen ...

Hier mal ein Beispiel von einer Nokia 2xI mit Bmon 1.2 :
Adresse RAM: 0x029d18
log von MHC hat geschrieben: icache
icache is on

dl
S Record Load, offset: 0

S208029d180000000000

dl: srec chksum error in line 1.
in record 0x0, calculated 0x40

dbox2:root> printenv

printenv: config_mem: 0x1000095c
name value default
product?: true false
diag-switch?: false true
auto-boot?: true true
watchdog-reboot?: false false
boot-cmd: boot net flash boot net
intopt: 0x01234567 0x12345678


dbox2:root> setenv product? 0
write sector : 0 Address 0 Size 4000

dbox2:root> printenv

printenv: config_mem: 0x1000095c
name value default
product?: false false
diag-switch?: false true
auto-boot?: true true
watchdog-reboot?: false false
boot-cmd: boot net flash boot net
intopt: 0x01234567 0x12345678
dbox2:root>
Anmerkung:

Für User mit Nokia 2xI und Bmon 1.0 ist dies sehr Vorteilhaft ...
1. Man aktivert den temporären Debug
2. man kann mit 'boot net' nun laden was man will ...
Zuletzt geändert von MHC am Samstag 4. Januar 2003, 03:49, insgesamt 2-mal geändert.
cu
SatBL
Interessierter
Interessierter
Beiträge: 37
Registriert: Mittwoch 22. Mai 2002, 09:06

Beitrag von SatBL »

...wenn ich das richtig verstehe, könnte ich mit SRecord ein Progrämmchen über die Serielle Schnittstelle laden, was auch z.B. Deinen richtigen Debug ausführen könnte, wäre ja einfach genial, oder würde das so nicht funzen?
doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Beitrag von doc »

8) der MHC!

Was hasten morgen vor?? :D :D
Ich habe hier noch Nokia Kabel aus dem Weinachstpaket. Werde mich da mal ransetzten mit deiner neuen Tüftelei! Is ja so eine mit BL 1.0.

Aber morgen is ja erst mal Sylvester.... :wink: :wink:
Dietmar
Senior Member
Beiträge: 8282
Registriert: Mittwoch 10. Oktober 2001, 00:00

Beitrag von Dietmar »

OK, also wir haben uns grad damit gespielt.
Die Methode ist genial. Nur eins brauchts nicht: Den Debug-Mode.
Wenn man mal über die Signaturabfrage raus ist, lädit die Box nach der Methode auch ne Yadd.
Das kippen des product? ist dann gar nicht mehr nötig.

Aber wie gesagt: Genial :)
muck
Neugieriger
Neugieriger
Beiträge: 6
Registriert: Mittwoch 1. Januar 2003, 00:09

Dat klingt ja wirklich lecker.... ;-)

Beitrag von muck »

Hi volks ! Das würde ich gern mit meiner org. BoXX auch mal testen,
da ich abbber noch new hier bin brauche ich einwenige mehr Input :D

Wie schauts mit einem STEP by STEP Guide ? :D

Bin für jede Hilfe dankbarrrrr !!!

thx
muck
muck
Neugieriger
Neugieriger
Beiträge: 6
Registriert: Mittwoch 1. Januar 2003, 00:09

Dat klingt ja wirklich lecker.... ;-)

Beitrag von muck »

Hi volks ! Das würde ich gern mit meiner org. BoXX auch mal testen,
da ich abbber noch new hier bin brauche ich einwenige mehr Input :D

Wie schauts mit einem STEP by STEP Guide ? :D

Bin für jede Hilfe dankbarrrrr !!!

thx
muck
bülo
Interessierter
Interessierter
Beiträge: 47
Registriert: Samstag 5. Januar 2002, 20:30

Beitrag von bülo »

@muck
Hier findest du Dietmar's Howto zur mhc_debug Methode.

Dann machst du alles was in dieser Howto beschrieben ist, bis du an dieser stelle ankommst.
1. mhc_Debug bis zum Punkt 'icache' ausführen
Der rest dann siehe oben ...

PS: nicht vergessen vorher das Betanova OS zu sichern.
muck
Neugieriger
Neugieriger
Beiträge: 6
Registriert: Mittwoch 1. Januar 2003, 00:09

@BÜLO

Beitrag von muck »

thx , guter Link !

Wenn ich es richtig verstanden habe muß ich die Box aber immer
noch aufschrauben .. ??? ;-) Gehts nicht ganz ohne bei einer Philips ??

cu
muck
bülo
Interessierter
Interessierter
Beiträge: 47
Registriert: Samstag 5. Januar 2002, 20:30

Beitrag von bülo »

Du musst beim mhc_debug (wie auch bei allen anderen Methoden) die DBox wegen dem Chip Reset und Schreibschutz disablen aufmachen.

Die einzige Box die man nicht auf schrauben muss (wenn du die Methode ohne Kurzschluss und Softwareupdate abbrechen nimmst), wie du auch in der mhc_debug Howto nachlesen kannst, sind alten Nokias mit einem avia500 Chip bei dieser Box ist vom Werk aus meistens schon der Bootloader ungeschützt.

Ganz Hartgesottene nehmen lange isolierte Nadel und machen die ganze Sache durch das Gitter des Gehäuses, davon würde ich abraten da bei den Philips ganz normale Torxbits langen um sie aufzuschrauben.
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

bülo hat geschrieben:@muck
.
.
Der rest dann siehe oben ...

PS: nicht vergessen vorher das Betanova OS zu sichern.
es ist aber ziemlich schwierig da vorher die BN zu sichern...
das sollte man eher auf hinterher verschieben :wink:
never change a running system
bülo
Interessierter
Interessierter
Beiträge: 47
Registriert: Samstag 5. Januar 2002, 20:30

Beitrag von bülo »

Da hast du recht SoLaLa, ich formulier das mal bessser :)

... nicht vergessen vor dem flashen von "Linux" das Betanova OS zu sichern.
NsM
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Mittwoch 1. Januar 2003, 03:17

Beitrag von NsM »

bülo hat geschrieben:Da hast du recht SoLaLa, ich formulier das mal bessser :)

... nicht vergessen vor dem flashen von "Linux" das Betanova OS zu sichern.
Besser ist das.

Mfg
NsM
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

RAM - Adressen

Beitrag von MHC »

Hi, hier mal die kompletten RAM- Adressen :wink:


Nokia Bmon 1.0 : 0x029c60
Nokia Bmon 1.2 : 0x029d18
Philips Bmon 1.0 : 0x02a84c
Sagem Bmon 1.0 : 0x029dd8
Sagem Bmon 1.1 : 0x02a9cc
Sagem Bmon 1.2 : 0x02a9cc
Sagem Bmon 1.3 : 0x02ad10

--- ohne Garantie --- 8)

ps: thx an obi für die anderen Loader :wink:
cu
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

hallöle MHC :D
sage mal: wie sieht die Syntax bei Srecord genau aus? wie kann man beispielsweise ein Srecord >255 Byte laden?
never change a running system
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

http://www.amelek.gda.pl/avr/uisp/srecord.htm

das da hab ich beim schreiben von ucodex als doku genommen. vielleicht beantwortet das deine frage. :)

gruss,
obi
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

dankäääääää :D (jetzt sagt nich mein "ä" is kaputt...)
never change a running system
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

SoLaLa hat geschrieben:dankäääääää :D (jetzt sagt nich mein "ä" is kaputt...)
Dein "ä" is kaputt .. :lol: :lol: :lol: :lol: :lol:

äh gutes Tool findeste dort
cu
satsepp
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 15. Mai 2002, 08:15

Beitrag von satsepp »

jetzt mal dummgefragt,
würde das temporäre debug-enabeln nicht ausreichen um mittels bootnet und dem bootmanager ein linux zu flashen?
Was hätte das für folgen in Bezug auf "signierte" treiber, die ja dann nicht mehr im OS sind ?????

Spaßeshalber werde ich das bei der nächsten Box mal testen, zuerst kann ja mittels boot-manager und temporärem-debugenabeln ja das OS-Image komplett ausgelesen werden, und beim 2. mal Linux draufgejubelt werden, denke ich zumindest?

Sepp
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Ist es nicht so, daß Linux nur mit aktiviertem Debug-Mode geladen wird?
Weil der Bootloader (oder was auch immer) nur signierte Programme lädt?
Voldemort
Interessierter
Interessierter
Beiträge: 62
Registriert: Mittwoch 7. November 2001, 00:00

Beitrag von Voldemort »

@MHC
Also ich finde Deine Methode einfach Klasse.

Bisher dachte ich dass BR- oder PW-Techniker nur über die Ethernetschnittstelle in der Dbox herumwerkeln können, doch mittlerweile glaube ich dass sie das auch über die Serielle Schnittstelle können.
Wenn ich mir die Strings im Bootlader ansehe drängt sich mir der Gedanke förmlich auf.
Nur kann ich nicht glauben kann dass sie dann irgendwelche Hardware-Flash-Resets mit Nadeln oder so ähnlichem Werkzeug machen müssen.
Die haben da sicher ein Programm das die Kommunikation mit der Dbox über die serielle Schnittstelle beherrscht.

Euch ist sicher schon mal aufgefallen dass wenn ein Nullmodemkabel in der seriellen Schnittstelle eingesteckt ist, und der PC am anderen Ende des Kabels fehlt die Box einfach stehen bleibt?
Im Debugmode für ewig im NonDebugmode nur bis der sehr kurze Timeout vorbei ist.
Hat Sich schon jemand mal Gedanken gemacht warum das wohl so ist?
Klar doch, die Box wartet auf eine Reaktion des PCs.


Auf dem PC braucht man nun nur noch ein Programm das im richtigen Moment z.B. wenn DTR von der Box gesetzt wird auf die richtige Art und Weise antwortet.
Durch setzen von DTR zum Beispiel oder senden einer Zeichenfolge auf TxD, setzen von RI oder was auch immer.
Unter Umständen braucht man auch ein Kabel das vom Standard abweicht

Falls das so funktioniert wie ich denke könnte man dann die Dbox ganz ohne aufschrauben in den Debugmode bringt.

Voldemort
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Voldemort hat geschrieben: Nur kann ich nicht glauben kann dass sie dann irgendwelche Hardware-Flash-Resets mit Nadeln oder so ähnlichem Werkzeug machen müssen.

Euch ist sicher schon mal aufgefallen dass wenn ein Nullmodemkabel in der seriellen Schnittstelle eingesteckt ist, und der PC am anderen Ende des Kabels fehlt die Box einfach stehen bleibt?
Im Debugmode für ewig im NonDebugmode nur bis der sehr kurze Timeout vorbei ist.
Hat Sich schon jemand mal Gedanken gemacht warum das wohl so ist?
Klar doch, die Box wartet auf eine Reaktion des PCs.
...
1. "Die" brauchen ja auch für den Service den Debug nicht zu aktivieren :wink:

2. ... ist das nicht nur bei einer Philips so ? ich hab nur Nokia, da ist es nicht der Fall

3. Abbruch des Boot-Vorganges hat nur Auswirkung, wenn der Debug aktiv ist ...

Die Variable für den 'Debug' heisst ja 'Product?' ... was so in der Art bedeutet --> ist das 'Product' aktiviert, dann lade nur signierte Programme über Netz oder Flash ...
cu
Voldemort
Interessierter
Interessierter
Beiträge: 62
Registriert: Mittwoch 7. November 2001, 00:00

Beitrag von Voldemort »

zu 1. Da hast Du natürlich völlig recht. Es sind sogar Programmteile in der BN-Software enthalten die auf eine Wartung über Ethernet schließen lassen.

zu 2. Ich habe im Netz eine Seite entdeckt da sind zwei Versionen von Nullmodemkabeln abgebildet.
bei der einen (die habe ich) ist an beiden Steckern eine Brücke zwischen CD und DSR
bei der anderen fehlt diese Brücke.
Wenn dein Nullmodemkabel auch diese Brücken hat ist das wohl ein Bug im Philips Bootlader.

zu 3. Woher weist Du das so genau?

Ich wollte ja nur eine Anregung für die weitere "Forschung" geben.
Bei allen Boxen die nur eine serielle Schnittstelle haben ist es so, dass ein Software-Update über die Serielle in die Box muss.
Denken wir uns einfach mal die Ethernetschnittstelle weg.
Die erste Dbox stammt doch von Nokia, und ist eine Abart einer Mediamaster 9xxx
Die hat keine Ethernetschnittstelle. sondern nur eine Serielle.
Auch wenn der Prozessor ein völlig anderer ist und sonst auch alles andere Hardware ist, wird erst mal gekuckt was vom alten Code noch zu verwenden ist.
Auch wenn die heutige Software auf den Dboxen komplett von BR ist, hat Nokia den ersten Prototyp bestimmt komplett mit Sourcecode übergeben.
Und es ist so schwer sich von Code der läuft zu trennen. Da wird abgewandelt und angepasst.
Und Programmteile, vor allem wenn sie nicht wirklich gebraucht werden, bleiben oft im Original drin, man weiß ja nie, ob nicht doch...
Wenn ich mir den Bootlader anschaue so scheint es mir ob alles was man zum Softwareupdate über die serielle Schnittstelle braucht auch da wäre.
Das macht aber nur Sinn wenn das PC-Programm den Bootvorgang abbrechen kann.
Ich zitiere mal meinen Bootlader: "autoboot aborted from terminal"
Diese Meldung kommt wenn ich gleich nach einem Reset eine Taste drücke. Ok die ist auch im Debug mode.
Eine Box die nicht im Debug ist zeigt sich da völlig unbeeindruckt.
Da wird wohl nur eine bestimmte Reihenfolge, ein Passwort halt, zum Ziel führen.

Ist aber vielleicht ist alles nur eine dumme Idee von mir.

Voldemort
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

@Voldemort

Deine Vermutungen sind sehr weit weg von der Realität

vom "Boot for Nokia K2 Board with MPC823. Version 1.0.76"
zum BR-Bmon 1.0 gibt es keinen Zusammenhang ...

von Nokia gabs zwar ne Soft, eben nur ne TEST-Soft, die nicht weiterentwickelt wurde ... die Soft war sehr instabil ...

Und wenn du der Meinung bist, es muss noch was anderes geben, dann
wünsche ich dir viel Glück, bei der Analyse des Loader :wink:
cu
derget
Contributor
Beiträge: 1608
Registriert: Samstag 28. Juli 2001, 00:00

Beitrag von derget »

mhc : mal wieder respekt :)
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

*nach oben hol* 8)
cu