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.

AM5728 IDK: 如何使用DFU来烧写eMMC

Other Parts Discussed in Thread: AM5728

Hi, all

根据手册视频以及e2e中TI员工提供的补丁,我可以在AM5728IDK上使用USB1来进行DFU。但当我进入U-Boot后,却无法通过DFU来更新eMMC。

我根据Linux Core U-Boot User's Guide 内容,对eMMC进行分区,得到以下log:

U-Boot SPL 2018.01-00572-g90aee56045 (May 06 2019 - 16:26:48)
DRA752-GP ES2.0
Trying to boot from DFU
Using default environment

################DOWNLOAD ... OK
Ctrl+C to exit ...


U-Boot 2018.01-00572-g90aee56045 (May 06 2019 - 16:26:48 +0800)

CPU : DRA752-GP ES2.0
Model: TI AM5728 IDK
Board: AM572x IDK REV
DRAM: 2 GiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
omap_hsmmc_send_cmd : DMA timeout: No status update
*** Warning - MMC init failed, using default environment

Warning: fastboot.board_rev: unknown board revision
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
invalid mmc device
SCSI: SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
Found 0 device(s).
Net:
Warning: ethernet@48484000 using MAC address from ROM
eth0: ethernet@48484000
Hit any key to stop autoboot: 0
=> mmc list
OMAP SD/MMC: 0
OMAP SD/MMC: 1
=> printenv partitions
partitions=uuid_disk=${uuid_gpt_disk};name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};name=rootf}
=> setenv uuid_gpt_disk 9e337e99-a06f-4ff8-93fe-9c6fcef11259
=> setenv uuid_gpt_bootloader 5e786785-b6d5-430d-852c-e02a008bae14
=> setenv uuid_gpt_rootfs 0f189953-4440-43f5-9c27-6fa6e40abba3
=> gpt write mmc 1 ${partitions}
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
do_gpt: mmc dev 1 NOT available
=> mmc dev
MMC: no card present
=> mmc dev 1
mmc_init_stream: timedout waiting for cc2!
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
=>

这个问题困扰了我好久,麻烦论坛各位大佬帮忙。

 

Best Regards,

WangXu

  • 请问如果设成emmc boot模式,emmc能被识别么?
  • Dear Yongqing,

    谢谢您的回答,我现在去看这个thread。
  • Dear Shine,

    谢谢您的回复,
    我无法从emmc boot,似乎没有识别到emmc。
  • Dear Yongqing,

    我看完了这个回答,我目前可以通过usb进入u-boot。但无法对eMMC进行分区。
    再次感谢您的回复。
  • 提示什么信息呢

  • Dear Yongqing,

    感谢您的回复,
    目前提示:
    Card did not respond to voltage select!
  • Dear Yongqing,

    感谢您的回复,
    目前提示:
    Card did not respond to voltage select!
  • 这个板子是你自己做的?
  • 感谢您的回复,

    正如上所述,我使用的是am5728 idk的开发版,并非是自己做的。我也检查过设备树,但是我觉得我的设备树并没有问题。以下是我的设备树文件关于mmc的部分。

    am57xx-beagle-x15-common.dtsi:

    &mmc1 {
        status = "okay";

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

        bus-width = <4>;
        cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
    };

    &mmc2 {
        status = "okay";

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

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

    am57xx-idk-common.dtsi:

    &mmc1 {
        status = "okay";
        vmmc-supply = <&v3_3d>;
        vqmmc-supply = <&ldo1_reg>;
        bus-width = <4>;
        cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
    };

    &mmc2 {
        status = "okay";
        vmmc-supply = <&v3_3d>;
        bus-width = <8>;
        ti,non-removable;
        max-frequency = <96000000>;
        no-1-8-v;
        /delete-property/ mmc-hs200-1_8v;
    };

    am572x-idk.dts:

    &mmc1 {
        pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
        pinctrl-0 = <&mmc1_pins_default>;
        pinctrl-1 = <&mmc1_pins_hs>;
        pinctrl-2 = <&mmc1_pins_sdr12>;
        pinctrl-3 = <&mmc1_pins_sdr25>;
        pinctrl-4 = <&mmc1_pins_sdr50>;
        pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
        pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
    };

    &mmc2 {
        pinctrl-names = "default", "hs", "ddr_1_8v";
        pinctrl-0 = <&mmc2_pins_default>;
        pinctrl-1 = <&mmc2_pins_hs>;
        pinctrl-2 = <&mmc2_pins_ddr_rev20>;
    };

    mux_data.h:

        {GPMC_A19, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a19.mmc2_dat4 */
        {GPMC_A20, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a20.mmc2_dat5 */
        {GPMC_A21, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a21.mmc2_dat6 */
        {GPMC_A22, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a22.mmc2_dat7 */
        {GPMC_A23, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a23.mmc2_clk */
        {GPMC_A24, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a24.mmc2_dat0 */
        {GPMC_A25, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a25.mmc2_dat1 */
        {GPMC_A26, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a26.mmc2_dat2 */
        {GPMC_A27, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_a27.mmc2_dat3 */
        {GPMC_CS1, (M1 | PIN_INPUT_PULLUP)},    /* gpmc_cs1.mmc2_cmd */