All of lore.kernel.org
 help / color / mirror / Atom feed
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 4/7] of: configure the platform device dma parameters
Date: Fri, 2 May 2014 09:13:48 -0400	[thread overview]
Message-ID: <53639A0C.8070306@ti.com> (raw)
In-Reply-To: <5279118.J5305KQNjB@wuerfel>

On Friday 02 May 2014 05:58 AM, Arnd Bergmann wrote:
> On Thursday 01 May 2014 14:12:10 Grant Likely wrote:
>>>> I've got two concerns here. of_dma_get_range() retrieves only the first
>>>> tuple from the dma-ranges property, but it is perfectly valid for
>>>> dma-ranges to contain multiple tuples. How should we handle it if a
>>>> device has multiple ranges it can DMA from?
>>>>
>>>
>>> We've not found any cases in current Linux where more than one dma-ranges
>>> would be used. Moreover, The MM (definitely for ARM) isn't supported such
>>> cases at all (if i understand everything right).
>>> - there are only one arm_dma_pfn_limit
>>> - there is only one MM zone is used for ARM
>>> - some arches like x86,mips can support 2 zones (per arch - not per device or bus)
>>>   DMA & DMA32, but they configured once and forever per arch.
>>
>> Okay. If anyone ever does implement multiple ranges then this code will
>> need to be revisited.
> 
> I wonder if it's needed for platforms implementing the standard "ARM memory map" [1].
> The document only talks about addresses as seen from the CPU, and I can see
> two logical interpretations how the RAM is supposed to be visible from a device:
> either all RAM would be visible contiguously at DMA address zero, or everything
> would be visible at the same physical address as the CPU sees it.
> 
> If anyone picks the first interpretation, we will have to implement that
> in Linux. We can of course hope that all hardware designs follow the second
> interpretation, which would be more convenient for us here.
>
not sure if I got your point correctly but DMA address 0 isn't used as DRAM start in
any of the ARM SOC today, mainly because of the boot architecture where address 0 is
typically used by ROM code. RAM start will be at some offset always and hence I
believe ARM SOCs will follow second interpretation. This was one of the main reason
we ended up fixing the max*pfn stuff. 
26ba47b {ARM: 7805/1: mm: change max*pfn to include the physical offset of memory}

