Commit Graph

13726 Commits

Author SHA1 Message Date
Norman Feske
60d009e6c6 nitpicker: notify clients on any panorama change
Nitpicker used to notify GUI clients about an updated GUI info only when
the total panorama size changed. However, in situations where two
capture clients are swapped, the total size may stay the same whereas
the relation of displays to different parts of the panorama is no longer the
same. Such changes are interesting to some clients like the window layouter,
which needs to update the assignement of screens to displays.

This patch changes nitpicker so that each panorama change is reflected
to GUI clients as a mode-info update.

Issue #5390
2024-12-10 14:12:24 +01:00
Alexander Boettcher
d0522706ba nova: avoid false pager assertion
Fixes #5399
2024-12-10 14:12:24 +01:00
Christian Helmuth
7f8db06284 Complete removal of tool/sdk approach
The SDK approach introduced in #2948 was superseded by Goa.

Issue #4446
2024-12-10 14:12:24 +01:00
Norman Feske
0749f8cbdf wm: free content view IDs if decorator disappears
This patch fixes the following error message printed by the wm upon the
restart of a decorator.

  Error: freeing non-empty slab block"
  Error: ID space not empty at destruction time

Fortunately, the error is not critical as the backing store is released
along with the session.
2024-12-10 14:12:24 +01:00
Norman Feske
1ddbb3444c sculpt/nitpicker: use label for matching decorator
The 'label_suffix=" -> decorator"' rule is weaker than the
more generic 'label_prefix="runtime -> wm"' rule, to the effect that the
decorator is assigned to the "desktop" domain instead of the "decorator"
domain. Replace the 'label_prefix' by the decorator's concrete label
to resolve this ambiguity.
2024-12-10 14:12:24 +01:00
Alexander Boettcher
4da68e11b6 tool: support to set menuentry of GRUB
manually to self chosen value, by overwritting the tcl procedure
grub_menuentry, e.g.:

proc grub_menuentry { } { return "'My OS' --option_of_your_choice " }

Fix #5398
2024-12-10 14:12:24 +01:00
Christian Helmuth
5665e8059a Optional session label in audio_in/out connection 2024-12-10 14:12:24 +01:00
Norman Feske
3067a2c51d nitpicker: prevent the pointer from going nowhere
The 'size_changed' handling remained without effect when the (last)
display re-appears (e.g., back from screen blank) because
'Capture_root::bounding_box()' delivered the '_fallback_bounding_box'
in the intermediate phase where no display was present. Unfortunately,
'Capture_root::visible()' failed to apply the same logic. This patch
makes 'visible()' consistent with 'bounding_box()'. It has the
welcome effect that nitpicker remembers the pointer position during
the dark phase.

Fixes #5397
2024-12-10 14:12:24 +01:00
Christian Helmuth
1d73cf2003 Prevent false warnings in memcpy (GCC 12)
GCC 12 tree-loop-distribute-patterns generates false warnings of
-Warray-bounds, -Wstringop-overflow, or -Wstringop-overread in memcpy()
and memcpy_cpu() in static/inline cases for code that obviously prevents
its execution by invariant checking. On -O3, even more warnings are
produced.
2024-12-10 14:12:24 +01:00
Norman Feske
010847b69c decorator: fix sync-handling corner case
This patch fixes the corner case where a call of 'trigger_gui_sync'
unexpectedly did not result in the execution of '_handle_gui_sync'.
When sporadically called (w/o having installed a period sync handler)
in a time window shortly after a previous '_handle_gui_sync' that just
switched back to sporadic mode, the situation was considered as !idle.
So the 'local_submit' was skipped.

The patch fixes the issue by always issuing a 'local_submit' except when
operating in period mode. The '_gui_sync_enabled' state is now driven
only by '_handle_gui_sync' to make the intent more clear.

Fixes #5396
2024-12-10 14:12:24 +01:00
Josef Söntgen
96d9f5d317 usb: consider alternate setting in endpoint select
When constructing an Usb::Interface and implicitly corresponding
Usb::Endpoint instances only select endpoints relevant for the
given alternate setting.

The libusb has to be changed to delegate the correct alternate
setting to the constructor too.

Fix genodelabs/genode#5394
2024-12-10 14:12:24 +01:00
Alexander Boettcher
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
Alexander Boettcher
ba013af1a3 sculpt_manager: handle manual fb config w/o mirror
config node gracefully. If no mirror is set, ever claim one entry
as the mirrored one. Without this change, the current effect is that
the UI does not allow to merge one of the discrete modes.

Issue #5392
2024-12-10 14:11:57 +01:00
Alexander Boettcher
e520dbbb7e nova: avoid assertion during SC cleanup
Regression introduced in Issue #5314

