STRUCT TPMI_FEATURE_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct_tpmi_feature_state πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this one's a struct page, and honestly? it's giving "peek behind the curtain energy." we're looking at struct tpmi_feature_state, and no cap, it's literally the structure to read the hardware state of a feature. she's little, she's bitfield-y, she's iconic. let's get into it πŸŽ€


✨ NAME ✨

struct tpmi_feature_state β€” the structure you use to read the hardware state of a feature. that's it, that's the whole vibe πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct tpmi_feature_state {
    u32 enabled:1;
    u32 reserved_1:3;
    u32 write_blocked:1;
    u32 read_blocked:1;
    u32 pcs_select:1;
    u32 reserved_2:1;
    u32 id:8;
    u32 reserved_3:15;
    u32 locked:1;
 };

look at those bit widths, so precise, so demure. every bit accounted for, not a single one wasted. we stan a packed layout 🫢


🌸 Members 🌸

  • enabled β€” the enable state of a feature, fr. 1: enabled, 0: disabled. simple as that, no notes.
  • reserved_1 β€” reserved for future use πŸ‘€ (she's waiting for her moment, respect it).
  • write_blocked β€” when writes are blocked, it means all write operations are ignored. literally every single one. don't bother trying, bestie 😭
  • read_blocked β€” when reads are blocked, you'll read 0xFFs. yeah. that's the whole deal. don't be surprised when you get a wall of ones πŸ’€
  • pcs_select β€” the interface used by out of band software. not used in OS, so like… not our business, iykyk πŸ™ˆ
  • reserved_2 β€” reserved for future use ✨
  • id β€” the TPMI ID of the feature. her government name, basically πŸ‘‘
  • reserved_3 β€” reserved for future use 🌈
  • locked β€” when set to 1, the OS can't change this register. periodt. hands off, the OS does not get a say 🚫

πŸ’œ Description πŸ’œ

so what's the actual tea? this structure is used to read the hardware state of a TPMI feature β€” like, the real state, straight from the hardware, no filter. and then that info is used for debug and for restricting operations for this feature. it's the friend who tells you what's actually going on and also occasionally tells you "no" for your own good. main character energy, honestly 🌟


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/platform/x86/intel/vsec_tpmi.c
  • struct intel_tpmi_pfs_entry(9)
  • struct intel_tpmi_pm_feature(9)
  • struct intel_tpmi_info(9)
  • struct tpmi_info_header(9)

go read those too, they're all in the same friend group, you'll love them πŸ’–


ok tiny warning bestie: read_blocked = you get 0xFFs, and locked = the OS literally cannot touch the register. these are not vibes you can negotiate with, they're just facts πŸ’…

and that's the page!! brought to you by <pink>./drivers/platform/x86/intel</pink>, dated October 2026, from the Kernel API Manual β€” mwah, love u, go read some kernel source πŸ§šβ€β™€οΈπŸ’œπŸŽ€

πŸ“¦ where this page comes from