Skip to contentSkip to conversation

MMC: OMAP: Add MMC multislot support

PATCH In review Carlos Aguiar 3 participants 11 messages Nov 26, 2007 – Dec 1, 2007

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover MMC: OMAP: Add MMC multislot support

Hi Tony and folks,

This is the latest 'MMC: OMAP: Add MMC multislot support' patch series with changes, corrections and improvements based on recent comments and suggestions from community and coworkers.

Just to remind you, this patch series adds the MMC multislot support for
N800 and TI OMAP H2 and H3 boards, and Siemens SX1. It's based on Juha's and Jarkko's earlier implementation and it can be applied against most updated
linux-omap tree (2.6.24-rc3-omap1, on top of commit 3e1251dd443d07f5a5298646adf746e4add89cf3).

After recent merging of linux omap tree with linus tree, such support was broken for N800. After investigating it, I realize the source of the problem comes from DMA, from a line of Anand Gadiyar' earlier patch committed [1].

In order this support work properly on N800, please apply the patch I proposed at [2].

I've tested with MMC, SD and SDHC cards and looks fine for the boards mentioned above (SX1 is compiled test only).

Testing, comments and suggestions are welcome.

BR,

Carlos.

PS: This week, I'll be sending the patches to provide such support for Innovator 1510.

[1] http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=8691f1711eace1ee237a474a31574bdd59efb4c3
[2] http://linux.omap.com/pipermail/linux-omap-open-source/2007-November/012177.html

Signature · 7 lines
Carlos Eduardo Aguiar
Nokia Institute of Technology - INdT
Open Source Mobile Research Center - OSMRC - Manaus
Core Team
Phone: +55 92 2126-1079
Mobile: +55 92 8127-1797
E-mail: [email protected]
reviewer
#1 lore raw

Hi,

Quoted 11 lines · Carlos Aguiar

Hi Tony and folks,

This is the latest 'MMC: OMAP: Add MMC multislot support' patch series with changes, corrections and improvements based on recent comments and suggestions from community and coworkers.

Just to remind you, this patch series adds the MMC multislot support for
N800 and TI OMAP H2 and H3 boards, and Siemens SX1. It's based on Juha's and Jarkko's earlier implementation and it can be applied against most updated
linux-omap tree (2.6.24-rc3-omap1, on top of commit 3e1251dd443d07f5a5298646adf746e4add89cf3).

Quoted 5 lines

After recent merging of linux omap tree with linus tree, such support was broken for N800. After investigating it, I realize the source of the problem comes from DMA, from a line of Anand Gadiyar' earlier patch committed [1].

In order this support work properly on N800, please apply the patch I proposed at [2].

Thanks, pushed your DMA fix.

Quoted 4 lines

I've tested with MMC, SD and SDHC cards and looks fine for the boards mentioned above (SX1 is compiled test only).

Testing, comments and suggestions are welcome.

Well, I've pushed most of your patches. I ended up splitting your patch 02/17 into something that's easier to read and also compiles. Basically I temporarily removed all the cover switch handling and fixed the header.

I did not push patches 15-17 as the power up should be done the same way as for other boards. Can you please refresh those patches?

Regards,

Tony

#2 lore raw

Hi,

After multislot patches committed, I created the apollon mmc file. It probes the mmc slot and find partitions.

It seems to be working. but after some operations it stops. Actually it wait the interrupt.

I disabled a lot of options, wire4, high speed, max frequency. but it's same.

/ # cat /proc/interrupts
CPU0

 12:        493        INTC  DMA
 37:       1580        INTC  gp timer
 72:        783        INTC  serial
 83:        101        INTC  mmci-omap
176:          0        GPIO  enter sw
177:          0        GPIO  up sw
218:          0        GPIO  down sw
234:       6057        GPIO  eth0
Err:          0
/ # vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  1      0 107296  12220   2268    0    0     0    29   22    11  0  0 93  6
 0  1      0 107296  12220   2268    0    0     0     0   48    26  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   40    26  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   35    30  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   40    32  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   33    24  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   39    28  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   43    27  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   42    25  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   35    29  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   35    27  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   29    22  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   40    29  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   38    26  0  0  0 100

