From: Vignesh R <vigneshr@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/6] AM65x: Add DMA support
Date: Tue, 22 Jan 2019 20:33:53 +0530 [thread overview]
Message-ID: <20190122150359.15919-1-vigneshr@ti.com> (raw)
This series adds DMA support for TI's AM654 SoC.
The AM65x TRM (http://www.ti.com/lit/pdf/spruid7b) describes the Data Movement
Architecture which is implmented by the k3-udma driver.
This DMA architecture is a big departure from 'traditional' architecture where
we had either EDMA or sDMA as system DMA.
Packet DMAs were used as dedicated DMAs to service only networking (K2)
or USB (am335x) while other peripherals were serviced by EDMA.
In AM65x the UDMA (Unified DMA) is used for all data movment within the SoC,
tasked to service all peripherals (UART, McSPI, McASP, networking, etc).
The NAVSS/UDMA is built around CPPI5 (Communications Port Programming Interface)
and it supports Packet mode (similar to CPPI4.1 in K2 for networking) and
TR mode (similar to EDMA descriptor).
The data movement is done within a PSI-L fabric, all peripherals (including the
UDMA-P). peripherals are not addressed by their I/O register as with traditional
DMAs but with their PSI-L thread ID.
To be able to use the DMA the following generic steps need to be taken:
- configure a DMA channel (tchan for TX, rchan for RX)
- channel mode: Packet or TR mode
- for memcpy a tchan and rchan pair is used.
- for packet mode RX we also need to configure a receive flow to configure the
packet receiption
- the source and destination threads must be paired
- at minimum one pair of rings need to be configured:
- tx: transfer ring and transfer completion ring
- rx: free descriptor ring and receive ring
When the channel setup is completed we only interract with the rings:
- TX: push a descriptor to t_ring and wait for it to be pushed to the tc_ring by
the UDMA-P
- RX: push a descriptor to the fd_ring and wait for UDMA-P to push it back to
the r_ring.
Resources Management and configuration of channel and ring is handled by
sending TI-SCI msgs to remote core.
Patches are based on kernel patches here:
https://patchwork.kernel.org/cover/10612465/
*** BLURB HERE ***
Grygorii Strashko (5):
firmware: ti_sci: Add support for NAVSS resource management
soc: ti: k3: add navss ringacc driver
soc: ti: k3: add CPPI5 description and helpers
arm64: dts: ti: k3-am65: add mcu navss nodes
configs: am65x_evm_a53: Enable DMA related configs
Vignesh R (1):
dma: ti: add driver to K3 UDMA
arch/arm/dts/k3-am654-base-board-u-boot.dtsi | 49 +
configs/am65x_evm_a53_defconfig | 4 +-
drivers/Kconfig | 2 +
drivers/dma/Kconfig | 2 +
drivers/dma/Makefile | 2 +
drivers/dma/ti/Kconfig | 14 +
drivers/dma/ti/Makefile | 3 +
drivers/dma/ti/k3-udma-hwdef.h | 184 ++
drivers/dma/ti/k3-udma.c | 1749 ++++++++++++++++++
drivers/firmware/ti_sci.c | 424 +++++
drivers/firmware/ti_sci.h | 600 ++++++
drivers/soc/Kconfig | 5 +
drivers/soc/Makefile | 1 +
drivers/soc/ti/Kconfig | 20 +
drivers/soc/ti/Makefile | 5 +
drivers/soc/ti/k3-navss-ringacc.c | 1109 +++++++++++
include/dt-bindings/dma/k3-udma.h | 31 +
include/linux/soc/ti/cppi5.h | 995 ++++++++++
include/linux/soc/ti/k3-navss-ringacc.h | 246 +++
include/linux/soc/ti/ti-udma.h | 24 +
include/linux/soc/ti/ti_sci_protocol.h | 228 +++
21 files changed, 5696 insertions(+), 1 deletion(-)
create mode 100644 drivers/dma/ti/Kconfig
create mode 100644 drivers/dma/ti/Makefile
create mode 100644 drivers/dma/ti/k3-udma-hwdef.h
create mode 100644 drivers/dma/ti/k3-udma.c
create mode 100644 drivers/soc/Kconfig
create mode 100644 drivers/soc/ti/Kconfig
create mode 100644 drivers/soc/ti/Makefile
create mode 100644 drivers/soc/ti/k3-navss-ringacc.c
create mode 100644 include/dt-bindings/dma/k3-udma.h
create mode 100644 include/linux/soc/ti/cppi5.h
create mode 100644 include/linux/soc/ti/k3-navss-ringacc.h
create mode 100644 include/linux/soc/ti/ti-udma.h
--
2.20.1
next reply other threads:[~2019-01-22 15:03 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-22 15:03 Vignesh R [this message]
2019-01-22 15:03 ` [U-Boot] [PATCH 1/6] firmware: ti_sci: Add support for NAVSS resource management Vignesh R
2019-01-22 18:56 ` Tom Rini
2019-01-23 13:49 ` Vignesh R
2019-01-23 13:56 ` Tom Rini
2019-01-22 15:03 ` [U-Boot] [PATCH 2/6] soc: ti: k3: add navss ringacc driver Vignesh R
2019-01-22 18:56 ` Tom Rini
2019-01-23 13:50 ` Vignesh R
2019-01-22 15:03 ` [U-Boot] [PATCH 3/6] soc: ti: k3: add CPPI5 description and helpers Vignesh R
2019-01-22 18:56 ` Tom Rini
2019-01-22 15:03 ` [U-Boot] [PATCH 4/6] dma: ti: add driver to K3 UDMA Vignesh R
2019-01-22 18:56 ` Tom Rini
2019-01-23 10:35 ` Peter Ujfalusi
2019-01-23 13:43 ` Vignesh R
2019-01-23 13:56 ` Tom Rini
2019-01-25 14:23 ` Vignesh R
2019-01-23 13:52 ` Tom Rini
2019-01-22 15:03 ` [U-Boot] [PATCH 5/6] arm64: dts: ti: k3-am65: add mcu navss nodes Vignesh R
2019-01-22 18:56 ` Tom Rini
2019-01-22 15:03 ` [U-Boot] [PATCH 6/6] configs: am65x_evm_a53: Enable DMA related configs Vignesh R
2019-01-22 18:56 ` Tom Rini
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=20190122150359.15919-1-vigneshr@ti.com \
--to=vigneshr@ti.com \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox