diff mbox

[v11,02/34] ARM: GICv3: enable ITS on the host

Message ID 20170609174141.5068-3-andre.przywara@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andre Przywara June 9, 2017, 5:41 p.m. UTC
Even though the ITS emulation is not yet in place, the host ITS already
gets initialized and Xen tries to map the host collections.
However for commands to be processed we need to *enable* the ITS, which
will be done in a later patch not yet merged.
So those MAPC commands are not processed and run into a timeout, leading
to a panic on machines which advertise an ITS in their DT.
This patch just enables the ITS (but not the LPIs on each redistributor),
to get those MAPC commands executed.
This patch was part of: "ARM: GICv3: enable ITS and LPIs on the host"
(patch v8 06/27 or v10 12/32, which was already acked by Stefano.

This fixes booting Xen on ARM64 machines with an ITS and the
(EXPERT) ITS Kconfig option enabled.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 xen/arch/arm/gic-v3-its.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Julien Grall June 12, 2017, 2:51 p.m. UTC | #1
Hi Andre,

On 09/06/17 18:41, Andre Przywara wrote:
> Even though the ITS emulation is not yet in place, the host ITS already
> gets initialized and Xen tries to map the host collections.
> However for commands to be processed we need to *enable* the ITS, which
> will be done in a later patch not yet merged.
> So those MAPC commands are not processed and run into a timeout, leading
> to a panic on machines which advertise an ITS in their DT.
> This patch just enables the ITS (but not the LPIs on each redistributor),
> to get those MAPC commands executed.
> This patch was part of: "ARM: GICv3: enable ITS and LPIs on the host"
> (patch v8 06/27 or v10 12/32, which was already acked by Stefano.

I don't think this paragraph belongs to the commit message. It should go 
after ---.

>
> This fixes booting Xen on ARM64 machines with an ITS and the
> (EXPERT) ITS Kconfig option enabled.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>

With the change above:

Acked-by: Julien Grall <julien.grall@arm.com>

Cheers,
diff mbox

Patch

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 07280b3..aebc257 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -505,6 +505,10 @@  static int gicv3_its_init_single_its(struct host_its *hw_its)
         return -ENOMEM;
     writeq_relaxed(0, hw_its->its_base + GITS_CWRITER);
 
+    /* Now enable interrupt translation and command processing on that ITS. */
+    reg = readl_relaxed(hw_its->its_base + GITS_CTLR);
+    writel_relaxed(reg | GITS_CTLR_ENABLE, hw_its->its_base + GITS_CTLR);
+
     return 0;
 }