Hello Adam,

At first, I did not applied the patch, but I modified by hand the sources files based
on the modifications from the patch. Unfortunately, I did a mistake at this operation.
I apologize for this little error.

Then, I correctly applied the patch, and now everything is built correctly.
Now the VM is created and started correctly.

I used a simple kernel that prints a "Hello" message on the serial port as a guest OS.
Howerver, after the VM is started, I get the following error:

Regions of list 'regions'
    [ 10000000,  1000012f] {      130} Root   mbi_rt
    [ 10001000,  10001aff] {      b00} Kern   fiasco
    [ 10002000,  10066fff] {    65000} Kern   fiasco
    [ 10090000,  10096edf] {     6ee0} Sigma0 sigma0
    [ 10098000,  1009e177] {     6178} Sigma0 sigma0
    [ 10140000,  10171d77] {    31d78} Root   moe
    [ 10178000,  101934ab] {    1b4ac} Root   moe
    [ 11000000,  1100f557] {     f558} Boot   bootstrap
    [ 11100000,  112defff] {   1df000} 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
GIC: Switching IRQ 58 to secure
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: #14 Wed Apr 29 13:37:03 CEST 2015

GIC: Switching IRQ 29 to secure
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:10067000;1008ffff]
[0:10097000;10097fff]
[0:1009f000;1013ffff]
[4:10140000;10171fff]
[0:10172000;10177fff]
[4:10178000;10193fff]
[0:10194000;110fffff]
[4:11100000;112defff]
[0:112df000;1effffff]
IOMEM:----------------------
[0:0;fffffff]
[0:20000000;ffffffff]
MOE: Hello world
MOE: found 243064 KByte free memory
MOE: found RAM from 10000000 to 1f000000
MOE: allocated 240 KByte for the page array @0x1009f000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:501000]
  BOOTFS: [11100000-11119474] [C:503000] l4re
  BOOTFS: [1111a000-1116cc20] [C:504000] ned
  BOOTFS: [1116d000-112c3470] [C:505000] io
  BOOTFS: [112c4000-112dd598] [C:506000] vm-tz
  BOOTFS: [112de000-112de29c] [C:507000] vm-linux-image-tz
MOE: cmdline: moe --init=rom/vm-tz
MOE: Starting: rom/vm-tz 
MOE: loading 'rom/vm-tz'
Vmm started
setup linux ok...
VM run
VM exit
pc:00000004 cpsr:0000009b
r0:00000000 r1:00000000 r2:00000000 r3:00000000
r4:00000000 r5:00000000 r6:00000000 r7:00000000
r8:00000000 r9:00000000 r10:00000000 r11:00000000
r12:00000000
lr_svc:00000000 sp_svc:00000000 spsr_svc:00000000


I disabled the copy into memory of the initrd, and ATAG in code of the tz-vm example
since they are not needed by the simple kernel.

Do you have any idea of what might be wrong.

Thank you very much for your help.

Best regards,
Mahdi


On Fri, Apr 17, 2015 at 11:09 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

Applying the change you suggested produce the following compilation errors:

Tell me what do you think.

Best Regards,
Mahdi



 "make srcdir=/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src objbase=/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress -f /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/Makefile.sub1 
make[1]: Entering directory `/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress'
Checking compiler config... unchanged.
  ... Preprocessing thread
make[1]: Leaving directory `/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress'
make srcdir=/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src objbase=/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress -f /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/Makefile.sub2 all
make[1]: Entering directory `/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress'
  ... Generating version information
  ... Making kip.o
  ... Making kip-debug.o
  ... Making kip-arm.o
  ==> Archiving into libabi.a
  ... Making startup.o
  ... Making startup-arm.o
  ... Making vlog.o
  ... Making kobject_helper.o
  ... Making icu_helper.o
  ... Making factory.o
  ... Making thread.o
In file included from /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/context.cpp:9:0,
                 from /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/switch_lock.cpp:85,
                 from /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/helping_lock.cpp:4,
                 from /home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/thread.cpp:6,
                 from auto/thread.cc:3:
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp: In member function 'void Arm_ppi_virt::alloc()':
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp:217:12: error: 'Irq_mgr' has not been declared
     check (Irq_mgr::mgr->alloc(this, _irq));
            ^
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/globals.cpp:23:20: note: in definition of macro 'check'
           ((void)((expression) ? 0 : \
                    ^
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp: In member function 'void Arm_vtimer_ppi::alloc()':
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp:248:12: error: 'Irq_mgr' has not been declared
     check (Irq_mgr::mgr->alloc(this, _irq));
            ^
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/globals.cpp:23:20: note: in definition of macro 'check'
           ((void)((expression) ? 0 : \
                    ^
In file included from auto/thread.cc:4:0:
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp: In member function 'void Arm_ppi_virt::handle(const Upstream_irq*)':
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp:232:21: error: 'class Thread' has no member named 'vcpu_vgic_upcall'
   current_thread()->vcpu_vgic_upcall(_virq);
                     ^
In file included from auto/thread.cc:4:0:
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp: In member function 'void Arm_vtimer_ppi::handle(const Upstream_irq*)':
/home/aichouch/dev/l4re-snapshot-2014092821/src/kernel/fiasco/src/kern/arm/thread-arm-hyp.cpp:265:21: error: 'class Thread' has no member named 'vcpu_vgic_upcall'
   current_thread()->vcpu_vgic_upcall(1);
                     ^
make[1]: *** [thread.o] Error 1
make[1]: Leaving directory `/home/aichouch/dev/l4re-snapshot-2014092821/obj/fiasco/arm-mp-rv-a9-vexpress'
make: *** [all] Error 2

 


