Subject: NetBSD-3.0 : Pentium M758 (ThinkPad X41) and Enhanced Speedstepping
To: None <tech-kern@netbsd.org>
From: Anders Mundt Due <amd@pd-house.dk>
List: tech-kern
Date: 01/16/2006 19:14:47
Have a thinkpad (x41) laptop with a Pentium M cpu in, so naturally
looked for speedstepping. It gets detected but not quite as it should
when I've got it hooked up with a PSU:

cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel Pentium M (Dothan) (686-class), 1496.34 MHz, id 0x6d8
cpu0: features
afe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features afe9fbff<PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX>
cpu0: features afe9fbff<FXSR,SSE,SSE2,SS,TM,SBF>
cpu0: features2 180<EST,TM2>
cpu0: "Intel(R) Pentium(R) M processor 1.50GHz"
cpu0: I-cache 32 KB 64B/line 8-way, D-cache 32 KB 64B/line 8-way
cpu0: L2 cache 2 MB 64B/line 8-way
cpu0: using thermal monitor 2
cpu0: Enhanced SpeedStep running at 1500 MHz (1116 mV)
cpu0: Enhanced SpeedStep operating point not in table

It would appear that Thinkpad X41 gets shipped with a Pentium M758 cpu
and that is, for some reason wrapped in #if 0 blocks in
src/sys/arch/i386/i386/est.c

This results in my CPU getting wrongly matched by the system when
booting without a connected PSU where it runs at 600MHz and ends up as:

cpu0: Enhanced SpeedStep running at 600 MHz (988 mV)
cpu0: Enhanced SpeedStep frequencies available (MHz): 1500 1200 1000 800
600

I'm fairly sure that's the Intel Pentium M processor 715 1.5 GHz entry
that's matched.

So I did the quick and dirty thing, seeing as they were there but
0'd out. I put them back in, recompiled and booted a new kernel. So now
it says, with or without the PSU connected:

NetBSD 3.0_STABLE (AMDTP-1.0) #3: Sun Jan 15 14:45:30 CET 2006
        amd@amd-tp.rnd.uni-c.dk:/usr/users/amd/kernel/build
total memory = 1014 MB
avail memory = 985 MB
BIOS32 rev. 0 found at 0xfd750
mainbus0 (root)
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel Pentium M (Dothan) (686-class), 1496.34 MHz, id 0x6d8
cpu0: features
afe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features afe9fbff<PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX>
cpu0: features afe9fbff<FXSR,SSE,SSE2,SS,TM,SBF>
cpu0: features2 180<EST,TM2>
cpu0: "Intel(R) Pentium(R) M processor 1.50GHz"
cpu0: I-cache 32 KB 64B/line 8-way, D-cache 32 KB 64B/line 8-way
cpu0: L2 cache 2 MB 64B/line 8-way
cpu0: using thermal monitor 2
cpu0: Enhanced SpeedStep running at 1500 MHz (1116 mV)
cpu0: Enhanced SpeedStep frequencies available (MHz): 1500 1400 1300
1200 1100 1000 900 800 600
cpu0: calibrating local timer
cpu0: apic clock running at 99 MHz
cpu0: 64 page colors

And it seems to run as smooth as ever.

Should I just send-pr it?

(Should I have attached the diff here?)

/Anders