/ # cat /proc/interrupts
CPU0

 12:        493        INTC  DMA
 37:       2148        INTC  gp timer
 72:        888        INTC  serial
 83:        101        INTC  mmci-omap
176:          0        GPIO  enter sw
177:          0        GPIO  up sw
218:          0        GPIO  down sw
234:       6342        GPIO  eth0

Err: 0

Are there any clues?

Thank you,
Kyungmin Park

Quoted 44 lines · Tony Lindgren

Hi,

Quoted 11 lines · Carlos Aguiar

Hi Tony and folks,

This is the latest 'MMC: OMAP: Add MMC multislot support' patch series with changes, corrections and improvements based on recent comments and suggestions from community and coworkers.

Just to remind you, this patch series adds the MMC multislot support for
N800 and TI OMAP H2 and H3 boards, and Siemens SX1. It's based on Juha's and Jarkko's earlier implementation and it can be applied against most updated
linux-omap tree (2.6.24-rc3-omap1, on top of commit 3e1251dd443d07f5a5298646adf746e4add89cf3).

Quoted 5 lines

After recent merging of linux omap tree with linus tree, such support was broken for N800. After investigating it, I realize the source of the problem comes from DMA, from a line of Anand Gadiyar' earlier patch committed [1].

In order this support work properly on N800, please apply the patch I proposed at [2].

Thanks, pushed your DMA fix.

Quoted 4 lines

I've tested with MMC, SD and SDHC cards and looks fine for the boards mentioned above (SX1 is compiled test only).

Testing, comments and suggestions are welcome.

Well, I've pushed most of your patches. I ended up splitting your patch 02/17 into something that's easier to read and also compiles. Basically I temporarily removed all the cover switch handling and fixed the header.

I did not push patches 15-17 as the power up should be done the same way as for other boards. Can you please refresh those patches?

Regards,

Tony

_______________________________________________
Linux-omap-open-source mailing list
[email protected]
http://linux.omap.com/mailman/listinfo/linux-omap-open-source

reviewer
#3 lore raw

Hi,

Quoted 49 lines · Kyungmin Park

Hi,

After multislot patches committed, I created the apollon mmc file. It probes the mmc slot and find partitions.

It seems to be working. but after some operations it stops. Actually it wait the interrupt.

I disabled a lot of options, wire4, high speed, max frequency. but it's same.

/ # cat /proc/interrupts
CPU0

 12:        493        INTC  DMA
 37:       1580        INTC  gp timer
 72:        783        INTC  serial
 83:        101        INTC  mmci-omap
176:          0        GPIO  enter sw
177:          0        GPIO  up sw
218:          0        GPIO  down sw
234:       6057        GPIO  eth0
Err:          0
/ # vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  1      0 107296  12220   2268    0    0     0    29   22    11  0  0 93  6
 0  1      0 107296  12220   2268    0    0     0     0   48    26  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   40    26  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   35    30  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   40    32  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   33    24  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   39    28  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   43    27  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   42    25  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   35    29  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   35    27  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   29    22  0  1  0 99
 0  1      0 107296  12220   2268    0    0     0     0   40    29  0  0  0 100
 0  1      0 107296  12220   2268    0    0     0     0   38    26  0  0  0 100

/ # cat /proc/interrupts
CPU0

 12:        493        INTC  DMA
 37:       2148        INTC  gp timer
 72:        888        INTC  serial
 83:        101        INTC  mmci-omap
176:          0        GPIO  enter sw
177:          0        GPIO  up sw
218:          0        GPIO  down sw
234:       6342        GPIO  eth0
Quoted 3 lines

Err: 0

Are there any clues?

Where does it get stuck? If you enable CONFIG_MMC_DEBUG you may get a clue if it's always the same command that gets it stuck.

