Я использую пользовательскую плату с zynq-7000. Я запускаю два приложения на обоих ядрах. Я хочу поместить cpu0 в незащищенный мир и cpu1 в безопасный мир. Поскольку Cpu1 уже находится в безопасном мире, я пытаюсь сделать Cpu0 в незащищенном мире.
Я пытаюсь поместить cpu0 в нормальный мир и добавляю следующие строки в fsbl.
__asm__ (
"MRC p15, 0, r0, c1, c1, 0;"
"ORR r0, r0, #0x1;"
"MCR p15, 0, r0, c1, c1, 0;"
);
Но, к сожалению, у меня система зависает, и некоторое время выдает «DATA_ABORT_HANDLER FSBL Status = 0xA304». Я добавил эти строки (инструкцию по сборке) в fsbl и попробовал как патч для u-boot (если я загружаю linux вместо baremetal-приложения).
Я также установил биты в регистрах TZ как незащищенные для тестирования.
Xil_Out32( TZ_OCM_RAM0, 0xffffffff);
Xil_Out32( TZ_OCM_RAM1, 0xffffffff);
Xil_Out32( TZ_OCM, 0xffffffff);
Xil_Out32( TZ_DDR_RAM, 0x0000ffff);
Может ли кто-нибудь сказать мне, куда идти отсюда?
Спасибо.
SMC
. - person artless noise   schedule 21.09.2019