// SPDX-License-Identifier: GPL-2.0
/*
* Copyright ( C ) 2020 Texas Instruments Incorporated - https : //www.ti.com
* Author : Peter Ujfalusi < peter . ujfalusi @ 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, \
.mapped_channel_id = -1 , \
.default_flow_id = -1 , \
}, \
}
#define PSIL_PDMA_XY_PKT(x) \
{ \
.thread_id = x, \
.ep_config = { \
.ep_type = PSIL_EP_PDMA_XY, \
.mapped_channel_id = -1 , \
.default_flow_id = -1 , \
.pkt_mode = 1 , \
}, \
}
#define PSIL_ETHERNET(x, ch, flow_base, flow_cnt) \
{ \
.thread_id = x, \
.ep_config = { \
.ep_type = PSIL_EP_NATIVE, \
.pkt_mode = 1 , \
.needs_epib = 1 , \
.psd_size = 16 , \
.mapped_channel_id = ch, \
.flow_start = flow_base, \
.flow_num = flow_cnt, \
.default_flow_id = flow_base, \
}, \
}
#define PSIL_SAUL(x, ch, flow_base, flow_cnt, default_flow, tx) \
{ \
.thread_id = x, \
.ep_config = { \
.ep_type = PSIL_EP_NATIVE, \
.pkt_mode = 1 , \
.needs_epib = 1 , \
.psd_size = 64 , \
.mapped_channel_id = ch, \
.flow_start = flow_base, \
.flow_num = flow_cnt, \
.default_flow_id = default_flow, \
.notdpkt = tx, \
}, \
}
/* PSI-L source thread IDs, used for RX (DMA_DEV_TO_MEM) */
static struct psil_ep am64_src_ep_map[] = {
/* SAUL */
PSIL_SAUL(0 x4000, 17 , 32 , 8 , 32 , 0 ),
PSIL_SAUL(0 x4001, 18 , 32 , 8 , 33 , 0 ),
PSIL_SAUL(0 x4002, 19 , 40 , 8 , 40 , 0 ),
PSIL_SAUL(0 x4003, 20 , 40 , 8 , 41 , 0 ),
/* ICSS_G0 */
PSIL_ETHERNET(0 x4100, 21 , 48 , 16 ),
PSIL_ETHERNET(0 x4101, 22 , 64 , 16 ),
PSIL_ETHERNET(0 x4102, 23 , 80 , 16 ),
PSIL_ETHERNET(0 x4103, 24 , 96 , 16 ),
/* ICSS_G1 */
PSIL_ETHERNET(0 x4200, 25 , 112 , 16 ),
PSIL_ETHERNET(0 x4201, 26 , 128 , 16 ),
PSIL_ETHERNET(0 x4202, 27 , 144 , 16 ),
PSIL_ETHERNET(0 x4203, 28 , 160 , 16 ),
/* PDMA_MAIN0 - SPI0-3 */
PSIL_PDMA_XY_PKT(0 x4300),
PSIL_PDMA_XY_PKT(0 x4301),
PSIL_PDMA_XY_PKT(0 x4302),
PSIL_PDMA_XY_PKT(0 x4303),
PSIL_PDMA_XY_PKT(0 x4304),
PSIL_PDMA_XY_PKT(0 x4305),
PSIL_PDMA_XY_PKT(0 x4306),
PSIL_PDMA_XY_PKT(0 x4307),
PSIL_PDMA_XY_PKT(0 x4308),
PSIL_PDMA_XY_PKT(0 x4309),
PSIL_PDMA_XY_PKT(0 x430a),
PSIL_PDMA_XY_PKT(0 x430b),
PSIL_PDMA_XY_PKT(0 x430c),
PSIL_PDMA_XY_PKT(0 x430d),
PSIL_PDMA_XY_PKT(0 x430e),
PSIL_PDMA_XY_PKT(0 x430f),
/* PDMA_MAIN0 - USART0-1 */
PSIL_PDMA_XY_PKT(0 x4310),
PSIL_PDMA_XY_PKT(0 x4311),
/* PDMA_MAIN1 - SPI4 */
PSIL_PDMA_XY_PKT(0 x4400),
PSIL_PDMA_XY_PKT(0 x4401),
PSIL_PDMA_XY_PKT(0 x4402),
PSIL_PDMA_XY_PKT(0 x4403),
/* PDMA_MAIN1 - USART2-6 */
PSIL_PDMA_XY_PKT(0 x4404),
PSIL_PDMA_XY_PKT(0 x4405),
PSIL_PDMA_XY_PKT(0 x4406),
PSIL_PDMA_XY_PKT(0 x4407),
PSIL_PDMA_XY_PKT(0 x4408),
/* PDMA_MAIN1 - ADCs */
PSIL_PDMA_XY_TR(0 x440f),
PSIL_PDMA_XY_TR(0 x4410),
/* CPSW2 */
PSIL_ETHERNET(0 x4500, 16 , 16 , 16 ),
};
/* PSI-L destination thread IDs, used for TX (DMA_MEM_TO_DEV) */
static struct psil_ep am64_dst_ep_map[] = {
/* SAUL */
PSIL_SAUL(0 xc000, 24 , 80 , 8 , 80 , 1 ),
PSIL_SAUL(0 xc001, 25 , 88 , 8 , 88 , 1 ),
/* ICSS_G0 */
PSIL_ETHERNET(0 xc100, 26 , 96 , 1 ),
PSIL_ETHERNET(0 xc101, 27 , 97 , 1 ),
PSIL_ETHERNET(0 xc102, 28 , 98 , 1 ),
PSIL_ETHERNET(0 xc103, 29 , 99 , 1 ),
PSIL_ETHERNET(0 xc104, 30 , 100 , 1 ),
PSIL_ETHERNET(0 xc105, 31 , 101 , 1 ),
PSIL_ETHERNET(0 xc106, 32 , 102 , 1 ),
PSIL_ETHERNET(0 xc107, 33 , 103 , 1 ),
/* ICSS_G1 */
PSIL_ETHERNET(0 xc200, 34 , 104 , 1 ),
PSIL_ETHERNET(0 xc201, 35 , 105 , 1 ),
PSIL_ETHERNET(0 xc202, 36 , 106 , 1 ),
PSIL_ETHERNET(0 xc203, 37 , 107 , 1 ),
PSIL_ETHERNET(0 xc204, 38 , 108 , 1 ),
PSIL_ETHERNET(0 xc205, 39 , 109 , 1 ),
PSIL_ETHERNET(0 xc206, 40 , 110 , 1 ),
PSIL_ETHERNET(0 xc207, 41 , 111 , 1 ),
/* CPSW2 */
PSIL_ETHERNET(0 xc500, 16 , 16 , 8 ),
PSIL_ETHERNET(0 xc501, 17 , 24 , 8 ),
PSIL_ETHERNET(0 xc502, 18 , 32 , 8 ),
PSIL_ETHERNET(0 xc503, 19 , 40 , 8 ),
PSIL_ETHERNET(0 xc504, 20 , 48 , 8 ),
PSIL_ETHERNET(0 xc505, 21 , 56 , 8 ),
PSIL_ETHERNET(0 xc506, 22 , 64 , 8 ),
PSIL_ETHERNET(0 xc507, 23 , 72 , 8 ),
};
struct psil_ep_map am64_ep_map = {
.name = "am64" ,
.src = am64_src_ep_map,
.src_count = ARRAY_SIZE(am64_src_ep_map),
.dst = am64_dst_ep_map,
.dst_count = ARRAY_SIZE(am64_dst_ep_map),
};
Messung V0.5 in Prozent C=87 H=100 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland