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
91 #undef CPU_PLL_CONFIG_VAL
92 #undef CPU_CLK_CONTROL_VAL
94 // CPU-RAM-AHB frequency setting
95 #define CFG_PLL_FREQ CFG_PLL_400_400_200
96 //#define CFG_PLL_FREQ CFG_PLL_525_525_262 // only for test!
99 * CPU_PLL_DITHER_FRAC_VAL
101 * Value written into CPU PLL Dither FRAC Register (PLL_DITHER_FRAC)
103 * bits 0..9 NFRAC_MAX => 1000 (0x3E8)
104 * bits 10..13 NFRAC_MIN => 0 (minimum value is used)
105 * bits 20..29 NFRAC_STEP => 1
108 #define CPU_PLL_DITHER_FRAC_VAL 0x001003e8
111 * CPU_PLL_SETTLE_TIME_VAL
113 * Value written into CPU Phase Lock Loop Configuration Register 2 (CPU_PLL_CONFIG2)
115 * bits 0..11 SETTLE_TIME => 850 (0x352)
118 #if CONFIG_40MHZ_XTAL_SUPPORT
119 #define CPU_PLL_SETTLE_TIME_VAL 0x00000550
121 #define CPU_PLL_SETTLE_TIME_VAL 0x00000352
125 * CPU_CLK_CONTROL_VAL
127 * In CPU_CLK_CONTROL_VAL bit 2 is set (BYPASS = 1 -> bypass PLL)
128 * After PLL configuration we nedd to clear this bit
130 * Values written into CPU Clock Control Register CLOCK_CONTROL
132 * 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)
133 * bits 5..6 (2bit) CPU_POST_DIV => 0 (DEFAULT, Ratio = 1)
134 * bits 10..11 (2bit) DDR_POST_DIV => 0 (DEFAULT, Ratio = 1)
135 * bits 15..16 (2bit) AHB_POST_DIV => 1 (DEFAULT, Ratio = 2)
142 * In CPU_PLL_CONFIG_VAL bit 30 is set (CPU_PLLPWD = 1 -> power down control for CPU PLL)
143 * After PLL configuration we need to clear this bit
145 * Values written into CPU Phase Lock Loop Configuration (CPU_PLL_CONFIG)
147 * bits 10..15 (6bit) DIV_INT (The integer part of the DIV to CPU PLL) => 32 (0x20)
148 * bits 16..20 (5bit) REFDIV (Reference clock divider) => 1 (0x1) [doesn't start at values different than 1 (maybe need to change other dividers?)]
149 * bits 21 (1bit) RANGE (Determine the VCO frequency range of the CPU PLL) => 0 (0x0) [doesn't have impact on clock values]
150 * bits 23..25 (3bit) OUTDIV (Define the ratio between VCO output and PLL output => 1 (0x1) [value == 0 is illegal!]
151 * VCOOUT * (1/2^OUTDIV) = PLLOUT)
155 * = PLL CALCULATION =============
156 * PLL = ((25 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=25 MHz
158 * PLL = ((40 MHz / REFDIV) * DIV_INT) / (2 ^ OUTDIV) // XTAL=40 MHz
160 * CPU = PLL / CPU_POST_DIV
161 * DDR = PLL / DDR_POST_DIV
162 * AHB = PLL / AHB_POST_DIV
169 * Value written into SPI Control (SPI_CONTROL) register
171 * bits 0..5 (6bit) CLOCK_DIVIDER (Specifies the clock divider setting. Actual clock frequency would be (AHB_CLK / ((CLOCK_DIVIDER+1)*2)) )
172 * 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.)
177 * CPU_PLL_CONFIG and CPU_CLK_CONTROL registers values generator
179 #define MAKE_CPU_PLL_CONFIG_VAL(divint, refdiv, outdiv) (0x40000000 | ((0x3F & divint) << 10) | ((0x1F & refdiv) << 16) | ((0x7 & outdiv) << 23))
180 #define MAKE_CPU_CLK_CONTROL_VAL(cpudiv, ddrdiv, ahbdiv) (0x4 | ((0x3 & (cpudiv - 1)) << 5) | ((0x3 & (ddrdiv - 1)) << 10) | ((0x3 & (ahbdiv - 1)) << 15))
183 * Default values (400/400/200 MHz) for O/C recovery mode
186 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
187 #define CPU_CLK_CONTROL_VAL_DEFAULT MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
189 #if CONFIG_40MHZ_XTAL_SUPPORT
190 // DIV_INT = 20 (40 MHz * 20/2 = 400 MHz)
191 // REFDIV = 1, OUTDIV = 1
192 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(20, 1, 1)
194 // DIV_INT = 32 (25 MHz * 32/2 = 400 MHz)
195 // REFDIV = 1, OUTDIV = 1
196 #define CPU_PLL_CONFIG_VAL_DEFAULT MAKE_CPU_PLL_CONFIG_VAL(32, 1, 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_400_400_200)
204 #define CFG_HZ (400000000LU/2)
206 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
207 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
209 #if CONFIG_40MHZ_XTAL_SUPPORT
210 // DIV_INT = 20 (40 MHz * 20/2 = 400 MHz)
211 // REFDIV = 1, OUTDIV = 1
212 #define CPU_PLL_CONFIG_VAL 0x40815000
214 // DIV_INT = 32 (25 MHz * 32/2 = 400 MHz)
215 // REFDIV = 1, OUTDIV = 1
216 #define CPU_PLL_CONFIG_VAL 0x40818000
219 // CLOCK_DIVIDER = 2 (SPI clock = 200 / 6 ~ 33 MHz)
220 #define AR7240_SPI_CONTROL 0x42
222 #elif (CFG_PLL_FREQ == CFG_PLL_412_412_206)
224 #define CFG_HZ (412500000LU/2)
226 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
227 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
229 // DIV_INT = 33 (25 MHz * 33/2 = 412,5 MHz)
230 // REFDIV = 1, OUTDIV = 1
231 #define CPU_PLL_CONFIG_VAL 0x40818400
233 // CLOCK_DIVIDER = 2 (SPI clock = 206,25 / 6 ~ 34,4 MHz)
234 #define AR7240_SPI_CONTROL 0x42
236 #elif (CFG_PLL_FREQ == CFG_PLL_425_425_212)
238 #define CFG_HZ (425000000LU/2)
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 // DIV_INT = 34 (25 MHz * 34/2 = 425 MHz)
244 // REFDIV = 1, OUTDIV = 1
245 #define CPU_PLL_CONFIG_VAL 0x40818800
247 // CLOCK_DIVIDER = 2 (SPI clock = 212,5 / 6 ~ 35,4 MHz)
248 #define AR7240_SPI_CONTROL 0x42
250 #elif (CFG_PLL_FREQ == CFG_PLL_437_437_218)
252 #define CFG_HZ (437500000LU/2)
254 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
255 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
257 // DIV_INT = 35 (25 MHz * 35/2 = 437,5 MHz)
258 // REFDIV = 1, OUTDIV = 1
259 #define CPU_PLL_CONFIG_VAL 0x40818C00
261 // CLOCK_DIVIDER = 2 (SPI clock = 218,75 / 6 ~ 36,5 MHz)
262 #define AR7240_SPI_CONTROL 0x42
265 #elif (CFG_PLL_FREQ == CFG_PLL_450_450_225)
267 #define CFG_HZ (450000000LU/2)
269 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
270 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
272 // DIV_INT = 36 (25 MHz * 36/2 = 450 MHz)
273 // REFDIV = 1, OUTDIV = 1
274 #define CPU_PLL_CONFIG_VAL 0x40819000
276 // CLOCK_DIVIDER = 3 (SPI clock = 225 / 6 ~ 37,5 MHz)
277 #define AR7240_SPI_CONTROL 0x42
279 #elif (CFG_PLL_FREQ == CFG_PLL_462_462_231)
281 #define CFG_HZ (462500000LU/2)
283 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
284 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
286 // DIV_INT = 37 (25 MHz * 37/2 = 462,5 MHz)
287 // REFDIV = 1, OUTDIV = 1
288 #define CPU_PLL_CONFIG_VAL 0x40819400
290 // CLOCK_DIVIDER = 3 (SPI clock = 231,25 / 6 ~ 38,5 MHz)
291 #define AR7240_SPI_CONTROL 0x42
293 #elif (CFG_PLL_FREQ == CFG_PLL_475_475_237)
295 #define CFG_HZ (475000000LU/2)
297 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
298 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
300 // DIV_INT = 38 (25 MHz * 38/2 = 475 MHz)
301 // REFDIV = 1, OUTDIV = 1
302 #define CPU_PLL_CONFIG_VAL 0x40819800
304 // CLOCK_DIVIDER = 3 (SPI clock = 237,5 / 6 ~ 39,6 MHz)
305 #define AR7240_SPI_CONTROL 0x42
307 #elif (CFG_PLL_FREQ == CFG_PLL_487_487_243)
309 #define CFG_HZ (487500000LU/2)
311 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
312 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
314 // DIV_INT = 39 (25 MHz * 39/2 = 487,5 MHz)
315 // REFDIV = 1, OUTDIV = 1
316 #define CPU_PLL_CONFIG_VAL 0x40819C00
318 // CLOCK_DIVIDER = 3 (SPI clock = 243,75 / 8 ~ 30,5 MHz)
319 #define AR7240_SPI_CONTROL 0x43
322 #elif (CFG_PLL_FREQ == CFG_PLL_500_500_250)
324 #define CFG_HZ (500000000LU/2)
326 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
327 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
329 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz)
330 // REFDIV = 1, OUTDIV = 1
331 #define CPU_PLL_CONFIG_VAL 0x4081A000
333 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31,3 MHz)
334 #define AR7240_SPI_CONTROL 0x43
336 #elif (CFG_PLL_FREQ == CFG_PLL_500_250_250)
338 #define CFG_HZ (500000000LU/2)
340 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 2
341 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 2)
343 // DIV_INT = 40 (25 MHz * 40/2 = 500 MHz)
344 // REFDIV = 1, OUTDIV = 1
345 #define CPU_PLL_CONFIG_VAL 0x4081A000
347 // CLOCK_DIVIDER = 3 (SPI clock = 250 / 8 ~ 31,3 MHz)
348 #define AR7240_SPI_CONTROL 0x43
350 #elif (CFG_PLL_FREQ == CFG_PLL_562_281_140)
352 #define CFG_HZ (562500000LU/2)
354 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
355 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
357 // DIV_INT = 45 (25 MHz * 45/2 = 562,5 MHz)
358 // REFDIV = 1, OUTDIV = 1
359 #define CPU_PLL_CONFIG_VAL 0x4081B400
361 // CLOCK_DIVIDER = 1 (SPI clock = 140,625 / 4 ~ 35,2 MHz)
362 #define AR7240_SPI_CONTROL 0x41
364 #elif (CFG_PLL_FREQ == CFG_PLL_525_262_131)
366 #define CFG_HZ (525000000LU/2)
368 // CPU_DIV = 1, RAM_DIV = 2, AHB_DIV = 4
369 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 2, 4)
371 // DIV_INT = 42 (25 MHz * 42/2 = 525 MHz)
372 // REFDIV = 1, OUTDIV = 1
373 #define CPU_PLL_CONFIG_VAL 0x4081A800
375 // CLOCK_DIVIDER = 1 (SPI clock = 131 / 4 ~ 32,8 MHz)
376 #define AR7240_SPI_CONTROL 0x41
378 #elif (CFG_PLL_FREQ == CFG_PLL_525_525_262)
380 #define CFG_HZ (525000000LU/2)
382 // CPU_DIV = 1, RAM_DIV = 1, AHB_DIV = 2
383 #define CPU_CLK_CONTROL_VAL MAKE_CPU_CLK_CONTROL_VAL(1, 1, 2)
385 // DIV_INT = 42 (25 MHz * 42/2 = 525 MHz)
386 // REFDIV = 1, OUTDIV = 1
387 #define CPU_PLL_CONFIG_VAL 0x4081A800
389 // CLOCK_DIVIDER = 1 (SPI clock = 131 / 4 ~ 32,8 MHz)
390 #define AR7240_SPI_CONTROL 0x41
395 * Cache lock for stack
397 #define CFG_INIT_SP_OFFSET 0x1000
400 * Address and size of Primary Environment Sector
402 #if defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
403 #define CFG_ENV_IS_IN_FLASH 1
404 #undef CFG_ENV_IS_NOWHERE
406 #undef CFG_ENV_IS_IN_FLASH
407 #define CFG_ENV_IS_NOWHERE 1
410 #define CFG_ENV_ADDR 0x9F040000
411 #define CFG_ENV_SIZE 0x10000
416 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
417 #define CONFIG_COMMANDS (CFG_CMD_MEMORY | CFG_CMD_FLASH | CFG_CMD_NET | CFG_CMD_PING | CFG_CMD_DATE | CFG_CMD_IMI )
418 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
419 #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)
421 #define CONFIG_COMMANDS (CFG_CMD_MEMORY | CFG_CMD_FLASH | CFG_CMD_NET | CFG_CMD_PING )
424 // Enable NetConsole and custom NetConsole port
425 #define CONFIG_NETCONSOLE
426 #define CONFIG_NETCONSOLE_PORT 6666
428 /* DDR init values */
429 #if CONFIG_40MHZ_XTAL_SUPPORT
430 #define CFG_DDR_REFRESH_VAL 0x4270
432 #define CFG_DDR_REFRESH_VAL 0x4186
435 #define CFG_DDR_CONFIG_VAL 0x7fbc8cd0
436 #define CFG_DDR_MODE_VAL_INIT 0x133
438 #ifdef LOW_DRIVE_STRENGTH
439 #define CFG_DDR_EXT_MODE_VAL 0x2
441 #define CFG_DDR_EXT_MODE_VAL 0x0
444 #define CFG_DDR_MODE_VAL 0x33
445 #define CFG_DDR_TRTW_VAL 0x1f
446 #define CFG_DDR_TWTR_VAL 0x1e
448 //#define CFG_DDR_CONFIG2_VAL 0x99d0e6a8 // HORNET 1.0
449 #define CFG_DDR_CONFIG2_VAL 0x9dd0e6a8 // HORNET 1.1
450 #define CFG_DDR_RD_DATA_THIS_CYCLE_VAL 0x00ff
451 #define CFG_DDR_TAP0_VAL 0x8
452 #define CFG_DDR_TAP1_VAL 0x9
454 /* DDR2 Init values */
455 #define CFG_DDR2_EXT_MODE_VAL 0x402
457 #define CONFIG_NET_MULTI
459 /* choose eth1 first for tftpboot interface added by ZJin, 110328 */
460 #define CONFIG_AG7240_SPEPHY
463 * Web Failsafe configuration
465 #define WEBFAILSAFE_UPLOAD_RAM_ADDRESS CONFIG_LOADADDR
467 // U-Boot partition size and offset
468 #define WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS CFG_FLASH_BASE
470 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
471 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
472 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
473 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (256 * 1024)
475 #define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES (64 * 1024)
478 // Firmware partition offset
479 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
480 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x80000
481 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
482 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x50000
484 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x20000
487 // ART partition size and offset
488 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
489 #define WEBFAILSAFE_UPLOAD_ART_ADDRESS WEBFAILSAFE_UPLOAD_UBOOT_ADDRESS + 0x10000
492 #define WEBFAILSAFE_UPLOAD_ART_SIZE_IN_BYTES (64 * 1024)
494 // max. firmware size <= (FLASH_SIZE - WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES)
495 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
496 // D-Link DIR-505: 64k(U-Boot),64k(ART),64k(MAC),64k(NVRAM),256k(Language)
497 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (512 * 1024)
498 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
499 // Carambola 2: 256k(U-Boot),64k(U-Boot env),64k(ART)
500 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (384 * 1024)
502 // TP-Link: 64k(U-Boot),64k(MAC/model/WPS pin block),64k(ART)
503 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (192 * 1024)
506 // progress state info
507 #define WEBFAILSAFE_PROGRESS_START 0
508 #define WEBFAILSAFE_PROGRESS_TIMEOUT 1
509 #define WEBFAILSAFE_PROGRESS_UPLOAD_READY 2
510 #define WEBFAILSAFE_PROGRESS_UPGRADE_READY 3
511 #define WEBFAILSAFE_PROGRESS_UPGRADE_FAILED 4
514 #define WEBFAILSAFE_UPGRADE_TYPE_FIRMWARE 0
515 #define WEBFAILSAFE_UPGRADE_TYPE_UBOOT 1
516 #define WEBFAILSAFE_UPGRADE_TYPE_ART 2
518 /*-----------------------------------------------------------------------*/
520 #define CFG_ATHRS26_PHY 1
521 #define CFG_AG7240_NMACS 2
522 #define CFG_MII0_RMII 1
523 #define CFG_BOOTM_LEN (16 << 20) /* 16 MB */
526 #define milisecdelay(_x) udelay((_x) * 1000)
528 /* MAC address, model and PIN number offsets in FLASH */
529 #if defined(CONFIG_FOR_DLINK_DIR505_A1)
530 // DIR-505 has two MAC addresses inside dedicated MAC partition
531 // They are stored in plain text... TODO: read/write MAC stored as plain text
532 //#define OFFSET_MAC_DATA_BLOCK 0x020000
533 //#define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
534 //#define OFFSET_MAC_ADDRESS 0x000004
535 //#define OFFSET_MAC_ADDRESS2 0x000016
536 #elif defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
537 #define OFFSET_MAC_DATA_BLOCK 0xFF0000
538 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
539 #define OFFSET_MAC_ADDRESS 0x000000 // Carambola 2 has two MAC addresses at the beginning of ART partition
540 #define OFFSET_MAC_ADDRESS2 0x000006
542 #define OFFSET_MAC_DATA_BLOCK 0x010000
543 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
544 #define OFFSET_MAC_ADDRESS 0x00FC00
547 #if !defined(CONFIG_FOR_8DEVICES_CARAMBOLA2) && \
548 !defined(CONFIG_FOR_DLINK_DIR505_A1)
549 #define OFFSET_ROUTER_MODEL 0x00FD00
552 #if defined(CONFIG_FOR_TPLINK_MR3020_V1) || \
553 defined(CONFIG_FOR_TPLINK_WR740N_V4) || \
554 defined(CONFIG_FOR_TPLINK_MR3220_V2) || \
555 defined(CONFIG_FOR_TPLINK_WR710N_V1)
556 #define OFFSET_PIN_NUMBER 0x00FE00
559 #include <cmd_confdefs.h>
561 #endif /* __CONFIG_H */