|
confirmed
suggested
SpeedStep
|
Intel Platform IDs
The IA32_PLATFORM_ID MSR (0x17) is present on all family 6 and later intel
CPUs starting with Deschutes (family 6, model 5) to provide a finer level of
identification than provided by CPUID. It is
only intended for use by microcode loaders to allow different updates for
different platforms/packages. Intel don't seem to provide any information on
how to map the ID to a platform/package, and I
couldn't find much info on the web -- hence this page. By
cross-referencing microcode update headers with Specification Updates and
testing a selection of CPUs it should be possible to determine the mapping.
The actual platform ID is only bits 50-52 of MSR 0x17, which are
interpreted as a 3-bit number. For microcode updates the number indicates a bit
position in a byte of the header. When used in conjunction with the level 2
(and in a few cases also level 3) cache size, the platform ID forms a more
precise identification method than the CPUID brand ID (the brand ID may still
be needed to determine Xeon DP vs. MP).
Family 6 mobile platforms seem to have odd IDs (bit 50 == 1), wheras desktop
platforms are even (bit 50 == 0). For Coppermines (and others?) MSR 0x17 also
encodes the current multiplier and can be used to determine if SpeedStep is
present, see below for more information.
According to intel (here) bit 28 being set on Conroe and later family 6 chips denotes a mobile platform. Bit 21 in MSR 0x2C apparently serves the same function on Northwood and later family F chips, although they state that there are exceptions (family F model 4 with CPUID.1.EBX[23:16] > 2 is given as an example).
If you can add to or correct any of this information then please email x86test@vortex.prodigynet.co.uk.
Confirmed Values
| Commercial name |
Codename |
Stepping |
CPUID sig. |
Package |
Mult. |
sSpec |
Platform ID |
| Pentium Pro |
P6 |
sB1 |
0x0619 |
skt 8 CPGA |
variable |
SL22T |
none |
| Pentium II |
Klamath |
C0 |
0x0633 |
slot 1 SECC |
variable |
SL265 |
none |
| Pentium II |
Klamath |
C1 |
0x0634 |
slot 1 SECC |
variable |
SL28R |
none |
| Pentium II |
Deschutes |
B0 |
0x0652 |
slot 1 SECC |
3.5 |
SL2U3 |
0 |
| Pentium II |
Deschutes |
B0 |
0x0652 |
slot 1 SECC |
4.0 |
SL2U6 |
0 |
| Pentium II OverDrive |
P6T (Deschutes) |
B0 |
0x1632 |
skt 8 module |
5.0 |
SL2KE |
0 |
| Celeron |
Mendocino |
A0 |
0x0660 |
slot 1 SEPP |
4.5 |
SL32A |
0 |
| Celeron |
Mendocino |
A0 |
0x0660 |
slot 1 SEPP |
5.0 |
SL2WN |
0 |
| Pentium III |
Katmai |
B0 |
0x0672 |
slot 1 |
? |
? |
0 |
| Coppermine FC-PGA and μPGA2 confirmed
for many chips, see below. |
| Core Duo T2300E |
Yonah |
C0 |
0x06e8 |
S479 FC-μPGA |
10.0 |
SL9DM |
5 |
| Pentium 4 |
Willamette |
D0 |
0x0F12 |
S478 FC-μPGA2 |
18.0 |
? |
2 |
| Pentium 4 |
Northwood |
D1 |
0x0F29 |
S478 FC-μPGA2 |
15.0 |
SL6WK |
2 |
| Pentium 4 |
Prescott |
E0 |
0x0F41 |
S478 FC-μPGA2 |
16.0 |
SL88K |
2 |
| Xeon (1MB) |
Nocona |
E0 |
0x0F41 |
S604 FC-μPGA4 |
18.0 |
SL7PH |
0 |
The following were provided by email or infered from reports on the web:
| Commercial name |
Codename |
Stepping |
CPUID sig. |
Package |
Mult. |
sSpec |
Platform ID |
Source |
| Pentium 4-M |
Northwood |
C1 |
0x0F27 |
S478 FC-μPGA |
18.0 |
SL6FH |
3 |
x86info report |
| Xeon 5030 |
Dempsey |
C1 |
0x0F64 |
socket J / 771 (FC-LGA6) |
16.0 |
SL96E |
0 |
Udo |
| Xeon 5130 |
Woodcrest |
B2 |
0x06F6 |
socket J / 771 (FC-LGA6) |
6.0 |
SL9RX |
2 |
Udo |
| C2D T7300 |
Merom |
E1 |
0x06FA |
S479 FC-μPGA |
10.0 |
SLA2G |
7 |
RightMark report |
| C2Q Q6600 |
Kentsfield |
G0 |
0x06FB |
socket 775 (FC-LGA6) |
9.0 |
SLACR |
4 |
CPU-Z report |
| Pentium E2140 |
Conroe (1MB) |
M0 |
0x06FD |
socket 775 (FC-LGA6) |
8.0 |
SLA93 |
0 |
CPU-Z report |
| Celeron-M 530 |
Conroe-L |
A1 |
0x10661 |
S479 FC-μPGA |
13.0 |
SLA2G |
7 |
CPU-Z report |
| Celeron 220 |
Conroe-L |
A1 |
0x10661 |
479-ball FC-μBGA |
9.0 |
??? |
2 |
RightMark+CPU-Z report |
Suggested Values
The values below are incomplete and many may be incorrect. They were
determined by comparing
microcode update headers with the
available packages for each stepping in Specification Updates. Confirmed values
are in bold.
- P6 [family 6, model 1]
- all socket 8, platform ID not supported.
- P6T (Deschutes core) [family 6, model 3, step 2, type 1]
- Klamath [family 6, model 3, step ≠ 2, type 0]
- all slot 1, platform ID not supported.
- Deschutes / Tonga / Covington / Drake [family 6, model 5]
- 0: slot 1
- 1: ???
- 2: slot 2
- 3: ???
- 5: ???
- 7: ???
- Mendocino [family 6, model 6, step < 8]
- 0: slot 1 (SEPP, 540-ball PBGA chip)
- 4: socket 370 (PPGA)
- Dixon [family 6, model 6, step ≥ 8]
- 1: mini-cartridge (615-ball FC-BGA chip)?
- 3: MMC1/2 (615-ball FC-BGA chip with 82433DX
(MMC1) or 82443BX (MMC2) northbridge)
- 5: 615 contact FC-BGA (BGA) with optional μPGA
interposer (Micro-PGA)
- Katmai / Tanner [family 6, model 7]
- Coppermine [family 6, model 8]
- 0: slot 1 (495-ball FC-BGA chip)
- 2: slot 2 (495-ball FC-BGA chip)
- 3: MMC1/2
- 4: socket 370 (FC-PGA / FC-PGA2)
- 5: 495 contact FC-BGA (BGA2) with optional
μPGA interposer (μPGA2)
- 7: 479 contact FC-μPGA / FC-BGA
- Banias [family 6, model 9]
- 4: socket 370 (FC-PGA2) ???
- 5: 479 contact FC-μPGA / FC-BGA
- 7: ???
- Cascades (Coppermine Xeon with 1/2MB L2) [family 6, model A]
- 2: slot 2 (495-ball FC-BGA chip)
- Tualatin [family 6, model B]
- 4: socket 370 (FC-PGA2)
- 5: 479 contact FC-μPGA / FC-BGA
- Dothan [family 6, model D]
- 5: 479 contact FC-μPGA / FC-BGA
- Yonah / Sossaman [family 6, model E]
- Conroe / Allendale / Woodcrest / Merom / Kentsfield / Clovertown [family 6, model F]
platform IDs provided by Ray Hinchliffe, author of
SIV.
- 0: socket 775 (FC-LGA6) Conroe/Allendale
- 2: socket J / 771 (FC-LGA6)
- 4: socket 775 (FC-LGA6) Kentsfield
- 5: 479 contact FC-μPGA ?
- 6: socket J / 771 (FC-LGA6) (Clovertown)
- 7: 479 contact FC-μPGA
- Conroe-L / Merom-L [family 6, model 0x16 (22 decimal)]
- ?: socket 775 (FC-LGA6)
- 2: 479 contact FC-μBGA (celeron 220)
- 7: 479 contact FC-μPGA
- Yorkfield / Penryn [family 6, model 0x17 (23 decimal)]
- ?: socket J / 771 (FC-LGA6)
- ?: socket 775 (FC-LGA6)
- ?: socket P / 479 (FC-μPGA)
- Willamette / Foster [family F, model 0/1]
- 0: socket 423 (OLGA on PGA interposer)
- 1: socket 603 (OLGA on μPGA interposer)
- 2: socket 478 (FC-PGA2)
- Northwood / Prestonia / Gallatin [family F, model 2]
- 0: socket 775 FC-LGA4?
- 1: socket 603 (OLGA on μPGA interposer) / socket 604
(FC-PGA2)
- 2: socket 478 (FC-PGA2)
- 3: socket 478 (FC-PGA) mobile
- 4: socket 775 (FC-LGA4)?
- Prescott / Nocona / Irwindale / Cranford / Potomac / Smithfield /
Paxville [family F, model 3/4]
- 0: socket 604 (FC-PGA4) (Nocona at least)
- 1: socket 604 (FC-PGA4) (Potomac 667MHz FSB only?)?
- 2: socket 478 FC-PGA2
- 3: ???
- 4: socket 775 (FC-LGA4)
- 5: socket 604 (FC-PGA4) (Cranford 667MHz FSB only?)?
- 7: ???
- Cedar Mill / Presler / Dempsey / Tulsa [family F, model 6]
platform IDs 0,2 provided by Ray Hinchliffe, author
of SIV.
platform IDs 1,5 from Xeon 71xx Specification
Update (314554-001).
- 0: socket J / 771 (FC-LGA6)
- 1: socket 604 (FC-PGA6) Xeon MP 7130/7140 (8/16MB L3)
- 2: socket 775 (FC-LGA6)
- 4: ???
- 5: socket 604 (FC-PGA6) Xeon MP 7110/7120 (4MB L3)
Packaging Terminology
Here I will try to justify the naming I use for packaging. Intel seem to mix
and match conventions to suit themselves.
Interface types:
- PGA: Pin Grid Array (nominal 0.1in/2.54mm spacing)
- micro-PGA/mPGA/μPGA: PGA with small grid spacing (nominal 0.05in,
1.27mm)
- LGA: Land Grid Array, package has flat lands instead of pins
(nominal 0.05in/1.27mm spacing).
- BGA: Ball Grid Array, LGA package with solder balls pre-applied to lands
for easy surface-mount assembly.
Note that a surface-mounted LGA package is the same as a surface-mounted BGA
package so the names can be used interchangably when refering to an assembled
module.
Substrate abbreviations:
- C: Ceramic e.g. CPGA for 386,486,P54,P55
- P: Plastic e.g. PPGA for P54,P55,S370 mendocino, PLGA/PBGA for slot-1
klamath/deschutes/mendocino
- O: Organic e.g. OPGA for coppermine etc., OLGA for willamette etc.
Package styles:
- FC: Flip-Chip, die mounted upside-down with underside of die exposed
- FC-2: FC with Integral Heat Spreader (IHS) covering die
- FC-4: similar to FC-2, used on prescott based P4/PD/Xeon chips
- FC-6: similar to FC-2, used on cedar-mill based P4/PD/Xeon and conroe based
C2D/Xeon chips
Usually either a substrate abbreviation or package style is used in a name,
but not both – the other is assumed e.g. FC-PGA usually implies an
organic substrate. The micro/m/μ prefix on the interface type is often
dropped when it is obvious e.g. when the socket type is specified.
Coppermine SpeedStep detection
SpeedStep was introduced for the Mobile Pentium III to allow the processor
to be switched between two multiplier/voltage states. However, SpeedStep was
not used on all mobile P3s, and was not used at all on celerons. Detecting the
presence of SpeedStep on a coppermine (family=6, model=8) without actually attempting a speed transition requires:
- check it's a P3: L2 cache = 256KB.
- check it's a mobile: platform ID is odd [3 = MMC, 5 = μPGA2,
7 = FC-μPGA/FC-μBGA].
- SpeedStep present if either of bits 56,57 of platform ID MSR (0x17) are
set.
This last point is taken from the linux cpufreq SpeedStep driver (linux/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c). I recently got a load of mobile coppermine chips, so I thought I'd have a look at the platform ID MSR values to check that this test makes sense.
| Commercial name |
Stepping |
Package |
Multipliers1 |
sSpec |
MSR 0x17 [63:48]2 |
[62:59]3 |
[57]4 |
[58, 56:53]5 |
[52:50]6 |
[49:48]7 |
| Pentium III |
A2 |
FC-PGA |
4.5 |
SL3VG |
0x3050 |
6 |
0 |
00010 |
4 |
00 |
| Mobile Pentium III |
A2 |
μPGA2 |
5.0 |
SL3DW |
0x0054 |
0 |
0 |
00010 |
5 |
00 |
| Pentium III |
A2 |
FC-PGA |
5.5 |
SL3QA |
0x2052 |
4 |
0 |
00010 |
4 |
10 |
| Mobile Pentium III |
B0 |
μPGA2 |
5.0 |
SL43P |
0x0057 |
0 |
0 |
00010 |
5 |
11 |
| Mobile Celeron |
B0 |
μPGA2 |
5.5 |
SL3ZF |
0x2437 |
4 |
0 |
10001 |
5 |
11 |
| Mobile Celeron |
B0 |
μPGA2 |
5.5 |
SL3ZF |
0x2437 |
4 |
0 |
10001 |
5 |
11 |
| Pentium III |
C0 |
FC-PGA |
6.0 |
SL4CD |
0x5950 |
b |
0 |
01010 |
4 |
00 |
| Mobile Pentium III |
C0 |
μPGA2 |
6.0/5.0 |
SL4JX |
0x???? / 0x0254 |
? / 0 |
1 |
00010 |
5 |
00 |
| Mobile Pentium III |
C0 |
μPGA2 |
6.5/5.0 |
SL4JY |
0x???? / 0x0357 |
? / 0 |
1 |
01010 |
5 |
11 |
| Mobile Celeron |
C0 |
μPGA2 |
6.5 |
SL4JW |
0x7c36 |
f |
0 |
10001 |
5 |
10 |
| Pentium III |
C0 |
FC-PGA |
6.5 |
? |
0x7951 |
f |
0 |
01010 |
4 |
01 |
| Pentium III |
C0 |
FC-PGA |
6.5 |
SL4CB |
0x7953 |
f |
0 |
01010 |
4 |
11 |
| Mobile Pentium III |
C0 |
μPGA2 |
7.0/5.5 |
SL4JZ |
0x???? / 0x2356 |
? / 4 |
1 |
01010 |
5 |
10 |
| Mobile Celeron |
C0 |
μPGA2 |
7.0 |
SL4GX |
0x4c37 |
9 |
0 |
10001 |
5 |
11 |
| Pentium III |
C0 |
FC-PGA |
7.5 |
SL4C8 |
0x6950 |
d |
0 |
01010 |
4 |
00 |
| Pentium III |
C0 |
FC-PGA |
7.5 |
SL4C8 |
0x6952 |
d |
0 |
01010 |
4 |
10 |
| Pentium III |
C0 |
FC-PGA |
7.5 |
SL4MF |
0x6953 |
d |
0 |
01010 |
4 |
11 |
| Mobile Pentium III |
C0 |
μPGA2 |
7.5/6.0 |
SL4K2 |
0x???? / 0x5b54 |
? / b |
1 |
01010 |
5 |
00 |
| Celeron |
C0 |
FC-PGA |
8.5 |
SL5GA |
0x3630 |
6 |
1 |
10001 |
4 |
00 |
| Celeron |
C0 |
FC-PGA |
10.5 |
SL4P8 |
0x7f31 |
f |
1 |
11001 |
4 |
01 |
| Pentium III |
D0 |
FC-PGA |
7.5 |
SL52R |
0x6952 |
d |
0 |
01010 |
4 |
10 |
| Pentium III |
D0 |
FC-PGA |
7.5 |
SL52R |
0x6953 |
d |
0 |
01010 |
4 |
11 |
| Celeron |
D0 |
FC-PGA |
8.0 |
SL54P |
0x5633 |
a |
1 |
10001 |
4 |
11 |
| Mobile Pentium III |
D0 |
μPGA2 |
8.0/6.5 |
SL53M |
0x???? / 0x7b57 |
? / a |
1 |
01010 |
5 |
11 |
| Mobile Pentium III |
D0 |
μPGA2 |
8.5/7.0 |
SL53L |
0x???? / 0x4b55 |
? / a |
1 |
01010 |
5 |
01 |
| Mobile Pentium III |
D0 |
μPGA2 |
10.0/7.0 |
? |
0x5a55 / 0x4a55 |
b / 9 |
1 |
00010 |
5 |
01 |
| Mobile Pentium III |
D0 |
μPGA2 |
10.0/7.0 |
SL5TF |
0x???? / 0x4a57 |
? / 9 |
1 |
00010 |
5 |
11 |
1 Chips with SpeedStep have two possible multipliers, those
without only have a single multiplier.
2 In all cases bits [1:47], 55 and 63 of MSR 0x17 were all
zero.
3 Bits [62:59] appear to represent the current multiplier in the
same way as bits [25:22] of the Power-on Configuration MSR (0x2a).
4 Bit 57 is 1 on chips with SpeedStep. It appears to
be 0 on all other chips except desktop celerons.
5 Bit 58 appears to be 1 on all celerons and 0 on all P3s.
6 Platform ID
7 Bits [48:47] appear to be quite random, they even differ for
chips with the same sSpec!
|