Hi all,
I've been trying to boot the 2.6.36 kernel with a filesystem on an SD card on my custom 9G20 board. The wiring is the same as the 9G20 EK, and the card works under U-boot.
If I boot Linux with a filesystem provided by initramfs, I cannot mount the card. Looking at dmesg, code from at91_mci.c is definitely executing, but it looks like the card is not responding. The errors I see in dmesg as pasted at the end of this post.
This thread suggests that MMC support on the 9G20 with at least some cards is broken in 2.6.36:
http://www.spinics.net/lists/arm-kernel/msg89310.htmlI've also seen a recent forum post from nferre suggesting that the 2.6.36 kernel is missing some MMC patches needed for the 9G45.
Does anyone have an SD card working on a 9G20 with a recent kernel? If not, any suggestions as to what to do next?
Thanks,
Brandon
--
Brandon Stafford
Rascal Micro
Somerville, MA
Dmesg errors
--------------------------
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
clkdiv = 165. mcck = 397879
MMC: Setting controller bus width to 1
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
Freeing init memory: 1088K
mmc0: starting CMD52 arg 00000c00 flags 00000195
Sending command 52 as 00001874, arg = 00000C00, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 52, retries = 0)
mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD52 arg 80000c08 flags 00000195
Sending command 52 as 00001874, arg = 80000C08, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 52, retries = 0)
mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
clkdiv = 165. mcck = 397879
MMC: Setting controller bus width to 1
mmc0: starting CMD0 arg 00000000 flags 000000c0
Sending command 0 as 00000800, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0000C0E5, C07F0001, 00000001
Command ready
Completed command
Status = 00000001/0000c0e5 [00000000 00000000 00000000 00000000]
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
clkdiv = 165. mcck = 397879
MMC: Setting controller bus width to 1
mmc0: starting CMD8 arg 000001aa flags 000002f5
Sending command 8 as 00001848, arg = 000001AA, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 8, retries = 0)
mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD5 arg 00000000 flags 000002e1
Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 5, retries = 3)
mmc0: req failed (CMD5): -110, retrying...
Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 5, retries = 2)
mmc0: req failed (CMD5): -110, retrying...
Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 5, retries = 1)
mmc0: req failed (CMD5): -110, retrying...
Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 5, retries = 0)
mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 55, retries = 0)
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E5, C07F0001, 00100001
MMC: Response timeout
Completed command
Status = 00100001/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 55, retries = 0)
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 55, retries = 0)
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 55, retries = 0)
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD1 arg 00000000 flags 000000e1
Clearing timeout
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Clearing: SR = 0000C0E4
Sending command 1 as 00001841, arg = 00000000, blocks = 0, length = 0 (MR = 00009BA5)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 00100000/0010c0e5 [00000000 00000000 00000000 00000000]
Error detected and set to -110/0 (cmd = 1, retries = 0)
mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
MMC: Setting controller bus width to 1
Relevant parts of kernel config, if useful
----------------------------------------------------
CONFIG_MMC=y
CONFIG_MMC_DEBUG=y
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_AT91=y
# CONFIG_MMC_ATMELMCI is not set
# CONFIG_MMC_SPI is not set