From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756309AbcBCPbp (ORCPT ); Wed, 3 Feb 2016 10:31:45 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:53835 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754439AbcBCPbn (ORCPT ); Wed, 3 Feb 2016 10:31:43 -0500 From: Arnd Bergmann To: Zubair Lutfullah Kakakhel Cc: tj@kernel.org, hdegoede@redhat.com, david.daney@cavium.com, aleksey.makarov@caviumnetworks.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org Subject: Re: [PATCH v6] SATA: OCTEON: support SATA on OCTEON platform Date: Wed, 03 Feb 2016 16:31:23 +0100 Message-ID: <1725737.t6I7PsvPbL@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <56B21250.5050807@imgtec.com> References: <1454437485-48009-1-git-send-email-Zubair.Kakakhel@imgtec.com> <2782231.XGO9cUTm7n@wuerfel> <56B21250.5050807@imgtec.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:1wNS1nA3Nv+74lObaYdAQMHCgNRqY4/rfavnG5crHYkA8NQLp6a JRUchQNiaWIcUbbwyMN1l9ace2XENz4LB4IpCiqpF6zAhDjHHtImAkOmyewjbWnhvX6Gk9p yOuu9giyIbtc7i1GL70CGsMTg5TLpfhlqZFxsPUwwVa2q/IeMOYfn5KLMvc9IQZKBlDFEkw 01KtqWvK4GCFFNrnU2aVQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:EHDlN73jwMs=:aBloT8qpk1M8Zs7WEiuGNp yMs2qieIO5s767Oc2iLUPKIPYQYy/KQLmFqXOS1EIv0dlMZG9bM2jCOaVl3mrYaexiXB40vQe dyKX/9VPPF23K1ujmXqqqEH91/uyCBsgw2IeZ7TfeliVBe2aN5f2NU361CrCPsCPkF5iKc729 kbfE4SvB8tsuYtp9/OeJfLDWwv8S0nIPjLzW4bbyvxUpN76z2Eh4NURWg3SwvfmDvJXL3EB9V qRxTeqmc6hKwS42n1OJdCeOpmoJgHrjX7fVshzjf2fco2a02QGPDJsq29ekK4pzQOrcAWVu2T nmiqZnM2eQtqMuqNcCfEJBoIYR+kSEB32pqar+E2JrIi+/qNp3neWI0+CKbrEpAP91jrCSwv9 HSXezDYhbvAri8K26WAcgKgNHr8VCskmcnvghSLysyheMJc5DP2ynNmNCu6fjZ0N8ZqxgjwOw ybjYJ8qyBRQneAk240Br24VILt+sBm2zVUESLhp+z1eGwpPDwyDt6eZoTbX9UO7h/f+frwhO3 VI8pfQxBOmLzBi6j56SguyVKOZWu99Ynoo1nXOc69+WSHujp3wwLO2RS5wapRNN9ib/mSuepE qRfijBvjZsk1uXbkk6IuaUZMsYYauyQttvHFZnUjRTS08P7WBKMTVmzq2umssOXGXzv+yV5F/ px05oEYQS+wLmZgKVZeHLXseHpIXz24v2gcrsL4QuTXqi2nGbpIwAs4dtgs7ypsqqhO7REqiL F8WcBYjD7A7yS94N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 03 February 2016 14:44:32 Zubair Lutfullah Kakakhel wrote: > > Possible in the example. > > I'll update the example to > > uctl@118006c000000 { > compatible = "cavium,octeon-7130-sata-uctl"; > reg = <0x11800 0x6c000000 0x0 0x100>; > ranges; /* Direct mapping */ > dma-ranges; > #address-cells = <1>; > #size-cells = <2>; > > sata: sata@0 { > compatible = "cavium,octeon-7130-ahci"; > reg = <0x16c00 0x00000000 0x0 0x200>; > interrupt-parent = <&cibsata>; > interrupts = <2 4>; /* Bit: 2, level */ > }; > }; Sorry, I should have been clearer. What I meant is uctl@118006c000000 { compatible = "cavium,octeon-7130-sata-uctl"; reg = <0x11800 0x6c000000 0x0 0x100>; ranges = <0 0x16c00 0x00000000 0xffffffff>; dma-ranges; #address-cells = <1>; #size-cells = <1>; sata: sata@0 { compatible = "cavium,octeon-7130-ahci"; reg = <0x00000000 0x200>; interrupt-parent = <&cibsata>; interrupts = <2 4>; /* Bit: 2, level */ }; }; However, I realized that this would break the dma-ranges, if the child device is indeed 64-bit DMA capable. When #address-cells and/or #size-cells don't match between parent and child, you have to provide non-empty ranges as well as dma-ranges, and the dma-ranges for #address-cells=<1> would imply only supporting 32-bit DMA. It could still be uctl@118006c000000 { compatible = "cavium,octeon-7130-sata-uctl"; reg = <0x11800 0x6c000000 0x0 0x100>; ranges = <0 0 0x16c00 0x00000000 1 0>; dma-ranges; #address-cells = <1>; #size-cells = <1>; sata: sata@0 { compatible = "cavium,octeon-7130-ahci"; reg = <0 0 0x200>; interrupt-parent = <&cibsata>; interrupts = <2 4>; /* Bit: 2, level */ }; }; to have a ranges property that shows we are only translating one 4GB segment of MMIO addresses into the child, but that the child has DMA access to the entire CPU address space (including 64-bit wide RAM as well as all MMIO). Arnd