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

Jason Cooper jason at lakedaemon.net
Fri Dec 27 12:32:13 EST 2013


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?

thx,

Jason.



More information about the linux-arm-kernel mailing list