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

Weiter würde mich interessieren ob die CPUs die auf diesen Prints aufgelötet sind noch aus der TI Produktion oder bereits aus der Infineon Produktion stammen.
Ja. In allen drei Boxen schlägt ein CPU Herz von Texas Instruments (TI).
Die Modelle sind ja auch nicht die Neuesten. Am modernsten ist noch die FB5010, aber auch die hat eine CPU von TI (plus Xilinx Spartan Coprozessor).
.
 
... einigemaßen funktioniert muss das Clock Signal in der Schaltung mit eine Kondensator etwas verzögert werden.

Danke für die gute Erklärung. Verstehe ich so ziemlich.

Um den watchdog zu überlisten:
- Macht es denn Sinn, die Leitungslänge an TCK zu variieren?
Also den Draht kürzer oder länger zu machen?
- Oder den 100 Ohm R näher oder entfernter zur CPU?
- Oder an einer anderen Leitungslänge (TMS) zu spielen?
.
 
... sind die WRT-Aufrufe genauso gemacht worden? Mit Spartan sollte es doch eher sein:
Code:
wrt_feadi2 -flash:custom /instrlen:5 [B]/instrprefix:6 /dataprefix:1[/B]   /window:90000000 /start:90000000 /length:10000

Jörg
 
wrt_feadi2 -flash:custom /instrlen:5 /instrprefix:6 /dataprefix:1 ...
Glaube ich nicht.
Ich habe viel mit /instrprefix und /dataprefix gespielt und auch verschiedenste Werte ausprobiert. Hat nie was gebracht.
Erfolg hatte ich immer dann, wenn die CPU und der Flash Chip korrekt erkannt wurden und die CPU in den debug Modus ging. Dann brauchte es keine weiteren Parameter.
Auch /instrlen:5 wurde automatisch gesetzt.

Dies ist meine erfolgreiche Kommandozeile (damit war ich auch schon ca. 5mal bei der 5010 erfolgreich):
Code:
wrt_feadi2 -flash:custom /window:90000000 /start:90xx0000 /length:x0000
 
Dann muss die 5010 doch anders sein, als die 5012, bei der konnte ich mtd2 erfolgreich auslesen (zumindest waren die im Hex-Edit geprüften Werte sinnvoll) mit:
Code:
wrt.exe -backup:custom /instrlen:5 /instrprefix:6 /dataprefix:1 /window:90000000 /start:90000000 /length:10000

Jörg
 
Dann muss die 5010 doch anders sein, als die 5012 ...
Glaube nicht, dass das 5010-spezifisch ist.
Bei mir war das bei allen Boxen gleich: Kein /instrprefix und kein /dataprefix ...

Hängt eher vom verwendeten Interface ab, glaube ich.
.
 
Um den watchdog zu überlisten:
- Macht es denn Sinn, die Leitungslänge an TCK zu variieren?
Also den Draht kürzer oder länger zu machen?
- Oder den 100 Ohm R näher oder entfernter zur CPU?
- Oder an einer anderen Leitungslänge (TMS) zu spielen?

Ja alles kann eine Rolle spielen, die Drahtlänge direkt kaum aber die damit verbundenen Leitungkapazitäten wirken sich unter Umständen schon aus.

Wenn du teilweise Erfolg hast dann, spricht die Sachlage eindeutig für die grenzlagige Timingproblematik.

Ja. In allen drei Boxen schlägt ein CPU Herz von Texas Instruments (TI).
Die Modelle sind ja auch nicht die Neuesten.
OK das schließt schon mal aus, dass die Infineon CPUs sich mit ejtag möglicherweise etwas anders verhalten könnten und den Debug Modus nicht unterstützen, was zu klären währe.
Am modernsten ist noch die FB5010, aber auch die hat eine CPU von TI (plus
Xilinx Spartan Coprozessor).​

Ja das ist eben das kritischere an der Sache mit mehren Chips in der Chain.

Ist nun die CPU der 2. Chip in der Chain?
 
Zuletzt bearbeitet:
Ist nun die CPU der 2. Chip in der Chain?

Nein, die CPU ist der erste Chip in der chain.

Anders formuliert: Die CPU (nicht der Coprozessor) ist der Chip, mit dem ich kommuniziere. Ich hänge ja auch an TDO, nicht an cTDO.
Aber ich musste TRST und cTRST mit 100 Ohm auf 3V3 setzen.

Dass ich mit der CPU kommuniziere, erkennst Du auch an der Meldung von WRT54G:
Code:
CPU Chip ID: 00000000000000000001000000001111 (0000100F)
*** Found a TI AR7WRD TNETD7300* Rev 1 CPU chip ***
 
