Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
artikel:nav_common:jtag_readout_mainboard_flash [Fri. 08.02.2019 13:54]
go4it
artikel:nav_common:jtag_readout_mainboard_flash [Fri. 26.07.2019 20:09] (aktuell)
go4it [Ablauf "Inhalt vom Mainboard-Flash herunterladen und abspeichern"]
Zeile 1: Zeile 1:
-====== ​Den Flash-Speicher vom Mainboard ​über JTAG auslesen ======+====== Mainboard ​Flash per JTAG auslesen ​und beschreiben ​======
  
-Der Flash-Speicher selbst hat kein JTAG-Interface. Er ist mit dem Hauptprozessor,​ einem Texas Instruments "​OMAP5948ZXF"​ verbunden. Der OMAP hat eine JTAG-Schnittstelle und somit ergibt sich die Möglichkeit darüber auch an den Inhalt des Flashs heranzukommen.+===== Ziel =====
  
-===== Mittels Segger J-Link Interface =====+Der Flash-Speicher auf den Navigations-Mainboards (Spansion S29GL...) ist direkt am Hauptprozessor,​ einem Texas Instruments "​OMAP5948ZXF"​ angeschlossen. Der OMAP verfügt über eine JTAG-Schnittstelle und darüber kann man auch den Inhalt des Flash auslesen bzw. programmieren.
  
-Um den Inhalt des Flash nur auszulesen, genügt die günstige, nicht-kommerzielle "​EDU"​-Version des Segger J-Link ​Interfaces:+Alle in dieser Anleitung gezeigten Schritte werden mit einem **Segger J-Link** JTAG-Adapter durchgeführt:
  
-{{artikel:​nav_fx:​segger_j-link_edu.jpg?​direct&​320|}}+{{artikel:​nav_fx:​segger_j-link_edu.jpg?​direct&​200|}}
  
-:!: **Keine Ahnung ob die China-Clones davon genauso gut funktionieren wie das OriginalBei dem relativ günstigen Preis des EDU würde ich jedoch ​ein Original vorziehen da dies sicher qualitativ hochwertiger ​ist!**+Zum auslesen des Flash reicht dabei die "​EDU"​-Variante, welche für ca60,- € im Handel zu haben ist. Um den Flash auch löschen und programmieren zu können benötigt man jedoch ​spezielle Software-Lizenzen. Diese sind z.B. in der "​PLUS"​-Version des J-Link für um die 800,- € enthalten. Die Hardware ​ist bei allen Editionen exakt die gleiche, es sind nur zusätzliche Lizenzschlüssel in die Software einzutragen.
  
-Die benötigte Software (J-Flash) kann direkt und kostenlos von der Segger Homepage heruntergeladen werden: [[https://​www.segger.com/​downloads/​jlink/​]]+In der recht umfangreichen Liste der unterstützten CPUs von J-Flash ​ist der OMAP5948 leider nicht enthaltenDieser Chip wurde speziell für Bosch hergestellt und es existieren keine öffentlich verfügbaren Datenblätter darüber. Er basiert jedoch auf dem OMAP5912 und dieser enthält eine ARM926EJ-S CPU, welche wiederum von J-Flash unterstützt wird.
  
-==== Schritt 1) JTAG-Interface mit dem Mainboard verbinden ====+:!: **ACHTUNG**:​ Vom Segger J-Link werden zahlreiche, billige "​China-Clones"​ angeboten. Keine Ahnung ob welche davon genauso gut funktionieren wie das Original. Bei dem relativ günstigen Preis des "​EDU"​ würde ich jedoch immer ein Original vorziehen, da dies sicher qualitativ hochwertiger ist und man keine Probleme bekommt!
  
-[[artikel:​nav_common:​jtag_connect_mainboard]]+**Watchdogs**
  
-==== Schritt 2) Den Watchdog vom Radioprozessor deaktivieren ====+{{:​artikel:​nav_common:​watchdog-error.png?​direct&​200|}}
  
-Auf dem Mainboard steuert ein NEC V850 Mikrocontroller (der sog. "​Radioprozessor"​) sämtliche Funktionen für den Radioempfang aber auch die Stromversorgung der KomponentenZur Überwachung empfängt er vom HMI-Prozessor heartbeats. Bleiben diese für eine längere Zeit aus (ca. 20 Sekunden) führt er einen Reset auf den OMAP durch. Die Zeit ist zu kurz um den gesamten ​Flash-Speicher auszulesendaher muss man diesen Mechanismus still legen.+Es gibt zwei Überwachungsmechanismen im Gerät, ​die Softwareabstürze erkennen und dann einen Prozessorneustart auslösen sollen Beide stören aufgrund ihrer kurzen Timeout-Zeiten das auslesen/​beschreiben des Flash-Speicherszumindest wenn man mehr als einen Sektor bearbeiten will und müssen deaktiviert werden.
  
-Hierzu muss eine **Drahtbrücke zwischen Pin 3 und Pin 13** des [[artikel:​nav_common:​jtag_connect_mainboard|rechten Serviceports ​(X3806)]] hergestellt werdenIch habe mir hierfür ​aus dem Elektronikversand ​einen 14-poligen Micro-Match Header bestellt und aufgelötetDann kann ich mit einfachen Dupon-Kabeln ​die Brücke herstellen. Man kann hier natürlich auch einen Schalter oder einfach ein Stück Kuperleitung anlöten.+Auf dem Mainboard steuert ​und überwacht ein NEC V850 Mikrocontroller ​(der sog. "​Radioprozessor"​sämtliche Komponenten,​ auch den OMAP-HauptprozessorHierzu erwartet der V850 vom OMAP sog. "​Heartbeats"​. Bleiben diese für einen Zeitraum von mehr als 20 Sekunden ​aus, führt der V850 einen Reset beim OMAP durchDie kann verhindert werden indem man über eine Drahtbrücke am Mainboard ​die Funktion deaktiviert ("​Tuareg-Mode"​).
  
-==== Schritt 3) Einstellungen im J-Flash ​vornehmen ====+Zusätzlich gibt es auf dem OMAP noch einen Watchdog-Timer. Dieser löst ebenfalls einen Reset aus, wenn er nicht binnen 12 Sekunden immer wieder zurückgestellt wird. Dies geschieht normalerweise per Software. Stoppt man jedoch die CPU um den Flash lesen/​beschreiben zu können, bleiben die Rückstellbefehle aus und der Watchdog schlägt zu. Um dies zu verhinden muss man gleich nach dem anhalten der CPU die Watchdog-Timer umprogrammieren,​ sodass diese keine Funktion mehr haben.
  
