genode/repos/base-hw
Piotr Tworek bade0a85e7 base-hw: Implement CPU core identification for Cortex-A55.
According to ARM Cortex-A55 Core Technical Reference Manual r1p0 the
lowest 8 bits (Aff0) of MPIDR register represent thread IDs within a
multi-threaded core. The actual core identification bits are in Aff1.
This layout can be identified by checking the MT bit of MPIDR register.
Basically, if MT=1 core id is in Aff1, if MT=0 core id is in Aff0.

Without this change Genode will identify all CPU cores on A55 as primary
(0) core.

Its worth to mention that Cortex-A55 by itself is not a multi-threaded
CPU. Aff0 values are always expected to be 0 for pure A55 cores. A55
cores can however be paired with cores that are multi-threaded. To
support such big.LITTLE CPUs in Genode we'd probably need to add a
different mechanism for mapping MPIDR values to logical, contignous
core IDs which Genode expects.

Ref:
https://developer.arm.com/documentation/100442/0100/register-descriptions/aarch64-system-registers/mpidr-el1--multiprocessor-affinity-register--el1?lang=en
2022-02-15 15:27:29 +01:00
..
board hw: remove rpi1/3 board support 2022-01-19 12:38:12 +01:00
etc base: remove SPEC variables of boards (fix #3971) 2021-01-25 13:58:09 +01:00
include base-hw: improve comments in kernel/interface.h 2022-02-15 10:10:02 +01:00
lib/mk base-hw: Use softfp ABI on virt_qemu ARMv7. 2022-02-15 10:23:58 +01:00
recipes depot: update recipe hashes 2022-02-15 10:23:59 +01:00
run base-hw: fix run scripts 2020-02-20 12:11:21 +01:00
src base-hw: Implement CPU core identification for Cortex-A55. 2022-02-15 15:27:29 +01:00