[Problem gelöst, FBF neu geflasht über JTag] FBF7050, adam2 Bootloader deadlock?

feadi

Neuer User
Mitglied seit
25 Jan 2005
Beiträge
82
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich hatte eine funktionierende 7050, bis:
- umstellung auf annex B
- update auf 14.04.15
- umstellung auf annex A
- dann habe ich "nvi /proc/avalanche/env" ausgeführt (Jetzt weiss auch ich das man sowas nicht machen sollte :()
- neustart

In diesem Zustand wollte die Box nicht mehr hochfahren, also habe ich mir die serielle Verbindung aufgebaut. Damit konnte ich sehen das:
- der Bootloader startet
- der Linuxkernel gestartet wird
- die Box plötzlich neu startet
- danach startet der Bootloader wieder neu, und so weiter....


Okay dachte ich, und probierte das hier aus: http://www.wehavemorefun.de/fritzbo...ry_Defaults_.C3.BCber_ADAM2_wieder_herstellen
Es ist alles wie in der Anleitung beschrieben passiert, bis auf eine kleine Sache: bei mir wurde mtd3 UND mtd4 gelöscht.

Seitdem ist die Situation noch schlimmer geworden: der Bootvorgang bleibt viel früher hängen. Der ewige Neustart bleibt auch aus. Nun kann ich über die serielle Verbindung nurnoch das hier sehen:

Code:
 ADAM2 Revision TI:0.18.01 AVM: Version:97
 (C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
 (C) Copyright 2003 Telogy Networks, Inc.
 (C) Copyright 2003-2004 AVM
 change 'mtd0' to 0x900C0000,0x903C0000
 change 'mtd1' to 0x90010000,0x900C0000
 change 'mtd2' to 0x90000000,0x90010000
 change 'mtd3' to 0x903C0000,0x903E0000
 change 'mtd4' to 0x903E0000,0x90400000

So bleibt die Box stehen, ich habe ca. 5 Stunden gewartet, doch es tut sich nichts. An den adam2-Prompt gelange ich auch nicht mehr.

Ich habe tagelang gegoogelt, konnte jedoch nichts über diesen Zustand erfahren. Ich glaube es handelt sich "nur" um einen Deadlock-Zustand, der Bootloader scheint noch zu funktionieren.

Jetzt möchte ich die Box wieder zum Booten bewegen, habe aber keine Ahnung mehr was ich noch probieren könnte.

Bitte helft mir! ;)

Gruß, Feadi
 
Zuletzt bearbeitet:
wenn du eine serielle konsole dran hast, kannst du den bootloader problemlos inerhalb der ersten 5
sekunden beim booten mit beliebigen tastendruck anhalten. dein problem ist vermutlich das fehlende
environment (du hast ja mtd3 und 4 gelöscht). das musst du jetzt von hand über adam2 wieder
instandsetzen. dann läuft die box wieder.
Code:
ADAM2 Revision TI:0.18.01 AVM: Version:97
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
(C) Copyright 2003-2004 AVM

AVM_Ar7 >
Press any key to abort OS load, or wait 5 seconds for OS to boot...

AVM_Ar7 > help
         Commands               Description
         --------               -----------
         h/help commands supported
          memop Memory Optimization
       setmfreq configures/dumps frequencies
             dm Dump memory at <address>
         setmac Change memory at <address> <value>
          erase Erase Flash except Adam2 Kernel and Env space
       printenv Displays Env. Variables
         setenv Sets Env. variable <var> with a value <val>
       unsetenv Unsets the Env. variable <var>
         fixenv Defragment for Env. space
             go Loads the image starting at address <mtd1>
AVM_Ar7 > printenv
HWRevision            76
ProductID             Fritz_Box_FON_2_WLAN
SerialNumber          0000000000000000
annex                 B
autoload              yes
bootloaderVersion     0.18.01
bootserport           tty0
bluetooth             00:04:0E::xx:xx:xx
cpufrequency          150000000
firstfreeaddress      0x947310d8
firmware_version      avm
firmware_info         14.04.01
flashsize             0x00400000
maca                  00:04:0E:xx:xx:xx
macb                  00:04:0E::xx:xx:xx
macwlan               00:04:0E::xx:xx:xx
macdsl                00:04:0E::xx:xx:xx
memsize               0x02000000
modetty0              38400,n,8,1,hw
modetty1              38400,n,8,1,hw
mtd0                  0x900C0000,0x903C0000
mtd1                  0x90010000,0x900C0000
mtd2                  0x90000000,0x90010000
mtd3                  0x903C0000,0x903E0000
mtd4                  0x903E0000,0x90400000
my_ipaddress          192.168.178.2
prompt                AVM_Ar7
ptest
reserved              00:04:0E::xx:xx:xx
req_fullrate_freq     125000000
sysfrequency          125000000
urlader-version       97
usb_board_mac         00:04:0E::xx:xx:xx
usb_rndis_mac         00:04:0E::xx:xx:xx
usb_device_id         0x3D00
usb_revision_id       0x0200
usb_device_name       USB DSL Device
usb_manufacturer_name  AVM
wlan_key              31313131313131313131313131
AVM_Ar7 >
micha
 
Zuletzt bearbeitet:
Hallo Supermicha,

leider komme ich nichtmehr an den Adam2-Prompt, diese Meldung fehlt auch: "Press any key to abort OS load, or wait 5 seconds for OS to boot..."

Wie oben schon geschrieben sind das die einzigsten Ausgaben meiner Box:

Code:
ADAM2 Revision TI:0.18.01 AVM: Version:97
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
(C) Copyright 2003-2004 AVM
change 'mtd0' to 0x900C0000,0x903C0000
change 'mtd1' to 0x90010000,0x900C0000
change 'mtd2' to 0x90000000,0x90010000
change 'mtd3' to 0x903C0000,0x903E0000
change 'mtd4' to 0x903E0000,0x90400000

Danach geht es nichtmehr weiter.

Gruß, Feadi
 
wenn das die einzigen ausgaben auf der seriellen konsole sind hast du wohl einen briefbeschwerer :-(
ich hab mal was von einen jtag interface auf der rückseite gelesen aber leider auch keine nähere infos
 
Hallo,

hier hat jemand exakt das gleiche Problem: http://www.ip-phone-forum.de/showthread.php?t=91786

Es sieht wirklich so aus, als wäre das eine _SEHR_ gefährliche Methode. :(

Gibt es jemand der - durch löschen von MTD3 und MTD4 - seine Box NICHT kaputtgemacht hat?

Gruß, Feadi

P.S. Wer hat denn bitte einen sooooo hochtechnisierten Briefbeschwerer? ;)
 
Hallo,

ich habs geschafft! :) :) :)

