Forum: Mikrocontroller und Digitale Elektronik Flash von V850 (70F3352) auslesen


von Olli Z. (z80freak)


Lesenswert?

Gibt es eine Möglichkeit die Protection bits eines V850 mittels JTAG 
interface auszulesen? Ich möchte einen Prozessor aus einem KFZ-Modul neu 
programmieren der durch ein fehlgeschlagenes Update via CAN-Bus zum 
"Ziegelstein" wurde.
Zunächst würde ich natürlich prüfen wollen ob in dem Flash noch was drin 
ist. Der Flash dieses Typs ist "nur" 768 kb groß.
Ich rechne eigentlich damit das nur die self-programming Methode noch 
aktiv ist und der Hersteller die Bits gegen auslesen, löschen und 
beschreiben des Flash gesetzt hat und es mit einem 10 Byte passwort 
geschützt hat...

von void (Gast)


Lesenswert?

Olli Z. schrieb:
> Ich rechne eigentlich damit das nur die self-programming Methode noch
> aktiv ist und der Hersteller die Bits gegen auslesen, löschen und
> beschreiben des Flash gesetzt hat und es mit einem 10 Byte passwort
> geschützt hat...

Üblich wäre dann auch das Security Setting 'Boot block cluster rewrite 
prohibit' (Tabelle 30-4 im Datenblatt[0]) zu setzen. Und vorab den 
Bootloader, also CAN Kommunikation mit Flash Self-Programming, in die 
Boot area (blocks 0+15) zu programmieren. Damit dürfte dieses Problem 
gar nicht auftauchen können:

> der durch ein fehlgeschlagenes Update via CAN-Bus zum
> "Ziegelstein" wurde.

Eben weil sich der Bootloader dann nicht selber zerschiessen kann.


> Gibt es eine Möglichkeit die Protection bits eines V850 mittels
> JTAG interface auszulesen?

Welche Security Settings ('Protection Bits') gesetzt sind geht IMHO 
implizit aus dem Fehlschlagen der Chip erase-, Block erase-, Program-, 
Read- Commands hervor.

[0] https://docs-emea.rs-online.com/webdocs/1343/0900766b8134304e.pdf

von Olli Z. (z80freak)


Lesenswert?

Ich wollte nicht risiken das ein Erase womöglich zugelassen ist, aber 
ein Write dann nicht.

von V850 Besitzer (Gast)


Lesenswert?

Warum testest du nicht erstmal ob der Controller ueberhaupt noch zuckt.

Fuer den seriellen Flashmodus muss man "nur" FLMD0 auf GND ziehen.
Dann sollten TXD nach dem Reset schonmal zappeln.

Ich benutze zum Programmieren von den Dingern eine Software namens FPL.

Meine haben aber nur 256k.

von V850 Besitzer (Gast)


Lesenswert?

P.S.: FLMD1 liegt ebenfalls ueber 10k auf GND...

von void (Gast)


Lesenswert?

Olli Z. schrieb:
> Ich wollte nicht risiken das ein Erase womöglich zugelassen ist, aber
> ein Write dann nicht.

Das wäre schön eine merkwürdige, aber wohl beim v850/SG3 mögliche, 
Kombination.

Bei neuen v850 gibt es IMHO die Möglichkeit nach dem vollständigen 
Löschen aller Flash Blöcke das Passwort und die Protection Bits 
zurückzusetzen. Also praktisch zurück in den Auslieferungszustand des 
uC. Hatte ich gestern aber nicht beim überfliegen des SG3 Datenblatt 
gesehen.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Ich konnte die UARTA0 Pins, sowie andere auf einem unbestückten Header 
der Platine finden.

Hab mal das DSO dran gehalten, aber weder RXD noch TXD geben irgendwas 
sinnvolles von sich wenn ich FLMD0 auf Vss lege.

FLMD1 liegt vom Board aus über einen Widerstand gen Masse.

von Olli Z. (z80freak)


Lesenswert?

V850 Besitzer schrieb:
> Fuer den seriellen Flashmodus muss man "nur" FLMD0 auf GND ziehen.
Ist es nicht anders rum? FLMD0 auf Vss (+3,3V)? Für den Application mode 
ist der doch per Widerstand gegen GND.

