On Mon, Jan 04, 2016 at 03:33:23PM -0600, Thor Thayer wrote:OK. I see your point for SDRAM.
The decision about ECC or non-ECC SDRAM is made before building the Linux
image and must be matched to the appropriate bootloader (ECC or non-ECC).
If ECC is desired for SDRAM, the bootloader enables SDRAM ECC and then
initializes the memory contents (scrub) before the Linux image is loaded
into SDRAM.
The ECC syndromes are calculated and stored in SDRAM only when SDRAM ECC is
enabled and the SDRAM data is written (in the bootloader case, this is the
Linux image). If we suddenly switched ECC on during Linux initialization,
we'd be flooded with ECC errors since the ECC syndromes won't match the data
for the Linux image.
The scrubbing process takes more time to boot which some of our customers
don't want. This is what Dinh was referring to.
So that still doesn't have any effect on what's compiled in the EDAC
module, AFAICT. You simply build everything in and depending on
whether ECC is enabled or not in the bootloader, altera_edac behaves
accordingly. On a system with ECC *not* enabled, it would simply have
the SDRAM ECC functionality inactive.
This is no different than an x86 system where you enter the BIOS and
enable or disable ECC. The EDAC module queries whether ECC has been
enabled or not and behaves accordingly.