STRUCT TI_SCI_MSG_UDMAP_RX_FLOW_CFG(9)
π struct ti_sci_msg_udmap_rx_flow_cfg(9) π
okay bestie so this is a page straight outta the Kernel API Manual, and it's all about struct ti_sci_msg_udmap_rx_flow_cfg β the UDMAP receive flow configuration message. yes it's a whole struct of config for a receive flow, no cap, and we're gonna walk through every single field together π«Ά
β¨ NAME β¨
struct ti_sci_msg_udmap_rx_flow_cfg β the UDMAP receive flow configuration message. that's it, that's the vibe π
πΈ SYNOPSIS πΈ
struct ti_sci_msg_udmap_rx_flow_cfg {
struct ti_sci_msg_hdr hdr;
u32 nav_id;
u32 flow_index;
u32 rx_ch_index;
u8 rx_einfo_present;
u8 rx_psinfo_present;
u8 rx_error_handling;
u8 rx_desc_type;
u16 rx_sop_offset;
u16 rx_dest_qnum;
u8 rx_ps_location;
u8 rx_src_tag_hi;
u8 rx_src_tag_lo;
u8 rx_dest_tag_hi;
u8 rx_dest_tag_lo;
u8 rx_src_tag_hi_sel;
u8 rx_src_tag_lo_sel;
u8 rx_dest_tag_hi_sel;
u8 rx_dest_tag_lo_sel;
u8 rx_size_thresh_en;
u16 rx_fdq0_sz0_qnum;
u16 rx_fdq1_qnum;
u16 rx_fdq2_qnum;
u16 rx_fdq3_qnum;
};
bestie look at all those fields π every one of them is doing a job and we're gonna respect all of them. periodt.
π¦ MEMBERS π¦
okay so here's the whole roster, one by one, no skipping, main character energy only π
hdrβ the generic header. the little intro every message needs πnav_idβ the SoC Navigator Subsystem device ID that this receive flow gets allocated from.flow_indexβ the UDMAP receive flow index for the non-optional configuration. basically the flow's whole identity.rx_ch_indexβ says which index of the receive channel is using theflow_index. they're linked, iykyk πrx_einfo_presentβ UDMAP receive flow extended packet info present.rx_psinfo_presentβ UDMAP receive flow PS words present.rx_error_handlingβ the UDMAP receive flow error handling configuration. the valid values areTI_SCI_RM_UDMAP_RX_FLOW_ERR_DROP/RETRY. pick one, she's gotta know π¨rx_desc_typeβ the UDMAP receive flow descriptor type. it can be one ofTI_SCI_RM_UDMAP_RX_FLOW_DESC_HOST/MONO.rx_sop_offsetβ the UDMAP receive flow start of packet offset. the beginning of the story bestie β¨rx_dest_qnumβ the UDMAP receive flow destination queue number. where it's all headed π¬rx_ps_locationβ the UDMAP receive flow PS words location. the values are:0- end of packet descriptor,1- Beginning of the data buffer.rx_src_tag_hiβ the UDMAP receive flow source tag high byte constant.rx_src_tag_loβ the UDMAP receive flow source tag low byte constant.rx_dest_tag_hiβ the UDMAP receive flow destination tag high byte constant.rx_dest_tag_loβ the UDMAP receive flow destination tag low byte constant.rx_src_tag_hi_selβ the UDMAP receive flow source tag high byte selector.rx_src_tag_lo_selβ the UDMAP receive flow source tag low byte selector.rx_dest_tag_hi_selβ the UDMAP receive flow destination tag high byte selector.rx_dest_tag_lo_selβ the UDMAP receive flow destination tag low byte selector.rx_size_thresh_enβ the UDMAP receive flow packet size based free buffer queue enable. and listen: if it's enabled, theti_sci_rm_udmap_rx_flow_opt_cfgalso needs to be configured and sent. don't forget that part, bestie, it's literally required πrx_fdq0_sz0_qnumβ the UDMAP receive flow free descriptor queue0.rx_fdq1_qnumβ the UDMAP receive flow free descriptor queue1.rx_fdq2_qnumβ the UDMAP receive flow free descriptor queue2.rx_fdq3_qnumβ the UDMAP receive flow free descriptor queue3.
four free descriptor queues, all accounted for, we ate that πβ¨
π₯ DESCRIPTION π₯
for the detailed info on all these settings, go check out the UDMAP section of the TRM. that's where the lore lives π
π SEE ALSO π
okay this list is long and I'm obsessed, here's literally all of it:
- Kernel file
./drivers/firmware/ti_sci.h struct ti_sci_msg_hdr(9)struct ti_sci_msg_resp_version(9)struct ti_sci_msg_req_reboot(9)struct ti_sci_msg_resp_query_fw_caps(9)struct ti_sci_msg_req_set_device_state(9)struct ti_sci_msg_req_get_device_state(9)struct ti_sci_msg_resp_get_device_state(9)struct ti_sci_msg_req_set_device_resets(9)struct ti_sci_msg_req_set_clock_state(9)struct ti_sci_msg_req_get_clock_state(9)struct ti_sci_msg_resp_get_clock_state(9)struct ti_sci_msg_req_set_clock_parent(9)struct ti_sci_msg_req_get_clock_parent(9)struct ti_sci_msg_resp_get_clock_parent(9)struct ti_sci_msg_req_get_clock_num_parents(9)struct ti_sci_msg_resp_get_clock_num_parents(9)struct ti_sci_msg_req_query_clock_freq(9)struct ti_sci_msg_resp_query_clock_freq(9)struct ti_sci_msg_req_set_clock_freq(9)struct ti_sci_msg_req_get_clock_freq(9)struct ti_sci_msg_resp_get_clock_freq(9)struct ti_sci_msg_req_prepare_sleep(9)struct ti_sci_msg_req_set_io_isolation(9)struct ti_sci_msg_resp_lpm_wake_reason(9)struct ti_sci_msg_req_lpm_set_device_constraint(9)struct ti_sci_msg_req_lpm_set_latency_constraint(9)struct ti_sci_msg_req_get_resource_range(9)struct ti_sci_msg_resp_get_resource_range(9)struct ti_sci_msg_req_manage_irq(9)struct ti_sci_msg_rm_ring_cfg_req(9)struct ti_sci_msg_psil_pair(9)struct ti_sci_msg_psil_unpair(9)struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg(9)struct ti_sci_msg_rm_udmap_tx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_rx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_flow_cfg_req(9)struct ti_sci_msg_req_proc_request(9)struct ti_sci_msg_req_proc_release(9)struct ti_sci_msg_req_proc_handover(9)struct ti_sci_msg_req_set_config(9)struct ti_sci_msg_req_set_ctrl(9)struct ti_sci_msg_req_get_status(9)struct ti_sci_msg_resp_get_status(9)
like I said. a whole friend group π«Άπ
and that's the whole page bestie!! this one came from ./drivers/firmware and it's dated October 2026 β ty for reading, ily, go configure your receive flow correctly π§βπ
π¦ 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