Riprogrammazione di LPC3154 presso LPCxpresso


8

Mi chiedo, se è possibile caricare lpc3154 sulla scheda LPCExpresso con firmware personalizzato?

Vedo che il chip supporta l'avvio sicuro, quindi se è stata programmata la chiave AES, è impossibile senza conoscere la chiave? O ci sono opzioni per avviare lpc3154 senza conoscere la chiave? (SD, flash, USB, JTAG ... Qualcosa?)

Qualcuno sa se la chiave è stata effettivamente caricata?

Il solo acquisto di un nuovo lpc3154 non è un'opzione: non sono disponibili qui da nessuna parte e i tempi di attesa sono di 4 settimane + (e un prezzo> di un prezzo di questa scheda) ...


Non esiste una scheda LPCXpresso! Gli unici processori sono LPC1114, LPC1343 e LPC1769.
Leon Heller,

Bene, LPC3154 è su ciascuno di questi, nella parte host. :-) Questo è quello che voglio riprogrammare. Ho 2 schede LPCxpresso, e sarebbe così bello riutilizzare un chip SRAM 192kb così succoso ...
BarsMonster

1
Non ancora, l'unica risposta che ho ricevuto sul forum ufficiale è stata "Sarebbe bello" :-)
BarsMonster

1
Stavo per aggiungere una piccola taglia poiché penso che questa sia un'ottima domanda, ma non hai carenza di rappresentante te stesso;) ... forse offri un po 'per una risposta?
tyblu,

1
@tyblu: fatto, ho dovuto terminare un'altra taglia prima ;-)
BarsMonster

Risposte:


4

Da quello che raccolgo la chiave AES viene caricata nel chip. Inoltre, potrebbe esserci un controllo CR232 sul firmware o set di fusibili OTP

fonte

Supporta l'avvio non sicuro dalle interfacce UART e USB (classe DFU) durante lo sviluppo. Una volta programmata la chiave AES in OTP, è consentito solo l'avvio sicuro tramite UART e USB.

Questo non significa che non possa essere hackerato, se ci metti il ​​tempo. Vorrei verificare se i pin JTAG sono stati disabilitati e iniziare da lì.

alcune dichiarazioni interessanti dalla guida per l' utente

7.1 Caso d'uso della linea di produzione Nella linea di produzione NXP l'OTP verrà testato e programmato utilizzando JTAG. In modalità test, si accederà direttamente al blocco fusibili stesso. Durante la programmazione, il VPP avrà bisogno di una tensione maggiore rispetto al caso d'uso dell'applicazione. I dati scritti vengono successivamente controllati leggendo i fusibili (utilizzando una bassa tensione su VPP) Il cliente programmerà anche l'OTP solo sulla linea di produzione, qui verrà utilizzata la programmazione DFU. Un'immagine per la programmazione dei bit selezionati dal cliente può essere caricata nel dispositivo tramite USB.

7.2 Caso d'uso dell'applicazione in modo nitido è importante assicurarsi che il registro data_15 sia aggiornato anticipatamente durante l'inizializzazione (tramite il codice di avvio), questo imposterà il livello di sicurezza. Nel progetto sono implementati quattro livelli di sicurezza:

• Livello 0: nulla è protetto.

