2 * This file contains the configuration parameters for the AP121 (AR9331) board.
8 #include <configs/ar7240.h>
12 * FLASH and environment organization
14 #define CFG_MAX_FLASH_BANKS 1
15 #define CFG_MAX_FLASH_SECT 4096 // 4 KB sectors in 16 MB flash
18 * We boot from this flash
20 #define CFG_FLASH_BASE 0x9F000000
21 #ifdef COMPRESSED_UBOOT
22 #define BOOTSTRAP_TEXT_BASE CFG_FLASH_BASE
23 #define BOOTSTRAP_CFG_MONITOR_BASE BOOTSTRAP_TEXT_BASE
27 * The following #defines are needed to get flash environment right
29 #define CFG_MONITOR_BASE TEXT_BASE
30 #define CFG_MONITOR_LEN (192 << 10)
35 #undef CONFIG_BOOTARGS
37 #if defined(CONFIG_FOR_TPLINK_WR703N_V1) || \
38 defined(CONFIG_FOR_TPLINK_WR720N_V3) || \
39 defined(CONFIG_FOR_TPLINK_MR3020_V1) || \
40 defined(CONFIG_FOR_TPLINK_MR3040_V1V2) || \
41 defined(CONFIG_FOR_TPLINK_MR10U_V1) || \
42 defined(CONFIG_FOR_TPLINK_WR740N_V4) || \
43 defined(CONFIG_FOR_TPLINK_MR3220_V2) || \
44 defined(CONFIG_FOR_TPLINK_MR13U_V1)
46 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:128k(u-boot),1024k(kernel),2816k(rootfs),64k(config),64k(ART)"
48 #elif defined(CONFIG_FOR_TPLINK_WR710N_V1)
50 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:128k(u-boot),1024k(kernel),6912k(rootfs),64k(config),64k(ART)"
52 #elif defined(CONFIG_FOR_DLINK_DIR505_A1)
54 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:06 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:64k(u-boot),64k(ART),64k(mac),64k(nvram),256k(language),1024k(uImage),6656k(rootfs)"
56 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
58 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),16000k(firmware),64k(ART)"
63 * Other env default values
65 #undef CONFIG_BOOTFILE
66 #define CONFIG_BOOTFILE "firmware.bin"
68 #undef CONFIG_LOADADDR
69 #define CONFIG_LOADADDR 0x80800000
71 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
72 #define CFG_LOAD_ADDR 0x9F080000
73 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
74 #define CFG_LOAD_ADDR 0x9F050000
76 #define CFG_LOAD_ADDR 0x9F020000
79 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
80 #define CONFIG_BOOTCOMMAND "bootm 0x9F080000"
81 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
82 #define CONFIG_BOOTCOMMAND "bootm 0x9F050000"
84 #define CONFIG_BOOTCOMMAND "bootm 0x9F020000"
87 #define CONFIG_IPADDR 192.168.1.1
88 #define CONFIG_SERVERIP 192.168.1.2
91 #define CFG_HZ bd->bi_cfg_hz
92 #undef CPU_PLL_CONFIG_VAL
93 #undef CPU_CLK_CONTROL_VAL
95 // CPU-RAM-AHB frequency setting
97 #define CFG_PLL_FREQ CFG_PLL_400_400_200
101 * CPU_PLL_DITHER_FRAC_VAL
103 * Value written into CPU PLL Dither FRAC Register (PLL_DITHER_FRAC)
105 * bits 0..9 NFRAC_MAX => 1000 (0x3E8)
106 * bits 10..13 NFRAC_MIN => 0 (minimum value is used)
107 * bits 20..29 NFRAC_STEP => 1
110 #define CPU_PLL_DITHER_FRAC_VAL 0x001003E8
113 * CPU_PLL_SETTLE_TIME_VAL
115 * Value written into CPU Phase Lock Loop Configuration Register 2 (CPU_PLL_CONFIG2)
117 * bits 0..11 SETTLE_TIME => 850 (0x352)
120 #if CONFIG_40MHZ_XTAL_SUPPORT
121 #define CPU_PLL_SETTLE_TIME_VAL 0x00000550
123 #define CPU_PLL_SETTLE_TIME_VAL 0x00000352
127 * CPU_CLK_CONTROL_VAL
129 * In CPU_CLK_CONTROL_VAL bit 2 is set (BYPASS = 1 -> bypass PLL)
130 * After PLL configuration we nedd to clear this bit
132 * Values written into CPU Clock Control Register CLOCK_CONTROL
134 * bits 2 (1bit) BYPASS (Bypass PLL. This defaults to 1 for test purposes. Software must enable the CPU PLL for normal operation and then set this bit to 0)
135 * bits 5..6 (2bit) CPU_POST_DIV => 0 (DEFAULT, Ratio = 1)
136 * bits 10..11 (2bit) DDR_POST_DIV => 0 (DEFAULT, Ratio = 1)
137 * bits 15..16 (2bit) AHB_POST_DIV => 1 (DEFAULT, Ratio = 2)
144 * In CPU_PLL_CONFIG_VAL bit 30 is set (CPU_PLLPWD = 1 -> power down control for CPU PLL)
145 * After PLL configuration we need to clear this bit
147 * Values written into CPU Phase Lock Loop Configuration (CPU_PLL_CONFIG)
149 * bits 10..15 (6bit) DIV_INT (The integer part of the DIV to CPU PLL) => 32 (0x20)
150 * bits 16..20 (5bit) REFDIV (Reference clock divider) => 1 (0x1) [doesn't start at values different than 1 (maybe need to change other dividers?)]
151 * bits 21 (1bit) RANGE (Determine the VCO frequency range of the CPU PLL) => 0 (0x0) [doesn't have impact on clock values]
152 * bits 23..25 (3bit) OUTDIV (Define the ratio between VCO output and PLL output => 1 (0x1) [value == 0 is illegal!]
153 * VCOOUT * (1/2^OUTDIV) = PLLOUT)
157 * = PLL CALCULATION =============
158 * PLL = ((25 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=25 MHz
160 * PLL = ((40 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=40 MHz
162 * CPU = PLL / CPU_POST_DIV
163 * DDR = PLL / DDR_POST_DIV
164 * AHB = PLL / AHB_POST_DIV
171 * Value written into SPI Control (SPI_CONTROL) register
173 * bits 0..5 (6bit) CLOCK_DIVIDER (Specifies the clock divider setting. Actual clock frequency would be (AHB_CLK / ((CLOCK_DIVIDER+1)*2)) )
174 * bits 6 (1bit) REMAP_DISABLE (Remaps 4 MB space over unless explicitly disabled by setting this bit to 1. If set to 1, 16 MB is accessible.)
179 * CPU_PLL_CONFIG and CPU_CLK_CONTROL registers values generator
181 #define MAKE_CPU_PLL_CONFIG_VAL(divint, refdiv, range, outdiv) (((0x3F & divint) << 10) | ((0x1F & refdiv) << 16) | ((0x1 & range) << 21) | ((0x7 & outdiv) << 23))
182 #define MAKE_CPU_CLK_CONTROL_VAL(cpudiv, ddrdiv, ahbdiv) (((0x3 & (cpudiv - 1)) << 5) | ((0x3 & (ddrdiv - 1)) << 10) | ((0x3 & (ahbdiv - 1)) << 15))
185 * Default values (400/400/200 MHz) for O/C recovery mode
188 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
189 #define CPU_CLK_CONTROL_VAL_DEFAULT MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
191 #if CONFIG_40MHZ_XTAL_SUPPORT
192 // DIV_INT = 20 (40 MHz * 20/2 = 400 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
193 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
195 // DIV_INT = 32 (25 MHz * 32/2 = 400 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
196 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 1)
199 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
200 #define AR7240_SPI_CONTROL_DEFAULT 0x42
202 #if (CFG_PLL_FREQ == CFG_PLL_200_200_100)
204 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
205 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
207 #if CONFIG_40MHZ_XTAL_SUPPORT
208 // DIV_INT = 20 (40 MHz * 20/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
209 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 2)
211 // DIV_INT = 32 (25 MHz * 32/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
212 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 2)
215 // CLOCK_DIVIDER = 1 (SPI clock = 100 / 4 ~ 25 MHz)
216 #define AR7240_SPI_CONTROL 0x41
218 #define CFG_HZ_FALLBACK (200000000LU/2)
220 #elif (CFG_PLL_FREQ == CFG_PLL_200_200_200)
222 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
223 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
225 #if CONFIG_40MHZ_XTAL_SUPPORT
226 // DIV_INT = 20 (40 MHz * 20/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
227 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 2)
229 // DIV_INT = 32 (25 MHz * 32/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
230 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 2)
233 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
234 #define AR7240_SPI_CONTROL 0x42
236 #define CFG_HZ_FALLBACK (200000000LU/2)
238 #elif (CFG_PLL_FREQ == CFG_PLL_225_225_112)
240 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
241 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
243 #if CONFIG_40MHZ_XTAL_SUPPORT
244 #define FREQUENCY_NOT_SUPPORTED
246 // DIV_INT = 36 (25 MHz * 36/4 = 225 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
247 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 2)
250 // CLOCK_DIVIDER = 1 (SPI clock = 112 / 4 ~ 28 MHz)
251 #define AR7240_SPI_CONTROL 0x41
253 #define CFG_HZ_FALLBACK (225000000LU/2)
255 #elif (CFG_PLL_FREQ == CFG_PLL_225_225_225)
257 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
258 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
260 #if CONFIG_40MHZ_XTAL_SUPPORT
261 #define FREQUENCY_NOT_SUPPORTED
263 // DIV_INT = 36 (25 MHz * 36/4 = 225 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
264 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 2)
267 // CLOCK_DIVIDER = 3 (SPI clock = 225 / 8 ~ 28 MHz)
268 #define AR7240_SPI_CONTROL 0x43
270 #define CFG_HZ_FALLBACK (225000000LU/2)
272 #elif (CFG_PLL_FREQ == CFG_PLL_250_250_125)
274 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
275 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
277 #if CONFIG_40MHZ_XTAL_SUPPORT
278 // DIV_INT = 25 (40 MHz * 25/4 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
279 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 2)
281 // DIV_INT = 20 (25 MHz * 20/2 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
282 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
285 // CLOCK_DIVIDER = 1 (SPI clock = 125 / 4 ~ 31 MHz)
286 #define AR7240_SPI_CONTROL 0x41
288 #define CFG_HZ_FALLBACK (250000000LU/2)
290 #elif (CFG_PLL_FREQ == CFG_PLL_250_250_250)
292 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
293 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
295 #if CONFIG_40MHZ_XTAL_SUPPORT
296 // DIV_INT = 25 (40 MHz * 25/4 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
297 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 2)
299 // DIV_INT = 20 (25 MHz * 20/2 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
300 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
303 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
304 #define AR7240_SPI_CONTROL 0x43
306 #define CFG_HZ_FALLBACK (250000000LU/2)
308 #elif (CFG_PLL_FREQ == CFG_PLL_300_300_150)
310 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
311 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
313 #if CONFIG_40MHZ_XTAL_SUPPORT
314 // DIV_INT = 15 (40 MHz * 15/2 = 300 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
315 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(15, 1, 0, 1)
317 // DIV_INT = 24 (25 MHz * 24/2 = 300 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
318 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(24, 1, 0, 1)
321 // CLOCK_DIVIDER = 2 (SPI clock = 150 / 6 ~ 25 MHz)
322 #define AR7240_SPI_CONTROL 0x42
324 #define CFG_HZ_FALLBACK (300000000LU/2)
326 #elif (CFG_PLL_FREQ == CFG_PLL_325_325_162)
328 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
329 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
331 #if CONFIG_40MHZ_XTAL_SUPPORT
332 #define FREQUENCY_NOT_SUPPORTED
334 // DIV_INT = 26 (25 MHz * 26/2 = 325 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
335 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(26, 1, 0, 1)
338 // CLOCK_DIVIDER = 2 (SPI clock = 162 / 6 ~ 27 MHz)
339 #define AR7240_SPI_CONTROL 0x42
341 #define CFG_HZ_FALLBACK (325000000LU/2)
343 #elif (CFG_PLL_FREQ == CFG_PLL_350_350_175)
345 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
346 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
348 #if CONFIG_40MHZ_XTAL_SUPPORT
349 #define FREQUENCY_NOT_SUPPORTED
351 // DIV_INT = 28 (25 MHz * 28/2 = 350 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
352 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(28, 1, 0, 1)
355 // CLOCK_DIVIDER = 2 (SPI clock = 175 / 6 ~ 29 MHz)
356 #define AR7240_SPI_CONTROL 0x42
358 #define CFG_HZ_FALLBACK (350000000LU/2)
360 #elif (CFG_PLL_FREQ == CFG_PLL_360_360_180)
362 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
363 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
365 #if CONFIG_40MHZ_XTAL_SUPPORT
366 // DIV_INT = 18 (40 MHz * 18/2 = 360 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
367 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(18, 1, 0, 1)
369 // DIV_INT = 29 (25 MHz * 28/2 = 362 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
370 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(29, 1, 0, 1)
373 // CLOCK_DIVIDER = 2 (SPI clock = 180 / 6 ~ 30 MHz)
374 #define AR7240_SPI_CONTROL 0x42
376 #define CFG_HZ_FALLBACK (360000000LU/2)
378 #elif (CFG_PLL_FREQ == CFG_PLL_380_380_190)
380 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
381 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
383 #if CONFIG_40MHZ_XTAL_SUPPORT
384 // DIV_INT = 19 (40 MHz * 19/2 = 380 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
385 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(19, 1, 0, 1)
387 #define FREQUENCY_NOT_SUPPORTED
390 // CLOCK_DIVIDER = 2 (SPI clock = 190 / 6 ~ 32 MHz)
391 #define AR7240_SPI_CONTROL 0x42
393 #define CFG_HZ_FALLBACK (380000000LU/2)
395 #elif (CFG_PLL_FREQ == CFG_PLL_400_400_200)
397 // default configuration
398 #define CPU_CLK_CONTROL_VAL CPU_CLK_CONTROL_VAL_DEFAULT
399 #define CPU_PLL_CONFIG_VAL CPU_PLL_CONFIG_VAL_DEFAULT
400 #define AR7240_SPI_CONTROL AR7240_SPI_CONTROL_DEFAULT
402 #define CFG_HZ_FALLBACK (400000000LU/2)
404 #elif (CFG_PLL_FREQ == CFG_PLL_412_412_206)
406 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
407 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
409 #if CONFIG_40MHZ_XTAL_SUPPORT
410 #define FREQUENCY_NOT_SUPPORTED
412 // DIV_INT = 33 (25 MHz * 33/2 = 412 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
413 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(33, 1, 0, 1)
416 // CLOCK_DIVIDER = 2 (SPI clock = 206 / 6 ~ 34 MHz)
417 #define AR7240_SPI_CONTROL 0x42
419 #define CFG_HZ_FALLBACK (412000000LU/2)
421 #elif (CFG_PLL_FREQ == CFG_PLL_420_420_210)
423 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
424 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
426 #if CONFIG_40MHZ_XTAL_SUPPORT
427 // DIV_INT = 21 (40 MHz * 21/2 = 420 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
428 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(21, 1, 0, 1)
430 #define FREQUENCY_NOT_SUPPORTED
433 // CLOCK_DIVIDER = 2 (SPI clock = 210 / 6 ~ 35 MHz)
434 #define AR7240_SPI_CONTROL 0x42
436 #define CFG_HZ_FALLBACK (420000000LU/2)
438 #elif (CFG_PLL_FREQ == CFG_PLL_425_425_212)
440 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
441 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
443 #if CONFIG_40MHZ_XTAL_SUPPORT
444 #define FREQUENCY_NOT_SUPPORTED
446 // DIV_INT = 34 (25 MHz * 34/2 = 425 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
447 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(34, 1, 0, 1)
450 // CLOCK_DIVIDER = 2 (SPI clock = 212 / 6 ~ 35 MHz)
451 #define AR7240_SPI_CONTROL 0x42
453 #define CFG_HZ_FALLBACK (425000000LU/2)
455 #elif (CFG_PLL_FREQ == CFG_PLL_437_437_218)
457 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
458 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
460 #if CONFIG_40MHZ_XTAL_SUPPORT
461 #define FREQUENCY_NOT_SUPPORTED
463 // DIV_INT = 35 (25 MHz * 35/2 = 437 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
464 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(35, 1, 0, 1)
467 // CLOCK_DIVIDER = 3 (SPI clock = 218 / 8 ~ 27 MHz)
468 #define AR7240_SPI_CONTROL 0x43
470 #define CFG_HZ_FALLBACK (437000000LU/2)
472 #elif (CFG_PLL_FREQ == CFG_PLL_440_440_220)
474 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
475 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
477 #if CONFIG_40MHZ_XTAL_SUPPORT
478 // DIV_INT = 22 (40 MHz * 22/2 = 440 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
479 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(22, 1, 0, 1)
481 #define FREQUENCY_NOT_SUPPORTED
484 // CLOCK_DIVIDER = 3 (SPI clock = 220 / 8 ~ 27 MHz)
485 #define AR7240_SPI_CONTROL 0x43
487 #define CFG_HZ_FALLBACK (440000000LU/2)
489 #elif (CFG_PLL_FREQ == CFG_PLL_450_450_225)
491 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
492 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
494 #if CONFIG_40MHZ_XTAL_SUPPORT
495 #define FREQUENCY_NOT_SUPPORTED
497 // DIV_INT = 36 (25 MHz * 36/2 = 450 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
498 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 1)
501 // CLOCK_DIVIDER = 3 (SPI clock = 225 / 8 ~ 28 MHz)
502 #define AR7240_SPI_CONTROL 0x43
504 #define CFG_HZ_FALLBACK (450000000LU/2)
506 #elif (CFG_PLL_FREQ == CFG_PLL_460_460_230)
508 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
509 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
511 #if CONFIG_40MHZ_XTAL_SUPPORT
512 // DIV_INT = 23 (40 MHz * 23/2 = 460 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
513 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(23, 1, 0, 1)
515 // DIV_INT = 37 (25 MHz * 36/2 = 462 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
516 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(37, 1, 0, 1)
519 // CLOCK_DIVIDER = 3 (SPI clock = 230 / 8 ~ 29 MHz)
520 #define AR7240_SPI_CONTROL 0x43
522 #define CFG_HZ_FALLBACK (460000000LU/2)
524 #elif (CFG_PLL_FREQ == CFG_PLL_475_475_237)
526 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
527 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
529 #if CONFIG_40MHZ_XTAL_SUPPORT
530 #define FREQUENCY_NOT_SUPPORTED
532 // DIV_INT = 38 (25 MHz * 38/2 = 475 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
533 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(38, 1, 0, 1)
536 // CLOCK_DIVIDER = 3 (SPI clock = 237 / 8 ~ 30 MHz)
537 #define AR7240_SPI_CONTROL 0x43
539 #define CFG_HZ_FALLBACK (475000000LU/2)
541 #elif (CFG_PLL_FREQ == CFG_PLL_480_480_240)
543 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
544 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
546 #if CONFIG_40MHZ_XTAL_SUPPORT
547 // DIV_INT = 24 (40 MHz * 24/2 = 480 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
548 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(24, 1, 0, 1)
550 #define FREQUENCY_NOT_SUPPORTED
553 // CLOCK_DIVIDER = 3 (SPI clock = 240 / 8 ~ 30 MHz)
554 #define AR7240_SPI_CONTROL 0x43
556 #define CFG_HZ_FALLBACK (480000000LU/2)
558 #elif (CFG_PLL_FREQ == CFG_PLL_487_487_243)
560 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
561 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
563 #if CONFIG_40MHZ_XTAL_SUPPORT
564 #define FREQUENCY_NOT_SUPPORTED
566 // DIV_INT = 39 (25 MHz * 39/2 = 487 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
567 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(39, 1, 0, 1)
570 // CLOCK_DIVIDER = 3 (SPI clock = 243 / 8 ~ 30 MHz)
571 #define AR7240_SPI_CONTROL 0x43
573 #define CFG_HZ_FALLBACK (487000000LU/2)
575 #elif (CFG_PLL_FREQ == CFG_PLL_500_500_250)
577 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
578 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
580 #if CONFIG_40MHZ_XTAL_SUPPORT
581 // DIV_INT = 25 (40 MHz * 25/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
582 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 1)
584 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
585 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(40, 1, 0, 1)
588 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
589 #define AR7240_SPI_CONTROL 0x43
591 #define CFG_HZ_FALLBACK (500000000LU/2)
593 #elif (CFG_PLL_FREQ == CFG_PLL_500_250_250)
595 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 2
596 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 2)
598 #if CONFIG_40MHZ_XTAL_SUPPORT
599 // DIV_INT = 25 (40 MHz * 25/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
600 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 1)
602 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
603 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(40, 1, 0, 1)
606 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
607 #define AR7240_SPI_CONTROL 0x43
609 #define CFG_HZ_FALLBACK (500000000LU/2)
611 #elif (CFG_PLL_FREQ == CFG_PLL_520_520_260)
613 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
614 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
616 #if CONFIG_40MHZ_XTAL_SUPPORT
617 // DIV_INT = 26 (40 MHz * 26/2 = 520 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
618 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(26, 1, 0, 1)
620 #define FREQUENCY_NOT_SUPPORTED
623 // CLOCK_DIVIDER = 3 (SPI clock = 260 / 8 ~ 32 MHz)
624 #define AR7240_SPI_CONTROL 0x43
626 #define CFG_HZ_FALLBACK (520000000LU/2)
628 #elif (CFG_PLL_FREQ == CFG_PLL_525_262_131)
630 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
631 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
633 #if CONFIG_40MHZ_XTAL_SUPPORT
634 #define FREQUENCY_NOT_SUPPORTED
636 // DIV_INT = 42 (25 MHz * 42/2 = 525 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
637 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(42, 1, 0, 1)
640 // CLOCK_DIVIDER = 1 (SPI clock = 131 / 4 ~ 33 MHz)
641 #define AR7240_SPI_CONTROL 0x41
643 #define CFG_HZ_FALLBACK (525000000LU/2)
645 #elif (CFG_PLL_FREQ == CFG_PLL_560_280_140)
647 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
648 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
650 #if CONFIG_40MHZ_XTAL_SUPPORT
651 // DIV_INT = 28 (40 MHz * 28/2 = 560 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
652 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(28, 1, 0, 1)
654 // DIV_INT = 45 (25 MHz * 45/2 = 562 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
655 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(45, 1, 0, 1)
658 // CLOCK_DIVIDER = 1 (SPI clock = 140 / 4 ~ 35 MHz)
659 #define AR7240_SPI_CONTROL 0x41
661 #define CFG_HZ_FALLBACK (560000000LU/2)
663 #elif (CFG_PLL_FREQ == CFG_PLL_580_290_145)
665 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
666 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
668 #if CONFIG_40MHZ_XTAL_SUPPORT
669 // DIV_INT = 29 (40 MHz * 29/2 = 580 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
670 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(29, 1, 0, 1)
672 #define FREQUENCY_NOT_SUPPORTED
675 // CLOCK_DIVIDER = 1 (SPI clock = 145 / 4 ~ 36 MHz)
676 #define AR7240_SPI_CONTROL 0x41
678 #define CFG_HZ_FALLBACK (580000000LU/2)
680 #elif (CFG_PLL_FREQ == CFG_PLL_600_300_200)
682 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 3
683 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 3)
685 #if CONFIG_40MHZ_XTAL_SUPPORT
686 // DIV_INT = 30 (40 MHz * 30/2 = 600 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
687 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(30, 1, 0, 1)
689 // DIV_INT = 48 (25 MHz * 48/2 = 600 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
690 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(48, 1, 0, 1)
693 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
694 #define AR7240_SPI_CONTROL 0x42
696 #define CFG_HZ_FALLBACK (600000000LU/2)
698 #elif defined(CFG_PLL_FREQ)
699 #error Unknown frequency setting!
703 * Check if clocks configuration is valid
705 #ifdef FREQUENCY_NOT_SUPPORTED
706 #error Selected frequency setting is not supported with your reference clock!
710 * Cache lock for stack
712 #define CFG_INIT_SP_OFFSET 0x1000
715 * Address and size of Primary Environment Sector
717 #if defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
718 #define CFG_ENV_IS_IN_FLASH 1
719 #undef CFG_ENV_IS_NOWHERE
721 #undef CFG_ENV_IS_IN_FLASH
722 #define CFG_ENV_IS_NOWHERE 1
725 #define CFG_ENV_ADDR 0x9F040000
726 #define CFG_ENV_SIZE 0x10000
731 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
732 #define CONFIG_COMMANDS (CFG_CMD_MEMORY | CFG_CMD_DHCP | CFG_CMD_PING | CFG_CMD_FLASH | CFG_CMD_NET | CFG_CMD_RUN | CFG_CMD_DATE | CFG_CMD_IMI | CFG_CMD_SNTP )
733 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
734 #define CONFIG_COMMANDS (CFG_CMD_MEMORY | CFG_CMD_DHCP | CFG_CMD_PING | CFG_CMD_ENV | CFG_CMD_FLASH | CFG_CMD_NET | CFG_CMD_RUN | CFG_CMD_DATE | CFG_CMD_IMI | CFG_CMD_SNTP)
736 #define CONFIG_COMMANDS (CFG_CMD_MEMORY | CFG_CMD_DHCP | CFG_CMD_PING | CFG_CMD_FLASH | CFG_CMD_NET | CFG_CMD_RUN | CFG_CMD_DATE | CFG_CMD_SNTP )
739 // Enable NetConsole and custom NetConsole port
740 #define CONFIG_NETCONSOLE
741 #define CONFIG_NETCONSOLE_PORT 6666
743 /* DDR init values */
744 #if CONFIG_40MHZ_XTAL_SUPPORT
745 #define CFG_DDR_REFRESH_VAL 0x4270
747 #define CFG_DDR_REFRESH_VAL 0x4186
750 #define CFG_DDR_CONFIG_VAL 0x7fbc8cd0
751 #define CFG_DDR_MODE_VAL_INIT 0x133
753 #ifdef LOW_DRIVE_STRENGTH
754 #define CFG_DDR_EXT_MODE_VAL 0x2
756 #define CFG_DDR_EXT_MODE_VAL 0x0
759 #define CFG_DDR_MODE_VAL 0x33
760 #define CFG_DDR_TRTW_VAL 0x1f
761 #define CFG_DDR_TWTR_VAL 0x1e
763 //#define CFG_DDR_CONFIG2_VAL 0x99d0e6a8 // HORNET 1.0
764 #define CFG_DDR_CONFIG2_VAL 0x9dd0e6a8 // HORNET 1.1
765 #define CFG_DDR_RD_DATA_THIS_CYCLE_VAL 0x00ff
766 #define CFG_DDR_TAP0_VAL 0x8
767 #define CFG_DDR_TAP1_VAL 0x9
769 /* DDR2 Init values */
770 #define CFG_DDR2_EXT_MODE_VAL 0x402
772 #define CONFIG_NET_MULTI
774 /* choose eth1 first for tftpboot interface added by ZJin, 110328 */
775 #define CONFIG_AG7240_SPEPHY
778 * Web Failsafe configuration
780 #define WEBFAILSAFE_UPLOAD_RAM_ADDRESS CONFIG_LOADADDR
782 // U-Boot partition size and offset
783 #define WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS CFG_FLASH_BASE
785 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
786 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
787 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
788 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (256 * 1024)
790 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
793 // Firmware partition offset
794 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
795 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x80000
796 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
797 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x50000
799 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x20000
802 // ART partition size and offset
803 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
804 #define WEBFAILSAFE_UPLOAD_ART_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x10000
807 #define WEBFAILSAFE_UPLOAD_ART_SIZE_IN_BYTES (64 * 1024)
809 // max. firmware size <= (FLASH_SIZE - WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES)
810 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
811 // D-Link DIR-505: 64k(U-Boot),64k(ART),64k(MAC),64k(NVRAM),256k(Language)
812 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (512 * 1024)
813 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
814 // Carambola 2: 256k(U-Boot),64k(U-Boot env),64k(ART)
815 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (384 * 1024)
817 // TP-Link: 64k(U-Boot),64k(MAC/model/WPS pin block),64k(ART)
818 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (192 * 1024)
821 // progress state info
822 #define WEBFAILSAFE_PROGRESS_START 0
823 #define WEBFAILSAFE_PROGRESS_TIMEOUT 1
824 #define WEBFAILSAFE_PROGRESS_UPLOAD_READY 2
825 #define WEBFAILSAFE_PROGRESS_UPGRADE_READY 3
826 #define WEBFAILSAFE_PROGRESS_UPGRADE_FAILED 4
829 #define WEBFAILSAFE_UPGRADE_TYPE_FIRMWARE 0
830 #define WEBFAILSAFE_UPGRADE_TYPE_UBOOT 1
831 #define WEBFAILSAFE_UPGRADE_TYPE_ART 2
833 /*-----------------------------------------------------------------------*/
835 #define CFG_ATHRS26_PHY 1
836 #define CFG_AG7240_NMACS 2
837 #define CFG_MII0_RMII 1
838 #define CFG_BOOTM_LEN (16 << 20) /* 16 MB */
841 #define milisecdelay(_x) udelay((_x) * 1000)
843 /* MAC address, model and PIN number offsets in FLASH */
844 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
845 // DIR-505 has two MAC addresses inside dedicated MAC partition
846 // They are stored in plain text... TODO: read/write MAC stored as plain text
847 //#define OFFSET_MAC_DATA_BLOCK 0x020000
848 //#define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
849 //#define OFFSET_MAC_ADDRESS 0x000004
850 //#define OFFSET_MAC_ADDRESS2 0x000016
851 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
852 #define OFFSET_MAC_DATA_BLOCK 0xFF0000
853 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
854 #define OFFSET_MAC_ADDRESS 0x000000 // Carambola 2 has two MAC addresses at the beginning of ART partition
855 #define OFFSET_MAC_ADDRESS2 0x000006
857 #define OFFSET_MAC_DATA_BLOCK 0x010000
858 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
859 #define OFFSET_MAC_ADDRESS 0x00FC00
862 #if !defined(CONFIG_FOR_8DEVICES_CARAMBOLA2) && \
863 !defined(CONFIG_FOR_DLINK_DIR505_A1)
864 #define OFFSET_ROUTER_MODEL 0x00FD00
867 #if defined(CONFIG_FOR_TPLINK_MR3020_V1) || \
868 defined(CONFIG_FOR_TPLINK_WR740N_V4) || \
869 defined(CONFIG_FOR_TPLINK_MR3220_V2) || \
870 defined(CONFIG_FOR_TPLINK_WR710N_V1)
871 #define OFFSET_PIN_NUMBER 0x00FE00
875 * PLL and clocks configurations from FLASH
877 * We need space for 4x 32-bit variables:
878 * - PLL_MAGIC_VARIABLE
879 * - values of registers:
880 * - CPU_PLL_CONFIG (page 70 in datasheet)
881 * - CLOCK_CONTROL (page 71)
882 * - SPI_CONTROL (page 261)
884 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
886 * We will store PLL and CLOCK registers
887 * configuration at the end of MAC data
888 * partition (3rd 64 KiB block)
890 #define PLL_IN_FLASH_MAGIC 0x504C4C73
891 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00020000
892 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
893 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
894 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
896 * We will store PLL and CLOCK registers
897 * configuration at the end of U-Boot
898 * image (4th 64 KiB block)
899 * It implies that binary image can't
900 * be bigger than 192 KiB!
904 #define PLL_IN_FLASH_MAGIC 0x504C4C73
905 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00030000
906 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
907 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
910 * All TP-Link routers have a lot of unused space
911 * in FLASH, in second 64 KiB block.
912 * We will store there PLL and CLOCK
913 * registers configuration.
915 #define PLL_IN_FLASH_MAGIC 0x504C4C73
916 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00010000
917 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
918 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
921 #include <cmd_confdefs.h>
923 #endif /* __CONFIG_H */