On Mon, 31 Oct 2016, Julien Grall wrote:
> Hi Stefano,
> 
> On 26/10/16 23:12, Stefano Stabellini wrote:
> > On Wed, 26 Oct 2016, Julien Grall wrote:
> > > Hi,
> > > Apologize for not respecting the netiquette.
> > > 
> > > On Tue, 25 Oct 2016, 5:49 p.m. Stefano Stabellini,
> > > <sstabell...@kernel.org> wrote:
> > >       Hi all,
> > > 
> > >       the following commit:
> > > 
> > >       commit 21550029f709072aacf3b90edd574e7d3021b400
> > >       Author: Julien Grall <julien.gr...@citrix.com>
> > >       Date:   Thu Oct 8 19:23:53 2015 +0100
> > > 
> > >           xen/arm: gic-v2: Automatically detect aliased GIC400
> > > 
> > > 
> > >       removed PLATFORM_QUIRK_GIC_64K_STRIDE and introduced an heuristic to
> > >       check whether the two GICC pages have a 64K stride. However the
> > >       heuristic needs device tree to report a GICC region size of 128K to
> > > work
> > >       properly. That is not the case for some versions of XGene (including
> > > the
> > >       one I am using, kindly provided by CloudLab.us).
> > > 
> > >       The patch series fixes the issue by reintroducing platform quirks,
> > >       PLATFORM_QUIRK_GIC_64K_STRIDE, and forcing GICC size to 128K if
> > >       PLATFORM_QUIRK_GIC_64K_STRIDE.
> > > 
> > >       We should consider this series for 4.8.
> > > 
> > > 
> > > The platform you are using has likely a buggy firmware (I cannot find the
> > > mail from
> > > APM stating that).
> > > 
> > > I am not convinced that we should support a such case. IIRC unmodified
> > > Linux will
> > > not work properly on those platform (e.g the GIC will be drived as a
> > > GICv1).
> > 
> > I agree with you that it is buggy firmware, but unfortunately it is
> > still out there, deployed. I am using a regular unmodified old Linux
> > kernel (4.0) which works fine (and should still work fine with modern
> > Xen hypervisors). I believe this DTS comes from upstream Linux 4.0.
> > 
> > The question is: should we carry this workaround to make our users' life
> > easier? Or should we push back the burden of fixing the firmware to the
> > users? There are valid arguments for both, eventually it comes down to
> > finding the right compromise.
> 
> In general it is better to get the newest firmware as other unrelated bugs may
> be present on older version or there is missing workaround for broken hardware
> (e.g enabling chicken bits). For instance, we have already decided to not
> support some version of the X-gene firmware (see commit 784c2d1 "xen/arm: Drop
> support of platform where GICH_LR_HW is not working correctly").
> 
> In this specific case, you assume that the GIC device tree node will always
> point to the beginning of the first 64K page. It might be possible in the
> future to have an updated firmware pointing to the last alias of the first
> page, so the second 4K page will follow directly.

Such firmware could have a version number we could check to disable
PLATFORM_QUIRK_GIC_64K_STRIDE.


> > To be clear I don't feel strongly either way, but I think it is easier
> > for us to carry this workaround than for our users to update the
> > firmware. So in this case I would take these patches. But it might not
> > be the case in the future for other, more invasive, workarounds. Let me
> > know what you think.
> 
> I would much prefer something in Xen to check whether the user has to upgrade
> his firmware based on known broken features.

Yes, we should warn the user in any case, that would be helpful. I can
produce a patch for that.

Regarding firmware updates, for example in this case I cannot actually
perform one, as I don't control the environment, I am just a cloud user
like any other. I can ask u-boot to use a different DTB, but then I
cannot provide a good one because the device tree for m400 has not been
properly pushed upstream in Linux. In other words, there isn't really a
good update path on this platform.

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

Reply via email to