> Ich benutze zum Programmieren von den Dingern eine Software namens FPL.
FPL?

von Olli Z. (z80freak)


Lesenswert?

void schrieb:
> Bei neuen v850 gibt es IMHO die Möglichkeit nach dem vollständigen
> Löschen aller Flash Blöcke das Passwort und die Protection Bits
> zurückzusetzen. Also praktisch zurück in den Auslieferungszustand des
> uC. Hatte ich gestern aber nicht beim überfliegen des SG3 Datenblatt
> gesehen.

Sowas hatte ich auch vermutet, aber in der Tat ebenfalls nicht gefunden.

von void (Gast)


Lesenswert?

Olli Z. schrieb:
> FPL?

Er meint vermutlich den Vorgänger des RFP (Renesas Flash Programmer).

von Olli Z. (z80freak)


Lesenswert?

Ah, ok. Laut Renesas geht das für den V850 nur mit dem Flash Programmer 
v2
https://www.renesas.com/sg/en/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui-v2.html

Und hiervon würde ich den Schaltkreis Typ C in Verbindung mit einem 
USB/UART Kabel nutzen, weil der V850 kein USB direct unterstützt:
https://www.renesas.com/sg/en/doc/products/tool/doc/001/r20ut0857ej0300_rfpsplcrct.pdf

: Bearbeitet durch User
von V850 Besitzer (Gast)


Lesenswert?

> Ist es nicht anders rum? FLMD0 auf Vss (+3,3V)? Für den Application mode
> ist der doch per Widerstand gegen GND.

Ja. Tschuldigung :-(. Da haben die Japaner an ein vermeintliches
Massesymbol noch EVDD geschrieben. Und ich habs nicht gesehen.

>> Ich benutze zum Programmieren von den Dingern eine Software namens FPL.
> FPL?

Naja, das sind nur 500 kB. Warum soll ich mir da den
modernen Groessenwahn antun.
Es ist die Version 1.10 vom Jahrgang 2003.


Ist denn sonst an irgendwelchen Pins noch Gewackel zu sehen?
Oder ist der Kaefer vielleicht einfach nur blank?

von Olli Z. (z80freak)


Lesenswert?

Ja, der chip lebt schon, nur halt mit Gedächtnisverlust.
Ich werde mir mal den RFP v2 ziehen und ein USB/UART Interface basteln 
für 3,3V und dann mal schauen. Offensichtlich hat der Hersteller des 
Moduls ja auch damit gearbeitet, wenn vielleicht auch nur in der 
Entwicklung.

Hier hab ich was dazu gefunden: 
https://www.renesas.com/sg/en/doc/products/mpumcu/apn/rl78/001/r01an1131eu0101_mcu.pdf

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Ich habe mir jetzt mal den RFP in der Version 2.05 installiert. In den 
Verbindungseinstellungen kann man jedoch nur zwischen einem "E1", "E20" 
oder "MINICUBE" Interface wählen. Dabei versucht sich die Software mit 
selbigem zu verbinden.
Wie bekomme ich es denn hin, das mein USB/Serial Wandler dort verwendet 
wird? Ich will mich nach nur via UARTA0 an den uC ranmachen ;-)

von Lex (Gast)


Lesenswert?

Olli Z. schrieb:
> Ich habe mir jetzt mal den RFP in der Version 2.05 installiert. In
> den
> Verbindungseinstellungen kann man jedoch nur zwischen einem "E1", "E20"
> oder "MINICUBE" Interface wählen. Dabei versucht sich die Software mit
> selbigem zu verbinden.
> Wie bekomme ich es denn hin, das mein USB/Serial Wandler dort verwendet
> wird? Ich will mich nach nur via UARTA0 an den uC ranmachen ;-)

Hallo Olli,
hat es damals mit dem Auslesen des V850 geklappt? Oder Ist es nicht 
möglich wenn die Protection eingeschaltet ist?

Im RFP kannst du auch anstatt E1 einen COM-Port wählen wo du über den 
USB/UART/TTL Adapter den Chip dran hast.
Welchen Schalt Kreis hast du verwendet? Hast du einfach MD0 udn MD1 auf 
3,3V gezogen? oder umgekehrt? Ich verstehe diese Abbildung mit 
Schalter-Symbole usw nicht! :/
https://www.renesas.com/sg/en/document/man/renesas-flash-programmer-sample-circuit-programming-using-pcs-serial-port