Wie gesagt, ich bin da kein Experte, aber so wie ich das verstanden habe funktioniert die feadi-Version ohne "Prefixe" nur, solange nur ein Gerät in der Kette ist??
Auch die Linux-WRT Version wrt54g (von Johann) hatte sich nach meiner Erinnerung bei der 5012 "beschwert" mit "mehr als ein Device gefunden wurde, aber kein /hir oder /tir gesetzt" oder so. Kann ich aber im Moment nicht überprüfen...


Jörg
 
Also ist Möglicherweise der Anschlusskontakt für TDI/TDO ein anderer als der am Steckverbinder?
Um meine Anschlüsse besser zu erklären, habe ich mir das Foto der FB7050 von Feadi ausgeliehen.
Die FB5050 hat eine identische Anordnung der Kontakte.
Bei der FB5010 sind die Kontakte ebenfalls identisch, sie befinden sich nur an anderer Stelle auf der Platine.

Angeschlossen habe ich (jeweils mit 100 Ohm):
Code:
- TDI (aus der 2x14 Bank) an Pin 2 vom parport
- TDO (aus der 2x5 Bank) an Pin 13 vom parport
- TCK (aus der 2x5 Bank) an Pin 3 vom parport
- TMS (aus der 2x5 Bank) an Pin 4 vom parport
- GND (irgendeinen) an Pin18-25 vom parport
- TRST (aus der 2x14 Bank) an 3V3
- cTRST (aus der 2x5 Bank) an 3V3
- cTDO (aus der 2x14 Bank) darf nicht verwendet werden
 

Anhänge

  • FBF7050-PINOUT.jpg
    FBF7050-PINOUT.jpg
    376.6 KB · Aufrufe: 112
Wenn ich das richtig sehe, hast du fast alles an dem "kleinen" (2x5) Feld angedrahtet? Das sollte eigentlich für den Copro sein, wenn ich das recht verstanden hab.
Meine Verdrahtung war nur am "großen" Anschluss und die Bezeichnung cTDO ist da m.E. falsch, der "dritte von oben" auf dem Bild ist TDO (siehe auch mein Foto per Mail zur 5012).

Versuche es doch mal so, ich hatte nur den cTRST auf dem 2x5-er Feld genommen, weil ich da löttechnisch besser dran kam...

Jörg
 
...so wie ich das verstanden habe funktioniert die feadi-Version ohne "Prefixe" nur, solange nur ein Gerät in der Kette ist??
Ich war doch schon ein paar Mal ohne "Prefixe" erfolgreich auf der FB5010. Und zwar korrekt auf der Intel CPU, nicht auf dem Coprozessor.

Nur jetzt (seit 2 Tagen) beisst mich immer der watchdog, bevor ich auf die CPU komme.
.
 
Wenn du (wie ich vermute) die Kontakte an "anderer Stelle" in der Chain abgegriffen hast, könnte das durchaus ein verschiedenes Verhalten erklären, denke ich.

Jörg
 
Meine Verdrahtung war nur am "großen" Anschluss und die Bezeichnung cTDO ist da m.E. falsch, der "dritte von oben" auf dem Bild ist TDO ...
Nein, ich glaube, die Beschriftung von Feadi ist korrekt.
Habe anfangs die Verdrahtung so gehabt wie Du vorschlägst, damit wurde die CPU nicht erkannt. Ich denke, damit hängt man am Coprozessor.

Der "dritte von oben" aus der 2x14 Bank ist nur dann TDO, wenn kein Coprozessor vorhanden ist. Andernfalls ist es cTDO.
TDO geht ja zum cTDI, deswegen "Kette" oder "chain".
Korrekte Bezeichnung: TDO/cTDI - und das ist auf der 2x5 Bank.
.
 
Zuletzt bearbeitet:
Ich lasse mich ja gern eines besseren belehren, aber bei "meiner Anschlussweise" hat das Zugreifen auf den Speicher weinigstens funktioniert ;-) ;-) (natürlich nur mit den von Feadi angegebenen "prefixen" und /hir: bei der Linuxversion).

Ich teste es aber heute abend nochmal.

Jörg
 
... Ich teste es aber heute abend nochmal.
Ja, das werde ich auch - mit Deiner Verdrahtung

Ich vermute, Du hast ein JTAG mit Pegelwandler / level shifter?
Ich arbeite ja nur mit Widerständen. Laut Jpascher bzw. Datenblatt der CPU sollte das gar nicht funktionieren.
Könnte das ein Grund für unterschiedliches Verhalten sein?
.
 
... ich habe beides, und werde mal versuchen, auch beides zu testen.
Auf die Frage, wo man in der Chain den Anschluss hat, sollte das aber keinen Einfluss haben, denke ich.

Jörg