There may also be some unmerged patches in the Nokia n8x0 sources, at least the omap.c should be diffable against those now.

Tony

#4 lore raw
Quoted 4 lines

Where does it get stuck? If you enable CONFIG_MMC_DEBUG you may get a clue if it's always the same command that gets it stuck.

It's boot message.

mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: starting CMD8 arg 000001aa flags 000002f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 8): CTO
mmci-omap mmci-omap.1: command timeout (CMD8)
mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD5 arg 00000000 flags 000002e1
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD1 arg 00000000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 20 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 1): EOC
mmc0: req done (CMD1): 0: c0ff8080 00000000 00000000 00000000
mmc0: starting CMD2 arg 00000000 flags 00000067
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 2): EOC
mmc0: req done (CMD2): 0: 15000030 30303030 30402007 020299d1
mmc0: starting CMD3 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 3): EOC
mmc0: req done (CMD3): 0: 00000500 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD9 arg 00010000 flags 00000007
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 9): EOC
mmc0: req done (CMD9): 0: 9026012a 0f5b03d3 f6dbffff 964040b3
mmc0: starting CMD7 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 7): EOC
mmc0: req done (CMD7): 0: 00000700 00000000 00000000 00000000
mmc0: starting CMD8 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 1 flags 00000200 tsac 15 ms nsac 1000
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 8): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmc0: req done (CMD8): 0: 00000900 00000000 00000000 00000000
mmc0:     512 bytes transferred: 0
mmc0: starting CMD6 arg 03b90101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: starting CMD6 arg 03b70101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 2 timing 1
mmc0: new high speed MMC card at address 0001
mmc0: starting CMD16 arg 00000200 flags 00000095
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 16): EOC
mmc0: req done (CMD16): 0: 00000900 00000000 00000000 00000000
mmcblk0: mmc0:0001 000000 4014080KiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

p1 p2
mmc0: starting CMD13 arg 00010000 flags 00000195 mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000

At formatting...

# mkfs.ext3 /dev/mmcb0p1
mmc0: starting CMD18 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD 18): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
125184 inodes, 250006 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15648 inodes per group
Superblock backups stored on blocks:

        32768, 98304, 163840, 229376

Writing inode tables:

mmc0: starting CMD25 arg 00006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00026000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00046000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00066000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00086000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000c6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000e6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00106000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00126000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00146000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00166000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00186000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001c6000 flags 000000b5
mmc0:     blksz 512 blocks 216 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     110592 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001e1000 flags 000000b5
mmc0:     blksz 512 blocks 112 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     57344 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 08006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0004 (CMD 25): CB

Returned IRQ value is wrong? expected 0014 instead of 0004.

Thank you,
Kyungmin Park

#5 lore raw

Hi,

I roll-backed the mmc core part to 2.6.23 except the omap host. then it's working.
I will try to find the wha't changed.

Thank you,
Kyungmin Pakr.

Quoted 393 lines · Kyungmin Park
Quoted 4 lines

Where does it get stuck? If you enable CONFIG_MMC_DEBUG you may get a clue if it's always the same command that gets it stuck.

It's boot message.

mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: starting CMD8 arg 000001aa flags 000002f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 8): CTO
mmci-omap mmci-omap.1: command timeout (CMD8)
mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD5 arg 00000000 flags 000002e1
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD1 arg 00000000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 20 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 1): EOC
mmc0: req done (CMD1): 0: c0ff8080 00000000 00000000 00000000
mmc0: starting CMD2 arg 00000000 flags 00000067
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 2): EOC
mmc0: req done (CMD2): 0: 15000030 30303030 30402007 020299d1
mmc0: starting CMD3 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 3): EOC
mmc0: req done (CMD3): 0: 00000500 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD9 arg 00010000 flags 00000007
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 9): EOC
mmc0: req done (CMD9): 0: 9026012a 0f5b03d3 f6dbffff 964040b3
mmc0: starting CMD7 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 7): EOC
mmc0: req done (CMD7): 0: 00000700 00000000 00000000 00000000
mmc0: starting CMD8 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 1 flags 00000200 tsac 15 ms nsac 1000
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 8): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmc0: req done (CMD8): 0: 00000900 00000000 00000000 00000000
mmc0:     512 bytes transferred: 0
mmc0: starting CMD6 arg 03b90101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: starting CMD6 arg 03b70101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 2 timing 1
mmc0: new high speed MMC card at address 0001
mmc0: starting CMD16 arg 00000200 flags 00000095
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 16): EOC
mmc0: req done (CMD16): 0: 00000900 00000000 00000000 00000000
mmcblk0: mmc0:0001 000000 4014080KiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

