<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">I am attempting to add support for eMMC on a custom board, using the microSOM iMX6, but in uBoot, communications with the eMMC device fail with a timeout. This uBoot is based on the repository https://github.com/SolidRun/u-boot-imx6.git,
 commit e509dd30e97bf2cbce21502e4462d9d7c1d85daa "x6: solidrun: Add support for HummingBoard v2" 2015-06-30 09:20:11.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am using the uBoot config mx6_cubox-i.h/c, with the addition of the eMMC pad settings:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline">
<span class="apple-converted-space"><span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">    
</span></span><span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">MX6QDL_SET_PAD(PAD_SD3_CLK__USDHC3_CLK   , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_CMD__USDHC3_CMD   , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT0__USDHC3_DAT0 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT1__USDHC3_DAT1 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT2__USDHC3_DAT2 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT3__USDHC3_DAT3 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT4__USDHC3_DAT4 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT5__USDHC3_DAT5 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT6__USDHC3_DAT6 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_DAT7__USDHC3_DAT7 , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     MX6QDL_SET_PAD(PAD_SD3_RST__USDHC3_RST   , MUX_PAD_CTRL(USDHC_PAD_CTRL));</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     usdhc3_cfg.max_bus_width = 8;</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     usdhc3_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     status |= fsl_esdhc_initialize(bis, &usdhc3_cfg);</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     /* Assert eMMC SD3_RST (GPIO7_IO08) (active low)# */</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p style="margin:0cm;margin-bottom:.0001pt;line-height:15.75pt;background:white;vertical-align:baseline;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.5pt;font-family:"Courier New";color:#51626F;border:none windowtext 1.0pt;padding:0cm">     gpio_direction_output(IMX_GPIO_NR(7, 8), 1);</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#51626F"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The device is present when using the uboot ‘mmc list’ command, but when attempting to change to the device, with ‘mmc dev 1’ it hangs. I’ve enabled the existing debug trace CONFIG_MMC_TRACE in the mmc.c function mmc_send_cmd, and it gives
 the following output (with my additional debug printfs). It time out with the command SD_CMD_SEND_IF_COND during the mmc_start_init() function:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">iRelay U-Boot > mmc dev 1<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_init:1286 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_init:1290 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1206<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1210<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1212 err=0<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1216 err=0<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1219 err=0<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1221 err=0<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:0 [MMC_CMD_GO_IDLE_STATE]<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_NONE<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1225 err=0<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1229 err=0<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:8 [SD_CMD_SEND_IF_COND]   <span style="font-family:Wingdings">
ß</span>--------------- It times out on this command<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x000001AA<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R1,5,6,7         0x00000003 <o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_send_if_cond:1150 err=-19 [TIMEOUT]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1236 err=-19 [TIMEOUT]<o:p></o:p></p>
<p class="MsoNormal">~~~ sd_send_op_cond:295<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:55<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R1,5,6,7         0x00000003 <o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1241 err=-19 [TIMEOUT]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1244 err=-19 [TIMEOUT]<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:0<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_NONE<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:1<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R3,4             0x00FF8080 <o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:1<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x40300000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R3,4             0x00FF8080 <o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1246 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1257 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_start_init:1260 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">~~~ mmc_init:1294 err=-20 [IN_PROGRESS]<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:1<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x40300000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R3,4             0x00FF8080 <o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:1<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x40300000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R3,4             0xC0FF8080 <o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:2<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R2               0xFE014E50 <o:p></o:p></p>
<p class="MsoNormal">                                         0x31585858 <o:p></o:p></p>
<p class="MsoNormal">                                         0x581229F3 <o:p></o:p></p>
<p class="MsoNormal">                                         0x9DE4C100 <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                        DUMPING DATA<o:p></o:p></p>
<p class="MsoNormal">                                        000 - FE 01 4E 50 <o:p>
</o:p></p>
<p class="MsoNormal">                                        004 - 31 58 58 58 <o:p>
</o:p></p>
<p class="MsoNormal">                                        008 - 58 12 29 F3 <o:p>
</o:p></p>
<p class="MsoNormal">                                        012 - 9D E4 C1 00 <o:p>
</o:p></p>
<p class="MsoNormal">CMD_SEND:3<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R1,5,6,7         0x00000500 <o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:9<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R2               0xD04F0132 <o:p></o:p></p>
<p class="MsoNormal">                                         0x0F5913FF <o:p></o:p></p>
<p class="MsoNormal">                                         0xFFFFFFE7 <o:p></o:p></p>
<p class="MsoNormal">                                         0x8A400000 <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                        DUMPING DATA<o:p></o:p></p>
<p class="MsoNormal">                                        000 - D0 4F 01 32 <o:p>
</o:p></p>
<p class="MsoNormal">                                        004 - 0F 59 13 FF <o:p>
</o:p></p>
<p class="MsoNormal">                                        008 - FF FF FF E7 <o:p>
</o:p></p>
<p class="MsoNormal">                                        012 - 8A 40 00 00 <o:p>
</o:p></p>
<p class="MsoNormal">CMD_SEND:13 [MMC_CMD_SEND_STATUS]<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R1,5,6,7         0x00000700 <o:p></o:p></p>
<p class="MsoNormal">CURR STATE:3<o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:7 [MMC_CMD_SELECT_CARD]<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal">                MMC_RSP_R1,5,6,7         0x00000700 <o:p></o:p></p>
<p class="MsoNormal">CMD_SEND:8 [MMC_CMD_SEND_EXT_CSD]<o:p></o:p></p>
<p class="MsoNormal">                ARG                      0x00000000<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:Wingdings">ß</span>------------------------------------------------- Hangs here<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p style="font-family:Arial" id="c1-id-6"><span id="c1-id-8" style="FONT-SIZE: 8pt; COLOR: white"><img src="cid:MWC2016.jpg" alt="" id="c1-id-9"> tfx</span></p>
</body>
</html>