123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /*
- * (C) Copyright 2000-2003
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
- #ifndef _MMC_H_
- #define _MMC_H_
- /* MMC command numbers */
- #define MMC_CMD_GO_IDLE_STATE 0
- #define MMC_CMD_SEND_OP_COND 1
- #define MMC_CMD_ALL_SEND_CID 2
- #define MMC_CMD_SET_RELATIVE_ADDR 3
- #define MMC_CMD_SET_DSR 4
- #define MMC_CMD_SELECT_CARD 7
- #define MMC_CMD_SEND_CSD 9
- #define MMC_CMD_SEND_CID 10
- #define MMC_CMD_SEND_STATUS 13
- #define MMC_CMD_SET_BLOCKLEN 16
- #define MMC_CMD_READ_SINGLE_BLOCK 17
- #define MMC_CMD_READ_MULTIPLE_BLOCK 18
- #define MMC_CMD_WRITE_BLOCK 24
- #define MMC_CMD_APP_CMD 55
- /* SD Card command numbers */
- #define SD_CMD_SEND_RELATIVE_ADDR 3
- #define SD_CMD_SWITCH 6
- #define SD_CMD_SEND_IF_COND 8
- #define SD_CMD_APP_SET_BUS_WIDTH 6
- #define SD_CMD_APP_SEND_OP_COND 41
- #define R1_ILLEGAL_COMMAND (1 << 22)
- #define R1_APP_CMD (1 << 5)
- int mmc_legacy_init(int verbose);
- int mmc_read(ulong src, uchar *dst, int size);
- int mmc_write(uchar *src, ulong dst, int size);
- struct mmc_cid {
- unsigned long psn;
- unsigned short oid;
- unsigned char mid;
- unsigned char prv;
- unsigned char mdt;
- char pnm[7];
- };
- struct mmc_csd
- {
- u8 csd_structure:2,
- spec_vers:4,
- rsvd1:2;
- u8 taac;
- u8 nsac;
- u8 tran_speed;
- u16 ccc:12,
- read_bl_len:4;
- u64 read_bl_partial:1,
- write_blk_misalign:1,
- read_blk_misalign:1,
- dsr_imp:1,
- rsvd2:2,
- c_size:12,
- vdd_r_curr_min:3,
- vdd_r_curr_max:3,
- vdd_w_curr_min:3,
- vdd_w_curr_max:3,
- c_size_mult:3,
- sector_size:5,
- erase_grp_size:5,
- wp_grp_size:5,
- wp_grp_enable:1,
- default_ecc:2,
- r2w_factor:3,
- write_bl_len:4,
- write_bl_partial:1,
- rsvd3:5;
- u8 file_format_grp:1,
- copy:1,
- perm_write_protect:1,
- tmp_write_protect:1,
- file_format:2,
- ecc:2;
- u8 crc:7;
- u8 one:1;
- };
- #endif /* _MMC_H_ */
|