Hi, I'm trying to work the custom board of wl1273 and facing the issue, which is that SDIO write command fails at wl12xx_set_power_on function.
The environment is
- Host cpu board : am335x evm board
- AM SDK : ti-sdk-am335x-evm-05.05.00.00
- WLAN driver : ti-compat-wireless-wl12xx-2012-05-17-r5-18.tar.gz
- WLAN board: using WL1273 module through MMC1 SDIO slot on am335x daughterboard
The source file I only modified is board-am335xevm.c to work WLAN board through MMC1 SDIO.
I built the linux kernel and observed it works when SD card was inserted in MMC1 slot.
However I observed above issue while booting the kernel in case of WLAN board inserted in MMC1 slot.
More detail
wlan source code on compat-wireless for linux
wl12xx/main.c: wl12xx_set_power_on function
wl1271_set_partition(wl, &wl12xx_part_table[PART_DOWN]);
wl1271_set_partition()
{
...
/* write partition info to the chipset */
wl1271_raw_write32(wl, HW_PART0_START_ADDR, p->mem.start);
wl1271_raw_write32(wl, HW_PART0_SIZE_ADDR, p->mem.size); <--- The error(-83) occurred this point.
wl1271_raw_write32(wl, HW_PART1_START_ADDR, p->reg.start);
wl1271_raw_write32(wl, HW_PART1_SIZE_ADDR, p->reg.size);
wl1271_raw_write32(wl, HW_PART2_START_ADDR, p->mem2.start);
wl1271_raw_write32(wl, HW_PART2_SIZE_ADDR, p->mem2.size);
wl1271_raw_write32(wl, HW_PART3_START_ADDR, p->mem3.start);
...
}
wl12xx_sdio_raw_write function is called by wl1271_raw_write32.
The error EILSEQ(-84) occurs in this function.
However, the error does not occur in other write command.
The followings are the value of arguments for wl1271_raw_write32 function.
- HW_PART0_SIZE_ADDR = 0x1FFC0
- p->mem.size = 0x000177c0
Can I have any suggestion?
Best regards,
Motoki Murooka