Neuprogrammierung von LPC3154 bei LPCxpresso

8

Ich frage mich, ob es möglich ist, lpc3154 mit einer benutzerdefinierten Firmware auf das LPCExpresso-Board zu laden.

Ich sehe, dass der Chip einen sicheren Start unterstützt. Wenn also ein AES-Schlüssel programmiert wurde, ist es unmöglich, ohne den Schlüssel zu kennen? Oder gibt es Optionen, um lpc3154 zu starten, ohne den Schlüssel zu kennen? (SD, Flash, USB, JTAG ... irgendetwas?)

Weiß jemand, ob der Schlüssel tatsächlich geladen wurde?

Nur den Kauf eines neuen lpc3154 ist keine Option - sie sind hier nirgendwo auf Lager und die Wartezeiten betragen 4 Wochen + (und ein Preisschild> als ein Preis für dieses Board) ...

BarsMonster
quelle
Es gibt kein solches LPCXpresso-Board! Die einzigen Prozessoren sind LPC1114, LPC1343 und LPC1769.
Leon Heller
Nun, LPC3154 befindet sich auf jedem dieser Hosts. :-) Das möchte ich neu programmieren. Ich habe 2 LPCxpresso-Boards, und es wäre so schön, einen so saftigen 192-KB-SRAM-Chip wiederzuverwenden ...
BarsMonster
1
Noch nicht, die einzige Antwort, die ich im offiziellen Forum erhalten habe, war "Das wäre cool" :-)
BarsMonster
1
Wollte gerade ein kleines Kopfgeld hinzufügen, da ich denke, dass dies eine großartige Frage ist, aber Sie haben selbst keinen Mangel an Repräsentanten;) ... bieten Sie vielleicht ein bisschen eine Antwort an?
Tyblu
1
@tyblu: fertig, musste ein weiteres Kopfgeld früher
beenden ;-)

Antworten:

4

Soweit ich weiß, wird der AES-Schlüssel in den Chip geladen. Möglicherweise wird auch die Firmware nach CR232 überprüft oder es werden OTP-Sicherungen eingestellt

Quelle

Unterstützt unsicheres Booten von UART- und USB-Schnittstellen (DFU-Klasse) während der Entwicklung. Sobald der AES-Schlüssel im OTP programmiert ist, ist nur ein sicherer Start über UART und USB zulässig.

Dies bedeutet nicht, dass es nicht gehackt werden kann, wenn Sie die Zeit dafür investieren. Ich würde prüfen, ob die JTAG-Pins deaktiviert wurden und von dort aus starten.

Einige interessante Aussagen aus dem Benutzerhandbuch

7.1 Anwendungsfall der Produktionslinie In der NXP-Produktionslinie wird das OTP mit JTAG getestet und programmiert. Im Testmodus wird direkt auf den Sicherungsblock selbst zugegriffen. Während der Programmierung benötigt der VPP eine höhere Spannung als im Anwendungsfall. Die schriftlichen Daten werden anschließend durch Auslesen der Sicherungen überprüft (unter Verwendung einer Niederspannung am VPP). Der Kunde programmiert das OTP auch nur an der Produktionslinie, hier wird die DFU-Programmierung verwendet. Ein Bild zum Programmieren von vom Kunden ausgewählten Bits kann über USB in das Gerät geladen werden.

7.2 Anwendungsfall für Anwendungen Zunächst ist es wichtig sicherzustellen, dass das Register data_15 früh während der Initialisierung aktualisiert wird (per Boot-Code). Dadurch wird die Sicherheitsstufe festgelegt. Das Design enthält vier Sicherheitsstufen:

• Stufe 0: Nichts ist geschützt.

• Stufe 1: Passwort geschützt. In dieser Ebene kann JTAG per Software nach der Kennwortsequenz aktiviert werden (abhängig von der Kundenanwendung), indem das Sticky-Bit 'JTAG_EN' im OTP_con-Register gesetzt wird.

• Stufe 2: In dieser Stufe kann der JTAG-Zugriff mit speziellen Testgeräten aktiviert werden. Wird von NXP nur für die Rücksendeanalyse verwendet.

• Stufe 3: JTAG ist vollständig deaktiviert und daher ist der Chip praktisch gesperrt.

