artikel:nav_common:jtag_readout_mainboard_flash

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
Nächste ÜberarbeitungBeide Seiten der Revision
artikel:nav_common:jtag_readout_mainboard_flash [Fri. 08.02.2019 13:53] go4itartikel:nav_common:jtag_readout_mainboard_flash [Fri. 26.07.2019 18:48] go4it
Zeile 1: Zeile 1:
-====== Den Flash-Speicher vom Mainboard über JTAG auslesen ======+====== Mainboard Flash per JTAG auslesen und beschreiben ======
  
-===== Mittels Segger J-Link Interface =====+===== Ziel =====
  
-Um den Inhalt des Flash nur auszulesen, genügt die günstige, nicht-kommerzielle "EDU"-Version des Segger J-Link Interfaces:+Der Flash-Speicher auf den Navigations-Mainboards (Spansion S29GL...) ist direkt am Hauptprozessor, einem Texas Instruments "OMAP5948ZXFangeschlossen. Der OMAP verfügt über eine JTAG-Schnittstelle und darüber kann man auch den Inhalt des Flash auslesen bzw. programmieren.
  
-{{artikel:nav_fx:segger_j-link_edu.jpg?direct&320|}}+Alle in dieser Anleitung gezeigten Schritte werden mit einem **Segger J-Link** JTAG-Adapter durchgeführt:
  
-:!: **Keine Ahnung ob die China-Clones davon genauso gut funktionieren wie das Original. Bei dem relativ günstigen Preis des EDU würde ich jedoch ein Original vorziehen da dies sicher qualitativ hochwertiger ist!**+{{artikel:nav_fx:segger_j-link_edu.jpg?direct&200|}} 
 + 
 +Zum auslesen des Flash reicht dabei die "EDU"-Variante, welche für ca. 60,- € 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. 
 + 
 +:!: **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 "EDUwürde ich jedoch immer ein Original vorziehenda dies sicher qualitativ hochwertiger ist und man keine Probleme bekommt! 
 + 
 +**Watchdogs** 
 + 
 +{{:artikel:nav_common:watchdog-error.png?direct&200|}} 
 + 
 +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-Speichers, zumindest wenn man mehr als einen Sektor bearbeiten will und müssen deaktiviert werden. 
 + 
 +Auf dem Mainboard steuert und überwacht ein NEC V850 Mikrocontroller (der sog. "Radioprozessor") sämtliche Komponenten, auch den OMAP-Hauptprozessor. Hierzu 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 durch. Die kann verhindert werden indem man über eine Drahtbrücke am Mainboard die Funktion deaktiviert ("Tuareg-Mode"). 
 + 
 +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. 
 + 
 +===== Benötigte Teile und Hilfsmittel ===== 
 + 
 +  - Segger J-Link Adapter 
 +  - Segger J-Flash, welches 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 
 + 
 +===== Schritt 1) JTAG-Interface mit dem Mainboard verbinden ===== 
 + 
 +Dieser Schritt ist hier erklärt: [[artikel:nav_common:jtag_connect_mainboard]] 
 + 
 +===== Schritt 2) Watchdogs deaktivieren ===== 
 + 
 +Zum aktivieren des "Tuareg-Modes" 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). 
 + 
 +{{:artikel:nav_common:disable_wd_1.png?direct|}} 
 + 
 +{{:artikel:nav_common:disable_wd_2.png?direct|}}
  
-Die benötigte Software (J-Flash) kann direkt und kostenlos von der Segger Homepage heruntergeladen werden[[https://www.segger.com/downloads/jlink/]]+{{:artikel:nav_common:disable_wd_3.png?direct|}}
  
-==== Schritt 1) JTAG-Interface mit dem Mainboard verbinden ====+{{:artikel:nav_common:disable_wd_4.png?direct|}}
  
-[[artikel:nav_common:jtag_connect_mainboard]]+{{:artikel:nav_common:disable_wd_5.png?direct|}}
  
-==== Schritt 2) Den Watchdog vom Radioprozessor deaktivieren ====+Hier das Gesamtergebnis:
  
-Auf dem Mainboard steuert ein NEC V850 Mikrocontroller (der sog. "Radioprozessor") sämtliche Funktionen für den Radioempfang aber auch die Stromversorgung der Komponenten. Zur Ü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 auszulesen, daher muss man diesen Mechanismus still legen.+{{:artikel:nav_common:disable_wd.png?direct&200|}}
  
-Hierzu muss eine **Drahtbrücke zwischen Pin 3 und Pin 13** des [[artikel:nav_common:jtag_connect_mainboard|rechten Serviceports (X3806)]] hergestellt werden. Ich habe mir hierfür aus dem Elektronikversand einen 14-poligen Micro-Match Header bestellt und aufgelötet. Dann 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. 
  
-==== Schritt 3) Einstellungen im J-Flash vornehmen ====+===== Schritt 3) J-Flash konfigurieren =====
  
 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über. Er basiert jedoch auf dem OMAP5912 und dieser enthält eine ARM926EJ-S CPU, welche wiederum von J-Flash unterstützt wird :-) 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über. Er basiert jedoch auf dem OMAP5912 und dieser enthält eine ARM926EJ-S CPU, welche wiederum von J-Flash unterstützt wird :-)
Zeile 76: Zeile 107:
  
 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]] 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]]
- 
- 
- 
- 
- 
-Der Flash-Speicher selbst hat keinen JTAG-TAP (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. 
- 
-Da der OMAP5948 eine Sonderproduktion für die Firma BOSCH ist, gibt es keinerlei öffentlich verfügbare Dokumentation darüber im Internet. Meine Recherchen haben aber ergeben das dieser mit hoher Wahrscheinlichkeit dem OMAP5912 entspricht. Mehr darüber im [[artikel:nav_mca-plus:teardown:omap5948:start|Grundlagenartikel über den OMAP5948]]. 
- 
-Der OMAP enthält neben einer ARM9-CPU und einem DSP auch einen Coprozessor und zahlreiche andere Komponenten, ähnlich einem Mikrocontroller. RAM und Flash können per Design extern angeschlossen werden. Dieser Umstand ermöglicht eine gewisse Vorhersage wie und an welchen Pins der OMAP ein Flash bedient. Mit Hilfe eines JTAG-Flash-Readers und den richtigen Einstellungen ist es grundsätzlich kein Problem das Flash auszulesen. 
- 
-Für die Umsetzung verwende ich einen relativ preiswerten "Segger J-Link EDU": 
- 
-{{artikel:nav_fx:segger_j-link_edu.jpg?direct&200|}} 
- 
-in Verbindung mit der zugehörigen Software (J-Flash). 
  
  
  • artikel/nav_common/jtag_readout_mainboard_flash.txt
  • Zuletzt geändert: Wed. 19.05.2021 13:28
  • von go4it