dmaengine Archive on lore.kernel.org
 help / color / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Rob Herring <robh@kernel.org>
Cc: Nishanth Menon <nm@ti.com>, <devicetree@vger.kernel.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Lokesh Vutla <lokeshvutla@ti.com>, Keerthy <j-keerthy@ti.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Tero Kristo <t-kristo@ti.com>, Tony Lindgren <tony@atomide.com>,
	Vinod <vkoul@kernel.org>, Santosh Shilimkar <ssantosh@kernel.org>,
	"open list:DMA GENERIC OFFLOAD ENGINE SUBSYSTEM" 
	<dmaengine@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 07/14] dt-bindings: dma: ti: Add document for K3 UDMA
Date: Tue, 22 Oct 2019 14:46:03 +0300
Message-ID: <a844b84c-8dc7-6562-1f66-e4d625fa42e6@ti.com> (raw)
In-Reply-To: <CAL_JsqKWVLMa=AJ+SNHjMRFpCk6cM=UPBgmmHVonOQ03a_zxXQ@mail.gmail.com>



On 17/10/2019 17.03, Rob Herring wrote:
> On Tue, Oct 15, 2019 at 12:29 PM Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
>>
>> Rob,
>>
>> On 10/11/19 10:30 AM, Peter Ujfalusi wrote:
>>>
>>> I have already moved the TR vs Packet mode channel selection, which does
>>> make sense as it was Linux's choice to use TR for certain cases.
>>>
>>> If I move these to code then we need to have big tables
>>> struct psil_config am654_psil[32767] = {};
>>> struct psil_config j721e_psil[32767] = {};
>>
>> After thinking about this a bit more, I think we can move all the PSI-L
>> endpoint configuration to the kernel as not all the 32767 threads are
>> actually in use. Sure it is going to be some amount of static data in
>> the kernel, but it is an acceptable compromise.
>>
>> The DMA binding can look like this:
>>
>> dmas = <&main_udmap 0xc400>,
>>        <&main_udmap 0x4400>;
>> dma-names = "tx", "rx";
>>
>> or
>> dmas = <&main_udmap 0x4400 UDMA_DIR_TX>,
>>        <&main_udmap 0x4400 UDMA_DIR_RX>;
>> dma-names = "tx", "rx";
>>
>> If I keep the direction.
>> 0xc400 is destination ID, which is 0x4400 | 0x8000 as per PSI-L
>> specification.
>> In the TRM only the source threads can be found as a map (thread IDs <
>> 0x7fff), but the binding document can cover this.
>>
>> This way we don't need another dtsi file and I can create the map in the
>> kernel.
>>
>> This will hide some details of the HW from DT, but since the PSI-L
>> thread configuration is static in hardware I believe it is acceptable.
>>
>> However we still have uncovered features in the binding or in code, like
>> a case when the RX does not have access to the DMA channel, only flows.
>> Not sure if I should reserve the direction parameter as an indication to
>> this or find other way.
>> Basically we communicate on the given PSI-L thread without having a DMA
>> channel as other core is owning the channel.
>>
>> What do you think?
> 
> Seems like a reasonable solution

OK, I'll go ahead and implement the PSI-L thread representation to the
kernel.

> though I don't really follow the last issue.

In this DMA for RX (DEV_TO_MEM) we need the source thread paired to
UDMAP receive channel to get data flowing.
The arriving packets within PSI-L are directed by flowID to a specific
receive flow configuration which describe the ring from where UDMAP
should pick up the descriptor and to where the completed one should be
placed for the SW.

