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.
Hi Everyone:
I connect an eMMC on the MMC2(2) interface(becuse MMC2(1) is multiplexed with the GPMC interface).I found it don't work in the u-boot.This is my mux configure code:
MV(CP(SDMMC5_CMD), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5))
MV(CP(SDMMC5_CLK), (PTU | OFF_EN | OFF_PD | OFF_IN | M5))
MV(CP(SDMMC5_DAT0), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5))
MV(CP(SDMMC5_DAT1), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5))
MV(CP(SDMMC5_DAT2), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5))
MV(CP(SDMMC5_DAT3), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5))
MV1(WK(PAD0_FREF_CLK0_OUT), ((PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5)))
MV1(WK(PAD1_FREF_CLK3_REQ), ((PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5)))
MV1(WK(PAD0_FREF_CLK3_OUT), ((PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5)))
MV1(WK(PAD1_FREF_CLK4_REQ), ((PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M5)))
and add mmc2 initialization code:
if (mmc_init(1)) {
printf("mmc1 init failed?\n");
return 1;
}
with some debug message,i found the eMMC don't response to CMD1:
start init mmc1
yichao:mmc_send_cmd,cmd = 0,arg = 0x00000000
yichao:response value = 00000000 80eb399c 480b4100 00000600
yichao:mmc_send_cmd,cmd = 8,arg = 0x000001aa
yichao:card no response
yichao:mmc_send_cmd,cmd = 55,arg = 0x00000000
yichao:card no response
yichao:mmc_send_cmd,cmd = 1,arg = 0x40000080
yichao:card no response
yichao:mmc_send_cmd,cmd = 0,arg = 0x00000000
yichao:response value = 00000000 80eb399c 00000002 00000001
yichao:mmc_send_cmd,cmd = 8,arg = 0x000001aa
yichao:card no response
yichao:mmc_send_cmd,cmd = 55,arg = 0x00000000
yichao:card no response
yichao:mmc_send_cmd,cmd = 1,arg = 0x40000080
yichao:card no response
yichao:mmc_send_cmd,cmd = 9,arg = 0x12340000
yichao:card no response
but if i use an SD card(connected on MMC1 interface) boot the Linux Kernel ,It works good!
mmc1: starting CMD52 arg 00000c00 flags 00000195
omap_hsmmc omap_hsmmc.4: mmc1: CMD52, argument 0x00000c00
hub 1-1:1.0: port 1: status 0101 change 0001
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000
mmc1: starting CMD52 arg 80000c08 flags 00000195
hub 1-1:1.0: port 3: status 0101 change 0001
omap_hsmmc omap_hsmmc.4: mmc1: CMD52, argument 0x80000c08
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:not set open drain
mmc1: starting CMD0 arg 00000000 flags 000000c0
omap_hsmmc omap_hsmmc.4: mmc1: CMD0, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD0): 0: 00000000 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:not set open drain
mmc1: starting CMD8 arg 000000aa flags 000002f5
omap_hsmmc omap_hsmmc.4: mmc1: CMD8, argument 0x000000aa
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD8): -110: 00000000 00000000 00000000 00000000
yichao:send_op_cond,ocr = 0x0
mmc1: starting CMD5 arg 00000000 flags 000002e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD5, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req failed (CMD5): -110, retrying...
omap_hsmmc omap_hsmmc.4: mmc1: CMD5, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req failed (CMD5): -110, retrying...
omap_hsmmc omap_hsmmc.4: mmc1: CMD5, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req failed (CMD5): -110, retrying...
omap_hsmmc omap_hsmmc.4: mmc1: CMD5, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD5): -110: 00000000 00000000 00000000 00000000
mmc1: starting CMD55 arg 00000000 flags 000000f5
omap_hsmmc omap_hsmmc.4: mmc1: CMD55, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc1: starting CMD55 arg 00000000 flags 000000f5
omap_hsmmc omap_hsmmc.4: mmc1: CMD55, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc1: starting CMD55 arg 00000000 flags 000000f5
omap_hsmmc omap_hsmmc.4: mmc1: CMD55, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc1: starting CMD55 arg 00000000 flags 000000f5
omap_hsmmc omap_hsmmc.4: mmc1: CMD55, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 18000
omap_hsmmc omap_hsmmc.4: MMC IRQ 0x18000 : ERRI CTO
mmc1: req done (CMD55): -110: 00000000 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:set open drain
mmc1: starting CMD1 arg 00000000 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:set open drain
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
usb 1-1: link qh256-0001/ee0e2c40 start 1 [1/0 us]
hub 1-1:1.0: state 7 ports 3 chg 000a evt 0000
hub 1-1:1.0: port 1, status 0101, change 0000, 12 Mb/s
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
usb 1-1.1: new high-speed USB device number 3 using ehci-omap
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: 40ff8080 00000000 00000000 00000000
mmc1: starting CMD1 arg 40000080 flags 000000e1
omap_hsmmc omap_hsmmc.4: mmc1: CMD1, argument 0x40000080
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD1): 0: c0ff8080 00000000 00000000 00000000
mmc1: starting CMD2 arg 00000000 flags 00000067
omap_hsmmc omap_hsmmc.4: mmc1: CMD2, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD2): 0: 45010053 454d3034 4790065b 012250f1
mmc1: starting CMD3 arg 00010000 flags 00000015
omap_hsmmc omap_hsmmc.4: mmc1: CMD3, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD3): 0: 00400500 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:not set open drain
mmc1: starting CMD9 arg 00010000 flags 00000007
omap_hsmmc omap_hsmmc.4: mmc1: CMD9, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD9): 0: d00f0032 0f5903ff fffffdff 924040c9
mmc1: starting CMD7 arg 00010000 flags 00000015
omap_hsmmc omap_hsmmc.4: mmc1: CMD7, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD7): 0: 00000700 00000000 00000000 00000000
mmc1: starting CMD8 arg 00000000 flags 000000b5
mmc1: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
omap_hsmmc omap_hsmmc.4: mmc1: CMD8, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD8): 0: 00000900 00000000 00000000 00000000
mmc1: 512 bytes transferred: 0
mmc1: starting CMD6 arg 03af0101 flags 0000049d
omap_hsmmc omap_hsmmc.4: mmc1: CMD6, argument 0x03af0101
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD6): 0: 00000800 00000000 00000000 00000000
mmc1: starting CMD13 arg 00010000 flags 00000195
omap_hsmmc omap_hsmmc.4: mmc1: CMD13, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc1: starting CMD6 arg 03b90101 flags 0000049d
omap_hsmmc omap_hsmmc.4: mmc1: CMD6, argument 0x03b90101
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD6): 0: 00000800 00000000 00000000 00000000
mmc1: starting CMD13 arg 00010000 flags 00000195
omap_hsmmc omap_hsmmc.4: mmc1: CMD13, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD13): 0: 00000900 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 400000Hz
yichao:not set open drain
mmc1: starting CMD6 arg 03a10101 flags 0000049d
omap_hsmmc omap_hsmmc.4: mmc1: CMD6, argument 0x03a10101
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD6): 0: 00000800 00000000 00000000 00000000
mmc1: starting CMD13 arg 00010000 flags 00000195
omap_hsmmc omap_hsmmc.4: mmc1: CMD13, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD13): 0: 00000900 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 52000000Hz
yichao:not set open drain
mmc1: starting CMD6 arg 03b70101 flags 0000049d
omap_hsmmc omap_hsmmc.4: mmc1: CMD6, argument 0x03b70101
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD6): 0: 00000800 00000000 00000000 00000000
mmc1: starting CMD13 arg 00010000 flags 00000195
omap_hsmmc omap_hsmmc.4: mmc1: CMD13, argument 0x00010000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
mmc1: req done (CMD13): 0: 00000900 00000000 00000000 00000000
omap_hsmmc omap_hsmmc.4: Set clock to 52000000Hz
yichao:not set open drain
mmc1: starting CMD8 arg 00000000 flags 000000b5
mmc1: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
omap_hsmmc omap_hsmmc.4: mmc1: CMD8, argument 0x00000000
omap_hsmmc omap_hsmmc.4: IRQ Status is 1
omap_hsmmc omap_hsmmc.4: IRQ Status is 2
mmc1: req done (CMD8): 0: 00000900 00000000 00000000 00000000
mmc1: 512 bytes transferred: 0
mmc1: new high speed MMC card at address 0001
mmcblk1: mmc1:0001 SEM04G 3.68 GiB
i don't know what to do next,any help will be appreciated!!
yichao feng wrote the following post at Jul 26 2013 04:10 AM:
> Hi Everyone:
> I connect an eMMC on the MMC2(2) interface(becuse MMC2(1) is multiplexed with the GPMC interface).I
> found it don't work in the u-boot.This is my mux configure code:
...
> with some debug message,i found the eMMC don't response to CMD1:
...
> but if i use an SD card(connected on MMC1 interface) boot the Linux Kernel ,It works good!
yichao feng,
I have a similar problem on OMAP 3730.
The X-Loader and U-Boot that I have did not support MMC2. A co-worker found these links
but you will need to go up a level in their projects to get the actual U-Boot that they reference.
I got both X-Loader and U-Boot working with MMC, but never did need the SD card for them.
However, I have not yet solved the problem for Linux.
Did you ever find a solution for this.
Darryl