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)
45 #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)"
47 #elif defined(CONFIG_FOR_TPLINK_WR710N_V1)
49 #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)"
51 #elif defined(CONFIG_FOR_DLINK_DIR505_A1)
53 #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)"
55 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
57 #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)"
62 * Other env default values
64 #undef CONFIG_BOOTFILE
65 #define CONFIG_BOOTFILE "firmware.bin"
67 #undef CONFIG_LOADADDR
68 #define CONFIG_LOADADDR 0x80800000
70 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
71 #define CFG_LOAD_ADDR 0x9F080000
72 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
73 #define CFG_LOAD_ADDR 0x9F050000
75 #define CFG_LOAD_ADDR 0x9F020000
78 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
79 #define CONFIG_BOOTCOMMAND "bootm 0x9F080000"
80 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
81 #define CONFIG_BOOTCOMMAND "bootm 0x9F050000"
83 #define CONFIG_BOOTCOMMAND "bootm 0x9F020000"
86 #define CONFIG_IPADDR 192.168.1.1
87 #define CONFIG_SERVERIP 192.168.1.2
90 #define CFG_HZ bd->bi_cfg_hz
91 #undef CPU_PLL_CONFIG_VAL
92 #undef CPU_CLK_CONTROL_VAL
94 // CPU-RAM-AHB frequency setting
96 #define CFG_PLL_FREQ CFG_PLL_400_400_200
100 * CPU_PLL_DITHER_FRAC_VAL
102 * Value written into CPU PLL Dither FRAC Register (PLL_DITHER_FRAC)
104 * bits 0..9 NFRAC_MAX => 1000 (0x3E8)
105 * bits 10..13 NFRAC_MIN => 0 (minimum value is used)
106 * bits 20..29 NFRAC_STEP => 1
109 #define CPU_PLL_DITHER_FRAC_VAL 0x001003E8
112 * CPU_PLL_SETTLE_TIME_VAL
114 * Value written into CPU Phase Lock Loop Configuration Register 2 (CPU_PLL_CONFIG2)
116 * bits 0..11 SETTLE_TIME => 850 (0x352)
119 #if CONFIG_40MHZ_XTAL_SUPPORT
120 #define CPU_PLL_SETTLE_TIME_VAL 0x00000550
122 #define CPU_PLL_SETTLE_TIME_VAL 0x00000352
126 * CPU_CLK_CONTROL_VAL
128 * In CPU_CLK_CONTROL_VAL bit 2 is set (BYPASS = 1 -> bypass PLL)
129 * After PLL configuration we nedd to clear this bit
131 * Values written into CPU Clock Control Register CLOCK_CONTROL
133 * 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)
134 * bits 5..6 (2bit) CPU_POST_DIV => 0 (DEFAULT, Ratio = 1)
135 * bits 10..11 (2bit) DDR_POST_DIV => 0 (DEFAULT, Ratio = 1)
136 * bits 15..16 (2bit) AHB_POST_DIV => 1 (DEFAULT, Ratio = 2)
143 * In CPU_PLL_CONFIG_VAL bit 30 is set (CPU_PLLPWD = 1 -> power down control for CPU PLL)
144 * After PLL configuration we need to clear this bit
146 * Values written into CPU Phase Lock Loop Configuration (CPU_PLL_CONFIG)
148 * bits 10..15 (6bit) DIV_INT (The integer part of the DIV to CPU PLL) => 32 (0x20)
149 * bits 16..20 (5bit) REFDIV (Reference clock divider) => 1 (0x1) [doesn't start at values different than 1 (maybe need to change other dividers?)]
150 * bits 21 (1bit) RANGE (Determine the VCO frequency range of the CPU PLL) => 0 (0x0) [doesn't have impact on clock values]
151 * bits 23..25 (3bit) OUTDIV (Define the ratio between VCO output and PLL output => 1 (0x1) [value == 0 is illegal!]
152 * VCOOUT * (1/2^OUTDIV) = PLLOUT)
156 * = PLL CALCULATION =============
157 * PLL = ((25 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=25 MHz
159 * PLL = ((40 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=40 MHz
161 * CPU = PLL / CPU_POST_DIV
162 * DDR = PLL / DDR_POST_DIV
163 * AHB = PLL / AHB_POST_DIV
170 * Value written into SPI Control (SPI_CONTROL) register
172 * bits 0..5 (6bit) CLOCK_DIVIDER (Specifies the clock divider setting. Actual clock frequency would be (AHB_CLK / ((CLOCK_DIVIDER+1)*2)) )
173 * 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.)
178 * CPU_PLL_CONFIG and CPU_CLK_CONTROL registers values generator
180 #define MAKE_CPU_PLL_CONFIG_VAL(divint, refdiv, range, outdiv) (((0x3F & divint) << 10) | ((0x1F & refdiv) << 16) | ((0x1 & range) << 21) | ((0x7 & outdiv) << 23))
181 #define MAKE_CPU_CLK_CONTROL_VAL(cpudiv, ddrdiv, ahbdiv) (((0x3 & (cpudiv - 1)) << 5) | ((0x3 & (ddrdiv - 1)) << 10) | ((0x3 & (ahbdiv - 1)) << 15))
184 * Default values (400/400/200 MHz) for O/C recovery mode
187 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
188 #define CPU_CLK_CONTROL_VAL_DEFAULT MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
190 #if CONFIG_40MHZ_XTAL_SUPPORT
191 // DIV_INT = 20 (40 MHz * 20/2 = 400 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
192 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
194 // DIV_INT = 32 (25 MHz * 32/2 = 400 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
195 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 1)
198 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
199 #define AR7240_SPI_CONTROL_DEFAULT 0x42
201 #if (CFG_PLL_FREQ == CFG_PLL_200_200_100)
203 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
204 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
206 #if CONFIG_40MHZ_XTAL_SUPPORT
207 // DIV_INT = 20 (40 MHz * 20/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
208 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 2)
210 // DIV_INT = 32 (25 MHz * 32/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
211 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 2)
214 // CLOCK_DIVIDER = 1 (SPI clock = 100 / 4 ~ 25 MHz)
215 #define AR7240_SPI_CONTROL 0x41
217 #define CFG_HZ_FALLBACK (200000000LU/2)
219 #elif (CFG_PLL_FREQ == CFG_PLL_200_200_200)
221 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
222 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
224 #if CONFIG_40MHZ_XTAL_SUPPORT
225 // DIV_INT = 20 (40 MHz * 20/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
226 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 2)
228 // DIV_INT = 32 (25 MHz * 32/4 = 200 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
229 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(32, 1, 0, 2)
232 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
233 #define AR7240_SPI_CONTROL 0x42
235 #define CFG_HZ_FALLBACK (200000000LU/2)
237 #elif (CFG_PLL_FREQ == CFG_PLL_225_225_112)
239 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
240 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
242 #if CONFIG_40MHZ_XTAL_SUPPORT
243 #define FREQUENCY_NOT_SUPPORTED
245 // DIV_INT = 36 (25 MHz * 36/4 = 225 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
246 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 2)
249 // CLOCK_DIVIDER = 1 (SPI clock = 112 / 4 ~ 28 MHz)
250 #define AR7240_SPI_CONTROL 0x41
252 #define CFG_HZ_FALLBACK (225000000LU/2)
254 #elif (CFG_PLL_FREQ == CFG_PLL_225_225_225)
256 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
257 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
259 #if CONFIG_40MHZ_XTAL_SUPPORT
260 #define FREQUENCY_NOT_SUPPORTED
262 // DIV_INT = 36 (25 MHz * 36/4 = 225 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
263 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 2)
266 // CLOCK_DIVIDER = 3 (SPI clock = 225 / 8 ~ 28 MHz)
267 #define AR7240_SPI_CONTROL 0x43
269 #define CFG_HZ_FALLBACK (225000000LU/2)
271 #elif (CFG_PLL_FREQ == CFG_PLL_250_250_125)
273 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
274 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
276 #if CONFIG_40MHZ_XTAL_SUPPORT
277 // DIV_INT = 25 (40 MHz * 25/4 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
278 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 2)
280 // DIV_INT = 20 (25 MHz * 20/2 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
281 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
284 // CLOCK_DIVIDER = 1 (SPI clock = 125 / 4 ~ 31 MHz)
285 #define AR7240_SPI_CONTROL 0x41
287 #define CFG_HZ_FALLBACK (250000000LU/2)
289 #elif (CFG_PLL_FREQ == CFG_PLL_250_250_250)
291 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 1
292 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 1)
294 #if CONFIG_40MHZ_XTAL_SUPPORT
295 // DIV_INT = 25 (40 MHz * 25/4 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 2
296 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 2)
298 // DIV_INT = 20 (25 MHz * 20/2 = 250 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
299 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(20, 1, 0, 1)
302 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
303 #define AR7240_SPI_CONTROL 0x43
305 #define CFG_HZ_FALLBACK (250000000LU/2)
307 #elif (CFG_PLL_FREQ == CFG_PLL_300_300_150)
309 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
310 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
312 #if CONFIG_40MHZ_XTAL_SUPPORT
313 // DIV_INT = 15 (40 MHz * 15/2 = 300 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
314 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(15, 1, 0, 1)
316 // DIV_INT = 24 (25 MHz * 24/2 = 300 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
317 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(24, 1, 0, 1)
320 // CLOCK_DIVIDER = 2 (SPI clock = 150 / 6 ~ 25 MHz)
321 #define AR7240_SPI_CONTROL 0x42
323 #define CFG_HZ_FALLBACK (300000000LU/2)
325 #elif (CFG_PLL_FREQ == CFG_PLL_325_325_162)
327 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
328 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
330 #if CONFIG_40MHZ_XTAL_SUPPORT
331 #define FREQUENCY_NOT_SUPPORTED
333 // DIV_INT = 26 (25 MHz * 26/2 = 325 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
334 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(26, 1, 0, 1)
337 // CLOCK_DIVIDER = 2 (SPI clock = 162 / 6 ~ 27 MHz)
338 #define AR7240_SPI_CONTROL 0x42
340 #define CFG_HZ_FALLBACK (325000000LU/2)
342 #elif (CFG_PLL_FREQ == CFG_PLL_350_350_175)
344 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
345 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
347 #if CONFIG_40MHZ_XTAL_SUPPORT
348 #define FREQUENCY_NOT_SUPPORTED
350 // DIV_INT = 28 (25 MHz * 28/2 = 350 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
351 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(28, 1, 0, 1)
354 // CLOCK_DIVIDER = 2 (SPI clock = 175 / 6 ~ 29 MHz)
355 #define AR7240_SPI_CONTROL 0x42
357 #define CFG_HZ_FALLBACK (350000000LU/2)
359 #elif (CFG_PLL_FREQ == CFG_PLL_360_360_180)
361 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
362 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
364 #if CONFIG_40MHZ_XTAL_SUPPORT
365 // DIV_INT = 18 (40 MHz * 18/2 = 360 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
366 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(18, 1, 0, 1)
368 // DIV_INT = 29 (25 MHz * 28/2 = 362 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
369 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(29, 1, 0, 1)
372 // CLOCK_DIVIDER = 2 (SPI clock = 180 / 6 ~ 30 MHz)
373 #define AR7240_SPI_CONTROL 0x42
375 #define CFG_HZ_FALLBACK (360000000LU/2)
377 #elif (CFG_PLL_FREQ == CFG_PLL_380_380_190)
379 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
380 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
382 #if CONFIG_40MHZ_XTAL_SUPPORT
383 // DIV_INT = 19 (40 MHz * 19/2 = 380 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
384 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(19, 1, 0, 1)
386 #define FREQUENCY_NOT_SUPPORTED
389 // CLOCK_DIVIDER = 2 (SPI clock = 190 / 6 ~ 32 MHz)
390 #define AR7240_SPI_CONTROL 0x42
392 #define CFG_HZ_FALLBACK (380000000LU/2)
394 #elif (CFG_PLL_FREQ == CFG_PLL_400_400_200)
396 // default configuration
397 #define CPU_CLK_CONTROL_VAL CPU_CLK_CONTROL_VAL_DEFAULT
398 #define CPU_PLL_CONFIG_VAL CPU_PLL_CONFIG_VAL_DEFAULT
399 #define AR7240_SPI_CONTROL AR7240_SPI_CONTROL_DEFAULT
401 #define CFG_HZ_FALLBACK (400000000LU/2)
403 #elif (CFG_PLL_FREQ == CFG_PLL_412_412_206)
405 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
406 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
408 #if CONFIG_40MHZ_XTAL_SUPPORT
409 #define FREQUENCY_NOT_SUPPORTED
411 // DIV_INT = 33 (25 MHz * 33/2 = 412 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
412 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(33, 1, 0, 1)
415 // CLOCK_DIVIDER = 2 (SPI clock = 206 / 6 ~ 34 MHz)
416 #define AR7240_SPI_CONTROL 0x42
418 #define CFG_HZ_FALLBACK (412000000LU/2)
420 #elif (CFG_PLL_FREQ == CFG_PLL_420_420_210)
422 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
423 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
425 #if CONFIG_40MHZ_XTAL_SUPPORT
426 // DIV_INT = 21 (40 MHz * 21/2 = 420 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
427 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(21, 1, 0, 1)
429 #define FREQUENCY_NOT_SUPPORTED
432 // CLOCK_DIVIDER = 2 (SPI clock = 210 / 6 ~ 35 MHz)
433 #define AR7240_SPI_CONTROL 0x42
435 #define CFG_HZ_FALLBACK (420000000LU/2)
437 #elif (CFG_PLL_FREQ == CFG_PLL_425_425_212)
439 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
440 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
442 #if CONFIG_40MHZ_XTAL_SUPPORT
443 #define FREQUENCY_NOT_SUPPORTED
445 // DIV_INT = 34 (25 MHz * 34/2 = 425 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
446 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(34, 1, 0, 1)
449 // CLOCK_DIVIDER = 2 (SPI clock = 212 / 6 ~ 35 MHz)
450 #define AR7240_SPI_CONTROL 0x42
452 #define CFG_HZ_FALLBACK (425000000LU/2)
454 #elif (CFG_PLL_FREQ == CFG_PLL_437_437_218)
456 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
457 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
459 #if CONFIG_40MHZ_XTAL_SUPPORT
460 #define FREQUENCY_NOT_SUPPORTED
462 // DIV_INT = 35 (25 MHz * 35/2 = 437 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
463 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(35, 1, 0, 1)
466 // CLOCK_DIVIDER = 3 (SPI clock = 218 / 8 ~ 27 MHz)
467 #define AR7240_SPI_CONTROL 0x43
469 #define CFG_HZ_FALLBACK (437000000LU/2)
471 #elif (CFG_PLL_FREQ == CFG_PLL_440_440_220)
473 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
474 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
476 #if CONFIG_40MHZ_XTAL_SUPPORT
477 // DIV_INT = 22 (40 MHz * 22/2 = 440 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
478 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(22, 1, 0, 1)
480 #define FREQUENCY_NOT_SUPPORTED
483 // CLOCK_DIVIDER = 3 (SPI clock = 220 / 8 ~ 27 MHz)
484 #define AR7240_SPI_CONTROL 0x43
486 #define CFG_HZ_FALLBACK (440000000LU/2)
488 #elif (CFG_PLL_FREQ == CFG_PLL_450_450_225)
490 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
491 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
493 #if CONFIG_40MHZ_XTAL_SUPPORT
494 #define FREQUENCY_NOT_SUPPORTED
496 // DIV_INT = 36 (25 MHz * 36/2 = 450 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
497 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(36, 1, 0, 1)
500 // CLOCK_DIVIDER = 3 (SPI clock = 225 / 8 ~ 28 MHz)
501 #define AR7240_SPI_CONTROL 0x43
503 #define CFG_HZ_FALLBACK (450000000LU/2)
505 #elif (CFG_PLL_FREQ == CFG_PLL_460_460_230)
507 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
508 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
510 #if CONFIG_40MHZ_XTAL_SUPPORT
511 // DIV_INT = 23 (40 MHz * 23/2 = 460 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
512 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(23, 1, 0, 1)
514 // DIV_INT = 37 (25 MHz * 36/2 = 462 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
515 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(37, 1, 0, 1)
518 // CLOCK_DIVIDER = 3 (SPI clock = 230 / 8 ~ 29 MHz)
519 #define AR7240_SPI_CONTROL 0x43
521 #define CFG_HZ_FALLBACK (460000000LU/2)
523 #elif (CFG_PLL_FREQ == CFG_PLL_475_475_237)
525 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
526 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
528 #if CONFIG_40MHZ_XTAL_SUPPORT
529 #define FREQUENCY_NOT_SUPPORTED
531 // DIV_INT = 38 (25 MHz * 38/2 = 475 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
532 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(38, 1, 0, 1)
535 // CLOCK_DIVIDER = 3 (SPI clock = 237 / 8 ~ 30 MHz)
536 #define AR7240_SPI_CONTROL 0x43
538 #define CFG_HZ_FALLBACK (475000000LU/2)
540 #elif (CFG_PLL_FREQ == CFG_PLL_480_480_240)
542 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
543 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
545 #if CONFIG_40MHZ_XTAL_SUPPORT
546 // DIV_INT = 24 (40 MHz * 24/2 = 480 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
547 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(24, 1, 0, 1)
549 #define FREQUENCY_NOT_SUPPORTED
552 // CLOCK_DIVIDER = 3 (SPI clock = 240 / 8 ~ 30 MHz)
553 #define AR7240_SPI_CONTROL 0x43
555 #define CFG_HZ_FALLBACK (480000000LU/2)
557 #elif (CFG_PLL_FREQ == CFG_PLL_487_487_243)
559 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
560 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
562 #if CONFIG_40MHZ_XTAL_SUPPORT
563 #define FREQUENCY_NOT_SUPPORTED
565 // DIV_INT = 39 (25 MHz * 39/2 = 487 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
566 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(39, 1, 0, 1)
569 // CLOCK_DIVIDER = 3 (SPI clock = 243 / 8 ~ 30 MHz)
570 #define AR7240_SPI_CONTROL 0x43
572 #define CFG_HZ_FALLBACK (487000000LU/2)
574 #elif (CFG_PLL_FREQ == CFG_PLL_500_500_250)
576 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
577 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
579 #if CONFIG_40MHZ_XTAL_SUPPORT
580 // DIV_INT = 25 (40 MHz * 25/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
581 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 1)
583 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
584 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(40, 1, 0, 1)
587 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
588 #define AR7240_SPI_CONTROL 0x43
590 #define CFG_HZ_FALLBACK (500000000LU/2)
592 #elif (CFG_PLL_FREQ == CFG_PLL_500_250_250)
594 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 2
595 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 2)
597 #if CONFIG_40MHZ_XTAL_SUPPORT
598 // DIV_INT = 25 (40 MHz * 25/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
599 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(25, 1, 0, 1)
601 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
602 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(40, 1, 0, 1)
605 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31 MHz)
606 #define AR7240_SPI_CONTROL 0x43
608 #define CFG_HZ_FALLBACK (500000000LU/2)
610 #elif (CFG_PLL_FREQ == CFG_PLL_520_520_260)
612 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
613 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
615 #if CONFIG_40MHZ_XTAL_SUPPORT
616 // DIV_INT = 26 (40 MHz * 26/2 = 520 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
617 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(26, 1, 0, 1)
619 #define FREQUENCY_NOT_SUPPORTED
622 // CLOCK_DIVIDER = 3 (SPI clock = 260 / 8 ~ 32 MHz)
623 #define AR7240_SPI_CONTROL 0x43
625 #define CFG_HZ_FALLBACK (520000000LU/2)
627 #elif (CFG_PLL_FREQ == CFG_PLL_525_262_131)
629 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
630 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
632 #if CONFIG_40MHZ_XTAL_SUPPORT
633 #define FREQUENCY_NOT_SUPPORTED
635 // DIV_INT = 42 (25 MHz * 42/2 = 525 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
636 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(42, 1, 0, 1)
639 // CLOCK_DIVIDER = 1 (SPI clock = 131 / 4 ~ 33 MHz)
640 #define AR7240_SPI_CONTROL 0x41
642 #define CFG_HZ_FALLBACK (525000000LU/2)
644 #elif (CFG_PLL_FREQ == CFG_PLL_560_280_140)
646 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
647 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
649 #if CONFIG_40MHZ_XTAL_SUPPORT
650 // DIV_INT = 28 (40 MHz * 28/2 = 560 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
651 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(28, 1, 0, 1)
653 // DIV_INT = 45 (25 MHz * 45/2 = 562 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
654 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(45, 1, 0, 1)
657 // CLOCK_DIVIDER = 1 (SPI clock = 140 / 4 ~ 35 MHz)
658 #define AR7240_SPI_CONTROL 0x41
660 #define CFG_HZ_FALLBACK (560000000LU/2)
662 #elif (CFG_PLL_FREQ == CFG_PLL_580_290_145)
664 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
665 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
667 #if CONFIG_40MHZ_XTAL_SUPPORT
668 // DIV_INT = 29 (40 MHz * 29/2 = 580 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
669 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(29, 1, 0, 1)
671 #define FREQUENCY_NOT_SUPPORTED
674 // CLOCK_DIVIDER = 1 (SPI clock = 145 / 4 ~ 36 MHz)
675 #define AR7240_SPI_CONTROL 0x41
677 #define CFG_HZ_FALLBACK (580000000LU/2)
679 #elif (CFG_PLL_FREQ == CFG_PLL_600_300_200)
681 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 3
682 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 3)
684 #if CONFIG_40MHZ_XTAL_SUPPORT
685 // DIV_INT = 30 (40 MHz * 30/2 = 600 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
686 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(30, 1, 0, 1)
688 // DIV_INT = 48 (25 MHz * 48/2 = 600 MHz), REFDIV = 1, RANGE = 0, OUTDIV = 1
689 #define CPU_PLL_CONFIG_VAL MAKE_CPU_PLL_CONFIG_VAL(48, 1, 0, 1)
692 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
693 #define AR7240_SPI_CONTROL 0x42
695 #define CFG_HZ_FALLBACK (600000000LU/2)
697 #elif defined(CFG_PLL_FREQ)
698 #error Unknown frequency setting!
702 * Check if clocks configuration is valid
704 #ifdef FREQUENCY_NOT_SUPPORTED
705 #error Selected frequency setting is not supported with your reference clock!
709 * Cache lock for stack
711 #define CFG_INIT_SP_OFFSET 0x1000
714 * Address and size of Primary Environment Sector
716 #if defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
717 #define CFG_ENV_IS_IN_FLASH 1
718 #undef CFG_ENV_IS_NOWHERE
720 #undef CFG_ENV_IS_IN_FLASH
721 #define CFG_ENV_IS_NOWHERE 1
724 #define CFG_ENV_ADDR 0x9F040000
725 #define CFG_ENV_SIZE 0x10000
730 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
731 #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 )
732 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
733 #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)
735 #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 )
738 // Enable NetConsole and custom NetConsole port
739 #define CONFIG_NETCONSOLE
740 #define CONFIG_NETCONSOLE_PORT 6666
742 /* DDR init values */
743 #if CONFIG_40MHZ_XTAL_SUPPORT
744 #define CFG_DDR_REFRESH_VAL 0x4270
746 #define CFG_DDR_REFRESH_VAL 0x4186
749 #define CFG_DDR_CONFIG_VAL 0x7fbc8cd0
750 #define CFG_DDR_MODE_VAL_INIT 0x133
752 #ifdef LOW_DRIVE_STRENGTH
753 #define CFG_DDR_EXT_MODE_VAL 0x2
755 #define CFG_DDR_EXT_MODE_VAL 0x0
758 #define CFG_DDR_MODE_VAL 0x33
759 #define CFG_DDR_TRTW_VAL 0x1f
760 #define CFG_DDR_TWTR_VAL 0x1e
762 //#define CFG_DDR_CONFIG2_VAL 0x99d0e6a8 // HORNET 1.0
763 #define CFG_DDR_CONFIG2_VAL 0x9dd0e6a8 // HORNET 1.1
764 #define CFG_DDR_RD_DATA_THIS_CYCLE_VAL 0x00ff
765 #define CFG_DDR_TAP0_VAL 0x8
766 #define CFG_DDR_TAP1_VAL 0x9
768 /* DDR2 Init values */
769 #define CFG_DDR2_EXT_MODE_VAL 0x402
771 #define CONFIG_NET_MULTI
773 /* choose eth1 first for tftpboot interface added by ZJin, 110328 */
774 #define CONFIG_AG7240_SPEPHY
777 * Web Failsafe configuration
779 #define WEBFAILSAFE_UPLOAD_RAM_ADDRESS CONFIG_LOADADDR
781 // U-Boot partition size and offset
782 #define WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS CFG_FLASH_BASE
784 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
785 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
786 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
787 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (256 * 1024)
789 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
792 // Firmware partition offset
793 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
794 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x80000
795 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
796 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x50000
798 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x20000
801 // ART partition size and offset
802 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
803 #define WEBFAILSAFE_UPLOAD_ART_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x10000
806 #define WEBFAILSAFE_UPLOAD_ART_SIZE_IN_BYTES (64 * 1024)
808 // max. firmware size <= (FLASH_SIZE - WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES)
809 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
810 // D-Link DIR-505: 64k(U-Boot),64k(ART),64k(MAC),64k(NVRAM),256k(Language)
811 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (512 * 1024)
812 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
813 // Carambola 2: 256k(U-Boot),64k(U-Boot env),64k(ART)
814 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (384 * 1024)
816 // TP-Link: 64k(U-Boot),64k(MAC/model/WPS pin block),64k(ART)
817 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (192 * 1024)
820 // progress state info
821 #define WEBFAILSAFE_PROGRESS_START 0
822 #define WEBFAILSAFE_PROGRESS_TIMEOUT 1
823 #define WEBFAILSAFE_PROGRESS_UPLOAD_READY 2
824 #define WEBFAILSAFE_PROGRESS_UPGRADE_READY 3
825 #define WEBFAILSAFE_PROGRESS_UPGRADE_FAILED 4
828 #define WEBFAILSAFE_UPGRADE_TYPE_FIRMWARE 0
829 #define WEBFAILSAFE_UPGRADE_TYPE_UBOOT 1
830 #define WEBFAILSAFE_UPGRADE_TYPE_ART 2
832 /*-----------------------------------------------------------------------*/
834 #define CFG_ATHRS26_PHY 1
835 #define CFG_AG7240_NMACS 2
836 #define CFG_MII0_RMII 1
837 #define CFG_BOOTM_LEN (16 << 20) /* 16 MB */
840 #define milisecdelay(_x) udelay((_x) * 1000)
842 /* MAC address, model and PIN number offsets in FLASH */
843 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
844 // DIR-505 has two MAC addresses inside dedicated MAC partition
845 // They are stored in plain text... TODO: read/write MAC stored as plain text
846 //#define OFFSET_MAC_DATA_BLOCK 0x020000
847 //#define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
848 //#define OFFSET_MAC_ADDRESS 0x000004
849 //#define OFFSET_MAC_ADDRESS2 0x000016
850 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
851 #define OFFSET_MAC_DATA_BLOCK 0xFF0000
852 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
853 #define OFFSET_MAC_ADDRESS 0x000000 // Carambola 2 has two MAC addresses at the beginning of ART partition
854 #define OFFSET_MAC_ADDRESS2 0x000006
856 #define OFFSET_MAC_DATA_BLOCK 0x010000
857 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
858 #define OFFSET_MAC_ADDRESS 0x00FC00
861 #if !defined(CONFIG_FOR_8DEVICES_CARAMBOLA2) && \
862 !defined(CONFIG_FOR_DLINK_DIR505_A1)
863 #define OFFSET_ROUTER_MODEL 0x00FD00
866 #if defined(CONFIG_FOR_TPLINK_MR3020_V1) || \
867 defined(CONFIG_FOR_TPLINK_WR740N_V4) || \
868 defined(CONFIG_FOR_TPLINK_MR3220_V2) || \
869 defined(CONFIG_FOR_TPLINK_WR710N_V1)
870 #define OFFSET_PIN_NUMBER 0x00FE00
874 * PLL and clocks configurations from FLASH
876 * We need space for 4x 32-bit variables:
877 * - PLL_MAGIC_VARIABLE
878 * - values of registers:
879 * - CPU_PLL_CONFIG (page 70 in datasheet)
880 * - CLOCK_CONTROL (page 71)
881 * - SPI_CONTROL (page 261)
883 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
885 * We will store PLL and CLOCK registers
886 * configuration at the end of MAC data
887 * partition (3rd 64 KiB block)
889 #define PLL_IN_FLASH_MAGIC 0x504C4C73
890 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00020000
891 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
892 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
893 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
895 * We will store PLL and CLOCK registers
896 * configuration at the end of U-Boot
897 * image (4th 64 KiB block)
898 * It implies that binary image can't
899 * be bigger than 192 KiB!
903 #define PLL_IN_FLASH_MAGIC 0x504C4C73
904 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00030000
905 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
906 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
909 * All TP-Link routers have a lot of unused space
910 * in FLASH, in second 64 KiB block.
911 * We will store there PLL and CLOCK
912 * registers configuration.
914 #define PLL_IN_FLASH_MAGIC 0x504C4C73
915 #define PLL_IN_FLASH_DATA_BLOCK_OFFSET 0x00010000
916 #define PLL_IN_FLASH_DATA_BLOCK_LENGTH 0x00010000
917 #define PLL_IN_FLASH_MAGIC_OFFSET 0x0000FFF0 // last 16 bytes
920 #include <cmd_confdefs.h>
922 #endif /* __CONFIG_H */