| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: est.c,v 1.26 2013/11/08 01:41:45 christos Exp $ */ | | 1 | /* $NetBSD: est.c,v 1.27 2013/11/08 19:05:52 msaitoh Exp $ */ |
2 | /* | | 2 | /* |
3 | * Copyright (c) 2003 Michael Eriksson. | | 3 | * Copyright (c) 2003 Michael Eriksson. |
4 | * All rights reserved. | | 4 | * All rights reserved. |
5 | * | | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions | | 7 | * modification, are permitted provided that the following conditions |
8 | * are met: | | 8 | * are met: |
9 | * 1. Redistributions of source code must retain the above copyright | | 9 | * 1. Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * 2. Redistributions in binary form must reproduce the above copyright | | 11 | * 2. Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | | 13 | * documentation and/or other materials provided with the distribution. |
14 | * 3. The name of the author may not be used to endorse or promote products | | 14 | * 3. The name of the author may not be used to endorse or promote products |
| @@ -66,27 +66,27 @@ | | | @@ -66,27 +66,27 @@ |
66 | * - Intel Pentium M Processor Datasheet. | | 66 | * - Intel Pentium M Processor Datasheet. |
67 | * Table 5, Voltage and Current Specifications. | | 67 | * Table 5, Voltage and Current Specifications. |
68 | * http://www.intel.com/design/mobile/datashts/252612.htm | | 68 | * http://www.intel.com/design/mobile/datashts/252612.htm |
69 | * | | 69 | * |
70 | * - Intel Pentium M Processor on 90 nm Process with 2-MB L2 Cache Datasheet | | 70 | * - Intel Pentium M Processor on 90 nm Process with 2-MB L2 Cache Datasheet |
71 | * Table 3-4, 3-5, 3-6, Voltage and Current Specifications. | | 71 | * Table 3-4, 3-5, 3-6, Voltage and Current Specifications. |
72 | * http://www.intel.com/design/mobile/datashts/302189.htm | | 72 | * http://www.intel.com/design/mobile/datashts/302189.htm |
73 | * | | 73 | * |
74 | * - Linux cpufreq patches, speedstep-centrino.c. | | 74 | * - Linux cpufreq patches, speedstep-centrino.c. |
75 | * Encoding of MSR_PERF_CTL and MSR_PERF_STATUS. | | 75 | * Encoding of MSR_PERF_CTL and MSR_PERF_STATUS. |
76 | * http://www.codemonkey.org.uk/projects/cpufreq/cpufreq-2.4.22-pre6-1.gz | | 76 | * http://www.codemonkey.org.uk/projects/cpufreq/cpufreq-2.4.22-pre6-1.gz |
77 | */ | | 77 | */ |
78 | #include <sys/cdefs.h> | | 78 | #include <sys/cdefs.h> |
79 | __KERNEL_RCSID(0, "$NetBSD: est.c,v 1.26 2013/11/08 01:41:45 christos Exp $"); | | 79 | __KERNEL_RCSID(0, "$NetBSD: est.c,v 1.27 2013/11/08 19:05:52 msaitoh Exp $"); |
80 | | | 80 | |
81 | #include <sys/param.h> | | 81 | #include <sys/param.h> |
82 | #include <sys/device.h> | | 82 | #include <sys/device.h> |
83 | #include <sys/kmem.h> | | 83 | #include <sys/kmem.h> |
84 | #include <sys/module.h> | | 84 | #include <sys/module.h> |
85 | #include <sys/sysctl.h> | | 85 | #include <sys/sysctl.h> |
86 | #include <sys/xcall.h> | | 86 | #include <sys/xcall.h> |
87 | | | 87 | |
88 | #include <x86/cpuvar.h> | | 88 | #include <x86/cpuvar.h> |
89 | #include <x86/cputypes.h> | | 89 | #include <x86/cputypes.h> |
90 | #include <x86/cpu_msr.h> | | 90 | #include <x86/cpu_msr.h> |
91 | #include <x86/est.h> | | 91 | #include <x86/est.h> |
92 | #include <x86/specialreg.h> | | 92 | #include <x86/specialreg.h> |
| @@ -524,31 +524,31 @@ static const uint16_t pm90_n725c[] = { | | | @@ -524,31 +524,31 @@ static const uint16_t pm90_n725c[] = { |
524 | | | 524 | |
525 | /* Intel Pentium M processor 725 1.6 GHz, VID #D */ | | 525 | /* Intel Pentium M processor 725 1.6 GHz, VID #D */ |
526 | static const uint16_t pm90_n725d[] = { | | 526 | static const uint16_t pm90_n725d[] = { |
527 | ID16(1600, 1276, BUS100), | | 527 | ID16(1600, 1276, BUS100), |
528 | ID16(1400, 1228, BUS100), | | 528 | ID16(1400, 1228, BUS100), |
529 | ID16(1200, 1164, BUS100), | | 529 | ID16(1200, 1164, BUS100), |
530 | ID16(1000, 1116, BUS100), | | 530 | ID16(1000, 1116, BUS100), |
531 | ID16( 800, 1052, BUS100), | | 531 | ID16( 800, 1052, BUS100), |
532 | ID16( 600, 988, BUS100), | | 532 | ID16( 600, 988, BUS100), |
533 | }; | | 533 | }; |
534 | | | 534 | |
535 | /* Intel Pentium M processor 730 1.6 GHz, 533 MHz FSB */ | | 535 | /* Intel Pentium M processor 730 1.6 GHz, 533 MHz FSB */ |
536 | static const uint16_t pm90_n730[] = { | | 536 | static const uint16_t pm90_n730[] = { |
537 | ID16(1600, 1308, BUS133), | | 537 | ID16(1600, 1308, BUS133), |
538 | ID16(1333, 1260, BUS133), | | 538 | ID16(1333, 1260, BUS133), |
539 | ID16(1200, 1212, BUS133), | | 539 | ID16(1200, 1212, BUS133), |
540 | ID16(1067, 1180, BUS133), | | 540 | ID16(1067, 1180, BUS133), |
541 | ID16( 800, 988, BUS133), | | 541 | ID16( 800, 988, BUS133), |
542 | }; | | 542 | }; |
543 | | | 543 | |
544 | /* Intel Pentium M processor 735 1.7 GHz, VID #A */ | | 544 | /* Intel Pentium M processor 735 1.7 GHz, VID #A */ |
545 | static const uint16_t pm90_n735a[] = { | | 545 | static const uint16_t pm90_n735a[] = { |
546 | ID16(1700, 1340, BUS100), | | 546 | ID16(1700, 1340, BUS100), |
547 | ID16(1400, 1244, BUS100), | | 547 | ID16(1400, 1244, BUS100), |
548 | ID16(1200, 1180, BUS100), | | 548 | ID16(1200, 1180, BUS100), |
549 | ID16(1000, 1116, BUS100), | | 549 | ID16(1000, 1116, BUS100), |
550 | ID16( 800, 1052, BUS100), | | 550 | ID16( 800, 1052, BUS100), |
551 | ID16( 600, 988, BUS100), | | 551 | ID16( 600, 988, BUS100), |
552 | }; | | 552 | }; |
553 | | | 553 | |
554 | /* Intel Pentium M processor 735 1.7 GHz, VID #B */ | | 554 | /* Intel Pentium M processor 735 1.7 GHz, VID #B */ |
| @@ -573,30 +573,30 @@ static const uint16_t pm90_n735c[] = { | | | @@ -573,30 +573,30 @@ static const uint16_t pm90_n735c[] = { |
573 | | | 573 | |
574 | /* Intel Pentium M processor 735 1.7 GHz, VID #D */ | | 574 | /* Intel Pentium M processor 735 1.7 GHz, VID #D */ |
575 | static const uint16_t pm90_n735d[] = { | | 575 | static const uint16_t pm90_n735d[] = { |
576 | ID16(1700, 1276, BUS100), | | 576 | ID16(1700, 1276, BUS100), |
577 | ID16(1400, 1212, BUS100), | | 577 | ID16(1400, 1212, BUS100), |
578 | ID16(1200, 1148, BUS100), | | 578 | ID16(1200, 1148, BUS100), |
579 | ID16(1000, 1100, BUS100), | | 579 | ID16(1000, 1100, BUS100), |
580 | ID16( 800, 1052, BUS100), | | 580 | ID16( 800, 1052, BUS100), |
581 | ID16( 600, 988, BUS100), | | 581 | ID16( 600, 988, BUS100), |
582 | }; | | 582 | }; |
583 | | | 583 | |
584 | /* Intel Pentium M processor 740 1.73 GHz, 533 MHz FSB */ | | 584 | /* Intel Pentium M processor 740 1.73 GHz, 533 MHz FSB */ |
585 | static const uint16_t pm90_n740[] = { | | 585 | static const uint16_t pm90_n740[] = { |
586 | ID16(1733, 1356, BUS133), | | 586 | ID16(1733, 1356, BUS133), |
587 | ID16(1333, 1212, BUS133), | | 587 | ID16(1333, 1212, BUS133), |
588 | ID16(1067, 1100, BUS133), | | 588 | ID16(1067, 1100, BUS133), |
589 | ID16( 800, 988, BUS133), | | 589 | ID16( 800, 988, BUS133), |
590 | }; | | 590 | }; |
591 | | | 591 | |
592 | /* Intel Pentium M processor 745 1.8 GHz, VID #A */ | | 592 | /* Intel Pentium M processor 745 1.8 GHz, VID #A */ |
593 | static const uint16_t pm90_n745a[] = { | | 593 | static const uint16_t pm90_n745a[] = { |
594 | ID16(1800, 1340, BUS100), | | 594 | ID16(1800, 1340, BUS100), |
595 | ID16(1600, 1292, BUS100), | | 595 | ID16(1600, 1292, BUS100), |
596 | ID16(1400, 1228, BUS100), | | 596 | ID16(1400, 1228, BUS100), |
597 | ID16(1200, 1164, BUS100), | | 597 | ID16(1200, 1164, BUS100), |
598 | ID16(1000, 1116, BUS100), | | 598 | ID16(1000, 1116, BUS100), |
599 | ID16( 800, 1052, BUS100), | | 599 | ID16( 800, 1052, BUS100), |
600 | ID16( 600, 988, BUS100), | | 600 | ID16( 600, 988, BUS100), |
601 | }; | | 601 | }; |
602 | | | 602 | |