genode/base/include
Stefan Kalkowski 8393ac6895 base-hw: implement vm_session for TrustZone
* Introduces Schedule_context
* Use fast-interrupts or normal interrupts
* Add mode-transition between secure/non-secure world
* Limit system resources for Genode apps due to non-secure world

This commit implements the newly introduced Vm session interface to be used
on top of TrustZone capable Armv7 CPUs. Therefore a new Schedule_context is
introduced in the kernel. Threads and Vms are both Schedule_contexts used
by the scheduler. In contrast to a thread a vm uses a different assembler
mode switch to the non-secure, virtual world, as well as another exception
is used, when the non-secure world is left. For both worlds to co-exist
the interrupt-controller needs to be configured, so that the secure (Genode)
world uses fast-interrupts only, and the non-secure world only legacy
interrupts.
The only TrustZone capable platform the base-hw kernel works on top of
is the CoreTile Express 9x4 for the Versatile Express motherboard. For a
virtual machine working properly on top some platform resources must be
reserved. Therefore there exist two flavours of this platform now, one with
the 'trustzone' spec-variable enabled, and one without. If 'trustzone' is
specified most platform resources (DDR-RAM, and most IRQs) are reserved
for the Vm and not available to the secure Genode world.
2012-10-29 10:08:30 +01:00
..
32bit/base Unify uint64_t among 32-bit and 64-bit platforms 2012-08-16 13:32:56 +02:00
64bit/base Unify uint64_t among 32-bit and 64-bit platforms 2012-08-16 13:32:56 +02:00
arm/cpu base-hw: implement vm_session for TrustZone 2012-10-29 10:08:30 +01:00
base Remove superfluous, generic Thread_state definition 2012-10-29 10:08:29 +01:00
cap_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
cpu_session Cleanup: remove 'first' and 'next' of cpu_session 2012-10-24 11:34:38 +02:00
dataspace Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
drivers/uart Move away drivers from generic base-repository 2012-10-29 10:08:29 +01:00
io_mem_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
io_port_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
irq_session ACPI/IRQ: Add interrupt mode to IRQ connection 2012-10-09 13:47:47 +02:00
log_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
pager Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
parent Provide main thread cap via parent interface 2012-10-24 11:34:38 +02:00
pd_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
platform base-hw: implement vm_session for TrustZone 2012-10-29 10:08:30 +01:00
ram_session Add support for allocating DMA memory 2012-06-20 09:17:48 +02:00
rm_session Add an 'executable' flag to 'Rm_session::attach()' 2012-04-20 11:21:19 +02:00
rom_session Support for dynamic ROM sessions, fix #170 2012-04-05 11:25:26 +02:00
root Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
signal_session Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
thread Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
util Fix log2 and alignment calculation - 64bit issue 2012-09-24 09:18:00 +02:00
x86/cpu Base: New 'memcpy' implementation 2012-08-07 22:21:54 +02:00
x86_32/cpu Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
x86_64/cpu Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00

This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.