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!