STRUCT MEI_HBM_CL_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mei_hbm_cl_cmd(9) β€” the Kernel API Manual, but make it make sense πŸŽ€

okay bestie, welcome to the Kernel API Manual section 9, and let me tell you, today's main character is struct mei_hbm_cl_cmd. she's small, she's four fields, and she's literally the blueprint for the client-specific host bus commands: CONNECT, DISCONNECT, and FLOW CONTROL. yes, that last one is spelled "FlOW CONTROL" in the source and we are not fixing her, she's iconic ✨


🌸 NAME 🌸

struct mei_hbm_cl_cmd β€” the client-specific host bus command for CONNECT, DISCONNECT, and FlOW CONTROL. that's the whole vibe, no notes 🫢


✨ SYNOPSIS ✨

here's the glow-up, exactly as she lives in the header:

struct mei_hbm_cl_cmd {
    u8 hbm_cmd;
    u8 me_addr;
    u8 host_addr;
    u8 data;
 };

look at her. four u8s. not a single wasted byte. we love a minimal queen πŸ‘‘


πŸ’– Members (we're going member by member, bestie) πŸ’–

  • hbm_cmd β€” the bus message command header. this is the "what are we even doing here" field 🎯
  • me_addr β€” the address of the client in the ME. as in, where the client sits on the ME side πŸ“
  • host_addr β€” the address of the client in the driver. same client, different address, driver-side this time πŸ’«
  • data β€” generic data. it's giving "mystery box, contents TBD" 🎁

πŸ”₯ SEE ALSO πŸ”₯

okay this is the part where I hold up the entire friend group, because the SEE ALSO list is long and every single one of them is invited to the party. Kernel file ./drivers/misc/mei/hw.h plus:

  • enum mei_hbm_status(9)
  • enum mei_ext_hdr_type(9)
  • struct mei_ext_hdr(9)
  • struct mei_ext_meta_hdr(9)
  • struct mei_ext_hdr_vtag(9)
  • mei_ext_begin(9)
  • mei_ext_last(9)
  • struct mei_ext_hdr_gsc_h2f(9)
  • struct mei_ext_hdr_gsc_f2h(9)
  • mei_ext_next(9)
  • mei_ext_hdr_len(9)
  • struct mei_msg_hdr(9)
  • enum hbm_host_enum_flags(9)
  • struct hbm_host_enum_request(9)
  • struct mei_client_properties(9)
  • struct hbm_add_client_request(9)
  • struct hbm_add_client_response(9)
  • struct hbm_power_gate(9)
  • struct hbm_client_connect_request(9)
  • struct hbm_client_connect_response(9)
  • struct hbm_notification_request(9)
  • struct hbm_notification_response(9)
  • struct hbm_notification(9)
  • struct hbm_dma_mem_dscr(9)
  • struct hbm_dma_setup_request(9)
  • struct hbm_dma_setup_response(9)
  • struct hbm_dma_ring_ctrl(9)
  • struct hbm_capability_request(9)
  • struct hbm_capability_response(9)
  • struct hbm_client_dma_map_request(9)
  • struct hbm_client_dma_unmap_request(9)
  • struct hbm_client_dma_response(9)

that's the whole group chat, nobody left on read πŸ’€πŸ’…


ngl, the data field really said "generic" and then refused to elaborate. that's canon, don't come for me πŸ™ˆ

and that's the page! it lives over in ./drivers/misc/mei, and it's dated October 2026 β€” so mark your calendars, bestie, because future-you is gonna need this. mwah! πŸ’œπŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from