Я использую нестандартную плату, имеющую 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);
Может кто-нибудь сказать мне, куда идти отсюда?
Спасибо.