On Mon, Apr 13, 2015 at 11:02 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

Please find below the error code returned by the "l4_error(me->vcpu_control_ext((l4_addr_t)vcpu))" function:
Thank you very much for you help.

Best Regards,

Mahdi

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: #4 Tue Mar 17 14:55:01 CET 2015

GIC: Switching IRQ 29 to secure
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:10067000;1008ffff]
[0:10097000;10097fff]
[0:1009f000;1013ffff]
[4:10140000;10171fff]
[0:10172000;10177fff]
[4:10178000;10193fff]
[0:10194000;110fffff]
[4:11100000;11e8dfff]
[0:11e8e000;1effffff]
IOMEM:----------------------
[0:0;fffffff]
[0:20000000;ffffffff]
MOE: Hello world
MOE: found 231100 KByte free memory
MOE: found RAM from 10000000 to 1f000000
MOE: allocated 240 KByte for the page array @0x1009f000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:501000]
  BOOTFS: [11100000-11119474] [C:503000] l4re
  BOOTFS: [1111a000-1116cc20] [C:504000] ned
  BOOTFS: [1116d000-112c3470] [C:505000] io
  BOOTFS: [112c4000-112dd65c] [C:506000] vm-tz
  BOOTFS: [112de000-1168df8c] [C:507000] vm-linux-image-tz
  BOOTFS: [1168e000-11e8e000] [C:508000] linux-initrd
MOE: cmdline: moe --init=rom/vm-tz
MOE: Starting: rom/vm-tz 
MOE: loading 'rom/vm-tz'
Vmm started
setup linux ok...
vcp_control_ext returns -38
MOE: task 270000679 exited with 1






On Fri, Apr 10, 2015 at 5:26 PM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

I reduced the RAM_SIZE_MB to 256MB and it worked great! Thank you very much!

However, the execution went well until the call to L4Re::chksys(me->vcpu_control_ext((l4_addr_t)vcpu));
which generates the following error:

terminate called after throwing an instance of 'N2L413Runtime_errorE'

Do you have any idea of what might be wrong.
I attached the whole debug messages to this mail.

Many thanks in advance.

Best Regards,
Mahdi


On Wed, Apr 8, 2015 at 2:13 PM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

Thank you very much for your answer and explanation.

The call to "l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, ram_size, 1)"
failed at the first page that it tries to map.

I activated the debug flags in pkg/sigma0/server/src/globals.h.

And I get the debug messages include in the attached file. But based on the debug messages
it is difficult to interpret what might be wrong.
Could you please take a look at the logs in the attached file and tell me what do you think.

Thank you again for your help.

Best Regards,

Mahdi
















On Wed, Apr 1, 2015 at 11:36 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

I tried to do as you suggested, and I added a loop in order to map a small chunk of memory at time.

When I tried to map 1 KB at a time and 2 KB at a time, I received this error from the first call to 
 l4sigma0_map_iomem ( ) function:

...
Vmm started
j = 0 addr = 0x0
Cannot map nonsecure memory Phys, virt or size not aligned
...

Then, I tried to add 4KB at a time, and I received the same error as before at the first call to
the l4sigma0_map_iomem ( ) function, that is:

...
Vmm started
j = 0 addr = 0x0
Cannot map nonsecure memory No fpage received
...


