Пример использования ARM TrustZone Secure/Normal world"на ZedBoard
Кто-нибудь знает, как реализовать пример работы TrustZone с "Безопасным миром" и "Нормальным миром", приведенный на веб-сайте документации ARM ниже на ZedBoard? Любая документация по этому вопросу (запуск TrustZone на ZedBoard) также будет полезна.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15417.html
ZedBoard имеет Xilinx: Zynq® -7000, полностью программируемый SoC Dual ARM® Cortex™-A9 MPCore™. Более подробную информацию о ZedBoard можно найти здесь:
1 ответ
Это широкая тема. Надеемся, что некоторые из следующей информации помогут.
Прежде всего, просто немного де-жаргон, SOC == система-на-чипе.
Digilent, производитель платы, имеет некоторые файлы поддержки для вашей платы, если у вас есть доступ к цепочке инструментов Xilinx. Итак, во-первых, если вы перейдете по http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD, в нижней части вы найдете два файла с именем "Проектирование оборудования Linux для ISE" <версия номер>.
Также при условии, что вы используете инструменты разработки Xilinx, если вы перейдете к Xilinx /<Номер версии>/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/axi_interconnect_v1_06_a/doc/ds768_axi_interconnect.pdf, вы найдете информацию о прерывателе AXI на контроллере использует. Это включает в себя тот факт, что он поддерживает TrustZone и некоторую информацию о его фактическом использовании.
Далее, если вы зайдете на http://zedboard.org/content/creating-custom-peripheral, вы найдете некоторые инструкции по созданию "периферийного" устройства. Я помещаю это в кавычки, потому что устройство фактически существует полностью в программируемой логике; это не то, что вы подключаете к порту micro-us b или то, что вы обычно считаете "периферийным устройством".
В конце урока есть также ссылка, которая поможет вам прочитать данные с вашего периферийного устройства.
Если вы повторите все эти шаги с файлом system.xmp, включенным в zip, который вы изначально загрузили, то вы заметите, что все тяжелые работы были сделаны для вас. У вас есть подключенный и готовый к работе контроллер прерываний на шине AXI, который уже работает с TrustZone, просто готов и ждем, пока вы подключите к нему небольшое устройство hello world.
Но что вы собираетесь делать с этим устройством Hello World? Если вы посмотрите в сборке учебник, на который вы ссылаетесь, в комментариях вы увидите, что они много говорят о чем-то, что называется "Регистр безопасной конфигурации". Если вы загляните в документацию по вашему процессору (в разделе ресурсов здесь, http://www.arm.com/products/processors/cortex-a/cortex-a9.php) и выполните поиск по термину "Расширения TrustZone" (текущая страница 34, хотя, очевидно, это может быть изменено), вы найдете ссылку на другую страницу, подробно описывающую этот регистр. Это тот же регистр, который они используют в учебном пособии, поэтому теоретически, если у вас настроена доверенная среда выполнения, теперь вы можете заставить учебник hello world работать (в основном; вы, вероятно, захотите делать то, что они делают в сборка с VHDL или Verilog кода и просто представить результаты где-нибудь легко читается в C).
Теперь все, что я только что упомянул, просто даст вам доступ к данным TrustZone на шине AXI. Для того, чтобы сделать что-нибудь интересное с этим, вам действительно нужно создать безопасный мир и нормальный мир для чтения. В противном случае любая демонстрация, которую вы создадите, просто напечатает "Hello from Secure World" (или будет работать некорректно). Так что именно здесь разархивирование того учебника, на который вы ссылались, и прочтение его источника принесет дивиденды.
Хотя мой ответ до сих пор также является неполным, поскольку учебник Hello World, на который вы ссылались, не предназначен для того, чтобы научить вас, как с самого начала создать Нормальный мир (и, возможно, Мир наблюдения). О чем это прямо говорится в файле ReadMe.txt. Так что чтение источника не поможет вам в этом. Для этого вам понадобится ссылка http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/index.html. Там много информации, но она предназначена для справки, и первые две главы, по моему скромному мнению, как раз то, что я люблю называть "пропускаемый текст аромата". Хотя если у вас есть время, чтобы тратить его, это увлекательно и информативно с точки зрения теории безопасности в целом. Глава 3 начнет учить вас, как разрабатывать для TrustZone.
Но, надеюсь, предоставленная мною информация превратит это в меньшую проблему с разрешениями для вас и в большую проблему с образованием. Я все еще учусь этому.