Raspberry Pi 1B Безопасный регистр конфигурации - PullRequest
0 голосов
/ 28 сентября 2018

Теперь я делаю низкоуровневый инструмент для чистого металла для RPi.И мне нужно получить значение Secure Configuration Register .Я написал следующую инструкцию mrc p15, 0, r0, c1, c1, 0, чтобы получить ее.Но ЦП переходит в Неопределенный режим исключения и CPSR значение равно 0x600001DB .

Инструкция чтения значения SCR является первой инструкцией, выполняемой ЦП.

Я бы прочитал ARM1176JZF-S TRM r0p7 несколько раз, но я не нашел никаких ограничений на использование инструкции чтения SCR, за исключением того, что являюсь процессором в Безопасном привилегированном режиме но в соответствии с TRM этот процессор начинается с Безопасный привилегированный режим .Если быть более конкретным, начальный режим - Secure Supervisor Mode .

Я использую следующую команду для выполнения кода с QEMU qemu-system-arm -cpu arm1176 -M versatilepb -m 256 -nographic -kernel start.elf -s -S -monitor stdio

Не могу понять, что я пропустил?

1 Ответ

0 голосов
/ 05 октября 2018

Универсальная плата QEMU не поддерживает TrustZone: она создает ЦП с отключенной этой функцией.

Другие модели плат QEMU поддерживают TZ, если вы хотите поиграть с ней: например, vexpress-a9, vexpress-а15 и распи2;также "virt", если вы передаете -machine secure = on в командной строке QEMU.

...