Fix GIC_IPRIORITYR setting in new drivers
The code to set the interrupt priority for secure interrupts in the
new GICv2 and GICv3 drivers is incorrect. The setup code to configure
interrupt priorities of secure interrupts, one interrupt at a time, used
gicd_write_ipriorityr()/gicr_write_ipriority() function affecting
4 interrupts at a time. This bug did not manifest itself because all the
secure interrupts were configured to the highest secure priority(0) during
cold boot and the adjacent non secure interrupt priority would be configured
later by the normal world. This patch introduces new accessors,
gicd_set_ipriorityr() and gicr_set_ipriorityr(), for configuring priority
one interrupt at a time and fixes the the setup code to use the new
accessors.

Fixes ARM-software/tf-issues#344

Change-Id: I470fd74d2b7fce7058b55d83f604be05a27e1341
1 parent a91e12f commit 38a7861450409b6b234e12f15b8b516aa71b6610
@Soby Mathew Soby Mathew authored on 15 Jan 2016
Showing 4 changed files
View
drivers/arm/gic/common/gic_common.c
View
drivers/arm/gic/v2/gicv2_helpers.c
View
drivers/arm/gic/v3/gicv3_helpers.c
View
include/drivers/arm/gic_common.h