PPC4xx ECC Configs, Defines and Source

Grant Erickson gerickson at nuovations.com
Tue Dec 9 06:28:15 EST 2008


Does anyone have any strong preferences on where configurations, definitions
and sources for a PPC4xx ECC monitoring and reporting driver should go?

Specifically, this concerns ECC handling code for the IBM DDR2 ECC
controller found in the 405EX[r], 440SP, 440SPe, 460EX and 460GT. However,
I'd like to do this in a way that other ECC contributors and maintainers can
build on.

Static Configs
--------------

I thought I might leverage the definitions Stefan Roese came up with for
u-boot for the base memory controller:

    CONFIG_PPC4xx_IBM_SDRAM:   Applicable to 405GP, 405CR, 405EP, AP1000,
                               and ML2
    CONFIG_PPC4xx_IBM_DDR:     Applicable to 440GP, 440GX, 440EP, and 440GR
    CONFIG_PPC4xx_DENALI_DDR2: Applicable to 440EPX and 440GRX
    CONFIG_PPC4xx_IBM_DDR2:    Applicable to 405EX[r], 440SP, 440SPe, 460EX
                               and 460GT.

Controlling whether ECC monitoring and reporting support should be compiled
in or a module:

    CONFIG_PPC_ECC or CONFIG_ECC

Dynamic Configs
---------------

It seems as though the DTS entries for SDRAM0: sdram { compatible = "..." }
would need to be expanded to include the above information as well were any
such ECC driver going to attempt to bind to the runtime DTS information.

Perhaps:

    compatible = "...", "ibm,sdram-4xx-sdram";
    compatible = "...", "ibm,sdram-4xx-ddr";
    compatible = "...", "ibm,sdram-4xx-ddr2";
    compatible = "...", "denali,sdram-4xx-ddr2";

Though, it appears that rainier.dts and sequioia.dts are already evolving in
this direction with:

    compatible = "ibm,sdram-440grx", "ibm,sdram-44x-ddr2denali";
    compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";

In light of that, perhaps then:

    compatible = "...", "ibm,sdram-4xx";
    compatible = "...", "ibm,sdram-4xx-ddr";
    compatible = "...", "ibm,sdram-4xx-ddr2";
    compatible = "...", "ibm,sdram-4xx-ddr2denali";

Source
------

    arch/powerpc/sysdev/
        ppc4xx_ibm_sdram_ecc.c [future]
        ppc4xx_ibm_ddr_ecc.c [future]
        ppc4xx_ibm_ddr2_ecc.c
        ppc4xx_ibm_ddr2denali_ecc.c [future]

Headers and Defines
-------------------

    arch/powerpc/include/asm/ppc4xx_ibm_ddr2.h

    OR

    arch/powerpc/sysdev/ppc4xx_ibm_ddr2.h

Thoughts? Comments?

Regards,

Grant





More information about the Linuxppc-dev mailing list