linux/drivers/edac
Mauro Carvalho Chehab a4b4be3fd7 edac: rename channel_info to rank_info
What it is pointed by a csrow/channel vector is a rank information, and
not a channel information.

On a traditional architecture, the memory controller directly access the
memory ranks, via chip select rows. Different ranks at the same DIMM is
selected via different chip select rows. So, typically, one
csrow/channel pair means one different DIMM.

On FB-DIMMs, there's a microcontroller chip at the DIMM, called Advanced
Memory Buffer (AMB) that serves as the interface between the memory
controller and the memory chips.

The AMB selection is via the DIMM slot, and not via a csrow.

It is up to the AMB to talk with the csrows of the DRAM chips.

So, the FB-DIMM memory controllers see the DIMM slot, and not the DIMM
rank. RAMBUS is similar.

Newer memory controllers, like the ones found on Intel Sandy Bridge and
Nehalem, even working with normal DDR3 DIMM's, don't use the usual
channel A/channel B interleaving schema to provide 128 bits data access.

Instead, they have more channels (3 or 4 channels), and they can use
several interleaving schemas. Such memory controllers see the DIMMs
directly on their registers, instead of the ranks, which is better for
the driver, as its main usageis to point to a broken DIMM stick (the
Field Repleceable Unit), and not to point to a broken DRAM chip.

The drivers that support such such newer memory architecture models
currently need to fake information and to abuse on EDAC structures, as
the subsystem was conceived with the idea that the csrow would always be
visible by the CPU.

To make things a little worse, those drivers don't currently fake
csrows/channels on a consistent way, as the concepts there don't apply
to the memory controllers they're talking with. So, each driver author
interpreted the concepts using a different logic.

In order to fix it, let's rename the data structure that points into a
DIMM rank to "rank_info", in order to be clearer about what's stored
there.

Latter patches will provide a better way to represent the memory
hierarchy for the other types of memory controller.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-03-21 15:22:50 -03:00
..
amd64_edac.c amd64_edac: Cleanup return type of amd64_determine_edac_cap() 2011-10-06 12:35:46 +02:00
amd64_edac.h amd64_edac: Erratum #637 workaround 2011-04-26 16:18:56 +02:00
amd64_edac_dbg.c EDAC, MCE: Rework MCE injection 2010-10-21 14:47:59 +02:00
amd64_edac_inj.c amd64_edac: Add support for F15h DCT PCI config accesses 2011-03-17 14:46:11 +01:00
amd76x_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8131_edac.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
cell_edac.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
cpc925_edac.c cpc925_edac: Support single-processor configurations 2011-09-01 16:00:18 +10:00
e7xxx_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
e752x_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_core.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_mc.c edac: rename channel_info to rank_info 2012-03-21 15:22:50 -03:00
edac_mc_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_module.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_module.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_stub.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
i7core_edac.c x86, mce: Add wrappers for registering on the decode chain 2011-12-14 12:50:12 +01:00
i3000_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i3200_edac.c asm-generic: architecture independent readq/writeq for 32bit environment 2012-02-21 16:47:28 -08:00
i5000_edac.c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
i5100_edac.c edac: i5100 ack error detection register after each read 2012-03-21 15:22:49 -03:00
i5400_edac.c i5400_edac: Avoid calling pci_put_device() twice 2012-03-21 15:22:49 -03:00
i7300_edac.c i7300_edac: Fix error cleanup logic 2011-11-01 10:01:53 -02:00
i82443bxgx_edac.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i82860_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
i82875p_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
i82975x_edac.c edac:i82975x fix 32bit compile and cleanup 2011-10-29 21:29:42 +02:00
Kconfig edac: sb_edac: Let the driver depend on PCI_MMCONFIG 2012-03-21 15:19:56 -03:00
Makefile edac: sb_edac: Add it to the building system 2011-11-01 10:01:54 -02:00
mce_amd.c x86, mce: Add wrappers for registering on the decode chain 2011-12-14 12:50:12 +01:00
mce_amd.h EDAC, MCE, AMD: Simplify NB MCE decoder interface 2011-10-06 12:34:04 +02:00
mce_amd_inj.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
mpc85xx_edac.c drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac 2011-11-24 01:59:38 -06:00
mpc85xx_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
mv64x60_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mv64x60_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
pasemi_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ppc4xx_edac.c edac/ppc4xx_edac: Fix compilation 2012-03-21 15:19:44 -03:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sb_edac.c edac: sb_edac: Fix a wrong value setting for the previous value 2012-03-21 15:20:11 -03:00
tile_edac.c drivers/edac: provide support for tile architecture 2011-03-10 13:30:14 -05:00
x38_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00