No announcement yet.

NAND DTSI imx6ull

  • Time
  • Show
Clear All
new posts

  • NAND DTSI imx6ull

    Hello, I have a question about the dtsi for the imx6ull.
    In this project we have had problems with esd discharge during the mounting of the device. Sometimes happen that the system stop on uboot, it doesn't be able to load the operating system for some memory bad block read. We have solved the problem adding some esd diode and putting more attention during the production of the device.
    Nevertheless this don't have to happen because our memory, a micron mt29f32g08, contain the ecc. So this feature need to be able to correct some bit flip.
    Checking our ​​​dtsi, based on the imx6ull evk dtsi ( we have:

    gpmi: gpmi-nand@01806000{
    compatible = "fsl,imx6ull-gpmi-nand", "fsl, imx6ul-gpmi-nand";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0x01806000 0x2000>, <0x01808000 0x4000>;
    reg-names = "gpmi-nand", "bch";
    interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    interrupt-names = "bch";
    clocks = <&clks IMX6UL_CLK_GPMI_IO>,
    <&clks IMX6UL_CLK_GPMI_APB>,
    <&clks IMX6UL_CLK_GPMI_BCH>,
    <&clks IMX6UL_CLK_GPMI_BCH_APB>,
    <&clks IMX6UL_CLK_PER_BCH>;
    clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
    "gpmi_bch_apb", "per1_bch";
    dmas = <&dma_apbh 0>;
    dma-names = "rx-tx";
    status = "disabled";
    in this we don't have mention about the ecc, instead in the colibri imx6ull board dtsi we have:

    /* NAND */
    &gpmi {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_gpmi_nand>;
    nand-ecc-mode = "hw";
    nand-ecc-strength = <8>;
    nand-ecc-step-size = <512>;
    status = "okay";
    my question is so, for enable the ecc hardware feature we need to add this nand-ecc-mode = "hw" property? and this is enough or we need some library for uboot?

    Someone can help me? the documentation on internet about these parameters are not many and many times not cleart. Thanks

  • #2
    I have been working with digital stuff for a long time and for years I have not seen a properly designed boards / components failing because of extreme sensitivity to ESD. So, on your board, the problem may be in a bad component design (but today's components are not so sensitive anymore) or the problem is somewhere else (e.g. layout, decoupling, power, etc). I am just telling this, that I would not be surprised if adding ECC support is not the solution for the real problem.

    I do not know how your board memory is connected, but usually, to support ECC you need to have this supported also on the board. Does your board has ECC support (schematic, memory, etc)?

    But to answer your question directly, I do not know how to enable ecc in software.

    So I am not sure if this helps.


    • ypkdani
      ypkdani commented
      Editing a comment
      Hello Robert,

      we have had a problem in production where the production Employees didn't use the bracelet anti esd and in the buildind we have had a metal stair not connected to gnd.
      Now the problem is solved but for increase further the hardware strength we want to activate the ECC correction. We have an MT29F32G08 micron nand flash that contain an on-die ECC correction. ON this document at pag.12 there is the flag NAND_EnableECC so, i want to undertand if adding in the dtsi the nand-ecc-mode = "hw"; or nand-ecc-mode = "on-die"; this will be enabled.


  • #3
    Ah, you mean ecc for eMMC. I have not used that.

    PS: from my experience, if the problem really is ESD, then I would not use that component on my boards. Many customers do not care about wearing ESD protection when handling your boards and you may be getting a lot of requests for board replacement.