Reprogramando LPC3154 na LPCxpresso


8

Gostaria de saber se é possível carregar o lpc3154 na placa LPCExpresso com firmware personalizado?

Vejo que o chip suporta inicialização segura, portanto, se a chave AES foi programada, é impossível sem saber a chave? Ou existem opções para inicializar o lpc3154 sem conhecer a chave? (SD, flash, USB, JTAG ... Alguma coisa?)

Alguém sabe se a chave foi realmente carregada?

Apenas comprar novo lpc3154 não é uma opção - eles não estão em estoque aqui em nenhum lugar, e o tempo de espera é de 4 semanas + (e um preço> do que o preço deste painel) ...


Não existe tal placa LPCXpresso! Os únicos processadores são LPC1114, LPC1343 e LPC1769.
Leon Heller

Bem, o LPC3154 está em cada um deles, na parte do host. :-) É isso que eu quero reprogramar. Eu tenho 2 placas LPCXPRESSO, e seria tão bom para reutilizar tal chip 192kb SRAM suculenta ...
BarsMonster

1
Ainda não, a única resposta que eu recebi no fórum oficial foi 'Isso seria legal' :-)
BarsMonster

1
Estava prestes a adicionar uma pequena recompensa, pois acho que essa é uma ótima pergunta, mas você não tem falta de representante;) ... talvez ofereça um pouco de resposta?
19411 tyblu

1
@tyblu: feito, tinha que terminar uma outra recompensa mais cedo ;-)
BarsMonster

Respostas:


4

Pelo que eu recolho, a chave AES é carregada no chip. E também pode haver uma verificação CR232 no firmware ou nos fusíveis OTP configurados

fonte

Oferece suporte à inicialização não segura das interfaces UART e USB (classe DFU) durante o desenvolvimento. Depois que a chave AES é programada no OTP, somente a inicialização segura é permitida através de UART e USB.

Isso não significa que não pode ser hackeado, se você dedicar algum tempo. Gostaria de verificar se os pinos JTAG foram desativados e começar a partir daí.

algumas declarações interessantes do guia do usuário

7.1 Caso de uso da linha de produção Na linha de produção NXP, o OTP será testado e programado usando JTAG. No modo de teste, o próprio bloco de fusíveis será acessado diretamente. Durante a programação, o VPP precisará de uma tensão mais alta do que no caso de uso do aplicativo. Os dados gravados são verificados posteriormente, lendo os fusíveis (usando uma baixa tensão no VPP). O cliente também programará o OTP somente na linha de produção, aqui a programação DFU será usada. Uma imagem para programar bits selecionados pelo cliente pode ser carregada no dispositivo via USB.

7.2 Caso de uso do aplicativo nitialmente, é importante garantir que o registro data_15 seja atualizado cedo durante a inicialização (por código de inicialização), isso definirá o nível de segurança. Quatro níveis de segurança são implementados no design:

• Nível 0: nada está protegido.

• Nível 1: protegido por senha. Nesse nível, o JTAG pode ser ativado pelo software após a sequência de senha (depende da aplicação do cliente), configurando o bit adesivo 'JTAG_EN' no registro OTP_con.

• Nível 2: neste nível, o acesso JTAG pode ser ativado usando equipamento de teste especial. Usado pelo NXP apenas para análise de material devolvido.

• Nível 3: o JTAG está completamente desativado e, portanto, o chip está praticamente bloqueado.

O cliente pode programar o nível de segurança do chip. Para o nível 1, o bit de fusível 509 deve ser definido. Para o nível 2, os bits de fusível 509 e 510 estão definidos. Para o nível 3, os bits de fusível 509, 510 e 511 são programados. Um caso especial será para o cliente desativar a gravação nos fusíveis, mas como na aplicação uma baixa tensão (para leitura) será conectada ao VPP, a gravação não será possível de qualquer maneira. Durante a aplicação normal, os fusíveis já foram programados na linha de produção. Portanto, restam três opções: copiar os dados do fusível nos registradores de dados, ler esses dados e definir a proteção de leitura. O código de inicialização copiará os dados do fusível nos registradores de dados, porque isso é necessário para segurança e DRM. Depois disso, os dados podem ser lidos nos registros de dados através do barramento APB0 (de acordo com as configurações de proteção de leitura).

Editar: se a chave estiver realmente carregada, você só poderá carregar o firmware personalizado se tiver a chave.


1
A existência do nível 2 é assustadora. Gostaria de saber se 'equipamento de teste especial' substitui o requisito de senha para o nível 1?
23911 Kevin Vermeer

@reemrevnivek, para tantas pessoas que estão assustadas com isso, provavelmente há um grande número de chips com falha que eles não poderiam depurar sem ele. Se você definir o nível 2, sabe o que está fazendo, realmente, em um produto final, provavelmente definirá o nível 3. Ainda assim, uma ótima pesquisa!
25411 Kortuk

Ainda querendo saber se a chave foi carregado ...
BarsMonster

Não consegui encontrar nenhuma referência direta, afirmando que a chave estava carregada, mas meu palpite ainda é sim, apenas por causa da natureza fechada do quadro.
jsolarski

2

A pergunta foi respondida aqui no fórum do LPCXpresso. O dispositivo pode carregar apenas o software DFU do Code Red.

Do NXP_USA :

As placas LPC-LINK distribuídas incorporadas no LPCXpresso só podem carregar o firmware DFU do nosso parceiro Code LPCXpresso IDE Code Red. No entanto, os esquemas do LPCXpresso são publicados aqui: http://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res . Eles são uma referência útil para um design LPC3154 mais flexível que pode aceitar firmware arbitrário via DFU.

O LPC3154 está disponível na Digi-Key e na Mouser .


Isso não explica que não podemos carregar o firmware de terceiros.
BarsMonster

Essa publicação é vinculada a outro segmento, que possui, na parte inferior, uma publicação oficial do NXP. Vou lhe dar uma mão, e soltar os elos para ya ...
Kevin Vermeer

1

Eu tenho experimentado com a placa LPCXpresso LPC1114. Parece que a interface de programação (LPC3154) é USB de alta velocidade (480 MHz) e parece extremamente particular sobre o cabo USB que você usa. Se o cabo (ou a porta do host) não for de primeira qualidade, pode ser muito instável, travar bastante e até travar outros dispositivos USB na mesma porta raiz. Por ter escrito várias pilhas USB, meu palpite é que essa pilha USB específica não é muito robusta em termos de tratamento de erros e exceções.

O fato de terem usado um ARM de ponta para uma interface JTAG / SWD simples é ridículo, pois o MCU estava acima de US $ 13 (na Digikey) da última vez que olhei.

Eu recomendaria usar uma interface SWD diferente e desconectar a da placa se você tiver alguma dificuldade. Isso também deve permitir o uso de outros IDEs (sem código vermelho) nessas placas.

(Se você encontrar problemas de USB com qualquer dispositivo (mesmo a velocidade máxima de 12 MHz) e estiver usando os conectores host USB na frente de uma unidade de sistema para PC, tente usar os conectores traseiros no próprio MB. marcas de PCs com cabeamento não compatível (e muito esquisito) na parte frontal da unidade de sistema.)

Izzy Weird

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.