the platform is mx51, sdio1 is sd card, sdio2 is wifi, both the sdio is working, after sometime, the wifi start communicate timeout, and there is no sdio interrup about 15 second, then the host receive interrup, but the int status indicate there is data crc error interrup(0x0020000a), the error message is this:
mmc1: Got data interrupt 0x00200000 even though no data operation was in progress.
mxsdhci: ============== REGISTER DUMP ==============
mxsdhci: Sys addr: 0xabcb36c0 | Version: 0x00001201
mxsdhci: Blk size: 0x00000200 | Blk cnt: 0x00000003
mxsdhci: Argument: 0xad000003 | Trn mode: 0x353a0023
mxsdhci: Present: 0xfd890008 | Host ctl: 0x000000ab
mxsdhci: Clock: 0x000e003f
mxsdhci: Int stat: 0x0020000a
mxsdhci: Int enab: 0x117f000f | Sig enab: 0x117f000f
mxsdhci: Caps: 0x07f30000
mxsdhci: ===========================================
after a while the sdio1 still error, even I do software reset to sdio, it is still can't recover,
this issue not easy to reproduce, and have trouble me for a long time.
Did anyone encounter similar issue? thanks in advance.
peter
Original Attachment has been moved to: kern.log.zip
Hello,Peter,
From the bootling log, we can know MMC1 has found WIFI card attached .
Apr 9 15:07:03 localhost kernel: mmc1: queuing unknown CIS tuple 0x80 (50 bytes)
Apr 9 15:07:03 localhost kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
Apr 9 15:07:03 localhost kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
Apr 9 15:07:03 localhost kernel: mmc1: queuing unknown CIS tuple 0x02 (1 bytes)
Apr 9 15:07:03 localhost kernel: mmc1: new SDIO card at address 0001
I found you have compiled wifi driver (dhd) into kernel. and the issue occurs when this driver is loaded. So I recommend you compile dhd driver independently, then try to load it manualy.
# insmod dhd.ko xxxx xxx (firware path )
Regards,
Weidong
thanks for you reply, but I don't compiled the wifi driver into kernel, now it is a module,
when these message printed, the kernel had run, and the application run the command to insmod the wifi driver
Hello,Peter,
OK, Let us compare settings in BSP with yours:
static struct mxc_mmc_platform_data mmc2_data = {
.ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29 | MMC_VDD_29_30 |
MMC_VDD_31_32,
.caps = MMC_CAP_4_BIT_DATA,
.min_clk = 150000,
.max_clk = 50000000,
.card_inserted_state = 1,
.clock_mmc = "esdhc_clk",
};
How about yours ?
Weidong
hi, Weidong, my config is:
static struct mxc_mmc_platform_data mmc2_data = {
.ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29 | MMC_VDD_29_30 |
MMC_VDD_31_32,
.caps = MMC_CAP_4_BIT_DATA,
.min_clk = 150000,
//.max_clk = 6000000,
.max_clk = 24000000,
.card_inserted_state = 1,
.status = sdhc_get_card2_det_status,
.clock_mmc = "esdhc_clk",
};
Peter
sorry, the max_clk is 48000000,
.max_clk = 48000000,
Hello,Peter,
The wifi module you use is a card or SMT module ? from booting log, it seems that issue should be from sd2_cmd, that is to say, issue is generated by command . Could you share schematic with me ?( only SD2 port on cpu side and WIFI side )
Regards,
weidong
from the log, after the issue happen, the register of int status is:0x0020000a, and it indicate there is data crc error, but don't have cmd crc error,
hello, Weidong,
the wifi module is SMT module, the following pic is the schematic.
Peter