Debug-Mode disablen-richtige Adressen?

Domestos & Derivate
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Debug-Mode disablen-richtige Adressen?

Beitrag von williwucher36 »

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
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

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 :wink:
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.

-->
Ä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
Hat bei mir funktioniert!
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.
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Beitrag von williwucher36 »

@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
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

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
@ williwucher36:
Wie gesagt: Die Dokumentation erfolgte NACHTRÄGLICH alles ohne GEWÄHR! *sichverkriechundindeckunggeh*
Bitte warte noch auf SoLaLa (ist ja mittlerweile SEIN Fachgebiet :wink: ).
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*
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

williwucher36 hat geschrieben:@zexma
Ich hätte 20000 Longs genommen.
Mhh..
Warum willst Du 20000 (zwanzigtausend) Longs kopieren?
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Beitrag von williwucher36 »

...
Wenn man keine Ahnung hat - einfach mal Fresse halten!
Mach ich jetzt mal nicht.

So war meine falsche Überlegung:

128 * 1024 = 131072 in HEX = 20000

Ist natürlich Blödsinn, da 1 Long(Word)? = 4, oder?

Also richtig ist denn:

128 /4 = 32 * 1024 = 32768 in HEX = 8000

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

Beitrag von SoLaLa »

hihi, hei leuts, bin schon da :D
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:
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
da muß für sagem 1xi stehen: wir kopieren 8000 longs.
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
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

@williwucher36
@SoLaLa
Da bin ich ja froh, dass obiges nicht ALLES Käse war :roll:
(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" :o (oder besser dem debug-disablen) nichts mehr im Weg stehen.

Damit warten wir dann auf williwucher36 es
Ich gebe mal einen Statusbericht ab.
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Beitrag von williwucher36 »

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
done
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
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

äääähm,
hast den schreibschutz vor dem protect off und dem erase deaktiviert?

und was ist eigentlich mit der "leichten" mehtode mit
"setenv product? -1"
hast das eigentlich schon probiert?
never change a running system
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Beitrag von williwucher36 »

Den Schreibschutz habe ich nicht deaktiviert.
Bei einer Phillips-Box hat es auch so geklappt. Das kann ich ja noch versuchen. Aber wieso brauchte ich es bei der Phillips nicht durchführen?

Die leichte Methode funktioniert leider nicht.

Bis denn.

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

Beitrag von SoLaLa »

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.
never change a running system
williwucher36
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 18. September 2002, 10:14

Beitrag von williwucher36 »

Moin, es hat gefunzt. Sogar mit der einfachen Variante.

Vielen Dank nochmal für die Hilfe.
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

williwucher36 hat geschrieben:Moin, es hat gefunzt. Sogar mit der einfachen Variante.
Grmpf :o
Warum kompliziert wenn es auch einfach geht? *heul*
williwucher36 hat geschrieben: Vielen Dank nochmal für die Hilfe.
Naja, zuerst mal Herzlichen Glühstrumpf,
vielleicht hift es ja noch Anderen. :wink:
Zuletzt geändert von zexma am Freitag 20. September 2002, 09:36, insgesamt 1-mal geändert.
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

williwucher36 hat geschrieben:Den Schreibschutz habe ich nicht deaktiviert.
Die leichte Methode funktioniert leider nicht.
williwucher36
Mhh, nicht genaugenug gelesen :o :lol:
Aber den gleichen Fehler, hatte ich seinerzeit bei der Sagem Box auch gemacht. :oops: *schäm*
6. Um das Flash löschen zu können, muss vorher die Protection ausgeschaltet werden.
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

6. Um das Flash löschen zu können, muss vorher die Protection ausgeschaltet werden.
hi zexma, wo du das da jetzt gerade nochmal gepostet hast fällt mir auf daß diese wortspielerei zum überlesen/vergessen verführt :D

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 :roll:
never change a running system
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

...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...
@SoLaLa:
Da hast Du Recht. Ich habs oben nochmal erweitert.
commanderrobot
Neugieriger
Neugieriger
Beiträge: 19
Registriert: Sonntag 17. März 2002, 15:50

Beitrag von commanderrobot »

Wie ist das denn bei 2xAMD Sagem?
Muß ich da auch 8000 Longs kopieren?

Danke, CR
derget
Contributor
Beiträge: 1608
Registriert: Samstag 28. Juli 2001, 00:00

Beitrag von derget »

war zu faul alles zu lesen

aber

bei jeder sagem 1xI kann man debug diablen im Bootloader

wie es im debugdisable faq steht

bei 2xAmd auch

bei 2xIntel auch

also warum macht ihr euch über die addressen im ppcboot gedanken ?
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Neugier? ;)
There are 10 types of people in the world: those who know binary and those who don't