STRUCT TI_SCI_PROC_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct ti_sci_proc_ops(9) β€” Processor Control operations 🌸

okay bestie, welcome to the Kernel API Manual ✨ this one's all about the Processor Control operations struct β€” think of it as the little squad of function pointers that lets you boss a physical processor around πŸ’…


✨ SYNOPSIS ✨

struct ti_sci_proc_ops {
    int (*request)(const struct ti_sci_handle *handle, u8 pid);
    int (*release)(const struct ti_sci_handle *handle, u8 pid);
    int (*handover)(const struct ti_sci_handle *handle, u8 pid, u8 hid);
    int (*set_config)(const struct ti_sci_handle *handle, u8 pid, u64 boot_vector, u32 cfg_set, u32 cfg_clr);
    int (*set_control)(const struct ti_sci_handle *handle, u8 pid, u32 ctrl_set, u32 ctrl_clr);
    int (*get_status)(const struct ti_sci_handle *handle, u8 pid, u64 *boot_vector, u32 *cfg_flags, u32 *ctrl_flags, u32 *status_flags);
};

it's giving "six little function pointers, one big vibe check" 🫢 every single one of them takes a const struct ti_sci_handle *handle and a u8 pid, no cap πŸ‘‘


πŸ’… Members πŸ’…

  • request β€” ask to take control of a physical processor. lowkey important: the requesting host should be in the processor access list β€” no sneaking in, bestie πŸ™ˆ
  • release β€” give up control of a physical processor. bye-bye, handing back the keys πŸŽ€
  • handover β€” pass a physical processor's control over to another host in the permitted list. sharing is caring, but only if they're on the list ✨
  • set_config β€” set the base configuration of a processor. the whole foundation, the main character energy of processor setup πŸ‘‘
  • set_control β€” set up limited control flags in specific cases. read that again β€” limited, specific cases, iykyk πŸ’€
  • get_status β€” get the state of a physical processor. the vibe check of the whole struct, fr fr πŸ”₯

πŸ“Œ NOTE πŸ“Œ

the following parameters are generic in nature for all these ops β€” like, every single one of them hits the same little crew 🧚

-handle:     Pointer to TI SCI handle as retrieved by *ti_sci_get_handle
-pid:        Processor ID
-hid:        Host ID

so yeah β€” -handle, -pid, -hid, that's the trio bestie πŸ’œ (and yeah, -handle comes from *ti_sci_get_handle, don't lose it 🌸)


πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/linux/soc/ti/ti_sci_protocol.h β€” literally the source of truth, go look πŸ‘€

  • struct ti_sci_version_info(9)
  • struct ti_sci_core_ops(9)
  • struct ti_sci_dev_ops(9)
  • struct ti_sci_clk_ops(9)
  • struct ti_sci_pm_ops(9)
  • struct ti_sci_resource_desc(9)
  • struct ti_sci_rm_core_ops(9)
  • struct ti_sci_rm_irq_ops(9)
  • struct ti_sci_msg_rm_ring_cfg(9)
  • struct ti_sci_rm_ringacc_ops(9)
  • struct ti_sci_rm_psil_ops(9)
  • struct ti_sci_rm_udmap_ops(9)
  • struct ti_sci_ops(9)
  • struct ti_sci_handle(9)
  • struct ti_sci_resource(9)

and that's the whole thing, bestie πŸŽ€ source lives over at ./include/linux/soc/ti, dated October 2026 β€” periodt πŸ’…βœ¨

πŸ“¦ where this page comes from