Test register offsets greater than '0'.

Beautify the test.
Test 'set', 'clear' and 'get' at subregs.
ARM PL011 UART low-level driver.

Not dependent from such things like Genode services or exceptions.
Fix PL011 driver base according to VEA9X4 test.

Modify UART word width in 'Pl011_base' according to tests on
the ARM VEA9X4 board.
Update PL011 driver to MMIO-framework.
Driver base for the ARM PL390.

The driver needs no Genode services or C++ exceptions but a
'printf' implementation for 'PERR'.
Fix PL390 compilation errors.
First version of PBXA9 definitions.
Print 'Hello world!' directly on the ARM PBXA9.

The program 'core' doesn't implement 'core' but runs the 'kernel'
lib as startup lib. This lib then prints 'Hello world!'. Therefor
it uses 'Genode::printf' from Genodes 'console' lib, specialized
for the PBXA9 board.

Most dependencies are taken from the 'base-host' repository.
Low-level driver and test for the ARM SP804 timer.

Implement a low-level driver for the ARM SP904 timer.

The program 'core' also implements a simple test for the driver,
based on the ARM PBXA9 board.
Register framework. PBXA9 and Cortex-A9 driver.

'mmio.h' implements a first version of a generic framework
to comfortably access highly structured objects as CPU registers
and highly structured memory regions like MMIO.

Drivers for the ARM PBXA9 board and the ARM Cortex-A9 CPU

Use new frameworks for the ARM PL011 UART driver and the ARM SP804
timer driver.
Driver for the ARM PL390 interrupt controller.

With this driver one can mask and unmask interrupts and receive
the ID of the last interrupt request, if any occured.

The program 'core' implements a test for the new driver, based on
the ARM PBXA9 board.
Kernel exit and entry code and an according test.

The ARM Cortex-a9 driver now provides a 'Context' struct wich is
dedicated to back a full CPU context and restore it after.

ARM PL390 driver can receive interrupt requests for handling
via 'take_req'. Furthermore it completes them at the interrupt
controller via 'finish_req'.

The ARM SP804 driver can clear its interrupt output via
'clear_interrupt' and translates milliseconds to native values via
'ms_to_tics'

The kernel exit code starts a timer, given by global variables,
restores a user context given by a global variable and continues
it in user mode.

The kernel entry code catches interrupt requests and redirects
them to 'kernel'.

The program 'core' exemplifies this process.
Save user context on interrupt requests at PBXA9.

The kernel entry code in 'base-arm' backs the interrupted user
context on normal interrupt requests according to the the ARM
Cortex-A9 driver.

Changes to one of both must always be propagated to the other.
Pseudo-parallel userland threads at the PBXA9.

'Thread' combines a 'Cortex_a9::Context' and scheduling relevant
informations.

'Queue' is a fork of 'include/base/fifo.h' with an explicit
'remove' method.

'Scheduler' schedules multiple objects of one type for an arbitrary
ressource with FIFO semantics and an arbitrary quota type.

'Cpu_scheduler' specializes 'Scheduler' for scheduling the CPU
to multiple 'Threads'.

The headers 'scheduler.h' and 'queue.h' are not platform specific
and therefore could be moved to 'base/include'.
Rename 'base-arm/' to 'base-hw/'.
Repository doc and development blog for 'base-hw'.
Fix up convenience things in 'pbxa9_console' lib.

Remove unneeded 'main.cc'.
Start an pause threads with syscalls at the PBXA9.

Use Genode's standart integer types instead of our own.

Move all classes of the kernel into the Genode namespace.

Implement 'Timer_sp804::stop' wich stops the ARM SP804 timer
so the current timer value remains constant after.

Implement 'Scheduler::last' wich returns the job that is currently
scheduled.

'base-hw/include/kernel/syscalls.h' defines syscalls with one ore
more arguments as base of the kernel interface.

'base-hw/include/arm/cpu/syscall.h' splits the platform specific
parts of ARM CPUs from 'base-hw/include/kernel/syscalls.h'.

The syscall 'Kernel::thread_start' participates a thread in CPU
scheduling whereas 'Kernel::thread_pause' ensures that a thread
doesn't participate in CPU scheduling any longer.

Instead of having two classes, the 'Platform_thread' in 'core' and
the 'Thread' inside the kernel, i've choosen to combine the two
within 'Platform_thread'. So 'core' imports all necessary
support to declare a compatible 'Platform_thread' for kernel usage
with 'lib/import/import-kernel.mk'.

Implement 'Platform_thread::start' and 'Platform_thread::pause'
based on the two new syscalls
mentioned earlier.
Start 'kernel' at a real ARM VEA9X4.

Don't relocate core/kernel at 0x0 u-boot silently ignores first
page.

Mark BSS section boundaries and initialize it with zeros.