335 Commits

Author SHA1 Message Date
7cca7a802e libports,ports,pc,dde_linux: rm Xml_node::sub_node
Issue #5608
2025-06-23 14:58:54 +02:00
e1f6a587ba sculpt: extend runtime prio-levels
Reserve the top-most priority for the runtime-init, and lower
driver, multimedia, default and background components each by one
priority-level.

Fix #5605
2025-06-19 10:39:18 +02:00
6a9d2bd1d5 depot: update recipe hashes 2025-05-28 08:23:47 +02:00
6bd2c8990a sel4: increase run script resources
Issue #5581
2025-05-28 08:23:46 +02:00
7107719d23 util/bit_allocator.h: remove C++ exceptions
This change affects the users of util/bit_array.h as well, e.g.,
os/packet_allocator.h, libc, and part_block.

Issue #5245
2025-05-28 08:23:45 +02:00
e89fc85087 pc_lx_emul: prevent emmitting vector instructions
Issue #5530.
2025-05-27 08:32:04 +02:00
ab3ae715cf dde_linux: free dead tasks
Issue #4575
Issue #5500
2025-05-27 08:32:03 +02:00
5703f11f8e base: rm Xml_generator::Buffer_exceeded exception
Issue #5245
2025-05-27 08:32:03 +02:00
a128bbd6b8 depot: update recipe hashes 2025-04-29 11:23:22 +02:00
1fc7dc1be4 sculpt: update goa_testbed preset
genodelabs/genode#5501
2025-04-29 08:24:13 +02:00
7b90e9766e intel/display: add support for rotation and flip
of connectors.

Fixes #5508
Issue #5518
2025-04-29 08:24:13 +02:00
91c2c2988f Revert "intel/display: use drm vblank wait support"
The visual artifacts described in

  https://github.com/genodelabs/genode/issues/5350#issuecomment-2396613180

are quite prominent and even more prominent than the former tearing.
Thus, let's ripen the work before it's merged.

This reverts commit 4ec277058e.
2025-04-29 08:24:13 +02:00
c2fca44ce7 platform/pc: recover from invalidation errors
On the unexpected occasion of an invalidation-queue error, the
invalidator gets stuck in an infinite loop. We therefore need to check
for and recover from invalidation-queue errors while waiting.

genodelabs/genode#5523
2025-04-29 08:24:13 +02:00
48233d4da0 platform/pc: clear invalidation descriptor
Each new entry in the invalidation queue must be zeroed before writing
in order to clear data from old entries. Not doing this can cause
invalidation queue errors after the tail pointer wrapped around.

genodelabs/genode#5501
genodelabs/genode#5523
2025-04-29 08:24:13 +02:00
9e96947ae9 capture session: specify viewport as rect
By giving the client a way to specify the origin of the viewport in
addition to the size, we can solve transformed (rotated, flipped)
output to screen buffers where the line length is larger than the
number of visible pixels.

Issue #5518
2025-04-10 15:39:28 +02:00
016d63703d depot: update recipe hashes 2025-04-10 14:55:59 +02:00
a2058a8d21 capture session: add viewport as buffer attribute
This patch adds the viewport area to the interface.
It is not evaluated by the nitpicker GUI server yet.

Issue #5518
2025-04-10 14:55:59 +02:00
1ef80e86e2 base: introduce Local_rm for local Region_map
The new 'Local_rm' type offers a narrow interface for the interaction
with the component-local address space, managing the lifetime of
attachments by using the 'Allocation' API.

Fixes #5516
2025-04-10 14:55:57 +02:00
84eb264786 util/attempt.h: mark 'Attempt' types as nodiscard
This catches bugs early on. E.g., when leaving an 'Allocation'
unused, it gets immediately deallocated, which is most probably not
intended. For regular 'Attempt' objects, this change encourages
the proper propagation of errors, or at least the logging of unexpected
conditions.

Fixes #5513
2025-04-10 14:55:21 +02:00
e380d0da95 base: use 'Allocation' interface for mem alloc
This patch converts the memory-allocator interfaces ('Allocator',
'Range_allocator') and their implementations ('Heap', 'Sliced heap',
'Slab', 'Allocator_avl', 'Synced_allocator') to the new 'Allocation'
utility. The new interface resides at base/memory.h whereas the
traditional allocators implement the new interface.

Down the road, the traditional allocators can successively be decoupled
from the traditional 'Allocator' and 'Range_allocator' interfaces.

Issue #5502
Issue #5245
2025-04-10 14:55:21 +02:00
4ec277058e intel/display: use drm vblank wait support
Fixes #5415
2025-04-10 14:27:21 +02:00
33fab30a1f intel/display: use phys resolution for capture
In the "<merge>" case, only a subset of the actual
framebuffer was (intentionally) captured to reduce cpu and memory bandwith.
The new blit tool however requires, by now, that the capture size must
be identical to the framebuffer in use.

Issue #5501
2025-04-10 14:26:47 +02:00
3ba0e6fda3 intel/display: remove diagnostic message on init
Issue #5501
2025-04-10 14:24:31 +02:00
1ba010af5d intel/display: avoid too dark display
during early bootstrap.

Issue #5501
2025-04-10 14:24:31 +02:00
73213872f8 intel_fb: amend connectors report with display name
The EDID reported by connected displays contains data to identify
displays based on product strings and PNP IDs. Amended the connectors
report <connector> node by an optional display_name attribute containing
the EDID information if available.

Fixes #5499
2025-04-10 14:24:11 +02:00
5a9016b010 ports,dde_linux/bsd/ipxe,pc: don't copy Xml_node
Issue #5411
2025-04-10 14:24:11 +02:00
e4704a1d39 platform: fix potential double insertion
When a session component has multiple IOMMU domains and `add_range()`
fails not on the first but on another domain, the range is not removed
from the first domain. This causes double insertion on the next try.

genodelabs/genode#5494
2025-04-10 14:24:11 +02:00
60b3619a1b intel/display: handle configuration with no merge
node at all. Fixes a regression. W/o the commit, discrete only
configurations may not work properly, e.g. not showing content on
any display.

Issue #5415
2025-04-10 14:13:26 +02:00
2d89b53b0c depot: update recipe hashes 2025-02-27 12:53:40 +01:00
cd40a5be96 tool: have_cmd_arg -> have_cmd_switch (run, autopilot, dts)
Issue #5432
2025-02-27 12:53:40 +01:00
28994f8c27 pc: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
2c8beb462f file-system session: root dir via session label
This patch changes the way of how the client-selected sub directory is
communicated to the server. The former opaque session argument is now
passed as last label element, which allows for the flexible tweaking
of this argument by init's session-routing and label-rewriting
mechansims. In particular, it alleviates the need for creating chroot
component instances.

This change requires the following four adaptations at the
configuration level:

- Each file-system session request must now carry a path starting
  with / as last session arguments. Hence, <vfs> <fs> nodes that
  feature a 'label' attributes must extend the attribute value
  with " -> /". For <fs> nodes with no label attribute, "/" is
  used as last label argument by default.

- For matching session-routing rules at init's configuration,
  the matching of full labels should be replaced by 'label_prefix'
  matches, excluding the last (path) argument.

- Wherever a label of a file-system session is rewritten by using
  init's 'label' attribute of a <parent> or <child> target node,
  the new attribute 'identity' should be used instead. This replaces
  the identity part of the label while preserving the client's
  directory argument.

- Analogously to the matching of session-routing rules, server-side
  policy-selection rules that formerly matched a concrete 'label'
  must be changed to match a 'label_prefix' instead.

As a good practice, 'label_prefix' values should end with " ->" if
possible, which clearly delimits the identity part of the label
used by the matching.

Issue #5445
2025-02-24 16:39:20 +01:00
2719b37107 run: use ram attribute in start nodes
Issue #5448
2025-02-24 16:39:20 +01:00
a5ae1e12bd Capture::Connection::Screen: use Blit::back2front
Issue #5428
2025-02-24 16:39:19 +01:00
5076554f20 depot: update recipe hashes 2025-01-30 16:32:35 +01:00
ae90a8a10d platform/pc: be robust on IOMMU claiming
Issue #5406
2025-01-30 16:30:13 +01:00
b07107c8c6 platform/pc: re-use init code during resume
genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
aaeb21136b platform/pc: remove Env from generate() methods
This was a relic from a time where we dumped the page tables from NOVA
and therefore needed to attach the corresponding dataspaces.

genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
4a0ce32faa platform/pc: implement IRQ remapping for Intel
genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
3c5b88111c platform/pc: use queued invalidation interface
genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
4790bc03fc platform/pc: move register-based invalidation
This is in preparation of implementing the queued-invalidation
interface.

genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
c767c2b129 platform/pc: implement IOAPIC
genodelabs/genode#5066
2025-01-30 16:30:13 +01:00
a9df9fccfd intel/display: report no inuse mode on disabled connector
Fixes #5404
2025-01-30 16:20:39 +01:00
cd6701c483 depot: update recipe hashes 2024-12-11 08:35:22 +01:00
97e638a2ac intel/display: avoid mode detection in irq task
On hotplug, the C++ side of the driver now gets just notified,
without any further detection.

On the C++ side, now specific actions are scheduled explicitly, which will be
executed step by step. New appearing actions will be queued and are
not eligible to run before the former actions of the list are processed.

Fixe #5392
2024-12-10 14:12:24 +01:00
011b44c282 depot: update recipe hashes 2024-11-20 08:58:39 +01:00
d104ca0561 intel/display: adapt README to current implementation 2024-11-20 08:55:49 +01:00
728ea95857 intel/display: improve mirror/discrete reporting
Don't try to decide based on the hardware state, in which mode a
connector is used. If a previous configuration failed, e.g. -ENOSPC,
the detection whether the mirrored framebuffer is in use may fail
and the connectors are reported wrongly as discrete.

During modeset traversal take the appropriate lock to synchronize irq and
user task, which may be de-scheduled by Linux code when invoking contrib
code.

Issue #5377
2024-11-20 08:55:49 +01:00
188080e15f intel/display: add i915_gem_evict_for_node
When the aperture is close to full or such fragmented, this unimplemented
function may be invoked.

Fixes #5377
2024-11-08 16:45:51 +01:00
6f5bcd4446 intel/display: check for mappable framebuffer
The driver code may allocate framebuffers which do not fit in the aperture.
Trying to use such framebuffer may lead to only partial visible content
on the screen and the rest either black or garbage.

Instead check for this circumstance and deny to use such framebuffers and
release them, since the user would get an unusable/hard to interpret state.
Additionally, release the vma mappings earlier in order to reduce the likelihood
of such un-mappable framebuffers.

Issue #5377
2024-11-08 16:45:48 +01:00