<?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: S25FS128S driver support? in QorIQ</title>
    <link>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824110#M7041</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="316926" data-username="timhammer" href="https://community.nxp.com/people/timhammer"&gt;Tim Hammer&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer to u-boot configuration.&lt;STRONG&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In u-boot include/configs/&amp;lt;platform&amp;gt;.h&lt;/P&gt;&lt;P&gt;/* QSPI device */&lt;BR /&gt;#ifdef CONFIG_FSL_QSPI&lt;BR /&gt;#define CONFIG_SPI_FLASH_SPANSION&lt;BR /&gt;#define FSL_QSPI_FLASH_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_64M&lt;BR /&gt;#define FSL_QSPI_FLASH_NUM&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; 2&lt;BR /&gt;#define CONFIG_SYS_FSL_ERRATUM_A009282&lt;BR /&gt;#define CONFIG_QSPI_AHB_INIT&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Linux Kernel, dts configuration&lt;/P&gt;&lt;P&gt;&amp;amp;qspi {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qflash0: s25fs128s@0 {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = "spansion,m25p80";&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-max-frequency = &amp;lt;20000000&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; m25p,fast-read;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = &amp;lt;0&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-rx-bus-width = &amp;lt;2&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-tx-bus-width = &amp;lt;2&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 16 Sep 2018 08:02:10 GMT</pubDate>
    <dc:creator>yipingwang</dc:creator>
    <dc:date>2018-09-16T08:02:10Z</dc:date>
    <item>
      <title>S25FS128S driver support?</title>
      <link>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824109#M7040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Our custom board design is based on the LS1012A Freedom reference design. One change is the QSPI flash part is&amp;nbsp; 16Mbyte (S25FS128SAGNFI103) rather than 64Mbyte (S25FS512SAGNFI011). To get cwflash.py to work with the&amp;nbsp; different part, I initially just used the CW4NET_v2018.01/CW_ARMv8/Config/flash/devices/S25FS256S.xml description file and this works fine for the CW TAP/JTAG connection (&lt;A href="https://community.nxp.com/thread/482897"&gt;Does anyone have the flash programmer .xml files for S25FS128S QSPI part?&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The part ID was being interpreted by U-Boot as s25fl128s_64k because 0x4d0181 was not in the ID table but the logic allows it to match 0x4d01:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;{"s25fl128s_64k", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) },&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;With that part description, U-Boot is able to read the QSPI flash, but not write- although a write does not indicate an error (&lt;EM&gt;e.g.&lt;/EM&gt; &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;saveenv&lt;/SPAN&gt; result indicates that the environment was written/saved, but resetting/restarting U-Boot still gets a CRC error reading the environment from flash!).&lt;/P&gt;&lt;P&gt;Since the S25FS256S description worked for cwflash, I created a new ID entry in U-Boot matching the s25fs256s_64k but with the s25fs128s name/id:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;{"s25fs128s_64k", INFO6(0x012018, 0x4d0181, 64 * 1024, 256, RD_FULL | WR_QPP | SECT_4K) },&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;{"s25fs256s_64k", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, RD_FULL | WR_QPP | SECT_4K) },&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I have confirmed that U-Boot is now identifying the part as my new s25fs128s_64k entry:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;SF: Detected s25fs128s_64k with page size 256 Bytes, erase size 4 KiB, total 16 MiB&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;but &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;saveenv&lt;/SPAN&gt;/reset still fails to work as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did find a previous discussion about this QSPI part and the LS1012A:&amp;nbsp;&lt;A href="https://community.nxp.com/message/918715?sr=search&amp;amp;searchId=0d0fc7cd-0297-45af-b1ff-11b3d6198456&amp;amp;searchIndex=1"&gt;https://community.nxp.com/message/918715?sr=search&amp;amp;searchId=0d0fc7cd-0297-45af-b1ff-11b3d6198456&amp;amp;searchIndex=1&lt;/A&gt;&amp;nbsp;where the author was reporting a problem reading the part from Linux. They added an equivalent entry to the ID table in the Linux driver.&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/BacemDaassi"&gt;BacemDaassi&lt;/A&gt;‌&amp;nbsp;from Cypress Semi responded with a pointer to a Cypress KB article and suggested removing the &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;SECT_4K&lt;/SPAN&gt; flag.&lt;/P&gt;&lt;P&gt;There is no response from the original poster, so it is not obvious if this was the solution for them or not.&lt;/P&gt;&lt;P&gt;I have removed the &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;SECT_4K&lt;/SPAN&gt; flag, but still am not able to write to the QSPI flash from U-Boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Has anyone successfully written to the S25FS128S part (&lt;EM&gt;or the S25FS256S part which is essentially the same&lt;/EM&gt;) from U-Boot or Linux drivers?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;.Tim&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2018 20:56:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824109#M7040</guid>
      <dc:creator>timhammer</dc:creator>
      <dc:date>2018-09-13T20:56:02Z</dc:date>
    </item>
    <item>
      <title>Re: S25FS128S driver support?</title>
      <link>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824110#M7041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="316926" data-username="timhammer" href="https://community.nxp.com/people/timhammer"&gt;Tim Hammer&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer to u-boot configuration.&lt;STRONG&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In u-boot include/configs/&amp;lt;platform&amp;gt;.h&lt;/P&gt;&lt;P&gt;/* QSPI device */&lt;BR /&gt;#ifdef CONFIG_FSL_QSPI&lt;BR /&gt;#define CONFIG_SPI_FLASH_SPANSION&lt;BR /&gt;#define FSL_QSPI_FLASH_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_64M&lt;BR /&gt;#define FSL_QSPI_FLASH_NUM&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; 2&lt;BR /&gt;#define CONFIG_SYS_FSL_ERRATUM_A009282&lt;BR /&gt;#define CONFIG_QSPI_AHB_INIT&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Linux Kernel, dts configuration&lt;/P&gt;&lt;P&gt;&amp;amp;qspi {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qflash0: s25fs128s@0 {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = "spansion,m25p80";&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-max-frequency = &amp;lt;20000000&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; m25p,fast-read;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = &amp;lt;0&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-rx-bus-width = &amp;lt;2&amp;gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi-tx-bus-width = &amp;lt;2&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 16 Sep 2018 08:02:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824110#M7041</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2018-09-16T08:02:10Z</dc:date>
    </item>
    <item>
      <title>Re: S25FS128S driver support?</title>
      <link>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824111#M7042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/yipingwang"&gt;yipingwang&lt;/A&gt;‌ -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the pointers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had missed those definitions. ls1012a_common.h has some of them. I have modified FSL_QSPI_FLASH_SIZE and FSL_QSPI_FLASH_NUM to match our board setup.&lt;/P&gt;&lt;P&gt;CONFIG_QSPI_AHB_INIT is already defined in generated/autoconf.h&lt;/P&gt;&lt;P&gt;CONFIG_SYS_FSL_ERRATUM_A009282 is not in any Kconfig and attempting to define it in the header file as an ad-hoc config item breaks the build- I left this one out.&lt;/P&gt;&lt;P&gt;With those changes, I am now able to erase and write the QSPI flash memory from U-Boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DTS for the Linux kernel did have "s25fs512s" carried over from the Freedom board source that I missed. However, fixing that has only seemed to corrected the system message that is logged:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.5pt;"&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.603486] fsl-quadspi 1550000.quadspi: s25fs128s (16384 Kbytes)&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;was:&lt;/P&gt;&lt;P style="margin: 0in; margin-left: .375in; font-size: 9.5pt;"&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.591366] fsl-quadspi 1550000.quadspi: s25fl129p1 (16384 Kbytes)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am still unable to erase or write the QSPI flash memory from GNU/Linux. Any other ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;.Tim&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Sep 2018 18:44:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824111#M7042</guid>
      <dc:creator>timhammer</dc:creator>
      <dc:date>2018-09-17T18:44:52Z</dc:date>
    </item>
    <item>
      <title>Re: S25FS128S driver support?</title>
      <link>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824112#M7043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have experience with &lt;STRONG&gt;s70fs01gs&lt;/STRONG&gt; which, I think, is similar. The problem is the flash is hybrid sector architecture &amp;nbsp;which is not supported by the current vanilla Linux kernel (and U-Boot) drivers. It's possible to disable hybrid sector layout in s70fs01gs by writing to&amp;nbsp;an&amp;nbsp;OTP configuration register (but its not revertible, so I do not like it) or somehow improve the flash drivers. I have patched the drivers to solve the issues. Nowawadays, it's possible to find some patches for Linux qspi-nor drivers adding support for hybrid sectors architecture, but I think, those patches have not found their way to vanilla kernel yet.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2018 04:56:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/S25FS128S-driver-support/m-p/824112#M7043</guid>
      <dc:creator>cyrilstrejc</dc:creator>
      <dc:date>2018-09-18T04:56:48Z</dc:date>
    </item>
  </channel>
</rss>

