blob: cbaa7b93542db36428b1f38ef975d11345961ea4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
/** @file
Copyright (c) 2011, Samsung Electronics Co. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _MSHCDXE_CMD_H_
#define _MSHCDXE_CMD_H_
#define HosttoCard 0x1
#define CardtoHost 0x0
#define ENDMA BIT0
#define ENBLKCNT BIT1
#define RD1WT0 BIT4
#define MUL1SIN0 BIT5
#define RSPTYP136 (0x1 << 16)
#define RSPTYP48 (0x2 << 16)
#define RSPTYP48B (0x3 << 16)
#define ENCMDCRC BIT19
#define ENCMDIDX BIT20
#define DATAPRNT BIT21
#define CMDCOMP BIT0
#define TRNSCOMP BIT1
#define RDYFORWT BIT4
#define RDYFORRD BIT5
#define CARDINSERT BIT6
#define CARDREMOVE BIT7
#define ERRINT BIT15
#define CMDTOUTERR BIT16
#define CMDCRCERR BIT17
#define CMDEBITERR BIT18
#define CMDIDXERR BIT19
#define DATATOUTERR BIT20
#define DATACRCERR BIT21
#define DATAEBITERR BIT22
#define HCS BIT30 //Host capacity support/1 = Supporting high capacity
/* Command Definitions */
#define INDX(CMD_INDX) (CMD_INDX & 0x3F)
#define CMD0 INDX(0)
#define CMD0_INT_EN (CMDCOMP | CMDEBITERR)
#define CMD1 (INDX(1) | RSPTYP48)
#define CMD1_INT_EN (CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD2 (INDX(2) | ENCMDCRC | RSPTYP136)
#define CMD2_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD3 (INDX(3) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD3_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD5 (INDX(5) | RSPTYP48)
#define CMD5_INT_EN (CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD7 (INDX(7) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD7_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
//#define CMD8 (INDX(8) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD8 (INDX(8) | ENCMDIDX | RSPTYP48)
#define CMD8_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
//Reserved(0)[12:31], Supply voltage(1)[11:8], check pattern(0xCE)[7:0] = 0x1CE
//#define CMD8_ARG (0x0UL << 12 | BIT8 | 0xCEUL << 0)
#define CMD8_ARG (0x0UL << 12 | BIT8 | 0xAAUL << 0)
#define CMD9 (INDX(9) | ENCMDCRC | RSPTYP136)
#define CMD9_INT_EN (CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD13 (INDX(13) | RSPTYP48)
#define CMD13_INT_EN (CMDCOMP | CMDEBITERR | CMDTOUTERR)
//#define CMD16 (INDX(16) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD16 (INDX(16) | ENCMDIDX | RSPTYP48)
#define CMD16_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD17 (INDX(17) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | RD1WT0)
#define CMD17_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORRD | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)
//#define CMD18 (INDX(18) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | MUL1SIN0 | RD1WT0 | ENBLKCNT | ENDMA)
#define CMD18 (INDX(18) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 )
#define CMD18_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORRD | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)
#define CMD23 (INDX(23) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD23_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD24 (INDX(24) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD24_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORWT | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)
//#define CMD25 (INDX(25) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | MUL1SIN0 | ENBLKCNT | ENDMA)
#define CMD25 (INDX(25) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD25_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORWT | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)
//#define CMD55 (INDX(55) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD55 (INDX(55) | ENCMDIDX | RSPTYP48)
#define CMD55_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define ACMD41 (INDX(41) | RSPTYP48)
#define ACMD41_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define ACMD6 (INDX(6) | RSPTYP48)
#define ACMD6_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
#define CMD62 (INDX(62) | RSPTYP48)
#define CMD62_INT_EN (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
/*
EFI_STATUS
EFI_SUCCESS 0
EFI_LOAD_ERROR 1
EFI_INVALID_PARAMETER 2
EFI_UNSUPPORTED 3
EFI_BAD_BUFFER_SIZE 4
EFI_BUFFER_TOO_SMALL 5
EFI_NOT_READY 6
EFI_DEVICE_ERROR 7
EFI_WRITE_PROTECTED 8
EFI_OUT_OF_RESOURCES 9
EFI_VOLUME_CORRUPTED 10
EFI_VOLUME_FULL 11
EFI_NO_MEDIA 12
EFI_MEDIA_CHANGED 13
EFI_NOT_FOUND 14
EFI_ACCESS_DENIED 15
EFI_NO_RESPONSE 16
EFI_NO_MAPPING 17
EFI_TIMEOUT 18
EFI_NOT_STARTED 19
EFI_ALREADY_STARTED 20
EFI_ABORTED 21
EFI_ICMO_ERROR 22
EFI_TFTP_ERROR 23
EFI_PROTOCOL_ERROR 24
EFI_INCOMPATIBLE_VERSION 25
EFI_SECURITY_VIOLATION 26
EFI_CRC_ERROR 27
EFI_END_OF_MEDIA 28
EFI_END_OF_FILE 31
EFI_INVALID_LANGUAGE 32
EFI_COMPROMISED_DATA 33
*/
#endif
|