Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755755Ab2JXLud (ORCPT ); Wed, 24 Oct 2012 07:50:33 -0400 Received: from mail.free-electrons.com ([88.190.12.23]:47936 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754073Ab2JXLub (ORCPT ); Wed, 24 Oct 2012 07:50:31 -0400 Message-ID: <5087D5F4.9060104@free-electrons.com> Date: Wed, 24 Oct 2012 13:50:12 +0200 From: Gregory CLEMENT User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 MIME-Version: 1.0 To: Andrew Lunn CC: Lior Amsalem , Ike Pan , Nadav Haklai , Ian Molton , David Marlin , Yehuda Yitschak , Jani Monoses , Russell King , Tawfik Bayouk , Dan Frazier , Eran Ben-Avi , Leif Lindholm , Sebastian Hesselbarth , Jason Cooper , Arnd Bergmann , Jon Masters , Rob Herring , Ben Dooks , linux-arm-kernel@lists.infradead.org, Thomas Petazzoni , Chris Van Hoof , Nicolas Pitre , linux-kernel@vger.kernel.org, Maen Suleiman , Shadi Ammouri , Olof Johansson Subject: Re: [PATCH 2/2] arm: mvebu: Add hardware I/O Coherency support References: <1351065841-18654-1-git-send-email-gregory.clement@free-electrons.com> <1351065841-18654-3-git-send-email-gregory.clement@free-electrons.com> <20121024082529.GZ11837@lunn.ch> In-Reply-To: <20121024082529.GZ11837@lunn.ch> X-Enigmail-Version: 1.4.4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3029 Lines: 78 On 10/24/2012 10:25 AM, Andrew Lunn wrote: > On Wed, Oct 24, 2012 at 10:04:01AM +0200, Gregory CLEMENT wrote: >> Armada 370 and XP come with an unit called coherency fabric. This unit >> allows to use the Armada XP as a nearly coherent architecture. The >> coherency mechanism uses snoop filters to ensure the coherency between >> caches, DRAM and devices. This mechanism needs a synchronization >> barrier which guarantees that all memory write initiated by the >> devices has reached their target and do not reside in intermediate >> write buffers. That's why the architecture is not totally coherent and >> we need to provide our own functions for some DMA operations. >> >> Beside the use of the coherency fabric, the device units will have to >> set the attribute flag to select the accurate coherency process for >> the memory transaction. This is done each device driver programs the >> DRAM address windows. The value of the attribute set by the driver is >> retrieved through the orion_addr_map_cfg struct filled during the >> early initialization of the platform. >> >> Signed-off-by: Gregory CLEMENT >> Reviewed-by: Yehuda Yitschak >> --- >> arch/arm/boot/dts/armada-370-xp.dtsi | 3 +- >> arch/arm/mach-mvebu/addr-map.c | 3 ++ >> arch/arm/mach-mvebu/armada-370-xp.c | 1 + >> arch/arm/mach-mvebu/coherency.c | 87 ++++++++++++++++++++++++++++++++++ >> arch/arm/mach-mvebu/common.h | 2 + >> 5 files changed, 95 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi >> index 18ba60b..af22e53 100644 >> --- a/arch/arm/boot/dts/armada-370-xp.dtsi >> +++ b/arch/arm/boot/dts/armada-370-xp.dtsi >> @@ -38,7 +38,8 @@ >> >> coherency-fabric@d0020200 { >> compatible = "marvell,coherency-fabric"; >> - reg = <0xd0020200 0xb0>; >> + reg = <0xd0020200 0xb0>, >> + <0xd0021010 0x1c>; >> }; > > ... > >> int __init armada_370_xp_coherency_init(void) >> { >> struct device_node *np; >> @@ -82,7 +159,17 @@ int __init armada_370_xp_coherency_init(void) >> if (np) { >> pr_info("Initializing Coherency fabric\n"); >> coherency_base = of_iomap(np, 0); >> + coherency_cpu_base = of_iomap(np, 1); > > Is this already in the binding documentation? No indeed, the documentation should be completed. I will do it the V2 > > Thanks > Andrew > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/