2 ## This file is part of the libsigrokdecode project.
4 ## Copyright (C) 2012-2014 Uwe Hermann <uwe@hermann-uwe.de>
6 ## This program is free software; you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation; either version 2 of the License, or
9 ## (at your option) any later version.
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ## GNU General Public License for more details.
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program; if not, write to the Free Software
18 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 # Normal commands (CMD)
22 # Unlisted items are 'Reserved' as per SD spec. The 'Unknown' items don't
23 # seem to be mentioned in the spec, but aren't marked as reserved either.
26 1: 'SEND_OP_COND', # Reserved in SD mode
28 3: 'SEND_RELATIVE_ADDR',
30 5: 'IO_SEND_OP_COND', # SDIO-only
31 6: 'SWITCH_FUNC', # New since spec 1.10
32 7: 'SELECT/DESELECT_CARD',
37 12: 'STOP_TRANSMISSION',
40 15: 'GO_INACTIVE_STATE',
42 17: 'READ_SINGLE_BLOCK',
43 18: 'READ_MULTIPLE_BLOCK',
44 19: 'SEND_TUNING_BLOCK',
45 20: 'SPEED_CLASS_CONTROL',
47 23: 'SET_BLOCK_COUNT',
49 25: 'WRITE_MULTIPLE_BLOCK',
50 26: 'Reserved for manufacturer',
54 30: 'SEND_WRITE_PROT',
56 32: 'ERASE_WR_BLK_START', # SPI mode: ERASE_WR_BLK_START_ADDR
57 33: 'ERASE_WR_BLK_END', # SPI mode: ERASE_WR_BLK_END_ADDR
58 34: 'Reserved for CMD6', # New since spec 1.10
59 35: 'Reserved for CMD6', # New since spec 1.10
60 36: 'Reserved for CMD6', # New since spec 1.10
61 37: 'Reserved for CMD6', # New since spec 1.10
64 40: 'Reserved for security specification',
68 50: 'Reserved for CMD6', # New since spec 1.10
70 52: 'IO_RW_DIRECT', # SDIO-only
71 53: 'IO_RW_EXTENDED', # SDIO-only
75 57: 'Reserved for CMD6', # New since spec 1.10
76 58: 'READ_OCR', # Reserved in SD mode
77 59: 'CRC_ON_OFF', # Reserved in SD mode
78 60: 'Reserved for manufacturer',
79 61: 'Reserved for manufacturer',
80 62: 'Reserved for manufacturer',
81 63: 'Reserved for manufacturer',
84 # Application-specific commands (ACMD)
85 # Unlisted items are 'Reserved' as per SD spec. The 'Unknown' items don't
86 # seem to be mentioned in the spec, but aren't marked as reserved either.
92 14: 'Reserved for Security Application',
93 15: 'Reserved for Security Application',
94 16: 'Reserved for Security Application',
96 18: 'Reserved for SD security applications',
98 22: 'SEND_NUM_WR_BLOCKS',
99 23: 'SET_WR_BLK_ERASE_COUNT',
101 25: 'Reserved for SD security applications',
102 26: 'Reserved for SD security applications',
103 27: 'Reserved for security specification',
104 28: 'Reserved for security specification',
106 30: 'Reserved for security specification',
107 31: 'Reserved for security specification',
108 32: 'Reserved for security specification',
109 33: 'Reserved for security specification',
110 34: 'Reserved for security specification',
111 35: 'Reserved for security specification',
113 38: 'Reserved for SD security applications',
115 41: 'SD_SEND_OP_COND',
116 42: 'SET_CLR_CARD_DETECT',
117 43: 'Reserved for SD security applications',
118 44: 'Reserved for SD security applications',
119 45: 'Reserved for SD security applications',
120 46: 'Reserved for SD security applications',
121 47: 'Reserved for SD security applications',
122 48: 'Reserved for SD security applications',
123 49: 'Reserved for SD security applications',
126 52: 'Reserved for security specification',
127 53: 'Reserved for security specification',
128 54: 'Reserved for security specification',
129 55: 'Non-existant', # Doesn't exist (equivalent to CMD55)
130 56: 'Reserved for security specification',
131 57: 'Reserved for security specification',
132 58: 'Reserved for security specification',
133 59: 'Reserved for security specification',
140 accepted_voltages = {
142 0b0010: 'reserved for low voltage range',
145 # All other values: "not defined".
149 0: 'Reserved for manufacturer test mode',
150 1: 'Reserved for manufacturer test mode',
151 2: 'Reserved for application specific commands',
153 4: 'Reserved for SDIO card',
158 9: 'CURRENT_STATE', # CURRENT_STATE is a 4-bit value (decimal: 0..15).
163 14: 'CARD_ECC_DISABLED',
166 17: 'Reserved for DEFERRED_RESPONSE', # See eSD addendum
170 21: 'CARD_ECC_FAILED',
171 22: 'ILLEGAL_COMMAND',
173 24: 'LOCK_UNLOCK_FAILED',
174 25: 'CARD_IS_LOCKED',
177 28: 'ERASE_SEQ_ERROR',
178 29: 'BLOCK_LEN_ERROR',
184 # 311:0: Reserved for manufacturer