<?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>i.MX ProcessorsのトピックBug-Fixes for FlexSPI</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940937#M140810</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are using a SoM with an i.MX8M-Mini and tried to use the FlexSPI to communicate with an FPGA which simulates a flash memory using 1-1-4 or 1-4-4 transfer mode.&lt;/P&gt;&lt;P&gt;To get that working we had to fix or extend the linux drivers at the following places:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;1) ...\linux-imx\drivers\mtd\spi-nor\spi-nor.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;Support of the 1-4-4-DTR read-mode is read from the wrong bit of the SFDP table:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static const struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt;"&gt; sfdp_bfpt_read sfdp_bfpt_reads[]&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Fast Read 1-4-4-DTR */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(1), BIT(&lt;STRONG&gt;&lt;EM&gt;21&lt;/EM&gt;&lt;/STRONG&gt;),&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Supported bit */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(3), 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_PROTO_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Fast Read 1-4-4-DTR */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(1), BIT(&lt;STRONG&gt;&lt;EM&gt;19&lt;/EM&gt;&lt;/STRONG&gt;),&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Supported bit */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(3), 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_PROTO_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;2) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;HW-Caps of the controller are missing support for 1-1-4 and 1-4-4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static int &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;fsl_flexspi_probe(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; platform_device *pdev)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;struct &lt;/SPAN&gt;spi_nor_hwcaps hwcaps = {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.mask = SNOR_HWCAPS_PP,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;struct &lt;/SPAN&gt;spi_nor_hwcaps hwcaps = {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.mask = &lt;/SPAN&gt;&lt;STRONG style="font-size: 9.5pt; "&gt;SNOR_HWCAPS_READ_1_1_4 |&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.5pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4 |&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;SNOR_HWCAPS_PP,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;3) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;LUT-initialization is not performed for 1-4-4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static void&lt;/SPAN&gt; &lt;SPAN style="font-size: 9.75pt;"&gt;fsl_flexspi_init_lut(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi *flex)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* DDR Quad I/O Read &amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (op == SPINOR_OP_READ_1_4_4_DTR || op == SPINOR_OP_READ_1_4_4_DTR_4B) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* read mode : 1-4-4, such as Spansion s25fl128s. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt; color: #979797;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt; color: #979797;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* DDR Quad I/O Read &amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (&lt;/SPAN&gt;&lt;STRONG style="font-size: 9.5pt; "&gt;op == SPINOR_OP_READ_1_4_4 || op == SPINOR_OP_READ_1_4_4_4B&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || &lt;/STRONG&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;op == SPINOR_OP_READ_1_4_4_DTR || op == SPINOR_OP_READ_1_4_4_DTR_4B) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* read mode : 1-4-4, such as Spansion s25fl128s. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;4) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;Sequence Id for 1-4-4 missing&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static int&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi_get_seqid(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi *flex, &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;u8&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; cmd)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (cmd) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_8_8_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SEQID_QUAD_READ;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (cmd) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_8_8_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;case SPINOR_OP_READ_1_4_4_4B:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SEQID_QUAD_READ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Sep 2019 07:53:09 GMT</pubDate>
    <dc:creator>cfi</dc:creator>
    <dc:date>2019-09-18T07:53:09Z</dc:date>
    <item>
      <title>Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940937#M140810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are using a SoM with an i.MX8M-Mini and tried to use the FlexSPI to communicate with an FPGA which simulates a flash memory using 1-1-4 or 1-4-4 transfer mode.&lt;/P&gt;&lt;P&gt;To get that working we had to fix or extend the linux drivers at the following places:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;1) ...\linux-imx\drivers\mtd\spi-nor\spi-nor.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;Support of the 1-4-4-DTR read-mode is read from the wrong bit of the SFDP table:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static const struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt;"&gt; sfdp_bfpt_read sfdp_bfpt_reads[]&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Fast Read 1-4-4-DTR */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(1), BIT(&lt;STRONG&gt;&lt;EM&gt;21&lt;/EM&gt;&lt;/STRONG&gt;),&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Supported bit */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(3), 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_PROTO_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Fast Read 1-4-4-DTR */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(1), BIT(&lt;STRONG&gt;&lt;EM&gt;19&lt;/EM&gt;&lt;/STRONG&gt;),&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Supported bit */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BFPT_DWORD(3), 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* Settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_PROTO_1_4_4_DTR,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; font-size: 11.0pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;2) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;HW-Caps of the controller are missing support for 1-1-4 and 1-4-4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static int &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;fsl_flexspi_probe(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; platform_device *pdev)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;struct &lt;/SPAN&gt;spi_nor_hwcaps hwcaps = {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.mask = SNOR_HWCAPS_PP,&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;struct &lt;/SPAN&gt;spi_nor_hwcaps hwcaps = {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.mask = &lt;/SPAN&gt;&lt;STRONG style="font-size: 9.5pt; "&gt;SNOR_HWCAPS_READ_1_1_4 |&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.5pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNOR_HWCAPS_READ_1_4_4 |&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;SNOR_HWCAPS_PP,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;3) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;LUT-initialization is not performed for 1-4-4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static void&lt;/SPAN&gt; &lt;SPAN style="font-size: 9.75pt;"&gt;fsl_flexspi_init_lut(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi *flex)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* DDR Quad I/O Read &amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (op == SPINOR_OP_READ_1_4_4_DTR || op == SPINOR_OP_READ_1_4_4_DTR_4B) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* read mode : 1-4-4, such as Spansion s25fl128s. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt; color: #979797;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt; color: #979797;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* DDR Quad I/O Read &amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (&lt;/SPAN&gt;&lt;STRONG style="font-size: 9.5pt; "&gt;op == SPINOR_OP_READ_1_4_4 || op == SPINOR_OP_READ_1_4_4_4B&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || &lt;/STRONG&gt;&lt;SPAN style="font-size: 9.75pt;"&gt;op == SPINOR_OP_READ_1_4_4_DTR || op == SPINOR_OP_READ_1_4_4_DTR_4B) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #70ad47;"&gt;/* read mode : 1-4-4, such as Spansion s25fl128s. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG style="font-size: 11.0pt; "&gt;4) ...\linux-imx\drivers\mtd\spi-nor\fsl-flexspi.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;Sequence Id for 1-4-4 missing&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in;"&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;=&amp;gt; inside `&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;static int&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi_get_seqid(&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; fsl_flexspi *flex, &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt; color: #569cd6;"&gt;u8&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.75pt;"&gt; cmd)&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;`&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (cmd) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_8_8_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SEQID_QUAD_READ;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;to&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;SPAN style="color: #979797;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (cmd) {&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_8_8_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4_DTR_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_1_4:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;case SPINOR_OP_READ_1_4_4_4B:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_1_4_4:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ_4B:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case SPINOR_OP_READ:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.75pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return SEQID_QUAD_READ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Sep 2019 07:53:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940937#M140810</guid>
      <dc:creator>cfi</dc:creator>
      <dc:date>2019-09-18T07:53:09Z</dc:date>
    </item>
    <item>
      <title>Re: Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940938#M140811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the sharing. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2019 03:47:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940938#M140811</guid>
      <dc:creator>jimmychan</dc:creator>
      <dc:date>2019-09-19T03:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940939#M140812</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #646464;"&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/cfi"&gt;cfi&lt;/A&gt;‌ How did you change your "spi_nor_scan" function in&amp;nbsp;drivers/mtd/spi-nor/spi-nor.c.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #646464;"&gt;Because if I not change like this in "spi_nor_read_id" function&amp;nbsp;I get error.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;for (tmp = 0; tmp &amp;lt; ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {&lt;BR /&gt; info = &amp;amp;spi_nor_ids[tmp];&lt;BR /&gt; if(info-&amp;gt;name == "mt35xu512aba")&lt;BR /&gt; {&lt;BR /&gt; return &amp;amp;spi_nor_ids[tmp];&lt;BR /&gt; }&lt;BR /&gt; /*&lt;BR /&gt; if (info-&amp;gt;id_len) {&lt;BR /&gt; if (!memcmp(info-&amp;gt;id, id, info-&amp;gt;id_len))&lt;BR /&gt; return &amp;amp;spi_nor_ids[tmp];&lt;BR /&gt; }*/&lt;BR /&gt; }&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;But no error with above change.&lt;/P&gt;&lt;P&gt;Have you changed anything different from your commits?&lt;/P&gt;&lt;P&gt;Also How is your device-tree configration?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem same like you. Now I try write with :&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx8qxpmek:~# mtd_debug write /dev/mtd0 1 1 test &lt;BR /&gt;Copied 1 bytes from test to address 0x00000001 in flash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I look QSPI pins with scope but pins not change.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx8qxpmek:~# dmesg | grep flex&lt;BR /&gt;[ 2.232143] fsl-flexspi 5d120000.flexspi: mt35xu512aba (65536 Kbytes)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My device-tree section :&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;pinctrl_flexspi0: flexspi0grp {&lt;BR /&gt; fsl,pins = &amp;lt;&lt;BR /&gt; SC_P_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x00000040&lt;BR /&gt; SC_P_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x00000040&lt;BR /&gt; SC_P_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x00000040&lt;BR /&gt; SC_P_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x00000040&lt;BR /&gt; SC_P_QSPI0B_DQS_LSIO_QSPI0B_DQS 0x00000040&lt;BR /&gt; SC_P_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x00000040&lt;BR /&gt; SC_P_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x00000020&lt;BR /&gt; SC_P_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x00000020&lt;BR /&gt; &amp;gt;;&lt;BR /&gt; };&lt;BR /&gt; };&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;flexspi0 {&lt;BR /&gt; pinctrl-names = "default";&lt;BR /&gt; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi0&amp;gt;;&lt;BR /&gt; status = "okay";&lt;BR /&gt; fpgacom: fpgacom0@0 {&lt;BR /&gt; reg = &amp;lt;0&amp;gt;;&lt;BR /&gt; #address-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt; #size-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt; compatible = "micron,mt35xu512aba";&lt;BR /&gt; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;BR /&gt; spi-nor,ddr-quad-read-dummy = &amp;lt;8&amp;gt;;&lt;BR /&gt; status = "okay";&lt;BR /&gt; };&lt;BR /&gt;};&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;Also not connected any hardware to QSPI pins. They are free at this situation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2020 17:44:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940939#M140812</guid>
      <dc:creator>draven</dc:creator>
      <dc:date>2020-02-25T17:44:08Z</dc:date>
    </item>
    <item>
      <title>Re: Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940940#M140813</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/yildizberat@gmail.com"&gt;yildizberat@gmail.com&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;all changes we did are in my post - nothing else needed. Our device tree looks like the following:&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl_flexspi0: flexspi0grp {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1c2&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x82&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x82&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x82&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x82&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x82&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;and&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;flexspi {&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .375in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-names = "default";&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .375in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi0&amp;gt;;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .375in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .375in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flash0: mt25qu256aba@0 {&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reg = &amp;lt;0&amp;gt;;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#address-cells = &amp;lt;1&amp;gt;;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#size-cells = &amp;lt;1&amp;gt;;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "winbond,w25q128fw", "jedec,spi-nor";&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spi-max-frequency = &amp;lt;32000000&amp;gt;;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .75in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spi-nor,ddr-quad-read-dummy = &amp;lt;0&amp;gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-left: .375in; margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="margin-top: 0pt; margin-bottom: 12pt; font-family: Consolas; font-size: 11.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But some notes from my side:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;You need to connect a flash to the QSPI-Pins or the MTD-device is not recognizes as there is some initial communication between the SoM and the flash (e.g. "READ JEDEC ID" - 0x9F)&lt;/LI&gt;&lt;LI&gt;As far as I could see the "&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;mt35xu512aba&lt;/SPAN&gt;" is a x1/x8 flash, but you try to use it as x4 - does the flash really support this?&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Feb 2020 06:56:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940940#M140813</guid>
      <dc:creator>cfi</dc:creator>
      <dc:date>2020-02-26T06:56:38Z</dc:date>
    </item>
    <item>
      <title>Re: Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940941#M140814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your reply &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/cfi"&gt;cfi&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;So I changed what you changed, really works for me with real nor flash.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;amp;flexspi0 {&lt;BR /&gt; pinctrl-names = "default";&lt;BR /&gt; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi0&amp;gt;;&lt;BR /&gt; status = "okay";&lt;BR /&gt;&lt;BR /&gt; flash0: mx66u51235f@0 {&lt;BR /&gt; reg = &amp;lt;0&amp;gt;;&lt;BR /&gt; #address-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt; #size-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt; compatible = "macronix,mx66u51235f";&lt;BR /&gt; spi-max-frequency = &amp;lt;84000000&amp;gt;;&lt;BR /&gt; status = "okay";&lt;BR /&gt; spi-nor,ddr-quad-read-dummy = &amp;lt;6&amp;gt;; &lt;BR /&gt; };&lt;BR /&gt;};&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And now flexspi start correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;root@imx8qxpmek:~# dmesg | grep flex&lt;BR /&gt;[ 2.232151] fsl-flexspi 5d120000.flexspi: mx66u51235f (65536 Kbytes)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Also read sequence with mtd_debug tool, but I dont know it is true or not.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;root@imx8qxpmek:~# mtd_debug read /dev/mtd0 0 5 read_test.txt &lt;BR /&gt;Copied 5 bytes from address 0x00000000 in flash to read_test.txt&lt;BR /&gt;root@imx8qxpmek:~# cat read_test.txt &lt;BR /&gt;����aroot@imx8qxpmek:~#&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Because I think there is a problem. I want to help from you here.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;root@imx8qxpmek:~# mtd_debug write /dev/mtd0 0 5 write_test.txt &lt;BR /&gt;[ 1069.324509] fsl-flexspi 5d120000.flexspi: Unsupported cmd 0x12&lt;BR /&gt;Copied 5 bytes from write_test.txt to address 0x00000000 in flash&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;That I must do for write?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Feb 2020 09:11:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940941#M140814</guid>
      <dc:creator>draven</dc:creator>
      <dc:date>2020-02-27T09:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Bug-Fixes for FlexSPI</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940942#M140815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm sorry, but I can't really help you with writing, as we only do read from our (simulated) flash. But the error suggest that the flash is not supporting the used command to write. Can you use a Scope or better logic analyzer to get the SFDP table from the flash? (this is requested/sent after the initial 0x9F command)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Feb 2020 06:17:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Bug-Fixes-for-FlexSPI/m-p/940942#M140815</guid>
      <dc:creator>cfi</dc:creator>
      <dc:date>2020-02-28T06:17:26Z</dc:date>
    </item>
  </channel>
</rss>

