Commit Graph

12016 Commits

Author SHA1 Message Date
Norman Feske
9e42c94e30 sculpt: handle deploy downloads by download queue
By managing downloads issued by the deploy subsystem via the
'Download_queue', failed downloads (e.g., due to HTTP error 404) are
properly tracked and don't cause infinite re-attempts.

Issue #4818
2023-04-26 11:58:14 +02:00
Christian Helmuth
5cb06b5f1c platform_drv: document PCI device naming after BDF
Issue #4812
2023-04-26 11:58:14 +02:00
Norman Feske
c705bdd6a9 depot_download: avoid spurious respawn of fetchurl
Thanks to Timo Nicolai for bringing up this issue along with an initial
patch.

Fixes #4815
2023-04-26 11:58:14 +02:00
Norman Feske
a5eb198549 sandbox/init: report exit state immediately
This patch promotes the event of an exiting child to become immediately
reported, reducing delays for management components that watch the exit
status of children.

Fixes #4814
2023-04-26 11:58:14 +02:00
Norman Feske
aab9227365 pkg/mesa_gpu-cpu: RAM quota adjustments
When deployed on the PinePhone, the cached_fs_rom requests additional
4 MiB of RAM.
2023-04-26 11:58:14 +02:00
Norman Feske
014066f15b sculpt: avoid stretched radio icon in wifi ap list 2023-04-26 11:58:14 +02:00
Norman Feske
54d7a48c9b sculpt: support for pinephone wifi driver
This patch replaces the former 'nic_drv' and 'nic_drv_dtb' functions
by a more general 'nic_driver_routes' function that can return one or
multiple platform-specific ROM routes for NIC-driver binaries and dtb
files. This allows for supplying customizations for the wifi driver
as well. E.g., on the PinePhone, this hook can be used to handle the
renaming of the 'wifi_drv' to 'a64_wifi_drv'.

Related to issue #4813 and issue genodelabs/genode-allwinner#17.
2023-04-26 11:58:14 +02:00
Josef Söntgen
1d376717c1 net/netaddress: make copy member function const
As the function does not alter the internal state of the
object allow for using it in r/o contexts.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
8f91f119b8 wifi: remove firmware library
The library is merely an historical artifact and the raw archive is
better used in its place.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
2b4246c59b lib/symbols/wifi: add symbols file for ABI so
Add symbols file for the wifi shared-object.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
6c36a58bb7 lib/wifi: remove unused symbols from symbol.map
Remove symboles that are no longer required.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
0b28c9ae6f lib/vfs/wifi: remove dependency on wifi library
The wifi VFS plugin is solely there to provide a hook for calling
'Lx_kit::initialize()' prior to the static ctors. As the corresponding
symbol can be resolved at run-time there is no need to add the
library as a build-time dependency.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
e6ee7d3d4a wifi: provide platform specific DTB access
The device-tree binary is normally required on ARM-based platforms
where as on x86 it is omitted. The platform-specific DTB helper
provides a generic interface for accssing the DTB and needs to be
implemented on each platform.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
eaaedb6ae8 wifi: defer supplicant start-up
The SDIO connected wireless device on the PinePhone is not available
on start-up, which leads to the supplicant failing to initalize
'wlan0'. Normally the supplicant would be used in a way that handling
devices that appear at run-time happens gracefully.

Rather than supporting this behavior we defer the start-up of the
supplicant until the device could be openend successfully for now.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
0b08ae09c4 wifi: check 'lx_get_mac_addr' before reporting
The MAC address device report should be published once the device is
available. Since this may happen at a later time we have to check the
call.

Issue #4813
2023-04-26 11:58:14 +02:00
Stefan Kalkowski
8ae5ae76fb wifi: support building for ARM64
This commit introduces support for building the WLAN driver for ARM
platforms. It makes the WPA supplicant and its support libraries
available for all platforms. It also seperates the PCI parts to
accommodate platforms where other bus protocols are used.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
56d366995c wifi/pc: add ath9k driver
The driver was only tested with an "Atheros AR9462 Rev:2" [168c:0034]
device using the 'wifi.run' run script.

Note: for it to work MSI may not be used as otherwise interrupts do not
work. Using an IOMMU leads to the following fault:

[ 0] IOMMU:0xffffffff817eb0b0 FRR:0 FR:0x22 BDF:4:0:0 FI:0xb0000000000000 (0)

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
e0d6e2e5a7 wifi: guard 6.1.x code
Needed for drivers still implemented using Linux 5.x.x.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
7b146e0563 lx_emul: use 'dma_address' in 'dma_unmap_sg_attrs'
The way the 'struct page' management is currently implemented it is
not safe to rely on it in case allocations share the same page. This
is in particular true where the virtual address is obtained by
querying the page object for maintaining the CPU caches.

Issue #4813
2023-04-26 11:58:14 +02:00
Josef Söntgen
997e60d52a lx_emul: guard 6.1.x signature changes
Needed for drivers still implemented using Linux 5.x.x.

Issue #4813
2023-04-18 11:09:55 +02:00
Christian Helmuth
bba9254172 sculpt: version 23.04 2023-04-17 14:56:40 +02:00
Christian Helmuth
b5f79756b3 depot: update recipe hashes 2023-04-17 14:48:30 +02:00
Sebastian Sumpf
f91aba873e test/qt5/qpluginwidget: add dummy 'main'
issue #4794
2023-04-17 14:48:30 +02:00
Alexander Boettcher
364ff0e65c nova: avoid initial wrong idle tracing times
Issue alex-ab/nova#9
2023-04-17 14:48:30 +02:00
Pirmin Duss
2b194d47cc openssl: update to 1.1.1t
Issue #4808
2023-04-17 14:48:30 +02:00
Sebastian Sumpf
effe17c852 qt5_component: add 'main' as undefined to ABI
This causes the 'main' function to not be garbage collected when linking against
the ABI.

issue #4794
2023-04-17 14:48:30 +02:00
Christian Helmuth
4b54520579 trace_buffer: fix check for empty buffer
Issue #4805
2023-04-17 14:48:30 +02:00
Christian Helmuth
684388e737 trace_logger: log scheduling-context execution time
Optionally log scheduling-context execution time in addition to the
thread-context. This may be relevant on kernel platforms that do not
schedule threads on their own CPU share only but implement some kind of
donation scheme, for example, NOVA.

Usage

  <config sc_time="yes" ...> ... </config>

Fixes #4805
2023-04-17 14:48:30 +02:00
Josef Söntgen
1041ed8773 wifi: use latest available firmware
This commit updates the used firmware images for the iwlwifi device
to latest available ones (supported by the current 6.1.x driver).
It also removes old firmware images that by now are not used anymore.

Fixes #4807.
2023-04-17 14:48:30 +02:00
Norman Feske
595660fb84 tool/depot: sanity check for presence of port hash
If a content.mk file wrongly refers to a non-existing directory in a
call of the 'port_dir' function, the 'content_env_missing_ports.mk' gets
stuck while invoking 'cat' without argument, which makes such mistakes
difficult to diagnose. This patch adds a sanity check for the existence
of the port hash file at the specified location before attempting to
'cat' the hash-file content.
2023-04-17 14:48:30 +02:00
Norman Feske
22836e3e0f gems: add pkg/unconfigured_nano3d
Unfortunately, the change of "depot: remove empty config from
pkg/nano3d" broke the manual deployment of the nano3d demo because no
<config> is provided in this case.

This patch splits pkg/nano3d into two variants. The regular nano3d pkg
comes with an empty <config/> node as before. The unconfigured_nano3d
pkg does not feature any <config/> node and can thereby be configured
via a ROM route to a dynamic-rom service.
2023-04-17 14:48:30 +02:00
Norman Feske
f8fd202a1c depot_download: option for unverified downloads
This patch equips the depot_download subsystem with the option to
explicitly skip the signature verification for downloads by specifying
the attribute 'verify="no"' for an <installation> item. This is useful
in scenarios where the lack of integrity of downloaded content does not
pose a risk, e.g., for untrusted applications that are rigidly
sandboxed, or during development.

Note that this option does not entirely discarge the signature checking.
Whenever an download has dependencies that are verifyable - for
which the public key exists in the depot - the dependencies are still
verified. This allows untrusted content to depend of verifyable content
while protecting the integrity the verifyable content.

