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.

Linux/AM5706: How to choose bootable MMC

Part Number: AM5706

Tool/software: Linux

Hello,

I have prepared a MLO and u-boot.img and loaded them to eMMC.

eMMC was configured by the next way - 

=> mmc part

Partition Map for MMC device 0 -- Partition Type: EFI

Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000300 0x000010ff "bootloader"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: d117f98e-6f2c-d04b-a5b2-331a19f91cb2
2 0x00001500 0x00e87fde "rootfs"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: 25718777-d0ad-7443-9e60-02cb591c9737

MLO was loaded to 0x100 and 0x200 addresses. u-boot.img was loaded to 0x300 address.

After resetting I get the next errors - 

U-Boot SPL 2018.01-g313dcd69c2 (Jul 24 2019 - 12:23:13)
DRA722-GP ES2.1
Trying to boot from MMC2_2
no pinctrl state for default mode
i2c_write: error waiting for addr ACK (status=0x116)
tps65903x: could not set LDO1 voltage.
spl: could not find mmc device. error: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

My eMMC is physically linked to mmc2. But I am don't know why spl is trying to load image from MMC2_2 and how to change it.

That is the part of dts related to mmc -

&mmc2 {
status = "okay";

pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins_default>;

bus-width = <8>;
ti,non-removable;
cap-mmc-dual-data-rate;
};

Thanks

  • Hello,

    The message "Trying to boot from MMC2_2" is an indication that the board is attempting to boot from the eMMC. While booting from the SD card, could you please run the following commands on the Uboot prompt and share the output:

    => mmc list
    OMAP SD/MMC: 0 (SD)
    OMAP SD/MMC: 1 (eMMC)
    => mmc dev 1
    switch to partitions #0, OK
    mmc1(part 0) is current device
    => mmc info

    Also, in the mmc2 node, I am not seeing any entry for the "vmmc-supply" node and I am wondering if this is related to the tps65903x error you are observing.

    Regards,
    Krunal

     

  • I don't have SD card. I am loading programms through jtag.

    => mmc list
    OMAP SD/MMC: 0 (eMMC)
    => mmc dev 0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    => mmc info
    Device: OMAP SD/MMC
    Manufacturer ID: fe
    OEM: 14e
    Name: MMC08
    Bus Speed: 48000000
    Mode : MMC High Speed (52MHz)
    Rd Block Len: 512
    MMC version 4.4.1
    High Capacity: Yes
    Capacity: 7.3 GiB
    Bus Width: 8-bit
    Erase Group Size: 512 KiB
    HC WP Group Size: 8 MiB
    User Capacity: 7.3 GiB
    Boot Capacity: 16 MiB ENH
    RPMB Capacity: 128 KiB ENH
    

    I have overcame the problem when changed board_boot_order function to -

    __weak void board_boot_order(u32 *spl_boot_list)
    {
    	spl_boot_list[0] = spl_boot_device();
    	if ((spl_boot_list[0] >= BOOT_DEVICE_MMC1) || (spl_boot_list[0] <= BOOT_DEVICE_MMC2_2))
    	{
    		spl_boot_list[0] = BOOT_DEVICE_MMC1;
    		spl_boot_list[1] = BOOT_DEVICE_MMC2;
    		spl_boot_list[2] = BOOT_DEVICE_MMC2_2;
    	}
    }

    But, I guess it is not a rigth solving.

    I'll try fix voltage supply, thanks for pointing out, but I am doubt it is related to the general problem.