STRUCT CPUCP_INFO(9)
π struct cpucp_info(9) β the Kernel API Manual page you've been waiting for
okay so bestie, picture this: struct cpucp_info is literally the info packet that CpuCP hands over, and it's everything the host's driver needs to function. that's it. that's the vibe. it's from the Kernel API Manual and it's giving "load-bearing struct" energy, ngl. π«Ά
β¨ SYNOPSIS β¨
struct cpucp_info {
struct cpucp_sensor sensors[CPUCP_MAX_SENSORS];
__u8 kernel_version[VERSION_MAX_LEN];
__le32 reserved1;
__le32 card_type;
__le32 card_location;
__le32 cpld_version;
__le32 infineon_version;
__u8 fuse_version[VERSION_MAX_LEN];
__u8 thermal_version[VERSION_MAX_LEN];
__u8 cpucp_version[VERSION_MAX_LEN];
__le32 infineon_second_stage_version;
__le64 dram_size;
char card_name[CARD_NAME_MAX_LEN];
__le64 tpc_binning_mask;
__le64 decoder_binning_mask;
__u8 sram_binning;
__u8 dram_binning_mask;
__u8 memory_repair_flag;
__u8 edma_binning_mask;
__u8 xbar_binning_mask;
__u8 interposer_version;
__u8 substrate_version;
__u8 eq_health_check_supported;
struct cpucp_security_info sec_info;
__le32 cpld_timestamp;
__u8 pll_map[PLL_MAP_LEN];
__le64 mme_binning_mask;
__u8 fw_os_version[VERSION_MAX_LEN];
};
like, look at all those fields. she's thorough. she contains multitudes. π
π Members π
sensorsβ the whole description of which sensors are available. slay.kernel_versionβ the CpuCP linux kernel version. yes, the kernel has a version and here it is.card_typeβ the card configuration type.card_locationβ okay so in a server, each card has a different connections topology depending on where it's sitting. (this one's relevant for PMC card type, iykyk.)cpld_versionβ the CPLD programmed F/W version.infineon_versionβ the Infineon main DC-DC version.fuse_versionβ silicon production FUSE information. literal silicon lore.thermal_versionβ the thermald S/W version.cpucp_versionβ the CpuCP S/W version.infineon_second_stage_versionβ the Infineon 2nd stage DC-DC version. second stage, she's got range.dram_sizeβ the available DRAM size.card_nameβ the card name that gets displayed in the HWMON subsystem on the host. it's the card's whole display name, main character energy fr.tpc_binning_maskβ TPC binning mask,1bit per TPC instance (0= functional,1= binned).decoder_binning_maskβ Decoder binning mask,1bit per decoder instance (0= functional,1= binned), maximum1per dcore.sram_binningβ categorizes SRAM functionality:0= fully functional,1= lower-half is not functional,2= upper-half is not functional. pick your fighter.dram_binning_maskβ DRAM binning mask,1bit per dram instance (0= functional1= binned).memory_repair_flagβ eFuse flag indicating memory repair.edma_binning_maskβ EDMA binning mask,1bit per EDMA instance (0= functional1= binned).xbar_binning_maskβ Xbar binning mask,1bit per Xbar instance (0= functional1= binned).interposer_versionβ Interposer version programmed in eFuse.substrate_versionβ Substrate version programmed in eFuse.eq_health_check_supportedβ eq health check feature supported in FW.sec_infoβ security information. that's it. that's the description. mysterious queen. πcpld_timestampβ CPLD programmed F/W timestamp.pll_mapβ Bit map of supported PLLs for current ASIC version.mme_binning_maskβ MME binning mask, and bestie this one's a whole essay so buckle up:- bits
[0:6]<==> dcore0 mme fma bits [7:13]<==> dcore1 mme fma bits[14:20]<==> dcore0 mme ima bits[21:27]<==> dcore1 mme ima
- bits
for each group, if the 6th bit is set then the first 5 bits represent the col's idx [0-31], otherwise these bits are ignored, and col idx 32 is binned. the 7th bit is don't care. (not me needing a snack after reading that π but it's important so there it is, word for word.)
fw_os_versionβ Firmware OS Version.
ngl the reserved1 field is just vibing in the struct up there without its own Members entry. we don't make the rules, we just document them. π
π SEE ALSO π
- Kernel file
./include/linux/habanalabs/cpucp_if.hstructcpucp_security_info(9)β go read that one next, it's the sequel. π¦
and that's the page!! mwah π brought to you by the fine folks over at ./include/linux/habanalabs (that's the source/version, keep it in your notes π) and dated October 2026 β yes, the future, because this struct is ahead of its time. periodt. πβ¨
π¦ 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