Definition in file sd_mmc_mci_mem.c.
#include "conf_access.h"
#include "conf_sd_mmc_mci.h"
#include "sd_mmc_mci.h"
#include "sd_mmc_mci_mem.h"
#include "usb_drv.h"
#include "scsi_decoder.h"
Go to the source code of this file.
Defines | |
#define | Sd_mmc_mci_access_signal_off() |
#define | Sd_mmc_mci_access_signal_on() |
Functions | |
MEM <-> RAM Interface | |
Ctrl_status | sd_mmc_mci_dma_mem_2_ram (U8 slot, U32 addr, void *ram) |
Ctrl_status | sd_mmc_mci_dma_multiple_mem_2_ram (U8 slot, U32 addr, void *ram, U32 nb_sectors) |
Ctrl_status | sd_mmc_mci_dma_multiple_ram_2_mem (U8 slot, U32 addr, const void *ram, U32 nb_sectors) |
Ctrl_status | sd_mmc_mci_dma_ram_2_mem (U8 slot, U32 addr, const void *ram) |
Ctrl_status | sd_mmc_mci_mem_2_ram (U8 slot, U32 addr, void *ram) |
Copies 1 data sector from the memory to RAM. | |
Ctrl_status | sd_mmc_mci_mem_2_ram_0 (U32 addr, void *ram) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O. | |
Ctrl_status | sd_mmc_mci_mem_2_ram_1 (U32 addr, void *ram) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1. | |
Ctrl_status | sd_mmc_mci_multiple_mem_2_ram (U8 slot, U32 addr, void *ram, U32 nb_sectors) |
Copies nb_sectors data sector from the memory to RAM. | |
Ctrl_status | sd_mmc_mci_multiple_mem_2_ram_0 (U32 addr, void *ram, U32 nb_sectors) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O. | |
Ctrl_status | sd_mmc_mci_multiple_mem_2_ram_1 (U32 addr, void *ram, U32 nb_sectors) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1. | |
Ctrl_status | sd_mmc_mci_multiple_ram_2_mem (U8 slot, U32 addr, const void *ram, U32 nb_sectors) |
Copies nb_sectors data sector from RAM to the memory. | |
Ctrl_status | sd_mmc_mci_multiple_ram_2_mem_0 (U32 addr, const void *ram, U32 nb_sectors) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O. | |
Ctrl_status | sd_mmc_mci_multiple_ram_2_mem_1 (U32 addr, const void *ram, U32 nb_sectors) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1. | |
Ctrl_status | sd_mmc_mci_ram_2_mem (U8 slot, U32 addr, const void *ram) |
Copies 1 data sector from RAM to the memory. | |
Ctrl_status | sd_mmc_mci_ram_2_mem_0 (U32 addr, const void *ram) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O. | |
Ctrl_status | sd_mmc_mci_ram_2_mem_1 (U32 addr, const void *ram) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1. | |
Control Interface | |
Ctrl_status | sd_mmc_mci_read_capacity (U8 slot, U32 *u32_nb_sector) |
Returns the address of the last valid sector in the memory. | |
Ctrl_status | sd_mmc_mci_read_capacity_0 (U32 *u32_nb_sector) |
Instance Declaration for sd_mmc_mci_read_capacity Slot O. | |
Ctrl_status | sd_mmc_mci_read_capacity_1 (U32 *u32_nb_sector) |
Instance Declaration for sd_mmc_mci_read_capacity Slot 1. | |
Bool | sd_mmc_mci_removal (U8 slot) |
Tells whether the memory is removable. | |
Bool | sd_mmc_mci_removal_0 (void) |
Instance Declaration for sd_mmc_mci_removal Slot O. | |
Bool | sd_mmc_mci_removal_1 (void) |
Instance Declaration for sd_mmc_mci_removal Slot 1. | |
Ctrl_status | sd_mmc_mci_test_unit_ready (U8 slot) |
Tests the memory state and initializes the memory if required. | |
Ctrl_status | sd_mmc_mci_test_unit_ready_0 (void) |
Instance Declaration for sd_mmc_mci_test_unit_ready Slot O. | |
Ctrl_status | sd_mmc_mci_test_unit_ready_1 (void) |
Instance Declaration for sd_mmc_mci_test_unit_ready Slot 1. | |
Bool | sd_mmc_mci_wr_protect (U8 slot) |
Returns the write-protection state of the memory. | |
Bool | sd_mmc_mci_wr_protect_0 (void) |
Instance Declaration for sd_mmc_mci_wr_protect Slot O. | |
Bool | sd_mmc_wr_mci_protect_1 (void) |
Instance Declaration for sd_mmc_mci_wr_protect Slot 1. | |
MEM <-> USB Interface | |
void | sd_mmc_mci_read_multiple_sector_callback (const void *psector) |
Callback function invoked after each sector read during sd_mmc_mci_read_multiple_sector. | |
Ctrl_status | sd_mmc_mci_usb_read_10 (U8 slot, U32 addr, U16 nb_sector) |
Tranfers data from the memory to USB. | |
Ctrl_status | sd_mmc_mci_usb_read_10_0 (U32 addr, U16 nb_sector) |
Instance Declaration for sd_mmc_mci_usb_read_10 Slot O. | |
Ctrl_status | sd_mmc_mci_usb_read_10_1 (U32 addr, U16 nb_sector) |
Instance Declaration for sd_mmc_mci_usb_read_10 Slot 1. | |
Ctrl_status | sd_mmc_mci_usb_write_10 (U8 slot, U32 addr, U16 nb_sector) |
Tranfers data from USB to the memory. | |
Ctrl_status | sd_mmc_mci_usb_write_10_0 (U32 addr, U16 nb_sector) |
Instance Declaration for sd_mmc_mci_usb_write_10 Slot O. | |
Ctrl_status | sd_mmc_mci_usb_write_10_1 (U32 addr, U16 nb_sector) |
Instance Declaration for sd_mmc_mci_usb_write_10 Slot 1. | |
void | sd_mmc_mci_write_multiple_sector_callback (void *psector) |
Callback function invoked before each sector write during sd_mmc_mci_write_multiple_sector. | |
Variables | |
U32 | g_u32_card_size [MCI_NR_SLOTS] |
SD/MMC Card Size per Slot. | |
Bool | sd_mmc_mci_init_done [MCI_NR_SLOTS] |
Initialization sequence status per Slot. | |
static U8 | sd_mmc_mci_presence_status [MCI_NR_SLOTS] = {SD_MMC_INSERTED, SD_MMC_INSERTED} |
SD/MMC Card Presence status per Slot. |
#define Sd_mmc_mci_access_signal_off | ( | ) |
Definition at line 61 of file sd_mmc_mci_mem.c.
Referenced by sd_mmc_mci_dma_mem_2_ram(), sd_mmc_mci_dma_multiple_mem_2_ram(), sd_mmc_mci_dma_multiple_ram_2_mem(), sd_mmc_mci_dma_ram_2_mem(), sd_mmc_mci_mem_2_ram(), sd_mmc_mci_multiple_mem_2_ram(), sd_mmc_mci_multiple_ram_2_mem(), sd_mmc_mci_ram_2_mem(), sd_mmc_mci_read_capacity(), sd_mmc_mci_test_unit_ready(), sd_mmc_mci_usb_read_10(), and sd_mmc_mci_usb_write_10().
#define Sd_mmc_mci_access_signal_on | ( | ) |
Definition at line 60 of file sd_mmc_mci_mem.c.
Referenced by sd_mmc_mci_read_capacity(), sd_mmc_mci_test_unit_ready(), sd_mmc_mci_usb_read_10(), and sd_mmc_mci_usb_write_10().
Ctrl_status sd_mmc_mci_dma_mem_2_ram | ( | U8 | slot, | |
U32 | addr, | |||
void * | ram | |||
) |
Definition at line 354 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_dma_read_open(), sd_mmc_mci_dma_read_sector_2_ram(), sd_mmc_mci_mem_check(), and sd_mmc_mci_read_close().
Referenced by main().
00355 { 00356 if( !sd_mmc_mci_mem_check(slot) ) 00357 { 00358 Sd_mmc_mci_access_signal_off(); 00359 return CTRL_NO_PRESENT; 00360 } 00361 00362 if( !sd_mmc_mci_dma_read_open(slot, addr, ram, 1) ) 00363 return CTRL_FAIL; 00364 00365 if( !sd_mmc_mci_dma_read_sector_2_ram(slot,ram) ) 00366 return CTRL_FAIL; 00367 00368 if(! sd_mmc_mci_read_close(slot) ) 00369 return CTRL_FAIL; 00370 00371 Sd_mmc_mci_access_signal_off(); 00372 return CTRL_GOOD; 00373 00374 }
Ctrl_status sd_mmc_mci_dma_multiple_mem_2_ram | ( | U8 | slot, | |
U32 | addr, | |||
void * | ram, | |||
U32 | nb_sectors | |||
) |
Definition at line 411 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_dma_read_multiple_sector_2_ram(), sd_mmc_mci_dma_read_open(), sd_mmc_mci_mem_check(), and sd_mmc_mci_read_close().
Referenced by main().
00412 { 00413 if( !sd_mmc_mci_mem_check(slot) ) 00414 { 00415 Sd_mmc_mci_access_signal_off(); 00416 return CTRL_NO_PRESENT; 00417 } 00418 00419 if( !sd_mmc_mci_dma_read_open(slot, addr, ram, nb_sectors ) ) 00420 return CTRL_FAIL; 00421 00422 if( !sd_mmc_mci_dma_read_multiple_sector_2_ram(slot, ram, nb_sectors) ) 00423 return CTRL_FAIL; 00424 00425 if( !sd_mmc_mci_read_close(slot) ) 00426 return CTRL_FAIL; 00427 00428 Sd_mmc_mci_access_signal_off(); 00429 return CTRL_GOOD; 00430 }
Ctrl_status sd_mmc_mci_dma_multiple_ram_2_mem | ( | U8 | slot, | |
U32 | addr, | |||
const void * | ram, | |||
U32 | nb_sectors | |||
) |
Definition at line 523 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_dma_write_multiple_sector_from_ram(), sd_mmc_mci_dma_write_open(), sd_mmc_mci_mem_check(), and sd_mmc_mci_write_close().
Referenced by main().
00524 { 00525 if( !sd_mmc_mci_mem_check(slot) ) 00526 { 00527 Sd_mmc_mci_access_signal_off(); 00528 return CTRL_NO_PRESENT; 00529 } 00530 00531 if( !sd_mmc_mci_dma_write_open(slot, addr, ram, nb_sectors) ) 00532 return CTRL_FAIL; 00533 00534 if( !sd_mmc_mci_dma_write_multiple_sector_from_ram(slot, ram, nb_sectors) ) 00535 return CTRL_FAIL; 00536 00537 if( !sd_mmc_mci_write_close(slot) ) 00538 return CTRL_FAIL; 00539 00540 Sd_mmc_mci_access_signal_off(); 00541 return CTRL_GOOD; 00542 }
Ctrl_status sd_mmc_mci_dma_ram_2_mem | ( | U8 | slot, | |
U32 | addr, | |||
const void * | ram | |||
) |
Definition at line 467 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_dma_write_open(), sd_mmc_mci_dma_write_sector_from_ram(), sd_mmc_mci_mem_check(), and sd_mmc_mci_write_close().
Referenced by main().
00468 { 00469 if( !sd_mmc_mci_mem_check(slot) ) 00470 { 00471 Sd_mmc_mci_access_signal_off(); 00472 return CTRL_NO_PRESENT; 00473 } 00474 00475 if( !sd_mmc_mci_dma_write_open(slot, addr, ram, 1) ) 00476 return CTRL_FAIL; 00477 00478 if( !sd_mmc_mci_dma_write_sector_from_ram(slot, ram) ) 00479 return CTRL_FAIL; 00480 00481 if( !sd_mmc_mci_write_close(slot) ) 00482 return CTRL_FAIL; 00483 00484 Sd_mmc_mci_access_signal_off(); 00485 return CTRL_GOOD; 00486 }
Ctrl_status sd_mmc_mci_mem_2_ram | ( | U8 | slot, | |
U32 | addr, | |||
void * | ram | |||
) |
Copies 1 data sector from the memory to RAM.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to read. | |
ram | Pointer to RAM buffer to write. |
Definition at line 331 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_mem_check(), sd_mmc_mci_read_close(), sd_mmc_mci_read_open(), and sd_mmc_mci_read_sector_2_ram().
Referenced by main(), sd_mmc_mci_mem_2_ram_0(), sd_mmc_mci_mem_2_ram_1(), and test_sd_mmc_write().
00332 { 00333 if( !sd_mmc_mci_mem_check(slot) ) 00334 { 00335 Sd_mmc_mci_access_signal_off(); 00336 return CTRL_NO_PRESENT; 00337 } 00338 00339 if( !sd_mmc_mci_read_open(slot, addr, 1) ) 00340 return CTRL_FAIL; 00341 00342 if( !sd_mmc_mci_read_sector_2_ram(slot, ram) ) 00343 return CTRL_FAIL; 00344 00345 if( !sd_mmc_mci_read_close(slot) ) 00346 return CTRL_FAIL; 00347 00348 Sd_mmc_mci_access_signal_off(); 00349 return CTRL_GOOD; 00350 00351 }
Ctrl_status sd_mmc_mci_mem_2_ram_0 | ( | U32 | addr, | |
void * | ram | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O.
Definition at line 377 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_mem_2_ram().
00378 { 00379 return sd_mmc_mci_mem_2_ram(0, addr, ram); 00380 }
Ctrl_status sd_mmc_mci_mem_2_ram_1 | ( | U32 | addr, | |
void * | ram | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1.
Definition at line 383 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_mem_2_ram().
00384 { 00385 return sd_mmc_mci_mem_2_ram(1, addr, ram); 00386 }
Ctrl_status sd_mmc_mci_multiple_mem_2_ram | ( | U8 | slot, | |
U32 | addr, | |||
void * | ram, | |||
U32 | nb_sectors | |||
) |
Copies nb_sectors data sector from the memory to RAM.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to read. | |
ram | Pointer to RAM buffer to write. | |
nb_sectors | Number of sectors to read. |
Definition at line 389 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_mem_check(), sd_mmc_mci_read_close(), sd_mmc_mci_read_multiple_sector_2_ram(), and sd_mmc_mci_read_open().
Referenced by main(), sd_mmc_mci_multiple_mem_2_ram_0(), and sd_mmc_mci_multiple_mem_2_ram_1().
00390 { 00391 if( !sd_mmc_mci_mem_check(slot) ) 00392 { 00393 Sd_mmc_mci_access_signal_off(); 00394 return CTRL_NO_PRESENT; 00395 } 00396 00397 if( !sd_mmc_mci_read_open(slot, addr, nb_sectors) ) 00398 return CTRL_FAIL; 00399 00400 if( !sd_mmc_mci_read_multiple_sector_2_ram(slot, ram, nb_sectors) ) 00401 return CTRL_FAIL; 00402 00403 if( !sd_mmc_mci_read_close(slot) ) 00404 return CTRL_FAIL; 00405 00406 Sd_mmc_mci_access_signal_off(); 00407 return CTRL_GOOD; 00408 }
Ctrl_status sd_mmc_mci_multiple_mem_2_ram_0 | ( | U32 | addr, | |
void * | ram, | |||
U32 | nb_sectors | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O.
Definition at line 433 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_multiple_mem_2_ram().
00434 { 00435 return sd_mmc_mci_multiple_mem_2_ram(0, addr, ram, nb_sectors); 00436 }
Ctrl_status sd_mmc_mci_multiple_mem_2_ram_1 | ( | U32 | addr, | |
void * | ram, | |||
U32 | nb_sectors | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1.
Definition at line 439 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_multiple_mem_2_ram().
00440 { 00441 return sd_mmc_mci_multiple_mem_2_ram(1, addr, ram, nb_sectors); 00442 }
Ctrl_status sd_mmc_mci_multiple_ram_2_mem | ( | U8 | slot, | |
U32 | addr, | |||
const void * | ram, | |||
U32 | nb_sectors | |||
) |
Copies nb_sectors data sector from RAM to the memory.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to write. | |
ram | Pointer to RAM buffer to read. | |
nb_sectors | Number of sectors to write. |
Definition at line 501 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_mem_check(), sd_mmc_mci_write_close(), sd_mmc_mci_write_multiple_sector_from_ram(), and sd_mmc_mci_write_open().
Referenced by main(), sd_mmc_mci_multiple_ram_2_mem_0(), and sd_mmc_mci_multiple_ram_2_mem_1().
00502 { 00503 if( !sd_mmc_mci_mem_check(slot) ) 00504 { 00505 Sd_mmc_mci_access_signal_off(); 00506 return CTRL_NO_PRESENT; 00507 } 00508 00509 if( !sd_mmc_mci_write_open(slot, addr, nb_sectors) ) 00510 return CTRL_FAIL; 00511 00512 if( !sd_mmc_mci_write_multiple_sector_from_ram(slot, ram, nb_sectors) ) 00513 return CTRL_FAIL; 00514 00515 if( !sd_mmc_mci_write_close(slot) ) 00516 return CTRL_FAIL; 00517 00518 Sd_mmc_mci_access_signal_off(); 00519 return CTRL_GOOD; 00520 }
Ctrl_status sd_mmc_mci_multiple_ram_2_mem_0 | ( | U32 | addr, | |
const void * | ram, | |||
U32 | nb_sectors | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O.
Definition at line 545 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_multiple_ram_2_mem().
00546 { 00547 return sd_mmc_mci_multiple_ram_2_mem(0, addr, ram, nb_sectors); 00548 }
Ctrl_status sd_mmc_mci_multiple_ram_2_mem_1 | ( | U32 | addr, | |
const void * | ram, | |||
U32 | nb_sectors | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1.
Definition at line 551 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_multiple_ram_2_mem().
00552 { 00553 return sd_mmc_mci_multiple_ram_2_mem(1, addr, ram, nb_sectors); 00554 }
Ctrl_status sd_mmc_mci_ram_2_mem | ( | U8 | slot, | |
U32 | addr, | |||
const void * | ram | |||
) |
Copies 1 data sector from RAM to the memory.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to write. | |
ram | Pointer to RAM buffer to read. |
Definition at line 445 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, sd_mmc_mci_mem_check(), sd_mmc_mci_write_close(), sd_mmc_mci_write_open(), and sd_mmc_mci_write_sector_from_ram().
Referenced by main(), sd_mmc_mci_ram_2_mem_0(), sd_mmc_mci_ram_2_mem_1(), and test_sd_mmc_write().
00446 { 00447 if( !sd_mmc_mci_mem_check(slot) ) 00448 { 00449 Sd_mmc_mci_access_signal_off(); 00450 return CTRL_NO_PRESENT; 00451 } 00452 00453 if( !sd_mmc_mci_write_open(slot, addr, 1) ) 00454 return CTRL_FAIL; 00455 00456 if( !sd_mmc_mci_write_sector_from_ram(slot,ram) ) 00457 return CTRL_FAIL; 00458 00459 if( !sd_mmc_mci_write_close(slot) ) 00460 return CTRL_FAIL; 00461 00462 Sd_mmc_mci_access_signal_off(); 00463 return CTRL_GOOD; 00464 }
Ctrl_status sd_mmc_mci_ram_2_mem_0 | ( | U32 | addr, | |
const void * | ram | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot O.
Definition at line 489 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_ram_2_mem().
00490 { 00491 return sd_mmc_mci_ram_2_mem(0, addr, ram); 00492 }
Ctrl_status sd_mmc_mci_ram_2_mem_1 | ( | U32 | addr, | |
const void * | ram | |||
) |
Instance Declaration for sd_mmc_mci_mem_2_ram Slot 1.
Definition at line 495 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_ram_2_mem().
00496 { 00497 return sd_mmc_mci_ram_2_mem(1, addr, ram); 00498 }
Ctrl_status sd_mmc_mci_read_capacity | ( | U8 | slot, | |
U32 * | u32_nb_sector | |||
) |
Returns the address of the last valid sector in the memory.
slot | SD/MMC Slot Card Selected. | |
u32_nb_sector | Pointer to the address of the last valid sector. |
Definition at line 129 of file sd_mmc_mci_mem.c.
References g_u32_card_size, Sd_mmc_mci_access_signal_off, Sd_mmc_mci_access_signal_on, and sd_mmc_mci_mem_check().
Referenced by main(), sd_mmc_mci_read_capacity_0(), and sd_mmc_mci_read_capacity_1().
00130 { 00131 Sd_mmc_mci_access_signal_on(); 00132 00133 if( !sd_mmc_mci_mem_check(slot) ) 00134 { 00135 Sd_mmc_mci_access_signal_off(); 00136 return CTRL_NO_PRESENT; 00137 } 00138 *u32_nb_sector = g_u32_card_size[slot]-1; 00139 Sd_mmc_mci_access_signal_off(); 00140 return CTRL_GOOD; 00141 }
Ctrl_status sd_mmc_mci_read_capacity_0 | ( | U32 * | u32_nb_sector | ) |
Instance Declaration for sd_mmc_mci_read_capacity Slot O.
Definition at line 144 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_read_capacity().
00145 { 00146 return sd_mmc_mci_read_capacity(0, u32_nb_sector); 00147 }
Ctrl_status sd_mmc_mci_read_capacity_1 | ( | U32 * | u32_nb_sector | ) |
Instance Declaration for sd_mmc_mci_read_capacity Slot 1.
Definition at line 150 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_read_capacity().
00151 { 00152 return sd_mmc_mci_read_capacity(1, u32_nb_sector); 00153 }
void sd_mmc_mci_read_multiple_sector_callback | ( | const void * | psector | ) |
Callback function invoked after each sector read during sd_mmc_mci_read_multiple_sector.
psector | Pointer to read sector. |
Definition at line 240 of file sd_mmc_mci_mem.c.
References SD_MMC_SECTOR_SIZE.
00241 { 00242 U16 data_to_transfer = SD_MMC_SECTOR_SIZE; 00243 00244 // Transfer read sector to the USB interface. 00245 while (data_to_transfer) 00246 { 00247 while (!Is_usb_in_ready(g_scsi_ep_ms_in)) 00248 { 00249 if(!Is_usb_endpoint_enabled(g_scsi_ep_ms_in)) 00250 return; // USB Reset 00251 } 00252 00253 Usb_reset_endpoint_fifo_access(g_scsi_ep_ms_in); 00254 data_to_transfer = usb_write_ep_txpacket(g_scsi_ep_ms_in, psector, 00255 data_to_transfer, &psector); 00256 Usb_ack_in_ready_send(g_scsi_ep_ms_in); 00257 } 00258 }
Bool sd_mmc_mci_removal | ( | U8 | slot | ) |
Tells whether the memory is removable.
slot | SD/MMC Slot Card Selected. |
TRUE
if the memory is removable, else FALSE
. Definition at line 174 of file sd_mmc_mci_mem.c.
Referenced by sd_mmc_mci_removal_0(), and sd_mmc_mci_removal_1().
Bool sd_mmc_mci_removal_0 | ( | void | ) |
Instance Declaration for sd_mmc_mci_removal Slot O.
Definition at line 180 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_removal().
00181 { 00182 return sd_mmc_mci_removal(0); 00183 }
Bool sd_mmc_mci_removal_1 | ( | void | ) |
Instance Declaration for sd_mmc_mci_removal Slot 1.
Definition at line 186 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_removal().
00187 { 00188 return sd_mmc_mci_removal(1); 00189 }
Ctrl_status sd_mmc_mci_test_unit_ready | ( | U8 | slot | ) |
Tests the memory state and initializes the memory if required.
The TEST UNIT READY SCSI primary command allows an application client to poll a LUN until it is ready without having to allocate memory for returned data.
This command may be used to check the media status of LUNs with removable media.
slot | SD/MMC Slot Card Selected. |
Definition at line 75 of file sd_mmc_mci_mem.c.
References SD_MMC_INSERTED, Sd_mmc_mci_access_signal_off, Sd_mmc_mci_access_signal_on, sd_mmc_mci_init_done, sd_mmc_mci_mem_check(), sd_mmc_mci_presence_status, SD_MMC_REMOVED, and SD_MMC_REMOVING.
Referenced by sd_mmc_mci_test_unit_ready_0(), and sd_mmc_mci_test_unit_ready_1().
00076 { 00077 if (slot > MCI_LAST_SLOTS) return CTRL_FAIL; 00078 00079 Sd_mmc_mci_access_signal_on(); 00080 switch (sd_mmc_mci_presence_status[slot]) 00081 { 00082 case SD_MMC_REMOVED: 00083 sd_mmc_mci_init_done[slot] = FALSE; 00084 if (OK == sd_mmc_mci_mem_check(slot)) 00085 { 00086 sd_mmc_mci_presence_status[slot] = SD_MMC_INSERTED; 00087 Sd_mmc_mci_access_signal_off(); 00088 return CTRL_BUSY; 00089 } 00090 Sd_mmc_mci_access_signal_off(); 00091 return CTRL_NO_PRESENT; 00092 00093 case SD_MMC_INSERTED: 00094 if (OK != sd_mmc_mci_mem_check(slot)) 00095 { 00096 sd_mmc_mci_presence_status[slot] = SD_MMC_REMOVING; 00097 sd_mmc_mci_init_done[slot] = FALSE; 00098 Sd_mmc_mci_access_signal_off(); 00099 return CTRL_BUSY; 00100 } 00101 Sd_mmc_mci_access_signal_off(); 00102 return CTRL_GOOD; 00103 00104 case SD_MMC_REMOVING: 00105 sd_mmc_mci_presence_status[slot] = SD_MMC_REMOVED; 00106 Sd_mmc_mci_access_signal_off(); 00107 return CTRL_NO_PRESENT; 00108 00109 default: 00110 sd_mmc_mci_presence_status[slot] = SD_MMC_REMOVED; 00111 Sd_mmc_mci_access_signal_off(); 00112 return CTRL_BUSY; 00113 } 00114 }
Ctrl_status sd_mmc_mci_test_unit_ready_0 | ( | void | ) |
Instance Declaration for sd_mmc_mci_test_unit_ready Slot O.
Definition at line 117 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_test_unit_ready().
00118 { 00119 return sd_mmc_mci_test_unit_ready(0); 00120 }
Ctrl_status sd_mmc_mci_test_unit_ready_1 | ( | void | ) |
Instance Declaration for sd_mmc_mci_test_unit_ready Slot 1.
Definition at line 123 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_test_unit_ready().
00124 { 00125 return sd_mmc_mci_test_unit_ready(1); 00126 }
Ctrl_status sd_mmc_mci_usb_read_10 | ( | U8 | slot, | |
U32 | addr, | |||
U16 | nb_sector | |||
) |
Tranfers data from the memory to USB.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to read. | |
nb_sector | Number of sectors to transfer. |
Definition at line 204 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, Sd_mmc_mci_access_signal_on, sd_mmc_mci_dma_read_open(), sd_mmc_mci_mem_check(), sd_mmc_mci_read_close(), and sd_mmc_mci_read_multiple_sector().
Referenced by sd_mmc_mci_usb_read_10_0(), and sd_mmc_mci_usb_read_10_1().
00205 { 00206 Sd_mmc_mci_access_signal_on(); 00207 00208 if( !sd_mmc_mci_mem_check(slot) ) 00209 { 00210 Sd_mmc_mci_access_signal_off(); 00211 return CTRL_NO_PRESENT; 00212 } 00213 00214 if( !sd_mmc_mci_dma_read_open(slot, addr, NULL, nb_sector) ) 00215 return CTRL_FAIL; 00216 00217 if( !sd_mmc_mci_read_multiple_sector(slot, nb_sector) ) 00218 return CTRL_FAIL; 00219 00220 if( !sd_mmc_mci_read_close(slot) ) 00221 return CTRL_FAIL; 00222 00223 Sd_mmc_mci_access_signal_off(); 00224 return CTRL_GOOD; 00225 }
Ctrl_status sd_mmc_mci_usb_read_10_0 | ( | U32 | addr, | |
U16 | nb_sector | |||
) |
Instance Declaration for sd_mmc_mci_usb_read_10 Slot O.
Definition at line 228 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_usb_read_10().
00229 { 00230 return sd_mmc_mci_usb_read_10(0, addr, nb_sector); 00231 }
Ctrl_status sd_mmc_mci_usb_read_10_1 | ( | U32 | addr, | |
U16 | nb_sector | |||
) |
Instance Declaration for sd_mmc_mci_usb_read_10 Slot 1.
Definition at line 234 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_usb_read_10().
00235 { 00236 return sd_mmc_mci_usb_read_10(1, addr, nb_sector); 00237 }
Ctrl_status sd_mmc_mci_usb_write_10 | ( | U8 | slot, | |
U32 | addr, | |||
U16 | nb_sector | |||
) |
Tranfers data from USB to the memory.
slot | SD/MMC Slot Card Selected. | |
addr | Address of first memory sector to write. | |
nb_sector | Number of sectors to transfer. |
Definition at line 261 of file sd_mmc_mci_mem.c.
References Sd_mmc_mci_access_signal_off, Sd_mmc_mci_access_signal_on, sd_mmc_mci_dma_write_open(), sd_mmc_mci_mem_check(), sd_mmc_mci_write_close(), and sd_mmc_mci_write_multiple_sector().
Referenced by sd_mmc_mci_usb_write_10_0(), and sd_mmc_mci_usb_write_10_1().
00262 { 00263 Sd_mmc_mci_access_signal_on(); 00264 00265 if( !sd_mmc_mci_mem_check(slot) ) 00266 { 00267 Sd_mmc_mci_access_signal_off(); 00268 return CTRL_NO_PRESENT; 00269 } 00270 00271 if( !sd_mmc_mci_dma_write_open(slot, addr, NULL, nb_sector) ) 00272 return CTRL_FAIL; 00273 00274 if( !sd_mmc_mci_write_multiple_sector(slot, nb_sector) ) 00275 return CTRL_FAIL; 00276 00277 if( !sd_mmc_mci_write_close(slot) ) 00278 return CTRL_FAIL; 00279 00280 Sd_mmc_mci_access_signal_off(); 00281 return CTRL_GOOD; 00282 00283 }
Ctrl_status sd_mmc_mci_usb_write_10_0 | ( | U32 | addr, | |
U16 | nb_sector | |||
) |
Instance Declaration for sd_mmc_mci_usb_write_10 Slot O.
Definition at line 286 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_usb_write_10().
00287 { 00288 return sd_mmc_mci_usb_write_10(0, addr, nb_sector); 00289 }
Ctrl_status sd_mmc_mci_usb_write_10_1 | ( | U32 | addr, | |
U16 | nb_sector | |||
) |
Instance Declaration for sd_mmc_mci_usb_write_10 Slot 1.
Definition at line 292 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_usb_write_10().
00293 { 00294 return sd_mmc_mci_usb_write_10(1, addr, nb_sector); 00295 }
Bool sd_mmc_mci_wr_protect | ( | U8 | slot | ) |
Returns the write-protection state of the memory.
slot | SD/MMC Slot Card Selected. |
TRUE
if the memory is write-protected, else FALSE
.Definition at line 156 of file sd_mmc_mci_mem.c.
References is_sd_mmc_mci_card_protected().
Referenced by sd_mmc_mci_wr_protect_0(), and sd_mmc_wr_mci_protect_1().
00157 { 00158 return is_sd_mmc_mci_card_protected(slot); 00159 }
Bool sd_mmc_mci_wr_protect_0 | ( | void | ) |
Instance Declaration for sd_mmc_mci_wr_protect Slot O.
Definition at line 162 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_wr_protect().
00163 { 00164 return sd_mmc_mci_wr_protect(0); 00165 }
void sd_mmc_mci_write_multiple_sector_callback | ( | void * | psector | ) |
Callback function invoked before each sector write during sd_mmc_mci_write_multiple_sector.
psector | Pointer to sector to write. |
Definition at line 298 of file sd_mmc_mci_mem.c.
References SD_MMC_SECTOR_SIZE.
00299 { 00300 U16 data_to_transfer = SD_MMC_SECTOR_SIZE; 00301 00302 // Transfer sector to write from the USB interface. 00303 while (data_to_transfer) 00304 { 00305 while (!Is_usb_out_received(g_scsi_ep_ms_out)) 00306 { 00307 if(!Is_usb_endpoint_enabled(g_scsi_ep_ms_out)) 00308 return; // USB Reset 00309 } 00310 00311 Usb_reset_endpoint_fifo_access(g_scsi_ep_ms_out); 00312 data_to_transfer = usb_read_ep_rxpacket(g_scsi_ep_ms_out, psector, 00313 data_to_transfer, &psector); 00314 Usb_ack_out_received_free(g_scsi_ep_ms_out); 00315 } 00316 }
Bool sd_mmc_wr_mci_protect_1 | ( | void | ) |
Instance Declaration for sd_mmc_mci_wr_protect Slot 1.
Definition at line 168 of file sd_mmc_mci_mem.c.
References sd_mmc_mci_wr_protect().
00169 { 00170 return sd_mmc_mci_wr_protect(1); 00171 }
U32 g_u32_card_size[MCI_NR_SLOTS] |
SD/MMC Card Size per Slot.
Definition at line 68 of file sd_mmc_mci.c.
Referenced by sd_mmc_get_ext_csd(), sd_mmc_mci_get_csd(), and sd_mmc_mci_read_capacity().
Bool sd_mmc_mci_init_done[MCI_NR_SLOTS] |
Initialization sequence status per Slot.
Definition at line 64 of file sd_mmc_mci.c.
Referenced by sd_mmc_mci_card_init(), sd_mmc_mci_mem_check(), and sd_mmc_mci_test_unit_ready().
U8 sd_mmc_mci_presence_status[MCI_NR_SLOTS] = {SD_MMC_INSERTED, SD_MMC_INSERTED} [static] |
SD/MMC Card Presence status per Slot.
Definition at line 68 of file sd_mmc_mci_mem.c.
Referenced by sd_mmc_mci_test_unit_ready().