[PATCH v3] ARM: gic: allow GIC to support non-banked setups

Marc Zyngier marc.zyngier at arm.com
Tue Nov 15 13:40:14 EST 2011


On 15/11/11 17:35, Rob Herring wrote:
>>> On 11/15/2011 06:17 AM, Marc Zyngier wrote:
>>>> The GIC support code is heavily using the fact that hardware
>>>> implementations are exposing banked registers. Unfortunately, it
>>>> looks like at least one GIC implementation (EXYNOS) offers both
>>>> the distributor and the CPU interfaces at different addresses,
>>>> depending on the CPU.
>>>>
>>>> This problem is solved by allowing the distributor and CPU interface
>>>> addresses to be per-cpu variables for the platforms that require it.
>>>> The EXYNOS code is updated not to mess with the GIC internals while
>>>> handling interrupts, and struct gic_chip_data is back to being private.
>>>> The DT binding for the gic is updated to allow an optional "cpu-offset"
>>>> value, which is used to compute the various base addresses.
>>>>
>>>> Finally, a new config option (GIC_NON_BANKED) is used to control this
>>>> feature, so the overhead is only present on kernels compiled with
>>>> support for EXYNOS.
>>>>
>>>> Tested on Origen (EXYNOS4) and Panda (OMAP4).
>>>>
>>>> Cc: Kukjin Kim <kgene.kim at samsung.com>
>>>> Cc: Rob Herring <robherring2 at gmail.com>
>>>> Cc: Will Deacon <will.deacon at arm.com>
>>>> Cc: Thomas Abraham <thomas.abraham at linaro.org>
>>>> Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
>>>> ---
>>>> This is a minor update on the previous version, simply adding a
>>>> config option so that normal platforms don't have to pay the
>>>> price of the get_base() indirection.
>>>>
>>>> Any comment is welcome, specially on the DT binding update.
>>>>
>>>>  Documentation/devicetree/bindings/arm/gic.txt |    4 +
>>>>  arch/arm/common/Kconfig                       |    3 +
>>>>  arch/arm/common/gic.c                         |  133 +++++++++++++++++++++----
>>>>  arch/arm/include/asm/hardware/gic.h           |   24 ++---
>>>>  arch/arm/mach-exynos/cpu.c                    |   16 +---
>>>>  arch/arm/mach-exynos/platsmp.c                |   28 +-----
>>>>  arch/arm/plat-s5p/Kconfig                     |    1 +
>>>>  7 files changed, 132 insertions(+), 77 deletions(-)
>>>>
> 
> So you can add my ack:
> 
> Acked-by: Rob Herring <rob.herring at calxeda.com>

Thanks Rob!

	M.
-- 
Jazz is not dead. It just smells funny...




More information about the linux-arm-kernel mailing list