Stefan Kalkowski
8cc48d5688
hw: be more accurate in synchronizing ASID/Pages
...
Fix #3651
2020-02-20 12:11:23 +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
Stefan Kalkowski
56ef7ca9e7
hw: enable ARMv8 performance counter
...
Fix #3618
2020-02-04 16:05:01 +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
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
Stefan Kalkowski
af29dcf557
hw: introduce virtualization support for ARMv8
...
Ref #3553
2019-11-21 14:29:36 +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
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
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
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
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
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
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
Martin Stein
b87e21a392
base-hw: EFI sys-table pointer in platform info
...
Ref #3430
2019-08-13 12:02:03 +02:00
Stefan Kalkowski
90d07741aa
hw: support for ARM64 Raspberry Pi 3
...
Restriction: enables only cpu core 0 and the timer interrupt by now.
Fix #3405
2019-07-09 08:55:22 +02:00
Stefan Kalkowski
d9a0f76e7a
hw: extend long-descriptor page table format
...
Ref #3405
2019-07-09 08:55:22 +02:00
Sebastian Sumpf
cec050983a
hw: [[fallthrough]] annotations for ARM/RISC-V
...
* double checked
issue #3377
2019-05-29 10:20:52 +02:00
Sebastian Sumpf
d417d26ce8
hw: fix calculation of CPU count on x86_64
...
On x86 the CPU count is determined through ACPI's MADT by counting the
local APICs reported there. Some platforms report more APICs
than there are actual CPUs. These might be physically disabled CPUs.
Therefore, a check if the LAPIC is actually physically enabled in
hardware fixes this issue.
Thanks to Alex Boettcher
fixes #3376
2019-05-29 10:20:52 +02:00
Christian Prochaska
4fc3eca4aa
base-hw: fix compile errors with GCC 8.3.0
...
Fixes #3326
2019-05-27 14:46:54 +02:00
Stefan Kalkowski
5c77ebb1fb
hw: factor out x86 specific bootinfo
...
Ref #3326
2019-05-27 14:46:54 +02:00
Stefan Kalkowski
054df95ea4
hw: unify board definitions of bootstrap/core
...
Ref #3326
2019-05-27 14:46:54 +02:00
Stefan Kalkowski
935abb55b7
hw: move src/lib/hw
header to src/include/hw
...
* Remove bad style of using `src/lib` as include path
Fix #3244
2019-04-01 19:33:51 +02:00