p1 p2
mmc0: starting CMD13 arg 00010000 flags 00000195 mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000

At formatting...

# mkfs.ext3 /dev/mmcb0p1
mmc0: starting CMD18 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD 18): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
125184 inodes, 250006 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15648 inodes per group
Superblock backups stored on blocks:

       32768, 98304, 163840, 229376

Writing inode tables:

mmc0: starting CMD25 arg 00006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00026000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00046000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00066000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00086000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000c6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000e6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00106000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00126000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00146000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00166000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00186000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001c6000 flags 000000b5
mmc0:     blksz 512 blocks 216 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     110592 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001e1000 flags 000000b5
mmc0:     blksz 512 blocks 112 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     57344 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 08006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0004 (CMD 25): CB

Returned IRQ value is wrong? expected 0014 instead of 0004.

Thank you,
Kyungmin Park

#6 lore raw

Hi pierre,

I have a question about your patch "mmc: read ext_csd version number"[1]. In this patch, it checks the EXT_CSD_REV with grater than 2. If passed, it also checks the greater or equal to 2.

I think the second check is useless.
It makes a problem in my board.

Thank you,
Kyungmin Park

1. http://source.mvista.com/git/?p=linux-omap-2.6.git;a=commitdiff;h=d7604d76351f7745d0e62d9f2bbcbb917c9013f3

Quoted 404 lines · Kyungmin Park

Hi,

I roll-backed the mmc core part to 2.6.23 except the omap host. then it's working.
I will try to find the wha't changed.

Thank you,
Kyungmin Pakr.

Quoted 393 lines · Kyungmin Park
Quoted 4 lines

Where does it get stuck? If you enable CONFIG_MMC_DEBUG you may get a clue if it's always the same command that gets it stuck.

It's boot message.

mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
mmc0: starting CMD8 arg 000001aa flags 000002f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 8): CTO
mmci-omap mmci-omap.1: command timeout (CMD8)
mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD5 arg 00000000 flags 000002e1
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req failed (CMD5): -110, retrying...
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 5): CTO
mmci-omap mmci-omap.1: command timeout (CMD5)
mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD55 arg 00000000 flags 000000f5
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD 55): CTO
mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
mmc0: starting CMD1 arg 00000000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 20 width 0 timing 0
mmc0: starting CMD0 arg 00000000 flags 000000c0
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 0): EOC
mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 1001 (CMD 1): EOC OCRB
mmci-omap mmci-omap.1: MMC IRQ 1000 (CMD 1): OCRB
mmc0: req done (CMD1): 0: 00ff8080 00000000 00000000 00000000
mmc0: starting CMD1 arg 40300000 flags 000000e1
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 1): EOC
mmc0: req done (CMD1): 0: c0ff8080 00000000 00000000 00000000
mmc0: starting CMD2 arg 00000000 flags 00000067
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 2): EOC
mmc0: req done (CMD2): 0: 15000030 30303030 30402007 020299d1
mmc0: starting CMD3 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 3): EOC
mmc0: req done (CMD3): 0: 00000500 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD9 arg 00010000 flags 00000007
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 9): EOC
mmc0: req done (CMD9): 0: 9026012a 0f5b03d3 f6dbffff 964040b3
mmc0: starting CMD7 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 7): EOC
mmc0: req done (CMD7): 0: 00000700 00000000 00000000 00000000
mmc0: starting CMD8 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 1 flags 00000200 tsac 15 ms nsac 1000
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 8): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmc0: req done (CMD8): 0: 00000900 00000000 00000000 00000000
mmc0:     512 bytes transferred: 0
mmc0: starting CMD6 arg 03b90101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 1
mmc0: starting CMD6 arg 03b70101 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 6): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 6): EOFB
mmc0: req done (CMD6): 0: 00000900 00000000 00000000 00000000
mmc0: clock 20000000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 2 timing 1
mmc0: new high speed MMC card at address 0001
mmc0: starting CMD16 arg 00000200 flags 00000095
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 16): EOC
mmc0: req done (CMD16): 0: 00000900 00000000 00000000 00000000
mmcblk0: mmc0:0001 000000 4014080KiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD -1): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

