<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/1439109#M188979</link>
    <description>&lt;P&gt;Is the BCC encode source code still available somewhere? Working with an iMX6 and iMX28.&lt;/P&gt;</description>
    <pubDate>Tue, 05 Apr 2022 19:25:19 GMT</pubDate>
    <dc:creator>dc101</dc:creator>
    <dc:date>2022-04-05T19:25:19Z</dc:date>
    <item>
      <title>NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318085#M42179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Community,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at the moment I'm working with an i.MX6 processor. Particularly I'm interested in NAND programming. I have the option to program a NAND Flash via boundary scan. Therefore I have to write software that encodes data with the ECC that is used by ROM Code. For example, if ROM Code ECC is set to BCH8, my software have to encode data with BCH8 too. Thus the ROM Code can read the data / ECC that is programmed to the NAND Flash.&lt;/P&gt;&lt;P&gt;To encode data with my software I need the generator polynomials that are used by the hardware ECC unit. Does somebody know the generator polynomials, that are used by the hardware ECC unit for BCH2 - 40 ?&lt;/P&gt;&lt;P&gt;If you would like any further information, please ask me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2014 06:57:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318085#M42179</guid>
      <dc:creator>simonlie</dc:creator>
      <dc:date>2014-07-10T06:57:42Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318086#M42180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please find the enclosed C code for i.mx6 NAND programming&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2014 07:14:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318086#M42180</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2014-07-10T07:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318087#M42181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the fast reply. I tried these generator polynomials before and it didn't work. I encoded data with my software and these generator polynomials and compared it with the checksum that was calculated from the hardware ECC unit for the exact same data, it didn't match.&lt;/P&gt;&lt;P&gt;The hardware must use some other generator polynomials.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2014 07:39:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318087#M42181</guid>
      <dc:creator>simonlie</dc:creator>
      <dc:date>2014-07-10T07:39:31Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318088#M42182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Simon,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the NAND driver of the ROM configures the BCH thanks to the information found in the FCB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From the ref manual:&lt;/P&gt;&lt;P&gt;As part of the NAND media initialization, the ROM driver uses safe NAND timings to&lt;/P&gt;&lt;P&gt;search for a Firmware Configuration Block (FCB) that contains the optimum NAND&lt;/P&gt;&lt;P&gt;timings, page address of Discovered Bad Block Table (DBBT) Search Area and start&lt;/P&gt;&lt;P&gt;page address of primary and secondary firmware.&lt;/P&gt;&lt;P&gt;The hardware ECC level to use is embedded inside FCB block. The FCB data structure is&lt;/P&gt;&lt;P&gt;protected using software ECC (SEC-DED Hamming Codes). Driver reads raw 2112 bytes&lt;/P&gt;&lt;P&gt;of first sector and runs through software ECC engine that determines whether FCB data is&lt;/P&gt;&lt;P&gt;valid or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So you inform the NAND driver by configuring the FCB, see table 8-2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rodrigue&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2014 15:51:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318088#M42182</guid>
      <dc:creator>Rodrigue</dc:creator>
      <dc:date>2014-07-10T15:51:44Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318089#M42183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rodrigue,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for the reply. It goes in the right direction :smileyhappy:. All what you say agrees with my state of knowledge, thats good! My problem goes a step further. For example I configure the FCB so, that the NAND driver has to use BCH8. Which generator polynomial is used by the hardware ECC unit to compute the checksum, for example BCH8 (I need BCH2 - 40)? I'm pretty sure there is no information in the ref manual about that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Jul 2014 06:23:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318089#M42183</guid>
      <dc:creator>simonlie</dc:creator>
      <dc:date>2014-07-11T06:23:44Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318090#M42184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually, the information block size is fixed. it is 512Bytes. The configuration of the ECC is basically configuring the correction level for the 512B.&lt;/P&gt;&lt;P&gt;The total code block size also includes the parity bytes.&lt;/P&gt;&lt;P&gt;So we must therefore work in a Galois Field with &amp;gt; 4096Bits (to include ECC bits). Therefore GF(13). As in the RM example. See 17.2.3.&lt;/P&gt;&lt;P&gt;Then EccB0 (or N) are the parity bytes, the sum of all of them for a page should not exceed the number of available parity bytes forseen by the memory layout itself. If you need a correction level of 8, you need to enter EccBN = 8 in the FCB parameter (0x08). But you must make sure that you have enough parity bytes available.&lt;/P&gt;&lt;P&gt;At the End the number of parity bits are compute that way: GF x ECC i.e. in our case: 13 x 8 = 108Bits or 13 Bytes.&lt;/P&gt;&lt;P&gt;You just have to enter these parameter in the FCB.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2014 09:39:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318090#M42184</guid>
      <dc:creator>Rodrigue</dc:creator>
      <dc:date>2014-07-14T09:39:58Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318091#M42185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm afraid that we are talking past each other. My board is booting perfectly. But I need to know how the ECC engine is actually calculating the parity bits. Or more precisely I need to know the generator polynomial that is used by the ECC engine to calculate the parity bits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2014 13:04:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318091#M42185</guid>
      <dc:creator>simonlie</dc:creator>
      <dc:date>2014-07-14T13:04:08Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318092#M42186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;Ok Simon.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;So indeed ther are several possible prime polynomials to generate the GF13 (BCH20) and GF14 (BCH40)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;See below the polynomials being used:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;//GF(13) = 0x201b&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;//GF(14) = 0x402b&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="ZH-CN" style="color: black; font-family: 'Segoe UI','sans-serif'; font-size: 10pt;"&gt;In fact you need that if you are planning to use a gang programmer or JTAG to program the NAND Flash.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2014 07:25:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318092#M42186</guid>
      <dc:creator>Rodrigue</dc:creator>
      <dc:date>2014-07-15T07:25:52Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318093#M42187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much! This will help, I hope :smileywink:. Do you have any tips how to calculate the generator polynomial out of that informations? I never did this before.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2014 09:41:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318093#M42187</guid>
      <dc:creator>simonlie</dc:creator>
      <dc:date>2014-07-15T09:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318094#M42188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I understand it that way:&lt;/P&gt;&lt;P&gt;GF(13) generator polynomial is: x^9+1&lt;/P&gt;&lt;P&gt;GF(14) generator polynomial is: x^10 + x&lt;/P&gt;&lt;P&gt;this polynomial are the one used to generate both GF, namely all the symbols of the field.&lt;/P&gt;&lt;P&gt;Then the parity generation polynomial based on the above primitive polynomial, for ECC 8.&lt;/P&gt;&lt;P&gt;"10010000011000100001111110110100101010101100011000100101101101111010111001101100010001110100100001101011010010011"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2014 10:57:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318094#M42188</guid>
      <dc:creator>Rodrigue</dc:creator>
      <dc:date>2014-07-15T10:57:31Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318095#M42189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Yuri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you please provide me the source code for the bch_deco.c aswell? I need that for an analysis tool for NAND flash issues. @Grant Whitacre: Can you support us here?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Alex Streit&lt;/P&gt;&lt;P&gt;Freescale Supplier Manager @ Continental AG (BU I IC RD SP IP SSW)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2015 13:29:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318095#M42189</guid>
      <dc:creator>astreit</dc:creator>
      <dc:date>2015-03-27T13:29:39Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318096#M42190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp; Alexander, hello !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I do not have (and - alas - cannot find) decoder sources :-(&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Yuri.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Apr 2015 07:11:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/318096#M42190</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2015-04-09T07:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: NAND Flash - encoding data with hardware ECC unit - generator polynomial</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/1439109#M188979</link>
      <description>&lt;P&gt;Is the BCC encode source code still available somewhere? Working with an iMX6 and iMX28.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Apr 2022 19:25:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/NAND-Flash-encoding-data-with-hardware-ECC-unit-generator/m-p/1439109#M188979</guid>
      <dc:creator>dc101</dc:creator>
      <dc:date>2022-04-05T19:25:19Z</dc:date>
    </item>
  </channel>
</rss>

