diff options
author | Joe Perches <joe@perches.com> | 2012-04-29 16:08:39 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-06-11 12:23:49 -0400 |
commit | 956b9ba156dbfdb9cede2b2927ddf8be2233b3a7 (patch) | |
tree | 6ece471eee029a1ca83ce649f7dc23020ebef182 /drivers/edac/amd64_edac.c | |
parent | 7e881856eee8b889b76cd1d8e04ce2fc79b72099 (diff) |
edac: Convert debugfX to edac_dbg(X,
Use a more common debugging style.
Remove __FILE__ uses, add missing newlines,
coalesce formats and align arguments.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r-- | drivers/edac/amd64_edac.c | 270 |
1 files changed, 132 insertions, 138 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 9fbced7f65ee..b47529554734 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -321,8 +321,8 @@ found: | |||
321 | return edac_mc_find((int)node_id); | 321 | return edac_mc_find((int)node_id); |
322 | 322 | ||
323 | err_no_match: | 323 | err_no_match: |
324 | debugf2("sys_addr 0x%lx doesn't match any node\n", | 324 | edac_dbg(2, "sys_addr 0x%lx doesn't match any node\n", |
325 | (unsigned long)sys_addr); | 325 | (unsigned long)sys_addr); |
326 | 326 | ||
327 | return NULL; | 327 | return NULL; |
328 | } | 328 | } |
@@ -393,15 +393,15 @@ static int input_addr_to_csrow(struct mem_ctl_info *mci, u64 input_addr) | |||
393 | mask = ~mask; | 393 | mask = ~mask; |
394 | 394 | ||
395 | if ((input_addr & mask) == (base & mask)) { | 395 | if ((input_addr & mask) == (base & mask)) { |
396 | debugf2("InputAddr 0x%lx matches csrow %d (node %d)\n", | 396 | edac_dbg(2, "InputAddr 0x%lx matches csrow %d (node %d)\n", |
397 | (unsigned long)input_addr, csrow, | 397 | (unsigned long)input_addr, csrow, |
398 | pvt->mc_node_id); | 398 | pvt->mc_node_id); |
399 | 399 | ||
400 | return csrow; | 400 | return csrow; |
401 | } | 401 | } |
402 | } | 402 | } |
403 | debugf2("no matching csrow for InputAddr 0x%lx (MC node %d)\n", | 403 | edac_dbg(2, "no matching csrow for InputAddr 0x%lx (MC node %d)\n", |
404 | (unsigned long)input_addr, pvt->mc_node_id); | 404 | (unsigned long)input_addr, pvt->mc_node_id); |
405 | 405 | ||
406 | return -1; | 406 | return -1; |
407 | } | 407 | } |
@@ -430,20 +430,20 @@ int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, | |||
430 | 430 | ||
431 | /* only revE and later have the DRAM Hole Address Register */ | 431 | /* only revE and later have the DRAM Hole Address Register */ |
432 | if (boot_cpu_data.x86 == 0xf && pvt->ext_model < K8_REV_E) { | 432 | if (boot_cpu_data.x86 == 0xf && pvt->ext_model < K8_REV_E) { |
433 | debugf1(" revision %d for node %d does not support DHAR\n", | 433 | edac_dbg(1, " revision %d for node %d does not support DHAR\n", |
434 | pvt->ext_model, pvt->mc_node_id); | 434 | pvt->ext_model, pvt->mc_node_id); |
435 | return 1; | 435 | return 1; |
436 | } | 436 | } |
437 | 437 | ||
438 | /* valid for Fam10h and above */ | 438 | /* valid for Fam10h and above */ |
439 | if (boot_cpu_data.x86 >= 0x10 && !dhar_mem_hoist_valid(pvt)) { | 439 | if (boot_cpu_data.x86 >= 0x10 && !dhar_mem_hoist_valid(pvt)) { |
440 | debugf1(" Dram Memory Hoisting is DISABLED on this system\n"); | 440 | edac_dbg(1, " Dram Memory Hoisting is DISABLED on this system\n"); |
441 | return 1; | 441 | return 1; |
442 | } | 442 | } |
443 | 443 | ||
444 | if (!dhar_valid(pvt)) { | 444 | if (!dhar_valid(pvt)) { |
445 | debugf1(" Dram Memory Hoisting is DISABLED on this node %d\n", | 445 | edac_dbg(1, " Dram Memory Hoisting is DISABLED on this node %d\n", |
446 | pvt->mc_node_id); | 446 | pvt->mc_node_id); |
447 | return 1; | 447 | return 1; |
448 | } | 448 | } |
449 | 449 | ||
@@ -475,9 +475,9 @@ int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, | |||
475 | else | 475 | else |
476 | *hole_offset = k8_dhar_offset(pvt); | 476 | *hole_offset = k8_dhar_offset(pvt); |
477 | 477 | ||
478 | debugf1(" DHAR info for node %d base 0x%lx offset 0x%lx size 0x%lx\n", | 478 | edac_dbg(1, " DHAR info for node %d base 0x%lx offset 0x%lx size 0x%lx\n", |
479 | pvt->mc_node_id, (unsigned long)*hole_base, | 479 | pvt->mc_node_id, (unsigned long)*hole_base, |
480 | (unsigned long)*hole_offset, (unsigned long)*hole_size); | 480 | (unsigned long)*hole_offset, (unsigned long)*hole_size); |
481 | 481 | ||
482 | return 0; | 482 | return 0; |
483 | } | 483 | } |
@@ -528,10 +528,9 @@ static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr) | |||
528 | /* use DHAR to translate SysAddr to DramAddr */ | 528 | /* use DHAR to translate SysAddr to DramAddr */ |
529 | dram_addr = sys_addr - hole_offset; | 529 | dram_addr = sys_addr - hole_offset; |
530 | 530 | ||
531 | debugf2("using DHAR to translate SysAddr 0x%lx to " | 531 | edac_dbg(2, "using DHAR to translate SysAddr 0x%lx to DramAddr 0x%lx\n", |
532 | "DramAddr 0x%lx\n", | 532 | (unsigned long)sys_addr, |
533 | (unsigned long)sys_addr, | 533 | (unsigned long)dram_addr); |
534 | (unsigned long)dram_addr); | ||
535 | 534 | ||
536 | return dram_addr; | 535 | return dram_addr; |
537 | } | 536 | } |
@@ -548,9 +547,8 @@ static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr) | |||
548 | */ | 547 | */ |
549 | dram_addr = (sys_addr & GENMASK(0, 39)) - dram_base; | 548 | dram_addr = (sys_addr & GENMASK(0, 39)) - dram_base; |
550 | 549 | ||
551 | debugf2("using DRAM Base register to translate SysAddr 0x%lx to " | 550 | edac_dbg(2, "using DRAM Base register to translate SysAddr 0x%lx to DramAddr 0x%lx\n", |
552 | "DramAddr 0x%lx\n", (unsigned long)sys_addr, | 551 | (unsigned long)sys_addr, (unsigned long)dram_addr); |
553 | (unsigned long)dram_addr); | ||
554 | return dram_addr; | 552 | return dram_addr; |
555 | } | 553 | } |
556 | 554 | ||
@@ -586,9 +584,9 @@ static u64 dram_addr_to_input_addr(struct mem_ctl_info *mci, u64 dram_addr) | |||
586 | input_addr = ((dram_addr >> intlv_shift) & GENMASK(12, 35)) + | 584 | input_addr = ((dram_addr >> intlv_shift) & GENMASK(12, 35)) + |
587 | (dram_addr & 0xfff); | 585 | (dram_addr & 0xfff); |
588 | 586 | ||
589 | debugf2(" Intlv Shift=%d DramAddr=0x%lx maps to InputAddr=0x%lx\n", | 587 | edac_dbg(2, " Intlv Shift=%d DramAddr=0x%lx maps to InputAddr=0x%lx\n", |
590 | intlv_shift, (unsigned long)dram_addr, | 588 | intlv_shift, (unsigned long)dram_addr, |
591 | (unsigned long)input_addr); | 589 | (unsigned long)input_addr); |
592 | 590 | ||
593 | return input_addr; | 591 | return input_addr; |
594 | } | 592 | } |
@@ -604,8 +602,8 @@ static u64 sys_addr_to_input_addr(struct mem_ctl_info *mci, u64 sys_addr) | |||
604 | input_addr = | 602 | input_addr = |
605 | dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr)); | 603 | dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr)); |
606 | 604 | ||
607 | debugf2("SysAdddr 0x%lx translates to InputAddr 0x%lx\n", | 605 | edac_dbg(2, "SysAdddr 0x%lx translates to InputAddr 0x%lx\n", |
608 | (unsigned long)sys_addr, (unsigned long)input_addr); | 606 | (unsigned long)sys_addr, (unsigned long)input_addr); |
609 | 607 | ||
610 | return input_addr; | 608 | return input_addr; |
611 | } | 609 | } |
@@ -637,8 +635,8 @@ static u64 input_addr_to_dram_addr(struct mem_ctl_info *mci, u64 input_addr) | |||
637 | 635 | ||
638 | intlv_shift = num_node_interleave_bits(dram_intlv_en(pvt, 0)); | 636 | intlv_shift = num_node_interleave_bits(dram_intlv_en(pvt, 0)); |
639 | if (intlv_shift == 0) { | 637 | if (intlv_shift == 0) { |
640 | debugf1(" InputAddr 0x%lx translates to DramAddr of " | 638 | edac_dbg(1, " InputAddr 0x%lx translates to DramAddr of same value\n", |
641 | "same value\n", (unsigned long)input_addr); | 639 | (unsigned long)input_addr); |
642 | 640 | ||
643 | return input_addr; | 641 | return input_addr; |
644 | } | 642 | } |
@@ -649,9 +647,9 @@ static u64 input_addr_to_dram_addr(struct mem_ctl_info *mci, u64 input_addr) | |||
649 | intlv_sel = dram_intlv_sel(pvt, node_id) & ((1 << intlv_shift) - 1); | 647 | intlv_sel = dram_intlv_sel(pvt, node_id) & ((1 << intlv_shift) - 1); |
650 | dram_addr = bits + (intlv_sel << 12); | 648 | dram_addr = bits + (intlv_sel << 12); |
651 | 649 | ||
652 | debugf1("InputAddr 0x%lx translates to DramAddr 0x%lx " | 650 | edac_dbg(1, "InputAddr 0x%lx translates to DramAddr 0x%lx (%d node interleave bits)\n", |
653 | "(%d node interleave bits)\n", (unsigned long)input_addr, | 651 | (unsigned long)input_addr, |
654 | (unsigned long)dram_addr, intlv_shift); | 652 | (unsigned long)dram_addr, intlv_shift); |
655 | 653 | ||
656 | return dram_addr; | 654 | return dram_addr; |
657 | } | 655 | } |
@@ -673,9 +671,9 @@ static u64 dram_addr_to_sys_addr(struct mem_ctl_info *mci, u64 dram_addr) | |||
673 | (dram_addr < (hole_base + hole_size))) { | 671 | (dram_addr < (hole_base + hole_size))) { |
674 | sys_addr = dram_addr + hole_offset; | 672 | sys_addr = dram_addr + hole_offset; |
675 | 673 | ||
676 | debugf1("using DHAR to translate DramAddr 0x%lx to " | 674 | edac_dbg(1, "using DHAR to translate DramAddr 0x%lx to SysAddr 0x%lx\n", |
677 | "SysAddr 0x%lx\n", (unsigned long)dram_addr, | 675 | (unsigned long)dram_addr, |
678 | (unsigned long)sys_addr); | 676 | (unsigned long)sys_addr); |
679 | 677 | ||
680 | return sys_addr; | 678 | return sys_addr; |
681 | } | 679 | } |
@@ -697,9 +695,9 @@ static u64 dram_addr_to_sys_addr(struct mem_ctl_info *mci, u64 dram_addr) | |||
697 | */ | 695 | */ |
698 | sys_addr |= ~((sys_addr & (1ull << 39)) - 1); | 696 | sys_addr |= ~((sys_addr & (1ull << 39)) - 1); |
699 | 697 | ||
700 | debugf1(" Node %d, DramAddr 0x%lx to SysAddr 0x%lx\n", | 698 | edac_dbg(1, " Node %d, DramAddr 0x%lx to SysAddr 0x%lx\n", |
701 | pvt->mc_node_id, (unsigned long)dram_addr, | 699 | pvt->mc_node_id, (unsigned long)dram_addr, |
702 | (unsigned long)sys_addr); | 700 | (unsigned long)sys_addr); |
703 | 701 | ||
704 | return sys_addr; | 702 | return sys_addr; |
705 | } | 703 | } |
@@ -768,49 +766,48 @@ static void amd64_debug_display_dimm_sizes(struct amd64_pvt *, u8); | |||
768 | 766 | ||
769 | static void amd64_dump_dramcfg_low(u32 dclr, int chan) | 767 | static void amd64_dump_dramcfg_low(u32 dclr, int chan) |
770 | { | 768 | { |
771 | debugf1("F2x%d90 (DRAM Cfg Low): 0x%08x\n", chan, dclr); | 769 | edac_dbg(1, "F2x%d90 (DRAM Cfg Low): 0x%08x\n", chan, dclr); |
772 | 770 | ||
773 | debugf1(" DIMM type: %sbuffered; all DIMMs support ECC: %s\n", | 771 | edac_dbg(1, " DIMM type: %sbuffered; all DIMMs support ECC: %s\n", |
774 | (dclr & BIT(16)) ? "un" : "", | 772 | (dclr & BIT(16)) ? "un" : "", |
775 | (dclr & BIT(19)) ? "yes" : "no"); | 773 | (dclr & BIT(19)) ? "yes" : "no"); |
776 | 774 | ||
777 | debugf1(" PAR/ERR parity: %s\n", | 775 | edac_dbg(1, " PAR/ERR parity: %s\n", |
778 | (dclr & BIT(8)) ? "enabled" : "disabled"); | 776 | (dclr & BIT(8)) ? "enabled" : "disabled"); |
779 | 777 | ||
780 | if (boot_cpu_data.x86 == 0x10) | 778 | if (boot_cpu_data.x86 == 0x10) |
781 | debugf1(" DCT 128bit mode width: %s\n", | 779 | edac_dbg(1, " DCT 128bit mode width: %s\n", |
782 | (dclr & BIT(11)) ? "128b" : "64b"); | 780 | (dclr & BIT(11)) ? "128b" : "64b"); |
783 | 781 | ||
784 | debugf1(" x4 logical DIMMs present: L0: %s L1: %s L2: %s L3: %s\n", | 782 | edac_dbg(1, " x4 logical DIMMs present: L0: %s L1: %s L2: %s L3: %s\n", |
785 | (dclr & BIT(12)) ? "yes" : "no", | 783 | (dclr & BIT(12)) ? "yes" : "no", |
786 | (dclr & BIT(13)) ? "yes" : "no", | 784 | (dclr & BIT(13)) ? "yes" : "no", |
787 | (dclr & BIT(14)) ? "yes" : "no", | 785 | (dclr & BIT(14)) ? "yes" : "no", |
788 | (dclr & BIT(15)) ? "yes" : "no"); | 786 | (dclr & BIT(15)) ? "yes" : "no"); |
789 | } | 787 | } |
790 | 788 | ||
791 | /* Display and decode various NB registers for debug purposes. */ | 789 | /* Display and decode various NB registers for debug purposes. */ |
792 | static void dump_misc_regs(struct amd64_pvt *pvt) | 790 | static void dump_misc_regs(struct amd64_pvt *pvt) |
793 | { | 791 | { |
794 | debugf1("F3xE8 (NB Cap): 0x%08x\n", pvt->nbcap); | 792 | edac_dbg(1, "F3xE8 (NB Cap): 0x%08x\n", pvt->nbcap); |
795 | 793 | ||
796 | debugf1(" NB two channel DRAM capable: %s\n", | 794 | edac_dbg(1, " NB two channel DRAM capable: %s\n", |
797 | (pvt->nbcap & NBCAP_DCT_DUAL) ? "yes" : "no"); | 795 | (pvt->nbcap & NBCAP_DCT_DUAL) ? "yes" : "no"); |
798 | 796 | ||
799 | debugf1(" ECC capable: %s, ChipKill ECC capable: %s\n", | 797 | edac_dbg(1, " ECC capable: %s, ChipKill ECC capable: %s\n", |
800 | (pvt->nbcap & NBCAP_SECDED) ? "yes" : "no", | 798 | (pvt->nbcap & NBCAP_SECDED) ? "yes" : "no", |
801 | (pvt->nbcap & NBCAP_CHIPKILL) ? "yes" : "no"); | 799 | (pvt->nbcap & NBCAP_CHIPKILL) ? "yes" : "no"); |
802 | 800 | ||
803 | amd64_dump_dramcfg_low(pvt->dclr0, 0); | 801 | amd64_dump_dramcfg_low(pvt->dclr0, 0); |
804 | 802 | ||
805 | debugf1("F3xB0 (Online Spare): 0x%08x\n", pvt->online_spare); | 803 | edac_dbg(1, "F3xB0 (Online Spare): 0x%08x\n", pvt->online_spare); |
806 | 804 | ||
807 | debugf1("F1xF0 (DRAM Hole Address): 0x%08x, base: 0x%08x, " | 805 | edac_dbg(1, "F1xF0 (DRAM Hole Address): 0x%08x, base: 0x%08x, offset: 0x%08x\n", |
808 | "offset: 0x%08x\n", | 806 | pvt->dhar, dhar_base(pvt), |
809 | pvt->dhar, dhar_base(pvt), | 807 | (boot_cpu_data.x86 == 0xf) ? k8_dhar_offset(pvt) |
810 | (boot_cpu_data.x86 == 0xf) ? k8_dhar_offset(pvt) | 808 | : f10_dhar_offset(pvt)); |
811 | : f10_dhar_offset(pvt)); | ||
812 | 809 | ||
813 | debugf1(" DramHoleValid: %s\n", dhar_valid(pvt) ? "yes" : "no"); | 810 | edac_dbg(1, " DramHoleValid: %s\n", dhar_valid(pvt) ? "yes" : "no"); |
814 | 811 | ||
815 | amd64_debug_display_dimm_sizes(pvt, 0); | 812 | amd64_debug_display_dimm_sizes(pvt, 0); |
816 | 813 | ||
@@ -857,15 +854,15 @@ static void read_dct_base_mask(struct amd64_pvt *pvt) | |||
857 | u32 *base1 = &pvt->csels[1].csbases[cs]; | 854 | u32 *base1 = &pvt->csels[1].csbases[cs]; |
858 | 855 | ||
859 | if (!amd64_read_dct_pci_cfg(pvt, reg0, base0)) | 856 | if (!amd64_read_dct_pci_cfg(pvt, reg0, base0)) |
860 | debugf0(" DCSB0[%d]=0x%08x reg: F2x%x\n", | 857 | edac_dbg(0, " DCSB0[%d]=0x%08x reg: F2x%x\n", |
861 | cs, *base0, reg0); | 858 | cs, *base0, reg0); |
862 | 859 | ||
863 | if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt)) | 860 | if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt)) |
864 | continue; | 861 | continue; |
865 | 862 | ||
866 | if (!amd64_read_dct_pci_cfg(pvt, reg1, base1)) | 863 | if (!amd64_read_dct_pci_cfg(pvt, reg1, base1)) |
867 | debugf0(" DCSB1[%d]=0x%08x reg: F2x%x\n", | 864 | edac_dbg(0, " DCSB1[%d]=0x%08x reg: F2x%x\n", |
868 | cs, *base1, reg1); | 865 | cs, *base1, reg1); |
869 | } | 866 | } |
870 | 867 | ||
871 | for_each_chip_select_mask(cs, 0, pvt) { | 868 | for_each_chip_select_mask(cs, 0, pvt) { |
@@ -875,15 +872,15 @@ static void read_dct_base_mask(struct amd64_pvt *pvt) | |||
875 | u32 *mask1 = &pvt->csels[1].csmasks[cs]; | 872 | u32 *mask1 = &pvt->csels[1].csmasks[cs]; |
876 | 873 | ||
877 | if (!amd64_read_dct_pci_cfg(pvt, reg0, mask0)) | 874 | if (!amd64_read_dct_pci_cfg(pvt, reg0, mask0)) |
878 | debugf0(" DCSM0[%d]=0x%08x reg: F2x%x\n", | 875 | edac_dbg(0, " DCSM0[%d]=0x%08x reg: F2x%x\n", |
879 | cs, *mask0, reg0); | 876 | cs, *mask0, reg0); |
880 | 877 | ||
881 | if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt)) | 878 | if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt)) |
882 | continue; | 879 | continue; |
883 | 880 | ||
884 | if (!amd64_read_dct_pci_cfg(pvt, reg1, mask1)) | 881 | if (!amd64_read_dct_pci_cfg(pvt, reg1, mask1)) |
885 | debugf0(" DCSM1[%d]=0x%08x reg: F2x%x\n", | 882 | edac_dbg(0, " DCSM1[%d]=0x%08x reg: F2x%x\n", |
886 | cs, *mask1, reg1); | 883 | cs, *mask1, reg1); |
887 | } | 884 | } |
888 | } | 885 | } |
889 | 886 | ||
@@ -1193,7 +1190,7 @@ static int f1x_early_channel_count(struct amd64_pvt *pvt) | |||
1193 | * Need to check DCT0[0] and DCT1[0] to see if only one of them has | 1190 | * Need to check DCT0[0] and DCT1[0] to see if only one of them has |
1194 | * their CSEnable bit on. If so, then SINGLE DIMM case. | 1191 | * their CSEnable bit on. If so, then SINGLE DIMM case. |
1195 | */ | 1192 | */ |
1196 | debugf0("Data width is not 128 bits - need more decoding\n"); | 1193 | edac_dbg(0, "Data width is not 128 bits - need more decoding\n"); |
1197 | 1194 | ||
1198 | /* | 1195 | /* |
1199 | * Check DRAM Bank Address Mapping values for each DIMM to see if there | 1196 | * Check DRAM Bank Address Mapping values for each DIMM to see if there |
@@ -1272,25 +1269,24 @@ static void read_dram_ctl_register(struct amd64_pvt *pvt) | |||
1272 | return; | 1269 | return; |
1273 | 1270 | ||
1274 | if (!amd64_read_dct_pci_cfg(pvt, DCT_SEL_LO, &pvt->dct_sel_lo)) { | 1271 | if (!amd64_read_dct_pci_cfg(pvt, DCT_SEL_LO, &pvt->dct_sel_lo)) { |
1275 | debugf0("F2x110 (DCTSelLow): 0x%08x, High range addrs at: 0x%x\n", | 1272 | edac_dbg(0, "F2x110 (DCTSelLow): 0x%08x, High range addrs at: 0x%x\n", |
1276 | pvt->dct_sel_lo, dct_sel_baseaddr(pvt)); | 1273 | pvt->dct_sel_lo, dct_sel_baseaddr(pvt)); |
1277 | 1274 | ||
1278 | debugf0(" DCTs operate in %s mode.\n", | 1275 | edac_dbg(0, " DCTs operate in %s mode\n", |
1279 | (dct_ganging_enabled(pvt) ? "ganged" : "unganged")); | 1276 | (dct_ganging_enabled(pvt) ? "ganged" : "unganged")); |
1280 | 1277 | ||
1281 | if (!dct_ganging_enabled(pvt)) | 1278 | if (!dct_ganging_enabled(pvt)) |
1282 | debugf0(" Address range split per DCT: %s\n", | 1279 | edac_dbg(0, " Address range split per DCT: %s\n", |
1283 | (dct_high_range_enabled(pvt) ? "yes" : "no")); | 1280 | (dct_high_range_enabled(pvt) ? "yes" : "no")); |
1284 | 1281 | ||
1285 | debugf0(" data interleave for ECC: %s, " | 1282 | edac_dbg(0, " data interleave for ECC: %s, DRAM cleared since last warm reset: %s\n", |
1286 | "DRAM cleared since last warm reset: %s\n", | 1283 | (dct_data_intlv_enabled(pvt) ? "enabled" : "disabled"), |
1287 | (dct_data_intlv_enabled(pvt) ? "enabled" : "disabled"), | 1284 | (dct_memory_cleared(pvt) ? "yes" : "no")); |
1288 | (dct_memory_cleared(pvt) ? "yes" : "no")); | ||
1289 | 1285 | ||
1290 | debugf0(" channel interleave: %s, " | 1286 | edac_dbg(0, " channel interleave: %s, " |
1291 | "interleave bits selector: 0x%x\n", | 1287 | "interleave bits selector: 0x%x\n", |
1292 | (dct_interleave_enabled(pvt) ? "enabled" : "disabled"), | 1288 | (dct_interleave_enabled(pvt) ? "enabled" : "disabled"), |
1293 | dct_sel_interleave_addr(pvt)); | 1289 | dct_sel_interleave_addr(pvt)); |
1294 | } | 1290 | } |
1295 | 1291 | ||
1296 | amd64_read_dct_pci_cfg(pvt, DCT_SEL_HI, &pvt->dct_sel_hi); | 1292 | amd64_read_dct_pci_cfg(pvt, DCT_SEL_HI, &pvt->dct_sel_hi); |
@@ -1428,7 +1424,7 @@ static int f1x_lookup_addr_in_dct(u64 in_addr, u32 nid, u8 dct) | |||
1428 | 1424 | ||
1429 | pvt = mci->pvt_info; | 1425 | pvt = mci->pvt_info; |
1430 | 1426 | ||
1431 | debugf1("input addr: 0x%llx, DCT: %d\n", in_addr, dct); | 1427 | edac_dbg(1, "input addr: 0x%llx, DCT: %d\n", in_addr, dct); |
1432 | 1428 | ||
1433 | for_each_chip_select(csrow, dct, pvt) { | 1429 | for_each_chip_select(csrow, dct, pvt) { |
1434 | if (!csrow_enabled(csrow, dct, pvt)) | 1430 | if (!csrow_enabled(csrow, dct, pvt)) |
@@ -1436,19 +1432,18 @@ static int f1x_lookup_addr_in_dct(u64 in_addr, u32 nid, u8 dct) | |||
1436 | 1432 | ||
1437 | get_cs_base_and_mask(pvt, csrow, dct, &cs_base, &cs_mask); | 1433 | get_cs_base_and_mask(pvt, csrow, dct, &cs_base, &cs_mask); |
1438 | 1434 | ||
1439 | debugf1(" CSROW=%d CSBase=0x%llx CSMask=0x%llx\n", | 1435 | edac_dbg(1, " CSROW=%d CSBase=0x%llx CSMask=0x%llx\n", |
1440 | csrow, cs_base, cs_mask); | 1436 | csrow, cs_base, cs_mask); |
1441 | 1437 | ||
1442 | cs_mask = ~cs_mask; | 1438 | cs_mask = ~cs_mask; |
1443 | 1439 | ||
1444 | debugf1(" (InputAddr & ~CSMask)=0x%llx " | 1440 | edac_dbg(1, " (InputAddr & ~CSMask)=0x%llx (CSBase & ~CSMask)=0x%llx\n", |
1445 | "(CSBase & ~CSMask)=0x%llx\n", | 1441 | (in_addr & cs_mask), (cs_base & cs_mask)); |
1446 | (in_addr & cs_mask), (cs_base & cs_mask)); | ||
1447 | 1442 | ||
1448 | if ((in_addr & cs_mask) == (cs_base & cs_mask)) { | 1443 | if ((in_addr & cs_mask) == (cs_base & cs_mask)) { |
1449 | cs_found = f10_process_possible_spare(pvt, dct, csrow); | 1444 | cs_found = f10_process_possible_spare(pvt, dct, csrow); |
1450 | 1445 | ||
1451 | debugf1(" MATCH csrow=%d\n", cs_found); | 1446 | edac_dbg(1, " MATCH csrow=%d\n", cs_found); |
1452 | break; | 1447 | break; |
1453 | } | 1448 | } |
1454 | } | 1449 | } |
@@ -1505,8 +1500,8 @@ static int f1x_match_to_this_node(struct amd64_pvt *pvt, unsigned range, | |||
1505 | u8 intlv_en = dram_intlv_en(pvt, range); | 1500 | u8 intlv_en = dram_intlv_en(pvt, range); |
1506 | u32 intlv_sel = dram_intlv_sel(pvt, range); | 1501 | u32 intlv_sel = dram_intlv_sel(pvt, range); |
1507 | 1502 | ||
1508 | debugf1("(range %d) SystemAddr= 0x%llx Limit=0x%llx\n", | 1503 | edac_dbg(1, "(range %d) SystemAddr= 0x%llx Limit=0x%llx\n", |
1509 | range, sys_addr, get_dram_limit(pvt, range)); | 1504 | range, sys_addr, get_dram_limit(pvt, range)); |
1510 | 1505 | ||
1511 | if (dhar_valid(pvt) && | 1506 | if (dhar_valid(pvt) && |
1512 | dhar_base(pvt) <= sys_addr && | 1507 | dhar_base(pvt) <= sys_addr && |
@@ -1562,7 +1557,7 @@ static int f1x_match_to_this_node(struct amd64_pvt *pvt, unsigned range, | |||
1562 | (chan_addr & 0xfff); | 1557 | (chan_addr & 0xfff); |
1563 | } | 1558 | } |
1564 | 1559 | ||
1565 | debugf1(" Normalized DCT addr: 0x%llx\n", chan_addr); | 1560 | edac_dbg(1, " Normalized DCT addr: 0x%llx\n", chan_addr); |
1566 | 1561 | ||
1567 | cs_found = f1x_lookup_addr_in_dct(chan_addr, node_id, channel); | 1562 | cs_found = f1x_lookup_addr_in_dct(chan_addr, node_id, channel); |
1568 | 1563 | ||
@@ -1664,7 +1659,8 @@ static void amd64_debug_display_dimm_sizes(struct amd64_pvt *pvt, u8 ctrl) | |||
1664 | dcsb = (ctrl && !dct_ganging_enabled(pvt)) ? pvt->csels[1].csbases | 1659 | dcsb = (ctrl && !dct_ganging_enabled(pvt)) ? pvt->csels[1].csbases |
1665 | : pvt->csels[0].csbases; | 1660 | : pvt->csels[0].csbases; |
1666 | 1661 | ||
1667 | debugf1("F2x%d80 (DRAM Bank Address Mapping): 0x%08x\n", ctrl, dbam); | 1662 | edac_dbg(1, "F2x%d80 (DRAM Bank Address Mapping): 0x%08x\n", |
1663 | ctrl, dbam); | ||
1668 | 1664 | ||
1669 | edac_printk(KERN_DEBUG, EDAC_MC, "DCT%d chip selects:\n", ctrl); | 1665 | edac_printk(KERN_DEBUG, EDAC_MC, "DCT%d chip selects:\n", ctrl); |
1670 | 1666 | ||
@@ -1840,7 +1836,7 @@ static int decode_syndrome(u16 syndrome, u16 *vectors, unsigned num_vecs, | |||
1840 | } | 1836 | } |
1841 | } | 1837 | } |
1842 | 1838 | ||
1843 | debugf0("syndrome(%x) not found\n", syndrome); | 1839 | edac_dbg(0, "syndrome(%x) not found\n", syndrome); |
1844 | return -1; | 1840 | return -1; |
1845 | } | 1841 | } |
1846 | 1842 | ||
@@ -2047,9 +2043,9 @@ static int reserve_mc_sibling_devs(struct amd64_pvt *pvt, u16 f1_id, u16 f3_id) | |||
2047 | 2043 | ||
2048 | return -ENODEV; | 2044 | return -ENODEV; |
2049 | } | 2045 | } |
2050 | debugf1("F1: %s\n", pci_name(pvt->F1)); | 2046 | edac_dbg(1, "F1: %s\n", pci_name(pvt->F1)); |
2051 | debugf1("F2: %s\n", pci_name(pvt->F2)); | 2047 | edac_dbg(1, "F2: %s\n", pci_name(pvt->F2)); |
2052 | debugf1("F3: %s\n", pci_name(pvt->F3)); | 2048 | edac_dbg(1, "F3: %s\n", pci_name(pvt->F3)); |
2053 | 2049 | ||
2054 | return 0; | 2050 | return 0; |
2055 | } | 2051 | } |
@@ -2076,15 +2072,15 @@ static void read_mc_regs(struct amd64_pvt *pvt) | |||
2076 | * those are Read-As-Zero | 2072 | * those are Read-As-Zero |
2077 | */ | 2073 | */ |
2078 | rdmsrl(MSR_K8_TOP_MEM1, pvt->top_mem); | 2074 | rdmsrl(MSR_K8_TOP_MEM1, pvt->top_mem); |
2079 | debugf0(" TOP_MEM: 0x%016llx\n", pvt->top_mem); | 2075 | edac_dbg(0, " TOP_MEM: 0x%016llx\n", pvt->top_mem); |
2080 | 2076 | ||
2081 | /* check first whether TOP_MEM2 is enabled */ | 2077 | /* check first whether TOP_MEM2 is enabled */ |
2082 | rdmsrl(MSR_K8_SYSCFG, msr_val); | 2078 | rdmsrl(MSR_K8_SYSCFG, msr_val); |
2083 | if (msr_val & (1U << 21)) { | 2079 | if (msr_val & (1U << 21)) { |
2084 | rdmsrl(MSR_K8_TOP_MEM2, pvt->top_mem2); | 2080 | rdmsrl(MSR_K8_TOP_MEM2, pvt->top_mem2); |
2085 | debugf0(" TOP_MEM2: 0x%016llx\n", pvt->top_mem2); | 2081 | edac_dbg(0, " TOP_MEM2: 0x%016llx\n", pvt->top_mem2); |
2086 | } else | 2082 | } else |
2087 | debugf0(" TOP_MEM2 disabled.\n"); | 2083 | edac_dbg(0, " TOP_MEM2 disabled\n"); |
2088 | 2084 | ||
2089 | amd64_read_pci_cfg(pvt->F3, NBCAP, &pvt->nbcap); | 2085 | amd64_read_pci_cfg(pvt->F3, NBCAP, &pvt->nbcap); |
2090 | 2086 | ||
@@ -2100,17 +2096,17 @@ static void read_mc_regs(struct amd64_pvt *pvt) | |||
2100 | if (!rw) | 2096 | if (!rw) |
2101 | continue; | 2097 | continue; |
2102 | 2098 | ||
2103 | debugf1(" DRAM range[%d], base: 0x%016llx; limit: 0x%016llx\n", | 2099 | edac_dbg(1, " DRAM range[%d], base: 0x%016llx; limit: 0x%016llx\n", |
2104 | range, | 2100 | range, |
2105 | get_dram_base(pvt, range), | 2101 | get_dram_base(pvt, range), |
2106 | get_dram_limit(pvt, range)); | 2102 | get_dram_limit(pvt, range)); |
2107 | 2103 | ||
2108 | debugf1(" IntlvEn=%s; Range access: %s%s IntlvSel=%d DstNode=%d\n", | 2104 | edac_dbg(1, " IntlvEn=%s; Range access: %s%s IntlvSel=%d DstNode=%d\n", |
2109 | dram_intlv_en(pvt, range) ? "Enabled" : "Disabled", | 2105 | dram_intlv_en(pvt, range) ? "Enabled" : "Disabled", |
2110 | (rw & 0x1) ? "R" : "-", | 2106 | (rw & 0x1) ? "R" : "-", |
2111 | (rw & 0x2) ? "W" : "-", | 2107 | (rw & 0x2) ? "W" : "-", |
2112 | dram_intlv_sel(pvt, range), | 2108 | dram_intlv_sel(pvt, range), |
2113 | dram_dst_node(pvt, range)); | 2109 | dram_dst_node(pvt, range)); |
2114 | } | 2110 | } |
2115 | 2111 | ||
2116 | read_dct_base_mask(pvt); | 2112 | read_dct_base_mask(pvt); |
@@ -2191,9 +2187,9 @@ static u32 amd64_csrow_nr_pages(struct amd64_pvt *pvt, u8 dct, int csrow_nr) | |||
2191 | 2187 | ||
2192 | nr_pages = pvt->ops->dbam_to_cs(pvt, dct, cs_mode) << (20 - PAGE_SHIFT); | 2188 | nr_pages = pvt->ops->dbam_to_cs(pvt, dct, cs_mode) << (20 - PAGE_SHIFT); |
2193 | 2189 | ||
2194 | debugf0(" (csrow=%d) DBAM map index= %d\n", csrow_nr, cs_mode); | 2190 | edac_dbg(0, " (csrow=%d) DBAM map index= %d\n", csrow_nr, cs_mode); |
2195 | debugf0(" nr_pages/channel= %u channel-count = %d\n", | 2191 | edac_dbg(0, " nr_pages/channel= %u channel-count = %d\n", |
2196 | nr_pages, pvt->channel_count); | 2192 | nr_pages, pvt->channel_count); |
2197 | 2193 | ||
2198 | return nr_pages; | 2194 | return nr_pages; |
2199 | } | 2195 | } |
@@ -2218,22 +2214,19 @@ static int init_csrows(struct mem_ctl_info *mci) | |||
2218 | 2214 | ||
2219 | pvt->nbcfg = val; | 2215 | pvt->nbcfg = val; |
2220 | 2216 | ||
2221 | debugf0("node %d, NBCFG=0x%08x[ChipKillEccCap: %d|DramEccEn: %d]\n", | 2217 | edac_dbg(0, "node %d, NBCFG=0x%08x[ChipKillEccCap: %d|DramEccEn: %d]\n", |
2222 | pvt->mc_node_id, val, | 2218 | pvt->mc_node_id, val, |
2223 | !!(val & NBCFG_CHIPKILL), !!(val & NBCFG_ECC_ENABLE)); | 2219 | !!(val & NBCFG_CHIPKILL), !!(val & NBCFG_ECC_ENABLE)); |
2224 | 2220 | ||
2225 | for_each_chip_select(i, 0, pvt) { | 2221 | for_each_chip_select(i, 0, pvt) { |
2226 | csrow = mci->csrows[i]; | 2222 | csrow = mci->csrows[i]; |
2227 | 2223 | ||
2228 | if (!csrow_enabled(i, 0, pvt) && !csrow_enabled(i, 1, pvt)) { | 2224 | if (!csrow_enabled(i, 0, pvt) && !csrow_enabled(i, 1, pvt)) { |
2229 | debugf1("----CSROW %d EMPTY for node %d\n", i, | 2225 | edac_dbg(1, "----CSROW %d VALID for MC node %d\n", |
2230 | pvt->mc_node_id); | 2226 | i, pvt->mc_node_id); |
2231 | continue; | 2227 | continue; |
2232 | } | 2228 | } |
2233 | 2229 | ||
2234 | debugf1("----CSROW %d VALID for MC node %d\n", | ||
2235 | i, pvt->mc_node_id); | ||
2236 | |||
2237 | empty = 0; | 2230 | empty = 0; |
2238 | if (csrow_enabled(i, 0, pvt)) | 2231 | if (csrow_enabled(i, 0, pvt)) |
2239 | nr_pages = amd64_csrow_nr_pages(pvt, 0, i); | 2232 | nr_pages = amd64_csrow_nr_pages(pvt, 0, i); |
@@ -2245,8 +2238,9 @@ static int init_csrows(struct mem_ctl_info *mci) | |||
2245 | 2238 | ||
2246 | mtype = amd64_determine_memory_type(pvt, i); | 2239 | mtype = amd64_determine_memory_type(pvt, i); |
2247 | 2240 | ||
2248 | debugf1(" for MC node %d csrow %d:\n", pvt->mc_node_id, i); | 2241 | edac_dbg(1, " for MC node %d csrow %d:\n", pvt->mc_node_id, i); |
2249 | debugf1(" nr_pages: %u\n", nr_pages * pvt->channel_count); | 2242 | edac_dbg(1, " nr_pages: %u\n", |
2243 | nr_pages * pvt->channel_count); | ||
2250 | 2244 | ||
2251 | /* | 2245 | /* |
2252 | * determine whether CHIPKILL or JUST ECC or NO ECC is operating | 2246 | * determine whether CHIPKILL or JUST ECC or NO ECC is operating |
@@ -2298,9 +2292,9 @@ static bool amd64_nb_mce_bank_enabled_on_node(unsigned nid) | |||
2298 | struct msr *reg = per_cpu_ptr(msrs, cpu); | 2292 | struct msr *reg = per_cpu_ptr(msrs, cpu); |
2299 | nbe = reg->l & MSR_MCGCTL_NBE; | 2293 | nbe = reg->l & MSR_MCGCTL_NBE; |
2300 | 2294 | ||
2301 | debugf0("core: %u, MCG_CTL: 0x%llx, NB MSR is %s\n", | 2295 | edac_dbg(0, "core: %u, MCG_CTL: 0x%llx, NB MSR is %s\n", |
2302 | cpu, reg->q, | 2296 | cpu, reg->q, |
2303 | (nbe ? "enabled" : "disabled")); | 2297 | (nbe ? "enabled" : "disabled")); |
2304 | 2298 | ||
2305 | if (!nbe) | 2299 | if (!nbe) |
2306 | goto out; | 2300 | goto out; |
@@ -2371,8 +2365,8 @@ static bool enable_ecc_error_reporting(struct ecc_settings *s, u8 nid, | |||
2371 | 2365 | ||
2372 | amd64_read_pci_cfg(F3, NBCFG, &value); | 2366 | amd64_read_pci_cfg(F3, NBCFG, &value); |
2373 | 2367 | ||
2374 | debugf0("1: node %d, NBCFG=0x%08x[DramEccEn: %d]\n", | 2368 | edac_dbg(0, "1: node %d, NBCFG=0x%08x[DramEccEn: %d]\n", |
2375 | nid, value, !!(value & NBCFG_ECC_ENABLE)); | 2369 | nid, value, !!(value & NBCFG_ECC_ENABLE)); |
2376 | 2370 | ||
2377 | if (!(value & NBCFG_ECC_ENABLE)) { | 2371 | if (!(value & NBCFG_ECC_ENABLE)) { |
2378 | amd64_warn("DRAM ECC disabled on this node, enabling...\n"); | 2372 | amd64_warn("DRAM ECC disabled on this node, enabling...\n"); |
@@ -2396,8 +2390,8 @@ static bool enable_ecc_error_reporting(struct ecc_settings *s, u8 nid, | |||
2396 | s->flags.nb_ecc_prev = 1; | 2390 | s->flags.nb_ecc_prev = 1; |
2397 | } | 2391 | } |
2398 | 2392 | ||
2399 | debugf0("2: node %d, NBCFG=0x%08x[DramEccEn: %d]\n", | 2393 | edac_dbg(0, "2: node %d, NBCFG=0x%08x[DramEccEn: %d]\n", |
2400 | nid, value, !!(value & NBCFG_ECC_ENABLE)); | 2394 | nid, value, !!(value & NBCFG_ECC_ENABLE)); |
2401 | 2395 | ||
2402 | return ret; | 2396 | return ret; |
2403 | } | 2397 | } |
@@ -2615,11 +2609,11 @@ static int amd64_init_one_instance(struct pci_dev *F2) | |||
2615 | 2609 | ||
2616 | ret = -ENODEV; | 2610 | ret = -ENODEV; |
2617 | if (edac_mc_add_mc(mci)) { | 2611 | if (edac_mc_add_mc(mci)) { |
2618 | debugf1("failed edac_mc_add_mc()\n"); | 2612 | edac_dbg(1, "failed edac_mc_add_mc()\n"); |
2619 | goto err_add_mc; | 2613 | goto err_add_mc; |
2620 | } | 2614 | } |
2621 | if (set_mc_sysfs_attrs(mci)) { | 2615 | if (set_mc_sysfs_attrs(mci)) { |
2622 | debugf1("failed edac_mc_add_mc()\n"); | 2616 | edac_dbg(1, "failed edac_mc_add_mc()\n"); |
2623 | goto err_add_sysfs; | 2617 | goto err_add_sysfs; |
2624 | } | 2618 | } |
2625 | 2619 | ||
@@ -2660,7 +2654,7 @@ static int __devinit amd64_probe_one_instance(struct pci_dev *pdev, | |||
2660 | 2654 | ||
2661 | ret = pci_enable_device(pdev); | 2655 | ret = pci_enable_device(pdev); |
2662 | if (ret < 0) { | 2656 | if (ret < 0) { |
2663 | debugf0("ret=%d\n", ret); | 2657 | edac_dbg(0, "ret=%d\n", ret); |
2664 | return -EIO; | 2658 | return -EIO; |
2665 | } | 2659 | } |
2666 | 2660 | ||