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, see <http://www.gnu.org/licenses/>.
20 # Normal commands (CMD)
21 # Unlisted items are 'Reserved' as per SD spec. The 'Unknown' items don't
22 # seem to be mentioned in the spec, but aren't marked as reserved either.
25 1: 'SEND_OP_COND', # Reserved in SD mode
27 3: 'SEND_RELATIVE_ADDR',
29 5: 'IO_SEND_OP_COND', # SDIO-only
30 6: 'SWITCH_FUNC', # New since spec 1.10
31 7: 'SELECT/DESELECT_CARD',
36 12: 'STOP_TRANSMISSION',
39 15: 'GO_INACTIVE_STATE',
41 17: 'READ_SINGLE_BLOCK',
42 18: 'READ_MULTIPLE_BLOCK',
43 19: 'SEND_TUNING_BLOCK',
44 20: 'SPEED_CLASS_CONTROL',
46 23: 'SET_BLOCK_COUNT',
48 25: 'WRITE_MULTIPLE_BLOCK',
49 26: 'Reserved for manufacturer',
53 30: 'SEND_WRITE_PROT',
55 32: 'ERASE_WR_BLK_START', # SPI mode: ERASE_WR_BLK_START_ADDR
56 33: 'ERASE_WR_BLK_END', # SPI mode: ERASE_WR_BLK_END_ADDR
57 34: 'Reserved for CMD6', # New since spec 1.10
58 35: 'Reserved for CMD6', # New since spec 1.10
59 36: 'Reserved for CMD6', # New since spec 1.10
60 37: 'Reserved for CMD6', # New since spec 1.10
63 40: 'Reserved for security specification',
67 50: 'Reserved for CMD6', # New since spec 1.10
69 52: 'IO_RW_DIRECT', # SDIO-only
70 53: 'IO_RW_EXTENDED', # SDIO-only
74 57: 'Reserved for CMD6', # New since spec 1.10
75 58: 'READ_OCR', # Reserved in SD mode
76 59: 'CRC_ON_OFF', # Reserved in SD mode
77 60: 'Reserved for manufacturer',
78 61: 'Reserved for manufacturer',
79 62: 'Reserved for manufacturer',
80 63: 'Reserved for manufacturer',
83 # Application-specific commands (ACMD)
84 # Unlisted items are 'Reserved' as per SD spec. The 'Unknown' items don't
85 # seem to be mentioned in the spec, but aren't marked as reserved either.
91 14: 'Reserved for Security Application',
92 15: 'Reserved for Security Application',
93 16: 'Reserved for Security Application',
95 18: 'Reserved for SD security applications',
97 22: 'SEND_NUM_WR_BLOCKS',
98 23: 'SET_WR_BLK_ERASE_COUNT',
100 25: 'Reserved for SD security applications',
101 26: 'Reserved for SD security applications',
102 27: 'Reserved for security specification',
103 28: 'Reserved for security specification',
105 30: 'Reserved for security specification',
106 31: 'Reserved for security specification',
107 32: 'Reserved for security specification',
108 33: 'Reserved for security specification',
109 34: 'Reserved for security specification',
110 35: 'Reserved for security specification',
112 38: 'Reserved for SD security applications',
114 41: 'SD_SEND_OP_COND',
115 42: 'SET_CLR_CARD_DETECT',
116 43: 'Reserved for SD security applications',
117 44: 'Reserved for SD security applications',
118 45: 'Reserved for SD security applications',
119 46: 'Reserved for SD security applications',
120 47: 'Reserved for SD security applications',
121 48: 'Reserved for SD security applications',
122 49: 'Reserved for SD security applications',
125 52: 'Reserved for security specification',
126 53: 'Reserved for security specification',
127 54: 'Reserved for security specification',
128 55: 'Non-existant', # Doesn't exist (equivalent to CMD55)
129 56: 'Reserved for security specification',
130 57: 'Reserved for security specification',
131 58: 'Reserved for security specification',
132 59: 'Reserved for security specification',
139 accepted_voltages = {
141 0b0010: 'reserved for low voltage range',
144 # All other values: "not defined".
148 0: 'Reserved for manufacturer test mode',
149 1: 'Reserved for manufacturer test mode',
150 2: 'Reserved for application specific commands',
152 4: 'Reserved for SDIO card',
157 9: 'CURRENT_STATE', # CURRENT_STATE is a 4-bit value (decimal: 0..15).
162 14: 'CARD_ECC_DISABLED',
165 17: 'Reserved for DEFERRED_RESPONSE', # See eSD addendum
169 21: 'CARD_ECC_FAILED',
170 22: 'ILLEGAL_COMMAND',
172 24: 'LOCK_UNLOCK_FAILED',
173 25: 'CARD_IS_LOCKED',
176 28: 'ERASE_SEQ_ERROR',
177 29: 'BLOCK_LEN_ERROR',
183 # 311:0: Reserved for manufacturer