This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3358: Not able to boot from eMMC

Part Number: AM3358


Hello,

I am working on am3358 based custom board. I am using U-boot 2017. I want to boot the board from eMMC. When i try to do that, board resets. Same happens when I use "mmc dev 1" command on uboot prompt. following are the logs:

Hit any key to stop autoboot:  0
=> mmc list
OMAP SD/MMC: 0 (SD)
OMAP SD/MMC: 1
=> mmc dev 1
data abort
pc : [<bff71a30>]          lr : [<bff71a25>]
reloc pc : [<8081ea30>]    lr : [<8081ea25>]
sp : bdf28cc8  ip : 00000000     fp : 00000003
r10: bdf34978  r9 : bdf32ed8     r8 : bffb309c
r7 : 40000000  r6 : bdf34908     r5 : bdf34978  r4 : 47810000
r3 : bff7104b  r2 : bff71a19     r1 : bff9b21e  r0 : bdf34908
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32
Resetting CPU ...

resetting ...


Following is the device tree configurations:

                                                                              
        sdcard_pins: pinmux_sdcard_pins {                                       
                pinctrl-single,pins = <                                         
                        AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE5)                      /* (B16) spi0_cs1.mmc0_sdcd  */
                        AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)       /* (G18) mmc0_dat0.mmc0_dat0 */
                        AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)       /* (H17) mmc0_dat1.mmc0_dat1 */
                        AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)       /* (H18) mmc0_dat2.mmc0_dat2 */
                        AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)       /* (H19) mmc0_dat3.mmc0_dat3 */
                        AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)       /* (G17) mmc0_cmd.mmc0_cmd   */
                        AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)       /* (G19) mmc0_clk.mmc0_clk   */
                >;                                                              
        };                                                                      
                                                                                
        emmc_pins: pinmux_emmc_pins {                                           
                pinctrl-single,pins = <                                         
                        AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1)       /* (W10) gpmc_ad0.mmc1_dat0 */
                        AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1)       /* (V9) gpmc_ad1.mmc1_dat1  */
                        AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1)       /* (V12) gpmc_ad2.mmc1_dat2 */
                        AM33XX_IOPAD(0x80C, PIN_INPUT_PULLUP | MUX_MODE1)       /* (W13) gpmc_ad3.mmc1_dat3 */
                        AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1)       /* (V13) gpmc_ad4.mmc1_dat4 */
                        AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1)       /* (W14) gpmc_ad5.mmc1_dat5 */
                        AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1)       /* (U14) gpmc_ad6.mmc1_dat6 */
                        AM33XX_IOPAD(0x81C, PIN_INPUT_PULLUP | MUX_MODE1)       /* (W15) gpmc_ad7.mmc1_dat7 */
                        AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2)       /* (U15) gpmc_csn2.mmc1_cmd */
                        AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2)       /* (V14) gpmc_csn1.mmc1_clk */
                >;                                                              
        };                                                                      
                                                           

&mmc1 {                                                                         
        status = "okay";                                                        
        vmmc-supply = <&vmmc_reg>;                                              
        bus-width = <4>;                                                        
        pinctrl-names = "default";                                              
        pinctrl-0 = <&sdcard_pins>;                                             
        ti,needs-special-hs-handling;                                           
};                                                                              
                                                                                
&mmc2 {                                                                         
        status = "okay";                                                        
        vmmc-supply = <&vmmc_reg>;                                              
        ti,non-removable;                                                       
        bus-width = <8>;                                                        
        cap-power-off-card;                                                     
        keep-power-in-suspend;                                                  
        pinctrl-names = "default";                                              
        pinctrl-0 = <&emmc_pins>;                                               
        ti,vcc-aux-disable-is-sleep;                                            
};                                                                              

I am to boot from sd card properly. Please let me know what is the issue with eMMC?

Regards,

Rohit