aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2010-10-01 12:19:06 -0400
committerBorislav Petkov <borislav.petkov@amd.com>2011-01-07 05:33:47 -0500
commit3ab0e7dc2e1d5598da609ec9a9bcd3b69b8fa654 (patch)
tree4b4e6d7ef06b1136d8ea31c672e972f38576a06d /drivers/edac
parent42cbd8efb0746b55112de45173219f76c54390da (diff)
amd64_edac: Remove F11h support
F11h doesn't support DRAM ECC so whack it away. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/amd64_edac.c50
-rw-r--r--drivers/edac/amd64_edac.h2
2 files changed, 3 insertions, 49 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index df211181fca4..7e539ac769d7 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -172,9 +172,6 @@ static int amd64_set_scrub_rate(struct mem_ctl_info *mci, u32 bandwidth)
172 case 0x10: 172 case 0x10:
173 min_scrubrate = F10_MIN_SCRUB_RATE_BITS; 173 min_scrubrate = F10_MIN_SCRUB_RATE_BITS;
174 break; 174 break;
175 case 0x11:
176 min_scrubrate = F11_MIN_SCRUB_RATE_BITS;
177 break;
178 175
179 default: 176 default:
180 amd64_printk(KERN_ERR, "Unsupported family!\n"); 177 amd64_printk(KERN_ERR, "Unsupported family!\n");
@@ -803,9 +800,7 @@ static u16 extract_syndrome(struct err_regs *err)
803 800
804static void amd64_cpu_display_info(struct amd64_pvt *pvt) 801static void amd64_cpu_display_info(struct amd64_pvt *pvt)
805{ 802{
806 if (boot_cpu_data.x86 == 0x11) 803 if (boot_cpu_data.x86 == 0x10)
807 edac_printk(KERN_DEBUG, EDAC_MC, "F11h CPU detected\n");
808 else if (boot_cpu_data.x86 == 0x10)
809 edac_printk(KERN_DEBUG, EDAC_MC, "F10h CPU detected\n"); 804 edac_printk(KERN_DEBUG, EDAC_MC, "F10h CPU detected\n");
810 else if (boot_cpu_data.x86 == 0xf) 805 else if (boot_cpu_data.x86 == 0xf)
811 edac_printk(KERN_DEBUG, EDAC_MC, "%s detected\n", 806 edac_printk(KERN_DEBUG, EDAC_MC, "%s detected\n",
@@ -965,14 +960,8 @@ static void amd64_set_dct_base_and_mask(struct amd64_pvt *pvt)
965 pvt->dcsm_mask = REV_F_F1Xh_DCSM_MASK_BITS; 960 pvt->dcsm_mask = REV_F_F1Xh_DCSM_MASK_BITS;
966 pvt->dcs_mask_notused = REV_F_F1Xh_DCS_NOTUSED_BITS; 961 pvt->dcs_mask_notused = REV_F_F1Xh_DCS_NOTUSED_BITS;
967 pvt->dcs_shift = REV_F_F1Xh_DCS_SHIFT; 962 pvt->dcs_shift = REV_F_F1Xh_DCS_SHIFT;
968 963 pvt->cs_count = 8;
969 if (boot_cpu_data.x86 == 0x11) { 964 pvt->num_dcsm = 4;
970 pvt->cs_count = 4;
971 pvt->num_dcsm = 2;
972 } else {
973 pvt->cs_count = 8;
974 pvt->num_dcsm = 4;
975 }
976 } 965 }
977} 966}
978 967
@@ -1744,17 +1733,6 @@ static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt)
1744 } 1733 }
1745} 1734}
1746 1735
1747/*
1748 * There currently are 3 types type of MC devices for AMD Athlon/Opterons
1749 * (as per PCI DEVICE_IDs):
1750 *
1751 * Family K8: That is the Athlon64 and Opteron CPUs. They all have the same PCI
1752 * DEVICE ID, even though there is differences between the different Revisions
1753 * (CG,D,E,F).
1754 *
1755 * Family F10h and F11h.
1756 *
1757 */
1758static struct amd64_family_type amd64_family_types[] = { 1736static struct amd64_family_type amd64_family_types[] = {
1759 [K8_CPUS] = { 1737 [K8_CPUS] = {
1760 .ctl_name = "RevF", 1738 .ctl_name = "RevF",
@@ -1781,19 +1759,6 @@ static struct amd64_family_type amd64_family_types[] = {
1781 .dbam_to_cs = f10_dbam_to_chip_select, 1759 .dbam_to_cs = f10_dbam_to_chip_select,
1782 } 1760 }
1783 }, 1761 },
1784 [F11_CPUS] = {
1785 .ctl_name = "Family 11h",
1786 .addr_f1_ctl = PCI_DEVICE_ID_AMD_11H_NB_MAP,
1787 .misc_f3_ctl = PCI_DEVICE_ID_AMD_11H_NB_MISC,
1788 .ops = {
1789 .early_channel_count = f10_early_channel_count,
1790 .get_error_address = f10_get_error_address,
1791 .read_dram_base_limit = f10_read_dram_base_limit,
1792 .read_dram_ctl_register = f10_read_dram_ctl_register,
1793 .map_sysaddr_to_csrow = f10_map_sysaddr_to_csrow,
1794 .dbam_to_cs = f10_dbam_to_chip_select,
1795 }
1796 },
1797}; 1762};
1798 1763
1799static struct pci_dev *pci_get_related_function(unsigned int vendor, 1764static struct pci_dev *pci_get_related_function(unsigned int vendor,
@@ -2862,15 +2827,6 @@ static const struct pci_device_id amd64_pci_table[] __devinitdata = {
2862 .class_mask = 0, 2827 .class_mask = 0,
2863 .driver_data = F10_CPUS 2828 .driver_data = F10_CPUS
2864 }, 2829 },
2865 {
2866 .vendor = PCI_VENDOR_ID_AMD,
2867 .device = PCI_DEVICE_ID_AMD_11H_NB_DRAM,
2868 .subvendor = PCI_ANY_ID,
2869 .subdevice = PCI_ANY_ID,
2870 .class = 0,
2871 .class_mask = 0,
2872 .driver_data = F11_CPUS
2873 },
2874 {0, } 2830 {0, }
2875}; 2831};
2876MODULE_DEVICE_TABLE(pci, amd64_pci_table); 2832MODULE_DEVICE_TABLE(pci, amd64_pci_table);
diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h
index 044aee4f944d..c8f27345ec76 100644
--- a/drivers/edac/amd64_edac.h
+++ b/drivers/edac/amd64_edac.h
@@ -373,7 +373,6 @@ static inline int get_node_id(struct pci_dev *pdev)
373enum amd64_chipset_families { 373enum amd64_chipset_families {
374 K8_CPUS = 0, 374 K8_CPUS = 0,
375 F10_CPUS, 375 F10_CPUS,
376 F11_CPUS,
377}; 376};
378 377
379/* Error injection control structure */ 378/* Error injection control structure */
@@ -556,7 +555,6 @@ static inline int amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset,
556 */ 555 */
557#define K8_MIN_SCRUB_RATE_BITS 0x0 556#define K8_MIN_SCRUB_RATE_BITS 0x0
558#define F10_MIN_SCRUB_RATE_BITS 0x5 557#define F10_MIN_SCRUB_RATE_BITS 0x5
559#define F11_MIN_SCRUB_RATE_BITS 0x6
560 558
561int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, 559int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base,
562 u64 *hole_offset, u64 *hole_size); 560 u64 *hole_offset, u64 *hole_size);