> 
> [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf
> 
 
Regards,
Santosh

WARNING: multiple messages have this Message-ID (diff)
From: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Cc: Grant Likely
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Strashko,
	Grygorii" <grygorii.strashko-l0cyMroinI0@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	Linus Walleij
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
	Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Subject: Re: [PATCH v3 4/7] of: configure the platform device dma parameters
Date: Fri, 2 May 2014 09:13:48 -0400	[thread overview]
Message-ID: <53639A0C.8070306@ti.com> (raw)
In-Reply-To: <5279118.J5305KQNjB@wuerfel>

On Friday 02 May 2014 05:58 AM, Arnd Bergmann wrote:
> On Thursday 01 May 2014 14:12:10 Grant Likely wrote:
>>>> I've got two concerns here. of_dma_get_range() retrieves only the first
>>>> tuple from the dma-ranges property, but it is perfectly valid for
>>>> dma-ranges to contain multiple tuples. How should we handle it if a
>>>> device has multiple ranges it can DMA from?
>>>>
>>>
>>> We've not found any cases in current Linux where more than one dma-ranges
>>> would be used. Moreover, The MM (definitely for ARM) isn't supported such
>>> cases at all (if i understand everything right).
>>> - there are only one arm_dma_pfn_limit
>>> - there is only one MM zone is used for ARM
>>> - some arches like x86,mips can support 2 zones (per arch - not per device or bus)
>>>   DMA & DMA32, but they configured once and forever per arch.
>>
>> Okay. If anyone ever does implement multiple ranges then this code will
>> need to be revisited.
> 
> I wonder if it's needed for platforms implementing the standard "ARM memory map" [1].
> The document only talks about addresses as seen from the CPU, and I can see
> two logical interpretations how the RAM is supposed to be visible from a device:
> either all RAM would be visible contiguously at DMA address zero, or everything
> would be visible at the same physical address as the CPU sees it.
> 
> If anyone picks the first interpretation, we will have to implement that
> in Linux. We can of course hope that all hardware designs follow the second
> interpretation, which would be more convenient for us here.
>
not sure if I got your point correctly but DMA address 0 isn't used as DRAM start in
any of the ARM SOC today, mainly because of the boot architecture where address 0 is
typically used by ROM code. RAM start will be at some offset always and hence I
believe ARM SOCs will follow second interpretation. This was one of the main reason
we ended up fixing the max*pfn stuff. 
26ba47b {ARM: 7805/1: mm: change max*pfn to include the physical offset of memory}

> 
> [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf
> 
 
Regards,
Santosh
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Arnd Bergmann <arnd@arndb.de>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Cc: Grant Likely <grant.likely@linaro.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Strashko, Grygorii" <grygorii.strashko@ti.com>,
	Russell King <linux@arm.linux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Olof Johansson <olof@lixom.net>
Subject: Re: [PATCH v3 4/7] of: configure the platform device dma parameters
Date: Fri, 2 May 2014 09:13:48 -0400	[thread overview]
Message-ID: <53639A0C.8070306@ti.com> (raw)
In-Reply-To: <5279118.J5305KQNjB@wuerfel>

On Friday 02 May 2014 05:58 AM, Arnd Bergmann wrote:
> On Thursday 01 May 2014 14:12:10 Grant Likely wrote:
>>>> I've got two concerns here. of_dma_get_range() retrieves only the first
>>>> tuple from the dma-ranges property, but it is perfectly valid for
>>>> dma-ranges to contain multiple tuples. How should we handle it if a
>>>> device has multiple ranges it can DMA from?
>>>>
>>>
>>> We've not found any cases in current Linux where more than one dma-ranges
>>> would be used. Moreover, The MM (definitely for ARM) isn't supported such
>>> cases at all (if i understand everything right).
>>> - there are only one arm_dma_pfn_limit
>>> - there is only one MM zone is used for ARM
>>> - some arches like x86,mips can support 2 zones (per arch - not per device or bus)
>>>   DMA & DMA32, but they configured once and forever per arch.
>>
>> Okay. If anyone ever does implement multiple ranges then this code will
>> need to be revisited.
> 
> I wonder if it's needed for platforms implementing the standard "ARM memory map" [1].
> The document only talks about addresses as seen from the CPU, and I can see
> two logical interpretations how the RAM is supposed to be visible from a device:
> either all RAM would be visible contiguously at DMA address zero, or everything
> would be visible at the same physical address as the CPU sees it.
> 
> If anyone picks the first interpretation, we will have to implement that
> in Linux. We can of course hope that all hardware designs follow the second
> interpretation, which would be more convenient for us here.
>
not sure if I got your point correctly but DMA address 0 isn't used as DRAM start in
any of the ARM SOC today, mainly because of the boot architecture where address 0 is
typically used by ROM code. RAM start will be at some offset always and hence I
believe ARM SOCs will follow second interpretation. This was one of the main reason
we ended up fixing the max*pfn stuff. 
26ba47b {ARM: 7805/1: mm: change max*pfn to include the physical offset of memory}

> 
> [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf
> 
 
Regards,
Santosh

  reply	other threads:[~2014-05-02 13:13 UTC|newest]

Thread overview: 172+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-24 15:30 [PATCH v3 0/7] of: setup dma parameters using dma-ranges and dma-coherent Santosh Shilimkar
2014-04-24 15:30 ` Santosh Shilimkar
2014-04-24 15:30 ` Santosh Shilimkar
2014-04-24 15:30 ` [PATCH v3 1/7] device: introduce per device dma_pfn_offset Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-05-02  1:01   ` Rob Herring
2014-05-02  1:01     ` Rob Herring
2014-04-24 15:30 ` [PATCH v3 2/7] of: introduce of_dma_get_range() helper Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-05-02  1:06   ` Rob Herring
2014-05-02  1:06     ` Rob Herring
2014-05-02  1:06     ` Rob Herring
2014-04-24 15:30 ` [PATCH v3 3/7] of: introduce of_dma_is_coherent() helper Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-05-02  0:56   ` Rob Herring
2014-05-02  0:56     ` Rob Herring
2014-05-02  0:56     ` Rob Herring
2014-05-05 21:45     ` Santosh Shilimkar
2014-05-05 21:45       ` Santosh Shilimkar
2014-05-05 22:06       ` Rob Herring
2014-05-05 22:06         ` Rob Herring
2014-05-05 22:06         ` Rob Herring
2014-04-24 15:30 ` [PATCH v3 4/7] of: configure the platform device dma parameters Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-29 14:41   ` Grant Likely
2014-04-29 14:41     ` Grant Likely
2014-04-29 14:41     ` Grant Likely
2014-04-30 14:19     ` Santosh Shilimkar
2014-04-30 14:19       ` Santosh Shilimkar
2014-04-30 14:19       ` Santosh Shilimkar
2014-05-01 13:12       ` Grant Likely
2014-05-01 13:12         ` Grant Likely
2014-05-01 13:12         ` Grant Likely
2014-05-01 13:16         ` Santosh Shilimkar
2014-05-01 13:16           ` Santosh Shilimkar
2014-05-01 13:16           ` Santosh Shilimkar
2014-05-02  9:58         ` Arnd Bergmann
2014-05-02  9:58           ` Arnd Bergmann
2014-05-02  9:58           ` Arnd Bergmann
2014-05-02 13:13           ` Santosh Shilimkar [this message]
2014-05-02 13:13             ` Santosh Shilimkar
2014-05-02 13:13             ` Santosh Shilimkar
2014-05-02 15:13             ` Arnd Bergmann
2014-05-02 15:13               ` Arnd Bergmann
2014-05-02 15:13               ` Arnd Bergmann
2014-05-27 12:56           ` Grant Likely
2014-05-27 12:56             ` Grant Likely
2014-05-27 12:56             ` Grant Likely
2014-05-27 13:30             ` Arnd Bergmann
2014-05-27 13:30               ` Arnd Bergmann
2014-05-28  8:23               ` Linus Walleij
2014-05-28  8:23                 ` Linus Walleij
2014-05-28 13:29                 ` Arnd Bergmann
2014-05-28 13:29                   ` Arnd Bergmann
2014-05-28 13:29                   ` Arnd Bergmann
2014-05-28 13:32                   ` Linus Walleij
2014-05-28 13:32                     ` Linus Walleij
2014-05-28 13:32                     ` Linus Walleij
2014-05-28 14:04                     ` Santosh Shilimkar
2014-05-28 14:04                       ` Santosh Shilimkar
2014-05-28 14:04                       ` Santosh Shilimkar
2014-05-29 14:01                       ` Linus Walleij
2014-05-29 14:01                         ` Linus Walleij
2014-05-29 14:08                         ` Santosh Shilimkar
2014-05-29 14:08                           ` Santosh Shilimkar
2014-05-29 19:24                           ` Arnd Bergmann
2014-05-29 19:24                             ` Arnd Bergmann
2014-05-29 19:24                             ` Arnd Bergmann
2014-05-29 20:04                             ` Santosh Shilimkar
2014-05-29 20:04                               ` Santosh Shilimkar
2014-05-29 20:04                               ` Santosh Shilimkar
2014-05-02  0:49   ` Rob Herring
2014-05-02  0:49     ` Rob Herring
2014-05-02  0:49     ` Rob Herring
2014-05-05 21:47     ` Santosh Shilimkar
2014-05-05 21:47       ` Santosh Shilimkar
2014-05-05 21:47       ` Santosh Shilimkar
2014-05-05 22:08       ` Rob Herring
2014-05-05 22:08         ` Rob Herring
2014-05-06  9:40       ` Arnd Bergmann
2014-05-06  9:40         ` Arnd Bergmann
2014-05-06  9:40         ` Arnd Bergmann
2014-05-06 20:44         ` Santosh Shilimkar
2014-05-06 20:44           ` Santosh Shilimkar
2014-05-06 20:44           ` Santosh Shilimkar
2014-05-07 13:24           ` Santosh Shilimkar
2014-05-07 13:24             ` Santosh Shilimkar
2014-05-02 16:54   ` Bjorn Helgaas
2014-05-02 16:54     ` Bjorn Helgaas
2014-05-02 16:54     ` Bjorn Helgaas
2014-05-02 18:59     ` Arnd Bergmann
2014-05-02 18:59       ` Arnd Bergmann
2014-05-05 20:45       ` Bjorn Helgaas
2014-05-05 20:45         ` Bjorn Helgaas
2014-05-05 20:45         ` Bjorn Helgaas
2014-05-05 20:55         ` Arnd Bergmann
2014-05-05 20:55           ` Arnd Bergmann
2014-05-05 20:55           ` Arnd Bergmann
2014-05-05 22:28           ` Bjorn Helgaas
2014-05-05 22:28             ` Bjorn Helgaas
2014-05-05 22:28             ` Bjorn Helgaas
2014-05-06  3:44             ` Benjamin Herrenschmidt
2014-05-06  3:44               ` Benjamin Herrenschmidt
2014-05-06  9:54               ` Arnd Bergmann
2014-05-06  9:54                 ` Arnd Bergmann
2014-05-06  9:54                 ` Arnd Bergmann
2014-05-06 13:32                 ` Santosh Shilimkar
2014-05-06 13:32                   ` Santosh Shilimkar
2014-05-06 13:32                   ` Santosh Shilimkar
2014-04-24 15:30 ` [PATCH v3 5/7] ARM: dma: Use dma_pfn_offset for dma address translation Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-05-02 14:32   ` Rob Herring
2014-05-02 14:32     ` Rob Herring
2014-05-02 14:32     ` Rob Herring
2014-05-02 14:58   ` Russell King - ARM Linux
2014-05-02 14:58     ` Russell King - ARM Linux
2014-05-02 15:05     ` Santosh Shilimkar
2014-05-02 15:05       ` Santosh Shilimkar
2014-05-02 15:05       ` Santosh Shilimkar
2014-05-05 19:50       ` Russell King - ARM Linux
2014-05-05 19:50         ` Russell King - ARM Linux
2014-05-05 21:43         ` Santosh Shilimkar
2014-05-05 21:43           ` Santosh Shilimkar
2014-05-05 21:43           ` Santosh Shilimkar
2014-04-24 15:30 ` [PATCH v3 6/7] ARM: dma: implement set_arch_dma_coherent_ops() Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-05-02  0:58   ` Rob Herring
2014-05-02  0:58     ` Rob Herring
2014-05-02  0:58     ` Rob Herring
2014-04-24 15:30 ` [PATCH v3 7/7] ARM: dma: use phys_addr_t in __dma_page_[cpu_to_dev/dev_to_cpu] Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:30   ` Santosh Shilimkar
2014-04-24 15:45   ` Will Deacon
2014-04-24 15:45     ` Will Deacon
2014-05-01 13:19 ` [PATCH v3 0/7] of: setup dma parameters using dma-ranges and dma-coherent Santosh Shilimkar
2014-05-01 13:19   ` Santosh Shilimkar
2014-05-01 13:19   ` Santosh Shilimkar
2014-05-01 13:25   ` Russell King - ARM Linux
2014-05-01 13:25     ` Russell King - ARM Linux
2014-05-01 14:06     ` Santosh Shilimkar
2014-05-01 14:06       ` Santosh Shilimkar
2014-05-01 14:06       ` Santosh Shilimkar
2014-05-02 14:41     ` Rob Herring
2014-05-02 14:41       ` Rob Herring
2014-05-02 14:41       ` Rob Herring
2014-05-02 16:41       ` Santosh Shilimkar
2014-05-02 16:41         ` Santosh Shilimkar
2014-05-14 10:12     ` Grant Likely
2014-05-14 10:12       ` Grant Likely
2014-05-14 10:12       ` Grant Likely
2014-06-02  6:37 ` Shawn Guo
2014-06-02  6:37   ` Shawn Guo
2014-06-02  6:37   ` Shawn Guo
2014-06-02 13:24   ` Santosh Shilimkar
2014-06-02 13:24     ` Santosh Shilimkar
2014-06-02 15:06     ` Arnd Bergmann
2014-06-02 15:06       ` Arnd Bergmann
2014-06-02 15:06       ` Arnd Bergmann
2014-06-02 15:54       ` Santosh Shilimkar
2014-06-02 15:54         ` Santosh Shilimkar
2014-06-02 15:54         ` Santosh Shilimkar
2014-06-02 19:00         ` Arnd Bergmann
2014-06-02 19:00           ` Arnd Bergmann
2014-06-02 19:08           ` Santosh Shilimkar
2014-06-02 19:08             ` Santosh Shilimkar
2014-06-02 19:08             ` Santosh Shilimkar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53639A0C.8070306@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.