Перепрограммирование LPC3154 в LPCxpresso


8

Интересно, можно ли на плате LPCExpresso загрузить lpc3154 с кастомной прошивкой?

Я вижу, что чип поддерживает безопасную загрузку, поэтому, если ключ AES был запрограммирован, это невозможно без знания ключа? Или есть варианты загрузки lpc3154 не зная ключа? (SD, вспышка, USB, JTAG ... Что-нибудь?)

Кто-нибудь знает, действительно ли ключ был загружен?

Просто купить новый lpc3154 не вариант - их здесь нет нигде, а время ожидания составляет 4 недели + (и ценник> цены этой платы) ...


Нет такой платы LPCXpresso! Единственными процессорами являются LPC1114, LPC1343 и LPC1769.
Леон Хеллер

Ну, LPC3154 находится на каждом из них, на хост-части. :-) Это то, что я хочу перепрограммировать. У меня есть 2 платы LPCxpresso, и было бы так здорово использовать такой сочный чип SRAM 192 КБ ...
BarsMonster

1
Пока нет, единственный ответ, который я получил на официальном форуме, был «Это было бы круто» :-)
BarsMonster

1
Собирался добавить небольшую награду, так как я думаю, что это отличный вопрос, но у вас нет недостатка в репутации;) ... возможно, предложите немного ответа?
tyblu

1
@tyblu: сделано, должен был закончить другую награду раньше ;-)
BarsMonster

Ответы:


4

Из того, что я понял, ключ AES загружен в чип. А также может быть проверка CR232 на прошивке, а также установка предохранителей OTP

источник

Поддерживает незащищенную загрузку с интерфейсов UART и USB (класс DFU) во время разработки. Как только ключ AES запрограммирован в OTP, разрешена только безопасная загрузка через UART и USB.

Это не значит, что его нельзя взломать, если вы потратите на это время. Я бы проверил, отключены ли контакты JTAG, и начну оттуда.

некоторые интересные утверждения из руководства пользователя

7.1 Вариант использования производственной линии На производственной линии NXP OTP будет тестироваться и программироваться с использованием JTAG. В тестовом режиме доступ к самому блоку предохранителей будет осуществляться напрямую. Во время программирования VPP потребуется более высокое напряжение, чем в случае использования приложения. После этого записанные данные проверяются путем считывания предохранителей (с использованием низкого напряжения на VPP). Заказчик также будет программировать OTP только на производственной линии, здесь будет использоваться программирование DFU. Изображение для программирования выбранных пользователем битов может быть загружено в устройство через USB.

7.2 Случай использования приложения очень важен, чтобы убедиться, что регистр data_15 обновляется рано во время инициализации (с помощью загрузочного кода), это установит уровень безопасности. В проекте реализованы четыре уровня безопасности:

• Уровень 0: ничто не защищено.

• Уровень 1: защищен паролем. На этом уровне JTAG может быть включен программным обеспечением после последовательности паролей (зависит от приложения клиента), установив залипший бит «JTAG_EN» в регистре OTP_con.

• Уровень 2: на этом уровне доступ JTAG может быть включен с помощью специального испытательного оборудования. Используется NXP только для анализа возвращенных материалов.

• Уровень 3: JTAG полностью отключен, и, следовательно, чип фактически заблокирован.

Клиент может запрограммировать уровень безопасности чипа. Для уровня 1 должен быть установлен бит предохранителя 509. Для уровня 2 установлены биты предохранителей 509 и 510. Для уровня 3 запрограммированы биты предохранителей 509, 510 и 511. Особый случай будет для клиента, чтобы отключить запись на предохранители, но так как в приложении низкое напряжение (для чтения) будет подключено к VPP, запись все равно будет невозможна. При нормальном применении предохранители уже запрограммированы на производственной линии. Таким образом, остаются три варианта: копирование данных предохранителя в регистры данных, чтение этих данных и установка защиты от чтения. Загрузочный код скопирует данные предохранителя в регистры данных, потому что это необходимо для безопасности и DRM. После этого данные могут быть считаны из регистров данных через шину APB0 (в соответствии с настройками защиты от чтения).

Редактировать: если ключ действительно загружен, вы сможете загрузить пользовательскую прошивку, только если у вас есть ключ.


1
Существование уровня 2 пугает. Интересно, переопределяет ли «специальное испытательное оборудование» требование к паролю для уровня 1?
Кевин Вермеер,

@reemrevnivek, для стольких людей, которые напуганы тем, что, вероятно, существует большое количество неисправных чипов, которые они не смогли бы отладить без него. Если вы установите уровень 2, вы знаете, что вы делаете, действительно, в конечном продукте вы, вероятно, установите уровень 3. Тем не менее, отличное исследование!
Кортук

Все еще задаюсь вопросом, был ли загружен ключ ...
BarsMonster

Я не смог найти никакой прямой ссылки, утверждающей, что ключ был загружен, но я все еще думаю, что да, просто из-за закрытого характера платы.
jsolarski

2

На вопрос ответили здесь, на форуме LPCXpresso. Устройство может загружать только программное обеспечение DFU из Code Red.

От NXP_USA :

Платы LPC-LINK, встроенные в LPCXpresso, могут загружать микропрограмму DFU только от нашего партнера LPCXpresso IDE Code Red. Однако схемы LPCXpresso размещены здесь: http://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res . Они являются полезным справочным материалом для более гибкой конструкции LPC3154, которая может принимать произвольные прошивки через DFU.

LPC3154 доступен от Digi-Key и Mouser .


Это не объясняет того, что мы не можем загрузить стороннюю прошивку.
BarsMonster

Этот пост ссылается на другую ветку, в которой внизу находится авторитетный пост от NXP. Я собираюсь помочь вам и закинуть ссылки для вас ...
Кевин Вермеер

1

Я экспериментировал с платой LPCXpresso LPC1114. Похоже, что программный интерфейс (LPC3154) - это USB High-Speed ​​(480 МГц), и кажется, что он использует USB-кабель. Если кабель (или порт хоста) не на высшем уровне, он может быть очень нестабильным, часто выходить из строя и даже блокировать другие USB-устройства в том же корневом порту. Исходя из того, что я написал несколько USB-стеков, я думаю, что этот конкретный USB-стек не очень надежен с точки зрения обработки ошибок и исключений.

Тот факт, что они использовали такой высокопроизводительный ARM для простого интерфейса JTAG / SWD, вызывает смех, что MCU в прошлый раз, когда я смотрел, стоил более 13 долларов (в Digikey).

Я бы порекомендовал использовать другой интерфейс SWD и отключить его на плате, если у вас есть какие-либо трудности. Это также должно разрешить использование других (не Code Red) IDE с этими платами.

(Если вы сталкиваетесь с проблемами USB на любом устройстве (даже на полной скорости 12 МГц) и используете хост-разъемы USB на передней панели системного блока ПК, попробуйте использовать задние разъемы на самом МБ. Я видел хорошо известные бренды ПК с несовместимыми (и очень ненадежными) кабелями на передней панели системного блока.)

Иззи Уирд

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.