Experimenting the vm-tz example on the Freescale i.mx6 SDB
Mahdi Aichouch
foxmehdi at gmail.com
Tue Mar 17 14:46:37 CET 2015
Hello,
I am trying to experiment the "vm-tz" example on the Freescale i.mx6 SDB
board.
At first, my goal is to understand the example, thus I am interested in
running
a simple test kernel instead of a full linux kernel.
Specifically, I am trying to reproduce the experimentation of the article
related to the trustzone
implementation on Fiasco.OC L4re, "ARM Trustzone as a Virtualization
Technique in Embedded Systems".
In particular, it is mentioned in the article at the "Implementation"
paragraph that "Multiplexing two or more OS is supported by our design."
I would like to investigate this point.
I created a new entry to generate the vm-tz binary.
I added the following entry to the "src/l4/conf/modules.list" file :
entry tz_vm
roottask moe --init=rom/vm-tz
module l4re
module vm-tz
Is my configuration entry correct, is there any missing modules that are
required by the example?
I tested the binary on the board using tftp, and I obtained the following
results:
L4 Bootstrapper
Build: #12 Tue Mar 17 12:10:02 CET 2015, 4.8.3 20140320 (prerelease)
Scanning up to 1024 MB RAM, starting at offset 32MB
Memory size is 1024MB (10000000 - 4fffffff)
RAM: 0000000010000000 - 000000004fffffff: 1048576kB
Total RAM: 1024MB
Scanning fiasco
Scanning sigma0
Scanning moe
Moving up to 5 modules behind 11100000
moving module 02 { 110a5000-110de63f } -> { 11195000-111ce63f } [235072]
moving module 01 { 1109b000-110a438b } -> { 1118b000-1119438b } [37772]
moving module 00 { 11044000-1109a0c7 } -> { 11134000-1118a0c7 } [352456]
moving module 04 { 1102a000-11043597 } -> { 1111a000-11133597 } [103832]
moving module 03 { 11010000-11029473 } -> { 11100000-11119473 } [103540]
Loading fiasco
Loading sigma0
Loading moe
find kernel info page...
found kernel info page at 0x10002000
Regions of list 'regions'
[ 10000000, 100000e3] { e4} Root mbi_rt
[ 10001000, 10001aff] { b00} Kern fiasco
[ 10002000, 10062fff] { 61000} Kern fiasco
[ 10090000, 10096edf] { 6ee0} Sigma0 sigma0
[ 10098000, 1009e177] { 6178} Sigma0 sigma0
[ 10140000, 10171d77] { 31d78} Root moe
[ 10178000, 101934ab] { 1b4ac} Root moe
[ 11000000, 1100f4ff] { f500} Boot bootstrap
[ 11100000, 11133fff] { 34000} Root Module
API Version: (87) experimental
Sigma0 config ip:10090100 sp:00000000
Roottask config ip:10140260 sp:00000000
Starting kernel fiasco at 100012c8
Number of IRQs available at this GIC: 160
FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 4, v: 9, i: 41, t: hard, p:
dbl/sngl
L2: ID=410000c7 Type=9e340340 Aux=02070000 WMask=ffff S=0
L2: Type L2C-310 Size = 1024kB Ways=16 Waysize=64
SERIAL ESC: allocated IRQ 58 for serial uart
Not using serial hack in slow timer handler.
Welcome to Fiasco.OC (arm)!
L4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden
Rev: rexported compiled with gcc 4.8.3 for i.MX6 []
Build: #3 Wed Mar 11 16:43:41 CET 2015
Calibrating timer loop... done.
MDB: use page size: 20
MDB: use page size: 12
SIGMA0: Hello!
KIP @ 10002000
allocated 4KB for maintenance structures
SIGMA0: Dump of all resource maps
RAM:------------------------
[4:10000000;10000fff]
[0:10063000;1008ffff]
[0:10097000;10097fff]
[0:1009f000;1013ffff]
[4:10140000;10171fff]
[0:10172000;10177fff]
[4:10178000;10193fff]
[0:10194000;110fffff]
[4:11100000;11133fff]
[0:11134000;4effffff]
IOMEM:----------------------
[0:0;fffffff]
[0:50000000;ffffffff]
MOE: Hello world
MOE: found 1031220 KByte free memory
MOE: found RAM from 10000000 to 4f000000
MOE: allocated 1008 KByte for the page array @0x10194000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:501000]
BOOTFS: [11100000-11119474] [C:503000] l4re
BOOTFS: [1111a000-11133598] [C:504000] vm-tz
MOE: cmdline: moe --init=rom/vm-tz
MOE: Starting: rom/vm-tz
MOE: loading 'rom/vm-tz'
Vmm started
terminate called after throwing an instance of 'N2L413Runtime_errorE'
MOE: task 270000679 exited with 127
The code stops at the beginning when it tries to create a VM :
L4Re::chksys(env->factory()->create_vm(vm));
After reading through the code, I saw that the code example is expecting a
linux-image and an initrd to be provided. Is it possible to tell me where
these should be added in the build directory? In my test case, the
linux-image will be replaced by a simple kernel image.
Could someone help me to correct my test case.
Many thanks in advance.
Best regards,
Mahdi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20150317/4ab87027/attachment.html>
More information about the l4-hackers
mailing list