SDHCI trap with register dump dropping SDIO clock

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SDHCI trap with register dump dropping SDIO clock

4,313 Views
vikramramanna
Contributor I

iMX8MM dropping SDIO clock to 12MHz causes the SDHCI crash

[  641.123790] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[  641.130232] mmc0: sdhci: Sys addr:  0x54968d04 | Version:  0x00000002
[  641.136671] mmc0: sdhci: Blk size:  0x00000004 | Blk cnt:  0x00000001
[  641.143110] mmc0: sdhci: Argument:  0x15804004 | Trn mode: 0x00000013
[  641.149548] mmc0: sdhci: Present:   0x01d88a0a | Host ctl: 0x00000013
[  641.155986] mmc0: sdhci: Power:     0x00000002 | Blk gap:  0x00000080
[  641.162425] mmc0: sdhci: Wake-up:   0x00000008 | Clock:    0x0000028f
[  641.168863] mmc0: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000
[  641.175301] mmc0: sdhci: Int enab:  0x107f100b | Sig enab: 0x107f100b
[  641.181739] mmc0: sdhci: AC12 err:  0x00000000 | Slot int: 0x00000502
[  641.188178] mmc0: sdhci: Caps:      0x07eb0000 | Caps_1:   0x8000b407
[  641.194616] mmc0: sdhci: Cmd:       0x0000353a | Max curr: 0x00ffffff
[  641.201054] mmc0: sdhci: Resp[0]:   0x00001000 | Resp[1]:  0x00000000
[  641.207492] mmc0: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
[  641.213930] mmc0: sdhci: Host ctl2: 0x00000088
[  641.218372] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x5608d208
[  641.224809] mmc0: sdhci: ============================================

NXP team, can someone point to what could be the reason

Don't see any issue with iMX8MQ or iMX6/7

0 Kudos
27 Replies

480 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Hi Ramesh,

Could you provide the full log and the kernel patch of modifying SDIO clock to 12MHz? We can help test on our board.

Have a nice day

Best Regards

Rita

0 Kudos

480 Views
ramesh_r
Contributor I

Hi Rita,

I will share a dmesg log soon.  For reproducing this issue - you could use any standard SD MMC card on NXP imx8mnevk board running NXP's L5.4.3 BSP release.  After the mmc host driver is up, you need to change the clock on mmc device to 12Mhz and you should see the issue right away.  For example, I used the below commands to change the max frequency of the mmc clock.

==

echo 8 > /proc/sys/kernel/printk

# Dump the current clock frequency
cat /sys/kernel/debug/mmc0/ios
sleep 0.5

# Change to 12Mhz
echo 12000000 > /sys/kernel/debug/mmc0/clock
sleep 1

# Check if it is correctly set
cat /sys/kernel/debug/mmc0/ios

==

At this point, any moment you should see the above stack dump.

Regards

Ramesh

0 Kudos

476 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Are you using i.MX 8M Mini Evaluation Kit or imx8mnevk board?

0 Kudos

480 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Hi Ramesh,

From dump log, driver are sending cmd53 to read multiple block and retrieve security protocol related information from device.

Is it mean if using L5.4.3/4.14.98-2.2.0 default BSP, drop the SDIO clock to 12MHz, then we can reproduce this issue on 8MM EVK? Then it will be easy to analyze.

Have a nice day

Rita

0 Kudos

480 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

OK

0 Kudos

480 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

I have not used the iMX8MM dropping SDIO clock to 12MHz, for your question I will do further confirm it with our expert team , when I get feedback I will send to you as soon as possible.

0 Kudos

480 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Are you use the reference board or you design board yourself for i.MX8MM?

0 Kudos