Subject: kern/28773: EnhancedSpeed Step support for newer Pentium M processors
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Takahiro Kambe <taca@back-street.net>
List: netbsd-bugs
Date: 12/24/2004 12:51:00
>Number:         28773
>Category:       kern
>Synopsis:       EnhancedSpeed Step support for newer Pentium M processors
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Dec 24 12:51:00 +0000 2004
>Originator:     Takahiro Kambe
>Release:        NetBSD 2.99.11
>Organization:
Takahiro Kambe
>Environment:
	
	
System: NetBSD reef.back-street.net 2.99.11 NetBSD 2.99.11 (CF-R3E) #11: Fri Dec 24 15:04:17 JST 2004 taca@reef.back-street.net:/var/obj/sys/arch/i386/compile/CF-R3E i386
Architecture: i386
Machine: i386
>Description:
	Newer Pentium M processor is deteced existence of Enhanced SpeedStep
	support but marked as "unknown":

cpu0: "Intel(R) Pentium(R) M processor 1.10GHz"
cpu0: running without thermal monitor!
cpu0: Enhanced SpeedStep running at 1100 MHz (940 mV)
cpu0: unknown Enhanced SpeedStep CPU

>How-To-Repeat:
	Boot NetBSD on newer notebook PC.
>Fix:
	I found 723, 733 and 738 model from Intel's data sheet.
	After apply the patch:

cpu0: "Intel(R) Pentium(R) M processor 1.10GHz"
cpu0: running without thermal monitor!
cpu0: Enhanced SpeedStep running at 1100 MHz (940 mV)
cpu0: Enhanced SpeedStep frequencies available (MHz): 1100 1000 900 800 600


Index: sys/arch/i386/i386/est.c
===================================================================
RCS file: /usr/local/share/cvs/src/sys/arch/i386/i386/est.c,v
retrieving revision 1.1.1.1.2.4
diff -u -p -r1.1.1.1.2.4 est.c
--- sys/arch/i386/i386/est.c	28 Oct 2004 07:02:37 -0000	1.1.1.1.2.4
+++ sys/arch/i386/i386/est.c	24 Dec 2004 05:27:20 -0000
@@ -249,6 +249,35 @@ static const struct fq_info pentium_m_n7
 	{  600,  988 }
 };
 
+/* Intel Pentium M processor 723 1.0 GHz */
+static const struct fq_info pentium_m_n723[] = {
+	{ 1000, 940 },
+	{  900, 908 },
+	{  800, 876 },
+	{  600, 812 }
+};
+
+/* Intel Pentium M processor 733 1.1 GHz */
+static const struct fq_info pentium_m_n733[] = {
+	{ 1100, 940 },
+	{ 1000, 920 },
+	{  900, 892 },
+	{  800, 876 },
+	{  600, 812 }
+};
+
+/* Intel Pentium M processor 738 1.4 GHz */
+static const struct fq_info pentium_m_n738[] = {
+	{ 1400, 1116 },
+	{ 1300, 1116 },
+	{ 1200, 1100 },
+	{ 1100, 1068 },
+	{ 1000, 1052 },
+	{  900, 1036 },
+	{  800, 1020 },
+	{  600,  988 }
+};
+
 struct fqlist {
 	const char *brand_tag;
 	size_t tablec;
@@ -275,6 +304,9 @@ static const struct fqlist pentium_m_dot
 	ENTRY("1.80", pentium_m_n745),
 	ENTRY("2.00", pentium_m_n755),
 	ENTRY("2.10", pentium_m_n765),
+	ENTRY("1.00", pentium_m_n723),
+	ENTRY("1.10", pentium_m_n733),
+	ENTRY("1.40", pentium_m_n738),
 };
 #undef ENTRY
 

>Unformatted: