genode/repos/os/src/server/tz_vmm
Martin Stein 59d2a83f30 TZ VMM & USB Armory: Demo
* Provide paravirtualized block API for accessing the second partition
  of the block device that is provided by the ESDHC driver.

* Provide paravirtualized serial API for sending log-output over Genodes
  serial port.

* Use the latest Linux suggested in the USB Armory Wiki [1] when on USB Armory
  while still using the older vendor Linux when on i.MX53 QSB. I.e.,
  provide a device tree through RAM and a rootfs through the paravirtualized
  block device when on USB Armory while providing ATAGs and Initrd when on
  i.MX53 QSB.

* Switch on the LED on the USB Armory when the VMM catches a VM-exception
  and switch it off again when as soon as the exception is handled. This
  merely show-cases the ability to instrument the LED for such purposes. In an
  ideal world, the LED is switched on as long as we're on the "Secure Side"
  and switched off as long as we're not.

* For further information see repos/os/run/tz_vmm.run

[1] https://github.com/inversepath/usbarmory/wiki/Preparing-a-bootable-microSD-image

Fixes #1497
2015-11-29 18:17:04 +01:00
..
include TZ VMM & USB Armory: Demo 2015-11-29 18:17:04 +01:00
spec TZ VMM & USB Armory: Demo 2015-11-29 18:17:04 +01:00
block.cc TZ VMM & USB Armory: Demo 2015-11-29 18:17:04 +01:00
README hw vea9x4: remove trustzone support 2015-01-08 13:28:42 +01:00
serial.cc TZ VMM & USB Armory: Demo 2015-11-29 18:17:04 +01:00

This is a small example virtual machine monitor, that uses the base-hw kernel
as secure-world micro-hypervisor on ARM TrustZone platforms.  The VMM
configures TrustZone hardware in a way, that allows a guest to access nearly
all devices, and the DDR-RAM. Only few resources needed by the kernel (timer,
SRAM) aren't accessable by the virtual-machine.

Moreover, the VMM prepares the guest memory with a Linux image, and ramdisk,
and boots it. For the Linux guest to work properly a small patch, and tweaked
configuration is needed.