大家有做过am335x上面的SDIO速度的测试么?在linux3.2和linux4.1.13两个内核版本上,用CMD53命令,发送256byte的数据,发送时间怎么越来越大啊???
在4.1.13上面,基本都要200us以上:
[ 1247.942830] mmc1: starting CMD53 arg 92000100 flags 000001b5
[ 1247.942843] mmc1: blksz 256 blocks 1 flags 00000100 tsac 1000 ms nsac 0
[ 1247.942870] edma-dma-engine edma-dma-engine.0: vchan dd928288: txd dceeac00[8bb3]: submitted
[ 1247.942901] edma-dma-engine edma-dma-engine.0:[ 1247.942901] pset[0]:
[ 1247.942901] chnum 2
[ 1247.942901] slot 2
[ 1247.942901] opt 00102004
[ 1247.942901] src 9cdf3700
[ 1247.942901] dst 481d8220
[ 1247.942901] abcnt 00400004
[ 1247.942901] ccnt 00000001
[ 1247.942901] bidx 00000004
[ 1247.942901] cidx 00000100
[ 1247.942901] lkrld ffffffff
[ 1247.942948] edma-dma-engine edma-dma-engine.0: first transfer starting on channel 2
[ 1247.942981] edma-dma-engine edma-dma-engine.0: Transfer complete, stopping channel 2
[ 1247.942996] edma-dma-engine edma-dma-engine.0: txd dceeac00[8bb3]: marked complete
[ 1247.943019] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000
[ 1247.943030] mmc1: 256 bytes transferred: 0
而在linux3.2上面,大概150us左右,
[ 2050.545867] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000
[ 2050.545867] mmc1: 256 bytes transferred: 0
[ 2050.545898] mmc1: starting CMD53 arg 92000100 flags 000001b5
[ 2050.545928] mmc1: blksz 256 blocks 1 flags 00000100 tsac 1000 ms nsac 0
[ 2050.545959] omap_hsmmc omap_hsmmc.2: mmc1: CMD53, argument 0x92000100
[ 2050.545989] omap_hsmmc omap_hsmmc.2: IRQ Status is 1
[ 2050.545989] omap_hsmmc omap_hsmmc.2: IRQ Status is 2
[ 2050.546020] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000
[ 2050.546020] mmc1: 256 bytes transferred: 0
Jian Zhou:
请问您是在哪个硬件平台上测试的?
Bing Yao:
回复 Jian Zhou:
周工您好。
我们是用am3358,后面加大了log的buf,dma那里应该是系统的浮动,应该没有问题的。
我想请教一下,怎么输出omap_hsmmc的IRQ状态?:
在4.1.13上面,我们打开了mmc的debug功能和 dynamic_debug,
echo -n 'module omap +p'>/sys/kernel/debug/dynamic_debug/controlecho -n 'module omap_hsmmc +p'>/sys/kernel/debug/dynamic_debug/control
只是输出这些log,没有omap_hsmmc的IRQ输出:
[ 1402.792973] mmc1: starting CMD53 arg 9a20f215 flags 000001b5[ 1402.792987] mmc1: blksz 256 blocks 21 flags 00000100 tsac 1000 ms nsac 0[ 1402.793293] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000[ 1402.793309] mmc1: 5376 bytes transferred: 0[ 1402.793383] mport:0x1103c, len:3584[ 1402.793395] blk_mode:1, ioport:69692[ 1402.793414] mmc1: starting CMD53 arg 9a20780e flags 000001b5[ 1402.793427] mmc1: blksz 256 blocks 14 flags 00000100 tsac 1000 ms nsac 0[ 1402.793642] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000[ 1402.793658] mmc1: 3584 bytes transferred: 0
而在3.2上面会有omap_hsmmc的irq输出:
[ 703.873779] mmc1: starting CMD53 arg 12000d00 flags 000001b5[ 703.873809] mmc1: blksz 256 blocks 1 flags 00000200 tsac 1000 ms nsac 0[ 703.873809] omap_hsmmc omap_hsmmc.2: mmc1: CMD53, argument 0x12000d00[ 703.873840] omap_hsmmc omap_hsmmc.2: IRQ Status is 1[ 703.873840] omap_hsmmc omap_hsmmc.2: IRQ Status is 2[ 703.873870] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000[ 703.873870] mmc1: 256 bytes transferred: 0
TI中文支持网