Norman Feske 288fd4e56e Add support for allocating DMA memory
This patch extends the RAM session interface with the ability to
allocate DMA buffers. The client specifies the type of RAM dataspace to
allocate via the new 'cached' argument of the 'Ram_session::alloc()'
function. By default, 'cached' is true, which correponds to the common
case and the original behavior. When setting 'cached' to 'false', core
takes the precautions needed to register the memory as uncached in the
page table of each process that has the dataspace attached.

Currently, the support for allocating DMA buffers is implemented for
Fiasco.OC only. On x86 platforms, it is generally not needed. But on
platforms with more relaxed cache coherence (such as ARM), user-level
device drivers should always use uncacheable memory for DMA transactions.
2012-06-20 09:17:48 +02:00
..
2011-12-22 16:19:25 +01:00
2011-12-22 16:19:25 +01:00
2012-06-06 17:31:52 +02:00
2012-06-20 09:17:48 +02:00
2011-12-22 16:19:25 +01:00
2011-12-22 16:19:25 +01:00

This is the example operating system based on the Genode OS framework:

:_Init_: is the first real process in the system. The provided implementation
  uses a very simple XML parser to read its configuration files.

:_Drivers_: The example OS has basic drivers for frame buffer, mouse and
  keyboard input, the PCI bus, the real-time clock, and system-specific timers.

:_Server_: The only server in the example OS is Nitpicker, a
  minimal-complexity GUI server.

:_Test_: are also part of the example OS. You may have a look at the fork
  bomb as a simple system stress test.

:_Ldso_: is the dynamic linker used for loading executables that are linked
  against shared libraries.

:_Lib_: contains libraries used by the components of the OS repository,
  in particular the device-driver kit, the alarm framework, and support
  for dynamic linking.