Загрузчик у них хранится вообще в ROM, которая зашита диалогом. Стартует он по хард ресету и ищет скрипт конфигурации, который может находиться либо в otp, либо во flash, либо вообще отсутствовать. Соответственно, единственная точка управления загрузкой — этот скрипт. В нём могут храниться пары регистр-значение, всякие калибровочные значения, а так же адрес вторичного загрузчика во флэше. Всё это в определённом формате.
Некоторые области OTP также используются для хранения ключей расшифровки прошивки налету, ключей проверки подписи загрузочного образа и пользовательских ключей. Доступ к этим областям можно ограничить специальным каналом дма.
Также есть пользовательская область OTP, её можно использовать как угодно, например для хранение кода самописного загрузчика.
Таким образом, otp может являться только вторичным загрузчиком.
Что касается шифрования образа — это делается утилитами, предоставляемого диалогом SDK. Можно и без них, но я лично так не делал. Затем зашифрованный образ зашивается во флэш и делается соответствующая (неотменяемая) запись в otp, разрешающая secure boot. После чего образ проверяется ROM загрузчиком, после каждого ребута. И если что-то не сошлось мы получаем кирпич, вместо контроллера.
Также на продакшн можно отключить дебаггер, завершить скрипт конфигурации и запретить доступ к отп каким либо иным способом, кроме защищённого канала DMA.
Тогда, в отличие от первого случая, будет абсолютный кирпич)
Загрузчик у них хранится вообще в ROM, которая зашита диалогом. Стартует он по хард ресету и ищет скрипт конфигурации, который может находиться либо в otp, либо во flash, либо вообще отсутствовать. Соответственно, единственная точка управления загрузкой — этот скрипт. В нём могут храниться пары регистр-значение, всякие калибровочные значения, а так же адрес вторичного загрузчика во флэше. Всё это в определённом формате.
Некоторые области OTP также используются для хранения ключей расшифровки прошивки налету, ключей проверки подписи загрузочного образа и пользовательских ключей. Доступ к этим областям можно ограничить специальным каналом дма.
Также есть пользовательская область OTP, её можно использовать как угодно, например для хранение кода самописного загрузчика.
Таким образом, otp может являться только вторичным загрузчиком.
Что касается шифрования образа — это делается утилитами, предоставляемого диалогом SDK. Можно и без них, но я лично так не делал. Затем зашифрованный образ зашивается во флэш и делается соответствующая (неотменяемая) запись в otp, разрешающая secure boot. После чего образ проверяется ROM загрузчиком, после каждого ребута. И если что-то не сошлось мы получаем кирпич, вместо контроллера.
Также на продакшн можно отключить дебаггер, завершить скрипт конфигурации и запретить доступ к отп каким либо иным способом, кроме защищённого канала DMA.
Тогда, в отличие от первого случая, будет абсолютный кирпич)
Спасибо за труд!