I also tried with 4 KB, 8 KB, 16 KB, 32 KB,... 
I get the same error: "No fpage received"


This is the code of the loop that I added:

  int ram_size = 0x1000; //4 KB                                                                                                                                                                               
  int address  = 0x0;
  int j;
  for(j = 0; j < 256; j++) {
    fault = l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, ram_size, 1);
    printf("j = %d addr = 0x%x\n", j, address);
    address += ram_size;
    if (fault) {
      printf("Cannot map nonsecure memory %s\n", l4sigma0_map_errstr(fault));
      exit(1);
    }
  }


Could you please tell me what else should I check to track down the source of the error.
Thank you very much in advance.

Kindest regards,

Mahdi

PS: I attached the main.cc file of my vm-tz example.








On Wed, Mar 25, 2015 at 10:19 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

Thank you again for your answer.

Please find below the execution's log from the start of L4 kernel until the stop of the vm-tz test:

L4 Bootstrapper
  Build: #21 Tue Mar 17 15:28:32 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 { 110a6000-110df63f } -> { 11196000-111cf63f } [235072]
  moving module 01 { 1109c000-110a538b } -> { 1118c000-1119538b } [37772]
  moving module 00 { 11044000-1109bb17 } -> { 11134000-1118bb17 } [359192]
  moving module 04 { 1102a000-1104365b } -> { 1111a000-1113365b } [104028]
  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,  10066fff] {    65000} 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
GIC: Switching IRQ 58 to secure
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: #4 Tue Mar 17 14:55:01 CET 2015

GIC: Switching IRQ 29 to secure
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:10067000;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 1031204 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-1113365c] [C:504000] vm-tz
MOE: cmdline: moe --init=rom/vm-tz
MOE: Starting: rom/vm-tz 
MOE: loading 'rom/vm-tz'
Vmm started
Cannot map nonsecure memory No fpage received
MOE: task 270000679 exited with 1



Kindest regards,

Mahdi


On Mon, Mar 23, 2015 at 11:33 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello Adam,

Thank you very much for your answer!

I configured the Ram_base to 0x20000000 for the normal-world OS and the Ram_size to
0x10000000 (256 MB).

The secure world OS is loaded at 0x10000000 according to the link address of fiasco
kernel on the i.mx6, and has 256 MB of Ram.

When I start the vm-tz example, the reserve_area( ) method is executed successfully,

...

l4_addr_t v = Ram_base;
L4Re::chksys(env->rm()->reserve_area(&v, Ram_size, L4Re::Rm::Reserved));

fault = l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, Ram_size, 1);
if (fault) {
   printf("Cannot map nonsecure memory: %s\n", l4sigma0_map_errstr(fault));
   exit(1);
}

...

but the l4sigma0_map_iomem( ) returns an error: 

...
Vmm started
Cannot map nonsecure memory No fpage received
MOE: task 270000679 exited with 1

Then the programs stops executing, the setup_linux(vmstate) function is not
executed, and the ATAG data structure is not copied.

Do you have an idea of what might cause this fault.

Thank you very much in advance.

Best regars,
Mahdi



On Fri, Mar 20, 2015 at 9:48 AM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello,

I am trying to test the "vm-tz", and I created a new entry in the "/src/l4/conf/modules.list".

entry tz_vm                                 
roottask moe --init=rom/vm-tz                 
module l4re
module vm-tz

Is my entry correct? Or there is some missing modules?
How to know what modules should be included?

Does someone has a successful running configuration.
Is it possible to share with us a working configuration.

Thank you very much in advance.

Best regards,

Mahdi




On Tue, Mar 17, 2015 at 4:39 PM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
Hello,

I was able to correct the error related to the creation of the VM, by recompiling the fiasco kernel using
the "trustzone secure side" as an Execution Model option instead of the "Standard Mode".

Now the code goes further and it stops at 

l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, Ram_size, 1);

which return the following error:

MOE: Hello world
MOE: found 1031204 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-1113365c] [C:504000] vm-tz
MOE: cmdline: moe --init=rom/vm-tz
MOE: Starting: rom/vm-tz 
MOE: loading 'rom/vm-tz'
Vmm started
Cannot map nonsecure memory No fpage received

I used the same memory parameters of the example, that is,
the RAM base of the non secure world is 0x20000000, and
the RAM size is 0x00100000.

Could someone help me to correct this.

Thank you very much in advance.

Best regards,
Mahdi


On Tue, Mar 17, 2015 at 2:46 PM, Mahdi Aichouch <foxmehdi@gmail.com> wrote:
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