STRUCT PSIL_ENDPOINT_CONFIG(9)
β¨ NAME β¨
struct psil_endpoint_config β the PSI-L Endpoint configuration, bestie π
Ok so real talk, this is a page out of the Kernel API Manual, and it's all about that one lil struct that tells the kernel how a PSI-L endpoint should behave. No cap, it's giving "control panel for one endpoint" energy π
πΈ SYNOPSIS πΈ
Here's the whole thing, laid out exactly how it lives in the source:
struct psil_endpoint_config {
enum psil_endpoint_type ep_type;
enum udma_tp_level channel_tpl;
unsigned pkt_mode:1;
unsigned notdpkt:1;
unsigned needs_epib:1;
unsigned pdma_acc32:1;
unsigned pdma_burst:1;
u32 psd_size;
s16 mapped_channel_id;
u16 flow_start;
u16 flow_num;
s16 default_flow_id;
};
Notice the bitfields? pkt_mode, notdpkt, needs_epib, pdma_acc32 and pdma_burst are all :1 β one bit each, living their tiny icon era π§
π Members π
The members, one by one, fr fr
ep_typeβ the PSI-L endpoint type. It's literally the whole personality of the endpoint β¨channel_tplβ the desired throughput level for the channel. Think of it as the endpoint's ambition πpkt_modeβ if this one's set, the channel must be in Packet mode; if it's not set, the channel is in TR mode instead. No in-between, babe.notdpktβ TDCM must be suppressed on the TX channel. Yep. That's the whole vibe.needs_epibβ the endpoint needs EPIB. Simple as that π«Άpdma_acc32β ACC32 must be enabled on the PDMA side. Not optional, that's the rule.pdma_burstβ BURST must be enabled on the PDMA side. Same energy, different bit βpsd_sizeβ if it's set, PSdata is used by the endpoint πΈmapped_channel_idβ the PKTDMA thread-to-channel mapping for mapped channels. The lowkey important part: the thread must be serviced by the specified channel ifmapped_channel_idis>= 0, in the case of PKTDMA π₯flow_startβ the PKDMA flow range start of the mapped channel. Heads up: unmapped channels useflow_id == chan_idπflow_numβ the PKDMA flow count of the mapped channel. And again, for the people in the back: unmapped channels useflow_id == chan_iddefault_flow_idβ the PKDMA default (r)flow index of the mapped channel. It must be within the flow range of the mapped channel β that's a hard requirement, not a suggestion, ok? π
Also just so you're not confused later: yes, the original really does spell itPKTDMAin one spot andPKDMAin the others. That's not me being sloppy, that's just how it's written π
π¦ SEE ALSO π¦
Go check these out, they're the friends of this page:
- The kernel file
./include/linux/dma/k3-psil.h enum udma_tp_level(9)enum psil_endpoint_type(9)
And that's the whole page, bestie β you ate that π β¨
Cute lil sign-off: this one lives under ./include/linux/dma, and it's stamped October 2026. Periodt ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms