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.

SK-AM62-LP: MMC2 SDIO bus error

Part Number: SK-AM62-LP

Tool/software:

Hi, I am now make  a stress testing base on  AM6202 (mmc2)+   wifi module(sdio interfaced).

Test Condition:

   The  temperaure is 85℃ inside the Thermal Box.  The iperf tool is running through wifi.

Test result:

   The iperf tool is broken.

Logs:

1. 
During the test , the mmc2 driver which is based on MCU-PLUS-SDK-AM62X 10.1.0.33, throw out "ADMA error" as below:

  "[50647.050949] mmc2: ADMA error: 0x02000002
[50647.054918] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
[50647.061350] mmc2: sdhci: Sys addr: 0x00000000 | Version: 0x00001004
[50647.067781] mmc2: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[50647.074209] mmc2: sdhci: Argument: 0x1800a833 | Trn mode: 0x00000033
[50647.080637] mmc2: sdhci: Present: 0x01f70000 | Host ctl: 0x000000df
[50647.087064] mmc2: sdhci: Power: 0x0000000f | Blk gap: 0x00000080
[50647.093491] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[50647.099919] mmc2: sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
[50647.106346] mmc2: sdhci: Int enab: 0x03ff010b | Sig enab: 0x03ff010b
[50647.112774] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[50647.119201] mmc2: sdhci: Caps: 0x7de8c801 | Caps_1: 0x18002407
[50647.125629] mmc2: sdhci: Cmd: 0x0000353a | Max curr: 0x00000000
[50647.132056] mmc2: sdhci: Resp[0]: 0x00001000 | Resp[1]: 0x00000000
[50647.138485] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[50647.144911] mmc2: sdhci: Host ctl2: 0x00000003
[50647.149345] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x000000008178620c
[50647.156467] mmc2: sdhci: ============================================
[50647.162894] mmc2: sdhci: 81786200: DMA 0x0000000000680000, LEN 0x8b00, Attr=0x21
[50647.170281] mmc2: sdhci: 8178620c: DMA 0x0000000000000000, LEN 0x0000, Attr=0x03
[50647.177768] [wlan][1074]kalDevPortRead:(HAL ERROR)
[50647.191717] [wlan][1074]kalDevPortRead:(HAL ERROR)
SDIO BUS ERROR: "

2. I trace code into  

linux-6.6/drivers/mmc/host/sdhci.c

sdhci_data_irq( )

{

"} else if (intmask & SDHCI_INT_ADMA_ERROR) {
pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc),
intmask);
sdhci_adma_show_error(host);
sdhci_err_stats_inc(host, ADMA);
host->data->error = -EIO;
if (host->ops->adma_workaround)
host->ops->adma_workaround(host, intmask);
}"

}

3. I want to know the detail cause for the ADMA error dump.

Thank you!  

   

  • Hi, Hanson

    Few comment

    (1) What's your device tree setting for mmc2? Please share it.

    (2) Could you downl grade the speed for mmc2 interface, does it still happen in 85c?

    (3) Does linux enter crash status? What's the side effect for your system?

    Hello, TI Expert,

    Few question

    (1)I think it trigger SDHCI ADMA error, is it correct?

    (2) Once ADMA error, it call "sdhci_dumpregs()"  function, log as below.

    but I check adma_err_status, it seems return 0 (no error), Do you have any comment?

    What's normal register value looks like?

     

    [50647.054918] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
    [50647.061350] mmc2: sdhci: Sys addr: 0x00000000 | Version: 0x00001004
    [50647.067781] mmc2: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
    [50647.074209] mmc2: sdhci: Argument: 0x1800a833 | Trn mode: 0x00000033
    [50647.080637] mmc2: sdhci: Present: 0x01f70000 | Host ctl: 0x000000df
    [50647.087064] mmc2: sdhci: Power: 0x0000000f | Blk gap: 0x00000080
    [50647.093491] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
    [50647.099919] mmc2: sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
    [50647.106346] mmc2: sdhci: Int enab: 0x03ff010b | Sig enab: 0x03ff010b
    [50647.112774] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
    [50647.119201] mmc2: sdhci: Caps: 0x7de8c801 | Caps_1: 0x18002407
    [50647.125629] mmc2: sdhci: Cmd: 0x0000353a | Max curr: 0x00000000
    [50647.132056] mmc2: sdhci: Resp[0]: 0x00001000 | Resp[1]: 0x00000000
    [50647.138485] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
    [50647.144911] mmc2: sdhci: Host ctl2: 0x00000003
    [50647.149345] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x000000008178620c
    [50647.156467] mmc2: sdhci: ============================================
    [50647.162894] mmc2: sdhci: 81786200: DMA 0x0000000000680000, LEN 0x8b00, Attr=0x21
    [50647.170281] mmc2: sdhci: 8178620c: DMA 0x0000000000000000, LEN 0x0000, Attr=0x03

    Related register as below.

    Another Ref.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/385576/difference-between-adma-and-sdma

    Thank You.

    Gibbs

  • Hello Hanson,

    Could you please also describe which device you have connected to the MMC2 peripheral?

  • mmc2 is connected to the WiFi module:  NF3808 from nFore.

  • Hello,

    (2) Could you downl grade the speed for mmc2 interface, does it still happen in 85c?

    Have you tried this? The speed can be downgraded with "no-1-8-v" property in the DTS.

    Additionally, have you tried the latest SDK version?