Issue #4804
2023-04-17 14:48:30 +02:00
Norman Feske
b6bb338011 sculpt: make download verification controllable
This patch adds the 'Verify' argument to all download-related interfaces
in order to control the checking of signatures for downloads. Note that
it does not change the sculpt_manager's existing built-in policy of
always checking signatures.

Issue #4804
2023-04-17 14:48:30 +02:00
Norman Feske
a351b0c164 sculpt: expose unique name as 'Component' constant 2023-04-17 14:48:30 +02:00
Norman Feske
3a99deef5a sculpt: reusable component-construction interfaces
This patch moves the interfaces needed for the interactive addition of runtime
components from the 'Popup_dialog' to the 'model/component.h'. So those
interfaces are no longer tied to one specific view implementation.
2023-04-17 14:48:30 +02:00
Norman Feske
daf53df670 sculpt: 'Sculpt::match_sub_dialog' function
This free-standing function is meant to gradually replace
'Dialog::match_sub_dialog' interface, which relies on the caching of
the hover state. The new function is more flexible because dialogs do no
longer need to inherit 'Dialog'.
2023-04-17 14:48:30 +02:00
Norman Feske
b91e5353ba sculpt: make Popup_view::Menu reusable 2023-04-17 14:48:30 +02:00
Norman Feske
9be7ce54c2 sculpt: avoid superfluous <installation> entries
The missing else statements resulted in the addition of a
superfluous <archive> node when installing an <index>, causing
warning messages by the depot-download subsytem.
2023-04-17 14:48:29 +02:00
Norman Feske
fb1865eb91 sculpt: support for creating small files 2023-04-17 14:48:29 +02:00
Norman Feske
9834849e95 sculpt: allow new depot users in ram_fs/depot 2023-04-17 14:48:29 +02:00
Norman Feske
0bec935ccb sculpt: hide manager_keyboard in graph 2023-04-17 14:48:29 +02:00
Norman Feske
9ef6ed52c4 sculpt: report_dump, system_clock-dummy launchers 2023-04-17 14:48:25 +02:00
Norman Feske
ed8e8b9473 fs_tool: add missing whitespace in warning message 2023-04-17 14:48:25 +02:00
Norman Feske
123df93741 depot_query/deploy: allow pkg <rom> relabeling
This patch adds the ability to specify an optional 'as' attribute in a
<rom> module declarion of a runtime file.

  <runtime ...>
    ...
    <content>
      <rom label="camera-pinephone.dtb" as="dtb"/>
      ...
    </content>
  </runtime>

If specified, The depot-deploy tool uses the provided attribute value to
hand out the ROM 'camera-pinephone.dtb' under the label 'dtb' to the
subsystem.
2023-04-17 14:48:25 +02:00
Norman Feske
7927c0b540 depot: recipe for pkg/nitpicker
This pkg is useful for using an instance of nitpicker as a video bridge.
2023-04-17 14:48:25 +02:00
Josef Söntgen
118fff0472 iwlwifi: limit rx bufs to 2048
Recent devices are configured with 4096 RX pages that lead to an
increased memory usage. For the moment lower the amount to 2048
and treat in potientially lower throughput for more conservative
memory consumption.

Fixes #4801.
2023-04-17 14:48:25 +02:00
Sebastian Sumpf
e27737a0a5 dde_rump: add RISC-V support
This commit adds RISC-V file-system support through the backport
originally provided by ARMv8.

fixes #4800
2023-04-17 14:48:25 +02:00
Christian Helmuth
7be915a185 vbox6: disable RDTSC exit
For Windows guests, it's crucial to configure the paravirtualization
provider in .vbox6 like follows. Otherwise, the TSC calibration fails
(issue #4726) and the CPU frequency (in task manager) is bogus.

  <Paravirt provider="HyperV"/>

Fixes #4726
2023-04-17 14:48:24 +02:00
Stefan Kalkowski
0bc5bcce4a test/driver_time: fix page-fault of ARMv8a variant
The get_cycles() call within the test doesn't apply to RDTSC
access when running on ARM but to arch_timer_read_counter, which
is an empty function pointer. By setting it to a function that
returns Genode::Trace::timestamp() we can enable the test for ARM.

Issue #4775
2023-04-17 14:48:24 +02:00
Stefan Kalkowski
2269f42e17 lx_emul: update Linux port to 6.1.20
Fix genodelabs/genode#4798
2023-04-17 14:48:24 +02:00