![Arthur Jones](/assets/img/avatar_default.png)
Preliminary support for the Intel 5100 MCH. CE and UE errors are reported along with the current DIMM label information and other memory parameters. Reasons why this is preliminary: 1) This chip has 2 independent memory controllers which, for best perforance, use interleaved accesses to the DDR2 memory. This architecture does not map very well to the current edac data structures which depend on symmetric channel access to the interleaved data. Without core changes, the best I could do for now is to map both memory controllers to different csrows (first all ranks of controller 0, then all ranks of controller 1). Someone much more familiar with the edac core than I will probably need to come up with a more general data structure to handle the interleaving and de-interleaving of the two memory controllers. 2) I have not yet tackled the de-interleaving of the rank/controller address space into the physical address space of the CPU. There is nothing fundamentally missing, it is just ending up to be a lot of code, and I'd rather keep it separate for now, esp since it doesn't work yet... 3) The code depends on a particular i5100 chip select to DIMM mainboard chip select mapping. This mapping seems obvious to me in order to support dual and single ranked memory, but it is not unique and DIMM labels could be wrong on other mainboards. There is no way to query this mapping that I know of. 4) The code requires that the i5100 is in 32GB mode. Only 4 ranks per controller, 2 ranks per DIMM are supported. I do not have hardware (nor do I expect to have hardware anytime soon) for the 48GB (6 ranks per controller) mode. 5) The serial presence detect code should be broken out into a "real" i2c driver so that decode-dimms.pl can work. Signed-off-by: Arthur Jones <ajones@riverbed.com> Signed-off-by: Doug Thompson <dougthompson@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
36 lines
1.1 KiB
Makefile
36 lines
1.1 KiB
Makefile
#
|
|
# Makefile for the Linux kernel EDAC drivers.
|
|
#
|
|
# Copyright 02 Jul 2003, Linux Networx (http://lnxi.com)
|
|
# This file may be distributed under the terms of the
|
|
# GNU General Public License.
|
|
#
|
|
|
|
|
|
obj-$(CONFIG_EDAC) := edac_stub.o
|
|
obj-$(CONFIG_EDAC_MM_EDAC) += edac_core.o
|
|
|
|
edac_core-objs := edac_mc.o edac_device.o edac_mc_sysfs.o edac_pci_sysfs.o
|
|
edac_core-objs += edac_module.o edac_device_sysfs.o
|
|
|
|
ifdef CONFIG_PCI
|
|
edac_core-objs += edac_pci.o edac_pci_sysfs.o
|
|
endif
|
|
|
|
obj-$(CONFIG_EDAC_AMD76X) += amd76x_edac.o
|
|
obj-$(CONFIG_EDAC_I5000) += i5000_edac.o
|
|
obj-$(CONFIG_EDAC_I5100) += i5100_edac.o
|
|
obj-$(CONFIG_EDAC_E7XXX) += e7xxx_edac.o
|
|
obj-$(CONFIG_EDAC_E752X) += e752x_edac.o
|
|
obj-$(CONFIG_EDAC_I82443BXGX) += i82443bxgx_edac.o
|
|
obj-$(CONFIG_EDAC_I82875P) += i82875p_edac.o
|
|
obj-$(CONFIG_EDAC_I82975X) += i82975x_edac.o
|
|
obj-$(CONFIG_EDAC_I3000) += i3000_edac.o
|
|
obj-$(CONFIG_EDAC_I82860) += i82860_edac.o
|
|
obj-$(CONFIG_EDAC_R82600) += r82600_edac.o
|
|
obj-$(CONFIG_EDAC_PASEMI) += pasemi_edac.o
|
|
obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac.o
|
|
obj-$(CONFIG_EDAC_MV64X60) += mv64x60_edac.o
|
|
obj-$(CONFIG_EDAC_CELL) += cell_edac.o
|
|
|