STRUCT PP_HEADER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pp_header(9) β€” the SST-PP header, explained πŸ’–

okay so bestie, welcome to the Kernel API Manual entry for struct pp_header(9). this is genuinely the cutest little bitfield blob and i'm obsessed πŸŽ€

It's the SST-PP (Perf profile) header β€” like, the little label on the front of the box that tells you what's inside. no cap ✨


🌈 SYNOPSIS 🌈

here's the whole vibe, verbatim, do NOT touch:

struct pp_header {
    u64 feature_id :4;
    u64 feature_rev :8;
    u64 level_en_mask :8;
    u64 allowed_level_mask :8;
    u64 reserved0 :4;
    u64 ratio_unit :2;
    u64 block_size :8;
    u64 dynamic_switch :1;
    u64 memory_ratio_unit :2;
    u64 reserved1 :19;
 };

look at her. every field is a u64 with a lil colon number. she's packed, she's precise, she's main character energy πŸ’…


✨ Members ✨

  • feature_id β€” 0=SST-CP, 1=SST-PP, 2=SST-BF, 3=SST-TF. it's giving "which feature am i" energy πŸ¦‹
  • feature_rev β€” the Interface Version number for this SST feature. version check, periodt 🌸
  • level_en_mask β€” the SST-PP level enable/disable fuse mask πŸ”₯
  • allowed_level_mask β€” the Allowed level mask used for dynamic config level switching πŸ‘‘
  • reserved0 β€” Reserved for future use. she's just holding space πŸ’€
  • ratio_unit β€” Frequency ratio unit. 00: 100MHz. All others are reserved. ngl this is the important one 🫢
  • block_size β€” Size of PP block in Qword unit (8 bytes). lowkey a chunky girlie 😭
  • dynamic_switch β€” If set (1), dynamic switching of SST PP is supported ⭐
  • memory_ratio_unit β€” Memory Controller frequency ratio unit. 00: 100MHz, others reserved πŸ’œ
  • reserved1 β€” Reserved for future use. another reserved icon, we stan πŸ™ˆ

πŸ¦‹ Description πŸ¦‹

This structure is used store SST-PP header β€” and this is big β€” it's packed to the same format as defined in the specifications. so like, do not go rearranging her fields, bestie, the spec said what it said πŸ’…


πŸ’– SEE ALSO πŸ’–

  • Kernel file
  • ./drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c struct sst_header(9), struct cp_header(9), struct feature_offset(9), struct levels_offset(9), struct pp_control_offset(9), struct pp_status_offset(9), struct perf_level(9), struct tpmi_per_power_domain_info(9), struct tpmi_sst_struct(9), struct tpmi_sst_common_struct(9), map_cdies(9), map_partition_power_domain_id(9)
go read the whole squad, they're all in the same friend group fr fr 🧚

okay that's the page!! this tea was served fresh from ./drivers/platform/x86/intel/s... πŸ“ and it's dated October 2026 β€” yes, from the future, don't ask πŸ’€ slay, go read your bitfields, ily, bye!! πŸŽ€βœ¨πŸ’œ

πŸ“¦ where this page comes from