arm-trusted-firmware/include/drivers/arm
Stephan Gerhold a7521bd5d8 feat(gic): allow overriding GICD_PIDR2_GICV2 address
Older Qualcomm SoCs seem to have a custom Qualcomm implementation of
the GICv2 specification. It's mostly compliant but unfortunately it
looks like a mistake was made with the GICD_PIDR registers. PIDR2 is
defined to be at offset 0xFE8, but the Qualcomm implementation has it
at 0xFD8.

It looks like the entire PIDR0-3/4-7 block is swapped compared to the
ARM implementation: PIDR0 starts at 0xFD0 (instead of 0xFE0)
and PIDR4 starts at 0xFE0 (instead of 0xFD0).

Actually this only breaks a single assert in gicv2_main.c that checks
the GIC version: assert((gic_version == ARCH_REV_GICV2) ...
In release mode everything seems to work correctly.

To keep the code generic, allow affected platforms to override the
GICD_PIDR2_GICV2 register address in platform_def.h. Since this header
is typically included very early (e.g. from assert.h), add an #ifndef
so the definitions from platform_def.h takes priority.

Change-Id: I2929a8c1726f8d751bc28796567eb30b81eca2fe
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
2022-02-03 15:19:22 +01:00
..
cryptocell cryptocell: add support for Cryptocell 713 2020-04-01 22:14:36 +03:00
css fix(scmi): relax requirement for exact protocol version 2021-10-13 16:53:15 +01:00
fvp Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
arm_gicv3_common.h feat(gicv3): introduce GIC component identification 2021-11-04 15:58:34 +00:00
cci.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
ccn.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
dcc.h drivers: dcc: Support JTAG DCC console 2021-03-31 21:59:45 -06:00
ethosn.h feat(drivers/arm/ethosn)!: multi-device support 2021-10-01 09:27:11 +01:00
gic600_multichip.h gic/gic600: add support for multichip configuration 2019-11-11 23:40:23 +05:30
gic600ae_fmu.h feat(gic600ae): introduce support for Fault Management Unit 2021-09-01 08:24:33 -07:00
gic_common.h TF-A: Add GICv4 extension for GIC driver 2020-04-07 11:17:58 +01:00
gicv2.h feat(gic): allow overriding GICD_PIDR2_GICV2 address 2022-02-03 15:19:22 +01:00
gicv3.h feat(arm_fpga): determine GICR base by probing 2021-11-04 15:58:34 +00:00
nic_400.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
pl011.h pl011: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
pl061_gpio.h Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
sbsa.h drivers/sbsa: add sbsa watchdog driver 2019-04-17 18:24:35 +05:30
scu.h drivers: add a driver for snoop control unit 2020-01-03 10:44:28 +00:00
smmu_v3.h SMMUv3: Abort DMA transactions 2019-05-10 16:09:19 +01:00
sp804_delay_timer.h Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
sp805.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
tzc380.h feat(tzc380): add sub-region register definition 2022-01-20 23:38:03 +08:00
tzc400.h feat(tzc400): update filters by region 2021-09-08 09:05:16 +02:00
tzc_common.h tzc: remove deprecated types 2019-04-03 14:55:18 +01:00
tzc_dmc500.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
tzc_dmc620.h TZ DMC620 driver: Fix MISRA-2012 defects 2020-07-27 15:04:14 +01:00