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 [Thu. 07.02.2019 08:28] go4itartikel:nav_common:jtag_readout_mainboard_flash [Fri. 26.07.2019 17:55] go4it
Zeile 1: Zeile 1:
-====== Den Flash-Speicher vom Mainboard über JTAG auslesen ======+====== Mainboard Flash per JTAG auslesen und beschreiben ======
  
-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.+===== Ziel =====
  
-Da der OMAP5948 eine Sonderproduktion für die Firma BOSCH ist, gibt es keinerlei öffentlich verfügbare Dokumentation darüber im InternetMeine 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 Flash-Speicher auf den Navigations-Mainboards (Spansion S29GL...) ist direkt am Hauptprozessoreinem Texas Instruments "OMAP5948ZXF" angeschlossenDer OMAP verfügt über eine JTAG-Schnittstelle und darüber kann man auch den Inhalt des Flash auslesen bzw. programmieren.
  
-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.+===== Benötigte Teile und Hilfsmittel =====
  
-Für die Umsetzung verwende ich einen relativ preiswerten "Segger J-Link EDU":+Alle hier gezeigten Schritte werden mit einem **Segger J-Link** JTAG-Adapter durchgeführt:
  
-{{artikel:nav_fx:segger_j-link_edu.jpg?direct&200|}}+{{artikel:nav_fx:segger_j-link_edu.jpg?direct&160|}}
  
-in Verbindung mit der zugehörigen Software (J-Flash).+Zum auslesen reicht dabei die "EDU"-Variante, welche für ca. 60,- € zu haben ist. Um auch löschen und programmieren zu können benötigt man spezielle Lizenzen, welche z.B. in der "PLUS"-Version für um die 800,€ enthalten sind. Die Hardware ist exakt die gleiche, es sind nur zusätzliche Lizenzschlüssel.
  
-==== Schritt 1) JTAG-Interface anschließen ====+:i: **TIPP**: 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|Den Segger J-Link am mit dem Serviceport des Mainboards verbinden]]+Darüber hinaus benötigt man noch die Software "Segger J-Flash", welche im J-Link Commander Programmpaket enthalten ist und man direkt und kostenlos von der [[https://www.segger.com/downloads/jlink/|Segger Homepage]] herunterladen kann.
  
-==== Schritt 2Den Radioprozessor deaktivieren ====+Weiterhin benötigt man zum verbinden von Mainboard und J-Link Adapter noch ein paar, möglichst kurze Dupont-Wires (Anschlußvariante Male-Male). Kurz, damit man sich keine Störungen einfängt.
  
-Hierzu muss eine **Drahtbrücke zwischen Pin 3 und Pin 13** des [[artikel:nav_common:jtag_connect_mainboard|rechten Serviceports]] 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.+ 
 + 
 +===== Mittels Segger J-Link Interface ===== 
 + 
 +Um den Inhalt des Flash nur auszulesen, genügt die günstige, nicht-kommerzielle "EDU"-Version des Segger J-Link Interfaces: 
 + 
 + 
 + 
 + 
 +==== Schritt 1) JTAG-Interface mit dem Mainboard verbinden ==== 
 + 
 +[[artikel:nav_common:jtag_connect_mainboard]] 
 + 
 +==== Schritt 2) Den Watchdog vom Radioprozessor deaktivieren ==== 
 + 
 +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. 
 + 
 +Hierzu muss eine **Drahtbrücke zwischen Pin 3 und Pin 13** des [[:artikel:nav_common:mainboard_service_connectors#pinbelegung_der_service-buchse_x3806|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) Einstellungen im J-Flash vornehmen ====
  
-In der recht umfangreichen Liste der unterstützten CPUs ist der OMAP5948 (ebenso wie der OMAP5912) leider nicht enthalten. Das ist aber kein Problem, den mit den richtigen Einstellungen kann man sich diese selbst herstellenHierzu unter "Options" den Menüpunkt "Project options..." auswählen und folgende Einstellungen vornehmen:+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 CPU, welche wiederum von J-Flash unterstützt wird :-)
  
-{{artikel:nav_fx:projectopts_general.jpg?direct&200|}} {{artikel:nav_fx:projectopts_target-interface_maxspeed.jpg?direct&200|}} {{artikel:nav_nx:projectopts_mcu.jpg?direct&200|}} {{artikel:nav_fx:projectopts_flash-256.jpg?direct&200|}} {{artikel:nav_fx:projectopts_production.jpg?direct&200|}} {{artikel:nav_fx:projectopts_performance.jpg?direct&200|}}+Hierzu unter "Options" den Menüpunkt "Project options..." auswählen und folgende Einstellungen vornehmen:
  
-{{artikel:nav_nx:setup_complete_256.jpg?direct&200|}}+{{artikel:nav_fx:projectopts_general.jpg?direct|}}
  
-**Diese Einstellungen als Projektdatei Downloaden: {{artikel:nav_fx:omap5948zxf_flash_fx.jflash|OMAP5948ZXF_FLASH_FX.jflash}}**+=== JTAG-Einstellungen === 
 + 
 +{{artikel:nav_fx:projectopts_target-interface_maxspeed.jpg?direct|}} 
 + 
 +=== CPU-Typ wählen === 
 + 
 +Einfach "ARM9" aus der CPU-Liste wählen: 
 + 
 +{{artikel:nav_nx:projectopts_mcu.jpg?direct|}} 
 + 
 +=== Flash Chip einstellen === 
 + 
 +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_fx:projectopts_flash-256.jpg?direct|}} 
 + 
 +=== Weitere Einstellungen... === 
 + 
 +{{artikel:nav_fx:projectopts_production.jpg?direct|}} 
 + 
 +{{artikel:nav_fx:projectopts_performance.jpg?direct|}} 
 + 
 +=== Einstellungen sichern === 
 + 
 +Am Ende erhält man eine Übersicht der Einstellungen im Hauptbildschirm: 
 + 
 +{{artikel:nav_nx:setup_complete_256.jpg?direct&640|}} 
 + 
 +Diese speichert man sich am besten als "Project" für spätere Versuche ab.
  
 ==== Schritt 4) Download starten ==== ==== Schritt 4) Download starten ====
  
-{{artikel:nav_fx:flash-download_entiry-chip.jpg?direct&200|}}+{{artikel:nav_fx:flash-download_entiry-chip.jpg?direct&640|}}
  
-{{artikel:nav_fx:flash-download_finished_256.jpg?direct&200|}}+{{artikel:nav_fx:flash-download_finished_256.jpg?direct&640|}}
  
-{{artikel:nav_fx:flash-download_done_256.jpg?direct&200|}}+{{artikel:nav_fx:flash-download_done_256.jpg?direct&640|}}
  
 ==== Schritt 5) Flashdump abspeichern ==== ==== Schritt 5) Flashdump abspeichern ====
Zeile 43: Zeile 88:
 ''Strg-S'' drücken, zu speichernden Bereich bestätigen und als Zielformat "*.bin" auswählen: ''Strg-S'' drücken, zu speichernden Bereich bestätigen und als Zielformat "*.bin" auswählen:
  
-{{artikel:nav_fx:flash-download_save2bin_256.jpg?direct&200|}}+{{artikel:nav_fx:flash-download_save2bin_256.jpg?direct&640|}}
  
 ===== Weiterführende Informationen ===== ===== 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]]+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]] 
  
  • artikel/nav_common/jtag_readout_mainboard_flash.txt
  • Zuletzt geändert: Wed. 19.05.2021 13:28
  • von go4it