irqchip/gic-v3-its: Add missing changes to support 52bit physical address
authorShanker Donthineni <shankerd@codeaurora.org>
Mon, 9 Oct 2017 16:46:55 +0000 (11:46 -0500)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 13 Oct 2017 15:30:58 +0000 (16:30 +0100)
commit30ae9610d275f8f03f5bf7612ce71d8af6fc400b
treea297a65bef8c77e07e010f02bf2e855fccc2b020
parent32bd44dc19de012e22f1fdebd2606b5fb86d54c5
irqchip/gic-v3-its: Add missing changes to support 52bit physical address

The current ITS driver works fine as long as normal memory and GICR
regions are located within the lower 48bit (>=0 && <2^48) physical
address space. Some of the registers GICR_PEND/PROP, GICR_VPEND/VPROP
and GITS_CBASER are handled properly but not all when configuring
the hardware with 52bit physical address.

This patch does the following changes to support 52bit PA.
  -Handle 52bit PA in GITS_BASERn.
  -Fix ITT_addr width to 52bits, bits[51:8].
  -Fix RDbase width to 52bits, bits[51:16].
  -Fix VPT_addr width to 52bits, bits[51:16].

Definition of the GITS_BASERn register when ITS PageSize is 64KB:
  -Bits[47:16] of the register provide bits[47:16] of the table PA.
  -Bits[15:12] of the register provide bits[51:48] of the table PA.
  -Bits[15:00] of the base physical address are 0.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c
include/linux/irqchip/arm-gic-v3.h