Fixes #5391
2024-12-10 14:11:57 +01:00
Norman Feske
7928597249 doc: remove docs covered by the Genode books
Foster the Genode books as a single point of reference for Genode's
documentation. E.g., the Getting-Started section of the "Genode
Foundations" book has long obsoleted doc/getting_started.txt. This
patch also remove long orphaned texts like gsoc_2012.txt. The approach
described in the porting guide has now been replaced by the Goa SDK.

The Genode books can be downloaded at the genode.org website. Like
Genode, they are open source. All text is licensed as CC-BY-SA and
can be found at https://github.com/nfeske/genode-manual

Fixes #5393
2024-12-10 14:11:57 +01:00
Norman Feske
979aaed52b doc: merge coding_style.txt into conventions.txt
Issue #5393
2024-12-10 14:11:57 +01:00
Christian Helmuth
f2c25383af acpi_event: prevent misleading warning about PRESS_RELEASE 2024-12-10 14:11:57 +01:00
Alice Domage
e384381942 tool/run/image/uboot: provide dtb for FIT images
Our new U-BOOT for the imx8mp_iot_gate complains about the size
of the device tree being zero bytes. This is because it no longer
provides the kernel boot arguments via ATAGS, but passes them via
by injecting them in the flattened device tree..

This commit adds a minimal dtb file to the FIT image to satisfy U-BOOT.

Issue  #5354
2024-12-10 14:11:57 +01:00
Stefan Kalkowski
b529b1eac6 qemu-usb: prevent assertion by eager URB processing
Instead of directly process URBs whenever a USBPacket arrives from
the Qemu ported XHCI layer, send a local signal to the I/O handler,
which will process the requests after leaving certain sensible
code pathes like usb_packet_complete. Otherwise, it might happen
that a packet, which was still marked as being queued gets already
completed, which leads to an assertion and hang of the library.

Fix genodelabs/genode#5389
2024-12-10 14:11:57 +01:00
Benjamin Lamowski
b21c8729ea base: provide core_ram_allocator via platform_add_local_services()
This is a prerequisite to rework the allocation of core data structures
for VM sessions in hw.

Issue #5221
2024-12-10 14:11:57 +01:00
Norman Feske
d5f3cc6ec2 terminal: ignore input without valid GUI mode
This prevents the potential corner case where the terminal receives input
at a time when the window has no valid size and _text_screen_surface is
not constructed.
2024-11-27 13:37:34 +01:00
Stefan Kalkowski
4730312c1e hw: register state and backtrace when core faults
If one of core's threads is causing an MMU fault, dump the
register state and stack backtrace of the faulting stack to
aid debugging.

Fix genodelabs/genode#5387
2024-11-27 13:33:24 +01:00
Stefan Kalkowski
cc2bcee417 tool/run: create debug files for backtrace of core
When building ELF binaries of core and bootstrap for a run scenario,
also create the *.core.debug file to be able to use the tool/backtrace
utility.

Ref genodelabs/genode#5387
2024-11-27 13:33:24 +01:00
Johannes Schlatow
2c2fb6b70e tool/run: add intel_hwp config to boot_dir/hw
Fixes #5388
2024-11-27 13:33:24 +01:00
Alexander Boettcher
b50bbef303 tool: support meshcmd as AMT alternative tool
which may be used as alternative for

- AMT log grabbing, default: amtterm
- AMT power cycling, default: wsman, alternative: amttool

https://www.meshcommander.com
https://github.com/Ylianst/MeshCommander
https://www.intel.com/content/www/us/en/developer/articles/news/meshcmd-new-intel-amt-command-line-tool.html
2024-11-26 18:17:41 +01:00
Christian Prochaska
35a679d861 libc: pthread cond/rwlock improvements
- add a check to detect if a different thread has
  initialized the internal object in the meantime
- remove ENOMEM error since the 'Libc::Allocator'
  is not supposed to throw exceptions
- remove init mutex from 'pthread_condattr_init()'
  since there is no implicit initialization which
  could happen in parallel like with mutex/cond/rwlock

Issue #5386
2024-11-26 01:08:19 +01:00
Christian Prochaska
37842757ac libc: synchronize implicit pthread mutex initialization
Fixes #5386
2024-11-26 01:08:15 +01:00
Norman Feske
fa9473ce58 doc/release_notes/24-11.txt: minor style fixes 2024-11-22 18:17:24 +01:00
Christian Helmuth
873386f8a1 version: 24.11 2024-11-22 13:37:12 +01:00
Norman Feske
2b18913782 News item for version 24.11 2024-11-22 13:34:49 +01:00
Norman Feske
fb7fa915c6 Release notes for version 24.11 2024-11-22 13:34:49 +01:00
Christian Helmuth
011b44c282 depot: update recipe hashes 2024-11-20 08:58:39 +01:00
Norman Feske
a3193b919c terminal: survive malformed dynamic re-config 2024-11-20 08:58:39 +01:00
Norman Feske
798b49fcc3 vfs server: survive malformed dynamic re-config
The VFS server used to respond to any invalid config by exiting.
By disregarding such configurations instead, this patch makes the VFS
server robust against temporary malconfiguration.
2024-11-20 08:58:39 +01:00
Roman Iten
d095945d6c fs_rom: clear dataspace if lookup failed
Issue #3897
2024-11-20 08:58:39 +01:00
Norman Feske
9e4b27a829 fs_rom: use dataspace bounds for clearing
Avoid potential risk of exceeding the dataspace bounds should the stored
file size be larger than the current ds size.

