Debug-Mode disablen-richtige Adressen?
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
Debug-Mode disablen-richtige Adressen?
Moin,
ich möchte bei meiner Sagem (1xflash) den Debug-Modus disablen.
Ich habe auch das Problem mit dem Speicherbereich:
SoLaLa schrieb mal:
"also:
bei den 2xflash-boxen sind die untersten 128k in 2x 8x8kByte blöcke aufgeteilt. beim debugenablen werden nur pro flash die ersten beiden sektoren beschrieben,
also 2 mal 2x8k=4x8k=32k=10000000 bis 10007FFF
bei den 28F640 sind die sektoren anders: voll-symmetrische sektoren gleicher größe (jeder sektor ist 128kByte groß, egal ob word oder byteadressiert)
das bedeutet, daß die erase operation fehlschlug, weil nur 32k gelöscht werden sollten, aber der block 128k groß ist. du mußt also das ganze script ändern (n script is das ja gar nicht ... also alles manuell tippen),
die ersten 128k ins RAM kopieren, ändern, 10000000 bis 1001FFFF unprotecten, und dann die geänderten kompletten 128k wieder zurückschreiben, das sollte hinhauen. "
Sind die folgenden Schritte richtig?
md 10000904
cp 10000000 01000000 20000
nm 01000904
protect off 10000000 1001ffff
erase 10000000 1001ffff
cp 01000000 10000000 20000
cmp 01000000 10000000 20000
protect on all
reset
williwucher36
ich möchte bei meiner Sagem (1xflash) den Debug-Modus disablen.
Ich habe auch das Problem mit dem Speicherbereich:
SoLaLa schrieb mal:
"also:
bei den 2xflash-boxen sind die untersten 128k in 2x 8x8kByte blöcke aufgeteilt. beim debugenablen werden nur pro flash die ersten beiden sektoren beschrieben,
also 2 mal 2x8k=4x8k=32k=10000000 bis 10007FFF
bei den 28F640 sind die sektoren anders: voll-symmetrische sektoren gleicher größe (jeder sektor ist 128kByte groß, egal ob word oder byteadressiert)
das bedeutet, daß die erase operation fehlschlug, weil nur 32k gelöscht werden sollten, aber der block 128k groß ist. du mußt also das ganze script ändern (n script is das ja gar nicht ... also alles manuell tippen),
die ersten 128k ins RAM kopieren, ändern, 10000000 bis 1001FFFF unprotecten, und dann die geänderten kompletten 128k wieder zurückschreiben, das sollte hinhauen. "
Sind die folgenden Schritte richtig?
md 10000904
cp 10000000 01000000 20000
nm 01000904
protect off 10000000 1001ffff
erase 10000000 1001ffff
cp 01000000 10000000 20000
cmp 01000000 10000000 20000
protect on all
reset
williwucher36
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
Hi williwucher36!
Also ich hab es bei einer Sagem letztens so gemacht:
(allerdings erst NACHTRÄGLICH(!) aufgeschrieben.....)
VORSICHT! ICH ÜBERNEHME KEINE GARANTIE!
Auf diesem Gebiet sind wohl SoLaLa, McClean, tmbinc, derget .... die "fittesten".
Also vor dem probieren, besser mal auf ihre Kommentare warten
Es handelt sich um ein angepasstes Original von McClean (c) bzw. derget (c). ( http://www.noernet.de/dbox2/howto/debugdisableFAQ.txt )
Ich hoffe das ist O.K. Falls nein: bitte Nachricht.
-->
NOCHMAL: KEINE FUNKTIONSGARANTIE
UND JETZT SCHLAGT MICH WENNS FALSCH IST *duck*
Also ich hab es bei einer Sagem letztens so gemacht:
(allerdings erst NACHTRÄGLICH(!) aufgeschrieben.....)
VORSICHT! ICH ÜBERNEHME KEINE GARANTIE!
Auf diesem Gebiet sind wohl SoLaLa, McClean, tmbinc, derget .... die "fittesten".
Also vor dem probieren, besser mal auf ihre Kommentare warten
Es handelt sich um ein angepasstes Original von McClean (c) bzw. derget (c). ( http://www.noernet.de/dbox2/howto/debugdisableFAQ.txt )
Ich hoffe das ist O.K. Falls nein: bitte Nachricht.
-->
Hat bei mir funktioniert!Änderung für SAGEM-Receiver!
Die vorgehensweise nach http://www.noernet.de/dbox2/howto/debugdisableFAQ.txt ist nicht ohne weiteres auf eine SAGEM (b.z.w andere 1xIntel Chips) anwendbar.
Allgemeine Vorgehensweise:
Ein teil des Bootloaders wird ins RAM kopiert. Dort wird die Speicherstelle an der die Variable "Product?"
gespeichert ist verändert. Dannach wird dieser Teil das Flashs gelöscht und durch die veränderte Version
im RAM überschrieben.
Beschreibung:
1. Ihr lasst Eure DBox mit dem PPCBoot hochfahren und brecht den Autoboot dann durch Drücken von "Enter"
ab. Es erscheint dann:
dbox2-ppcboot>
2. Ihr braucht die Speicherstelle, an der Product? abgespeichert ist. Dieser Wert wurde beim Debugmode-
enablen auf der seriellen Konsole angezeigt.
-> DebugEnabler (c) tmbinc, gillem +(sagem/13,amd,philips) 1.8beta
-> bl-version : 1.2
-> product? at : 10000904 (ist der aktuellen dBox entsprechend anzupassen, bei "meiner" Sagem mit BL1.2 wars 10000904)
-> current state : locked
-> flashrom type : 2x16 bit? no, 1x16 bit? yes. vendor: INTEL
-> unprotecting : OK!
-> flashing NOW : Done!
->
-> Please reset now!
Falls Ihr kein Log mehr davon habt, könnt Ihr den gleichen Vorgang wie zum Debugmode-enablen nochmal
durchführen. In meiner Beschreibung werde ich den Speicherplatz 10000904 verwenden. Ihr müsst also
die nachfolgenden Zeilen Euren Werten gemäß anpassen.
3. Zur Sicherheit schaut Ihr Euch mal den Speicherbereich an.
dbox2-ppcboot> md 10000904
-> 10000904: 00000000 00000000 ffffffff 00000000 ................
An der genannten Stelle sollte wie hier 00000000 stehen.
4. Jetzt wird ein Teil des Bootloaders ins RAM kopiert. Der 10000000-Bereich ist das Flash,
als RAM-Bereich wählen wir 01000000. Wir kopieren 8000 Longs.
dbox2-ppcboot> cp.l 10000000 01000000 8000
5. Im Speicher wird nun die Product? auf true gesetzt. Da wir im Speicher ändern wollen die
entsprechend richtige Speicherstelle benutzen (Product? = 10000904 --> 01000904)
dbox2-ppcboot> nm 01000904
-> 01000904: 00000000 ?
Jetzt gebt Ihr ffffffff ein. Es erscheint wieder der gleiche Prompt aber mit Eurem neuen Wert.
Mit Strg+C abbrechen.
6. Um das Flash löschen zu können, muss vorher die Protection ausgeschaltet werden. (Also den Schreibschutz der Flashbausteine deaktivieren, genau so, wie beim debug-enable!)
dbox2-ppcboot> protect off 10000000 1001ffff
7. !!!ACHTUNG!!! Wenn Ihr hier fortfahrt gibt es kein zurück mehr. Bis zu diesem Schritt könnt Ihr es
Euch nochmal anders überlegen und einfach abschalten. Wenn Ihr also sicher seid, dann löschen wir jetzt
den entsprechenen Flashbereich. Die Jumper müssen gesetzt sein (wie für Debugmode-enablen).
dbox2-ppcboot> erase 10000000 1001ffff
Jetzt auf keinen Fall mehr Auschalten bevor Ihr fertig seid. Hoffentlich gibts kein Stromausfall
8. Nun wird der veränderte Speicherinhalt wieder an seinen ursprünglichen Platz kopiert.
dbox2-ppcboot> cp.l 01000000 10000000 8000
Es kann nun passieren, dass eine Fehlermeldung erscheint. Keine Sorge, das macht nichts.
9. Vergleichen, ob alles korrekt kopiert wurde.
dbox2-ppcboot> cmp 01000000 10000000 8000
Hier sollte jetzt aber unbedingt eine Bestätigung stehen. Wenn nicht wiederholt besser ab Schritt 6 nochmal.
10. Flash-Protection wieder anschalten.
dbox2-ppcboot> protect on all
11. So, jetzt kommt die Sekunde der Wahrheit Ihr könnt jetzt wie box reseten. Wenn alles ok
ist, bootet die Box jetzt ohne Debugmode.
dbox2-ppcboot> reset
NOCHMAL: KEINE FUNKTIONSGARANTIE
UND JETZT SCHLAGT MICH WENNS FALSCH IST *duck*
Zuletzt geändert von zexma am Montag 23. September 2002, 12:25, insgesamt 6-mal geändert.
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
@ williwucher36:williwucher36 hat geschrieben:@zexma
Also muss ich 8000 Longs kopieren.
Ich hätte 20000 Longs genommen.
Wenn es bei Dir ging, ist ja alles in Ordnung. Probiere ich heute Abend mal aus.
Hoffentlich funktioniert es?
Ich gebe mal einen Statusbericht ab.
Bis denn.
williwucher36
Wie gesagt: Die Dokumentation erfolgte NACHTRÄGLICH alles ohne GEWÄHR! *sichverkriechundindeckunggeh*
Bitte warte noch auf SoLaLa (ist ja mittlerweile SEIN Fachgebiet ).
So wie ich ihne kenne (virtuell), wird er I.d.R. früher oder später hier vorbei schauen. Schliesslich heisst das Topic ja "Debug-Mode...".
Da kann er gar nicht anders...ist bei Ihm genetisch programmiert.... *grins*
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
-
- Tuxboxer
- Beiträge: 6119
- Registriert: Mittwoch 3. April 2002, 00:32
hihi, hei leuts, bin schon da
ich hatte damals in der tat quasi was überdimensioniertes gepostet,
wegen der syntax dec cp-befehls
wenn einfach nur cp ohne suffix cp.l oder cp.b oder cp.w gesendet wird, dann sind es longs also 4 byte.
gut, das da oben hat dropsdem funktioniert, nur daß halt noch n bischen von dem image mitkopiert worden ist, macht ja nix.
richtig ist aber, daß die 640er intelflashs 128k große sektoren haben und daß es deshalb nicht ausreicht die ersten 32kb zu flashen. das gibt dann einen "sektor out of bounds" fehler.
außerdem ist von entscheidender bedeutung die richtige speicheradresse zu ändern (die wo ie product? variable drinsteht) das muß nicht 10000904 sein, die adressen sind in den verschiedenen bootloaderversionen unterschiedlich.
korrekterweise (ich nehm jetzt mal extra cp.l damit man weiß worums geht) müßte dann das ganze so aussehen:
md 10000904 <---hier die korrekte adresse der product? benutzen
cp.l 10000000 01000000 8000
nm 01000904 <--- hier dann FFFFFFFF als neuen wert festlegen
-schreibschutz aufheben
protect off 10000000 1001ffff
erase 10000000 1001ffff
cp.l 01000000 10000000 8000
cmp 01000000 10000000 8000
protect on all
reset
die ganze verwirrung um die adrssen und die längen der zu kopierenden blöcke kommt eigentlich nur von diesen blöden 28F640.
denn bis dahin wurden auch bei dergets altem howto ja nur 2000 longs kopiert, das funktionierte immer einwandfrei, bis die 640er dann die kompletten 128k also 8000 longs sektorgröße geflasht haben wollten.
damit nun das howto wieder allgemingültig bleibt wurde das ganze geändert, so daß jetzt auch bei den 2xflash boxen 128k geflasht werden, obwohl es dort garnicht nötig ist
so, nochmal zu Zexmas angepaßter version: die ist so schon ok, nur n kleiner tippselfehler:
und nochmal zum verständnis: das sind NICHT achttausend sondern hex 8000 longs also insgesamt 131072 byte, dann paßt das auch wieder mit der sektorengröße. Alle angaben sind in hex!
zusammengefaßt kann ich nur sagen: lieber viel zu viel kopieren als ein einziges mal zu wenig (der erase befehl löscht auf jeden fall 128k, wenn die erstmal weg sind, dann muß da auch 128k wieder rein, wenn man zuviel kopiert, dann schadets nicht, aber wenn man zu wenig kopiert, dann ist es aus)
ich hatte damals in der tat quasi was überdimensioniertes gepostet,
wegen der syntax dec cp-befehls
wenn einfach nur cp ohne suffix cp.l oder cp.b oder cp.w gesendet wird, dann sind es longs also 4 byte.
gut, das da oben hat dropsdem funktioniert, nur daß halt noch n bischen von dem image mitkopiert worden ist, macht ja nix.
richtig ist aber, daß die 640er intelflashs 128k große sektoren haben und daß es deshalb nicht ausreicht die ersten 32kb zu flashen. das gibt dann einen "sektor out of bounds" fehler.
außerdem ist von entscheidender bedeutung die richtige speicheradresse zu ändern (die wo ie product? variable drinsteht) das muß nicht 10000904 sein, die adressen sind in den verschiedenen bootloaderversionen unterschiedlich.
korrekterweise (ich nehm jetzt mal extra cp.l damit man weiß worums geht) müßte dann das ganze so aussehen:
md 10000904 <---hier die korrekte adresse der product? benutzen
cp.l 10000000 01000000 8000
nm 01000904 <--- hier dann FFFFFFFF als neuen wert festlegen
-schreibschutz aufheben
protect off 10000000 1001ffff
erase 10000000 1001ffff
cp.l 01000000 10000000 8000
cmp 01000000 10000000 8000
protect on all
reset
die ganze verwirrung um die adrssen und die längen der zu kopierenden blöcke kommt eigentlich nur von diesen blöden 28F640.
denn bis dahin wurden auch bei dergets altem howto ja nur 2000 longs kopiert, das funktionierte immer einwandfrei, bis die 640er dann die kompletten 128k also 8000 longs sektorgröße geflasht haben wollten.
damit nun das howto wieder allgemingültig bleibt wurde das ganze geändert, so daß jetzt auch bei den 2xflash boxen 128k geflasht werden, obwohl es dort garnicht nötig ist
so, nochmal zu Zexmas angepaßter version: die ist so schon ok, nur n kleiner tippselfehler:
da muß für sagem 1xi stehen: wir kopieren 8000 longs.4. Jetzt wird ein Teil des Bootloaders ins RAM kopiert. Der 10000000-Bereich ist das Flash,
als RAM-Bereich wählen wir 01000000. Wir kopieren 2000 Longs.
dbox2-ppcboot> cp 10000000 01000000 8000
und nochmal zum verständnis: das sind NICHT achttausend sondern hex 8000 longs also insgesamt 131072 byte, dann paßt das auch wieder mit der sektorengröße. Alle angaben sind in hex!
zusammengefaßt kann ich nur sagen: lieber viel zu viel kopieren als ein einziges mal zu wenig (der erase befehl löscht auf jeden fall 128k, wenn die erstmal weg sind, dann muß da auch 128k wieder rein, wenn man zuviel kopiert, dann schadets nicht, aber wenn man zu wenig kopiert, dann ist es aus)
never change a running system
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
@williwucher36
@SoLaLa
Da bin ich ja froh, dass obiges nicht ALLES Käse war
(Denn sonst hätte ich mich lieber an meine eigene Signatur halten sollen *puh*)
Habe entsprechend SoLaLa es "Bug-Report" die Änderungen/Fehler oben eingepflegt/korrigiert und markiert.
Damit sollte also williwucher36 es "De-debuggen" (oder besser dem debug-disablen) nichts mehr im Weg stehen.
Damit warten wir dann auf williwucher36 es
@SoLaLa
Da bin ich ja froh, dass obiges nicht ALLES Käse war
(Denn sonst hätte ich mich lieber an meine eigene Signatur halten sollen *puh*)
Habe entsprechend SoLaLa es "Bug-Report" die Änderungen/Fehler oben eingepflegt/korrigiert und markiert.
Damit sollte also williwucher36 es "De-debuggen" (oder besser dem debug-disablen) nichts mehr im Weg stehen.
Damit warten wir dann auf williwucher36 es
Ich gebe mal einen Statusbericht ab.
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
So, leider bekomme ich meine Box nicht in den Urzustand.
Folgendes Problem:
dbox2-ppcboot> protect off 10000000 1001ffff
.
Un-Protected 1 sectors
dbox2-ppcboot> erase 10000000 1001ffff
Erase Flash from 0x10000000 to 0x1001ffff
sector 0 ....erase failed: a800a8
Erased 1 sectors
Die Box hat wahrscheinlich ein Hardware-Problem. Deswegen tausche ich sie bei Premiere um. Aber wenn sie den Debug-Modus sehen...
Naja, war ein Versuch wert.
Vielen Dank für die Hilfe.
williwucher36
Folgendes Problem:
dbox2-ppcboot> protect off 10000000 1001ffff
.
Un-Protected 1 sectors
dbox2-ppcboot> erase 10000000 1001ffff
Erase Flash from 0x10000000 to 0x1001ffff
sector 0 ....erase failed: a800a8
Erased 1 sectors
Die Box hat wahrscheinlich ein Hardware-Problem. Deswegen tausche ich sie bei Premiere um. Aber wenn sie den Debug-Modus sehen...
Naja, war ein Versuch wert.
Vielen Dank für die Hilfe.
williwucher36
-
- Tuxboxer
- Beiträge: 6119
- Registriert: Mittwoch 3. April 2002, 00:32
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
-
- Tuxboxer
- Beiträge: 6119
- Registriert: Mittwoch 3. April 2002, 00:32
jo, probiers nochmal mit schreibschutz aufheben.
denn: die philips hatte wahrscheinlich 2xintel flashs drauf, und die sind dierekt nach dem starten der box erstmal nicht schreibgeschützt (weil ja das flash gerade n reset hinter sich hat), deshalb funktioniert da das disabeln einfach so. die sagem 1xi hat aber ja n anderes flash und bei dem ist der schreibschutz nicht resetabhängig, der muß daher per brücke deaktiviert werden.
ne halbwegs einfache idee hätt ich auch gerad noch:
schreibschutz disabeln, und dann setenv product? -1 probieren, durchaus möglich daß das dann klappt (dabei wird natürlich impliziert, daß der setenv-befehl den richtigen flash-algo für 1xi benutzt und sich von alleine an die sektorgrenzen hält, sollte aber so sein, funktioniert ja bei den direkten befehlen fürs flash auch)
zum verständnis: da ist ne speicherstelle in der nullen drinstehen, und da sollen einsen wieder rein. dazu ist es notwendig nen erase und n neues flashen des zugehörigen sektors durchzuführen. und dazu MUß bei den 1xi boxen der schreibschutz aufgehoben werden, sonst funktioniert weder die eine noch die andere möglichkeit.
denn: die philips hatte wahrscheinlich 2xintel flashs drauf, und die sind dierekt nach dem starten der box erstmal nicht schreibgeschützt (weil ja das flash gerade n reset hinter sich hat), deshalb funktioniert da das disabeln einfach so. die sagem 1xi hat aber ja n anderes flash und bei dem ist der schreibschutz nicht resetabhängig, der muß daher per brücke deaktiviert werden.
ne halbwegs einfache idee hätt ich auch gerad noch:
schreibschutz disabeln, und dann setenv product? -1 probieren, durchaus möglich daß das dann klappt (dabei wird natürlich impliziert, daß der setenv-befehl den richtigen flash-algo für 1xi benutzt und sich von alleine an die sektorgrenzen hält, sollte aber so sein, funktioniert ja bei den direkten befehlen fürs flash auch)
zum verständnis: da ist ne speicherstelle in der nullen drinstehen, und da sollen einsen wieder rein. dazu ist es notwendig nen erase und n neues flashen des zugehörigen sektors durchzuführen. und dazu MUß bei den 1xi boxen der schreibschutz aufgehoben werden, sonst funktioniert weder die eine noch die andere möglichkeit.
never change a running system
-
- Neugieriger
- Beiträge: 7
- Registriert: Mittwoch 18. September 2002, 10:14
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
Grmpfwilliwucher36 hat geschrieben:Moin, es hat gefunzt. Sogar mit der einfachen Variante.
Warum kompliziert wenn es auch einfach geht? *heul*
Naja, zuerst mal Herzlichen Glühstrumpf,williwucher36 hat geschrieben: Vielen Dank nochmal für die Hilfe.
vielleicht hift es ja noch Anderen.
Zuletzt geändert von zexma am Freitag 20. September 2002, 09:36, insgesamt 1-mal geändert.
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
Mhh, nicht genaugenug gelesenwilliwucher36 hat geschrieben:Den Schreibschutz habe ich nicht deaktiviert.
Die leichte Methode funktioniert leider nicht.
williwucher36
Aber den gleichen Fehler, hatte ich seinerzeit bei der Sagem Box auch gemacht. *schäm*
6. Um das Flash löschen zu können, muss vorher die Protection ausgeschaltet werden.
-
- Tuxboxer
- Beiträge: 6119
- Registriert: Mittwoch 3. April 2002, 00:32
hi zexma, wo du das da jetzt gerade nochmal gepostet hast fällt mir auf daß diese wortspielerei zum überlesen/vergessen verführt6. Um das Flash löschen zu können, muss vorher die Protection ausgeschaltet werden.
wer da nicht 100% fit ist liest irgendwo "protection ausschalten" und irgendwo "protect off 10000000...." und denkt sich "hihi, fein..."
und tappt genau in diese Falle.
Vielleicht sollte man das HowTo n bissi eindeutschen und explizit auf "schreibschutz der flashbausteine deaktivieren" verweisen
never change a running system
-
- Tuxboxer
- Beiträge: 2067
- Registriert: Mittwoch 6. März 2002, 15:29
@SoLaLa:...wer da nicht 100% fit ist liest irgendwo "protection ausschalten" und irgendwo "protect off 10000000...." und denkt sich "hihi, fein..."
und tappt genau in diese Falle.
Vielleicht sollte man das HowTo n bissi eindeutschen und explizit auf "schreibschutz der flashbausteine deaktivieren" verweisen...
Da hast Du Recht. Ich habs oben nochmal erweitert.
-
- Neugieriger
- Beiträge: 19
- Registriert: Sonntag 17. März 2002, 15:50
-
- Contributor
- Beiträge: 1608
- Registriert: Samstag 28. Juli 2001, 00:00
-
- Oberlamer, Administrator & Supernanny
- Beiträge: 10532
- Registriert: Samstag 13. Juli 2002, 10:49