mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-14 08:49:52 +00:00
e4f62380d7
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 |
||
---|---|---|
.. | ||
board | ||
etc | ||
include | ||
lib | ||
mk | ||
ports | ||
recipes | ||
run | ||
src | ||
xsd | ||
README |
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.