diff options
author | danh-arm <dan.handley@arm.com> | 2016-08-18 11:38:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-18 11:38:19 +0100 |
commit | 937108a04a998c9e6d6ce5734bf62c7eb8c9d42c (patch) | |
tree | fd4951631aad873037981988603922a3662b8a38 /drivers/arm/gic | |
parent | 974603b554a71872d8e0a4aca02ba9cf73b1c3fe (diff) | |
parent | 9d29c227b23d8620dec70938716fbb6c47d591ca (diff) |
Merge pull request #678 from soby-mathew/sm/PSCI_AArch32
Introduce AArch32 support for PSCI library
Diffstat (limited to 'drivers/arm/gic')
-rw-r--r-- | drivers/arm/gic/v3/gicv3_main.c | 4 | ||||
-rw-r--r-- | drivers/arm/gic/v3/gicv3_private.h | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/arm/gic/v3/gicv3_main.c b/drivers/arm/gic/v3/gicv3_main.c index e0170338..d13e2c9c 100644 --- a/drivers/arm/gic/v3/gicv3_main.c +++ b/drivers/arm/gic/v3/gicv3_main.c @@ -75,8 +75,12 @@ void gicv3_driver_init(const gicv3_driver_data_t *plat_driver_data) plat_driver_data->g1s_interrupt_num == 0); /* Check for system register support */ +#ifdef AARCH32 + assert(read_id_pfr1() & (ID_PFR1_GIC_MASK << ID_PFR1_GIC_SHIFT)); +#else assert(read_id_aa64pfr0_el1() & (ID_AA64PFR0_GIC_MASK << ID_AA64PFR0_GIC_SHIFT)); +#endif /* AARCH32 */ /* The GIC version should be 3.0 */ gic_version = gicd_read_pidr2(plat_driver_data->gicd_base); diff --git a/drivers/arm/gic/v3/gicv3_private.h b/drivers/arm/gic/v3/gicv3_private.h index 9aa83382..1344a885 100644 --- a/drivers/arm/gic/v3/gicv3_private.h +++ b/drivers/arm/gic/v3/gicv3_private.h @@ -79,9 +79,13 @@ * Macro to convert a GICR_TYPER affinity value into a MPIDR value. Bits[31:24] * are zeroes. */ +#ifdef AARCH32 +#define mpidr_from_gicr_typer(typer_val) (((typer_val) >> 32) & 0xffffff) +#else #define mpidr_from_gicr_typer(typer_val) \ - ((((typer_val >> 56) & MPIDR_AFFLVL_MASK) << MPIDR_AFF3_SHIFT) | \ - ((typer_val >> 32) & 0xffffff)) + (((((typer_val) >> 56) & MPIDR_AFFLVL_MASK) << MPIDR_AFF3_SHIFT) | \ + (((typer_val) >> 32) & 0xffffff)) +#endif /******************************************************************************* * Private GICv3 function prototypes for accessing entire registers. |