p1 p2
mmc0: starting CMD13 arg 00010000 flags 00000195 mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000

At formatting...

# mkfs.ext3 /dev/mmcb0p1
mmc0: starting CMD18 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000200 tsac 15 ms nsac 1000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 18): EOC
mmci-omap mmci-omap.1: MMC IRQ 0008 (CMD 18): BRS
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 12): EOC
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000

Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
125184 inodes, 250006 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15648 inodes per group
Superblock backups stored on blocks:

       32768, 98304, 163840, 229376

Writing inode tables:

mmc0: starting CMD25 arg 00006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00026000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00046000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00066000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00086000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000c6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 000e6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00106000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00126000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00146000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00166000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00186000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001a6000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0005 (CMD 12): EOC CB
mmci-omap mmci-omap.1: MMC IRQ 0010 (CMD 12): EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     131072 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001c6000 flags 000000b5
mmc0:     blksz 512 blocks 216 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     110592 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 00002000 flags 000000b5
mmc0:     blksz 512 blocks 8 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     4096 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 001e1000 flags 000000b5
mmc0:     blksz 512 blocks 112 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0014 (CMD 25): CB EOFB
mmci-omap mmci-omap.1: MMC IRQ 001c (CMD -1): CB BRS EOFB
mmci-omap mmci-omap.1: MMC IRQ 0015 (CMD 12): EOC CB EOFB
mmc0: req done (CMD25): 0: 00000900 00000000 00000000 00000000
mmc0:     57344 bytes transferred: 0
mmc0:     (CMD12): 0: 00000d00 00000000 00000000 00000000
mmc0: starting CMD13 arg 00010000 flags 00000015
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 13): EOC
mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
mmc0: starting CMD25 arg 08006000 flags 000000b5
mmc0:     blksz 512 blocks 256 flags 00000100 tsac 480 ms nsac 32000
mmc0:     CMD12 arg 00000000 flags 0000049d
mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD 25): EOC
mmci-omap mmci-omap.1: MMC IRQ 0004 (CMD 25): CB

Returned IRQ value is wrong? expected 0014 instead of 0004.

Thank you,
Kyungmin Park

#7 lore raw

cover MMC: OMAP: Adds MMC multislot support for Siemens SX1 mobile phones

In reply to Tony Lindgren

Hi Tony,

I'm sending this new version of patches that adds MMC support for Siemens SX1 mobile phone using the MMC multislot support code.

This new version sets the power up as others boards do, as you mentioned.

As I didn't have a SX1 board here to test it, this is compiled test only. I'm going to request to Vladimir Ananiev to test on your board.

Testing, comments and suggestions are welcome.

BR,

Carlos.

Signature · 7 lines
Carlos Eduardo Aguiar
Nokia Institute of Technology - INdT
Open Source Mobile Research Center - OSMRC - Manaus
Core Team
Phone: +55 92 2126-1079
Mobile: +55 92 8127-1797
E-mail: [email protected]
reviewer
#8 lore raw

Re: [PATCH 0/2] MMC: OMAP: Adds MMC multislot support for Siemens SX1 mobile phones

