[PATCH RFCv1 0/6] ARM: mvebu: coherency support improvements

Jason Cooper jason at lakedaemon.net
Fri Dec 27 12:46:19 EST 2013


On Fri, Dec 27, 2013 at 12:32:13PM -0500, Jason Cooper wrote:
> Thomas,
> 
> On Thu, Dec 26, 2013 at 03:12:50PM +0100, Thomas Petazzoni wrote:
> > Jason, Gregory, Andrew, Sebastian,
> > 
> > Here is a set of patches that make some changes to the mach-mvebu
> > coherency code, and the way the mvebu-mbus driver determines whether
> > hardware I/O coherency is enabled or not.
> > 
> > These changes are proposed in preparation to the introduction of the
> > support for more recent SOCs in mach-mvebu, which have a slightly
> > different coherency fabric (hence the need for different compatible
> > strings) and different constraints to be able to enable the I/O
> > coherency (not only the coherency fabric must be available, but the
> > kernel must be running in CONFIG_SMP).
> > 
> > Moreover, the mvebu-mbus driver was directly poking into the DT to
> > find whether a coherency fabric node was available or not, to
> > determine if I/O coherency is enabled or not. However, with the new
> > constraint that CONFIG_SMP must be enabled on some SOCs to get I/O
> > coherency, the solution of having mvebu-mbus directly poke into the DT
> > is not longer appropriate. This patch set therefore changes the
> > mvebu_mbus_dt_init() function call to take an additional boolean
> > argument telling whether the system is running in I/O coherent mode or
> > not.
> > 
> > I've for now marked those patches as RFC, to indicate that they are
> > clearly open for discussion. For example, I'm still wondering if I
> > should not introduce separate compatible strings
> > marvell,armada-370-coherency-fabric and
> > marvell,armada-xp-coherency-fabric for Armada 370 and Armada XP
> > respectively instead of using marvell,armada-370-coherency-fabric for
> > both. Our experience has shown that we often initially believe that a
> > given hardware unit is similar between SOCs, and then later discover
> > that there are in fact some slight differences, which should have
> > called for different compatible strings from the beginning.
> > 
> > Best regards,
> > 
> > Thomas
> > 
> > Thomas Petazzoni (6):
> >   ARM: mvebu: prepare coherency code to support more SOCs
> >   ARM: mvebu: add a coherency_available() call
> >   bus: mvebu: pass the coherency availability information at init time
> >   ARM: mvebu: use of_find_matching_node_and_match() in coherency.c
> >   ARM: mvebu: update Armada 370/XP DT to use new coherency compatible
> >     string
> >   ARM: mvebu: update coherency fabric DT binding documentation
> > 
> >  .../devicetree/bindings/arm/coherency-fabric.txt   | 19 +++--
> >  arch/arm/boot/dts/armada-370-xp.dtsi               |  2 +-
> >  arch/arm/mach-kirkwood/board-dt.c                  |  2 +-
> >  arch/arm/mach-mvebu/armada-370-xp.c                |  2 +-
> >  arch/arm/mach-mvebu/coherency.c                    | 80 ++++++++++++++++------
> >  arch/arm/mach-mvebu/coherency.h                    |  1 +
> >  drivers/bus/mvebu-mbus.c                           | 11 +--
> >  include/linux/mbus.h                               |  2 +-
> >  8 files changed, 79 insertions(+), 40 deletions(-)
> 
> How is this different than the RFC v1 I just looked over?

And now that I've made it past my inbox and to the list emails, it's
rather obvious. ;-)

thx,

Jason.



More information about the linux-arm-kernel mailing list