43 #define SD_INT_ERROR (MCI_INT_RESP_ERR | MCI_INT_RCRC | MCI_INT_DCRC | \
44 MCI_INT_RTO | MCI_INT_DTO | MCI_INT_HTO | MCI_INT_FRUN | MCI_INT_HLE | \
45 MCI_INT_SBE | MCI_INT_EBE)
151 return g_card_info->
cid[0] != 0;
162 if (i == (start >> 5)) {
166 v = ((data[i] << (32 - j)) | (data[start >> 5] >> j));
169 return v & ((1 << (end - start + 1)) - 1);
177 int32_t c_size_mult = 0;
186 g_card_info->
blocknr = c_size << 10;
192 mult = 1 << (c_size_mult + 2);
193 g_card_info->
blocknr = (c_size + 1) * mult;
215 if ((g_card_info->
ext_csd[48] & 0xFF) > 1) {
220 if ((g_card_info->
ext_csd[49] & 0xFF) == 1) {
276 #if SDIO_BUS_WIDTH > 1
287 #elif SDIO_BUS_WIDTH > 4
288 #error 8-bit mode not supported yet!
343 g_card_info = pcardinfo;
353 while (state < 100) {
390 if (status & MCI_INT_RTO) {
411 while ((ocr & OCR_ALL_READY) && --tries > 0) {
416 if (ocr & OCR_ALL_READY) {
435 }
while (!(r & OCR_ALL_READY) && --tries > 0);
437 if (r & OCR_ALL_READY) {
450 memcpy(&g_card_info->
cid, &g_card_info->
response[0], 16);
456 g_card_info->
rca = (g_card_info->
response[0]) >> 16;
461 g_card_info->
rca = 1;
469 memcpy(&g_card_info->
csd, &g_card_info->
response[0], 16);
509 if (( start_block < 0) || ( (start_block + num_blocks) > g_card_info->
blocknr) ) {
526 index = start_block << 9;
532 if (num_blocks == 1) {
556 if (( start_block < 0) || ( (start_block + num_blocks) > g_card_info->
blocknr) ) {
576 index = start_block << 9;
582 if (num_blocks == 1) {