Lines Matching refs:p
66 CARDiCommon *const p = &cardi_common;
69 p->flag &= ~CARD_STAT_WAITFOR7ACK;
70 OS_WakeupThreadDirect(p->current_thread_9);
88 static BOOL CARDi_Request(CARDiCommon *p, int req_type, int retry_count)
91 if ((p->flag & CARD_STAT_INIT_CMD) == 0)
93 p->flag |= CARD_STAT_INIT_CMD;
99 (void)CARDi_Request(p, CARD_REQ_INIT, 1);
102 DC_FlushRange(p->cmd, sizeof(*p->cmd));
106 p->current_thread_9 = OS_GetCurrentThread();
111 p->flag |= CARD_STAT_WAITFOR7ACK;
117 CARDi_SendPxi((u32)p->cmd);
123 while ((p->flag & CARD_STAT_WAITFOR7ACK) != 0)
129 DC_InvalidateRange(p->cmd, sizeof(*p->cmd));
131 while ((p->cmd->result == CARD_RESULT_TIMEOUT) && (--retry_count > 0));
133 return (p->cmd->result == CARD_RESULT_SUCCESS);
146 static void CARDi_RequestStreamCommandCore(CARDiCommon * p)
148 const int req_type = p->req_type;
149 const int req_mode = p->req_mode;
150 const int retry_count = p->req_retry;
166 const u32 len = (size < p->len) ? size : p->len;
167 p->cmd->len = len;
170 if ((p->flag & CARD_STAT_CANCEL) != 0)
172 p->flag &= ~CARD_STAT_CANCEL;
173 p->cmd->result = CARD_RESULT_CANCELED;
181 p->cmd->src = (u32)p->src;
182 p->cmd->dst = (u32)CARDi_backup_cache_page_buf;
187 MI_CpuCopy8((const void *)p->src, CARDi_backup_cache_page_buf, len);
190 p->cmd->src = (u32)CARDi_backup_cache_page_buf;
191 p->cmd->dst = (u32)p->dst;
195 p->cmd->src = (u32)p->src;
196 p->cmd->dst = (u32)p->dst;
200 if (!CARDi_Request(p, req_type, retry_count))
207 if (!CARDi_Request(p, CARD_REQ_VERIFY_BACKUP, 1))
215 MI_CpuCopy8(CARDi_backup_cache_page_buf, (void *)p->dst, len);
217 p->src += len;
218 p->dst += len;
219 p->len -= len;
221 while (p->len > 0);
234 static void CARDi_RequestWriteSectorCommandCore(CARDiCommon * p)
240 if ((((u32)p->dst | p->len) & (sector_size - 1)) != 0)
242 p->flag &= ~CARD_STAT_CANCEL;
243 p->cmd->result = CARD_RESULT_INVALID_PARAM;
248 for (; p->len > 0; p->len -= sector_size)
252 if ((p->flag & CARD_STAT_CANCEL) != 0)
254 p->flag &= ~CARD_STAT_CANCEL;
255 p->cmd->result = CARD_RESULT_CANCELED;
259 p->cmd->dst = (u32)p->dst;
260 p->cmd->len = len;
261 if (!CARDi_Request(p, CARD_REQ_ERASE_SECTOR_BACKUP, 1))
269 if ((p->flag & CARD_STAT_CANCEL) != 0)
271 p->flag &= ~CARD_STAT_CANCEL;
272 p->cmd->result = CARD_RESULT_CANCELED;
276 MI_CpuCopy8((const void *)p->src, CARDi_backup_cache_page_buf, page);
279 p->cmd->src = (u32)CARDi_backup_cache_page_buf;
280 p->cmd->dst = (u32)p->dst;
281 p->cmd->len = page;
282 if (!CARDi_Request(p, CARD_REQ_PROGRAM_BACKUP, CARD_RETRY_COUNT_MAX))
287 if (p->req_mode == CARD_REQUEST_MODE_SEND_VERIFY)
289 if (!CARDi_Request(p, CARD_REQ_VERIFY_BACKUP, 1))
294 p->src += page;
295 p->dst += page;
312 static void CARDi_AccessStatusCore(CARDiCommon *p)
316 p->cmd->src = (u32)CARDi_backup_cache_page_buf;
317 p->cmd->dst = (u32)CARDi_backup_cache_page_buf;
318 (void)CARDi_Request(p, command, 1);
338 CARDiCommandArg *const p = cardi_common.cmd;
341 MI_CpuFill8(&p->spec, 0, sizeof(p->spec));
342 p->type = type;
343 p->spec.caps = (CARD_BACKUP_CAPS_AVAILABLE | CARD_BACKUP_CAPS_READ_STATUS);
358 p->spec.total_size = size;
360 p->spec.initial_status = 0xFF;
368 p->spec.page_size = 0x10;
369 p->spec.addr_width = 1;
370 p->spec.program_page = 5;
371 p->spec.initial_status = 0xF0;
374 p->spec.page_size = 0x0020;
375 p->spec.addr_width = 2;
376 p->spec.program_page = 5;
377 p->spec.initial_status = 0x00;
380 p->spec.page_size = 0x0080;
381 p->spec.addr_width = 2;
382 p->spec.program_page = 10;
383 p->spec.initial_status = 0x00;
386 p->spec.page_size = 0x0100;
387 p->spec.addr_width = 3;
388 p->spec.program_page = 5;
389 p->spec.initial_status = 0x00;
392 p->spec.sect_size = p->spec.page_size;
393 p->spec.caps |= CARD_BACKUP_CAPS_READ;
394 p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM;
395 p->spec.caps |= CARD_BACKUP_CAPS_VERIFY;
396 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
407 p->spec.write_page = 25;
408 p->spec.write_page_total = 300;
409 p->spec.erase_page = 300;
410 p->spec.erase_sector = 5000;
411 p->spec.caps |= CARD_BACKUP_CAPS_WRITE;
412 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_PAGE;
415 p->spec.write_page = 23;
416 p->spec.write_page_total = 300;
417 p->spec.erase_sector = 500;
418 p->spec.erase_sector_total = 5000;
419 p->spec.erase_chip = 10000;
420 p->spec.erase_chip_total = 60000;
421 p->spec.initial_status = 0x00;
422 p->spec.caps |= CARD_BACKUP_CAPS_WRITE;
423 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_PAGE;
424 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP;
425 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
428 p->spec.erase_sector = 600;
429 p->spec.erase_sector_total = 3000;
430 p->spec.erase_subsector = 70;
431 p->spec.erase_subsector_total = 150;
432 p->spec.erase_chip = 23000;
433 p->spec.erase_chip_total = 800000;
434 p->spec.initial_status = 0x00;
435 p->spec.subsect_size = 0x1000;
436 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_SUBSECTOR;
437 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP;
438 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
443 p->spec.erase_sector = 1000;
444 p->spec.erase_sector_total = 3000;
445 p->spec.erase_chip = 68000;
446 p->spec.erase_chip_total = 160000;
447 p->spec.initial_status = 0x00;
448 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP;
449 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
453 p->spec.erase_sector = 1000;
454 p->spec.erase_sector_total = 3000;
455 p->spec.erase_chip = 68000;
456 p->spec.erase_chip_total = 160000;
457 p->spec.initial_status = 0x84;
458 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_CHIP;
459 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
463 p->spec.sect_size = 0x010000;
464 p->spec.page_size = 0x0100;
465 p->spec.addr_width = 3;
466 p->spec.program_page = 5;
467 p->spec.caps |= CARD_BACKUP_CAPS_READ;
468 p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM;
469 p->spec.caps |= CARD_BACKUP_CAPS_VERIFY;
470 p->spec.caps |= CARD_BACKUP_CAPS_ERASE_SECTOR;
482 p->spec.page_size = size;
483 p->spec.sect_size = size;
484 p->spec.addr_width = 2;
485 p->spec.initial_status = 0x00;
486 p->spec.caps |= CARD_BACKUP_CAPS_READ;
487 p->spec.caps |= CARD_BACKUP_CAPS_PROGRAM;
488 p->spec.caps |= CARD_BACKUP_CAPS_VERIFY;
489 p->spec.caps |= CARD_BACKUP_CAPS_WRITE_STATUS;
494 p->type = CARD_BACKUP_TYPE_NOT_USE;
495 p->spec.total_size = 0;
513 static void CARDi_IdentifyBackupCore(CARDiCommon * p)
515 (void)CARDi_Request(p, CARD_REQ_IDENTIFY, 1);
521 p->cmd->src = 0;
522 p->cmd->dst = (u32)CARDi_backup_cache_page_buf;
523 p->cmd->len = 1;
524 (void)CARDi_Request(p, CARD_REQ_READ_BACKUP, 1);
577 CARDiCommon *p = &cardi_common;
578 p->src = src;
579 p->dst = dst;
580 p->len = len;
581 p->req_type = req_type;
582 p->req_retry = req_retry;
583 p->req_mode = req_mode;
636 CARDiCommon *p = &cardi_common;
637 p->src = src;
638 p->dst = dst;
639 p->len = len;
640 p->req_mode = verify ? CARD_REQUEST_MODE_SEND_VERIFY : CARD_REQUEST_MODE_SEND;