There are cases when Linux for example does not have access to the
receive channel at all, it is handled by another core, but certain
receive flow(s) are given to Linux so they can receive packets.
In this case we do RX DMA without actual DMA channel.

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

  reply index

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-01  6:16 [PATCH v3 00/14] dmaengine/soc: Add Texas Instruments UDMA support Peter Ujfalusi
2019-10-01  6:16 ` [PATCH v3 01/14] bindings: soc: ti: add documentation for k3 ringacc Peter Ujfalusi
2019-10-01  6:16 ` [PATCH v3 02/14] soc: ti: k3: add navss ringacc driver Peter Ujfalusi
2019-10-09  7:14   ` Tero Kristo
2019-10-09 13:27   ` Lokesh Vutla
2019-10-25  9:30     ` Peter Ujfalusi
2019-10-29  8:52   ` Lokesh Vutla
2019-10-30 13:10     ` Grygorii Strashko
2019-10-01  6:16 ` [PATCH v3 03/14] dmaengine: doc: Add sections for per descriptor metadata support Peter Ujfalusi
2019-10-09  7:30   ` Tero Kristo
2019-10-01  6:16 ` [PATCH v3 04/14] dmaengine: Add metadata_ops for dma_async_tx_descriptor Peter Ujfalusi
2019-10-09  7:37   ` Tero Kristo
2019-10-01  6:16 ` [PATCH v3 05/14] dmaengine: Add support for reporting DMA cached data amount Peter Ujfalusi
2019-10-09  9:17   ` Tero Kristo
2019-10-01  6:16 ` [PATCH v3 06/14] dmaengine: ti: Add cppi5 header for UDMA Peter Ujfalusi
2019-10-09  9:13   ` Tero Kristo
2019-10-01  6:16 ` [PATCH v3 07/14] dt-bindings: dma: ti: Add document for K3 UDMA Peter Ujfalusi
2019-10-10 17:52   ` Rob Herring
2019-10-11  7:30     ` Peter Ujfalusi
2019-10-15 17:30       ` Peter Ujfalusi
2019-10-17 14:03         ` Rob Herring
2019-10-22 11:46           ` Peter Ujfalusi [this message]
2019-10-01  6:16 ` [PATCH v3 08/14] dmaengine: ti: New driver for K3 UDMA - split#1: defines, structs, io func Peter Ujfalusi
2019-10-09 13:40   ` Tero Kristo
2019-10-01  6:16 ` [PATCH v3 09/14] dmaengine: ti: New driver for K3 UDMA - split#2: probe/remove, xlate and filter_fn Peter Ujfalusi
2019-10-03  8:35   ` Peter Ujfalusi
2019-10-01  6:17 ` [PATCH v3 10/14] dmaengine: ti: New driver for K3 UDMA - split#3: alloc/free chan_resources Peter Ujfalusi
2019-10-01  6:17 ` [PATCH v3 11/14] dmaengine: ti: New driver for K3 UDMA - split#4: dma_device callbacks 1 Peter Ujfalusi
2019-10-01  6:17 ` [PATCH v3 12/14] dmaengine: ti: New driver for K3 UDMA - split#5: dma_device callbacks 2 Peter Ujfalusi
2019-10-01  6:17 ` [PATCH v3 13/14] dmaengine: ti: New driver for K3 UDMA - split#6: Kconfig and Makefile Peter Ujfalusi
2019-10-01  6:17 ` [PATCH v3 14/14] dmaengine: ti: k3-udma: Add glue layer for non DMAengine users Peter Ujfalusi
2019-10-04 16:35 ` [PATCH v3 00/14] dmaengine/soc: Add Texas Instruments UDMA support santosh.shilimkar
2019-10-08 10:09   ` Peter Ujfalusi
2019-10-09 16:02     ` santosh.shilimkar

Reply instructions:

You may reply publically 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=a844b84c-8dc7-6562-1f66-e4d625fa42e6@ti.com \
    --to=peter.ujfalusi@ti.com \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=j-keerthy@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=nm@ti.com \
    --cc=robh@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=t-kristo@ti.com \
    --cc=tony@atomide.com \
    --cc=vkoul@kernel.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

dmaengine Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dmaengine/0 dmaengine/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dmaengine dmaengine/ https://lore.kernel.org/dmaengine \
		dmaengine@vger.kernel.org
	public-inbox-index dmaengine

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.dmaengine


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git