Memory access in tz_vmm

chirag garg chiragdthinker at ...9...
Tue May 5 07:38:58 CEST 2015


Hi all,

I am working on i.MX6 Sabre Lite board. Total ram available in this board
is 1GB (0x10000000-0x50000000). To demonstrate TrustZone,  i tried to run
tz_vmm with Genode in Normal world also. So i divide the available RAM as
secure (0x10000000-0x30000000) and normal (0x30000000-0x50000000).

On the normal world  ram, secure world also have the access which is
programmed in tzasc (tsc_380.h) driver. I tried to access normal world
region (0x40000000) through IO_MEM from the secure world but when i am
trying to create the iomem object for 0x40000000 region in tz_vmm. It gives
me the following fault.

I/O memory [40000000,50000000) not available
Local MMIO mapping failed!
[init -> tz_vmm] C++ runtime: Genode::Parent::Service_denied

I have included this region in mmio_regions inside the platform_support.cc
also. What could be the reason for this fault. ?

Log :

Starting kernel ...

kernel initialized
Core virtual memory allocator
---------------------
Allocator 10135250 dump:
 Block: [00001000,00002000) size=00001000 avail=00000000 max_avail=00000000
 Block: [00002000,00003000) size=00001000 avail=00000000 max_avail=00000000
 Block: [00003000,00004000) size=00001000 avail=00000000 max_avail=ef832000
 Block: [00004000,00005000) size=00001000 avail=00000000 max_avail=00000000
 Block: [00005000,00006000) size=00001000 avail=00000000 max_avail=ef832000
 Block: [00006000,00007000) size=00001000 avail=00000000 max_avail=00000000
 Block: [00007000,10001000) size=0fffa000 avail=0fffa000 max_avail=ef832000
 Block: [107be000,ffff0000) size=ef832000 avail=ef832000 max_avail=ef832000
 => mem_size=4286783488 (4088 MB) / mem_avail=4286758912 (4088 MB)

RAM memory allocator
---------------------
Allocator 101341f4 dump:
 Block: [10000000,10001000) size=00001000 avail=00000000 max_avail=00000000
 Block: [107be000,107bf000) size=00001000 avail=00000000 max_avail=00000000
 Block: [107bf000,107c0000) size=00001000 avail=00000000 max_avail=00000000
 Block: [107c0000,107c1000) size=00001000 avail=00000000 max_avail=0f83d000
 Block: [107c1000,107c2000) size=00001000 avail=00000000 max_avail=00000000
 Block: [107c2000,107c3000) size=00001000 avail=00000000 max_avail=0f83d000
 Block: [107c3000,20000000) size=0f83d000 avail=0f83d000 max_avail=0f83d000
 => mem_size=260321280 (248 MB) / mem_avail=260296704 (248 MB)

IO memory allocator
-------------------
Allocator 101362b8 dump:
 Block: [00000000,10000000) size=10000000 avail=10000000 max_avail=20000000
 Block: [30000000,50000000) size=20000000 avail=20000000 max_avail=20000000
 => mem_size=805306368 (768 MB) / mem_avail=805306368 (768 MB)

IRQ allocator
-------------------
Allocator 10137314 dump:
 Block: [00000000,00000400) size=00000400 avail=00000400 max_avail=00000400
 => mem_size=1024 (0 MB) / mem_avail=1024 (0 MB)

Genode 15.02
int main(): --- create local services ---
int main(): --- start init ---
:
:
[init] child "tz_vmm"
[init]   RAM quota:  3932160
[init]   ELF binary: tz_vmm
[init]   priority:   0
I/O memory [40000000,50000000) not available
Local MMIO mapping failed!
[init -> tz_vmm] C++ runtime: Genode::Parent::Service_denied
[init -> tz_vmm] void* abort(): abort called


Regards

Chirag Garg
IIT Madras , Rise Lab
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20150505/c66a65d9/attachment.html>


More information about the users mailing list