Reputation: 133
I am exploring the TrustZone (the ARM security extension) on an i.MX53 Quick Starting Board. I succeeded to make a bare-metal system : A secure world image and a normal world image. I load the two images in my ram with u-boot and I boot the secure world who initializes the monitor system and gives the hand to the normal world image.
I want to use the same system. But this time instead of using a normal world basic image, I would like to use a Linux Kernel Image. I did some configurations that I found in the i.MX53 Reference Manual and the i.MX53 Security Reference Manual when I am in the secure world. The configurations are :
Configure the CSU : CSL0-31 to 0x00FF_00FF
Configure the TZIC (interrupts) TZIC_INTSEC0-3 to 0xFFFF_FFFF
, TZIC_PRIORITY0-31 to 0x1F1F_1F1F
and TZIC_INTCTRL to 0x8001_0001
Configure Secure Configuration Register : NS=0 IRQ=0 FIQ=0 EA=0 FW=1 AW=1 => 0x30
When I give the hand to the linux kernel, the boot process starts, here is a part of the output :
regulator: core version 0.5
NET: Registered protocol family 16
i.MX IRAM pool: 128 KB@0xec840000
FAILED TO RELEASE IRAM PARTITION
CPU is i.MX0 Revision 0.0
Unhandled fault: external abort on non-linefetch (0x1008) at 0xec82c00c
Internal error: : 1008 [#1] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.35.3 #1)
PC is at mxc_cpu_lp_set+0x1c/0x16c
LR is at arch_idle+0x60/0x294
pc : [<8003a958>] lr : [<8003ab08>] psr: 60000093
sp : 80835f78 ip : 00000003 fp : 8088fb68
....
As you can notice in the output, there is a problem with the IRAM (because normally it diplays IRAM READY) and there is a data abort. After so displays related to these errors, the Linux kernel boot process stops.
Any ideas of how to solve that ? Am I missing any configuration ? Thank you
Upvotes: 1
Views: 539