<?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: i.MX6q SDIO error by large size data read in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662922#M101799</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your reply.&lt;BR /&gt;I checked documents that you refered, but I could not find the reason&lt;BR /&gt;that why TOTAL transfer&amp;nbsp;data size of CMD53 was limited only 64KB max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;sect.67.4.1.4 Dividing Large Data Transfer i.MX6DQ Reference Manual &lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fcache.nxp.com%2Ffiles%2Fsoft_dev_tools%2Fdoc%2Fsupport_info%2FiMX6DQPRM.pdf" rel="nofollow" style="color: #5e89c1; background-color: #ffffff; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;http://cache.nxp.com/files/soft_dev_tools/doc/support_info/iMX6DQPRM.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;says the total transfer data size should be multiple of block size.&lt;/P&gt;&lt;P&gt;Total transfer data size limitation is not described...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;sect.1.13.3 Data Address and Data Length Requirements p.15 SD specification&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fmembers.sdcard.org%2Fdownloads%2Fpls%2Fsimplified_specs%2Farchive%2FpartA2_300.pdf" rel="nofollow" style="color: #5e89c1; background-color: #ffffff; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://members.sdcard.org/downloads/pls/simplified_specs/archive/partA2_300.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;describes about&amp;nbsp;how to control SDIO Host ADMA.&lt;/P&gt;&lt;P&gt;I was interested in&amp;nbsp;following description:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;The maximum data length of each descriptor line is less than 64KB. &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are not so sure about SDIO Host but if the Host ADMA is not controlled correctly and set descriptor data size more than 64KB, the ADMA will be failed, right?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway, additional information will be very helpful for us...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Yonezawa&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 27 Mar 2017 02:12:21 GMT</pubDate>
    <dc:creator>kotayonezawa</dc:creator>
    <dc:date>2017-03-27T02:12:21Z</dc:date>
    <item>
      <title>i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662920#M101797</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;Now we are using i.MX6 quad SABRE AUTO board and faced a problem on SDIO.&lt;BR /&gt;About software, Linux for i.MX (4.1.15-1.2.0) is used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are using device IC that has 4bit SDIO version 2.00 slave interface to read large data,&lt;BR /&gt;so we are now trying it on SABRE board.&lt;BR /&gt;We used &lt;STRONG&gt;CMD53(IO_RW_EXTENDED)&lt;/STRONG&gt; with &lt;STRONG&gt;OP Code = 0 (means fixed address)&lt;/STRONG&gt;.&lt;BR /&gt;The register address was 0x10000 in SDIO register address space.&lt;BR /&gt;The block size was 2048 because we considered it's best setting for i.MX6 host&lt;BR /&gt;according to Linux source code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, we started implementation but faced strange phenomenon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; - If the total read data size is less than 64KB (65536byte), sdio_readsb() function&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; on Linux (CMD53 function with OP Code = 0)&lt;/SPAN&gt; finished successfully.&lt;BR /&gt;&amp;nbsp; - If the total read data size is greater than or equal to 64KB,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; sdio_readsb() function failed. The return code was -ETIMEDOUT (-110).&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; In dmesg, we found following message.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &lt;EM&gt;"mmc0: Timeout waiting for hardware interrupt."&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; From above message, it seems that sdhci_timeout_timer() in sdhci.c failed by ETIMEDOUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We changed block size to smaller, but the phenomenon was same.&lt;/P&gt;&lt;P&gt;We understood that if CMD53(IO_RW_EXTENDED) with &lt;STRONG&gt;OP Code = 1 (means incrementing address)&lt;/STRONG&gt;&lt;BR /&gt;we'll face similar issue because SDIO address space is 17bit. (0x10000 - 0x1FFFFF is 64KB)&lt;BR /&gt;But we are now using &lt;STRONG&gt;OP Code = 0. (fixed address)&lt;/STRONG&gt;&lt;BR /&gt;So we are now confused and need help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, we suspected at first that our device IC was not OK,&lt;BR /&gt;but same IC was used with "Panda Board" via SDIO interface before, and we've never faced such issue.&lt;BR /&gt;Over 64KB large size data can be read from the IC on "Panda Board" environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our question&amp;nbsp;is, if i.MX6q SDIO host has some limitation on CMD53 data size&lt;BR /&gt;or block count on OP Code = 0, we would like to know about it.&lt;BR /&gt;Did someone face or know similar issue?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Yonezawa&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Mar 2017 12:36:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662920#M101797</guid>
      <dc:creator>kotayonezawa</dc:creator>
      <dc:date>2017-03-17T12:36:56Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662921#M101798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kota&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;issue may be caused by&amp;nbsp; requirements described in&lt;BR /&gt;sect.67.4.1.4 Dividing Large Data Transfer i.MX6DQ Reference Manual &lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fcache.nxp.com%2Ffiles%2Fsoft_dev_tools%2Fdoc%2Fsupport_info%2FiMX6DQPRM.pdf" rel="nofollow" target="_blank"&gt;http://cache.nxp.com/files/soft_dev_tools/doc/support_info/iMX6DQPRM.pdf&lt;/A&gt;&lt;BR /&gt;and sect.1.13.3 Data Address and Data Length Requirements p.15 SD specification&lt;BR /&gt;&lt;A href="https://members.sdcard.org/downloads/pls/simplified_specs/archive/partA2_300.pdf"&gt;https://members.sdcard.org/downloads/pls/simplified_specs/archive/partA2_300.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&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>Sun, 26 Mar 2017 23:17:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662921#M101798</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-03-26T23:17:14Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662922#M101799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your reply.&lt;BR /&gt;I checked documents that you refered, but I could not find the reason&lt;BR /&gt;that why TOTAL transfer&amp;nbsp;data size of CMD53 was limited only 64KB max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;sect.67.4.1.4 Dividing Large Data Transfer i.MX6DQ Reference Manual &lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fcache.nxp.com%2Ffiles%2Fsoft_dev_tools%2Fdoc%2Fsupport_info%2FiMX6DQPRM.pdf" rel="nofollow" style="color: #5e89c1; background-color: #ffffff; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;http://cache.nxp.com/files/soft_dev_tools/doc/support_info/iMX6DQPRM.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;says the total transfer data size should be multiple of block size.&lt;/P&gt;&lt;P&gt;Total transfer data size limitation is not described...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;sect.1.13.3 Data Address and Data Length Requirements p.15 SD specification&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fmembers.sdcard.org%2Fdownloads%2Fpls%2Fsimplified_specs%2Farchive%2FpartA2_300.pdf" rel="nofollow" style="color: #5e89c1; background-color: #ffffff; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://members.sdcard.org/downloads/pls/simplified_specs/archive/partA2_300.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;describes about&amp;nbsp;how to control SDIO Host ADMA.&lt;/P&gt;&lt;P&gt;I was interested in&amp;nbsp;following description:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;The maximum data length of each descriptor line is less than 64KB. &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are not so sure about SDIO Host but if the Host ADMA is not controlled correctly and set descriptor data size more than 64KB, the ADMA will be failed, right?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway, additional information will be very helpful for us...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Yonezawa&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Mar 2017 02:12:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662922#M101799</guid>
      <dc:creator>kotayonezawa</dc:creator>
      <dc:date>2017-03-27T02:12:21Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662923#M101800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kota&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;The maximum data length of each descriptor line is less than 64KB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is requirement of sd specifications, not i.MX6 host controller&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe it may be debugged using attached Linux Manual Chapter 32&lt;BR /&gt;MMC/SD/SDIO Host Driver&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Mar 2017 03:34:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662923#M101800</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-03-27T03:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662924#M101801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;igor, all,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Thanks a lot for your reply.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;It seems that we found root cause.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;As the document you suggested:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="border: 0px;"&gt;sect.1.13.3 Data Address and Data Length Requirements p.15 SD specification&lt;/SPAN&gt;&lt;BR /&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fmembers.sdcard.org%2Fdownloads%2Fpls%2Fsimplified_specs%2Farchive%2FpartA2_300.pdf" rel="nofollow" style="color: #5e89c1; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://members.sdcard.org/downloads/pls/simplified_specs/archive/partA2_300.pdf&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;The i.MX host controller does NOT allow 64KB data size for each descriptor.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;In Linux code, following quirk flag seems to be used for this spec.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;(in sdhci.h)&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;/* Controller treats ADMA descriptors with length 0000h incorrectly */&lt;BR /&gt;#define &lt;STRONG&gt;SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC&lt;/STRONG&gt; (1&amp;lt;&amp;lt;30)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;This quirk flag is set in sdhci-esdhc-imx.c.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;static const struct sdhci_pltfm_data sdhci_esdhc_imx_pdata = {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; .quirks = ESDHC_DEFAULT_QUIRKS | SDHCI_QUIRK_NO_HISPD_BIT&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &lt;STRONG&gt;SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | SDHCI_QUIRK_BROKEN_CARD_DETECTION,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; .ops = &amp;amp;sdhci_esdhc_ops,&lt;BR /&gt;};&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We are not so sure but in newer SD spec, length = 0 setting seems to be accepted, correct??&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Anyway, i&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;f this quirk flag is set, the &lt;STRONG&gt;max_seg_size&lt;/STRONG&gt; member in &lt;STRONG&gt;struct mmc_host&lt;/STRONG&gt; is set to &lt;STRONG&gt;65535&lt;/STRONG&gt;&amp;nbsp;in sdhci.c.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&amp;nbsp; &amp;nbsp; /*&lt;BR /&gt;&amp;nbsp; &amp;nbsp; * Maximum segment size. Could be one segment with the maximum number&lt;BR /&gt;&amp;nbsp; &amp;nbsp; * of bytes. When doing hardware scatter/gather, each entry cannot&lt;BR /&gt;&amp;nbsp; &amp;nbsp; * be larger than 64 KiB though.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if (host-&amp;gt;flags &amp;amp; SDHCI_USE_ADMA) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (host-&amp;gt;quirks &amp;amp; &lt;STRONG&gt;SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC&lt;/STRONG&gt;)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mmc-&amp;gt;max_seg_size = &lt;STRONG&gt;65535&lt;/STRONG&gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mmc-&amp;gt;max_seg_size = 65536;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mmc-&amp;gt;max_seg_size = mmc-&amp;gt;max_req_size;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;max_seg_size member is used in&amp;nbsp;&lt;STRONG&gt;mmc_io_rw_extended&lt;/STRONG&gt; function in sdio_ops.c.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;We are not so sure about following code but it seems that the transfer data is split&amp;nbsp;by &lt;STRONG&gt;max_seg_size&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; unsigned addr, int incr_addr, u8 *buf, unsigned blocks, unsigned blksz)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; struct mmc_request mrq = {NULL};&lt;BR /&gt;&amp;nbsp; &amp;nbsp; struct mmc_command cmd = {0};&lt;BR /&gt;&amp;nbsp; &amp;nbsp; struct mmc_data data = {0};&lt;BR /&gt;&amp;nbsp; &amp;nbsp; struct scatterlist sg, *sg_ptr;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; struct sg_table sgtable;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; unsigned int nents, left_size, i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; unsigned int seg_size = card-&amp;gt;host-&amp;gt;&lt;STRONG&gt;max_seg_size&lt;/STRONG&gt;;&lt;BR /&gt;...&lt;BR /&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; nents = (left_size - 1) / seg_size + 1;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if (nents &amp;gt; 1) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (sg_alloc_table(&amp;amp;sgtable, nents, GFP_KERNEL))&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -ENOMEM;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data.sg = sgtable.sgl;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data.sg_len = nents;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for_each_sg(data.sg, sg_ptr, data.sg_len, i) {&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sg_set_page(sg_ptr, virt_to_page(buf + (i * seg_size)),&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; min(seg_size, left_size),&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; offset_in_page(buf + (i * seg_size)));&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; left_size = left_size - seg_size;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; } else {&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;We supposed that for DMA transfer, such unaligned odd number is not OK, so we tested to change &lt;STRONG&gt;max_seg_size&lt;/STRONG&gt; from 65535(0xFFFF) to &lt;STRONG&gt;61440(0xF000)&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;After all, the ETIMEDOUT is not occurred and the transfer seems to become OK now.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;So we assumed that wrong&amp;nbsp;&lt;STRONG&gt;max_seq_size&lt;/STRONG&gt; setting 65535 = 0xFFFF is the root cause.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;We are not so professional about SD Host, but we think that i.MX SD Host cannot accept 64KB length data for each descriptor (SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC should be set), the &lt;STRONG&gt;max_seg_size&lt;/STRONG&gt; should be set correct, &amp;nbsp;and aligned value (like 0xF000) for i.MX system, we supposed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;We are not sure which code (sdhci.c or sdhci-esdhc-imx.c) should be fixed, but it's better to modify Linux SD host code to avoid similar issue.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;What do you think?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Yonezawa&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Mar 2017 07:14:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662924#M101801</guid>
      <dc:creator>kotayonezawa</dc:creator>
      <dc:date>2017-03-27T07:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662925#M101802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Yonezawa&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sd driver structure is described in Table 32-5. uSDHC Driver Files MMC/SD Driver Files&lt;/P&gt;&lt;P&gt;attached Linux Manual. I believe it may be posted on kernel mail list or meta-fsl-arm mailing list&lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Flists.yoctoproject.org%2Flistinfo%2Fmeta-freescale" rel="nofollow" target="_blank"&gt;https://lists.yoctoproject.org/listinfo/meta-freescale&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Mar 2017 10:49:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662925#M101802</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-03-27T10:49:55Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6q SDIO error by large size data read</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662926#M101803</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;P&gt;We believe this fix will be useful, so please take it into consideration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Yonezawa&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Mar 2017 12:58:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6q-SDIO-error-by-large-size-data-read/m-p/662926#M101803</guid>
      <dc:creator>kotayonezawa</dc:creator>
      <dc:date>2017-03-27T12:58:50Z</dc:date>
    </item>
  </channel>
</rss>

