STRUCT PMC_REG_MAP(9)
π NAME π
okay so bestie, this is struct pmc_reg_map from the Kernel API Manual, section 9, and the NAME line says: struct pmc_reg_map β Structure used to define parameter unique to a. yes, it really does stop at βaβ β iconic cliffhanger energy, no cap π
.
β¨ SYNOPSIS β¨
hereβs the whole struct lineup, character for character, because we respect the lore π«Ά:
struct pmc_reg_map {
const struct pmc_bit_map **pfear_sts;
const struct pmc_bit_map *mphy_sts;
const struct pmc_bit_map *pll_sts;
const struct pmc_bit_map **slps0_dbg_maps;
const struct pmc_bit_map *ltr_show_sts;
const struct pmc_bit_map *msr_sts;
const struct pmc_bit_map **lpm_sts;
const struct pmc_bit_map **s0ix_blocker_maps;
const u32 slp_s0_offset;
const int slp_s0_res_counter_step;
const u32 ltr_ignore_offset;
const int regmap_length;
const u32 ppfear0_offset;
const int ppfear_buckets;
const u32 pm_cfg_offset;
const int pm_read_disable_bit;
const u32 slps0_dbg_offset;
const u32 ltr_ignore_max;
const u32 pm_vric1_offset;
const u32 s0ix_blocker_offset;
const u32 num_s0ix_blocker;
const u32 blocker_req_offset;
const int lpm_num_maps;
const int lpm_num_modes;
const int lpm_res_counter_step_x2;
const u32 lpm_sts_latch_en_offset;
const u32 lpm_en_offset;
const u32 lpm_priority_offset;
const u32 lpm_residency_offset;
const u32 lpm_status_offset;
const u32 lpm_live_status_offset;
const u32 etr3_offset;
const u8 *lpm_reg_index;
const u32 pson_residency_offset;
const u32 pson_residency_counter_step;
const u32 lpm_req_guid;
};
π Members π
okay so this Members list is a lil selective β some fields are just vibing in the synopsis without their own blurb. hereβs every member description the page actually gives, bestie π:
pfear_stsβ Maps name of IP block toPPFEAR*bitmphy_stsβ Maps name of MPHY lane to MPHY status lane status bitpll_stsβ Maps name of PLL to corresponding bit statusslps0_dbg_mapsβ Array ofSLP_S0_DBG*registers containing debug infoltr_show_stsβ Maps PCH IP Names to their MMIO register offsetss0ix_blocker_mapsβ Maps name of IP block to S0ix blocker counterslp_s0_offsetβ PWRMBASE offset to read SLP_S0 residencyltr_ignore_offsetβ PWRMBASE offset to read/write LTR ignore bitregmap_lengthβ Length of memory to map from PWRMBASE address to accessppfear0_offsetβ PWRMBASE offset to readPPFEAR*ppfear_bucketsβ Number of 8 bits blocks to read all IP blocks from PPFEARpm_cfg_offsetβ PWRMBASE offset toPM_CFGregisterpm_read_disable_bitβ Bit index to readPMC_READ_DISABLEslps0_dbg_offsetβ PWRMBASE offset toSLP_S0_DEBUG_REG*s0ix_blocker_offsetβ PWRMBASE offset to S0ix blocker counternum_s0ix_blockerβ Number of S0ix blockersblocker_req_offsetβ Telemetry offset to S0ix blocker low power mode substate requirement tablelpm_req_guidβ Telemetry GUID to read low power mode substate requirement table
π Description π
Every PCH is out here with its own unique set of register offsets and bit indexes β¨ this structure captures all of that so there can be a common implementation β itβs giving shared-codebase main character energy, periodt π .
π SEE ALSO π
Kernel file ./drivers/platform/x86/intel/pmc/core.h, plus struct pmc_info(9), struct pmc(9), struct pmc_dev(9), and struct pmc_dev_info(9) β go read those next, bestie ππ¦.
and thatβs the tea β this page is from ./drivers/platform/x86/intel/pmc, dated October 2026, and itβs literally titled struct pmc_reg_map(9) β bye bestie, go read some kernel code ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms