Уважаемые коллеги,
Имеется Freescale Quick Start board i.MX53 (MCIMX53-START-R). SOC i.MX535 c ядром ARM Cortex-a8 и "незаблокированной" технологией TrustZone.
Для изучения возможностей технологии TrustZone, написал простое приложение, которое загружаю и запускаю при помощи u-boot. Предварительно отмечу (напомню), что после включения питания и загрузки u-boot процессор находится в "secure world".
Суть простого приложения: 1) Выключаю MMU ; 2) Создаю свою таблицу преобразования адресов, в которой будут записи для областей ОЗУ, недоступных из "normal world" (записи таблицы страниц с NS-bit = 0) и будут записи для областей доступных из "normal world" (для таких записей в таблице страниц NS = 1) ; 3) Инициализирую соответсвующие регистри (TTBR0 и т.п.) ; 4) Включаю MMU ; 4a) Проверяю работает ли в принципе новая таблица преобразования адресов ?. Да, работает. 5) Инициализирую secure monitor 6) Переключаюсь в "normal world" (проверяю произошло ли переключение ? Да произошло). 6.a Первым делом проверяю доступность "разрешенных" и "запрещенных" для "normal world" адресов. 6.б Обнаруживаю, что и разрешенные и запрещенные области памяти доступны из "normal world". 7) Это неправильно. Не понимаю почему такое происходит.
Имеются ли какие-либо соображения по данной ситуации ?
Отмечу также , что не имеется (у меня, во всяком случае) каких-либо примеров использования trustzone на SOC i.MX535,то есть, сравнить не с чем. Теоретически, вышеописанная процедура должна работать.
С уважением, Вячеслав.
|