[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3] xen/arm: introduce PLATFORM_QUIRK_GUEST_PIRQ_NEED_EOI



On Wed, 2014-07-09 at 19:54 +0530, Anup Patel wrote:
> On Wed, Jul 9, 2014 at 7:49 PM, Stefano Stabellini
> <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> > On Wed, 9 Jul 2014, Pranavkumar Sawargaonkar wrote:
> >> Hi Stefano/ Ian,
> >>
> >> On Wed, Jul 9, 2014 at 6:11 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> 
> >> wrote:
> >> > On Fri, 2014-07-04 at 15:39 +0100, Stefano Stabellini wrote:
> >> >> GICH_LR_HW doesn't work as expected on X-Gene: request maintenance
> >> >> interrupts and perform EOIs in the hypervisor for hardware interrupts as
> >> >> a workaround.  Trigger this behaviour with a per platform option.
> >> >>
> >> >> This patch assumes that GICC_DIR can be written on any pcpu for a given
> >> >> SGI, not matter where GICC_IAR has been read before.
> >> >
> >> > Did you really mean SGI here? Those are per-cpu, I suspect you meant
> >> > SPI?
> >> >
> >> > Ack to the actual patch though.
> >> >
> >> > Ian.
> >> >
> >>
> >> We have found clean fix for this issue in u-boot.
> >>
> >> The issue is that X-Gene does not implement security extensions
> >> but the GIC-400 present in X-Gene has security extensions. To take
> >> care of this situation, APM HW designers have provided two sets
> >> of GIC register addresses: one for accessing GIC secured registers,
> >> and another for accessing GIC non-secured registers. Currently, we
> >> are only accessing GIC secured register for Linux, Xen, and KVM.
> >> This works fine in most cases but does not work for GICH_LRn.HW
> >> bit because we can only auto-deactivate non-secured interrupts using
> >> GICH_LRn.HW bit.
> >>
> >> To fix this issue, we have updated u-boot to initialize GIC secured
> >> register to make all interrupts as non-secured and we will need to
> >> access GIC non-secured registers from Linux, Xen, KVM, and
> >> everywhere else.
> >>
> >> For now, you can go ahead with this patch but once we have updated
> >> u-boot released by APM then we will need to disable the quirk for
> >> X-Gene Mustang. We would be also having a patch for Linux to fix
> >> the GIC addresses in X-Gene Storm DTS file.
> >
> > It's great that you managed to fix the problem!
> >
> > How can we detect whether the Mustang board we are running on has an
> > up-to-date uboot? Would it be possible for u-boot to add a flag
> > somewhere to tell that the GICH_LRn.HW is safe to use? Then we could
> > check that flag and only enable PLATFORM_QUIRK_GUEST_PIRQ_NEED_EOI if
> > the flag is missing.
> 
> I think we should check GIC Dist address passed in DTS by
> u-boot to Xen. If GIC Dist address is secured address then
> enable the quirk otherwise disable the qurik.

Isn't IGROUPR readable from NS? In which case we should be able to spot
the difference, I think?

Stefano, you might want to arrange in your patch to cache the value of
the quirk in the gicv2 struct -- otherwise all the calls to
platform_has_quirk are going to add up.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.