STRUCT TI_SCI_MSG_HDR(9)
π struct_ti_sci_msg_hdr β the Kernel API Manual moment π
okay so bestie, welcome to struct ti_sci_msg_hdr(9), aka the Generic Message Header for All messages and responses. every single message and every single response in this whole TI SCI situation rocks this exact same header. it's giving main character energy but for data structures. β¨
πΈ SYNOPSIS πΈ
here's the whole thing, copied exactly, no cap:
struct ti_sci_msg_hdr {
u16 type;
u8 host;
u8 seq;
#define TI_SCI_MSG_FLAG(val) (1 << (val));
#define TI_SCI_FLAG_REQ_GENERIC_NORESPONSE 0x0;
#define TI_SCI_FLAG_REQ_ACK_ON_RECEIVED TI_SCI_MSG_FLAG(0);
#define TI_SCI_FLAG_REQ_ACK_ON_PROCESSED TI_SCI_MSG_FLAG(1);
#define TI_SCI_FLAG_RESP_GENERIC_NACK 0x0;
#define TI_SCI_FLAG_RESP_GENERIC_ACK TI_SCI_MSG_FLAG(1);
u32 flags;
};
like?? look at her. four fields and six #defines. iconic. π
π MEMBERS π
typeβ the type of the message, and it has to be one of theTI_SCI_MSG*values. pick wisely bestie, this is literally the whole identity of the message π¦hostβ the host of the message. who's speaking? this field knows. β¨seqβ the message identifier, and it's the thing that indicates a transfer sequence. so it's like the message's little "part 3 of 5" tag, iykyk π₯flagsβ the flag for the message. yes it's plural, yes it's one field, we don't make the rules π
π¦ SEE ALSO π¦
okay this list is LONG and she ate, honestly. first up, the kernel file itself: ./drivers/firmware/ti_sci.h
then the whole friend group, in order, no one gets left out π«Ά
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 ti_sci_msg_udmap_rx_flow_cfg(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 forty-plus cross-references?? she's connected. she knows everyone. π
and that's the whole page bestie, mwah π
this cutie lives in ./drivers/firmware, the docs are dated October 2026, and it's filed under struct ti_sci_msg_hdr(9) in the Kernel API Manual. go read the actual structs now, i'm obsessed with your brain π§π
π¦ 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