Issue #3897
2024-11-20 08:58:39 +01:00
Norman Feske
4d7a5b6829 base: add Attached_dataspace::clear()
This alleviates the need (and risk) of manually parametrizing 'memset'
whenever the entire dataspace shall be cleared.

Issue #3897
2024-11-20 08:58:39 +01:00
Norman Feske
7019b795a6 tool/run: tolerate absence of load_spawn_id
Avoid backtrace in error message if load/fastboot fails at the
boot-loader stage.
2024-11-20 08:58:39 +01:00
Norman Feske
3bb894370a tool/run/load/fastboot: detect fastboot driver
Replace the unconditional sleep "until the board comes up" by the
detection of the fastboot-driver message. This shortens the total boot
time and reveals U-boots initial output, e.g., messages reporting
trouble with bringing up the fastboot driver.
2024-11-20 08:58:39 +01:00
Norman Feske
9e5e648073 tool/run/load/fastboot: case-insensitive match
The success messages of different versions of the fastboot tool
are printed in different upper/lower case. Tolerate both.

The patch also removes a few superfluous semicolons.
2024-11-20 08:58:39 +01:00
Norman Feske
14e3339ce6 base-hw: remove outdated comment 2024-11-20 08:58:39 +01:00
Benjamin Lamowski
b05b7f17f3 sculpt_manager: bump editor default quota for large fonts and 4k
When trying to open a file in the Files view with font size set to
Large on 4k screens, the editor's / `text_area`'s `view` child fails to
bump its RAM quota when the editor's default quota is too small.

To mitigate the issue, bump the editor's default quota to 80MiB.
The long-term fix would be for the editor to request more RAM from the
runtime to satisfy the `view` RAM request.

Issue #5356
Issue #5383
2024-11-20 08:58:39 +01:00
Benjamin Lamowski
f6a1956a30 sculpt_manager: bump quota boost limit for runtime_view
When using the Files view with font size set to Large, the boosted
runtime_view limit of 64MiB is still not enough for 4k screens.

Double the RAM boost limit to 128MiB.

Issue #5356
2024-11-20 08:58:39 +01:00
Josef Söntgen
59d951ed6a sculpt_manager: start fb on second CPU on Pocket
With this commit the fb driver is started on the second CPU on the
MNT Pocket Reform to decouple it from the other components started
on the first CPU during the system's boot-up and mitigates bring-up
issues with this driver that result in an often non-working display.

Issue #5378.
2024-11-20 08:58:39 +01:00
Josef Söntgen
fe008e0884 sculpt_manager: allow decoupling fb from first cpu
This commit allows for expressing the intent to start the fb driver
on a different CPU.

Issue #5378.
2024-11-20 08:58:39 +01:00
Josef Söntgen
f72fdf77ed sculpt_manager: set affinity for child
With this commit it is possible to specify the affinity for components
directly managed by Sculpt, like drivers.
2024-11-20 08:58:39 +01:00
Josef Söntgen
0f70cbd704 sculpt_manager: query affinity-space immediately 2024-11-20 08:58:39 +01:00
Norman Feske
6e2a7e979e tool/run/log/serial: be quiet by default
As the initial output of picocom is hardly ever needed, disable it by
default to reduce the log noise. Whenever needed, the output can still
be enabled by specifying the run tool's --log-serial-cmd.
2024-11-20 08:58:39 +01:00
Norman Feske
0eefe2d872 gems/vfs_font: improve glyph bb sanity check
Issue #5374
2024-11-20 08:58:39 +01:00
Norman Feske
052dd903a4 base-hw: rm C++ exception from syscall dispatcher
This patch removes the only residual C++ exception from the kernel part
of core, eliminating the risk of the kernel thread trying to enter the
kernel itself via the C++ exception-handling path. When throwing an
exception, __cxa_allocate_exception invokes the cxx_heap, which
synchronizes accesses via a Genode::Mutex. In the contention case,
the blocking of the mutex issues a syscall to pause the caller.
The patch fixes the problem by replacing the exception with a return
value.

Fixes #5382
Issue #5245
2024-11-20 08:58:39 +01:00