<div dir="ltr"><div>Hello Adam,</div><div><br></div><div>Thank you very much for your answer!</div><div><br></div><div>I configured the Ram_base to 0x20000000 for the normal-world OS and the Ram_size to</div><div>0x10000000 (256 MB).</div><div><br></div><div>The secure world OS is loaded at 0x10000000 according to the link address of fiasco</div><div>kernel on the i.mx6, and has 256 MB of Ram.</div><div><br></div><div>When I start the vm-tz example, the reserve_area( ) method is executed successfully,</div><div><br></div><div>...</div><div><br></div><div>l4_addr_t v = Ram_base;</div><div>L4Re::chksys(env->rm()->reserve_area(&v, Ram_size, L4Re::Rm::Reserved));</div><div><br></div><div>fault = l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, Ram_size, 1);</div><div>if (fault) {</div><div>   printf("Cannot map nonsecure memory: %s\n", l4sigma0_map_errstr(fault));</div><div>   exit(1);</div><div>}</div><div><br></div><div>...</div><div><br></div><div>but the l4sigma0_map_iomem( ) returns an error: </div><div><br></div><div>...</div><div>Vmm started<br></div><div><div>Cannot map nonsecure memory No fpage received</div><div>MOE: task 270000679 exited with 1</div></div><div><br></div><div>Then the programs stops executing, the setup_linux(vmstate) function is not</div><div>executed, and the ATAG data structure is not copied.</div><div><br></div><div>Do you have an idea of what might cause this fault.</div><div><br></div><div>Thank you very much in advance.</div><div><br></div><div>Best regars,</div><div>Mahdi</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 20, 2015 at 9:48 AM, Mahdi Aichouch <span dir="ltr"><<a href="mailto:foxmehdi@gmail.com" target="_blank">foxmehdi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I am trying to test the <span style="font-size:12.8000001907349px">"vm-tz", and I created a new entry in the "/src/l4/conf/modules.list".</span></div><span class=""><div><span style="font-size:12.8000001907349px"><br></span></div><div><div style="font-size:12.8000001907349px">entry tz_vm                                 </div><div style="font-size:12.8000001907349px">roottask moe --init=rom/vm-tz                 </div><div style="font-size:12.8000001907349px">module l4re</div><div style="font-size:12.8000001907349px">module vm-tz</div></div><div style="font-size:12.8000001907349px"><br></div></span><div style="font-size:12.8000001907349px">Is my entry correct? Or there is some missing modules?</div><div style="font-size:12.8000001907349px">How to know what modules should be included?</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Does someone has a successful running configuration.</div><div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">Is it possible to share with us a working configuration.</span><br></div><span class=""><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Thank you very much in advance.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Best regards,</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Mahdi</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><br></div><div><span style="font-size:12.8000001907349px"><br></span></div></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 17, 2015 at 4:39 PM, Mahdi Aichouch <span dir="ltr"><<a href="mailto:foxmehdi@gmail.com" target="_blank">foxmehdi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I was able to correct the error related to the creation of the VM, by recompiling the fiasco kernel using</div><div>the "trustzone secure side" as an Execution Model option instead of the "Standard Mode".</div><div><br></div><div>Now the code goes further and it stops at </div><div><br></div><div>l4sigma0_map_iomem(sigma0_cap.cap(), Ram_base, Ram_base, Ram_size, 1);<br></div><div><br></div><div>which return the following error:</div><div><br></div><div>MOE: Hello world<br></div><div><div>MOE: found 1031204 KByte free memory</div><span><div>MOE: found RAM from 10000000 to 4f000000</div><div>MOE: allocated 1008 KByte for the page array @0x10194000</div><div>MOE: virtual user address space [0-bfffffff]</div><div>MOE: rom name space cap -> [C:501000]</div><div>  BOOTFS: [11100000-11119474] [C:503000] l4re</div></span><div>  BOOTFS: [1111a000-1113365c] [C:504000] vm-tz</div><span><div>MOE: cmdline: moe --init=rom/vm-tz</div><div>MOE: Starting: rom/vm-tz </div><div>MOE: loading 'rom/vm-tz'</div><div>Vmm started</div></span><div>Cannot map nonsecure memory No fpage received</div></div><div><br></div><div>I used the same memory parameters of the example, that is,</div><div>the RAM base of the non secure world is 0x20000000, and</div><div>the RAM size is 0x00100000.</div><div><br></div><div>Could someone help me to correct this.</div><div><br></div><div>Thank you very much in advance.</div><div><br></div><div>Best regards,</div><div>Mahdi</div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 17, 2015 at 2:46 PM, Mahdi Aichouch <span dir="ltr"><<a href="mailto:foxmehdi@gmail.com" target="_blank">foxmehdi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I am trying to experiment the "vm-tz" example on the Freescale i.mx6 SDB board.</div><div><br></div><div>At first, my goal is to understand the example, thus I am interested in running</div><div>a simple test kernel instead of a full linux kernel.<br></div><div> </div><div>Specifically, I am trying to reproduce the experimentation of the article related to the trustzone</div><div>implementation on Fiasco.OC L4re, "ARM Trustzone as a Virtualization Technique in Embedded Systems". </div><div>In particular, it is mentioned in the article at the "Implementation" paragraph that "Multiplexing two or more OS is supported by our design."</div><div>I would like to investigate this point.</div><div><br></div><div><div>I created a new entry to generate the vm-tz binary.</div><div>I added the following entry to the "src/l4/conf/modules.list" file :<br></div><div><br></div><div><div>entry tz_vm                                 </div><div>roottask moe --init=rom/vm-tz                 </div><div>module l4re</div><div>module vm-tz</div></div></div><div><br></div><div>Is my configuration entry correct, is there any missing modules that are required by the example?</div><div><br></div><div>I tested the binary on the board using tftp, and I obtained the following results:</div><div><br></div><div><div>L4 Bootstrapper</div><div>  Build: #12 Tue Mar 17 12:10:02 CET 2015, 4.8.3 20140320 (prerelease)</div><div>  Scanning up to 1024 MB RAM, starting at offset 32MB</div><div>  Memory size is 1024MB (10000000 - 4fffffff)</div><div>  RAM: 0000000010000000 - 000000004fffffff: 1048576kB</div><div>  Total RAM: 1024MB</div><div>  Scanning fiasco</div><div>  Scanning sigma0</div><div>  Scanning moe</div><div>  Moving up to 5 modules behind 11100000</div><div>  moving module 02 { 110a5000-110de63f } -> { 11195000-111ce63f } [235072]</div><div>  moving module 01 { 1109b000-110a438b } -> { 1118b000-1119438b } [37772]</div><div>  moving module 00 { 11044000-1109a0c7 } -> { 11134000-1118a0c7 } [352456]</div><div>  moving module 04 { 1102a000-11043597 } -> { 1111a000-11133597 } [103832]</div><div>  moving module 03 { 11010000-11029473 } -> { 11100000-11119473 } [103540]</div><div>  Loading fiasco</div><div>  Loading sigma0</div><div>  Loading moe</div><div>  find kernel info page...</div><div>  found kernel info page at 0x10002000</div><div>Regions of list 'regions'</div><div>    [ 10000000,  100000e3] {       e4} Root   mbi_rt</div><div>    [ 10001000,  10001aff] {      b00} Kern   fiasco</div><div>    [ 10002000,  10062fff] {    61000} Kern   fiasco</div><div>    [ 10090000,  10096edf] {     6ee0} Sigma0 sigma0</div><div>    [ 10098000,  1009e177] {     6178} Sigma0 sigma0</div><div>    [ 10140000,  10171d77] {    31d78} Root   moe</div><div>    [ 10178000,  101934ab] {    1b4ac} Root   moe</div><div>    [ 11000000,  1100f4ff] {     f500} Boot   bootstrap</div><div>    [ 11100000,  11133fff] {    34000} Root   Module</div><div>  API Version: (87) experimental</div><div>  Sigma0 config    ip:10090100 sp:00000000</div><div>  Roottask config  ip:10140260 sp:00000000</div><div>  Starting kernel fiasco at 100012c8</div><div>Number of IRQs available at this GIC: 160</div><div>FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 4, v: 9, i: 41, t: hard, p: dbl/sngl</div><div>L2: ID=410000c7 Type=9e340340 Aux=02070000 WMask=ffff S=0</div><div>L2: Type L2C-310 Size = 1024kB  Ways=16 Waysize=64</div><div>SERIAL ESC: allocated IRQ 58 for serial uart</div><div>Not using serial hack in slow timer handler.</div><div>Welcome to Fiasco.OC (arm)!</div><div>L4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden</div><div>Rev: rexported compiled with gcc 4.8.3 for i.MX6    []</div><div>Build: #3 Wed Mar 11 16:43:41 CET 2015</div><div><br></div><div>Calibrating timer loop... done.</div><div>MDB: use page size: 20</div><div>MDB: use page size: 12</div><div>SIGMA0: Hello!</div><div>  KIP @ 10002000</div><div>  allocated 4KB for maintenance structures</div><div>SIGMA0: Dump of all resource maps</div><div>RAM:------------------------</div><div>[4:10000000;10000fff]</div><div>[0:10063000;1008ffff]</div><div>[0:10097000;10097fff]</div><div>[0:1009f000;1013ffff]</div><div>[4:10140000;10171fff]</div><div>[0:10172000;10177fff]</div><div>[4:10178000;10193fff]</div><div>[0:10194000;110fffff]</div><div>[4:11100000;11133fff]</div><div>[0:11134000;4effffff]</div><div>IOMEM:----------------------</div><div>[0:0;fffffff]</div><div>[0:50000000;ffffffff]</div><div>MOE: Hello world</div><div>MOE: found 1031220 KByte free memory</div><div>MOE: found RAM from 10000000 to 4f000000</div><div>MOE: allocated 1008 KByte for the page array @0x10194000</div><div>MOE: virtual user address space [0-bfffffff]</div><div>MOE: rom name space cap -> [C:501000]</div><div>  BOOTFS: [11100000-11119474] [C:503000] l4re</div><div>  BOOTFS: [1111a000-11133598] [C:504000] vm-tz</div><div>MOE: cmdline: moe --init=rom/vm-tz</div><div>MOE: Starting: rom/vm-tz </div><div>MOE: loading 'rom/vm-tz'</div><div>Vmm started</div><div>terminate called after throwing an instance of 'N2L413Runtime_errorE'</div><div>MOE: task 270000679 exited with 127</div></div><div><br></div><div>The code stops at the beginning when it tries to create a VM :</div><div><br></div><div>L4Re::chksys(env->factory()->create_vm(vm));<br></div><div><br></div><div>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.</div><div><br></div><div>Could someone help me to correct my test case.</div><div><br></div><div>Many thanks in advance.</div><div><br></div><div>Best regards,</div><div>Mahdi</div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>