Der Kunde kann die Sicherheitsstufe des Chips programmieren. Für Stufe 1 sollte das Sicherungsbit 509 gesetzt werden. Für Stufe 2 werden die Sicherungsbits 509 und 510 gesetzt. Für Stufe 3 sind die Sicherungsbits 509, 510 und 511 programmiert. Ein Sonderfall besteht darin, dass der Kunde das Schreiben auf die Sicherungen deaktiviert. Da jedoch in der Anwendung eine Niederspannung (zum Lesen) an den VPP angeschlossen wird, ist das Schreiben ohnehin nicht möglich. Während der normalen Anwendung wurden die Sicherungen bereits in der Produktionslinie programmiert. Es bleiben also drei Optionen: Kopieren der Sicherungsdaten in die Datenregister, Lesen dieser Daten und Einstellen des Leseschutzes. Der Startcode kopiert die Sicherungsdaten in die Datenregister, da dies für Sicherheit und DRM erforderlich ist. Danach können die Daten über den APB0-Bus (gemäß den Leseschutzeinstellungen) aus den Datenregistern gelesen werden.

Bearbeiten: Wenn der Schlüssel wirklich geladen ist, können Sie benutzerdefinierte Firmware nur laden, wenn Sie den Schlüssel haben.

jsolarski
quelle
1
Die Existenz von Level 2 ist erschreckend. Ich frage mich, ob "spezielle Testgeräte" die Kennwortanforderung für Stufe 1 überschreiben.
Kevin Vermeer
@reemrevnivek, für so viele Leute, die Angst haben, dass es wahrscheinlich eine große Anzahl fehlerhafter Chips gibt, die sie ohne sie nicht debuggen könnten. Wenn Sie Level 2 einstellen, wissen Sie wirklich, was Sie tun. In einem Endprodukt würden Sie wahrscheinlich Level 3 einstellen. Trotzdem großartige Forschung!
Kortuk
Ich
Ich konnte keine direkte Referenz finden, die besagt, dass der Schlüssel geladen wurde, aber meine Vermutung ist immer noch ja, nur wegen der geschlossenen Natur der Tafel.
jsolarski
2

Die Frage wurde hier im LPCXpresso-Forum beantwortet . Das Gerät kann nur DFU-Software von Code Red laden.

Von NXP_USA :

Die in LPCXpresso eingebetteten LPC-LINK-Karten können nur DFU-Firmware von unserem LPCXpresso-IDE-Partner Code Red laden. Die LPCXpresso-Schaltpläne finden Sie jedoch hier: http://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res . Sie sind eine nützliche Referenz für ein flexibleres LPC3154-Design, das beliebige Firmware über DFU akzeptieren kann.

Der LPC3154 ist bei Digi-Key und Mouser erhältlich .

Leon Heller
quelle
Dies erklärt nicht, dass wir keine Firmware von Drittanbietern laden können.
BarsMonster
Dieser Beitrag verweist auf einen anderen Thread, der unten einen maßgeblichen Beitrag von NXP enthält. Ich werde Ihnen helfen und die Links für Sie ...
Kevin Vermeer
1

Ich habe mit der LPCXpresso LPC1114-Karte experimentiert. Es scheint, dass die Programmierschnittstelle (LPC3154) USB High-Speed ​​(480 MHz) ist und dass das von Ihnen verwendete USB-Kabel äußerst speziell ist. Wenn das Kabel (oder der Host-Port) nicht erstklassig ist, kann es sehr instabil sein, häufig abstürzen und sogar andere USB-Geräte am selben Root-Port blockieren. Nach dem Schreiben einer Reihe von USB-Stacks ist dieser USB-Stack meiner Meinung nach nicht sehr robust in Bezug auf Fehler- und Ausnahmebehandlung.

Die Tatsache, dass sie einen so hochwertigen ARM für eine einfache JTAG / SWD-Schnittstelle verwendet haben, ist lächerlich, dass die MCU beim letzten Mal über 13 US-Dollar (bei Digikey) lag.

Ich würde empfehlen, eine andere SWD-Schnittstelle zu verwenden und die auf der Platine zu trennen, wenn Sie Schwierigkeiten haben. Dies sollte auch die Verwendung anderer (nicht Code Red) IDEs mit diesen Karten ermöglichen.

(Wenn bei einem Gerät USB-Probleme auftreten (sogar bei 12 MHz mit voller Geschwindigkeit) und Sie die USB-Host-Anschlüsse an der Vorderseite einer PC-Systemeinheit verwenden, versuchen Sie, die hinteren Anschlüsse am MB selbst zu verwenden. Ich habe gesehen, dass dies bekannt ist Marken von PCs mit nicht konformer (und sehr flockiger) Verkabelung an der Vorderseite der Systemeinheit.)

Izzy Weird

Izzy Weird
quelle