von void (Gast)


Lesenswert?

Lex schrieb:
> Hast du einfach MD0 udn MD1 auf 3,3V gezogen?

Welche(n) Mode Pin(s) du auf welches Level ziehen musst um nach dem 
Reset release im seriellen (2-wire Uart) Programmiermodus zu landen 
hängt von deinem genauen uC Typen ab. So steht es auch in Note2 unter 
der Beispiel-Schaltung C in dem von dir verlinkten Dokument.
Also genauen Typ von deinem V850 uC rausfinden und in dessen Handbuch 
reinschauen.

Lex schrieb:
> Oder Ist es nicht möglich wenn die Protection eingeschaltet ist?

Wenn der Ausleseschutz eingeschaltet ist kann man nix auslesen.

Lex schrieb:
> Ich verstehe diese Abbildung mit Schalter-Symbole usw nicht! :/

Das sind ganz ordinäre Symbole aus dem angloamerikanischen. Masse/Ground 
ist mit drei Schrägstrichen garniert. Der Widerstand ein zick-zack.

von Lex (Gast)


Lesenswert?

Hallo Danke Dir, ich habe gleich eine Stunde nach meinem Post das 
Problem gelöst. Das mit den Schaltsymbole ist mir klar, ich kenne das.. 
trotzdem habe ich gerätselt ob die Schalter von einem automatisierten 
System zum richtigen Moment geschaltet werden müssen aber dann habe ich 
geschnallt dass es sich hier um eine statische Konfiguration handelt. 
MD0 => HIGH, MD1 => LOW und system Restart.

Da war aber ein Hacken und deshalb hatte es gedauert und zwar:
Ich kann nur dann Chip Signatur / Flash Optionen auslesen wenn ich das 
UserSystem einschalte und direkt danach in RFP auf Start klicke.Erneutes 
Auslesen klappt dann nicht bis zum nächsten Restart.In Datenblätter 
steht nichts darüber! Habe alle auswendig gelernt :D : den von E1 
Emulator, v850-UserManual, RFP User Manual, AdditionalNotes usw. Nicht 
über das verhalten.

Frage1: Kennt das Verhalten Jemand?
Überlegung: Es kann natürlich sein, dass mein UserSystem bereits 
irgendwelche Reset/Boot-Steuerung hat und deshalb ein Konflikt mit der 
von dem E1 gibt.

Beitrag #6526090 wurde von einem Moderator gelöscht.
von Lex (Gast)


Lesenswert?

Nächste Frage: Auslesen von dem Flash ist bei Read Protection gesperrt. 
Bin gerade am ausprobieren und workarounds suchen. Wie kann man den chip 
auslesen (!ohne es mit xhip erase vorher zu löschen!)?

von Olli Z. (z80freak)


Lesenswert?

Lex schrieb:
> Bin gerade am ausprobieren und workarounds suchen. Wie kann man den chip
> auslesen (!ohne es mit xhip erase vorher zu löschen!)?
Naja, das wird nicht einfach, sprich eher unmöglich denn genau dafür ist 
die Fuse ja gedacht ;-)
Einzige Möglichkeit (neben so halbesotherischen Glitch-Attacken) die ich 
sehe wäre ein Trojaner oder eine Backdoor in der Firmware zu finden. 
Also in das laufende System eine eigene Software einzubringen welche 
dann den Inhalt des Flash ausliest und auf einen Port sendet.

Boot über ein anderes Medium wird da vermutlich nicht helfen, denn die 
meisten Chips verhindern in diesem Fall das auslesen des internen Flash.

Wenn das Zielsystem noch läuft (war ja bei mir nicht der Fall) und über 
einen Updatemechanismus verfügt, wäre da der Ansatz...

von O. R. (oscherischery)


Lesenswert?

In China und Russland gibt es Firmen, die sich auf genau solche 
Ausleseattacken spezialisiert haben. Die lassen sich aber ihre Dienste 
gut bezahlen und posaunen ihr Wissen auch nicht in irgendwelche 
Bastlerforen :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.