• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x4048

19  * 0c04: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
20 * 0c08: Xeon E3-1200 v3 Processor DRAM Controller
60 #define PCI_DEVICE_ID_INTEL_IE31200_HB_1 0x0108
61 #define PCI_DEVICE_ID_INTEL_IE31200_HB_2 0x010c
62 #define PCI_DEVICE_ID_INTEL_IE31200_HB_3 0x0150
63 #define PCI_DEVICE_ID_INTEL_IE31200_HB_4 0x0158
64 #define PCI_DEVICE_ID_INTEL_IE31200_HB_5 0x015c
65 #define PCI_DEVICE_ID_INTEL_IE31200_HB_6 0x0c04
66 #define PCI_DEVICE_ID_INTEL_IE31200_HB_7 0x0c08
67 #define PCI_DEVICE_ID_INTEL_IE31200_HB_8 0x190F
68 #define PCI_DEVICE_ID_INTEL_IE31200_HB_9 0x1918
69 #define PCI_DEVICE_ID_INTEL_IE31200_HB_10 0x191F
70 #define PCI_DEVICE_ID_INTEL_IE31200_HB_11 0x5918
73 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_MASK 0x3e00
74 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_1 0x3e0f
75 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_2 0x3e18
76 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_3 0x3e1f
77 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_4 0x3e30
78 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_5 0x3e31
79 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_6 0x3e32
80 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_7 0x3e33
81 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_8 0x3ec2
82 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_9 0x3ec6
83 #define PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_10 0x3eca
98 /* Intel IE31200 register addresses - device 0 function 0 - DRAM Controller */
99 #define IE31200_MCHBAR_LOW 0x48
100 #define IE31200_MCHBAR_HIGH 0x4c
121 * 0 Single-bit DRAM ECC Error Flag (DSERR)
123 #define IE31200_ERRSTS 0xc8
125 #define IE31200_ERRSTS_CE BIT(0)
129 * Channel 0 ECC Error Log (64b)
139 * 0 Correctable Error Status (CERRSTS)
142 #define IE31200_C0ECCERRLOG 0x40c8
143 #define IE31200_C1ECCERRLOG 0x44c8
144 #define IE31200_C0ECCERRLOG_SKL 0x4048
145 #define IE31200_C1ECCERRLOG_SKL 0x4448
146 #define IE31200_ECCERRLOG_CE BIT(0)
157 #define IE31200_CAPID0 0xe4
162 #define IE31200_MAD_DIMM_0_OFFSET 0x5004
163 #define IE31200_MAD_DIMM_0_OFFSET_SKL 0x500C
164 #define IE31200_MAD_DIMM_SIZE GENMASK_ULL(7, 0)
165 #define IE31200_MAD_DIMM_SIZE_SKL GENMASK_ULL(5, 0)
190 IE31200 = 0,
212 x16_width : 2; /* 0 means x8 width */
224 edac_dbg(0, "In single channel mode\n"); in how_many_channels()
227 edac_dbg(0, "In dual channel mode\n"); in how_many_channels()
233 edac_dbg(0, "2 DIMMS per channel disabled\n"); in how_many_channels()
235 edac_dbg(0, "2 DIMMS per channel enabled\n"); in how_many_channels()
283 info->eccerrlog[0] = lo_hi_readq(priv->c0errlog); in ie31200_get_and_clear_error_info()
296 info->eccerrlog[0] = lo_hi_readq(priv->c0errlog); in ie31200_get_and_clear_error_info()
315 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, in ie31200_process_error_info()
320 for (channel = 0; channel < nr_channels; channel++) { in ie31200_process_error_info()
324 0, 0, 0, in ie31200_process_error_info()
330 0, 0, in ie31200_process_error_info()
363 ie31200_printk(KERN_ERR, "mmio space beyond accessible range (0x%llx)\n", in ie31200_map_mchbar()
370 ie31200_printk(KERN_ERR, "Cannot map mmio space at 0x%llx\n", in ie31200_map_mchbar()
380 dd->dual_rank = (addr_decode & (IE31200_MAD_DIMM_A_RANK_SKL << (chan << 4))) ? 1 : 0; in __skl_populate_dimm_info()
389 dd->dual_rank = (addr_decode & (IE31200_MAD_DIMM_A_RANK << chan)) ? 1 : 0; in __populate_dimm_info()
390 dd->x16_width = (addr_decode & (IE31200_MAD_DIMM_A_WIDTH << chan)) ? 1 : 0; in __populate_dimm_info()
418 edac_dbg(0, "MC:\n"); in ie31200_probe1()
426 layers[0].type = EDAC_MC_LAYER_CHIP_SELECT; in ie31200_probe1()
427 layers[0].size = IE31200_RANKS_PER_CHANNEL; in ie31200_probe1()
428 layers[0].is_virt_csrow = true; in ie31200_probe1()
432 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, in ie31200_probe1()
468 for (i = 0; i < IE31200_CHANNELS; i++) { in ie31200_probe1()
471 edac_dbg(0, "addr_decode: 0x%x\n", addr_decode[i]); in ie31200_probe1()
480 for (i = 0; i < IE31200_DIMMS_PER_CHANNEL; i++) { in ie31200_probe1()
481 for (j = 0; j < IE31200_CHANNELS; j++) { in ie31200_probe1()
488 edac_dbg(0, "size: 0x%x, rank: %d, width: %d\n", in ie31200_probe1()
494 if (nr_pages == 0) in ie31200_probe1()
499 dimm = edac_get_dimm(mci, (i * 2) + 1, j, 0); in ie31200_probe1()
501 edac_dbg(0, "set nr pages: 0x%lx\n", nr_pages); in ie31200_probe1()
510 dimm = edac_get_dimm(mci, i * 2, j, 0); in ie31200_probe1()
512 edac_dbg(0, "set nr pages: 0x%lx\n", nr_pages); in ie31200_probe1()
533 return 0; in ie31200_probe1()
549 edac_dbg(0, "MC:\n"); in ie31200_init_one()
550 if (pci_enable_device(pdev) < 0) in ie31200_init_one()
553 if (rc == 0 && !mci_pdev) in ie31200_init_one()
564 edac_dbg(0, "\n"); in ie31200_remove_one()
576 { PCI_VEND_DEV(INTEL, IE31200_HB_1), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
577 { PCI_VEND_DEV(INTEL, IE31200_HB_2), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
578 { PCI_VEND_DEV(INTEL, IE31200_HB_3), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
579 { PCI_VEND_DEV(INTEL, IE31200_HB_4), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
580 { PCI_VEND_DEV(INTEL, IE31200_HB_5), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
581 { PCI_VEND_DEV(INTEL, IE31200_HB_6), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
582 { PCI_VEND_DEV(INTEL, IE31200_HB_7), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
583 { PCI_VEND_DEV(INTEL, IE31200_HB_8), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
584 { PCI_VEND_DEV(INTEL, IE31200_HB_9), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
585 { PCI_VEND_DEV(INTEL, IE31200_HB_10), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
586 { PCI_VEND_DEV(INTEL, IE31200_HB_11), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
587 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_1), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
588 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_2), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
589 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_3), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
590 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_4), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
591 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_5), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
592 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_6), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
593 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_7), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
594 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_8), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
595 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_9), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
596 { PCI_VEND_DEV(INTEL, IE31200_HB_CFL_10), PCI_ANY_ID, PCI_ANY_ID, 0, 0, IE31200 },
597 { 0, } /* 0 terminated list. */
617 if (pci_rc < 0) in ie31200_init()
621 ie31200_registered = 0; in ie31200_init()
622 for (i = 0; ie31200_pci_tbl[i].vendor != 0; i++) { in ie31200_init()
631 edac_dbg(0, "ie31200 pci_get_device fail\n"); in ie31200_init()
637 if (pci_rc < 0) { in ie31200_init()
638 edac_dbg(0, "ie31200 init fail\n"); in ie31200_init()
644 return 0; in ie31200_init()