There are so many bugs at the fill/error report logic that
the code ended by being re-written.
Issues solved:
- DIMM labels were "randomly" filled: they won't
match the memory layout, due to a series of bugs on it;
- The memory controller supports 3 different modes:
single, dual interleaved and dual async. The logic there were
written considering the dual interleaved one (yet, some
single mode support was there);
- The boundary limit to decide on each channel the error happens,
at dual interleaved mode, is given by bit 6 of the error address,
and not bit 1. The practical effect is that Corrected errors
will have a 50% of chance of pointing to the right DIMM. Only
the DIMM pair logic were OK;
- The asymetric mode weren't properly supported. The driver would
handle an asymetric mode as 'single mode', with doesn't actually
match it, creating some weird real/virtual DIMM mappings.
- Some other random bugs got fixed.
Tested on a Dell Precision N390, on dual interleaved mode.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Due to the parsing logic, CONFIG_EDAC_DEBUG should be at
config-nodebug, and not at config-*-generic, otherwise,
this symbol will never be allowed, even geing at config-debug.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
It helps to have EDAC debug enabled, on -debug modules. the actual
debug only happens when a modprobe parameter is used, so the only
side effect of enabling the debug is to increase a little bit
the size of the edac Kernel modules, as new printk's will be
available there.
While here, bump version to 3.6.2-3.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Without those patches, both drivers oopses, due to a bug at the
dummy regulator on Kernel 3.6.
Also, some board components don't work without it.
Those patches could not be 100% correct, but all components that
are known to work with the upstream Kernel are available with it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>