genode/repos/base
Norman Feske e4f62380d7 base: Pd_session::dma_addr, Pd_session::attach_dma
This patch enhances the PD-session interface with the support needed for
user-level device drivers performing DMA. Both RPC functions are
intended for the direct use by the platform driver only. If invoked for
PDs that lack the managing-system role, the operations have no effect.

The 'dma_addr()' RPC function allows the platform driver to request the
DMA address of a given RAM dataspace. It is meant to replace the
'Dataspace::phys_addr' RPC function.

The 'attach_dma' RPC function adds the given dataspace to the device
PD's I/O page table. It replaces the former heuristics of marking DMA
buffers as uncached RAM on x86.

With this patch, the UNCACHED attribute of RAM dataspaces is no longer
used to distinguish DMA buffers from regular RAM dataspaces.

Issue #2243
2022-02-15 10:16:52 +01:00
..
board hw: remove rpi1/3 board support 2022-01-19 12:38:12 +01:00
etc tool_chain: update gcc to version 10.3.0 2021-05-28 14:15:26 +02:00
include base: Pd_session::dma_addr, Pd_session::attach_dma 2022-02-15 10:16:52 +01:00
lib Remove mutex from 'Genode::Trace_output' 2022-01-19 12:35:49 +01:00
mk mk: record build artifacts in progress.log 2022-01-19 12:38:11 +01:00
ports imx8q_evk: remove board support from repository 2021-11-29 15:10:51 +01:00
recipes depot: update recipe hashes 2022-01-19 12:38:13 +01:00
run rpi: remove drivers for platform, fb and sd_card 2022-02-15 10:16:51 +01:00
src base: Pd_session::dma_addr, Pd_session::attach_dma 2022-02-15 10:16:52 +01:00
xsd base_types.xsd: allow session labels of length 0 2018-11-16 14:37:19 +01:00
README core: add information about infos provided by core 2017-06-29 11:59:52 +02:00

This is generic part of the Genode implementation. It consists of two parts:

:_Core_: is the ultimate root of the Genode application tree
  and provides abstractions for the lowest-level hardware resources
  such as RAM, ROM, CPU, and generic device access. All generic parts of Core
  can be found here - for system-specific implementations refer to the
  appropriate 'base-<system>' directory.

:_Base libraries and protocols_: that are used by each Genode component
  to interact with other components. This is the glue that holds everything
  together.

_Core_ may export information about the hardware platform by an ROM
called 'platform_info'. Depending on the platform, e.g. ARM or x86 or riscv,
and depending on the boot mode and boot loader and kernel, some nodes may not
be populated.

!<platform_info>
! <acpi revision="2" rsdt="0x1fe93074" xsdt="0x1fe930e8"/>
! <boot>
!   <framebuffer phys="0x7300000" width="1024" height="768" bpp="32"/>
! </boot>
!</platform_info>

If the ACPI RSDT and XSDT physical pointer is reported by the used kernel
and/or bootloader, _Core_ may provide this information by the ROM.

If the graphic device is initialised and can be directly used by a framebuffer
driver, _Core_ may provide the physical pointer to the framebuffer, the
resolution and color depth in bits.