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.

J721EXCPXEVM: eMMC0 CMD0 iocl

Part Number: J721EXCPXEVM

HI,

We were trying to send cmd0 via ioctl using mmc-utility. mmcblk0 --> on-board eMMC and mmcblk1 --> SD card which i used for booting.

I am using Latest 8.04 sdk.

I notice mmc-utility that comes with the sdk does not include function to send cmd0.

root@j7-evm:~/mmc-utils# ./mmc preidle --help                                   
Usage:                                                                          
        mmc preidle <device>                                                    
                Issues a CMD0 GO_PRE_IDLE                                       
                                                                                
0.1                                                                             
root@j7-evm:~/mmc-utils# ./mmc preidle /dev/mmcblk0                             
root@j7-evm:~/mmc-utils# [ 2620.536769] mmc0: running CQE recovery              
[ 2620.542841] mmc0: cache flush error -110                                     
[ 2681.908152] mmc0: cqhci: timeout for tag 27                                  
[ 2681.912336] mmc0: cqhci: ============ CQHCI REGISTER DUMP ===========        
[ 2681.918772] mmc0: cqhci: Caps:      0x000030c8 | Version:  0x00000510        
[ 2681.925204] mmc0: cqhci: Config:    0x00000000 | Control:  0x00000000        
[ 2681.931632] mmc0: cqhci: Int stat:  0x00000000 | Int enab: 0x00000000        
[ 2681.938060] mmc0: cqhci: Int sig:   0x00000000 | Int Coal: 0x00000000        
[ 2681.944488] mmc0: cqhci: TDL base:  0x00000000 | TDL up32: 0x00000000        
[ 2681.950916] mmc0: cqhci: Doorbell:  0x00000000 | TCN:      0x00000000        
[ 2681.957344] mmc0: cqhci: Dev queue: 0x00000000 | Dev Pend: 0x00000000        
[ 2681.963772] mmc0: cqhci: Task clr:  0x00000000 | SSC1:     0x00011000        
[ 2681.970201] mmc0: cqhci: SSC2:      0x00000000 | DCMD rsp: 0x00000000        
[ 2681.976631] mmc0: cqhci: RED mask:  0xfdf9a080 | TERRI:    0x00000000        
[ 2681.983058] mmc0: cqhci: Resp idx:  0x00000000 | Resp arg: 0x00000000        
[ 2681.989485] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========        
[ 2681.995913] mmc0: sdhci: Sys addr:  0x00000000 | Version:  0x00001004        
[ 2682.002343] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000        
[ 2682.008777] mmc0: sdhci: Argument:  0x00010000 | Trn mode: 0x00000013        
[ 2682.015205] mmc0: sdhci: Present:   0x01ff00f0 | Host ctl: 0x0000003c        
[ 2682.021632] mmc0: sdhci: Power:     0x0000000b | Blk gap:  0x00000080        
[ 2682.028061] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000007        
[ 2682.034494] mmc0: sdhci: Timeout:   0x0000000e | Int stat: 0x00000000        
[ 2682.040923] mmc0: sdhci: Int enab:  0x02ff4000 | Sig enab: 0x02ff4000        
[ 2682.047350] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000        
[ 2682.053778] mmc0: sdhci: Caps:      0x7cecc801 | Caps_1:   0x98002407        
[ 2682.060206] mmc0: sdhci: Cmd:       0x00000d1a | Max curr: 0x00000000        
[ 2682.066632] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x36581034        
[ 2682.073058] mmc0: sdhci: Resp[2]:   0x53304a35 | Resp[3]:  0x0013014e        
[ 2682.079486] mmc0: sdhci: Host ctl2: 0x0000000b                               
[ 2682.083919] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x0000000881ad720c
[ 2682.091042] mmc0: sdhci: ============================================        
[ 2682.097481] mmc0: running CQE recovery                                       
[ 2743.348143] mmc0: cqhci: timeout for tag 30                                  
[ 2743.352326] mmc0: cqhci: ============ CQHCI REGISTER DUMP ===========        
[ 2743.358760] mmc0: cqhci: Caps:      0x000030c8 | Version:  0x00000510        
[ 2743.365194] mmc0: cqhci: Config:    0x00000001 | Control:  0x00000000        
[ 2743.371623] mmc0: cqhci: Int stat:  0x00000000 | Int enab: 0x00000006        
[ 2743.378050] mmc0: cqhci: Int sig:   0x00000006 | Int Coal: 0x00000000        
[ 2743.384478] mmc0: cqhci: TDL base:  0x00000000 | TDL up32: 0x00000000        
[ 2743.390906] mmc0: cqhci: Doorbell:  0x00000000 | TCN:      0x00000000        
[ 2743.397332] mmc0: cqhci: Dev queue: 0x00000000 | Dev Pend: 0x00000000        
[ 2743.403760] mmc0: cqhci: Task clr:  0x00000000 | SSC1:     0x00011000        
[ 2743.410190] mmc0: cqhci: SSC2:      0x00000000 | DCMD rsp: 0x00000000        
[ 2743.416621] mmc0: cqhci: RED mask:  0xfdf9a080 | TERRI:    0x00000000        
[ 2743.423048] mmc0: cqhci: Resp idx:  0x00000000 | Resp arg: 0x00000000        
[ 2743.429475] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========        
[ 2743.435902] mmc0: sdhci: Sys addr:  0x00000000 | Version:  0x00001004        
[ 2743.442330] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000        
[ 2743.448764] mmc0: sdhci: Argument:  0x00000001 | Trn mode: 0x00000013        
[ 2743.455192] mmc0: sdhci: Present:   0x01ff00f0 | Host ctl: 0x0000003c        
[ 2743.461622] mmc0: sdhci: Power:     0x0000000b | Blk gap:  0x00000080        
[ 2743.468062] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000007        
[ 2743.474498] mmc0: sdhci: Timeout:   0x0000000e | Int stat: 0x00000000        
[ 2743.480927] mmc0: sdhci: Int enab:  0x02ff4000 | Sig enab: 0x02ff4000        
[ 2743.487354] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000        
[ 2743.493782] mmc0: sdhci: Caps:      0x7cecc801 | Caps_1:   0x98002407        
[ 2743.500209] mmc0: sdhci: Cmd:       0x00003013 | Max curr: 0x00000000        
[ 2743.506636] mmc0: sdhci: Resp[0]:   0x00400800 | Resp[1]:  0x36581034        
[ 2743.513063] mmc0: sdhci: Resp[2]:   0x53304a35 | Resp[3]:  0x0013014e        
[ 2743.519490] mmc0: sdhci: Host ctl2: 0x0000000b                               
[ 2743.523924] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x0000000000000000
[ 2743.531044] mmc0: sdhci: ============================================        
[ 2743.537487] mmc0: running CQE recovery                                       
[ 2743.543256] blk_update_request: I/O error, dev mmcblk0, sector 0 op 0x0:(REA0
[ 2743.553420] Buffer I/O error on dev mmcblk0, logical block 0, async page read

After booting up i believe we are in transfer state which i checked by send status cmd, i trying to change other state by issuing cmd0 or cmd 7 via ioctl. but it fails and getting error from kernel space. and we were unable to read CSD and CID via ioctl.

And also i notice in mmc-utility they rather sending cmd via ioctl they reading the CSD and CID via sysfs entry. So in linux user space its not allowed to change the modes ?