Quoted 11 lines · Carlos Aguiar

Hi Tony,

I'm sending this new version of patches that adds MMC support for Siemens SX1 mobile phone using the MMC multislot support code.

This new version sets the power up as others boards do, as you mentioned.

As I didn't have a SX1 board here to test it, this is compiled test only. I'm going to request to Vladimir Ananiev to test on your board.

Testing, comments and suggestions are welcome.

Pushing today.

Tony

#9 lore raw

PATCH 1/2 MMC: OMAP: Supporting MMC multislot structures for Siemens SX1 board

In reply to Tony Lindgren

From: Carlos Eduardo Aguiar <[email protected]>

Proposes the new board-sx1-mmc.c file to handle all the MMC specific code for multislot support.

---
 arch/arm/mach-omap1/board-sx1-mmc.c   |  124 +++++++++++++++++++++++++++++++++
 arch/arm/mach-omap1/board-sx1.c       |   19 +----
 include/asm-arm/arch-omap/board-sx1.h |    8 ++-
 3 files changed, 135 insertions(+), 16 deletions(-)
 create mode 100644 arch/arm/mach-omap1/board-sx1-mmc.c
arch/arm/mach-omap1/board-sx1-mmc.c new file +124 -0
new file mode 100644
index 0000000..45c2fbb
@@ -0,0 +1,124 @@
+/*
+ * linux/arch/arm/mach-omap1/board-sx1-mmc.c
+ *
+ * Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
+ * Author: Carlos Eduardo Aguiar <[email protected]>
+ *
+ * This code is based on linux/arch/arm/mach-omap1/board-h2-mmc.c, which is:
+ * Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <asm/arch/hardware.h>
+#include <asm/arch/mmc.h>
+#include <asm/arch/gpio.h>
+
+#ifdef CONFIG_MMC_OMAP
+static int slot_cover_open;
+static struct device *mmc_device;
+
+static int sx1_mmc_set_power(struct device *dev, int slot, int power_on,
+				int vdd)
+{
+	int err;
+	u8 dat = 0;
+
+#ifdef CONFIG_MMC_DEBUG
+	dev_dbg(dev, "Set slot %d power: %s (vdd %d)\n", slot + 1,
+		power_on ? "on" : "off", vdd);
+#endif
+
+	if (slot != 0) {
+		dev_err(dev, "No such slot %d\n", slot + 1);
+		return -ENODEV;
+	}
+
+	err = i2c_read_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, &dat);
+	if (err < 0)
+		return err;
+
+	if (power_on)
+		dat |= SOFIA_MMC_POWER;
+	else
+		dat &= ~SOFIA_MMC_POWER;
+
+	return i2c_write_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, dat);
+}
+
+static int sx1_mmc_set_bus_mode(struct device *dev, int slot, int bus_mode)
+{
+#ifdef CONFIG_MMC_DEBUG
+	dev_dbg(dev, "Set slot %d bus_mode %s\n", slot + 1,
+		bus_mode == MMC_BUSMODE_OPENDRAIN ? "open-drain" : "push-pull");
+#endif
+	if (slot != 0) {
+		dev_err(dev, "No such slot %d\n", slot + 1);
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static int sx1_mmc_get_cover_state(struct device *dev, int slot)
+{
+	BUG_ON(slot != 0);
+
+	return slot_cover_open;
+}
+
+void sx1_mmc_slot_cover_handler(void *arg, int state)
+{
+	if (mmc_device == NULL)
+		return;
+
+	slot_cover_open = state;
+	omap_mmc_notify_cover_event(mmc_device, 0, state);
+}
+
+static int sx1_mmc_late_init(struct device *dev)
+{
+	int ret = 0;
+
+	mmc_device = dev;
+
+	return ret;
+}
+
+static void sx1_mmc_cleanup(struct device *dev)
+{
+}
+
+static struct omap_mmc_platform_data sx1_mmc_data = {
+	.nr_slots                       = 1,
+	.switch_slot                    = NULL,
+	.init                           = sx1_mmc_late_init,
+	.cleanup                        = sx1_mmc_cleanup,
+	.slots[0]       = {
+		.set_power              = sx1_mmc_set_power,
+		.set_bus_mode           = sx1_mmc_set_bus_mode,
+		.get_ro                 = NULL,
+		.get_cover_state        = sx1_mmc_get_cover_state,
+		.ocr_mask               = MMC_VDD_28_29 | MMC_VDD_30_31 |
+					  MMC_VDD_32_33 | MMC_VDD_33_34,
+		.name                   = "mmcblk",
+	},
+};
+
+void __init sx1_mmc_init(void)
+{
+	omap_set_mmc_info(1, &sx1_mmc_data);
+}
+
+#else
+
+void __init sx1_mmc_init(void)
+{
+}
+
+void sx1_mmc_slot_cover_handler(void *arg, int state)
+{
+}
+#endif
arch/arm/mach-omap1/board-sx1.c +4 -15
index 389d3fa..b4ca20b 100644
@@ -134,20 +134,7 @@ int sx1_setmmipower(u8 onoff)
 		dat &= ~SOFIA_MMILIGHT_POWER;
 	return i2c_write_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, dat);
 }
-/* set MMC power on/off */
-int sx1_setmmcpower(u8 onoff)
-{
-	int err;
-	u8 dat = 0;
-	err = i2c_read_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, &dat);
-	if (err < 0)
-		return err;
-	if (onoff)
-		dat |= SOFIA_MMC_POWER;
-	else
-		dat &= ~SOFIA_MMC_POWER;
-	return i2c_write_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, dat);
-}
+
 /* set USB power on/off */
 int sx1_setusbpower(u8 onoff)
 {
@@ -168,7 +155,6 @@ EXPORT_SYMBOL(sx1_getkeylight);
 EXPORT_SYMBOL(sx1_setbacklight);
 EXPORT_SYMBOL(sx1_getbacklight);
 EXPORT_SYMBOL(sx1_setmmipower);
-EXPORT_SYMBOL(sx1_setmmcpower);
 EXPORT_SYMBOL(sx1_setusbpower);
 
 /*----------- Keypad -------------------------*/
@@ -432,6 +418,9 @@ static struct omap_board_config_kernel sx1_config[] __initdata = {
 	{ OMAP_TAG_UART,	&sx1_uart_config },
 };
 /*-----------------------------------------*/
+
+extern void __init sx1_mmc_init(void);
+
 static void __init omap_sx1_init(void)
 {
 	platform_add_devices(sx1_devices, ARRAY_SIZE(sx1_devices));
include/asm-arm/arch-omap/board-sx1.h +7 -1
index 2bb8dd6..75dd8c3 100644
@@ -41,6 +41,12 @@ int sx1_getkeylight(u8 *keylight);
 
 int sx1_setmmipower(u8 onoff);
 int sx1_setusbpower(u8 onoff);
-int sx1_setmmcpower(u8 onoff);
+
+int i2c_write_byte(u8 devaddr, u8 regoffset, u8 value);
+int i2c_read_byte(u8 devaddr, u8 regoffset, u8 * value);
+
+/* MMC prototypes */
+
+extern void sx1_mmc_slot_cover_handler(void *arg, int state);
 
 #endif /* __ASM_ARCH_SX1_I2C_CHIPS_H */

-- 1.5.3.GIT

#10 lore raw

PATCH 2/2 MMC: OMAP: Make board-sx1.c uses new board-sx1-mmc.c code

In reply to Tony Lindgren

From: Carlos Eduardo Aguiar <[email protected]>

Make board-sx1.c file uses new board-sx1-mmc.c code.

This patch also:
- Introduces a new gpio_switch to get events when inserting and removing MMC/SD/SDIO cards to/from the slot.
- Enables the GPIO switch support option on sx1_defconfig to use multislot support:

---
 arch/arm/configs/sx1_defconfig  |    2 +-
 arch/arm/mach-omap1/Makefile    |    2 +-
 arch/arm/mach-omap1/board-sx1.c |   22 ++++++++++++++++++----
 3 files changed, 20 insertions(+), 6 deletions(-)
arch/arm/configs/sx1_defconfig +1 -1
index 808dd99..853dcdd 100644
@@ -159,7 +159,7 @@ CONFIG_ARCH_OMAP1=y
 CONFIG_OMAP_BOOT_TAG=y
 # CONFIG_OMAP_BOOT_REASON is not set
 # CONFIG_OMAP_COMPONENT_VERSION is not set
-# CONFIG_OMAP_GPIO_SWITCH is not set
+CONFIG_OMAP_GPIO_SWITCH=y
 CONFIG_OMAP_MUX=y
 # CONFIG_OMAP_MUX_DEBUG is not set
 CONFIG_OMAP_MUX_WARNINGS=y
arch/arm/mach-omap1/Makefile +1 -1
index a8d95a1..6ebf23b 100644
@@ -33,7 +33,7 @@ obj-$(CONFIG_MACH_OMAP_PALMZ71)		+= board-palmz71.o
 obj-$(CONFIG_MACH_OMAP_PALMTT)		+= board-palmtt.o
 obj-$(CONFIG_MACH_NOKIA770)		+= board-nokia770.o
 obj-$(CONFIG_MACH_AMS_DELTA)		+= board-ams-delta.o
-obj-$(CONFIG_MACH_SX1)			+= board-sx1.o
+obj-$(CONFIG_MACH_SX1)			+= board-sx1.o board-sx1-mmc.o
 
 ifeq ($(CONFIG_ARCH_OMAP15XX),y)
 # Innovator-1510 FPGA
arch/arm/mach-omap1/board-sx1.c +18 -4
index b4ca20b..4f7d791 100644
@@ -33,6 +33,7 @@
 #include <asm/mach/map.h>
 
 #include <asm/arch/gpio.h>
+#include <asm/arch/gpio-switch.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/irda.h>
 #include <asm/arch/usb.h>
@@ -378,11 +379,8 @@ static struct omap_usb_config sx1_usb_config __initdata = {
 
 static struct omap_mmc_config sx1_mmc_config __initdata = {
 	.mmc [0] = {
-		.enabled 	= 1,
+		.enabled	= 1,
 		.wire4		= 0,
-		.wp_pin		= -1,
-		.power_pin	= -1, /* power is in Sofia */
-		.switch_pin	= OMAP_MPUIO(3),
 	},
 };
 
@@ -417,6 +415,19 @@ static struct omap_board_config_kernel sx1_config[] __initdata = {
 	{ OMAP_TAG_LCD,	&sx1_lcd_config },
 	{ OMAP_TAG_UART,	&sx1_uart_config },
 };
+
+static struct omap_gpio_switch sx1_gpio_switches[] __initdata = {
+	{
+		.name                   = "mmc_slot",
+		.gpio                   = OMAP_MPUIO(3),
+		.type                   = OMAP_GPIO_SWITCH_TYPE_COVER,
+		.debounce_rising        = 100,
+		.debounce_falling       = 0,
+		.notify                 = sx1_mmc_slot_cover_handler,
+		.notify_data            = NULL,
+	},
+};
+
 /*-----------------------------------------*/
 
 extern void __init sx1_mmc_init(void);
@@ -429,6 +440,9 @@ static void __init omap_sx1_init(void)
 	omap_board_config_size = ARRAY_SIZE(sx1_config);
 	omap_serial_init();
 	omap_register_i2c_bus(1, 100, NULL, 0);
+	sx1_mmc_init();
+	omap_register_gpio_switches(sx1_gpio_switches,
+				    ARRAY_SIZE(sx1_gpio_switches));
 
 	/* turn on USB power */
 	/* sx1_setusbpower(1); cant do it here because i2c is not ready */

-- 1.5.3.GIT