Deleted Added
full compact
est.c (148583) est.c (155996)
1/*-
2 * Copyright (c) 2004 Colin Percival
3 * Copyright (c) 2005 Nate Lawson
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted providing that the following conditions
8 * are met:

--- 12 unchanged lines hidden (view full) ---

21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2004 Colin Percival
3 * Copyright (c) 2005 Nate Lawson
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted providing that the following conditions
8 * are met:

--- 12 unchanged lines hidden (view full) ---

21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#include <sys/cdefs.h>
29__FBSDID("$FreeBSD: head/sys/i386/cpufreq/est.c 148583 2005-07-31 06:42:27Z cperciva $");
29__FBSDID("$FreeBSD: head/sys/i386/cpufreq/est.c 155996 2006-02-25 04:55:38Z cperciva $");
30
31#include <sys/param.h>
32#include <sys/bus.h>
33#include <sys/cpu.h>
34#include <sys/kernel.h>
35#include <sys/malloc.h>
36#include <sys/module.h>
37#include <sys/smp.h>

--- 421 unchanged lines hidden (view full) ---

459 /* 90 nm 1.50GHz Pentium M, VID #D */
460 FREQ_INFO(1500, 1276, INTEL_BUS_CLK),
461 FREQ_INFO(1200, 1180, INTEL_BUS_CLK),
462 FREQ_INFO(1000, 1116, INTEL_BUS_CLK),
463 FREQ_INFO( 800, 1052, INTEL_BUS_CLK),
464 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
465 FREQ_INFO( 0, 0, 1),
466};
30
31#include <sys/param.h>
32#include <sys/bus.h>
33#include <sys/cpu.h>
34#include <sys/kernel.h>
35#include <sys/malloc.h>
36#include <sys/module.h>
37#include <sys/smp.h>

--- 421 unchanged lines hidden (view full) ---