Ich habe meine FBF7050 über JTag wiederbelebt!

Juhuuuuuu!

Feadi
 
Na dann her mit den Infos! :) Wie hast dus gemacht, wo hast du was angeschlossen usw.


Wer weiß, wann mans braucht.
 
Hi,

ich mach in den nächsten Tagen eine Anleitung. Wenn die fertig ist, melde ich mich wieder.

Gruß, Feadi
 
Eine Anleitung zum JTAG-Recovery, das ist doch mal was!

Warte gespannt auf deine Erfahrungen.
 
Hallo,

die erste Version der Anleitung ist online unter: feadispace.funpic.de

Jetzt hätte ich gern: Kritik / Anregungen / Verbesserungsvorschläge / ...

Weiss jemand ob das Disclaimer ausreicht? Ich möchte nicht haften müssen wenn der kleine Peter die FBF vom Pappa kaputtmacht ;)

Gruß, Feadi
 
Hi.
Supi Anleitung, hoffentlich brauch ich die nie. ;-)
Warum verlinkst du nicht und verweist nur auf Google?
Kannst du vielleicht noch eine Liste der nötigen Hardware dazuhängen. Am besten gleich mit Bestellnummer von Reichelt oder so.
In dem Quadrat ist noch ein Platz frei. Mach doch da noch ein Bild mit angeschlossenem Interface hin.
Vielleicht solltest du versuchen mit dem Autor Kontakt aufzunehmen. Oder gibt es eventuell den Source des Proggies?

MfG Oliver

edit: Ah, hier das sieht sehr gut aus. Da können wir uns ja eine eigene Version bauen bzw. die Version anpassen.
 
olistudent schrieb:
Warum verlinkst du nicht und verweist nur auf Google?
Damit wollte ich "dead-links" vermeiden. Ich denke ich mache noch normale Links.

olistudent schrieb:
Kannst du vielleicht noch eine Liste der nötigen Hardware dazuhängen. Am besten gleich mit Bestellnummer von Reichelt oder so.
Meinst Du das sich das lohnt, bei 5 Widerständen und einem Stecker?

olistudent schrieb:
In dem Quadrat ist noch ein Platz frei. Mach doch da noch ein Bild mit angeschlossenem Interface hin.
Ok, das kann ich noch machen.

olistudent schrieb:
... Da können wir uns ja eine eigene Version bauen bzw. die Version anpassen.
Das ist durchaus möglich. Ich habe schon ein bischen mit meiner FBF gespielt, ich kann über EJTag ein Programm auf der FBF ausführen. Leider kann ich kein MIPS-Assembler, sonst wäre ich da schon weiter. Ich kann 8086-Assembler und PIC-Assembler, aber ich brauche ein Tutorial für MIPS-Assembler. Dann steht der Entwicklung eines Programms nichts mehr im wege. Wenn wir selber entwickeln sollten wir aber sehr viel Wert auf speed legen, damit das debricken nicht so lange dauert. Eventuell sogar mit "intelligentem" Interface (z.B. mit einem AVR).

Gruß, Feadi
 
MIPS? Das Programm ist doch in C. Oder meinst du das Assemblerprogramm wäre dann schneller?
Such doch mal bei Google. ;-)

MfG Oliver
 
olistudent schrieb:
MIPS? Das Programm ist doch in C. Oder meinst du das Assemblerprogramm wäre dann schneller?

Eigentlich braucht man zwei Programme, eins läuft auf dem PC und füttert die FBF mit Daten. Das zweite läuft auf der FBF und beschreibt den Flash.

Ich habe schon ein Programm geschrieben welches die FBF mit Daten füttern kann. Ich habe aber kein vernünftiges Futter ;) Als futter nimmt die FBF ein Programm für den MIPS Prozessor.

olistudent schrieb:
Such doch mal bei Google. ;-)

Oh ja, google ... ;)
Das hier: http://www.eecs.harvard.edu/~ellard/Courses/cs50-asm.pdf ist schon sehr gut.

Ich les mich jetzt mal durch die Sourcen von AVM und halte Ausschau nach der LED Ansteuerung. Dann mache ich ein "Hello World" Programm (FBF-EJTag-LED-Blinker).

Gruß, Feadi
 
Das Programm wird dann vom ADAM2 ausgeführt? YAMON?

MfG Oliver
 
Nein, das Programm kommt über das EJTag-Interface in die FBF und wird direkt von der CPU ausgeführt. ADAM2 wird nicht benötigt, nichtmal der Flash-IC muss in der Box vorhanden sein.

Genau dieser Umstand ermöglicht es die FBF zu debricken. :)

Man kann über dieses Interface so gut wie alles machen. ;)

Gruß, Feadi
 
Coole Sache das!

Was mich im Moment nur wundert:

1) Würden /start:903C0000 und /length:20000 nicht reichen, sprich kann man die /window:90000000 nicht weglassen?

2) Woher wusstest du dass die Instruction Length 5 ist, Datenblatt vom Chip in der FBox?

Auf jeden Fall sollte das alles mal ins Wiki ;)
Saubere Arbeit :groesste:
 
Zuletzt bearbeitet:
CuBe_X schrieb:
1) Würden /start:903C0000 und /length:20000 nicht reichen, sprich kann man die /window:90000000 nicht weglassen?
Nein, der Parameter wird benötigt, sonst kann der Flash nur gelesen und nicht neu beschrieben werden.

CuBe_X schrieb:
2) Woher wusstest du dass die Instruction Length 5 ist, Datenblatt vom Chip in der FBox?
Das ist einfach herauszufinden, man muss Nullen ins Intructionregister schieben bis nichts mehr herauskommt. Danach schiebt man Einsen rein, und zählt die herauskommenden Nullen.

CuBe_X schrieb:
Auf jeden Fall sollte das alles mal ins Wiki ;)
Saubere Arbeit :groesste:
Vielen Dank! :)

Gruß, Feadi
 
feadi schrieb:
CuBe_X schrieb:
1) Würden /start:903C0000 und /length:20000 nicht reichen, sprich kann man die /window:90000000 nicht weglassen?
Nein, der Parameter wird benötigt, sonst kann der Flash nur gelesen und nicht neu beschrieben werden.
Aha, gut zu wissen ;)

feadi schrieb:
CuBe_X schrieb:
2) Woher wusstest du dass die Instruction Length 5 ist, Datenblatt vom Chip in der FBox?
Das ist einfach herauszufinden, man muss Nullen ins Intructionregister schieben bis nichts mehr herauskommt. Danach schiebt man Einsen rein, und zählt die herauskommenden Nullen.
Hm, vielleicht werde ich mich doch mal an AVRStudio und einen ATmega8 wagen :rolleyes: Wie ich sehe, kann man es an vielen Stellen gebrauchen :grin:

Danke
CuBe
 
CuBe_X schrieb:
Hm, vielleicht werde ich mich doch mal an AVRStudio und einen ATmega8 wagen :rolleyes: Wie ich sehe, kann man es an vielen Stellen gebrauchen :grin:

Ich muss zugeben dass ich kein AVR-Assembler kann. :rolleyes:
Programmiert habe ich die AVR's bisher immer in C mit WinAVR. Hier gibt es ein gutes Tutorial: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Viel Spass mit dem Mega8 ;)

Gruß, Feadi
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.