-In der recht umfangreichen Liste der unterstützten CPUs ist der OMAP5948 leider nicht enthalten. Dieser Chip wurde speziell für Bosch hergestellt und es existieren keine öffentlich verfügbaren Datenblätter darüberEr basiert jedoch auf dem OMAP5912 ​und dieser enthält eine ARM926EJ-S CPUwelche wiederum ​von J-Flash unterstützt wird :-)+//Zum Thema gibt es noch [[https://​microhacker.denkdose.de/​viewtopic.php?​f=3&​t=2&​start=50#​p134|Hintergrundinformationen im Forum]]// 
 + 
 +===== Benötigte Teile und Hilfsmittel ===== 
 + 
 +  ​Segger J-Link Adapter 
 +  - Segger J-Flashwelches im Programmpaket "​Segger J-Link Commander"​ enthalten ist und direkt und kostenlos ​von der [[https://​www.segger.com/​downloads/​jlink/​|Segger Homepage]] heruntergeladen werden kann 
 +  - Ein paar möglichst kurze (wg. Störeinstrahlungen) Dupont-Wires (Anschlußvariante Male-Male) um die Pins vom J-Link Adapter mit denen der orangenen Micromatch-Buchse am Mainboard zu verbinden 
 + 
 +===== JTAG-Interface mit dem Mainboard verbinden und Tuareg-Mode aktivieren ===== 
 + 
 +Pins des JTAG-Interface mit dem Mainboard verbinden[[artikel:​nav_common:​jtag_connect_mainboard]] 
 + 
 +Für den Tuareg-Mode eine Drahtbrücke zwischen **Pin 3 (GND)** und **Pin 13 (/SEL)** des [[:​artikel:​nav_common:​mainboard_service_connectors#​pinbelegung_der_service-buchse_x3806|rechten Serviceports (X3806)]] vom Mainboards einlöten (ich habe einen Dupont-Wire Male-Female durchgeschnitten und mit so eine Steckbare Verbindung gebaut). 
 + 
 +===== J-Flash konfigurieren =====
  
 Hierzu unter "​Options"​ den Menüpunkt "​Project options..."​ auswählen und folgende Einstellungen vornehmen: Hierzu unter "​Options"​ den Menüpunkt "​Project options..."​ auswählen und folgende Einstellungen vornehmen:
Zeile 31: Zeile 45:
 {{artikel:​nav_fx:​projectopts_general.jpg?​direct|}} {{artikel:​nav_fx:​projectopts_general.jpg?​direct|}}
  
-=== JTAG-Einstellungen ​===+==== Reiter "​Target Interface" ​==== 
 + 
 +Hier werden die JTAG-Einstellungen wie folgt vorgenommen:​
  
 {{artikel:​nav_fx:​projectopts_target-interface_maxspeed.jpg?​direct|}} {{artikel:​nav_fx:​projectopts_target-interface_maxspeed.jpg?​direct|}}
  
-=== CPU-Typ wählen ​===+==== Reiter "​MCU"​ ====
  
-Einfach ​"​ARM9" ​aus der CPU-Liste ​wählen:+Hier wird zunächst ​"​ARM9" ​als CPU-Typ aus der Liste ausgewählt:
  
 {{artikel:​nav_nx:​projectopts_mcu.jpg?​direct|}} {{artikel:​nav_nx:​projectopts_mcu.jpg?​direct|}}
  
-=== Flash Chip einstellen ===+Um die Software-Watchdogs abzuschalten die Default Init-Steps löschen und durch folgende ersetzen:
  
-Auf "​Select flash device"​ klicken und aus der Liste den "​Spansion S29GL256N"​ (32MB) für das FX bzw. "​Spansion S29GL512N"​ (64MB) für das NX oder MCA wählen:+{{:​artikel:​nav_common:​disable_wd.png?​direct|}} 
 + 
 +Die einzelnen Einstellungen im Detail: 
 + 
 +{{:​artikel:​nav_common:​disable_wd_1.png?​direct|}} 
 + 
 +{{:​artikel:​nav_common:​disable_wd_2.png?​direct|}} 
 + 
 +{{:​artikel:​nav_common:​disable_wd_3.png?​direct|}} 
 + 
 +{{:​artikel:​nav_common:​disable_wd_4.png?​direct|}} 
 + 
 +{{:​artikel:​nav_common:​disable_wd_5.png?​direct|}} 
 + 
 + 
 +==== Reiter "​Flash"​ ==== 
 + 
 +Hier wird der Flash-Typ eingestellt. Dazu auf "​Select flash device"​ klicken und aus der Liste den "​Spansion S29GL256N"​ (wenn es sich um ein Mainboard eines Navigationssystems ​FX handelt) ​bzw. "​Spansion S29GL512N"​ (wenn es sich um ein NX oder MCA handel) ​wählen:
  
 {{artikel:​nav_fx:​projectopts_flash-256.jpg?​direct|}} {{artikel:​nav_fx:​projectopts_flash-256.jpg?​direct|}}
  
-=== Weitere Einstellungen... ​===+==== Reiter "​Production" ​==== 
 + 
 +Diese Einstellungen werden genutzt wenn man "​Productional Programming"​ im J-Flash verwendet:
  
 {{artikel:​nav_fx:​projectopts_production.jpg?​direct|}} {{artikel:​nav_fx:​projectopts_production.jpg?​direct|}}
 +
 +==== Reiter "​Performance"​ ====
  
 {{artikel:​nav_fx:​projectopts_performance.jpg?​direct|}} {{artikel:​nav_fx:​projectopts_performance.jpg?​direct|}}
  
-=== Einstellungen sichern ===+==== Einstellungen sichern ​====
  
 Am Ende erhält man eine Übersicht der Einstellungen im Hauptbildschirm:​ Am Ende erhält man eine Übersicht der Einstellungen im Hauptbildschirm:​
Zeile 61: Zeile 98:
 Diese speichert man sich am besten als "​Project"​ für spätere Versuche ab. Diese speichert man sich am besten als "​Project"​ für spätere Versuche ab.
  
-==== Schritt 4) Download starten ​====+ 
 + 
 + 
 +===== Ablauf "​Inhalt vom Mainboard-Flash herunterladen und abspeichern"​ =====
  
 {{artikel:​nav_fx:​flash-download_entiry-chip.jpg?​direct&​640|}} {{artikel:​nav_fx:​flash-download_entiry-chip.jpg?​direct&​640|}}
Zeile 69: Zeile 109:
 {{artikel:​nav_fx:​flash-download_done_256.jpg?​direct&​640|}} {{artikel:​nav_fx:​flash-download_done_256.jpg?​direct&​640|}}
  
-==== Schritt 5) Flashdump abspeichern ==== +''​Strg-S''​ drücken, zu speichernden Bereich bestätigen und als Zielformat "​*.bin"​ auswählen. Die Länge wird automatisch anhand der Größe des Flash-Speichers ausgefüllt,​ hier einfach nur mit "​OK"​ bestätigen:
- +
-''​Strg-S''​ drücken, zu speichernden Bereich bestätigen und als Zielformat "​*.bin"​ auswählen:+
  
 {{artikel:​nav_fx:​flash-download_save2bin_256.jpg?​direct&​640|}} {{artikel:​nav_fx:​flash-download_save2bin_256.jpg?​direct&​640|}}
  
-===== Weiterführende Informationen ===== 
  
-Zu diesem Thema gibt es auch einen Blog von mir im mondeo-mk4.de Benutzerforum:​ [[https://​mondeo-mk4.de/​index.php/​Thread/​21164-Hacking-into-NavFX/?​postID=302879#​post302879]]+===== Ablauf "​Mainboard-Flash löschen und mit neuem Inhalt programmieren"​ ===== 
  
 +:TODO:
  
  • artikel/nav_common/jtag_readout_mainboard_flash.1549634056.txt.gz
  • Zuletzt geändert: Fri. 08.02.2019 13:54
  • von go4it