]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/asm-arm/arch-mx28/mxs_gpmi-bch-regs.h
applied patches from Freescale and Ka-Ro
[karo-tx-uboot.git] / include / asm-arm / arch-mx28 / mxs_gpmi-bch-regs.h
1 /*
2  * Freescale GPMI NFC NAND Flash Driver
3  *
4  * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
5  *
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.
10  *
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.
15  *
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19  *
20  * Xml Revision: 2.5
21  * Template revision: 26195
22  */
23
24 #ifndef __GPMI_NFC_BCH_REGS_H
25 #define __GPMI_NFC_BCH_REGS_H
26
27 #define HW_BCH_CTRL                             0x000
28 #define HW_BCH_CTRL_SET                         0x004
29 #define HW_BCH_CTRL_CLR                         0x008
30 #define HW_BCH_CTRL_TOG                         0x00c
31
32 #define BM_BCH_CTRL_SFTRST                      (1 << 31)
33 #define BM_BCH_CTRL_CLKGATE                     (1 << 30)
34 #define BM_BCH_CTRL_DEBUGSYNDROME               (1 << 22)
35 #define BP_BCH_CTRL_M2M_LAYOUT                  18
36 #define BM_BCH_CTRL_M2M_LAYOUT                  (1 << BP_BCH_CTRL_M2M_LAYOUT)
37 #define BF_BCH_CTRL_M2M_LAYOUT(v)               (((v) << BP_BCH_CTRL_M2M_LAYOUT) & BM_BCH_CTRL_M2M_LAYOUT)
38 #define BM_BCH_CTRL_M2M_ENCODE                  (1 << 17)
39 #define BM_BCH_CTRL_M2M_ENABLE                  (1 << 16)
40 #define BM_BCH_CTRL_DEBUG_STALL_IRQ_EN          (1 << 10)
41 #define BM_BCH_CTRL_COMPLETE_IRQ_EN             (1 << 8)
42 #define BM_BCH_CTRL_BM_ERROR_IRQ                (1 << 3)
43 #define BM_BCH_CTRL_DEBUG_STALL_IRQ             (1 << 2)
44 #define BM_BCH_CTRL_COMPLETE_IRQ                (1 << 0)
45
46 #define HW_BCH_STATUS0                          0x010
47
48 #define BP_BCH_STATUS0_HANDLE                   20
49 #define BM_BCH_STATUS0_HANDLE                   (0xFFF << BP_BCH_STATUS0_HANDLE)
50 #define BF_BCH_STATUS0_HANDLE(v)                (((v) << BP_BCH_STATUS0_HANDLE) & BM_BCH_STATUS0_HANDLE)
51 #define BP_BCH_STATUS0_COMPLETED_CE             16
52 #define BM_BCH_STATUS0_COMPLETED_CE             (0x000F << BP_BCH_STATUS0_COMPLETED_CE)
53 #define BF_BCH_STATUS0_COMPLETED_CE(v)          (((v) << BP_BCH_STATUS0_COMPLETED_CE) & BM_BCH_STATUS0_COMPLETED_CE)
54 #define BP_BCH_STATUS0_STATUS_BLK0              8
55 #define BM_BCH_STATUS0_STATUS_BLK0              (0xFF << BP_BCH_STATUS0_STATUS_BLK0)
56 #define BF_BCH_STATUS0_STATUS_BLK0(v)           (((v) << BP_BCH_STATUS0_STATUS_BLK0) & BM_BCH_STATUS0_STATUS_BLK0)
57 #define BV_BCH_STATUS0_STATUS_BLK0__ZERO        0x00
58 #define BV_BCH_STATUS0_STATUS_BLK0__ERROR1      0x01
59 #define BV_BCH_STATUS0_STATUS_BLK0__ERROR2      0x02
60 #define BV_BCH_STATUS0_STATUS_BLK0__ERROR3      0x03
61 #define BV_BCH_STATUS0_STATUS_BLK0__ERROR4      0x04
62 #define BV_BCH_STATUS0_STATUS_BLK0__UNCORRECTABLE 0xFE
63 #define BV_BCH_STATUS0_STATUS_BLK0__ERASED      0xFF
64 #define BM_BCH_STATUS0_ALLONES                  (1 << 4)
65 #define BM_BCH_STATUS0_CORRECTED                (1 << 3)
66 #define BM_BCH_STATUS0_UNCORRECTABLE            (1 << 2)
67
68 #define HW_BCH_MODE                             0x020
69
70 #define BP_BCH_MODE_ERASE_THRESHOLD             0
71 #define BM_BCH_MODE_ERASE_THRESHOLD             (0xFF << BP_BCH_MODE_ERASE_THRESHOLD)
72 #define BF_BCH_MODE_ERASE_THRESHOLD(v)          (((v) << 0) & BM_BCH_MODE_ERASE_THRESHOLD)
73
74 #define HW_BCH_ENCODEPTR                        0x030
75
76 #define BP_BCH_ENCODEPTR_ADDR                   0
77 #define BM_BCH_ENCODEPTR_ADDR                   0xFFFFFFFF
78 #define BF_BCH_ENCODEPTR_ADDR(v)                (v)
79
80 #define HW_BCH_DATAPTR                          0x040
81
82 #define BP_BCH_DATAPTR_ADDR                     0
83 #define BM_BCH_DATAPTR_ADDR                     0xFFFFFFFF
84 #define BF_BCH_DATAPTR_ADDR(v)                  (v)
85
86 #define HW_BCH_METAPTR                          0x050
87
88 #define BP_BCH_METAPTR_ADDR                     0
89 #define BM_BCH_METAPTR_ADDR                     0xFFFFFFFF
90 #define BF_BCH_METAPTR_ADDR(v)                  (v)
91
92 #define HW_BCH_LAYOUTSELECT                     0x070
93
94 #define BP_BCH_LAYOUTSELECT_CS15_SELECT         30
95 #define BM_BCH_LAYOUTSELECT_CS15_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS15_SELECT)
96 #define BF_BCH_LAYOUTSELECT_CS15_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS15_SELECT) & \
97                                                         BM_BCH_LAYOUTSELECT_CS15_SELECT)
98 #define BP_BCH_LAYOUTSELECT_CS14_SELECT         28
99 #define BM_BCH_LAYOUTSELECT_CS14_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS14_SELECT)
100 #define BF_BCH_LAYOUTSELECT_CS14_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS14_SELECT) & \
101                                                         BM_BCH_LAYOUTSELECT_CS14_SELECT)
102 #define BP_BCH_LAYOUTSELECT_CS13_SELECT         26
103 #define BM_BCH_LAYOUTSELECT_CS13_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS13_SELECT)
104 #define BF_BCH_LAYOUTSELECT_CS13_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS13_SELECT) & \
105                                                         BM_BCH_LAYOUTSELECT_CS13_SELECT)
106 #define BP_BCH_LAYOUTSELECT_CS12_SELECT         24
107 #define BM_BCH_LAYOUTSELECT_CS12_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS12_SELECT)
108 #define BF_BCH_LAYOUTSELECT_CS12_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS12_SELECT) & \
109                                                         BM_BCH_LAYOUTSELECT_CS12_SELECT)
110 #define BP_BCH_LAYOUTSELECT_CS11_SELECT         22
111 #define BM_BCH_LAYOUTSELECT_CS11_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS11_SELECT)
112 #define BF_BCH_LAYOUTSELECT_CS11_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS11_SELECT) & \
113                                                         BM_BCH_LAYOUTSELECT_CS11_SELECT)
114 #define BP_BCH_LAYOUTSELECT_CS10_SELECT         20
115 #define BM_BCH_LAYOUTSELECT_CS10_SELECT         (0x3 << BP_BCH_LAYOUTSELECT_CS10_SELECT)
116 #define BF_BCH_LAYOUTSELECT_CS10_SELECT(v)      (((v) << BP_BCH_LAYOUTSELECT_CS10_SELECT) & \
117                                                         BM_BCH_LAYOUTSELECT_CS10_SELECT)
118 #define BP_BCH_LAYOUTSELECT_CS9_SELECT          18
119 #define BM_BCH_LAYOUTSELECT_CS9_SELECT          0x000C0000
120 #define BF_BCH_LAYOUTSELECT_CS9_SELECT(v)       (((v) << 18) & \
121                                         BM_BCH_LAYOUTSELECT_CS9_SELECT)
122 #define BP_BCH_LAYOUTSELECT_CS8_SELECT          16
123 #define BM_BCH_LAYOUTSELECT_CS8_SELECT          0x00030000
124 #define BF_BCH_LAYOUTSELECT_CS8_SELECT(v)       (((v) << 16) & \
125                                         BM_BCH_LAYOUTSELECT_CS8_SELECT)
126 #define BP_BCH_LAYOUTSELECT_CS7_SELECT          14
127 #define BM_BCH_LAYOUTSELECT_CS7_SELECT          0x0000C000
128 #define BF_BCH_LAYOUTSELECT_CS7_SELECT(v)       (((v) << 14) & \
129                                         BM_BCH_LAYOUTSELECT_CS7_SELECT)
130 #define BP_BCH_LAYOUTSELECT_CS6_SELECT          12
131 #define BM_BCH_LAYOUTSELECT_CS6_SELECT          0x00003000
132 #define BF_BCH_LAYOUTSELECT_CS6_SELECT(v)       (((v) << 12) & \
133                                         BM_BCH_LAYOUTSELECT_CS6_SELECT)
134 #define BP_BCH_LAYOUTSELECT_CS5_SELECT          10
135 #define BM_BCH_LAYOUTSELECT_CS5_SELECT          0x00000C00
136 #define BF_BCH_LAYOUTSELECT_CS5_SELECT(v)       (((v) << 10) & \
137                                         BM_BCH_LAYOUTSELECT_CS5_SELECT)
138 #define BP_BCH_LAYOUTSELECT_CS4_SELECT          8
139 #define BM_BCH_LAYOUTSELECT_CS4_SELECT          0x00000300
140 #define BF_BCH_LAYOUTSELECT_CS4_SELECT(v)       (((v) << 8) & \
141                                         BM_BCH_LAYOUTSELECT_CS4_SELECT)
142 #define BP_BCH_LAYOUTSELECT_CS3_SELECT          6
143 #define BM_BCH_LAYOUTSELECT_CS3_SELECT          0x000000C0
144 #define BF_BCH_LAYOUTSELECT_CS3_SELECT(v)       (((v) << 6) & \
145                                         BM_BCH_LAYOUTSELECT_CS3_SELECT)
146 #define BP_BCH_LAYOUTSELECT_CS2_SELECT          4
147 #define BM_BCH_LAYOUTSELECT_CS2_SELECT          0x00000030
148 #define BF_BCH_LAYOUTSELECT_CS2_SELECT(v)       (((v) << 4) & \
149                                         BM_BCH_LAYOUTSELECT_CS2_SELECT)
150 #define BP_BCH_LAYOUTSELECT_CS1_SELECT          2
151 #define BM_BCH_LAYOUTSELECT_CS1_SELECT          0x0000000C
152 #define BF_BCH_LAYOUTSELECT_CS1_SELECT(v)       (((v) << 2) & \
153                                         BM_BCH_LAYOUTSELECT_CS1_SELECT)
154 #define BP_BCH_LAYOUTSELECT_CS0_SELECT          0
155 #define BM_BCH_LAYOUTSELECT_CS0_SELECT          0x00000003
156 #define BF_BCH_LAYOUTSELECT_CS0_SELECT(v)       (((v) << 0) & \
157                                         BM_BCH_LAYOUTSELECT_CS0_SELECT)
158
159 #define HW_BCH_FLASH0LAYOUT0                    0x080
160
161 #define BP_BCH_FLASH0LAYOUT0_NBLOCKS            24
162 #define BM_BCH_FLASH0LAYOUT0_NBLOCKS            (0xFF << BP_BCH_FLASH0LAYOUT0_NBLOCKS)
163 #define BF_BCH_FLASH0LAYOUT0_NBLOCKS(v)         (((v) << BP_BCH_FLASH0LAYOUT0_NBLOCKS) & \
164                                                         BM_BCH_FLASH0LAYOUT0_NBLOCKS)
165 #define BP_BCH_FLASH0LAYOUT0_META_SIZE          16
166 #define BM_BCH_FLASH0LAYOUT0_META_SIZE          (0xFF << BP_BCH_FLASH0LAYOUT0_META_SIZE)
167 #define BF_BCH_FLASH0LAYOUT0_META_SIZE(v)       (((v) << BP_BCH_FLASH0LAYOUT0_META_SIZE) & \
168                                                         BM_BCH_FLASH0LAYOUT0_META_SIZE)
169 #define BP_BCH_FLASH0LAYOUT0_ECC0               12
170 #define BM_BCH_FLASH0LAYOUT0_ECC0               (0xF << BP_BCH_FLASH0LAYOUT0_ECC0)
171 #define BF_BCH_FLASH0LAYOUT0_ECC0(v)            (((v) << BP_BCH_FLASH0LAYOUT0_ECC0) & \
172                                                         BM_BCH_FLASH0LAYOUT0_ECC0)
173 #define BV_BCH_FLASH0LAYOUT0_ECC0__NONE         0x0
174 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC2         0x1
175 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC4         0x2
176 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC6         0x3
177 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC8         0x4
178 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC10        0x5
179 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC12        0x6
180 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC14        0x7
181 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC16        0x8
182 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC18        0x9
183 #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC20        0xA
184 #define BP_BCH_FLASH0LAYOUT0_DATA0_SIZE         0
185 #define BM_BCH_FLASH0LAYOUT0_DATA0_SIZE         (0xFFF << BP_BCH_FLASH0LAYOUT0_DATA0_SIZE)
186 #define BF_BCH_FLASH0LAYOUT0_DATA0_SIZE(v)      (((v) << BP_BCH_FLASH0LAYOUT0_DATA0_SIZE) & \
187                                                         BM_BCH_FLASH0LAYOUT0_DATA0_SIZE)
188
189 #define HW_BCH_FLASH0LAYOUT1                    0x090
190
191 #define BP_BCH_FLASH0LAYOUT1_PAGE_SIZE          16
192 #define BM_BCH_FLASH0LAYOUT1_PAGE_SIZE          (0xFFFF << BP_BCH_FLASH0LAYOUT1_PAGE_SIZE)
193 #define BF_BCH_FLASH0LAYOUT1_PAGE_SIZE(v)       (((v) << BP_BCH_FLASH0LAYOUT1_PAGE_SIZE) & \
194                                                         BM_BCH_FLASH0LAYOUT1_PAGE_SIZE)
195 #define BP_BCH_FLASH0LAYOUT1_ECCN               12
196 #define BM_BCH_FLASH0LAYOUT1_ECCN               (0xF << BP_BCH_FLASH0LAYOUT1_ECCN)
197 #define BF_BCH_FLASH0LAYOUT1_ECCN(v)            (((v) << BP_BCH_FLASH0LAYOUT1_ECCN) & \
198                                                         BM_BCH_FLASH0LAYOUT1_ECCN)
199 #define BV_BCH_FLASH0LAYOUT1_ECCN__NONE         0x0
200 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC2         0x1
201 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC4         0x2
202 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC6         0x3
203 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC8         0x4
204 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC10        0x5
205 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC12        0x6
206 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC14        0x7
207 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC16        0x8
208 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC18        0x9
209 #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC20        0xA
210 #define BP_BCH_FLASH0LAYOUT1_DATAN_SIZE         0
211 #define BM_BCH_FLASH0LAYOUT1_DATAN_SIZE         (0xFFF << BP_BCH_FLASH0LAYOUT1_DATAN_SIZE)
212 #define BF_BCH_FLASH0LAYOUT1_DATAN_SIZE(v)      (((v) << BP_BCH_FLASH0LAYOUT1_DATAN_SIZE) & \
213                                                         BM_BCH_FLASH0LAYOUT1_DATAN_SIZE)
214
215 #define HW_BCH_FLASH1LAYOUT0                    0x0a0
216
217 #define HW_BCH_FLASH1LAYOUT1                    0x0b0
218
219 #define HW_BCH_FLASH2LAYOUT0                    0x0c0
220
221 #define HW_BCH_FLASH2LAYOUT1                    0x0d0
222
223 #define HW_BCH_FLASH3LAYOUT0                    0x0e0
224
225 #define HW_BCH_FLASH3LAYOUT1                    0x0f0
226
227 #if 0
228 #define HW_BCH_DEBUG0                           0x100
229 #define HW_BCH_DEBUG0_SET                       0x104
230 #define HW_BCH_DEBUG0_CLR                       0x108
231 #define HW_BCH_DEBUG0_TOG                       0x10c
232
233 #define BM_BCH_DEBUG0_ROM_BIST_ENABLE           (1 << 26)
234 #define BM_BCH_DEBUG0_ROM_BIST_COMPLETE         (1 << 25)
235 #define BP_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL 16
236 #define BM_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL (0x1FF << BP_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL)
237 #define BF_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL(v) (((v) << BP_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL) & \
238                                                         BM_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL)
239 #define BV_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL__NORMAL 0x0
240 #define BV_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL__TEST_MODE 0x1
241 #define BM_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND      (1 << 15)
242 #define BM_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG    (1 << 14)
243 #define BV_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG__DATA 0x1
244 #define BV_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG__AUX 0x1
245 #define BM_BCH_DEBUG0_KES_DEBUG_MODE4K          (1 << 13)
246 #define BV_BCH_DEBUG0_KES_DEBUG_MODE4K__4k      0x1
247 #define BV_BCH_DEBUG0_KES_DEBUG_MODE4K__2k      0x1
248 #define BM_BCH_DEBUG0_KES_DEBUG_KICK            0x00001000
249 #define BM_BCH_DEBUG0_KES_STANDALONE            0x00000800
250 #define BV_BCH_DEBUG0_KES_STANDALONE__NORMAL    0x0
251 #define BV_BCH_DEBUG0_KES_STANDALONE__TEST_MODE 0x1
252 #define BM_BCH_DEBUG0_KES_DEBUG_STEP            0x00000400
253 #define BM_BCH_DEBUG0_KES_DEBUG_STALL           0x00000200
254 #define BV_BCH_DEBUG0_KES_DEBUG_STALL__NORMAL   0x0
255 #define BV_BCH_DEBUG0_KES_DEBUG_STALL__WAIT     0x1
256 #define BM_BCH_DEBUG0_BM_KES_TEST_BYPASS        0x00000100
257 #define BV_BCH_DEBUG0_BM_KES_TEST_BYPASS__NORMAL    0x0
258 #define BV_BCH_DEBUG0_BM_KES_TEST_BYPASS__TEST_MODE 0x1
259 #define BP_BCH_DEBUG0_DEBUG_REG_SELECT          0
260 #define BM_BCH_DEBUG0_DEBUG_REG_SELECT          0x0000003F
261 #define BF_BCH_DEBUG0_DEBUG_REG_SELECT(v)       (((v) << BP_BCH_DEBUG0_DEBUG_REG_SELECT) & \
262                                                         BM_BCH_DEBUG0_DEBUG_REG_SELECT)
263
264 #define HW_BCH_DBGKESREAD                       0x110
265
266 #define BP_BCH_DBGKESREAD_VALUES                0
267 #define BM_BCH_DBGKESREAD_VALUES                0xFFFFFFFF
268 #define BF_BCH_DBGKESREAD_VALUES(v)             (v)
269
270 #define HW_BCH_DBGCSFEREAD                      0x120
271
272 #define BP_BCH_DBGCSFEREAD_VALUES               0
273 #define BM_BCH_DBGCSFEREAD_VALUES               0xFFFFFFFF
274 #define BF_BCH_DBGCSFEREAD_VALUES(v)            (v)
275
276 #define HW_BCH_DBGSYNDGENREAD                   0x130
277
278 #define BP_BCH_DBGSYNDGENREAD_VALUES            0
279 #define BM_BCH_DBGSYNDGENREAD_VALUES            0xFFFFFFFF
280 #define BF_BCH_DBGSYNDGENREAD_VALUES(v)         (v)
281
282 #define HW_BCH_DBGAHBMREAD                      0x140
283
284 #define BP_BCH_DBGAHBMREAD_VALUES               0
285 #define BM_BCH_DBGAHBMREAD_VALUES               0xFFFFFFFF
286 #define BF_BCH_DBGAHBMREAD_VALUES(v)            (v)
287
288 #define HW_BCH_BLOCKNAME                        0x150
289
290 #define BP_BCH_BLOCKNAME_NAME                   0
291 #define BM_BCH_BLOCKNAME_NAME                   0xFFFFFFFF
292 #define BF_BCH_BLOCKNAME_NAME(v)                (v)
293 #endif
294
295 #define HW_BCH_VERSION                          0x160
296
297 #define BP_BCH_VERSION_MAJOR                    24
298 #define BM_BCH_VERSION_MAJOR                    (0xFF << BP_BCH_VERSION_MAJOR)
299 #define BF_BCH_VERSION_MAJOR(v)                 (((v) << BP_BCH_VERSION_MAJOR) & \
300                                                         BM_BCH_VERSION_MAJOR)
301 #define BP_BCH_VERSION_MINOR                    16
302 #define BM_BCH_VERSION_MINOR                    (0xFF << BP_BCH_VERSION_MINOR)
303 #define BF_BCH_VERSION_MINOR(v)                 (((v) << BP_BCH_VERSION_MINOR) & \
304                                                         BM_BCH_VERSION_MINOR)
305 #define BP_BCH_VERSION_STEP                     0
306 #define BM_BCH_VERSION_STEP                     (0xFFFF << BP_BCH_VERSION_STEP)
307 #define BF_BCH_VERSION_STEP(v)                  (((v) << BP_BCH_VERSION_STEP) & \
308                                                         BM_BCH_VERSION_STEP)
309
310 #endif