commit | 618c8fcb98994775a6028edb51bc7cd900eeec26 | [log] [tgz] |
---|---|---|
author | Olivier Deprez <olivier.deprez@arm.com> | Mon May 30 15:27:49 2022 +0200 |
committer | Olivier Deprez <olivier.deprez@arm.com> | Thu Jun 30 08:48:50 2022 +0200 |
tree | 00f7b8e5bfe960bd1bed0950d31d75f7de81f3b0 | |
parent | adb55a021773d77668e9512127fc8edd2a675e54 [diff] |
fix(gic): SGI helper to use cpu struct id affinity The plat_interrupts_send_sgi interface uses a target list bitfield parameter to identify the PE to which an SGI is to be sent. The target list is infered from the target core linear id. Furthermore, gicv3_send_sgi uses the target list combined with the current core MPIDR Aff3 to Aff1 affinities. This approach is slightly wrong because the target list shall be derived from the Aff0 value of the target PE. This used to 'work' on qemu because Aff3 to Aff1 are zero and Aff0 encodes the linear PE id. This implementation exhibits a failure on FVP because Aff0 is zero on all cores. This change redefines the plat_interrupts_send_sgi interface to trigger an SGI by using the id from the cpu struct passed as parameter. gicv3_send_sgi is made independent from MPIDR and calculates the target list from Aff0. Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: I0ab925498955d27c2b31b313e294dbcdbc4cc3f9
Hafnium is a hypervisor, initially supporting aarch64 (64-bit Armv8 CPUs).
Get in touch and keep up-to-date at hafnium@lists.trustedfirmware.org. See feature requests and bugs on our bug dashboard.
To jump in and build Hafnium, follow the getting started instructions.
If you want to contribute to the project, see details of how we accept contributions.
More documentation is available on: