genode/repos/base
Sebastian Sumpf 0a8d6ddba9 core: Ignore constraints on allocations if allocator is exhausted
Try to allocate within constraint area first. In case the area is exhausted,
try allocation at other memory locations.

The motivation for this is to limit DMA allocations to 4GB (since some
devices require addresses below 4GB). On some platforms there is little
physical RAM in this area (<1GB) and the constrainted area exhausts. In
case an IOMMU is present, RAM at higher locations can still be mapped
below 4GB, which is done in the platform drivers.

issue #4665
2022-11-17 08:00:37 +01:00
..
board ps2_drv: use generic platform API 2022-10-12 12:09:33 +02:00
etc tool_chain: update gcc to version 10.3.0 2021-05-28 14:15:26 +02:00
include base: remove Trace::Session::rule RPC function 2022-10-12 12:09:35 +02:00
lib base-hw: problems with timeout lib in src recipe 2022-10-12 11:59:08 +02:00
mk mk: allow declaration of build artifacts for libs 2022-09-19 14:00:32 +02:00
ports grub2: make ISO bootable on hardware 2022-11-17 08:00:34 +01:00
recipes depot: update recipe hashes 2022-10-12 14:31:50 +02:00
run intel_fb: request copy of Intel opregion 2022-08-10 13:32:57 +02:00
src core: Ignore constraints on allocations if allocator is exhausted 2022-11-17 08:00:37 +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.