Genode onto i.mx53 qsb

Joseph Lee leejose911 at ...9...
Fri Sep 19 06:24:51 CEST 2014


Thank you for your explanation Stefan,

Currently, I am testing the simple 'tz_vmm' run example. As you mentioned,
I tried to make 'UNSECURE' all the devices such as I2C GPIO and IPU. In
addition, I also changed the kernel cmdline argument in
genode/os/src/server/tz_vmm/imx53/main.cc (*console=ttymxc0,115200
gpu_nommu video=mxcdi0fb:RGB666,XGA di0_primary ldb=di0*)
But still the Linux doesn't show up on the screen(lvds). is there any other
configuration?

Another question is that how do we run a trusted application inside the
secure world (Genode) in this simple 'tz_vmm' example?

Thanks in advance for your answers.


On Wed, Sep 17, 2014 at 7:55 AM, Stefan Kalkowski <
stefan.kalkowski at ...1...> wrote:

> Hi Joseph,
>
> within the 'tz_vmm' run example Genode's framebuffer driver for i.MX53
> isn't used at all. It is a very simple example used for testing the
> TrustZone world-switch regulary. It only starts the simple TrustZone
> VMM, which boots Linux. Linux thereby uses the devices (that are
> configured in the kernel) directly without interaction with the secure
> side.
>
> Given your last mail, I was assuming you want Linux to use the
> framebuffer directly too. In that case, I forgot to mention that you'll
> have to mark the appropriated devices like I2C and GPIO controller, as
> well as the IPU as unsecure devices, which is hardcoded in the
> constructor of the central security unit of that platform:
>
>   repos/base-hw/src/core/include/spec/imx53/trustzone/csu.h
>
> However, if you want Linux (the unsecure world) to share the framebuffer
> with the secure Genode world, then you'll have to incorporate at least
> the framebuffer driver (maybe a graphical system and some other
> applications) into the run-script. A good starting point are our
> run-scripts for graphical systems e.g.: repos/os/run/demo.run
>
> Moreover, the simple VMM example in the current mainline Genode
> repository doesn't include the handling of the para-virtualized
> framebuffer device that is used in the TrustZone-specific Linux version
> we use. Whenever Linux is using another memory range as framebuffer,
> this is propagated to the VMM via a hypercall, have a look here:
>
>
>
> https://github.com/skalk/linux/blob/bc1707a23a9770cf080a1b87b4f553a2a39ac636/drivers/video/mxc/mxc_ipuv3_fb.c
>
> On the secure, the VMM has to use the information to either copy
> regularyly the content of the Linux framebuffer to some window, or it
> uses the special overlay functionality of the i.MX53 IPU to let the
> hardware copy the content. Both approaches are used in the graphical
> demo for the i.MX53 SABRE tablet. The corresponding code of the VMM of
> that example can be found here:
>
>
>
> https://github.com/skalk/genode/tree/i.MX53_tablet_demo/os/src/server/vmm/imx53
>
> You might use it as a starting point to turn the 'tz_vmm' scenario into
> a graphical one.
>
> Regards
> Stefan
>
> On 09/16/2014 06:33 PM, Joseph Lee wrote:
> > Hi Stefan,
> >
> > Thank you again for you reply
> >
> > I just noticed that the i.MX53 framebuffer driver doesn't detect the
> > lvds display configuration automatically.
> > I tried to change the default LCD display configuration (resolution) in
> > the driver code.
> >
> >
> https://github.com/genodelabs/genode/blob/master/repos/os/src/drivers/framebuffer/imx53/driver.h
> >
> >
> > So i changed the values of qsb_width and qsb_height to the corresponding
> > lvds values(1024 x 768).
> > But still i don't see anything on the screen.
> >
> > Could you please let me know if there is any other configuration? thank
> > you in advance for your answers.
> >
> > best regards,
> > Joseph
> >
> > On Tue, Sep 16, 2014 at 8:04 AM, Stefan Kalkowski
> > <stefan.kalkowski at ...1...
> > <mailto:stefan.kalkowski at ...1...>> wrote:
> >
> >     Hi Joseph,
> >
> >     On 09/15/2014 05:20 PM, Joseph Lee wrote:
> >     > Thank you Stefan for your valuable feedback
> >     >
> >     > I think it is working now. But i have another issue. There is
> nothing
> >     > displayed on the screen (LVDS Display kit)
> >     > I already configured the u-boot environment variable bootargs_base.
> >     >
> >     >          bootargs_base=set bootargs console=ttymxc0,115200
> gpu_nommu ${lvds}
> >     >
> >     > And it is working with the per-installed Linux operating system. I
> am
> >     > using u-boot 2009.08 version.
> >     >
> >     > Herewith, i have attached the output on serial console.
> >     >
> >     > What is still missing? thank you in advance
> >
> >     The u-boot variable you mentioned is used when u-boot starts the
> Linux
> >     kernel. Then the bootloader provides the corresponding arguments to
> the
> >     kernel. In our small test scenario, a Genode application called
> tz_vmm
> >     fulfills the role of the bootloader for the Linux instance running in
> >     TrustZone's "normal world". Therefore, the tz_vmm has to provide the
> >     arguments to the Linux kernel. They are hardcoded in the application,
> >     have a look at:
> >
> >
> >
> https://github.com/genodelabs/genode/blob/master/repos/os/src/server/tz_vmm/imx53/main.cc
> >
> >     In line 36 you see the command line for the Linux kernel.
> >
> >     Regards
> >     Stefan
> >
> >     >
> >     > regards,
> >     > Joseph
> >     >
> >     > On Mon, Sep 15, 2014 at 8:44 AM, Stefan Kalkowski
> >     > <stefan.kalkowski at ...1...
> >     <mailto:stefan.kalkowski at ...1...>
> >     > <mailto:stefan.kalkowski at ...1...
> >     <mailto:stefan.kalkowski at ...1...>>> wrote:
> >     >
> >     >     Hi Joseph,
> >     >
> >     >     what u-boot version do you use? I recently run into a similar
> >     problem
> >     >     when using a recent u-boot version. It had to do with a more
> >     strict
> >     >     checking before unzipping. To test out whether it is the same
> >     problem
> >     >     try to run the image without compressing it. Therefore, you
> >     might build
> >     >     your uImage by hand:
> >     >
> >     >       /usr/local/genode-gcc/bin/genode-arm-objcopy -O binary \
> >     >       var/run/tz_vmm/image.elf var/run/tz_vmm/image.bin
> >     >
> >     >     and:
> >     >
> >     >       mkimage -A arm -O linux -T kernel -C none -a 0x70010000 \
> >     >       -e 0x70010000 -d var/run/tz_vmm/image.bin
> var/run/tz_vmm/uImage
> >     >
> >     >     If that works for you it's probably the same issue.
> >     >
> >     >     Regards
> >     >     Stefan
> >     >
> >     >     On 09/14/2014 06:47 AM, Joseph Lee wrote:
> >     >     > Hello,
> >     >     >
> >     >     > I'm trying to port genode onto i.mx53 quick start board. I
> >     followed the
> >     >     > building steps in this thread.
> >     >     >
> >
> http://sourceforge.net/p/genode/mailman/genode-main/thread/9167aa55bacd5e3f00e64168280aef3e%40lcc.uma.es/#msg31683911
> >     >     >
> >     >     > Now i get /uImage/ in in the building
> >     directory(var/run/tz_vmm) with
> >     >     > other two files (/boot_modules.s/ and /image.elf/). The size
> of
> >     >     /uImage/
> >     >     > is 7.5MB
> >     >     >
> >     >     > I loaded the /uImage/ to memory address 0x70800000. When I
> tried
> >     >     to boot
> >     >     > with the same memory address (bootm 0x70800000), i get the
> >     following error.
> >     >     >
> >     >     > ## Booting kernel from Legacy Image at 70800000 ...
> >     >     >    Image Name:
> >     >     >    Image Type:   ARM Linux Kernel Image (gzip compressed)
> >     >     >    Data Size:    7858693 Bytes =  7.5 MB
> >     >     >    Load Address: 70010000
> >     >     >    Entry Point:  70010000
> >     >     >    Verifying Checksum ... OK
> >     >     >    Uncompressing Kernel Image ... Error: inflate() returned
> -5
> >     >     > GUNZIP: uncompress, out-of-mem or overwrite error - must
> >     RESET board to
> >     >     > recover
> >     >     > resetting ...
> >     >     >
> >     >     > I tried again with another memory address (0x78000000) if
> >     there was
> >     >     > overlap. Still I get the same result.
> >     >     >
> >     >     > I also checked if there is overlap with the physical address
> >     ranges used
> >     >     > by u-boot bootloader using /readelf/.
> >     >     >
> >     >     > Here is the output
> >     >     >
> >     >     > Elf file type is EXEC (Executable file)
> >     >     > Entry point 0x70010000
> >     >     > There are 3 program headers, starting at offset 52
> >     >     >
> >     >     > Program Headers:
> >     >     >   Type                  Offset   VirtAddr   PhysAddr
> >      FileSiz MemSiz
> >     >     > Flg Align
> >     >     >   EXIDX          0x077138 0x7007f138 0x7007f138 0x02578
> >     0x02578 R   0x4
> >     >     >   LOAD           0x008000 0x70010000 0x70010000 0x6ac64
> >     0x6ac64 R E 0x8000
> >     >     >   LOAD           0x073000 0x7007b000 0x7007b000 0x0b03c
> >     0xd3ed5 RW  0x8000
> >     >     >
> >     >     > What is missing? thanks in advance
> >     >     >
> >     >     > best regards,
> >     >     > Joseph,
> >     >     >
> >     >     >
> >     >     >
> >     >     >
> >     >
> >
> ------------------------------------------------------------------------------
> >     >     > Want excitement?
> >     >     > Manually upgrade your production database.
> >     >     > When you want reliability, choose Perforce
> >     >     > Perforce version control. Predictably reliable.
> >     >     >
> >     >
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >     >     >
> >     >     >
> >     >     >
> >     >     > _______________________________________________
> >     >     > genode-main mailing list
> >     >     > genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>
> >     >     <mailto:genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>>
> >     >     > https://lists.sourceforge.net/lists/listinfo/genode-main
> >     >     >
> >     >
> >     >     --
> >     >     Stefan Kalkowski
> >     >     Genode Labs
> >     >
> >     >     http://www.genode-labs.com/ · http://genode.org/
> >     >
> >     >
>  ------------------------------------------------------------------------------
> >     >     Want excitement?
> >     >     Manually upgrade your production database.
> >     >     When you want reliability, choose Perforce
> >     >     Perforce version control. Predictably reliable.
> >     >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >     >     _______________________________________________
> >     >     genode-main mailing list
> >     >     genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>
> >     >     <mailto:genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>>
> >     >     https://lists.sourceforge.net/lists/listinfo/genode-main
> >     >
> >     >
> >     >
> >     >
> >     >
> ------------------------------------------------------------------------------
> >     > Want excitement?
> >     > Manually upgrade your production database.
> >     > When you want reliability, choose Perforce
> >     > Perforce version control. Predictably reliable.
> >     >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >     >
> >     >
> >     >
> >     > _______________________________________________
> >     > genode-main mailing list
> >     > genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>
> >     > https://lists.sourceforge.net/lists/listinfo/genode-main
> >     >
> >
> >     --
> >     Stefan Kalkowski
> >     Genode Labs
> >
> >     http://www.genode-labs.com/ · http://genode.org/
> >
> >
>  ------------------------------------------------------------------------------
> >     Want excitement?
> >     Manually upgrade your production database.
> >     When you want reliability, choose Perforce.
> >     Perforce version control. Predictably reliable.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >     _______________________________________________
> >     genode-main mailing list
> >     genode-main at lists.sourceforge.net
> >     <mailto:genode-main at lists.sourceforge.net>
> >     https://lists.sourceforge.net/lists/listinfo/genode-main
> >
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Want excitement?
> > Manually upgrade your production database.
> > When you want reliability, choose Perforce.
> > Perforce version control. Predictably reliable.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >
> >
> >
> > _______________________________________________
> > genode-main mailing list
> > genode-main at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/genode-main
> >
>
> --
> Stefan Kalkowski
> Genode Labs
>
> http://www.genode-labs.com/ · http://genode.org/
>
>
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20140919/fb64f65b/attachment.html>


More information about the users mailing list