STRUCT SCMI_OPTEE_CHANNEL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so bestie, welcome to the Kernel API Manual (section 9, we're fancy πŸ’…) β€” this page is all about struct scmi_optee_channel, which is literally the description of an OP-TEE SCMI channel. that's it, that's the vibe πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole struct, character for character, no cap:

struct scmi_optee_channel {
    u32 channel_id;
    u32 tee_session;
    u32 caps;
    u32 rx_len;
    struct mutex mu;
    struct scmi_chan_info *cinfo;
    union {
      struct scmi_shared_mem __iomem *shmem;
      struct scmi_msg_payld *msg;
    } req;
    struct scmi_shmem_io_ops *io_ops;
    struct tee_shm *tee_shm;
    struct list_head link;
 };

like, look at her. main character struct energy fr fr πŸ‘‘


πŸ¦‹ MEMBERS πŸ¦‹

okay now let's go field by field, because every single one of these matters and i'm not skipping a single one πŸ’–

  • channel_id β€” the OP-TEE channel ID that this transport is using. her personal little id badge πŸͺͺ
  • tee_session β€” the TEE session identifier. yep, the session, the whole session 🫢
  • caps β€” the OP-TEE SCMI channel capabilities. all the things she's capable of ✨
  • rx_len β€” the response size. how big the reply is gonna be πŸ“
  • mu β€” a mutex protecting access to the channel. no two people in this dressing room at once, periodt πŸ”’
  • cinfo β€” the SCMI channel information. the whole info situation πŸ’«
  • req β€” a union for the SCMI interface. choose your fighter πŸ₯Š
  • req.shmem β€” the virtual base address of the shared memory. where the shared memory actually lives πŸ“
  • req.msg β€” the shared memory protocol handle for the SCMI request and the synchronous response. request in, response out, matched set πŸ’Œ
  • io_ops β€” the transport-specific I/O operations. the I/O operations, but make them specific to the transport 🧚
  • tee_shm β€” the TEE shared memory handle req, or NULL if it's using IOMEM shmem. yes, either/or, don't come for me πŸ™ˆ
  • link β€” a reference in the agent's channel list. she's on the list, obviously πŸ“‹

⭐ SEE ALSO ⭐

  • the kernel file ./drivers/firmware/arm_scmi/transports/optee.c β€” go read it, i'll wait πŸ“
  • struct scmi_optee_agent(9) β€” her bestie, go say hi 🫢

lowkey reminder: this whole page is from the Kernel API Manual, source/version is ./drivers/firmware/arm_scmi/tr... and it's stamped October 2026. mwah, love u, go read your kernel source πŸ’œπŸŒˆ

struct scmi_optee_channel(9) β€” she ate and left no crumbs πŸ‘‘πŸ’…

πŸ“¦ where this page comes from