Virtualization with trustzone into mx53
panton
panton at ...215...
Thu Nov 28 10:52:12 CET 2013
Hi Stefan,
Thank you very much for your detailed explication. I am really lucky
beacause it seems you are working right now on that matter (last
genode/staging branch update was yesterday :)).
> well, this depends. There are trustzone.cc files for different
> platforms/configurations. In general, that file only contains
> additional
> kernel initialization routines needed. For instance, configuring IRQs
> to
> be "secure", or "non-secure", or configure TrustZone specific devices
> that can be configured in supervisor mode only.
> For configurations where no TrustZone is supported, or used that file
> contains an empty initialization indeed. I assume you've found that
> file.
Now I am able to see files on ./base-hw/src/core/imx53/trustzone.
> To sum it up, the non-secure guest has to behave cooperatively, or it
> will fail. Trap-and-emulate doesn't work in general. Therefore, some
> lightweight form of para-virtualization of the guest OS is needed.
So, I assume the linux image on
http://genode.org/files/images/imx53_qsb/linux_trustzone.bin is not a
normal linux image for imx53_loco but neither a L4Linux (since the
example is running without Fiasco.OC). Is there any repository where we
could take that linux code?
About the example I only can say "Great work". I was able to run it on
hardware. Some little details that could help people:
> After that, do a 'make run/tz_vmm' in the build directory. The
> resulting
> image is located in 'var/run/tz_vmm/uImage'
The resulting image is on elf, if you want to run it with uboot you
should create a valid uImage using mkimage tool.
Now, I go to play!
Best regards
Pablo Antón.
El 27.11.2013 22:47, Stefan Kalkowski escribió:
> Hi Pablo,
>
> On 11/26/2013 06:11 PM, panton wrote:
>> Hello,
>>
>> I want to create a virtualized system with Genode in my imx53 board.
>> At
>> the moment, I am able to run Genode on the board with base-foc and
>> also
>> directly on hardware (base-hw). Thus, my plan was to run a linux
>> kernel
>> as a child node and hopefully run it into trustzone NS. Looking into
>> Genode code I found base-hw/include/vm_session that seems to deal with
>> virtualization. Furthermore there is a trustzone.cc into
>> base-hw/src/core.., but without real useful code.
>
> well, this depends. There are trustzone.cc files for different
> platforms/configurations. In general, that file only contains
> additional
> kernel initialization routines needed. For instance, configuring IRQs
> to
> be "secure", or "non-secure", or configure TrustZone specific devices
> that can be configured in supervisor mode only.
> For configurations where no TrustZone is supported, or used that file
> contains an empty initialization indeed. I assume you've found that
> file.
>
>>
>> I was wondering if there are implemented virtualization capabilities
>> using trustzone or even without trustzone?
>
> In fact, there is some kind of virtualization support using TrustZone.
> Although, TrustZone isn't designed to be a virtualization solution.
> Therefore, the "guest" needs to be aware what devices it is allowed to
> use. In contrast to the CPU (including MMU, Caches, etc.), there is no
> support to virtualize physical memory (including memory mapped I/O) for
> the non-secure "guest". That means guest physical addresses are in fact
> physical addresses. Dependent on the concrete platform, it might be
> possible to deny non-secure access to certain physical memory regions,
> like I/O memory of certain devices, and then use a trap-emulate
> approach. But in general this approach isn't guaranteed to work.
> Dependent on where the unit, which controls peripheral device memory
> (if
> existent at all), is located in the bus hierarchy of the SoC, it might
> provoke asynchronous external data-aborts in the CPU core, instead of
> synchronous ones. Thereby, it is impossible to recover the state, in
> which the protection fault was raised.
> To sum it up, the non-secure guest has to behave cooperatively, or it
> will fail. Trap-and-emulate doesn't work in general. Therefore, some
> lightweight form of para-virtualization of the guest OS is needed.
>
> On ARM platforms, apart from the TrustZone "virtualization", Genode
> includes support of L4Linux, a para-virtualized Linux for the Fiasco.OC
> kernel. ARM's virtualization extensions aren't supported yet, but we'll
> investigate it certainly.
>
>> If so, it would be great to
>> have an example of how to use it.
>
> A working basic example is available on Genode's current staging
> branch,
> and will be available in Genode's upcoming release 13.11, that will be
> announced this week.
> The example should work out of the box for ARM's Versatile Express
> Coretile A9x4, and Freescale's i.MX53 Quickstart board. You'll have to
> create a build directory for 'hw_imx53'. After creating the build
> directory, you've to adapt the 'etc/specs.conf' file, and add the
> following SPEC variable:
>
> SPECS += trustzone
>
> After that, do a 'make run/tz_vmm' in the build directory. The
> resulting
> image is located in 'var/run/tz_vmm/uImage'. The example scenario
> starts
> Genode's hw kernel, core, init, and the virtual machine monitor, which
> will boot Linux with a small busybox initramfs on the non-secure side.
>
> A more sophisticated example, which runs on the i.MX53 SABRE tablet
> only, can be found on this topic branch:
>
> https://github.com/skalk/genode/tree/i.MX53_tablet_demo
>
> That example include virtual touchscreen support for the non-secure
> guest, so that you can interact with the secure Genode system, and the
> non-secure Android guest side-by-side.
>
>>
>> Thanks in advance for answers!
>
> You're welcome.
>
> Best Regards
> Stefan
>
>>
>> Best regards,
>> Pablo Anton
>>
>> ------------------------------------------------------------------------------
>> Rapidly troubleshoot problems before they affect your business. Most
>> IT
>> organizations don't have a clear picture of how application
>> performance
>> affects their revenue. With AppDynamics, you get 100% visibility into
>> your
>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of
>> AppDynamics Pro!
>> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&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/
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into
> your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of
> AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
> _______________________________________________
> Genode-main mailing list
> Genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
More information about the users
mailing list