Reprogramación LPC3154 en LPCxpresso


8

Me pregunto, si es posible cargar lpc3154 en la placa LPCExpresso con firmware personalizado.

Veo que el chip admite un arranque seguro, por lo que si se programó la clave AES, ¿es imposible sin conocer la clave? ¿O hay alguna opción para arrancar lpc3154 sin conocer la clave? (SD, flash, USB, JTAG ... ¿Algo?)

¿Alguien sabe si la llave se cargó realmente?

Simplemente comprar el nuevo lpc3154 no es una opción: no están disponibles en ninguna parte aquí, y los tiempos de espera son 4 semanas o más (y una etiqueta de precio> que el precio de esta placa) ...


¡No existe tal tablero LPCXpresso! Los únicos procesadores son LPC1114, LPC1343 y LPC1769.
Leon Heller

Bueno, LPC3154 está en cada uno de estos, en la parte del host. :-) Eso es lo que quiero reprogramar. Tengo 2 tableros LPCxpresso, y sería muy agradable reutilizar un chip SRAM tan jugoso de
192 kb

1
Todavía no, la única respuesta que recibí en el foro oficial fue 'Eso sería genial' :-)
BarsMonster

1
Estaba a punto de agregar una pequeña recompensa, ya que creo que esta es una gran pregunta, pero no tiene escasez de representante usted mismo;) ... ¿tal vez ofrecer un poco de respuesta?
tyblu

1
@tyblu: hecho, tuve que terminar otra recompensa antes ;-)
BarsMonster

Respuestas:


4

Por lo que deduzco, la clave AES se carga en el chip. Y también puede haber una verificación CR232 en el firmware o un conjunto de fusibles OTP

fuente

Admite arranque no seguro desde interfaces UART y USB (clase DFU) durante el desarrollo. Una vez que la clave AES está programada en el OTP, solo se permite el arranque seguro a través de UART y USB.

Esto no significa que no pueda ser pirateado, si le dedicas tiempo. Verificaría si los pines JTAG se han deshabilitado y comenzaré desde allí.

algunas declaraciones interesantes de la guía del usuario

7.1 Caso de uso de la línea de producción En la línea de producción de NXP, el OTP se probará y programará utilizando JTAG. En el modo de prueba, se accederá directamente al bloque de fusibles. Durante la programación, el VPP necesitará un voltaje más alto que en el caso de uso de la aplicación. Los datos escritos se verifican luego leyendo los fusibles (usando un voltaje bajo en VPP). El cliente también programará la OTP solo en la línea de producción, aquí se utilizará la programación DFU. Se puede cargar una imagen para programar bits seleccionados por el cliente en el dispositivo a través de USB.

7.2 El caso de uso de la aplicación es esencial para asegurarse de que el registro data_15 se actualice temprano durante la inicialización (por código de arranque), esto establecerá el nivel de seguridad. Se implementan cuatro niveles de seguridad en el diseño:

• Nivel 0: nada está protegido.

• Nivel 1: protegido con contraseña. En este nivel, el software puede habilitar JTAG después de la secuencia de contraseña (depende de la aplicación del cliente) configurando el bit 'JTAG_EN' en el registro OTP_con.

• Nivel 2: en este nivel, el acceso JTAG se puede habilitar utilizando un equipo de prueba especial. Usado por NXP solo para análisis de materiales devueltos.

• Nivel 3: JTAG está completamente deshabilitado y, por lo tanto, el chip está prácticamente bloqueado.

El cliente puede programar el nivel de seguridad del chip. Para el nivel 1, se debe establecer el bit de fusible 509. Para el nivel 2, se establecen los bits de fusible 509 y 510. Para el nivel 3, los bits fusibles 509, 510 y 511 están programados. Un caso especial será que el cliente desactive la escritura en los fusibles, pero dado que en la aplicación se conectará un bajo voltaje (para lectura) al VPP, la escritura no será posible de todos modos. Durante la aplicación normal, los fusibles ya se habrán programado en la línea de producción. Por lo tanto, quedan tres opciones: copiar los datos del fusible en los registros de datos, leer estos datos y configurar la protección contra lectura. El código de arranque copiará los datos del fusible en los registros de datos porque esto es necesario para la seguridad y DRM. Después de esto, los datos se pueden leer desde los registros de datos a través del bus APB0 (de acuerdo con la configuración de protección de lectura).

Editar: si la clave está realmente cargada, solo podrá cargar firmware personalizado si tiene la clave.


1
La existencia del Nivel 2 es aterradora. Me pregunto si 'equipo de prueba especial' anula el requisito de contraseña para el nivel 1?
Kevin Vermeer el

@reemrevnivek, para tantas personas que tienen miedo de que probablemente haya una gran cantidad de chips fallidos que no podrían depurar sin ella. Si establece el nivel 2, sabe lo que está haciendo, realmente, en un producto final probablemente establecería el nivel 3. ¡Aún así, una gran investigación!
Kortuk

Todavía me pregunto si la llave se cargó ...
BarsMonster

No pude encontrar ninguna referencia directa, indicando que la clave estaba cargada, pero mi suposición sigue siendo sí, solo por la naturaleza cerrada de la placa.
jsolarski

2

La pregunta fue respondida aquí en el foro LPCXpresso. El dispositivo solo puede cargar el software DFU desde Code Red.

Desde NXP_USA :

Las placas LPC-LINK distribuidas integradas en LPCXpresso, solo pueden cargar firmware DFU de nuestro socio LPCXpresso IDE Code Red. Sin embargo, los esquemas de LPCXpresso se publican aquí: http://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res . Son una referencia útil para un diseño LPC3154 más flexible que podría aceptar firmware arbitrario a través de DFU.

El LPC3154 está disponible en Digi-Key y Mouser .


Esto no explica que no podamos cargar firmware de terceros.
BarsMonster

Esa publicación se vincula a otro hilo, que tiene, en la parte inferior, una publicación autorizada de NXP. Te voy a echar una mano y te dejaré caer los enlaces ...
Kevin Vermeer

1

He estado experimentando con la placa LPCXpresso LPC1114. Parece que la interfaz de programación (LPC3154) es USB de alta velocidad (480 MHz) y parece extremadamente particular sobre el cable USB que utiliza. Si el cable (o el puerto host) no es de primera categoría, puede ser muy inestable, bloquearse mucho e incluso bloquear otros dispositivos USB en el mismo puerto raíz. Después de haber escrito varias pilas de USB, creo que esta pila de USB en particular no es muy robusta en términos de errores y manejo de excepciones.

El hecho de que usaran un ARM de alta gama para una interfaz JTAG / SWD simple es ridículo, que la última vez que miré MCU había superado los $ 13 (en Digikey).

Recomendaría usar una interfaz SWD diferente y desconectar la de la placa si tiene alguna dificultad. Esto también debería permitir el uso de otros IDEs (que no sean del Código Rojo) con estos tableros.

(Si encuentra problemas de USB con cualquier dispositivo (incluso Full-Speed ​​12 MHz) y está utilizando los conectores de host USB en la parte frontal de una unidad de sistema de PC, intente usar los conectores traseros en el propio MB. He visto bien conocidos marcas de PC con cableado no compatible (y muy escamoso) en la parte frontal de la unidad del sistema).

Izzy Weird

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.