Martin Stein
3cc7774fe4
base-hw: Ada/SPARK-friendly Ipc_node interface
...
This prevents the use of C++ features in the public method interface of the
synchronous-IPC module that would be impractical for the in-place
translation of the module into Ada in the context of the Spunky project.
* Get rid of thread accessor.
* Get rid of non-const functions with return values.
* Get rid of pointer return-values.
Ref #3308
2020-02-20 12:11:21 +01:00
Martin Stein
a04243aaf4
base-hw: remove unused Ipc_node accessor methods
...
Ref #3308
2020-02-20 12:11:21 +01:00
Martin Stein
5a95183c3e
base-hw: avoid that Ipc_node inherits
...
Besides simplifying inheritance hierarchies in base-hw, this prepares for the
in-place translation of the synchronous-IPC module to Ada in the context of the
Spunky project.
Ref #3308
2020-02-20 12:11:21 +01:00
Martin Stein
6a5aa18a7b
base-hw: no PD code / virt methods in Ipc_node
...
This is a simplication of the asyncronous-IPC module of the base-hw kernel.
Besides structuring the code in a cleaner way, it prepares for the in-place
translation of the module into Ada in the context of the Spunky project.
* Get rid of virtual methods in Ipc_node.
* Move all stuff related to protection domains, capabilities, and UTCBs to
the Thread class. this code might later be moved to a dedicated module, but
for now it's just fine to have it done by the thread module.
Ref #3308
2020-02-20 12:11:21 +01:00
Stefan Kalkowski
79fba6c2ac
core: add kernel-specific UTCB quota bookkeeping
...
Fix #859
2020-02-20 12:11:21 +01:00
Tomasz Gajewski
4f217b19a9
hw: add CPU wake up code for rpi3
...
Moved code waking up processors for Cortex A53 before changing privilege
level because sending events to higher privilege levels is not allowed.
Fixed enable_mmu for Cortex A53 to properly return cpu id.
Fixed starting code for secondary cores to properly initialize stacks.
Added code to wake up secondary cores on rpi3.
Ref #3573
2020-02-20 12:08:17 +01:00
Stefan Kalkowski
202333c881
hw: cortex a9 diagnostic register initialization
...
We cannot count on the correct initialization of the diagnostic register
of the secondary cores. But the boot core gets initialized by the bootchain,
so we can copy over those values.
Fix #3639
2020-02-20 12:08:17 +01:00
Norman Feske
57ea1dbdd3
depot: update recipe hashes
2020-02-10 14:29:06 +01:00
Stefan Kalkowski
56ef7ca9e7
hw: enable ARMv8 performance counter
...
Fix #3618
2020-02-04 16:05:01 +01:00
Christian Helmuth
90535a1401
depot: update recipe hashes
2020-02-04 15:51:10 +01:00
Alexander Boettcher
7b964fa700
base: add affinity space info to platform info
...
Issue #3599
2020-02-04 15:51:10 +01:00
Sebastian Sumpf
1902d1a06b
hw: do not map boot modules in bootstrap
...
This commit safes virtual address space.
2020-02-04 15:51:08 +01:00
Norman Feske
beb8bf498c
base-hw: add explicit array-bounds check
...
This patch rules out out-of-bounds array accesses without inspecting the
caller. It is not a bug fix but adds clarity.
2020-02-04 15:51:08 +01:00
Norman Feske
de764d8490
base-hw/muen: add explicit array-bounds check
2020-02-04 15:51:08 +01:00
Norman Feske
5635c1318c
base-hw: explicit bounds check in store_apic_id
...
Avoid relying on the caller regarding the CPU index argument to ease the
reasoning about the code.
2020-02-04 15:51:08 +01:00
Christian Helmuth
b931b67cba
depot: update recipe hashes
2019-12-19 17:01:43 +01:00
Alexander Boettcher
e54ff599ca
base-hw: trace execution time of core threads
...
Fixes #3572
2019-12-19 17:01:43 +01:00
Sebastian Sumpf
04969b6be0
base-hw: add trace execution time support
...
This enables the 'top' program on base-hw for debugging issue #3247 on
rpi.
Fixes #3572
2019-12-19 17:01:42 +01:00
Emery Hemingway
648382db74
Align after template expansion
...
Clang Cannot align template structs. Also, cannot cast void* to addr_t
in constexpr function.
Issue #3564
2019-12-19 16:59:03 +01:00
Emery Hemingway
2c510bb7f9
Remove unused lamba capture to fix clang warning
...
Issue #3564
2019-12-19 16:59:03 +01:00
Christian Helmuth
11ef8e1ff2
depot: update recipe hashes
2019-11-28 09:06:39 +01:00
Stefan Kalkowski
4800bcf5a0
hw: correct the i.MX6 Sabrelite timer settings
...
Fix #3561
2019-11-25 15:43:59 +01:00
Christian Prochaska
57d080d4f8
hw: use correct type on IRQ kernel object destruction
...
Fixes #3560
2019-11-25 14:15:39 +01:00
Stefan Kalkowski
af29dcf557
hw: introduce virtualization support for ARMv8
...
Ref #3553
2019-11-21 14:29:36 +01:00
Stefan Kalkowski
f82714f341
vm_session: return vcpu id when creating vcpu
...
Ref #3553
2019-11-21 14:29:36 +01:00
Stefan Kalkowski
02d68fdb97
hw: move arm virtualization to generic place
...
Ref #3553
2019-11-21 14:29:36 +01:00
Stefan Kalkowski
065b9fdb46
base-hw: extend syscalls to five arguments
...
Ref #3553
2019-11-21 14:29:36 +01:00
Christian Helmuth
7ed1d7f11d
depot: update recipe hashes
2019-11-19 14:54:14 +01:00
Stefan Kalkowski
8a8aa85726
hw: initialize iomux, ccm and gpc for i.MX8 EVK
...
Fix #3534
2019-11-19 14:42:23 +01:00
Stefan Kalkowski
105b2c9b7a
hw: fix gicv3 implementation of clear/set regs
...
In addition use uniformly enums for interupt count in register declarations.
Fix #3532
2019-11-19 14:42:23 +01:00
Stefan Kalkowski
f6435d91fc
hw: turn Kernel_object into Genode::Constructible
...
Fix #3531
2019-11-19 14:42:23 +01:00
Stefan Kalkowski
3e3fb63863
hw: enable Genode::raw for bootstrap
...
Ref #3531
2019-11-19 14:42:23 +01:00
Stefan Kalkowski
87a6368ba1
hw: implement multi-processor support for rpi3
...
Fix #3522
2019-11-19 14:42:22 +01:00
Stefan Kalkowski
1cbd77c806
hw: implement multi-processor support for i.MX8
...
Fix #3520
2019-11-19 14:42:22 +01:00
Stefan Kalkowski
e3f82b09d7
hw: instantiate pic object per cpu
...
Ref #3520
2019-11-19 14:42:22 +01:00
Christian Helmuth
4a7b0e99a6
depot: update recipe hashes
2019-09-20 14:14:16 +02:00
Christian Helmuth
b2c59576ae
depot: update recipe hashes
2019-08-28 14:36:56 +02:00
Christian Helmuth
312f801f8a
depot: update recipe hashes
2019-08-21 13:25:26 +02:00
Sebastian Sumpf
e855638266
hw: add system call for irq mode setting
...
Core is not allowd to access the kernel's Pic implementation directly.
fixes #3474
2019-08-21 13:25:25 +02:00
Christian Helmuth
1c77ea2b03
base-hw: remove other board libs from recipes
2019-08-13 12:02:27 +02:00
Christian Prochaska
4c113182b0
depot: add recipe for base-hw-imx8q_evk
...
Issue #3426
2019-08-13 12:02:27 +02:00
Stefan Kalkowski
7ced122ddc
hw: support for i.MX8M Quad EVK
...
Fix #3426
2019-08-13 12:02:27 +02:00
Stefan Kalkowski
6b09ac59f0
hw: enable performance counter for ARMv8
...
Ref #3426
2019-08-13 12:02:27 +02:00
Stefan Kalkowski
ee38504d81
hw: implement update_data_region for ARMv8
...
Ref #3426
2019-08-13 12:02:26 +02:00
Sebastian Sumpf
dd505edd19
hw: GICv3 implementation
...
* modern GICv3 implementation
* distributor
* redistributor
* MMIO cpu interface
Ref #3426
2019-08-13 12:02:26 +02:00
Stefan Kalkowski
fa1aa33f83
hw: sanitize arm trustzone/virtualization services
...
Those services are not SoC specific and have to reside at a generic place.
Fix #3445
2019-08-13 12:02:26 +02:00
Stefan Kalkowski
907de9d37f
hw: move timer into board.h
...
Unify the generic timer implementation for ARMv7 and ARMv8.
Ref #3445
2019-08-13 12:02:26 +02:00
Stefan Kalkowski
5c7436bf10
hw: remove SMP variable from board.h
...
Whether an SoC has the multiprocessing extensions can be read out
from the identification registers, and does not need to be specified
in each board header.
Ref #3445
2019-08-13 12:02:26 +02:00
Stefan Kalkowski
0b77e8ea62
hw: consistently move cpu into board namespace
...
Ref #3445
2019-08-13 12:02:26 +02:00
Stefan Kalkowski
875858b2cc
hw: integrate interrupt controllers into board.h
...
Additionally, unify more implementation details in between different
usage patterns of ARM's generic interrupt controller (v2)
Ref #3445
2019-08-13 12:02:26 +02:00