459 /* 90 nm 1.50GHz Pentium M, VID #D */
460 FREQ_INFO(1500, 1276, INTEL_BUS_CLK),
461 FREQ_INFO(1200, 1180, INTEL_BUS_CLK),
462 FREQ_INFO(1000, 1116, INTEL_BUS_CLK),
463 FREQ_INFO( 800, 1052, INTEL_BUS_CLK),
464 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
465 FREQ_INFO( 0, 0, 1),
466};
467static freq_info PM_778_90[] = {
468 /* 90 nm 1.60GHz Low Voltage Pentium M */
469 FREQ_INFO(1600, 1116, INTEL_BUS_CLK),
470 FREQ_INFO(1500, 1116, INTEL_BUS_CLK),
471 FREQ_INFO(1400, 1100, INTEL_BUS_CLK),
472 FREQ_INFO(1300, 1084, INTEL_BUS_CLK),
473 FREQ_INFO(1200, 1068, INTEL_BUS_CLK),
474 FREQ_INFO(1100, 1052, INTEL_BUS_CLK),
475 FREQ_INFO(1000, 1052, INTEL_BUS_CLK),
476 FREQ_INFO( 900, 1036, INTEL_BUS_CLK),
477 FREQ_INFO( 800, 1020, INTEL_BUS_CLK),
478 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
479 FREQ_INFO( 0, 0, 1),
480};
481static freq_info PM_758_90[] = {
482 /* 90 nm 1.50GHz Low Voltage Pentium M */
483 FREQ_INFO(1500, 1116, INTEL_BUS_CLK),
484 FREQ_INFO(1400, 1116, INTEL_BUS_CLK),
485 FREQ_INFO(1300, 1100, INTEL_BUS_CLK),
486 FREQ_INFO(1200, 1084, INTEL_BUS_CLK),
487 FREQ_INFO(1100, 1068, INTEL_BUS_CLK),
488 FREQ_INFO(1000, 1052, INTEL_BUS_CLK),
489 FREQ_INFO( 900, 1036, INTEL_BUS_CLK),
490 FREQ_INFO( 800, 1020, INTEL_BUS_CLK),
491 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
492 FREQ_INFO( 0, 0, 1),
493};
467static freq_info PM_738_90[] = {
468 /* 90 nm 1.40GHz Low Voltage Pentium M */
469 FREQ_INFO(1400, 1116, INTEL_BUS_CLK),
470 FREQ_INFO(1300, 1116, INTEL_BUS_CLK),
471 FREQ_INFO(1200, 1100, INTEL_BUS_CLK),
472 FREQ_INFO(1100, 1068, INTEL_BUS_CLK),
473 FREQ_INFO(1000, 1052, INTEL_BUS_CLK),
474 FREQ_INFO( 900, 1036, INTEL_BUS_CLK),
475 FREQ_INFO( 800, 1020, INTEL_BUS_CLK),
476 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
477 FREQ_INFO( 0, 0, 1),
478};
494static freq_info PM_738_90[] = {
495 /* 90 nm 1.40GHz Low Voltage Pentium M */
496 FREQ_INFO(1400, 1116, INTEL_BUS_CLK),
497 FREQ_INFO(1300, 1116, INTEL_BUS_CLK),
498 FREQ_INFO(1200, 1100, INTEL_BUS_CLK),
499 FREQ_INFO(1100, 1068, INTEL_BUS_CLK),
500 FREQ_INFO(1000, 1052, INTEL_BUS_CLK),
501 FREQ_INFO( 900, 1036, INTEL_BUS_CLK),
502 FREQ_INFO( 800, 1020, INTEL_BUS_CLK),
503 FREQ_INFO( 600, 988, INTEL_BUS_CLK),
504 FREQ_INFO( 0, 0, 1),
505};
506static freq_info PM_773G_90[] = {
507 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #G */
508 FREQ_INFO(1300, 956, INTEL_BUS_CLK),
509 FREQ_INFO(1200, 940, INTEL_BUS_CLK),
510 FREQ_INFO(1100, 924, INTEL_BUS_CLK),
511 FREQ_INFO(1000, 908, INTEL_BUS_CLK),
512 FREQ_INFO( 900, 876, INTEL_BUS_CLK),
513 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
514 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
515};
516static freq_info PM_773H_90[] = {
517 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #H */
518 FREQ_INFO(1300, 940, INTEL_BUS_CLK),
519 FREQ_INFO(1200, 924, INTEL_BUS_CLK),
520 FREQ_INFO(1100, 908, INTEL_BUS_CLK),
521 FREQ_INFO(1000, 892, INTEL_BUS_CLK),
522 FREQ_INFO( 900, 876, INTEL_BUS_CLK),
523 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
524 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
525};
526static freq_info PM_773I_90[] = {
527 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #I */
528 FREQ_INFO(1300, 924, INTEL_BUS_CLK),
529 FREQ_INFO(1200, 908, INTEL_BUS_CLK),
530 FREQ_INFO(1100, 892, INTEL_BUS_CLK),
531 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
532 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
533 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
534 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
535};
536static freq_info PM_773J_90[] = {
537 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #J */
538 FREQ_INFO(1300, 908, INTEL_BUS_CLK),
539 FREQ_INFO(1200, 908, INTEL_BUS_CLK),
540 FREQ_INFO(1100, 892, INTEL_BUS_CLK),
541 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
542 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
543 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
544 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
545};
546static freq_info PM_773K_90[] = {
547 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #K */
548 FREQ_INFO(1300, 892, INTEL_BUS_CLK),
549 FREQ_INFO(1200, 892, INTEL_BUS_CLK),
550 FREQ_INFO(1100, 876, INTEL_BUS_CLK),
551 FREQ_INFO(1000, 860, INTEL_BUS_CLK),
552 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
553 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
554 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
555};
556static freq_info PM_773L_90[] = {
557 /* 90 nm 1.30GHz Ultra Low Voltage Pentium M, VID #L */
558 FREQ_INFO(1300, 876, INTEL_BUS_CLK),
559 FREQ_INFO(1200, 876, INTEL_BUS_CLK),
560 FREQ_INFO(1100, 860, INTEL_BUS_CLK),
561 FREQ_INFO(1000, 860, INTEL_BUS_CLK),
562 FREQ_INFO( 900, 844, INTEL_BUS_CLK),
563 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
564 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
565};
566static freq_info PM_753G_90[] = {
567 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #G */
568 FREQ_INFO(1200, 956, INTEL_BUS_CLK),
569 FREQ_INFO(1100, 940, INTEL_BUS_CLK),
570 FREQ_INFO(1000, 908, INTEL_BUS_CLK),
571 FREQ_INFO( 900, 892, INTEL_BUS_CLK),
572 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
573 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
574};
575static freq_info PM_753H_90[] = {
576 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #H */
577 FREQ_INFO(1200, 940, INTEL_BUS_CLK),
578 FREQ_INFO(1100, 924, INTEL_BUS_CLK),
579 FREQ_INFO(1000, 908, INTEL_BUS_CLK),
580 FREQ_INFO( 900, 876, INTEL_BUS_CLK),
581 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
582 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
583};
584static freq_info PM_753I_90[] = {
585 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #I */
586 FREQ_INFO(1200, 924, INTEL_BUS_CLK),
587 FREQ_INFO(1100, 908, INTEL_BUS_CLK),
588 FREQ_INFO(1000, 892, INTEL_BUS_CLK),
589 FREQ_INFO( 900, 876, INTEL_BUS_CLK),
590 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
591 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
592};
593static freq_info PM_753J_90[] = {
594 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #J */
595 FREQ_INFO(1200, 908, INTEL_BUS_CLK),
596 FREQ_INFO(1100, 892, INTEL_BUS_CLK),
597 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
598 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
599 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
600 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
601};
602static freq_info PM_753K_90[] = {
603 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #K */
604 FREQ_INFO(1200, 892, INTEL_BUS_CLK),
605 FREQ_INFO(1100, 892, INTEL_BUS_CLK),
606 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
607 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
608 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
609 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
610};
611static freq_info PM_753L_90[] = {
612 /* 90 nm 1.20GHz Ultra Low Voltage Pentium M, VID #L */
613 FREQ_INFO(1200, 876, INTEL_BUS_CLK),
614 FREQ_INFO(1100, 876, INTEL_BUS_CLK),
615 FREQ_INFO(1000, 860, INTEL_BUS_CLK),
616 FREQ_INFO( 900, 844, INTEL_BUS_CLK),
617 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
618 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
619};
620
621static freq_info PM_733JG_90[] = {
622 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #G */
623 FREQ_INFO(1100, 956, INTEL_BUS_CLK),
624 FREQ_INFO(1000, 940, INTEL_BUS_CLK),
625 FREQ_INFO( 900, 908, INTEL_BUS_CLK),
626 FREQ_INFO( 800, 876, INTEL_BUS_CLK),
627 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
628};
629static freq_info PM_733JH_90[] = {
630 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #H */
631 FREQ_INFO(1100, 940, INTEL_BUS_CLK),
632 FREQ_INFO(1000, 924, INTEL_BUS_CLK),
633 FREQ_INFO( 900, 892, INTEL_BUS_CLK),
634 FREQ_INFO( 800, 876, INTEL_BUS_CLK),
635 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
636};
637static freq_info PM_733JI_90[] = {
638 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #I */
639 FREQ_INFO(1100, 924, INTEL_BUS_CLK),
640 FREQ_INFO(1000, 908, INTEL_BUS_CLK),
641 FREQ_INFO( 900, 892, INTEL_BUS_CLK),
642 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
643 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
644};
645static freq_info PM_733JJ_90[] = {
646 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #J */
647 FREQ_INFO(1100, 908, INTEL_BUS_CLK),
648 FREQ_INFO(1000, 892, INTEL_BUS_CLK),
649 FREQ_INFO( 900, 876, INTEL_BUS_CLK),
650 FREQ_INFO( 800, 860, INTEL_BUS_CLK),
651 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
652};
653static freq_info PM_733JK_90[] = {
654 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #K */
655 FREQ_INFO(1100, 892, INTEL_BUS_CLK),
656 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
657 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
658 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
659 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
660};
661static freq_info PM_733JL_90[] = {
662 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M, VID #L */
663 FREQ_INFO(1100, 876, INTEL_BUS_CLK),
664 FREQ_INFO(1000, 876, INTEL_BUS_CLK),
665 FREQ_INFO( 900, 860, INTEL_BUS_CLK),
666 FREQ_INFO( 800, 844, INTEL_BUS_CLK),
667 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
668};
479static freq_info PM_733_90[] = {
480 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M */
481 FREQ_INFO(1100, 940, INTEL_BUS_CLK),
482 FREQ_INFO(1000, 924, INTEL_BUS_CLK),
483 FREQ_INFO( 900, 892, INTEL_BUS_CLK),
484 FREQ_INFO( 800, 876, INTEL_BUS_CLK),
485 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
486 FREQ_INFO( 0, 0, 1),

--- 37 unchanged lines hidden (view full) ---

524 INTEL(PM_725A_90, 1600, 1340, 600, 988, INTEL_BUS_CLK),
525 INTEL(PM_725B_90, 1600, 1324, 600, 988, INTEL_BUS_CLK),
526 INTEL(PM_725C_90, 1600, 1308, 600, 988, INTEL_BUS_CLK),
527 INTEL(PM_725D_90, 1600, 1276, 600, 988, INTEL_BUS_CLK),
528 INTEL(PM_715A_90, 1500, 1340, 600, 988, INTEL_BUS_CLK),
529 INTEL(PM_715B_90, 1500, 1324, 600, 988, INTEL_BUS_CLK),
530 INTEL(PM_715C_90, 1500, 1308, 600, 988, INTEL_BUS_CLK),
531 INTEL(PM_715D_90, 1500, 1276, 600, 988, INTEL_BUS_CLK),
669static freq_info PM_733_90[] = {
670 /* 90 nm 1.10GHz Ultra Low Voltage Pentium M */
671 FREQ_INFO(1100, 940, INTEL_BUS_CLK),
672 FREQ_INFO(1000, 924, INTEL_BUS_CLK),
673 FREQ_INFO( 900, 892, INTEL_BUS_CLK),
674 FREQ_INFO( 800, 876, INTEL_BUS_CLK),
675 FREQ_INFO( 600, 812, INTEL_BUS_CLK),
676 FREQ_INFO( 0, 0, 1),

--- 37 unchanged lines hidden (view full) ---

714 INTEL(PM_725A_90, 1600, 1340, 600, 988, INTEL_BUS_CLK),
715 INTEL(PM_725B_90, 1600, 1324, 600, 988, INTEL_BUS_CLK),
716 INTEL(PM_725C_90, 1600, 1308, 600, 988, INTEL_BUS_CLK),
717 INTEL(PM_725D_90, 1600, 1276, 600, 988, INTEL_BUS_CLK),
718 INTEL(PM_715A_90, 1500, 1340, 600, 988, INTEL_BUS_CLK),
719 INTEL(PM_715B_90, 1500, 1324, 600, 988, INTEL_BUS_CLK),
720 INTEL(PM_715C_90, 1500, 1308, 600, 988, INTEL_BUS_CLK),
721 INTEL(PM_715D_90, 1500, 1276, 600, 988, INTEL_BUS_CLK),
722 INTEL(PM_778_90, 1600, 1116, 600, 988, INTEL_BUS_CLK),
723 INTEL(PM_758_90, 1500, 1116, 600, 988, INTEL_BUS_CLK),
532 INTEL(PM_738_90, 1400, 1116, 600, 988, INTEL_BUS_CLK),
724 INTEL(PM_738_90, 1400, 1116, 600, 988, INTEL_BUS_CLK),
725 INTEL(PM_773G_90, 1300, 956, 600, 812, INTEL_BUS_CLK),
726 INTEL(PM_773H_90, 1300, 940, 600, 812, INTEL_BUS_CLK),
727 INTEL(PM_773I_90, 1300, 924, 600, 812, INTEL_BUS_CLK),
728 INTEL(PM_773J_90, 1300, 908, 600, 812, INTEL_BUS_CLK),
729 INTEL(PM_773K_90, 1300, 892, 600, 812, INTEL_BUS_CLK),
730 INTEL(PM_773L_90, 1300, 876, 600, 812, INTEL_BUS_CLK),
731 INTEL(PM_753G_90, 1200, 956, 600, 812, INTEL_BUS_CLK),
732 INTEL(PM_753H_90, 1200, 940, 600, 812, INTEL_BUS_CLK),
733 INTEL(PM_753I_90, 1200, 924, 600, 812, INTEL_BUS_CLK),
734 INTEL(PM_753J_90, 1200, 908, 600, 812, INTEL_BUS_CLK),
735 INTEL(PM_753K_90, 1200, 892, 600, 812, INTEL_BUS_CLK),
736 INTEL(PM_753L_90, 1200, 876, 600, 812, INTEL_BUS_CLK),
737 INTEL(PM_733JG_90, 1100, 956, 600, 812, INTEL_BUS_CLK),
738 INTEL(PM_733JH_90, 1100, 940, 600, 812, INTEL_BUS_CLK),
739 INTEL(PM_733JI_90, 1100, 924, 600, 812, INTEL_BUS_CLK),
740 INTEL(PM_733JJ_90, 1100, 908, 600, 812, INTEL_BUS_CLK),
741 INTEL(PM_733JK_90, 1100, 892, 600, 812, INTEL_BUS_CLK),
742 INTEL(PM_733JL_90, 1100, 876, 600, 812, INTEL_BUS_CLK),
533 INTEL(PM_733_90, 1100, 940, 600, 812, INTEL_BUS_CLK),
534 INTEL(PM_723_90, 1000, 940, 600, 812, INTEL_BUS_CLK),
535 { NULL, 0, 0, NULL },
536};
537
538static void est_identify(driver_t *driver, device_t parent);
539static int est_features(driver_t *driver, u_int *features);
540static int est_probe(device_t parent);

--- 358 unchanged lines hidden ---
743 INTEL(PM_733_90, 1100, 940, 600, 812, INTEL_BUS_CLK),
744 INTEL(PM_723_90, 1000, 940, 600, 812, INTEL_BUS_CLK),
745 { NULL, 0, 0, NULL },
746};
747
748static void est_identify(driver_t *driver, device_t parent);
749static int est_features(driver_t *driver, u_int *features);
750static int est_probe(device_t parent);

--- 358 unchanged lines hidden ---