EDIT: Nochmal etwas gelesen: Vielleicht ist es doch cTDO? Auf jeden Fall soll dieser Anschluss genommen werden (siehe z.B. Posts #36 und #108)
Code:
[...]
TDO vom Dongle musst Du mit cTDO von der FBF verbinden
[...]
make this connections:
FBF - CABLE
TDI -> TDI
cTDO -> TDO
TMS -> TMS
TCK -> TCK
3v3 -> 300 Ohm -> TRST
3v3 -> 300 Ohm -> cTRST
 
Zuletzt bearbeitet:
Vielleicht ist es doch cTDO? Auf jeden Fall soll dieser Anschluss genommen werden: ... TDO vom Dongle musst Du mit cTDO von der FBF verbinden
Die Situation ist unklar.

Konnte über Mittag kurz testen:
Mit "Deiner" Belegung geht bei mir gar nichts. CPU wird nicht erkannt, Flash Chip wird nicht erkannt, man muss alle Parameter ("Prefixe") von Hand eingeben und am Ende komme ich doch nicht auf die CPU ...

Noch ein Argument für "meine" Verdrahtung: Damit habe ich die FB5050 perfekt ausgelesen.

An der FB SL war ich dagegen mit "Deiner" Verdrahtung erfolgreich (es gibt ja keine andere, ohne Coprozessor)

Mit der 5050 und der SL hatte ich keine watchdog Probleme ...
Ich vermute, dass der "bissige watchdog" an der FB5010 durch grenzwertige Pegel verursacht werden, weil 3V3 einfach zu wenig ist, für 2 Prozessoren in Kette.

Bin gespannt auf Dein Testergebnis!

-------------------------------------

Edit:
Auch Feadi sagt übrigens ganz deutlich: cTDO wird nicht verwendet

(siehe http://feadispace.fe.funpic.de/FBF7050/)
.
 
Ich vermute jetzt mal diesen Aufbau:
Code:
Chain                               JTAG Adapter

Dev1
|-----|
|     |
|     |TDI <------------------          
|     |TDO --|
|-----|      |
             |
             |   TDO / cTDI
Dev2         |
|-----|      |
|     |      |
|     |TDI <--
|     |TDO ------------------>           
|-----|(vermutlich = cTDO)


Dev1 = CPU (AR7)
Dev2 = Spartan
Wenn du tatsächlich, wie ich es vermute, den TDO-Interface-Anschluss an "TDO / cTDI" gelegt hast, hast du dich in die Chain reingehängt. Dann ist zwar bis zu den Antworten "nur ein Device" in der Kette und du brauchst also kein Prefix. Ob so aber die Befehle richtig laufen, wage ich zu bezweifeln...

Aber wie gesagt, graue Theorie ;-)

Jörg

EDIT Ich muss es testen, denn Feadi hat ja hier was anderes geschrieben, als auf seiner Seite. Aber der gute Johann hat ja mehr Ahnung und schreibt hier: "Tools die nur einen Baustein in der Cain unterstützen erfordern, dass man die Leitungen TDO und TDI direkt von der CPU verwendet." Das würde wie deine Ergebnisse für die Verwendung von TDO / cTDI sprechen...
 
Zuletzt bearbeitet:
Ob so aber die Befehle richtig laufen, wage ich zu bezweifeln...

Leuchtet mir ein, Deine Hypothese zur Schaltung.

Hier mal das Ergebnis mit "Deiner" Verdrahtung:
Code:
C:\Fritz!\Diverses\HairyDairyMaid\WRT54G_v48>wrt_feadi2 -flash:custom /window:90
000000 /start:90000000 /length:10000 /skipdetect /instrlen:5 /dataprefix:1 /fc:3
2 /instrprefix:6

====================================
WRT54G/GS EJTAG Debrick Utility v4.5
====================================

Probing bus ... Done

Instruction Length set to 5

CPU Chip ID: 00000000000000000001000000001111 (0000100F)
*** CHIP DETECTION OVERRIDDEN ***

reading IMPCODE register... 00000000000000000000000000000000 (00000000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
reading IMPCODE register... 01000001010000000100000000000000 (41404000)
    - EJTAG IMPCODE ....... : 01000001010000000100000000000000 (41404000)
    - EJTAG Version ....... : 2.6
    - EJTAG DMA Support ... : No

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Skipped
Halting Processor ... <Processor did NOT enter Debug Mode!> ... Done
Clearing Watchdog ... ^C

Mit "meiner" Verdrahtung komme ich zum selben Ergebnis, brauche aber die ganzen "Prefixe" nicht:
Code:
C:\Fritz!\Diverses\HairyDairyMaid\WRT54G_v48>wrt_feadi2 -flash:custom /window:90
000000 /start:90000000 /length:10000

Meine Vermutung:
Ich greife wirklich in die chain und simuliere damit "nur ein device in der chain".
Es sieht aber so aus, als ob damit die Befehle korrekt interpretiert werden.
Kann gut sein, dass beide Methoden funktionieren ???

Mein aktuelles Problem "bissiger watchdog" hat damit wohl nichts zu tun, sondern mit grenzwertigen Signalpegeln.
Mit einem aktiven Interface würde es wahrscheinlich funktionieren.
.
 
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.