Commit Graph

21 Commits

Author SHA1 Message Date
Norman Feske
a6a923c31b driver manager: restart intel_fb when frozen
This patch introduces heartbeat monitoring and automated restarting
of the intel framebuffer driver.
2021-01-25 13:58:10 +01:00
Stefan Kalkowski
22852f2e50 sculpt: move pc-specifics away from generic part
* Introduce sculpt-[board] specific package
* Move rtc driver into managed drivers sub-system
* Name nic_drv in a generic fashion in sculpt_manager
* Copy over pc-specific config files only when building for PC

Ref #3958
2020-11-27 09:19:09 +01:00
Alexander Boettcher
24181f2bf6 driver_manager: use componentized usb driver
Fixes #3943
2020-11-23 12:03:00 +01:00
Stefan Kalkowski
06edc0d52b base: extend PD session with managing_system call
Introduce the managing_system privilege for components like the
platform_driver to allow it to call system management functionality
that is reserved by kernel or special firmware, e.g., ARM Trusted Firmware.

The former RAM resource configuration attribute `constrain_phys`,
which enabled to constrain the region of physical RAM to be used,
gets replaced by the new, broader managing_system configuration
attribute of a `start` node. It gets enforced by the sandbox library.

Ref #3816
2020-08-25 11:50:11 +02:00
Norman Feske
a2381c7e4c Turn USB HID drivers into event-session clients
Issue #3845
2020-08-25 11:50:09 +02:00
Norman Feske
974118acec Turn PS/2 driver into event-session client
Issue #3845
2020-08-25 11:49:45 +02:00
Norman Feske
9662d89cfb Replace input filter with event filter
This commit applies the transition from the "Input" session to the "Event"
session to the event-filtering mechansim. The functionality of the
input_filter is now provided by the event_filter. The event filter
requests only one "Event" session as destination for the filter result,
which is usually routed to the nitpicker GUI server. It provides an
"Event" service to which any number of event sources can connect.

The configuration of the filter chain remains almost the same. Only the
declaration of the <input> nodes is no longer needed. Instead, the
configuration must specify <policy> nodes, which define the mapping of
"Event" clients (event sources) to the inputs used in the filter chain.

The patch adjusts all uses of the nitpicker GUI server accordingly such
that the event filter reports events to nitpicker's event service
instead of having nitpicker request an "Input" session. This dissolves
the dependency of nitpicker from input drivers.

Issue #3827
2020-08-25 11:49:43 +02:00
Norman Feske
c81af531a3 Turn framebuffer drivers into capture clients
This patch replaces the use of the "Framebuffer" session interface by
the new "Capture" session interface in all framebuffer drivers. Thanks
to this change, those drivers have become mere clients of the nitpicker
GUI server now, and are no longer critical for the liveliness of the GUI
server.

The patch touches the following areas:

- The actual driver components. The new versions of all drivers have
  been tested on the respective hardware. Generally, the drivers
  have become simpler.

- The drivers_interactive packages for various boards. The drivers
  subsystem no longer provides a "Framebuffer" service but needs a
  valid route to the "Capture" service provided by nitpicker.

- The driver manager of Sculpt OS.

- This patch changes the role of the test-framebuffer component from a
  framebuffer client to a capture server so that drivers (capture clients)
  can be directly connected to the test component without the nitpicker
  server.

- Framebuffer driver no longer support the unbuffered mode.

- The fb_bench.run script is no longer very meaningful because it
  interplays solely with nitpicker, not with the driver directly.

- All run scripts for graphical scenarios and the related depot
  archives got adapted to the change.

Fixes #3813
2020-07-13 11:33:15 +02:00
Norman Feske
7f8fe00cdc drivers_managed-pc: route for smbios_table report 2019-08-28 14:22:33 +02:00
Christian Helmuth
40a84e0c81 input/ps2: poll for mouse-reset results
The PS/2 driver retries to get mouse-reset results for 700 ms, sleeping
after each attempt for 10 ms. So, the driver needs a Timer session now.

Fixes #2713
2018-08-28 17:10:55 +02:00
Alexander Boettcher
eb62d9cc04 dde_linux: update intel_fb to 4.16.3
Fixes #2736
2018-08-28 16:18:33 +02:00
Josef Söntgen
329f8b30e9 sculpt: increase acpi_drv resources to satisfy T470p 2018-05-30 13:36:28 +02:00
Josef Söntgen
dd562f84fa driver_manager: add NVMe block driver
Issue #2794.
2018-05-03 15:32:00 +02:00
Norman Feske
5d6f97cc1d drivers_managed-pc: simplification
This patch removes the former use of ram_fs, fs_rom, and fs_report from
the subsystem and uses a report_rom instead. The fs-based reporting was
introduced to accommodate automatically instantiated usb_block drivers,
which turned out to be impractical for the sculpt scenario.
2018-01-17 12:14:37 +01:00
Josef Söntgen
9f2bec52d5 drivers.config: accommodate intel_fb_drv CAP quota 2017-12-21 15:01:49 +01:00
Norman Feske
9899fed654 drivers_managed-pc: support system reset 2017-12-21 15:01:49 +01:00
Norman Feske
f36bc80bd7 driver_manager-pc: numlock handling
This patch incorporates key remapping rules for the input filter that
depend on the global numlock state.
2017-11-30 11:23:15 +01:00
Norman Feske
c41a9e6a21 drivers_managed-pc: support audio, acpica 2017-11-30 11:23:13 +01:00
Norman Feske
c05ab9c310 drivers_managed-pc: propagate keyboard LEDs
This patch supplements the drivers subsystem with the ability to
propagate the global capslock and numlock states to PS/2 and USB HID
keyboards.
2017-11-30 11:23:12 +01:00
Norman Feske
2b632760b6 driver manager: increase RAM quota for usb_drv
Without this patch, usb_drv would issue a resource request when
assigning a USB device to a VM in the sculpt scenario.

Furthermore, the patch adjusts the intel_fb quota to enable it on
devices where the driver allocates the framebuffer in many 4K pieces.
2017-11-09 12:18:41 +01:00
Norman Feske
6bfd4f4276 gems: driver-manager subsystem for PC platforms
This is a drivers subsystem that starts the most fundamental
(framebuffer, input, block) device drivers dynamically, depending on the
runtime-detected devices. The discovered block devices are reported
as a "block_devices" report.
2017-10-05 17:40:00 +02:00