config: enable Wildcat Lake in LPMD - #124
Open
karanshukla wants to merge 1 commit into
Open
Conversation
karanshukla
marked this pull request as ready for review
July 28, 2026 11:37
karanshukla
added a commit
to karanshukla/wildcat-lake-linux
that referenced
this pull request
Jul 28, 2026
Built and tested a real id_table + config fix for intel_lpmd instead of just relying on --ignore-platform-check, opened as intel/intel-lpmd#124. Doesn't touch the S0ix/ME blocker itself (intel_lpmd is active-idle core-parking, unrelated mechanism), but corrects the stale note about no model-specific config existing for M213.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #123.
Add Wildcat Lake (family 6, model 0xD5/213) support:
id_table[]entry plus a tuned config, same shape as #121 for Arrow Lake-H. This processor just released on the Dell XPS 13 2026, and the LPMD kept silently crashing at boot. The original workaround was to use --ignore-platform-check but I saw a PR and decided I could contribute as well to give the device a bit of a boost.Topology: trust
detect_cpu_topo(), not/sys/devicesorlscpu -eVerified on an Intel Core 5 320 (2 P-cores, 15W TDP).
lscpu -e's L2-instance grouping (4 non-P cores sharing one L2 cluster) looks like a single Skymont-style E-core module, and/sys/devices/cpu_core/cpus/cpu_atom/cpusonly give the P/atom split, not E vs L. Both are misleading here. Intel Reference for the CPU here.Ran the daemon's own CPUID-based detection and it says otherwise:
All 4 non-P cores fail
is_cpu_in_l3()(no L3 in their CPUID leaf 4), so they classify as L, not E. There is no E-core tier on this platform, only P + L (Intel refers to them as Low Power Efficient or LP-E cores). A first draft of this config usedActiveEcores=ALL, which resolves to an empty CPU set on this topology and would leave Balanced/Powersaver mode with zero active cores. Caught by actually running it, not by reading the source.Design
Same pattern as #121: P-cores parked in Balanced/Powersaver, WLT-driven EPP/EPB on the low-power tier.
Balanced and Powersaver land on the same floor here since there's no third tier to drop to.
WLT states, all
ActiveLcores=ALL:WLTTypeMask=3)WLTTypeMask=3merges WLT 0/1 for the same reason as #121: this class of hardware oscillates between them fast enough that splitting them into separate EPP/EPB states is pure sysfs write churn for no benefit.SoC Power Slider config omitted, not yet confirmed present on this sample via the int340x thermal driver.
Files changed
src/lpmd_cpu.c- add model 0xD5 toid_table[]data/intel_lpmd_config_F6_M213.xml- new platform configdata/Makefile.am- register config for installTest plan
upower-devel,libnl3-develneeded, not in this repo's docs)Found 3 config states)Set CPU2 EPP to 0xc0, etc.)