• Livello 1: protetto da password. A questo livello, JTAG può essere abilitato dal software dopo la sequenza di password (dipende dall'applicazione del cliente) impostando il bit appiccicoso "JTAG_EN" nel registro OTP_con.

• Livello 2: a questo livello, l'accesso JTAG può essere abilitato utilizzando speciali apparecchiature di prova. Utilizzato da NXP solo per l'analisi del materiale restituito.

• Livello 3: JTAG è completamente disabilitato e quindi il chip è praticamente bloccato.

Il cliente può programmare il livello di sicurezza del chip. Per il livello 1, è necessario impostare il bit del fusibile 509. Per il livello 2, vengono impostati i bit dei fusibili 509 e 510. Per il livello 3, i bit dei fusibili 509, 510 e 511 sono programmati. Un caso speciale sarà per il cliente disabilitare la scrittura sui fusibili, ma poiché nell'applicazione verrà collegata una bassa tensione (per la lettura) al VPP, la scrittura non sarà comunque possibile. Durante la normale applicazione, i fusibili saranno già stati programmati sulla linea di produzione. Rimangono quindi tre opzioni: copiare i dati dei fusibili nei registri dei dati, leggere questi dati e impostare la protezione di lettura. Il codice di avvio copierà i dati dei fusibili nei registri dei dati poiché ciò è necessario per la sicurezza e il DRM. Successivamente, i dati possono essere letti dai registri dati tramite il bus APB0 (in base alle impostazioni di protezione della lettura).

Modifica: se la chiave è davvero caricata, sarà possibile caricare il firmware personalizzato solo se si dispone della chiave.


1
L'esistenza del livello 2 è spaventosa. Mi chiedo se le "apparecchiature di prova speciali" prevalgono sui requisiti di password per il livello 1?
Kevin Vermeer,

@reemrevnivek, per il maggior numero di persone spaventate dal fatto che probabilmente ci sono un gran numero di chip falliti che non potrebbero eseguire il debug senza di esso. Se imposti il ​​livello 2 sai davvero cosa stai facendo, in un prodotto finale probabilmente imposteresti il ​​livello 3. Comunque, ottima ricerca!
Kortuk,

Mi

Non sono riuscito a trovare alcun riferimento diretto, affermando che la chiave era caricata, ma la mia ipotesi è ancora sì, solo per la natura chiusa della scheda.
jsolarski,

2

Alla domanda è stata data una risposta qui sul forum LPCXpresso. Il dispositivo può caricare il software DFU solo da Code Red.

Da NXP_USA :

Le schede LPC-LINK distribuite integrate in LPCXpresso possono caricare solo il firmware DFU dal nostro partner IDE LPCXpresso Code Red. Tuttavia, gli schemi di LPCXpresso sono pubblicati qui: http://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res . Sono un utile riferimento per un design LPC3154 più flessibile che potrebbe accettare firmware arbitrario tramite DFU.

LPC3154 è disponibile da Digi-Key e Mouser .


Questo non spiega uno che non possiamo caricare firmware di terze parti.
Bars Mons

Quel post si collega a un altro thread, che ha, in fondo, un post autorevole da NXP. Ti darò una mano e ti lascerò i link per te ...
Kevin Vermeer,

1

Ho sperimentato la scheda LPCXpresso LPC1114. Sembra che l'interfaccia di programmazione (LPC3154) sia USB ad alta velocità (480 MHz) e sembra estremamente particolare riguardo al cavo USB che usi. Se il cavo (o la porta host) non è di prim'ordine, potrebbe essere molto instabile, bloccarsi molto e persino bloccare altri dispositivi USB sulla stessa porta root. Da quando ho scritto un certo numero di stack USB, suppongo che questo particolare stack USB non sia molto robusto in termini di gestione degli errori e delle eccezioni.

Il fatto che abbiano usato un ARM di fascia alta per una semplice interfaccia JTAG / SWD è ridicolo, che la MCU è stata oltre $ 13 (a Digikey) l'ultima volta che ho guardato.

Consiglierei di utilizzare un'interfaccia SWD diversa e di disconnettere quella sulla scheda in caso di difficoltà. Ciò dovrebbe anche consentire l'uso di altri IDE (non Code Red) con queste schede.

(Se riscontri problemi USB con qualsiasi dispositivo (anche Full-Speed ​​12 MHz) e stai utilizzando i connettori host USB nella parte anteriore di un'unità di sistema del PC, prova a utilizzare i connettori posteriori sull'MB stesso. Ho visto ben noti marche di PC con cablaggio non conforme (e molto traballante) nella parte anteriore dell'unità di sistema.)

Izzy Weird

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.