From: Roger Quadros <rogerq@kernel.org>
To: Apurva Nandan <a-nandan@ti.com>, Hari Nagalla <hnagalla@ti.com>,
Lukasz Majewski <lukma@denx.de>,
Sean Anderson <seanga2@gmail.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Neha Malcom Francis <n-francis@ti.com>,
Simon Glass <sjg@chromium.org>, Andrew Davis <afd@ti.com>,
Kamlesh Gurudasani <kamlesh@ti.com>,
Dasnavis Sabiya <sabiya.d@ti.com>,
Manorit Chawdhry <m-chawdhry@ti.com>,
Aradhya Bhatia <a-bhatia1@ti.com>, Bryan Brattlof <bb@ti.com>,
Christian Gmeiner <christian.gmeiner@gmail.com>,
Nishanth Menon <nm@ti.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Marcel Ziswiler <marcel.ziswiler@toradex.com>,
Jayesh Choudhary <j-choudhary@ti.com>,
Ralph Siemsen <ralph.siemsen@linaro.org>,
Marek Vasut <marek.vasut+renesas@mailbox.org>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
u-boot@lists.denx.de,
Sinthu Raja M <sinthu.raja@mistralsolutions.com>,
Udit Kumar <u-kumar1@ti.com>
Subject: Re: [PATCH v8 08/16] drivers: dma: Add support for J784S4 SoC
Date: Mon, 22 Jan 2024 14:47:08 +0200 [thread overview]
Message-ID: <67277138-b421-4823-9e64-222c114f8296@kernel.org> (raw)
In-Reply-To: <20240119175043.3904751-9-a-nandan@ti.com>
On 19/01/2024 19:50, Apurva Nandan wrote:
> Add support for DMA in J784S4 SoC.
>
> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
> Signed-off-by: Hari Nagalla <hnagalla@ti.com>
> Signed-off-by: Apurva Nandan <a-nandan@ti.com>
> Reviewed-by: Nishanth Menon <nm@ti.com>
> ---
> drivers/dma/ti/Makefile | 1 +
> drivers/dma/ti/k3-psil-j784s4.c | 166 ++++++++++++++++++++++++++
> drivers/dma/ti/k3-psil-priv.h | 1 +
> drivers/dma/ti/k3-psil.c | 2 +
> drivers/firmware/ti_sci_static_data.h | 34 ++++++
> drivers/ram/Kconfig | 2 +-
> 6 files changed, 205 insertions(+), 1 deletion(-)
> create mode 100644 drivers/dma/ti/k3-psil-j784s4.c
>
> diff --git a/drivers/dma/ti/Makefile b/drivers/dma/ti/Makefile
> index f4e0271efb..9e0b13e8c0 100644
> --- a/drivers/dma/ti/Makefile
> +++ b/drivers/dma/ti/Makefile
> @@ -9,3 +9,4 @@ k3-psil-data-$(CONFIG_SOC_K3_J721S2) += k3-psil-j721s2.o
> k3-psil-data-$(CONFIG_SOC_K3_AM642) += k3-psil-am64.o
> k3-psil-data-$(CONFIG_SOC_K3_AM625) += k3-psil-am62.o
> k3-psil-data-$(CONFIG_SOC_K3_AM62A7) += k3-psil-am62a.o
> +k3-psil-data-$(CONFIG_SOC_K3_J784S4) += k3-psil-j784s4.o
> diff --git a/drivers/dma/ti/k3-psil-j784s4.c b/drivers/dma/ti/k3-psil-j784s4.c
> new file mode 100644
> index 0000000000..7f06a1f307
> --- /dev/null
> +++ b/drivers/dma/ti/k3-psil-j784s4.c
> @@ -0,0 +1,166 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com
> + */
> +#include <linux/kernel.h>
> +
> +#include "k3-psil-priv.h"
> +
> +#define PSIL_PDMA_XY_TR(x) \
> + { \
> + .thread_id = x, \
> + .ep_config = { \
> + .ep_type = PSIL_EP_PDMA_XY, \
> + }, \
> + }
> +
> +#define PSIL_PDMA_XY_PKT(x) \
> + { \
> + .thread_id = x, \
> + .ep_config = { \
> + .ep_type = PSIL_EP_PDMA_XY, \
> + .pkt_mode = 1, \
> + }, \
> + }
> +
> +#define PSIL_PDMA_MCASP(x) \
> + { \
> + .thread_id = x, \
> + .ep_config = { \
> + .ep_type = PSIL_EP_PDMA_XY, \
> + .pdma_acc32 = 1, \
> + .pdma_burst = 1, \
> + }, \
> + }
> +
> +#define PSIL_ETHERNET(x) \
> + { \
> + .thread_id = x, \
> + .ep_config = { \
> + .ep_type = PSIL_EP_NATIVE, \
> + .pkt_mode = 1, \
> + .needs_epib = 1, \
> + .psd_size = 16, \
> + }, \
> + }
> +
> +#define PSIL_SA2UL(x, tx) \
> + { \
> + .thread_id = x, \
> + .ep_config = { \
> + .ep_type = PSIL_EP_NATIVE, \
> + .pkt_mode = 1, \
> + .needs_epib = 1, \
> + .psd_size = 64, \
> + .notdpkt = tx, \
> + }, \
> + }
> +
> +/* PSI-L source thread IDs, used for RX (DMA_DEV_TO_MEM) */
> +static struct psil_ep j784s4_src_ep_map[] = {
> + /* PDMA_MCASP - McASP0-4 */
> + PSIL_PDMA_MCASP(0x4400),
> + PSIL_PDMA_MCASP(0x4401),
> + PSIL_PDMA_MCASP(0x4402),
> + PSIL_PDMA_MCASP(0x4403),
> + PSIL_PDMA_MCASP(0x4404),
> + /* PDMA_SPI_G0 - SPI0-3 */
> + PSIL_PDMA_XY_PKT(0x4600),
> + PSIL_PDMA_XY_PKT(0x4601),
> + PSIL_PDMA_XY_PKT(0x4602),
> + PSIL_PDMA_XY_PKT(0x4603),
> + PSIL_PDMA_XY_PKT(0x4604),
> + PSIL_PDMA_XY_PKT(0x4605),
> + PSIL_PDMA_XY_PKT(0x4606),
> + PSIL_PDMA_XY_PKT(0x4607),
> + PSIL_PDMA_XY_PKT(0x4608),
> + PSIL_PDMA_XY_PKT(0x4609),
> + PSIL_PDMA_XY_PKT(0x460a),
> + PSIL_PDMA_XY_PKT(0x460b),
> + PSIL_PDMA_XY_PKT(0x460c),
> + PSIL_PDMA_XY_PKT(0x460d),
> + PSIL_PDMA_XY_PKT(0x460e),
> + PSIL_PDMA_XY_PKT(0x460f),
> + /* PDMA_SPI_G1 - SPI4-7 */
> + PSIL_PDMA_XY_PKT(0x4610),
> + PSIL_PDMA_XY_PKT(0x4611),
> + PSIL_PDMA_XY_PKT(0x4612),
> + PSIL_PDMA_XY_PKT(0x4613),
> + PSIL_PDMA_XY_PKT(0x4614),
> + PSIL_PDMA_XY_PKT(0x4615),
> + PSIL_PDMA_XY_PKT(0x4616),
> + PSIL_PDMA_XY_PKT(0x4617),
> + PSIL_PDMA_XY_PKT(0x4618),
> + PSIL_PDMA_XY_PKT(0x4619),
> + PSIL_PDMA_XY_PKT(0x461a),
> + PSIL_PDMA_XY_PKT(0x461b),
> + PSIL_PDMA_XY_PKT(0x461c),
> + PSIL_PDMA_XY_PKT(0x461d),
> + PSIL_PDMA_XY_PKT(0x461e),
> + PSIL_PDMA_XY_PKT(0x461f),
> + /* PDMA_USART_G0 - UART0-1 */
> + PSIL_PDMA_XY_PKT(0x4700),
> + PSIL_PDMA_XY_PKT(0x4701),
> + /* PDMA_USART_G1 - UART2-3 */
> + PSIL_PDMA_XY_PKT(0x4702),
> + PSIL_PDMA_XY_PKT(0x4703),
> + /* PDMA_USART_G2 - UART4-9 */
> + PSIL_PDMA_XY_PKT(0x4704),
> + PSIL_PDMA_XY_PKT(0x4705),
> + PSIL_PDMA_XY_PKT(0x4706),
> + PSIL_PDMA_XY_PKT(0x4707),
> + PSIL_PDMA_XY_PKT(0x4708),
> + PSIL_PDMA_XY_PKT(0x4709),
> + /* CPSW0 */
> + PSIL_ETHERNET(0x7000),
> + /* MCU_PDMA0 (MCU_PDMA_MISC_G0) - SPI0 */
> + PSIL_PDMA_XY_PKT(0x7100),
> + PSIL_PDMA_XY_PKT(0x7101),
> + PSIL_PDMA_XY_PKT(0x7102),
> + PSIL_PDMA_XY_PKT(0x7103),
> + /* MCU_PDMA1 (MCU_PDMA_MISC_G1) - SPI1-2 */
> + PSIL_PDMA_XY_PKT(0x7200),
> + PSIL_PDMA_XY_PKT(0x7201),
> + PSIL_PDMA_XY_PKT(0x7202),
> + PSIL_PDMA_XY_PKT(0x7203),
> + PSIL_PDMA_XY_PKT(0x7204),
> + PSIL_PDMA_XY_PKT(0x7205),
> + PSIL_PDMA_XY_PKT(0x7206),
> + PSIL_PDMA_XY_PKT(0x7207),
> + /* MCU_PDMA2 (MCU_PDMA_MISC_G2) - UART0 */
> + PSIL_PDMA_XY_PKT(0x7300),
> + /* MCU_PDMA_ADC - ADC0-1 */
> + PSIL_PDMA_XY_TR(0x7400),
> + PSIL_PDMA_XY_TR(0x7401),
> + PSIL_PDMA_XY_TR(0x7402),
> + PSIL_PDMA_XY_TR(0x7403),
> + /* SA2UL */
> + PSIL_SA2UL(0x7500, 0),
> + PSIL_SA2UL(0x7501, 0),
> + PSIL_SA2UL(0x7502, 0),
> + PSIL_SA2UL(0x7503, 0),
> +};
> +
> +/* PSI-L destination thread IDs, used for TX (DMA_MEM_TO_DEV) */
> +static struct psil_ep j784s4_dst_ep_map[] = {
> + /* CPSW0 */
> + PSIL_ETHERNET(0xf000),
> + PSIL_ETHERNET(0xf001),
> + PSIL_ETHERNET(0xf002),
> + PSIL_ETHERNET(0xf003),
> + PSIL_ETHERNET(0xf004),
> + PSIL_ETHERNET(0xf005),
> + PSIL_ETHERNET(0xf006),
> + PSIL_ETHERNET(0xf007),
> + /* SA2UL */
> + PSIL_SA2UL(0xf500, 1),
> + PSIL_SA2UL(0xf501, 1),
> +};
> +
> +struct psil_ep_map j784s4_ep_map = {
> + .name = "j784s4",
> + .src = j784s4_src_ep_map,
> + .src_count = ARRAY_SIZE(j784s4_src_ep_map),
> + .dst = j784s4_dst_ep_map,
> + .dst_count = ARRAY_SIZE(j784s4_dst_ep_map),
> +};
> diff --git a/drivers/dma/ti/k3-psil-priv.h b/drivers/dma/ti/k3-psil-priv.h
> index 83f873b84c..02ea1e9ed3 100644
> --- a/drivers/dma/ti/k3-psil-priv.h
> +++ b/drivers/dma/ti/k3-psil-priv.h
> @@ -43,5 +43,6 @@ extern struct psil_ep_map j721s2_ep_map;
> extern struct psil_ep_map am64_ep_map;
> extern struct psil_ep_map am62_ep_map;
> extern struct psil_ep_map am62a_ep_map;
> +extern struct psil_ep_map j784s4_ep_map;
>
> #endif /* K3_PSIL_PRIV_H_ */
> diff --git a/drivers/dma/ti/k3-psil.c b/drivers/dma/ti/k3-psil.c
> index d4d4fede8f..d21ef193e8 100644
> --- a/drivers/dma/ti/k3-psil.c
> +++ b/drivers/dma/ti/k3-psil.c
> @@ -28,6 +28,8 @@ struct psil_endpoint_config *psil_get_ep_config(u32 thread_id)
> soc_ep_map = &am62_ep_map;
> else if (IS_ENABLED(CONFIG_SOC_K3_AM62A7))
> soc_ep_map = &am62a_ep_map;
> + else if (IS_ENABLED(CONFIG_SOC_K3_J784S4))
> + soc_ep_map = &j784s4_ep_map;
> }
>
> if (thread_id & K3_PSIL_DST_THREAD_ID_OFFSET && soc_ep_map->dst) {
> diff --git a/drivers/firmware/ti_sci_static_data.h b/drivers/firmware/ti_sci_static_data.h
> index 567ce8911a..789f0c6b2d 100644
> --- a/drivers/firmware/ti_sci_static_data.h
> +++ b/drivers/firmware/ti_sci_static_data.h
> @@ -97,6 +97,40 @@ static struct ti_sci_resource_static_data rm_static_data[] = {
> };
> #endif /* CONFIG_SOC_K3_AM625 || CONFIG_SOC_K3_AM62A7 */
>
> +#if IS_ENABLED(CONFIG_SOC_K3_J784S4)
> +static struct ti_sci_resource_static_data rm_static_data[] = {
> + /* Free rings */
> + {
> + .dev_id = 328,
> + .subtype = 1,
> + .range_start = 208,
> + .range_num = 32,
> + },
> + /* TX channels */
> + {
> + .dev_id = 329,
> + .subtype = 13,
> + .range_start = 40,
> + .range_num = 3,
> + },
> + /* RX channels */
> + {
> + .dev_id = 329,
> + .subtype = 10,
> + .range_start = 40,
> + .range_num = 3,
> + },
> + /* RX Free flows */
> + {
> + .dev_id = 329,
> + .subtype = 0,
> + .range_start = 84,
> + .range_num = 8,
> + },
> + { },
> +};
> +#endif /* CONFIG_SOC_K3_J784S4 */
> +
> #else
> static struct ti_sci_resource_static_data rm_static_data[] = {
> { },
> diff --git a/drivers/ram/Kconfig b/drivers/ram/Kconfig
> index 5b07e92030..8e9e53cbb0 100644
> --- a/drivers/ram/Kconfig
> +++ b/drivers/ram/Kconfig
> @@ -62,7 +62,7 @@ choice
> depends on K3_DDRSS
> prompt "K3 DDRSS Arch Support"
>
> - default K3_J721E_DDRSS if SOC_K3_J721E || SOC_K3_J721S2
> + default K3_J721E_DDRSS if SOC_K3_J721E || SOC_K3_J721S2 || SOC_K3_J784S4
Should DDR support patch be independent of DMA support?
This change should have gone in patch 2 "arm: mach-k3: Add basic support for J784S4 SoC definition"
> default K3_AM64_DDRSS if SOC_K3_AM642
> default K3_AM64_DDRSS if SOC_K3_AM625
> default K3_AM62A_DDRSS if SOC_K3_AM62A7
Reviewed-by: Roger Quadros <rogerq@kernel.org>
--
cheers,
-roger
next prev parent reply other threads:[~2024-01-22 12:47 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-19 17:50 [PATCH v8 00/16] Introduce initial TI's J784S4 and AM69 support Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 01/16] arm: mach-k3: Kconfig: Sort SOC_K3 config entries Apurva Nandan
2024-01-22 12:40 ` Roger Quadros
2024-01-19 17:50 ` [PATCH v8 02/16] arm: mach-k3: Add basic support for J784S4 SoC definition Apurva Nandan
2024-01-19 19:34 ` Nishanth Menon
2024-01-23 14:51 ` Apurva Nandan
2024-01-23 20:47 ` Nishanth Menon
2024-01-29 11:32 ` Apurva Nandan
2024-01-29 12:19 ` Nishanth Menon
2024-01-29 18:03 ` Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 03/16] arm: dts: Introduce j784s4 and am69 dts from linux kernel Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 04/16] arm: dts: Add bootph-all for memory node Apurva Nandan
2024-01-19 19:25 ` Nishanth Menon
2024-01-23 14:42 ` Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 05/16] arm: mach-k3: Sort SoC JTAG_ID entries Apurva Nandan
2024-01-22 12:41 ` Roger Quadros
2024-01-19 17:50 ` [PATCH v8 06/16] soc: ti: k3-socinfo: Add entry for J784S4 SoC Apurva Nandan
2024-01-22 12:41 ` Roger Quadros
2024-01-19 17:50 ` [PATCH v8 07/16] arm: mach-k3: j784s4: Add clk and power support Apurva Nandan
2024-01-22 12:43 ` Roger Quadros
2024-01-19 17:50 ` [PATCH v8 08/16] drivers: dma: Add support for J784S4 SoC Apurva Nandan
2024-01-22 12:47 ` Roger Quadros [this message]
2024-01-23 14:51 ` Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 09/16] board: ti: j784s4: Add board support for J784S4 EVM Apurva Nandan
2024-01-19 19:39 ` Nishanth Menon
2024-01-23 14:42 ` Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 10/16] board: ti: j748s4: Add board config yaml files Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 11/16] board: ti: j784s4: Add boot environment variables Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 12/16] arm: dts: Introduce j784s4 u-boot dts files Apurva Nandan
2024-01-19 19:17 ` Nishanth Menon
2024-01-23 14:58 ` Apurva Nandan
2024-01-23 20:52 ` Nishanth Menon
2024-02-15 9:03 ` Neha Malcom Francis
2024-02-16 15:58 ` Nishanth Menon
2024-02-19 4:03 ` Neha Malcom Francis
2024-01-19 17:50 ` [PATCH v8 13/16] arm: dts: Introduce am69-sk " Apurva Nandan
2024-01-22 12:58 ` Roger Quadros
2024-01-23 14:40 ` Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 14/16] configs: j784s4_evm: Add defconfig for j784s4 evm board Apurva Nandan
2024-01-19 17:50 ` [PATCH v8 15/16] configs: Add am69_sk_* defconfig fragments Apurva Nandan
2024-01-19 19:13 ` Andrew Davis
2024-01-23 14:39 ` Apurva Nandan
2024-01-23 15:01 ` Andrew Davis
2024-01-29 18:26 ` Apurva Nandan
2024-01-31 22:41 ` Andrew Davis
2024-01-19 17:50 ` [PATCH v8 16/16] doc: board: ti: k3: Add J784S4 EVM and AM69 SK documentation Apurva Nandan
2024-02-15 20:44 ` Andrew Halaney
2024-02-19 9:48 ` Apurva Nandan
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=67277138-b421-4823-9e64-222c114f8296@kernel.org \
--to=rogerq@kernel.org \
--cc=a-bhatia1@ti.com \
--cc=a-nandan@ti.com \
--cc=afd@ti.com \
--cc=bb@ti.com \
--cc=christian.gmeiner@gmail.com \
--cc=hnagalla@ti.com \
--cc=j-choudhary@ti.com \
--cc=jh80.chung@samsung.com \
--cc=kamlesh@ti.com \
--cc=lukma@denx.de \
--cc=m-chawdhry@ti.com \
--cc=marcel.ziswiler@toradex.com \
--cc=marek.vasut+renesas@mailbox.org \
--cc=n-francis@ti.com \
--cc=nm@ti.com \
--cc=ralph.siemsen@linaro.org \
--cc=rasmus.villemoes@prevas.dk \
--cc=sabiya.d@ti.com \
--cc=seanga2@gmail.com \
--cc=sinthu.raja@mistralsolutions.com \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
--cc=u-kumar1@ti.com \
--cc=xypron.glpk@gmx.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 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.