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 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}; |
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}; |
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}; |
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), |
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), |
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 --- |