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.

BeagleBone boot from MMC1

Other Parts Discussed in Thread: AM3358

Hi,

I want to verify AM335x boot from MMC1.

I have changed the Sysboot Resistors so that it boots form MMC1 and added another MMC1 connector as per the pins mentioned for MMC1 booting.
But the board is not booting from mmc1.

MMC1_CLK line is permanently low, any idea what can be wrong?

Prasant

  • 1. what is the release version of the linux-psp that you re using

    2. is the pin-mux set properly for MMC1. If yes, can you share the code.

    3. in mmc1_init  registered for beaglebone

    4. do you see mmc driver probe being called for MMC1

  • Hi Gururaja,

    I'm using UBoot and kernel from Arago project.

    I have not done any changes to UBoot and Linux. I know changes are required there also.
    Even without those changes I should see clock and cmd signals on the lines, which is not seen (oscilloscope)

    I have not yet got into changing the Uboot & kernel. Want to confirm if changing the sysboot is enough on the hardware end?

    - Prasant

  • Prasant J said:

    Hi Gururaja,

    I'm using UBoot and kernel from Arago project.

    Which version (release or commit info would be useful here)

    Prasant J said:

    I have not done any changes to UBoot and Linux. I know changes are required there also.
    Even without those changes I should see clock and cmd signals on the lines, which is not seen (oscilloscope)

    No. You will not see any Signals on those Lines. Default pin-mux for MMC1 pins are for GPMC. You need to change them to MMC1. Kindly look at the AM335x Data Sheet. http://www.ti.com/lit/ds/symlink/am3358.pdf

    Prasant J said:

    I have not yet got into changing the Uboot & kernel. Want to confirm if changing the sysboot is enough on the hardware end?

    AFAIK BeagleBone doesn't have any SYSBOOT pins/switches to change. Are you sure you are using BeagleBone.

  • Hi Gururaja,

    Little correction required, I'm using kernel 3.2.14+ from yocto project (not arago project). UBoot version 2011.09+ again from yocto project.

    Beaglebone does not have any switches, but I have re-soldered the resistors to change the Sysboot value. (and I have verified the signal levels to ensure the correct boot configuration for MMC1).

    You are saying that I need to change the pin mux configuration. But even before MLO is loaded the internal ROM Code should start the MMC1 clock.. right?
    So I should see some clock signals on the mmc1_clock line, which I do not see.

    Any suggestions? Did I miss anything?

    -Prasant

  • Hi,

    Any suggestions on booting Beaglebone with MMC1?

    I have changed the sysboot resistors so that the configuration is now to boot from MMC1, but I do not see any signal on MMC1_CLK line.
    I do not need to change anything in Uboot or kernel to see the MMC1_CLK signal (on the oscilloscope) as this is done by the internal ROM Code.

    Any inputs on this will help.

    -Prasant

  • Hi Gururaja,

    I had incorrectly connected my MMC1, so I was not seeing the MMC1_CLK signals (back to school for me).

    I have patched my Uboot following the commits in the "u-boot-am33x" in the arago project. Now, MLO boots and this is what I see

    U-Boot SPL 2011.09 (Jun 28 2012 - 16:44:35)
    Texas Instruments Revision detection unimplemented
    No AC power, disabling frequency switch
    boot device - 9
    OMAP SD/MMC: 0
    mmc_send_cmd: timedout waiting for cmddis!
    ** Can't read from device 0 **
    spl: fat register err - -1
    ### ERROR ### Please RESET the board ###:

    This is what is see if I edit the file:
    arch/arm/cpu/armv7/omap-common/spl_mmc.c:
    in function spl_mmc_load_image() instead of mmc = find_mmc_device(0); it is mmc = find_mmc_device(1);

    U-Boot SPL 2011.09 (Jun 28 2012 - 16:38:40)                                                       
    Texas Instruments Revision detection unimplemented                                                
    No AC power, disabling frequency switch                                      
    boot device - 9                                                              
    OMAP SD/MMC: 0                          
    MMC Device 1 not found                  
    spl: mmc device not found!!             
    ### ERROR ### Please RESET the board ###

    Can you see the prints and understand what I may have missed? Meanwhile I will also try the latest arago u-boot.

    -Prasant

  • Hi Gururaja,

    I cloned the u-boot-am33x git repo today and tried to boot from MMC1. This is what I get:

    U-Boot SPL 2011.09 (Jun 28 2012 - 18:32:19)                                                       
    Texas Instruments Revision detection unimplemented                                                
    No daughter card present                                                     
    No AC power, disabling frequency switch                                      
    OMAP SD/MMC: 0                          
    mmc_send_cmd: timedout waiting for cmddis!
    ** Can't read from device 0 **          
    spl: fat register err - -1              
    ### ERROR ### Please RESET the board ###

    When I put the uSDCard in MMC0 slot  instead of MMC1 (as the boot order is MMC1->MMC0->UART0->USB0), then the same Card boots from MMC0.

    It fails in fs/fat/fat.c:  fat_register_device() function?

    Any suggestions?

    Prasant Jalan

  • Hi,

    Solved it!

    Hardware issue, forgot to connect the SD_CD Pin. (I would want to get rid of that, I do not want to use SD_CD pin)

    Some changes were required in my uboot, I guess no change will be required on the u-boot-am33x git repo.

    So, now I can boot from MMC1.

    Thanks!

    -Prasant

  • hi all

    I also have the same problem!

    I use the version is ti-sdk-am335x-evm-05.04.01.00 .

    And using the prebuilt image .

    The uboot environment is :

    bootcmd=mmc rescan ; fatload mmc 1 81000000 uImage ; bootm 81000000

    setenv bootargs 'console=ttyO0,115200n8 androidboot.console=ttyO0 mem=256M root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait init=/init ip=off'

    And I have already connect the cd to the ground !  But it can not boot success!

    mmc_send_cmd: timedout waiting for cmddis!
    MMC: block number 0x1 exceeds max(0x0)
    ** Can't read from device 1 **

    ** Unable to use mmc 1:1 for fatload **
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    if i input the command

    mmc dev 1

    the console reply :

    mmc_send_cmd: timedout waiting for cmddis!
    mmc1 is current device

    why ?

  • Hi liu,

    Interesting observation, do update when you get the solution.

    Check the definition of SD_CD pin in UBoot. There is a possibility that Uboot SPL is using some other SD_CD PIN and Uboot is using some other SD_CD Pin. Verify both are same. If they are different then as a test connect both pins to ground and try.

    If both are same, then as a work around, comment out the portion that checks for SD_CD pin, it should then just read the card.

    -Prasant

  • hi Prasant 

    I have double check the sd_cd pin .It using the mcasp0_fsx .

       {OFFSET(mcasp0_fsx), (MODE(4) | RXACTIVE)},     /* MMC1_CD */

    I think there are some problem about the driver of  mmc1 in the uboot.

    So can you send your  u-boot.img to me if it is convenient for you . king.liu88520@gmail.com



    thanks



  • hi liu,

    I will not mind to send my uboot, only if I have built it myself.

    I have just worked with SPL code as a proof of concept and have to still work with Uboot, which I'm afraid is not going to be atleast for another month. So, I was interested in your solution, as I would be hitting the same road blocks may be one month (or more) down the line.

    I have assumed that of SPL works for me, even UBoot will work. But now I'm a little surprised with this issue. (Your issue is: SPL has loaded the kernel but Uboot is not booting the kernel)

    Try this:
    - If you pull up (make HIGH) mcasp0_fsx pin, then your SPL code should not boot, and you will get some error msg.
    Test this and update.

    There should not be any issue in UBoot driver of MMC1, as the same driver is used by SPL for Uboot loading.

    -Prasant

  • Hello Prasant

    Am looking for ubuntu-12.04 LTS (3.2.14)  beglebone bsp, do you have any idea, where to get this ?

    Any help will be greatly appreciated.

    Regards                                                                                                                                                                                                                                ..Satya.

     

  • Hello Satya,

    I have not worked on Beaglebone for more than a year now. I'm now sure from where to get the kernel that you are interested in.

    You should post your query in a separate thread. There are enough active users out there and they would help you.

    -Prasant