1 // SPDX-License-Identifier: BSD-2-Clause
3 Copyright (c) 2014, Matthias Schiffer <mschiffer@universe-factory.net>
11 Image generation tool for the TP-LINK SafeLoader as seen on
12 TP-LINK Pharos devices (CPE210/220/510/520)
28 #include <arpa/inet.h>
30 #include <sys/types.h>
37 #define ALIGN(x,a) ({ typeof(a) __a = (a); (((x) + __a - 1) & ~(__a - 1)); })
40 #define MAX_PARTITIONS 32
42 /** An image partition table entry */
43 struct image_partition_entry
{
49 /** A flash partition table entry */
50 struct flash_partition_entry
{
56 /** Partition trailing padding definitions
57 * Values 0x00 to 0xff are reserved to indicate the padding value
58 * Values from 0x100 are reserved to indicate other behaviour */
59 enum partition_trail_value
{
62 PART_TRAIL_MAX
= 0xff,
63 PART_TRAIL_NONE
= 0x100
66 /** soft-version value overwrite types
67 * The default (for an uninitialised soft_ver field) is to use the numerical
68 * version number "0.0.0"
71 SOFT_VER_TYPE_NUMERIC
= 0,
72 SOFT_VER_TYPE_TEXT
= 1,
75 /** Firmware layout description */
79 const char *support_list
;
80 enum partition_trail_value part_trail
;
82 enum soft_ver_type type
;
88 uint32_t soft_ver_compat_level
;
89 struct flash_partition_entry partitions
[MAX_PARTITIONS
+1];
90 const char *first_sysupgrade_partition
;
91 const char *last_sysupgrade_partition
;
94 #define SOFT_VER_TEXT(_t) {.type = SOFT_VER_TYPE_TEXT, .text = _t}
95 #define SOFT_VER_NUMERIC(_maj, _min, _patch) { \
96 .type = SOFT_VER_TYPE_NUMERIC, \
97 .num = {_maj, _min, _patch}}
98 #define SOFT_VER_DEFAULT SOFT_VER_NUMERIC(0, 0, 0)
100 struct __attribute__((__packed__
)) meta_header
{
105 /** The content of the soft-version structure */
106 struct __attribute__((__packed__
)) soft_version
{
108 uint8_t version_major
;
109 uint8_t version_minor
;
110 uint8_t version_patch
;
116 uint32_t compat_level
;
120 static const uint8_t jffs2_eof_mark
[4] = {0xde, 0xad, 0xc0, 0xde};
124 Salt for the MD5 hash
126 Fortunately, TP-LINK seems to use the same salt for most devices which use
127 the new image format.
129 static const uint8_t md5_salt
[16] = {
130 0x7a, 0x2b, 0x15, 0xed,
131 0x9b, 0x98, 0x59, 0x6d,
132 0xe5, 0x04, 0xab, 0x44,
133 0xac, 0x2a, 0x9f, 0x4e,
137 /** Firmware layout table */
138 static struct device_info boards
[] = {
139 /** Firmware layout for the CPE210/220 V1 */
142 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
145 "CPE210(TP-LINK|UN|N300-2):1.0\r\n"
146 "CPE210(TP-LINK|UN|N300-2):1.1\r\n"
147 "CPE210(TP-LINK|US|N300-2):1.1\r\n"
148 "CPE210(TP-LINK|EU|N300-2):1.1\r\n"
149 "CPE220(TP-LINK|UN|N300-2):1.1\r\n"
150 "CPE220(TP-LINK|US|N300-2):1.1\r\n"
151 "CPE220(TP-LINK|EU|N300-2):1.1\r\n",
153 .soft_ver
= SOFT_VER_DEFAULT
,
156 {"fs-uboot", 0x00000, 0x20000},
157 {"partition-table", 0x20000, 0x02000},
158 {"default-mac", 0x30000, 0x00020},
159 {"product-info", 0x31100, 0x00100},
160 {"signature", 0x32000, 0x00400},
161 {"firmware", 0x40000, 0x770000},
162 {"soft-version", 0x7b0000, 0x00100},
163 {"support-list", 0x7b1000, 0x00400},
164 {"user-config", 0x7c0000, 0x10000},
165 {"default-config", 0x7d0000, 0x10000},
166 {"log", 0x7e0000, 0x10000},
167 {"radio", 0x7f0000, 0x10000},
171 .first_sysupgrade_partition
= "os-image",
172 .last_sysupgrade_partition
= "support-list",
175 /** Firmware layout for the CPE210 V2 */
178 .vendor
= "CPE210(TP-LINK|UN|N300-2|00000000):2.0\r\n",
181 "CPE210(TP-LINK|EU|N300-2|00000000):2.0\r\n"
182 "CPE210(TP-LINK|EU|N300-2|45550000):2.0\r\n"
183 "CPE210(TP-LINK|EU|N300-2|55530000):2.0\r\n"
184 "CPE210(TP-LINK|UN|N300-2|00000000):2.0\r\n"
185 "CPE210(TP-LINK|UN|N300-2|45550000):2.0\r\n"
186 "CPE210(TP-LINK|UN|N300-2|55530000):2.0\r\n"
187 "CPE210(TP-LINK|US|N300-2|55530000):2.0\r\n"
188 "CPE210(TP-LINK|UN|N300-2):2.0\r\n"
189 "CPE210(TP-LINK|EU|N300-2):2.0\r\n"
190 "CPE210(TP-LINK|US|N300-2):2.0\r\n",
192 .soft_ver
= SOFT_VER_DEFAULT
,
195 {"fs-uboot", 0x00000, 0x20000},
196 {"partition-table", 0x20000, 0x02000},
197 {"default-mac", 0x30000, 0x00020},
198 {"product-info", 0x31100, 0x00100},
199 {"device-info", 0x31400, 0x00400},
200 {"signature", 0x32000, 0x00400},
201 {"device-id", 0x33000, 0x00100},
202 {"firmware", 0x40000, 0x770000},
203 {"soft-version", 0x7b0000, 0x00100},
204 {"support-list", 0x7b1000, 0x01000},
205 {"user-config", 0x7c0000, 0x10000},
206 {"default-config", 0x7d0000, 0x10000},
207 {"log", 0x7e0000, 0x10000},
208 {"radio", 0x7f0000, 0x10000},
212 .first_sysupgrade_partition
= "os-image",
213 .last_sysupgrade_partition
= "support-list",
216 /** Firmware layout for the CPE210 V3 */
219 .vendor
= "CPE210(TP-LINK|UN|N300-2|00000000):3.0\r\n",
222 "CPE210(TP-LINK|EU|N300-2|45550000):3.0\r\n"
223 "CPE210(TP-LINK|UN|N300-2|00000000):3.0\r\n"
224 "CPE210(TP-LINK|US|N300-2|55530000):3.0\r\n"
225 "CPE210(TP-LINK|UN|N300-2):3.0\r\n"
226 "CPE210(TP-LINK|EU|N300-2):3.0\r\n"
227 "CPE210(TP-LINK|EU|N300-2|45550000):3.1\r\n"
228 "CPE210(TP-LINK|UN|N300-2|00000000):3.1\r\n"
229 "CPE210(TP-LINK|US|N300-2|55530000):3.1\r\n"
230 "CPE210(TP-LINK|EU|N300-2|45550000):3.20\r\n"
231 "CPE210(TP-LINK|UN|N300-2|00000000):3.20\r\n"
232 "CPE210(TP-LINK|US|N300-2|55530000):3.20\r\n",
234 .soft_ver
= SOFT_VER_DEFAULT
,
237 {"fs-uboot", 0x00000, 0x20000},
238 {"partition-table", 0x20000, 0x01000},
239 {"default-mac", 0x30000, 0x00020},
240 {"product-info", 0x31100, 0x00100},
241 {"device-info", 0x31400, 0x00400},
242 {"signature", 0x32000, 0x00400},
243 {"device-id", 0x33000, 0x00100},
244 {"firmware", 0x40000, 0x770000},
245 {"soft-version", 0x7b0000, 0x00100},
246 {"support-list", 0x7b1000, 0x01000},
247 {"user-config", 0x7c0000, 0x10000},
248 {"default-config", 0x7d0000, 0x10000},
249 {"log", 0x7e0000, 0x10000},
250 {"radio", 0x7f0000, 0x10000},
254 .first_sysupgrade_partition
= "os-image",
255 .last_sysupgrade_partition
= "support-list",
258 /** Firmware layout for the CPE220 V2 */
261 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
264 "CPE220(TP-LINK|EU|N300-2|00000000):2.0\r\n"
265 "CPE220(TP-LINK|EU|N300-2|45550000):2.0\r\n"
266 "CPE220(TP-LINK|EU|N300-2|55530000):2.0\r\n"
267 "CPE220(TP-LINK|UN|N300-2|00000000):2.0\r\n"
268 "CPE220(TP-LINK|UN|N300-2|45550000):2.0\r\n"
269 "CPE220(TP-LINK|UN|N300-2|55530000):2.0\r\n"
270 "CPE220(TP-LINK|US|N300-2|55530000):2.0\r\n"
271 "CPE220(TP-LINK|UN|N300-2):2.0\r\n"
272 "CPE220(TP-LINK|EU|N300-2):2.0\r\n"
273 "CPE220(TP-LINK|US|N300-2):2.0\r\n",
275 .soft_ver
= SOFT_VER_DEFAULT
,
278 {"fs-uboot", 0x00000, 0x20000},
279 {"partition-table", 0x20000, 0x02000},
280 {"default-mac", 0x30000, 0x00020},
281 {"product-info", 0x31100, 0x00100},
282 {"signature", 0x32000, 0x00400},
283 {"firmware", 0x40000, 0x770000},
284 {"soft-version", 0x7b0000, 0x00100},
285 {"support-list", 0x7b1000, 0x00400},
286 {"user-config", 0x7c0000, 0x10000},
287 {"default-config", 0x7d0000, 0x10000},
288 {"log", 0x7e0000, 0x10000},
289 {"radio", 0x7f0000, 0x10000},
293 .first_sysupgrade_partition
= "os-image",
294 .last_sysupgrade_partition
= "support-list",
297 /** Firmware layout for the CPE220 V3 */
300 .vendor
= "CPE220(TP-LINK|UN|N300-2|00000000):3.0\r\n",
303 "CPE220(TP-LINK|EU|N300-2|00000000):3.0\r\n"
304 "CPE220(TP-LINK|EU|N300-2|45550000):3.0\r\n"
305 "CPE220(TP-LINK|EU|N300-2|55530000):3.0\r\n"
306 "CPE220(TP-LINK|UN|N300-2|00000000):3.0\r\n"
307 "CPE220(TP-LINK|UN|N300-2|45550000):3.0\r\n"
308 "CPE220(TP-LINK|UN|N300-2|55530000):3.0\r\n"
309 "CPE220(TP-LINK|US|N300-2|55530000):3.0\r\n"
310 "CPE220(TP-LINK|UN|N300-2):3.0\r\n"
311 "CPE220(TP-LINK|EU|N300-2):3.0\r\n"
312 "CPE220(TP-LINK|US|N300-2):3.0\r\n",
314 .soft_ver
= SOFT_VER_DEFAULT
,
317 {"fs-uboot", 0x00000, 0x20000},
318 {"partition-table", 0x20000, 0x02000},
319 {"default-mac", 0x30000, 0x00020},
320 {"product-info", 0x31100, 0x00100},
321 {"device-info", 0x31400, 0x00400},
322 {"signature", 0x32000, 0x00400},
323 {"device-id", 0x33000, 0x00100},
324 {"firmware", 0x40000, 0x770000},
325 {"soft-version", 0x7b0000, 0x00100},
326 {"support-list", 0x7b1000, 0x01000},
327 {"user-config", 0x7c0000, 0x10000},
328 {"default-config", 0x7d0000, 0x10000},
329 {"log", 0x7e0000, 0x10000},
330 {"radio", 0x7f0000, 0x10000},
334 .first_sysupgrade_partition
= "os-image",
335 .last_sysupgrade_partition
= "support-list",
338 /** Firmware layout for the CPE510/520 V1 */
341 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
344 "CPE510(TP-LINK|UN|N300-5):1.0\r\n"
345 "CPE510(TP-LINK|UN|N300-5):1.1\r\n"
346 "CPE510(TP-LINK|UN|N300-5):1.1\r\n"
347 "CPE510(TP-LINK|US|N300-5):1.1\r\n"
348 "CPE510(TP-LINK|EU|N300-5):1.1\r\n"
349 "CPE520(TP-LINK|UN|N300-5):1.1\r\n"
350 "CPE520(TP-LINK|US|N300-5):1.1\r\n"
351 "CPE520(TP-LINK|EU|N300-5):1.1\r\n",
353 .soft_ver
= SOFT_VER_DEFAULT
,
356 {"fs-uboot", 0x00000, 0x20000},
357 {"partition-table", 0x20000, 0x02000},
358 {"default-mac", 0x30000, 0x00020},
359 {"product-info", 0x31100, 0x00100},
360 {"signature", 0x32000, 0x00400},
361 {"firmware", 0x40000, 0x770000},
362 {"soft-version", 0x7b0000, 0x00100},
363 {"support-list", 0x7b1000, 0x00400},
364 {"user-config", 0x7c0000, 0x10000},
365 {"default-config", 0x7d0000, 0x10000},
366 {"log", 0x7e0000, 0x10000},
367 {"radio", 0x7f0000, 0x10000},
371 .first_sysupgrade_partition
= "os-image",
372 .last_sysupgrade_partition
= "support-list",
375 /** Firmware layout for the CPE510 V2 */
378 .vendor
= "CPE510(TP-LINK|UN|N300-5):2.0\r\n",
381 "CPE510(TP-LINK|EU|N300-5|00000000):2.0\r\n"
382 "CPE510(TP-LINK|EU|N300-5|45550000):2.0\r\n"
383 "CPE510(TP-LINK|EU|N300-5|55530000):2.0\r\n"
384 "CPE510(TP-LINK|UN|N300-5|00000000):2.0\r\n"
385 "CPE510(TP-LINK|UN|N300-5|45550000):2.0\r\n"
386 "CPE510(TP-LINK|UN|N300-5|55530000):2.0\r\n"
387 "CPE510(TP-LINK|US|N300-5|00000000):2.0\r\n"
388 "CPE510(TP-LINK|US|N300-5|45550000):2.0\r\n"
389 "CPE510(TP-LINK|US|N300-5|55530000):2.0\r\n"
390 "CPE510(TP-LINK|UN|N300-5):2.0\r\n"
391 "CPE510(TP-LINK|EU|N300-5):2.0\r\n"
392 "CPE510(TP-LINK|US|N300-5):2.0\r\n",
394 .soft_ver
= SOFT_VER_DEFAULT
,
397 {"fs-uboot", 0x00000, 0x20000},
398 {"partition-table", 0x20000, 0x02000},
399 {"default-mac", 0x30000, 0x00020},
400 {"product-info", 0x31100, 0x00100},
401 {"signature", 0x32000, 0x00400},
402 {"firmware", 0x40000, 0x770000},
403 {"soft-version", 0x7b0000, 0x00100},
404 {"support-list", 0x7b1000, 0x00400},
405 {"user-config", 0x7c0000, 0x10000},
406 {"default-config", 0x7d0000, 0x10000},
407 {"log", 0x7e0000, 0x10000},
408 {"radio", 0x7f0000, 0x10000},
412 .first_sysupgrade_partition
= "os-image",
413 .last_sysupgrade_partition
= "support-list",
416 /** Firmware layout for the CPE510 V3 */
419 .vendor
= "CPE510(TP-LINK|UN|N300-5):3.0\r\n",
422 "CPE510(TP-LINK|EU|N300-5|00000000):3.0\r\n"
423 "CPE510(TP-LINK|EU|N300-5|45550000):3.0\r\n"
424 "CPE510(TP-LINK|EU|N300-5|55530000):3.0\r\n"
425 "CPE510(TP-LINK|UN|N300-5|00000000):3.0\r\n"
426 "CPE510(TP-LINK|UN|N300-5|45550000):3.0\r\n"
427 "CPE510(TP-LINK|UN|N300-5|55530000):3.0\r\n"
428 "CPE510(TP-LINK|US|N300-5|00000000):3.0\r\n"
429 "CPE510(TP-LINK|US|N300-5|45550000):3.0\r\n"
430 "CPE510(TP-LINK|US|N300-5|55530000):3.0\r\n"
431 "CPE510(TP-LINK|UN|N300-5):3.0\r\n"
432 "CPE510(TP-LINK|EU|N300-5):3.0\r\n"
433 "CPE510(TP-LINK|US|N300-5):3.0\r\n"
434 "CPE510(TP-LINK|UN|N300-5|00000000):3.20\r\n"
435 "CPE510(TP-LINK|US|N300-5|55530000):3.20\r\n"
436 "CPE510(TP-LINK|EU|N300-5|45550000):3.20\r\n",
438 .soft_ver
= SOFT_VER_DEFAULT
,
441 {"fs-uboot", 0x00000, 0x20000},
442 {"partition-table", 0x20000, 0x02000},
443 {"default-mac", 0x30000, 0x00020},
444 {"product-info", 0x31100, 0x00100},
445 {"signature", 0x32000, 0x00400},
446 {"firmware", 0x40000, 0x770000},
447 {"soft-version", 0x7b0000, 0x00100},
448 {"support-list", 0x7b1000, 0x00400},
449 {"user-config", 0x7c0000, 0x10000},
450 {"default-config", 0x7d0000, 0x10000},
451 {"log", 0x7e0000, 0x10000},
452 {"radio", 0x7f0000, 0x10000},
456 .first_sysupgrade_partition
= "os-image",
457 .last_sysupgrade_partition
= "support-list",
460 /** Firmware layout for the CPE610V1 */
463 .vendor
= "CPE610(TP-LINK|UN|N300-5|00000000):1.0\r\n",
466 "CPE610(TP-LINK|EU|N300-5|00000000):1.0\r\n"
467 "CPE610(TP-LINK|EU|N300-5|45550000):1.0\r\n"
468 "CPE610(TP-LINK|EU|N300-5|55530000):1.0\r\n"
469 "CPE610(TP-LINK|UN|N300-5|00000000):1.0\r\n"
470 "CPE610(TP-LINK|UN|N300-5|45550000):1.0\r\n"
471 "CPE610(TP-LINK|UN|N300-5|55530000):1.0\r\n"
472 "CPE610(TP-LINK|US|N300-5|55530000):1.0\r\n"
473 "CPE610(TP-LINK|UN|N300-5):1.0\r\n"
474 "CPE610(TP-LINK|EU|N300-5):1.0\r\n"
475 "CPE610(TP-LINK|US|N300-5):1.0\r\n",
477 .soft_ver
= SOFT_VER_DEFAULT
,
480 {"fs-uboot", 0x00000, 0x20000},
481 {"partition-table", 0x20000, 0x02000},
482 {"default-mac", 0x30000, 0x00020},
483 {"product-info", 0x31100, 0x00100},
484 {"signature", 0x32000, 0x00400},
485 {"firmware", 0x40000, 0x770000},
486 {"soft-version", 0x7b0000, 0x00100},
487 {"support-list", 0x7b1000, 0x00400},
488 {"user-config", 0x7c0000, 0x10000},
489 {"default-config", 0x7d0000, 0x10000},
490 {"log", 0x7e0000, 0x10000},
491 {"radio", 0x7f0000, 0x10000},
495 .first_sysupgrade_partition
= "os-image",
496 .last_sysupgrade_partition
= "support-list",
499 /** Firmware layout for the CPE610V2 */
502 .vendor
= "CPE610(TP-LINK|UN|N300-5|00000000):2.0\r\n",
505 "CPE610(TP-LINK|EU|N300-5|00000000):2.0\r\n"
506 "CPE610(TP-LINK|EU|N300-5|45550000):2.0\r\n"
507 "CPE610(TP-LINK|EU|N300-5|55530000):2.0\r\n"
508 "CPE610(TP-LINK|UN|N300-5|00000000):2.0\r\n"
509 "CPE610(TP-LINK|UN|N300-5|45550000):2.0\r\n"
510 "CPE610(TP-LINK|UN|N300-5|55530000):2.0\r\n"
511 "CPE610(TP-LINK|US|N300-5|55530000):2.0\r\n"
512 "CPE610(TP-LINK|UN|N300-5):2.0\r\n"
513 "CPE610(TP-LINK|EU|N300-5):2.0\r\n"
514 "CPE610(TP-LINK|US|N300-5):2.0\r\n",
516 .soft_ver
= SOFT_VER_DEFAULT
,
519 {"fs-uboot", 0x00000, 0x20000},
520 {"partition-table", 0x20000, 0x02000},
521 {"default-mac", 0x30000, 0x00020},
522 {"product-info", 0x31100, 0x00100},
523 {"signature", 0x32000, 0x00400},
524 {"firmware", 0x40000, 0x770000},
525 {"soft-version", 0x7b0000, 0x00100},
526 {"support-list", 0x7b1000, 0x00400},
527 {"user-config", 0x7c0000, 0x10000},
528 {"default-config", 0x7d0000, 0x10000},
529 {"log", 0x7e0000, 0x10000},
530 {"radio", 0x7f0000, 0x10000},
534 .first_sysupgrade_partition
= "os-image",
535 .last_sysupgrade_partition
= "support-list",
537 /** Firmware layout for the CPE710 V1 */
540 .vendor
= "CPE710(TP-LINK|UN|AC866-5|00000000):1.0\r\n",
543 "CPE710(TP-LINK|UN|AC866-5|00000000):1.0\r\n"
544 "CPE710(TP-LINK|EU|AC866-5|45550000):1.0\r\n"
545 "CPE710(TP-LINK|US|AC866-5|55530000):1.0\r\n"
546 "CPE710(TP-LINK|UN|AC866-5):1.0\r\n"
547 "CPE710(TP-LINK|EU|AC866-5):1.0\r\n"
548 "CPE710(TP-LINK|US|AC866-5):1.0\r\n",
550 .soft_ver
= SOFT_VER_DEFAULT
,
553 {"fs-uboot", 0x00000, 0x50000},
554 {"partition-table", 0x50000, 0x02000},
555 {"default-mac", 0x60000, 0x00020},
556 {"serial-number", 0x60100, 0x00020},
557 {"product-info", 0x61100, 0x00100},
558 {"device-info", 0x61400, 0x00400},
559 {"signature", 0x62000, 0x00400},
560 {"device-id", 0x63000, 0x00100},
561 {"firmware", 0x70000, 0xf40000},
562 {"soft-version", 0xfb0000, 0x00100},
563 {"support-list", 0xfb1000, 0x01000},
564 {"user-config", 0xfc0000, 0x10000},
565 {"default-config", 0xfd0000, 0x10000},
566 {"log", 0xfe0000, 0x10000},
567 {"radio", 0xff0000, 0x10000},
571 .first_sysupgrade_partition
= "os-image",
572 .last_sysupgrade_partition
= "support-list",
577 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
580 "WBS210(TP-LINK|UN|N300-2):1.20\r\n"
581 "WBS210(TP-LINK|US|N300-2):1.20\r\n"
582 "WBS210(TP-LINK|EU|N300-2):1.20\r\n",
584 .soft_ver
= SOFT_VER_DEFAULT
,
587 {"fs-uboot", 0x00000, 0x20000},
588 {"partition-table", 0x20000, 0x02000},
589 {"default-mac", 0x30000, 0x00020},
590 {"product-info", 0x31100, 0x00100},
591 {"signature", 0x32000, 0x00400},
592 {"firmware", 0x40000, 0x770000},
593 {"soft-version", 0x7b0000, 0x00100},
594 {"support-list", 0x7b1000, 0x00400},
595 {"user-config", 0x7c0000, 0x10000},
596 {"default-config", 0x7d0000, 0x10000},
597 {"log", 0x7e0000, 0x10000},
598 {"radio", 0x7f0000, 0x10000},
602 .first_sysupgrade_partition
= "os-image",
603 .last_sysupgrade_partition
= "support-list",
608 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
611 "WBS210(TP-LINK|UN|N300-2|00000000):2.0\r\n"
612 "WBS210(TP-LINK|US|N300-2|55530000):2.0\r\n"
613 "WBS210(TP-LINK|EU|N300-2|45550000):2.0\r\n",
615 .soft_ver
= SOFT_VER_DEFAULT
,
618 {"fs-uboot", 0x00000, 0x20000},
619 {"partition-table", 0x20000, 0x02000},
620 {"default-mac", 0x30000, 0x00020},
621 {"product-info", 0x31100, 0x00100},
622 {"signature", 0x32000, 0x00400},
623 {"firmware", 0x40000, 0x770000},
624 {"soft-version", 0x7b0000, 0x00100},
625 {"support-list", 0x7b1000, 0x00400},
626 {"user-config", 0x7c0000, 0x10000},
627 {"default-config", 0x7d0000, 0x10000},
628 {"log", 0x7e0000, 0x10000},
629 {"radio", 0x7f0000, 0x10000},
633 .first_sysupgrade_partition
= "os-image",
634 .last_sysupgrade_partition
= "support-list",
639 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
642 "WBS510(TP-LINK|UN|N300-5):1.20\r\n"
643 "WBS510(TP-LINK|US|N300-5):1.20\r\n"
644 "WBS510(TP-LINK|EU|N300-5):1.20\r\n"
645 "WBS510(TP-LINK|CA|N300-5):1.20\r\n",
647 .soft_ver
= SOFT_VER_DEFAULT
,
650 {"fs-uboot", 0x00000, 0x20000},
651 {"partition-table", 0x20000, 0x02000},
652 {"default-mac", 0x30000, 0x00020},
653 {"product-info", 0x31100, 0x00100},
654 {"signature", 0x32000, 0x00400},
655 {"firmware", 0x40000, 0x770000},
656 {"soft-version", 0x7b0000, 0x00100},
657 {"support-list", 0x7b1000, 0x00400},
658 {"user-config", 0x7c0000, 0x10000},
659 {"default-config", 0x7d0000, 0x10000},
660 {"log", 0x7e0000, 0x10000},
661 {"radio", 0x7f0000, 0x10000},
665 .first_sysupgrade_partition
= "os-image",
666 .last_sysupgrade_partition
= "support-list",
671 .vendor
= "CPE510(TP-LINK|UN|N300-5):1.0\r\n",
674 "WBS510(TP-LINK|UN|N300-5|00000000):2.0\r\n"
675 "WBS510(TP-LINK|US|N300-5|55530000):2.0\r\n"
676 "WBS510(TP-LINK|EU|N300-5|45550000):2.0\r\n"
677 "WBS510(TP-LINK|CA|N300-5|43410000):2.0\r\n",
679 .soft_ver
= SOFT_VER_DEFAULT
,
682 {"fs-uboot", 0x00000, 0x20000},
683 {"partition-table", 0x20000, 0x02000},
684 {"default-mac", 0x30000, 0x00020},
685 {"product-info", 0x31100, 0x00100},
686 {"signature", 0x32000, 0x00400},
687 {"firmware", 0x40000, 0x770000},
688 {"soft-version", 0x7b0000, 0x00100},
689 {"support-list", 0x7b1000, 0x00400},
690 {"user-config", 0x7c0000, 0x10000},
691 {"default-config", 0x7d0000, 0x10000},
692 {"log", 0x7e0000, 0x10000},
693 {"radio", 0x7f0000, 0x10000},
697 .first_sysupgrade_partition
= "os-image",
698 .last_sysupgrade_partition
= "support-list",
701 /** Firmware layout for the AD7200 */
707 "{product_name:AD7200,product_ver:1.0.0,special_id:00000000}\r\n",
709 .soft_ver
= SOFT_VER_DEFAULT
,
712 {"SBL1", 0x00000, 0x20000},
713 {"MIBIB", 0x20000, 0x20000},
714 {"SBL2", 0x40000, 0x20000},
715 {"SBL3", 0x60000, 0x30000},
716 {"DDRCONFIG", 0x90000, 0x10000},
717 {"SSD", 0xa0000, 0x10000},
718 {"TZ", 0xb0000, 0x30000},
719 {"RPM", 0xe0000, 0x20000},
720 {"fs-uboot", 0x100000, 0x70000},
721 {"uboot-env", 0x170000, 0x40000},
722 {"radio", 0x1b0000, 0x40000},
723 {"os-image", 0x1f0000, 0x400000},
724 {"file-system", 0x5f0000, 0x1900000},
725 {"default-mac", 0x1ef0000, 0x00200},
726 {"pin", 0x1ef0200, 0x00200},
727 {"device-id", 0x1ef0400, 0x00200},
728 {"product-info", 0x1ef0600, 0x0fa00},
729 {"partition-table", 0x1f00000, 0x10000},
730 {"soft-version", 0x1f10000, 0x10000},
731 {"support-list", 0x1f20000, 0x10000},
732 {"profile", 0x1f30000, 0x10000},
733 {"default-config", 0x1f40000, 0x10000},
734 {"user-config", 0x1f50000, 0x40000},
735 {"qos-db", 0x1f90000, 0x40000},
736 {"usb-config", 0x1fd0000, 0x10000},
737 {"log", 0x1fe0000, 0x20000},
741 .first_sysupgrade_partition
= "os-image",
742 .last_sysupgrade_partition
= "file-system"
745 /** Firmware layout for the C2600 */
751 "{product_name:Archer C2600,product_ver:1.0.0,special_id:00000000}\r\n",
753 .soft_ver
= SOFT_VER_DEFAULT
,
756 We use a bigger os-image partition than the stock images (and thus
757 smaller file-system), as our kernel doesn't fit in the stock firmware's
758 2 MB os-image since kernel 4.14.
761 {"SBL1", 0x00000, 0x20000},
762 {"MIBIB", 0x20000, 0x20000},
763 {"SBL2", 0x40000, 0x20000},
764 {"SBL3", 0x60000, 0x30000},
765 {"DDRCONFIG", 0x90000, 0x10000},
766 {"SSD", 0xa0000, 0x10000},
767 {"TZ", 0xb0000, 0x30000},
768 {"RPM", 0xe0000, 0x20000},
769 {"fs-uboot", 0x100000, 0x70000},
770 {"uboot-env", 0x170000, 0x40000},
771 {"radio", 0x1b0000, 0x40000},
772 {"os-image", 0x1f0000, 0x400000}, /* Stock: base 0x1f0000 size 0x200000 */
773 {"file-system", 0x5f0000, 0x1900000}, /* Stock: base 0x3f0000 size 0x1b00000 */
774 {"default-mac", 0x1ef0000, 0x00200},
775 {"pin", 0x1ef0200, 0x00200},
776 {"product-info", 0x1ef0400, 0x0fc00},
777 {"partition-table", 0x1f00000, 0x10000},
778 {"soft-version", 0x1f10000, 0x10000},
779 {"support-list", 0x1f20000, 0x10000},
780 {"profile", 0x1f30000, 0x10000},
781 {"default-config", 0x1f40000, 0x10000},
782 {"user-config", 0x1f50000, 0x40000},
783 {"qos-db", 0x1f90000, 0x40000},
784 {"usb-config", 0x1fd0000, 0x10000},
785 {"log", 0x1fe0000, 0x20000},
789 .first_sysupgrade_partition
= "os-image",
790 .last_sysupgrade_partition
= "file-system"
793 /** Firmware layout for the A7-V5 */
795 .id
= "ARCHER-A7-V5",
798 "{product_name:Archer A7,product_ver:5.0.0,special_id:45550000}\n"
799 "{product_name:Archer A7,product_ver:5.0.0,special_id:55530000}\n"
800 "{product_name:Archer A7,product_ver:5.0.0,special_id:43410000}\n"
801 "{product_name:Archer A7,product_ver:5.0.0,special_id:4A500000}\n"
802 "{product_name:Archer A7,product_ver:5.0.0,special_id:54570000}\n"
803 "{product_name:Archer A7,product_ver:5.0.0,special_id:52550000}\n",
805 .soft_ver
= SOFT_VER_TEXT("soft_ver:7.0.0\n"),
807 /* We're using a dynamic kernel/rootfs split here */
809 {"factory-boot", 0x00000, 0x20000},
810 {"fs-uboot", 0x20000, 0x20000},
811 {"firmware", 0x40000, 0xec0000}, /* Stock: name os-image base 0x40000 size 0x120000 */
812 /* Stock: name file-system base 0x160000 size 0xda0000 */
813 {"default-mac", 0xf40000, 0x00200},
814 {"pin", 0xf40200, 0x00200},
815 {"device-id", 0xf40400, 0x00100},
816 {"product-info", 0xf40500, 0x0fb00},
817 {"soft-version", 0xf50000, 0x00100},
818 {"extra-para", 0xf51000, 0x01000},
819 {"support-list", 0xf52000, 0x0a000},
820 {"profile", 0xf5c000, 0x04000},
821 {"default-config", 0xf60000, 0x10000},
822 {"user-config", 0xf70000, 0x40000},
823 {"certificate", 0xfb0000, 0x10000},
824 {"partition-table", 0xfc0000, 0x10000},
825 {"log", 0xfd0000, 0x20000},
826 {"radio", 0xff0000, 0x10000},
830 .first_sysupgrade_partition
= "os-image",
831 .last_sysupgrade_partition
= "file-system",
834 /** Firmware layout for the C2v3 */
836 .id
= "ARCHER-C2-V3",
839 "{product_name:ArcherC2,product_ver:3.0.0,special_id:00000000}\n"
840 "{product_name:ArcherC2,product_ver:3.0.0,special_id:55530000}\n"
841 "{product_name:ArcherC2,product_ver:3.0.0,special_id:45550000}\n",
843 .soft_ver
= SOFT_VER_TEXT("soft_ver:3.0.1\n"),
845 /** We're using a dynamic kernel/rootfs split here */
848 {"factory-boot", 0x00000, 0x20000},
849 {"fs-uboot", 0x20000, 0x10000},
850 {"firmware", 0x30000, 0x7a0000},
851 {"user-config", 0x7d0000, 0x04000},
852 {"default-mac", 0x7e0000, 0x00100},
853 {"device-id", 0x7e0100, 0x00100},
854 {"extra-para", 0x7e0200, 0x00100},
855 {"pin", 0x7e0300, 0x00100},
856 {"support-list", 0x7e0400, 0x00400},
857 {"soft-version", 0x7e0800, 0x00400},
858 {"product-info", 0x7e0c00, 0x01400},
859 {"partition-table", 0x7e2000, 0x01000},
860 {"profile", 0x7e3000, 0x01000},
861 {"default-config", 0x7e4000, 0x04000},
862 {"merge-config", 0x7ec000, 0x02000},
863 {"qos-db", 0x7ee000, 0x02000},
864 {"radio", 0x7f0000, 0x10000},
868 .first_sysupgrade_partition
= "os-image",
869 .last_sysupgrade_partition
= "file-system",
872 /** Firmware layout for the C25v1 */
874 .id
= "ARCHER-C25-V1",
877 "{product_name:ArcherC25,product_ver:1.0.0,special_id:00000000}\n"
878 "{product_name:ArcherC25,product_ver:1.0.0,special_id:55530000}\n"
879 "{product_name:ArcherC25,product_ver:1.0.0,special_id:45550000}\n",
881 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
883 /* We're using a dynamic kernel/rootfs split here */
885 {"factory-boot", 0x00000, 0x20000},
886 {"fs-uboot", 0x20000, 0x10000},
887 {"firmware", 0x30000, 0x7a0000}, /* Stock: name os-image base 0x30000 size 0x100000 */
888 /* Stock: name file-system base 0x130000 size 0x6a0000 */
889 {"user-config", 0x7d0000, 0x04000},
890 {"default-mac", 0x7e0000, 0x00100},
891 {"device-id", 0x7e0100, 0x00100},
892 {"extra-para", 0x7e0200, 0x00100},
893 {"pin", 0x7e0300, 0x00100},
894 {"support-list", 0x7e0400, 0x00400},
895 {"soft-version", 0x7e0800, 0x00400},
896 {"product-info", 0x7e0c00, 0x01400},
897 {"partition-table", 0x7e2000, 0x01000},
898 {"profile", 0x7e3000, 0x01000},
899 {"default-config", 0x7e4000, 0x04000},
900 {"merge-config", 0x7ec000, 0x02000},
901 {"qos-db", 0x7ee000, 0x02000},
902 {"radio", 0x7f0000, 0x10000},
906 .first_sysupgrade_partition
= "os-image",
907 .last_sysupgrade_partition
= "file-system",
910 /** Firmware layout for the C58v1 */
912 .id
= "ARCHER-C58-V1",
916 "{product_name:Archer C58,product_ver:1.0.0,special_id:00000000}\r\n"
917 "{product_name:Archer C58,product_ver:1.0.0,special_id:45550000}\r\n"
918 "{product_name:Archer C58,product_ver:1.0.0,special_id:55530000}\r\n",
920 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
923 {"fs-uboot", 0x00000, 0x10000},
924 {"default-mac", 0x10000, 0x00200},
925 {"pin", 0x10200, 0x00200},
926 {"product-info", 0x10400, 0x00100},
927 {"partition-table", 0x10500, 0x00800},
928 {"soft-version", 0x11300, 0x00200},
929 {"support-list", 0x11500, 0x00100},
930 {"device-id", 0x11600, 0x00100},
931 {"profile", 0x11700, 0x03900},
932 {"default-config", 0x15000, 0x04000},
933 {"user-config", 0x19000, 0x04000},
934 {"firmware", 0x20000, 0x7c8000},
935 {"certyficate", 0x7e8000, 0x08000},
936 {"radio", 0x7f0000, 0x10000},
940 .first_sysupgrade_partition
= "os-image",
941 .last_sysupgrade_partition
= "file-system",
944 /** Firmware layout for the C59v1 */
946 .id
= "ARCHER-C59-V1",
950 "{product_name:Archer C59,product_ver:1.0.0,special_id:00000000}\r\n"
951 "{product_name:Archer C59,product_ver:1.0.0,special_id:45550000}\r\n"
952 "{product_name:Archer C59,product_ver:1.0.0,special_id:52550000}\r\n"
953 "{product_name:Archer C59,product_ver:1.0.0,special_id:55530000}\r\n",
955 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
957 /* We're using a dynamic kernel/rootfs split here */
959 {"fs-uboot", 0x00000, 0x10000},
960 {"default-mac", 0x10000, 0x00200},
961 {"pin", 0x10200, 0x00200},
962 {"device-id", 0x10400, 0x00100},
963 {"product-info", 0x10500, 0x0fb00},
964 {"firmware", 0x20000, 0xe30000},
965 {"partition-table", 0xe50000, 0x10000},
966 {"soft-version", 0xe60000, 0x10000},
967 {"support-list", 0xe70000, 0x10000},
968 {"profile", 0xe80000, 0x10000},
969 {"default-config", 0xe90000, 0x10000},
970 {"user-config", 0xea0000, 0x40000},
971 {"usb-config", 0xee0000, 0x10000},
972 {"certificate", 0xef0000, 0x10000},
973 {"qos-db", 0xf00000, 0x40000},
974 {"log", 0xfe0000, 0x10000},
975 {"radio", 0xff0000, 0x10000},
979 .first_sysupgrade_partition
= "os-image",
980 .last_sysupgrade_partition
= "file-system",
983 /** Firmware layout for the C59v2 */
985 .id
= "ARCHER-C59-V2",
989 "{product_name:Archer C59,product_ver:2.0.0,special_id:00000000}\r\n"
990 "{product_name:Archer C59,product_ver:2.0.0,special_id:45550000}\r\n"
991 "{product_name:Archer C59,product_ver:2.0.0,special_id:55530000}\r\n",
993 .soft_ver
= SOFT_VER_TEXT("soft_ver:2.0.0 Build 20161206 rel.7303\n"),
995 /** We're using a dynamic kernel/rootfs split here */
997 {"factory-boot", 0x00000, 0x20000},
998 {"fs-uboot", 0x20000, 0x10000},
999 {"default-mac", 0x30000, 0x00200},
1000 {"pin", 0x30200, 0x00200},
1001 {"device-id", 0x30400, 0x00100},
1002 {"product-info", 0x30500, 0x0fb00},
1003 {"firmware", 0x40000, 0xe10000},
1004 {"partition-table", 0xe50000, 0x10000},
1005 {"soft-version", 0xe60000, 0x10000},
1006 {"support-list", 0xe70000, 0x10000},
1007 {"profile", 0xe80000, 0x10000},
1008 {"default-config", 0xe90000, 0x10000},
1009 {"user-config", 0xea0000, 0x40000},
1010 {"usb-config", 0xee0000, 0x10000},
1011 {"certificate", 0xef0000, 0x10000},
1012 {"extra-para", 0xf00000, 0x10000},
1013 {"qos-db", 0xf10000, 0x30000},
1014 {"log", 0xfe0000, 0x10000},
1015 {"radio", 0xff0000, 0x10000},
1019 .first_sysupgrade_partition
= "os-image",
1020 .last_sysupgrade_partition
= "file-system",
1023 /** Firmware layout for the Archer C6 v2 (EU/RU/JP) */
1025 .id
= "ARCHER-C6-V2",
1029 "{product_name:Archer C6,product_ver:2.0.0,special_id:45550000}\r\n"
1030 "{product_name:Archer C6,product_ver:2.0.0,special_id:52550000}\r\n"
1031 "{product_name:Archer C6,product_ver:2.0.0,special_id:4A500000}\r\n",
1033 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.9.1\n"),
1036 {"fs-uboot", 0x00000, 0x20000},
1037 {"default-mac", 0x20000, 0x00200},
1038 {"pin", 0x20200, 0x00100},
1039 {"product-info", 0x20300, 0x00200},
1040 {"device-id", 0x20500, 0x0fb00},
1041 {"firmware", 0x30000, 0x7a9400},
1042 {"soft-version", 0x7d9400, 0x00100},
1043 {"extra-para", 0x7d9500, 0x00100},
1044 {"support-list", 0x7d9600, 0x00200},
1045 {"profile", 0x7d9800, 0x03000},
1046 {"default-config", 0x7dc800, 0x03000},
1047 {"partition-table", 0x7df800, 0x00800},
1048 {"user-config", 0x7e0000, 0x0c000},
1049 {"certificate", 0x7ec000, 0x04000},
1050 {"radio", 0x7f0000, 0x10000},
1054 .first_sysupgrade_partition
= "os-image",
1055 .last_sysupgrade_partition
= "file-system",
1058 /** Firmware layout for the Archer C6 v2 (US) and A6 v2 (US/TW) */
1060 .id
= "ARCHER-C6-V2-US",
1064 "{product_name:Archer A6,product_ver:2.0.0,special_id:55530000}\n"
1065 "{product_name:Archer A6,product_ver:2.0.0,special_id:54570000}\n"
1066 "{product_name:Archer C6,product_ver:2.0.0,special_id:55530000}\n",
1068 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.9.1\n"),
1071 {"factory-boot", 0x00000, 0x20000},
1072 {"default-mac", 0x20000, 0x00200},
1073 {"pin", 0x20200, 0x00100},
1074 {"product-info", 0x20300, 0x00200},
1075 {"device-id", 0x20500, 0x0fb00},
1076 {"fs-uboot", 0x30000, 0x20000},
1077 {"firmware", 0x50000, 0xf89400},
1078 {"soft-version", 0xfd9400, 0x00100},
1079 {"extra-para", 0xfd9500, 0x00100},
1080 {"support-list", 0xfd9600, 0x00200},
1081 {"profile", 0xfd9800, 0x03000},
1082 {"default-config", 0xfdc800, 0x03000},
1083 {"partition-table", 0xfdf800, 0x00800},
1084 {"user-config", 0xfe0000, 0x0c000},
1085 {"certificate", 0xfec000, 0x04000},
1086 {"radio", 0xff0000, 0x10000},
1089 .first_sysupgrade_partition
= "os-image",
1090 .last_sysupgrade_partition
= "file-system",
1092 /** Firmware layout for the Archer C6 v3 */
1094 .id
= "ARCHER-C6-V3",
1098 "{product_name:Archer C6,product_ver:3.20,special_id:55530000}"
1099 "{product_name:Archer C6,product_ver:3.20,special_id:45550000}"
1100 "{product_name:Archer C6,product_ver:3.20,special_id:52550000}"
1101 "{product_name:Archer C6,product_ver:3.20,special_id:4A500000}"
1102 "{product_name:Archer C6,product_ver:3.20,special_id:4B520000}"
1103 "{product_name:Archer C6,product_ver:3.0.0,special_id:42520000}",
1105 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.9\n"),
1108 {"fs-uboot", 0x00000, 0x40000},
1109 {"firmware", 0x40000, 0xf60000},
1110 {"default-mac", 0xfa0000, 0x00200},
1111 {"pin", 0xfa0200, 0x00100},
1112 {"device-id", 0xfa0300, 0x00100},
1113 {"product-info", 0xfa0400, 0x0fc00},
1114 {"default-config", 0xfb0000, 0x08000},
1115 {"ap-def-config", 0xfb8000, 0x08000},
1116 {"user-config", 0xfc0000, 0x0a000},
1117 {"ag-config", 0xfca000, 0x04000},
1118 {"certificate", 0xfce000, 0x02000},
1119 {"ap-config", 0xfd0000, 0x06000},
1120 {"router-config", 0xfd6000, 0x06000},
1121 {"favicon", 0xfdc000, 0x02000},
1122 {"logo", 0xfde000, 0x02000},
1123 {"partition-table", 0xfe0000, 0x00800},
1124 {"soft-version", 0xfe0800, 0x00100},
1125 {"support-list", 0xfe0900, 0x00200},
1126 {"profile", 0xfe0b00, 0x03000},
1127 {"extra-para", 0xfe3b00, 0x00100},
1128 {"radio", 0xff0000, 0x10000},
1131 .first_sysupgrade_partition
= "os-image",
1132 .last_sysupgrade_partition
= "file-system",
1134 /** Firmware layout for the Archer A6 v3 */
1136 .id
= "ARCHER-A6-V3",
1140 "{product_name:Archer A6,product_ver:3.0.0,special_id:43410000}\n"
1141 "{product_name:Archer A6,product_ver:3.0.0,special_id:55530000}\n"
1142 "{product_name:Archer A6,product_ver:3.0.0,special_id:54570000}\n",
1144 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.5\n"),
1147 {"fs-uboot", 0x00000, 0x40000},
1148 {"firmware", 0x40000, 0xf60000},
1149 {"default-mac", 0xfa0000, 0x00200},
1150 {"pin", 0xfa0200, 0x00100},
1151 {"device-id", 0xfa0300, 0x00100},
1152 {"product-info", 0xfa0400, 0x0fc00},
1153 {"default-config", 0xfb0000, 0x08000},
1154 {"ap-def-config", 0xfb8000, 0x08000},
1155 {"user-config", 0xfc0000, 0x0a000},
1156 {"ag-config", 0xfca000, 0x04000},
1157 {"certificate", 0xfce000, 0x02000},
1158 {"ap-config", 0xfd0000, 0x06000},
1159 {"router-config", 0xfd6000, 0x06000},
1160 {"favicon", 0xfdc000, 0x02000},
1161 {"logo", 0xfde000, 0x02000},
1162 {"partition-table", 0xfe0000, 0x00800},
1163 {"soft-version", 0xfe0800, 0x00100},
1164 {"support-list", 0xfe0900, 0x00200},
1165 {"profile", 0xfe0b00, 0x03000},
1166 {"extra-para", 0xfe3b00, 0x00100},
1167 {"radio", 0xff0000, 0x10000},
1170 .first_sysupgrade_partition
= "os-image",
1171 .last_sysupgrade_partition
= "file-system",
1173 /** Firmware layout for the Archer C6U v1 */
1175 .id
= "ARCHER-C6U-V1",
1179 "{product_name:Archer C6U,product_ver:1.0.0,special_id:45550000}\n",
1181 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.2\n"),
1184 {"fs-uboot", 0x00000, 0x40000},
1185 {"firmware", 0x40000, 0xf60000},
1186 {"default-mac", 0xfa0000, 0x00200},
1187 {"pin", 0xfa0200, 0x00100},
1188 {"device-id", 0xfa0300, 0x00100},
1189 {"product-info", 0xfa0400, 0x0fc00},
1190 {"default-config", 0xfb0000, 0x08000},
1191 {"ap-def-config", 0xfb8000, 0x08000},
1192 {"user-config", 0xfc0000, 0x0c000},
1193 {"certificate", 0xfcc000, 0x04000},
1194 {"ap-config", 0xfd0000, 0x08000},
1195 {"router-config", 0xfd8000, 0x08000},
1196 {"partition-table", 0xfe0000, 0x00800},
1197 {"soft-version", 0xfe0800, 0x00100},
1198 {"support-list", 0xfe0900, 0x00200},
1199 {"profile", 0xfe0b00, 0x03000},
1200 {"extra-para", 0xfe3b00, 0x00100},
1201 {"radio", 0xff0000, 0x10000},
1204 .first_sysupgrade_partition
= "os-image",
1205 .last_sysupgrade_partition
= "file-system",
1207 /** Firmware layout for the C60v1 */
1209 .id
= "ARCHER-C60-V1",
1213 "{product_name:Archer C60,product_ver:1.0.0,special_id:00000000}\r\n"
1214 "{product_name:Archer C60,product_ver:1.0.0,special_id:45550000}\r\n"
1215 "{product_name:Archer C60,product_ver:1.0.0,special_id:55530000}\r\n",
1217 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
1220 {"fs-uboot", 0x00000, 0x10000},
1221 {"default-mac", 0x10000, 0x00200},
1222 {"pin", 0x10200, 0x00200},
1223 {"product-info", 0x10400, 0x00100},
1224 {"partition-table", 0x10500, 0x00800},
1225 {"soft-version", 0x11300, 0x00200},
1226 {"support-list", 0x11500, 0x00100},
1227 {"device-id", 0x11600, 0x00100},
1228 {"profile", 0x11700, 0x03900},
1229 {"default-config", 0x15000, 0x04000},
1230 {"user-config", 0x19000, 0x04000},
1231 {"firmware", 0x20000, 0x7c8000},
1232 {"certyficate", 0x7e8000, 0x08000},
1233 {"radio", 0x7f0000, 0x10000},
1237 .first_sysupgrade_partition
= "os-image",
1238 .last_sysupgrade_partition
= "file-system",
1241 /** Firmware layout for the C60v2 */
1243 .id
= "ARCHER-C60-V2",
1247 "{product_name:Archer C60,product_ver:2.0.0,special_id:42520000}\r\n"
1248 "{product_name:Archer C60,product_ver:2.0.0,special_id:45550000}\r\n"
1249 "{product_name:Archer C60,product_ver:2.0.0,special_id:55530000}\r\n",
1251 .soft_ver
= SOFT_VER_TEXT("soft_ver:2.0.0\n"),
1254 {"factory-boot", 0x00000, 0x1fb00},
1255 {"default-mac", 0x1fb00, 0x00200},
1256 {"pin", 0x1fd00, 0x00100},
1257 {"product-info", 0x1fe00, 0x00100},
1258 {"device-id", 0x1ff00, 0x00100},
1259 {"fs-uboot", 0x20000, 0x10000},
1260 {"firmware", 0x30000, 0x7a0000},
1261 {"soft-version", 0x7d9500, 0x00100},
1262 {"support-list", 0x7d9600, 0x00100},
1263 {"extra-para", 0x7d9700, 0x00100},
1264 {"profile", 0x7d9800, 0x03000},
1265 {"default-config", 0x7dc800, 0x03000},
1266 {"partition-table", 0x7df800, 0x00800},
1267 {"user-config", 0x7e0000, 0x0c000},
1268 {"certificate", 0x7ec000, 0x04000},
1269 {"radio", 0x7f0000, 0x10000},
1273 .first_sysupgrade_partition
= "os-image",
1274 .last_sysupgrade_partition
= "file-system",
1277 /** Firmware layout for the C60v3 */
1279 .id
= "ARCHER-C60-V3",
1283 "{product_name:Archer C60,product_ver:3.0.0,special_id:42520000}\r\n"
1284 "{product_name:Archer C60,product_ver:3.0.0,special_id:45550000}\r\n"
1285 "{product_name:Archer C60,product_ver:3.0.0,special_id:55530000}\r\n",
1287 .soft_ver
= SOFT_VER_TEXT("soft_ver:3.0.0\n"),
1290 {"factory-boot", 0x00000, 0x1fb00},
1291 {"default-mac", 0x1fb00, 0x00200},
1292 {"pin", 0x1fd00, 0x00100},
1293 {"product-info", 0x1fe00, 0x00100},
1294 {"device-id", 0x1ff00, 0x00100},
1295 {"fs-uboot", 0x20000, 0x10000},
1296 {"firmware", 0x30000, 0x7a0000},
1297 {"soft-version", 0x7d9500, 0x00100},
1298 {"support-list", 0x7d9600, 0x00100},
1299 {"extra-para", 0x7d9700, 0x00100},
1300 {"profile", 0x7d9800, 0x03000},
1301 {"default-config", 0x7dc800, 0x03000},
1302 {"partition-table", 0x7df800, 0x00800},
1303 {"user-config", 0x7e0000, 0x0c000},
1304 {"certificate", 0x7ec000, 0x04000},
1305 {"radio", 0x7f0000, 0x10000},
1309 .first_sysupgrade_partition
= "os-image",
1310 .last_sysupgrade_partition
= "file-system",
1313 /** Firmware layout for the C5 */
1315 .id
= "ARCHER-C5-V2",
1319 "{product_name:ArcherC5,product_ver:2.0.0,special_id:00000000}\r\n"
1320 "{product_name:ArcherC5,product_ver:2.0.0,special_id:55530000}\r\n"
1321 "{product_name:ArcherC5,product_ver:2.0.0,special_id:4A500000}\r\n", /* JP version */
1323 .soft_ver
= SOFT_VER_DEFAULT
,
1326 {"fs-uboot", 0x00000, 0x40000},
1327 {"os-image", 0x40000, 0x200000},
1328 {"file-system", 0x240000, 0xc00000},
1329 {"default-mac", 0xe40000, 0x00200},
1330 {"pin", 0xe40200, 0x00200},
1331 {"product-info", 0xe40400, 0x00200},
1332 {"partition-table", 0xe50000, 0x10000},
1333 {"soft-version", 0xe60000, 0x00200},
1334 {"support-list", 0xe61000, 0x0f000},
1335 {"profile", 0xe70000, 0x10000},
1336 {"default-config", 0xe80000, 0x10000},
1337 {"user-config", 0xe90000, 0x50000},
1338 {"log", 0xee0000, 0x100000},
1339 {"radio_bk", 0xfe0000, 0x10000},
1340 {"radio", 0xff0000, 0x10000},
1344 .first_sysupgrade_partition
= "os-image",
1345 .last_sysupgrade_partition
= "file-system"
1348 /** Firmware layout for the C7 */
1350 .id
= "ARCHER-C7-V4",
1353 "{product_name:Archer C7,product_ver:4.0.0,special_id:00000000}\n"
1354 "{product_name:Archer C7,product_ver:4.0.0,special_id:41550000}\n"
1355 "{product_name:Archer C7,product_ver:4.0.0,special_id:45550000}\n"
1356 "{product_name:Archer C7,product_ver:4.0.0,special_id:4B520000}\n"
1357 "{product_name:Archer C7,product_ver:4.0.0,special_id:42520000}\n"
1358 "{product_name:Archer C7,product_ver:4.0.0,special_id:4A500000}\n"
1359 "{product_name:Archer C7,product_ver:4.0.0,special_id:52550000}\n"
1360 "{product_name:Archer C7,product_ver:4.0.0,special_id:54570000}\n"
1361 "{product_name:Archer C7,product_ver:4.0.0,special_id:55530000}\n"
1362 "{product_name:Archer C7,product_ver:4.0.0,special_id:43410000}\n",
1364 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
1366 /* We're using a dynamic kernel/rootfs split here */
1368 {"factory-boot", 0x00000, 0x20000},
1369 {"fs-uboot", 0x20000, 0x20000},
1370 {"firmware", 0x40000, 0xEC0000}, /* Stock: name os-image base 0x40000 size 0x120000 */
1371 /* Stock: name file-system base 0x160000 size 0xda0000 */
1372 {"default-mac", 0xf00000, 0x00200},
1373 {"pin", 0xf00200, 0x00200},
1374 {"device-id", 0xf00400, 0x00100},
1375 {"product-info", 0xf00500, 0x0fb00},
1376 {"soft-version", 0xf10000, 0x00100},
1377 {"extra-para", 0xf11000, 0x01000},
1378 {"support-list", 0xf12000, 0x0a000},
1379 {"profile", 0xf1c000, 0x04000},
1380 {"default-config", 0xf20000, 0x10000},
1381 {"user-config", 0xf30000, 0x40000},
1382 {"qos-db", 0xf70000, 0x40000},
1383 {"certificate", 0xfb0000, 0x10000},
1384 {"partition-table", 0xfc0000, 0x10000},
1385 {"log", 0xfd0000, 0x20000},
1386 {"radio", 0xff0000, 0x10000},
1390 .first_sysupgrade_partition
= "os-image",
1391 .last_sysupgrade_partition
= "file-system",
1394 /** Firmware layout for the C7 v5*/
1396 .id
= "ARCHER-C7-V5",
1399 "{product_name:Archer C7,product_ver:5.0.0,special_id:00000000}\n"
1400 "{product_name:Archer C7,product_ver:5.0.0,special_id:45550000}\n"
1401 "{product_name:Archer C7,product_ver:5.0.0,special_id:55530000}\n"
1402 "{product_name:Archer C7,product_ver:5.0.0,special_id:43410000}\n"
1403 "{product_name:Archer C7,product_ver:5.0.0,special_id:4A500000}\n"
1404 "{product_name:Archer C7,product_ver:5.0.0,special_id:54570000}\n"
1405 "{product_name:Archer C7,product_ver:5.0.0,special_id:52550000}\n"
1406 "{product_name:Archer C7,product_ver:5.0.0,special_id:4B520000}\n",
1409 .soft_ver
= SOFT_VER_TEXT("soft_ver:7.0.0\n"),
1411 /* We're using a dynamic kernel/rootfs split here */
1413 {"factory-boot", 0x00000, 0x20000},
1414 {"fs-uboot", 0x20000, 0x20000},
1415 {"partition-table", 0x40000, 0x10000},
1416 {"radio", 0x50000, 0x10000},
1417 {"default-mac", 0x60000, 0x00200},
1418 {"pin", 0x60200, 0x00200},
1419 {"device-id", 0x60400, 0x00100},
1420 {"product-info", 0x60500, 0x0fb00},
1421 {"soft-version", 0x70000, 0x01000},
1422 {"extra-para", 0x71000, 0x01000},
1423 {"support-list", 0x72000, 0x0a000},
1424 {"profile", 0x7c000, 0x04000},
1425 {"user-config", 0x80000, 0x40000},
1428 {"firmware", 0xc0000, 0xf00000}, /* Stock: name os-image base 0xc0000 size 0x120000 */
1429 /* Stock: name file-system base 0x1e0000 size 0xde0000 */
1431 {"log", 0xfc0000, 0x20000},
1432 {"certificate", 0xfe0000, 0x10000},
1433 {"default-config", 0xff0000, 0x10000},
1438 .first_sysupgrade_partition
= "os-image",
1439 .last_sysupgrade_partition
= "file-system",
1442 /** Firmware layout for the C9 */
1448 "{product_name:ArcherC9,"
1449 "product_ver:1.0.0,"
1450 "special_id:00000000}\n",
1452 .soft_ver
= SOFT_VER_DEFAULT
,
1455 {"fs-uboot", 0x00000, 0x40000},
1456 {"os-image", 0x40000, 0x200000},
1457 {"file-system", 0x240000, 0xc00000},
1458 {"default-mac", 0xe40000, 0x00200},
1459 {"pin", 0xe40200, 0x00200},
1460 {"product-info", 0xe40400, 0x00200},
1461 {"partition-table", 0xe50000, 0x10000},
1462 {"soft-version", 0xe60000, 0x00200},
1463 {"support-list", 0xe61000, 0x0f000},
1464 {"profile", 0xe70000, 0x10000},
1465 {"default-config", 0xe80000, 0x10000},
1466 {"user-config", 0xe90000, 0x50000},
1467 {"log", 0xee0000, 0x100000},
1468 {"radio_bk", 0xfe0000, 0x10000},
1469 {"radio", 0xff0000, 0x10000},
1473 .first_sysupgrade_partition
= "os-image",
1474 .last_sysupgrade_partition
= "file-system"
1477 /** Firmware layout for the EAP120 */
1480 .vendor
= "EAP120(TP-LINK|UN|N300-2):1.0\r\n",
1483 "EAP120(TP-LINK|UN|N300-2):1.0\r\n",
1485 .soft_ver
= SOFT_VER_DEFAULT
,
1488 {"fs-uboot", 0x00000, 0x20000},
1489 {"partition-table", 0x20000, 0x02000},
1490 {"default-mac", 0x30000, 0x00020},
1491 {"support-list", 0x31000, 0x00100},
1492 {"product-info", 0x31100, 0x00100},
1493 {"soft-version", 0x32000, 0x00100},
1494 {"os-image", 0x40000, 0x180000},
1495 {"file-system", 0x1c0000, 0x600000},
1496 {"user-config", 0x7c0000, 0x10000},
1497 {"backup-config", 0x7d0000, 0x10000},
1498 {"log", 0x7e0000, 0x10000},
1499 {"radio", 0x7f0000, 0x10000},
1503 .first_sysupgrade_partition
= "os-image",
1504 .last_sysupgrade_partition
= "file-system"
1507 /** Firmware layout for the EAP225-Outdoor v1 */
1509 .id
= "EAP225-OUTDOOR-V1",
1512 "EAP225-Outdoor(TP-Link|UN|AC1200-D):1.0\r\n",
1513 .part_trail
= PART_TRAIL_NONE
,
1514 .soft_ver
= SOFT_VER_DEFAULT
,
1515 .soft_ver_compat_level
= 1,
1518 {"fs-uboot", 0x00000, 0x20000},
1519 {"partition-table", 0x20000, 0x02000},
1520 {"default-mac", 0x30000, 0x01000},
1521 {"support-list", 0x31000, 0x00100},
1522 {"product-info", 0x31100, 0x00400},
1523 {"soft-version", 0x32000, 0x00100},
1524 {"firmware", 0x40000, 0xd80000},
1525 {"user-config", 0xdc0000, 0x30000},
1526 {"mutil-log", 0xf30000, 0x80000},
1527 {"oops", 0xfb0000, 0x40000},
1528 {"radio", 0xff0000, 0x10000},
1532 .first_sysupgrade_partition
= "os-image",
1533 .last_sysupgrade_partition
= "file-system"
1536 /** Firmware layout for the EAP225 v1 */
1541 "EAP225(TP-LINK|UN|AC1200-D):1.0\r\n",
1542 .part_trail
= PART_TRAIL_NONE
,
1543 .soft_ver
= SOFT_VER_DEFAULT
,
1546 {"fs-uboot", 0x00000, 0x20000},
1547 {"partition-table", 0x20000, 0x02000},
1548 {"default-mac", 0x30000, 0x01000},
1549 {"support-list", 0x31000, 0x00100},
1550 {"product-info", 0x31100, 0x00400},
1551 {"soft-version", 0x32000, 0x00100},
1552 {"firmware", 0x40000, 0xd80000},
1553 {"user-config", 0xdc0000, 0x30000},
1554 {"radio", 0xff0000, 0x10000},
1558 .first_sysupgrade_partition
= "os-image",
1559 .last_sysupgrade_partition
= "file-system"
1562 /** Firmware layout for the EAP225 v3 */
1567 "EAP225(TP-Link|UN|AC1350-D):3.0\r\n",
1568 .part_trail
= PART_TRAIL_NONE
,
1569 .soft_ver
= SOFT_VER_DEFAULT
,
1570 .soft_ver_compat_level
= 1,
1573 {"fs-uboot", 0x00000, 0x20000},
1574 {"partition-table", 0x20000, 0x02000},
1575 {"default-mac", 0x30000, 0x01000},
1576 {"support-list", 0x31000, 0x00100},
1577 {"product-info", 0x31100, 0x00400},
1578 {"soft-version", 0x32000, 0x00100},
1579 {"firmware", 0x40000, 0xd80000},
1580 {"user-config", 0xdc0000, 0x30000},
1581 {"mutil-log", 0xf30000, 0x80000},
1582 {"oops", 0xfb0000, 0x40000},
1583 {"radio", 0xff0000, 0x10000},
1587 .first_sysupgrade_partition
= "os-image",
1588 .last_sysupgrade_partition
= "file-system"
1591 /** Firmware layout for the EAP225-Wall v2 */
1593 .id
= "EAP225-WALL-V2",
1596 "EAP225-Wall(TP-Link|UN|AC1200-D):2.0\r\n",
1597 .part_trail
= PART_TRAIL_NONE
,
1598 .soft_ver
= SOFT_VER_DEFAULT
,
1599 .soft_ver_compat_level
= 1,
1602 {"fs-uboot", 0x00000, 0x20000},
1603 {"partition-table", 0x20000, 0x02000},
1604 {"default-mac", 0x30000, 0x01000},
1605 {"support-list", 0x31000, 0x00100},
1606 {"product-info", 0x31100, 0x00400},
1607 {"soft-version", 0x32000, 0x00100},
1608 {"firmware", 0x40000, 0xd80000},
1609 {"user-config", 0xdc0000, 0x30000},
1610 {"mutil-log", 0xf30000, 0x80000},
1611 {"oops", 0xfb0000, 0x40000},
1612 {"radio", 0xff0000, 0x10000},
1616 .first_sysupgrade_partition
= "os-image",
1617 .last_sysupgrade_partition
= "file-system"
1620 /** Firmware layout for the EAP235-Wall v1 */
1622 .id
= "EAP235-WALL-V1",
1625 "EAP235-Wall(TP-Link|UN|AC1200-D):1.0\r\n",
1626 .part_trail
= PART_TRAIL_NONE
,
1627 .soft_ver
= SOFT_VER_NUMERIC(3, 0, 0),
1628 .soft_ver_compat_level
= 1,
1631 {"fs-uboot", 0x00000, 0x80000},
1632 {"partition-table", 0x80000, 0x02000},
1633 {"default-mac", 0x90000, 0x01000},
1634 {"support-list", 0x91000, 0x00100},
1635 {"product-info", 0x91100, 0x00400},
1636 {"soft-version", 0x92000, 0x00100},
1637 {"firmware", 0xa0000, 0xd20000},
1638 {"user-config", 0xdc0000, 0x30000},
1639 {"mutil-log", 0xf30000, 0x80000},
1640 {"oops", 0xfb0000, 0x40000},
1641 {"radio", 0xff0000, 0x10000},
1645 .first_sysupgrade_partition
= "os-image",
1646 .last_sysupgrade_partition
= "file-system"
1649 /** Firmware layout for the EAP245 v1 */
1654 "EAP245(TP-LINK|UN|AC1750-D):1.0\r\n",
1655 .part_trail
= PART_TRAIL_NONE
,
1656 .soft_ver
= SOFT_VER_DEFAULT
,
1659 {"fs-uboot", 0x00000, 0x20000},
1660 {"partition-table", 0x20000, 0x02000},
1661 {"default-mac", 0x30000, 0x01000},
1662 {"support-list", 0x31000, 0x00100},
1663 {"product-info", 0x31100, 0x00400},
1664 {"soft-version", 0x32000, 0x00100},
1665 {"firmware", 0x40000, 0xd80000},
1666 {"user-config", 0xdc0000, 0x30000},
1667 {"radio", 0xff0000, 0x10000},
1671 .first_sysupgrade_partition
= "os-image",
1672 .last_sysupgrade_partition
= "file-system"
1675 /** Firmware layout for the EAP245 v3 */
1680 "EAP245(TP-Link|UN|AC1750-D):3.0\r\n",
1681 .part_trail
= PART_TRAIL_NONE
,
1682 .soft_ver
= SOFT_VER_DEFAULT
,
1683 .soft_ver_compat_level
= 1,
1685 /** Firmware partition with dynamic kernel/rootfs split */
1687 {"factroy-boot", 0x00000, 0x40000},
1688 {"fs-uboot", 0x40000, 0x40000},
1689 {"partition-table", 0x80000, 0x10000},
1690 {"default-mac", 0x90000, 0x01000},
1691 {"support-list", 0x91000, 0x00100},
1692 {"product-info", 0x91100, 0x00400},
1693 {"soft-version", 0x92000, 0x00100},
1694 {"radio", 0xa0000, 0x10000},
1695 {"extra-para", 0xb0000, 0x10000},
1696 {"firmware", 0xc0000, 0xe40000},
1697 {"config", 0xf00000, 0x30000},
1698 {"mutil-log", 0xf30000, 0x80000},
1699 {"oops", 0xfb0000, 0x40000},
1703 .first_sysupgrade_partition
= "os-image",
1704 .last_sysupgrade_partition
= "file-system"
1707 /** Firmware layout for the TL-WA1201 v2 */
1709 .id
= "TL-WA1201-V2",
1713 "{product_name:TL-WA1201,product_ver:2.0.0,special_id:45550000}\n"
1714 "{product_name:TL-WA1201,product_ver:2.0.0,special_id:55530000}\n",
1716 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.1 Build 20200709 rel.66244\n"),
1719 {"fs-uboot", 0x00000, 0x20000},
1720 {"default-mac", 0x20000, 0x00200},
1721 {"pin", 0x20200, 0x00100},
1722 {"product-info", 0x20300, 0x00200},
1723 {"device-id", 0x20500, 0x0fb00},
1724 {"firmware", 0x30000, 0xce0000},
1725 {"portal-logo", 0xd10000, 0x20000},
1726 {"portal-back", 0xd30000, 0x200000},
1727 {"soft-version", 0xf30000, 0x00200},
1728 {"extra-para", 0xf30200, 0x00200},
1729 {"support-list", 0xf30400, 0x00200},
1730 {"profile", 0xf30600, 0x0fa00},
1731 {"apdef-config", 0xf40000, 0x10000},
1732 {"ap-config", 0xf50000, 0x10000},
1733 {"redef-config", 0xf60000, 0x10000},
1734 {"re-config", 0xf70000, 0x10000},
1735 {"multidef-config", 0xf80000, 0x10000},
1736 {"multi-config", 0xf90000, 0x10000},
1737 {"clientdef-config", 0xfa0000, 0x10000},
1738 {"client-config", 0xfb0000, 0x10000},
1739 {"partition-table", 0xfc0000, 0x10000},
1740 {"user-config", 0xfd0000, 0x10000},
1741 {"certificate", 0xfe0000, 0x10000},
1742 {"radio", 0xff0000, 0x10000},
1745 .first_sysupgrade_partition
= "os-image",
1746 .last_sysupgrade_partition
= "file-system",
1749 /** Firmware layout for the TL-WA850RE v2 */
1751 .id
= "TLWA850REV2",
1755 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:55530000}\n"
1756 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:00000000}\n"
1757 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:55534100}\n"
1758 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:45550000}\n"
1759 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:4B520000}\n"
1760 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:42520000}\n"
1761 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:4A500000}\n"
1762 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:43410000}\n"
1763 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:41550000}\n"
1764 "{product_name:TL-WA850RE,product_ver:2.0.0,special_id:52550000}\n",
1766 .soft_ver
= SOFT_VER_DEFAULT
,
1769 576KB were moved from file-system to os-image
1770 in comparison to the stock image
1773 {"fs-uboot", 0x00000, 0x20000},
1774 {"firmware", 0x20000, 0x390000},
1775 {"partition-table", 0x3b0000, 0x02000},
1776 {"default-mac", 0x3c0000, 0x00020},
1777 {"pin", 0x3c0100, 0x00020},
1778 {"product-info", 0x3c1000, 0x01000},
1779 {"soft-version", 0x3c2000, 0x00100},
1780 {"support-list", 0x3c3000, 0x01000},
1781 {"profile", 0x3c4000, 0x08000},
1782 {"user-config", 0x3d0000, 0x10000},
1783 {"default-config", 0x3e0000, 0x10000},
1784 {"radio", 0x3f0000, 0x10000},
1788 .first_sysupgrade_partition
= "os-image",
1789 .last_sysupgrade_partition
= "file-system"
1792 /** Firmware layout for the TL-WA855RE v1 */
1794 .id
= "TLWA855REV1",
1798 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:00000000}\n"
1799 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:55530000}\n"
1800 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:45550000}\n"
1801 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:4B520000}\n"
1802 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:42520000}\n"
1803 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:4A500000}\n"
1804 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:43410000}\n"
1805 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:41550000}\n"
1806 "{product_name:TL-WA855RE,product_ver:1.0.0,special_id:52550000}\n",
1808 .soft_ver
= SOFT_VER_DEFAULT
,
1811 {"fs-uboot", 0x00000, 0x20000},
1812 {"os-image", 0x20000, 0x150000},
1813 {"file-system", 0x170000, 0x240000},
1814 {"partition-table", 0x3b0000, 0x02000},
1815 {"default-mac", 0x3c0000, 0x00020},
1816 {"pin", 0x3c0100, 0x00020},
1817 {"product-info", 0x3c1000, 0x01000},
1818 {"soft-version", 0x3c2000, 0x00100},
1819 {"support-list", 0x3c3000, 0x01000},
1820 {"profile", 0x3c4000, 0x08000},
1821 {"user-config", 0x3d0000, 0x10000},
1822 {"default-config", 0x3e0000, 0x10000},
1823 {"radio", 0x3f0000, 0x10000},
1827 .first_sysupgrade_partition
= "os-image",
1828 .last_sysupgrade_partition
= "file-system"
1831 /** Firmware layout for the TL-WPA8630P v2 (EU)*/
1833 .id
= "TL-WPA8630P-V2.0-EU",
1837 "{product_name:TL-WPA8630P,product_ver:2.0.0,special_id:45550000}\n",
1839 .soft_ver
= SOFT_VER_DEFAULT
,
1842 {"factory-uboot", 0x00000, 0x20000},
1843 {"fs-uboot", 0x20000, 0x20000},
1844 {"firmware", 0x40000, 0x5e0000},
1845 {"partition-table", 0x620000, 0x02000},
1846 {"default-mac", 0x630000, 0x00020},
1847 {"pin", 0x630100, 0x00020},
1848 {"device-id", 0x630200, 0x00030},
1849 {"product-info", 0x631100, 0x01000},
1850 {"extra-para", 0x632100, 0x01000},
1851 {"soft-version", 0x640000, 0x01000},
1852 {"support-list", 0x641000, 0x01000},
1853 {"profile", 0x642000, 0x08000},
1854 {"user-config", 0x650000, 0x10000},
1855 {"default-config", 0x660000, 0x10000},
1856 {"default-nvm", 0x670000, 0xc0000},
1857 {"default-pib", 0x730000, 0x40000},
1858 {"radio", 0x7f0000, 0x10000},
1862 .first_sysupgrade_partition
= "os-image",
1863 .last_sysupgrade_partition
= "file-system"
1866 /** Firmware layout for the TL-WPA8630P v2 (INT)*/
1868 .id
= "TL-WPA8630P-V2-INT",
1872 "{product_name:TL-WPA8630P,product_ver:2.0.0,special_id:41550000}\n"
1873 "{product_name:TL-WPA8630P,product_ver:2.0.0,special_id:44450000}\n"
1874 "{product_name:TL-WPA8630P,product_ver:2.1.0,special_id:41550000}\n",
1876 .soft_ver
= SOFT_VER_DEFAULT
,
1879 {"factory-uboot", 0x00000, 0x20000},
1880 {"fs-uboot", 0x20000, 0x20000},
1881 {"firmware", 0x40000, 0x5e0000},
1882 {"partition-table", 0x620000, 0x02000},
1883 {"extra-para", 0x632100, 0x01000},
1884 {"soft-version", 0x640000, 0x01000},
1885 {"support-list", 0x641000, 0x01000},
1886 {"profile", 0x642000, 0x08000},
1887 {"user-config", 0x650000, 0x10000},
1888 {"default-config", 0x660000, 0x10000},
1889 {"default-nvm", 0x670000, 0xc0000},
1890 {"default-pib", 0x730000, 0x40000},
1891 {"default-mac", 0x7e0000, 0x00020},
1892 {"pin", 0x7e0100, 0x00020},
1893 {"device-id", 0x7e0200, 0x00030},
1894 {"product-info", 0x7e1100, 0x01000},
1895 {"radio", 0x7f0000, 0x10000},
1899 .first_sysupgrade_partition
= "os-image",
1900 .last_sysupgrade_partition
= "file-system"
1903 /** Firmware layout for the TL-WPA8630P v2.1 (EU)*/
1905 .id
= "TL-WPA8630P-V2.1-EU",
1909 "{product_name:TL-WPA8630P,product_ver:2.1.0,special_id:45550000}\n",
1911 .soft_ver
= SOFT_VER_DEFAULT
,
1914 {"factory-uboot", 0x00000, 0x20000},
1915 {"fs-uboot", 0x20000, 0x20000},
1916 {"firmware", 0x40000, 0x5e0000},
1917 {"extra-para", 0x680000, 0x01000},
1918 {"product-info", 0x690000, 0x01000},
1919 {"partition-table", 0x6a0000, 0x02000},
1920 {"soft-version", 0x6b0000, 0x01000},
1921 {"support-list", 0x6b1000, 0x01000},
1922 {"profile", 0x6b2000, 0x08000},
1923 {"user-config", 0x6c0000, 0x10000},
1924 {"default-config", 0x6d0000, 0x10000},
1925 {"default-nvm", 0x6e0000, 0xc0000},
1926 {"default-pib", 0x7a0000, 0x40000},
1927 {"default-mac", 0x7e0000, 0x00020},
1928 {"pin", 0x7e0100, 0x00020},
1929 {"device-id", 0x7e0200, 0x00030},
1930 {"radio", 0x7f0000, 0x10000},
1934 .first_sysupgrade_partition
= "os-image",
1935 .last_sysupgrade_partition
= "file-system"
1938 /** Firmware layout for the TL-WR1043 v5 */
1940 .id
= "TLWR1043NV5",
1944 "{product_name:TL-WR1043N,product_ver:5.0.0,special_id:45550000}\n"
1945 "{product_name:TL-WR1043N,product_ver:5.0.0,special_id:55530000}\n",
1947 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.0.0\n"),
1949 {"factory-boot", 0x00000, 0x20000},
1950 {"fs-uboot", 0x20000, 0x20000},
1951 {"firmware", 0x40000, 0xec0000},
1952 {"default-mac", 0xf00000, 0x00200},
1953 {"pin", 0xf00200, 0x00200},
1954 {"device-id", 0xf00400, 0x00100},
1955 {"product-info", 0xf00500, 0x0fb00},
1956 {"soft-version", 0xf10000, 0x01000},
1957 {"extra-para", 0xf11000, 0x01000},
1958 {"support-list", 0xf12000, 0x0a000},
1959 {"profile", 0xf1c000, 0x04000},
1960 {"default-config", 0xf20000, 0x10000},
1961 {"user-config", 0xf30000, 0x40000},
1962 {"qos-db", 0xf70000, 0x40000},
1963 {"certificate", 0xfb0000, 0x10000},
1964 {"partition-table", 0xfc0000, 0x10000},
1965 {"log", 0xfd0000, 0x20000},
1966 {"radio", 0xff0000, 0x10000},
1969 .first_sysupgrade_partition
= "os-image",
1970 .last_sysupgrade_partition
= "file-system"
1973 /** Firmware layout for the TL-WR1043 v4 */
1975 .id
= "TLWR1043NDV4",
1979 "{product_name:TL-WR1043ND,product_ver:4.0.0,special_id:45550000}\n",
1981 .soft_ver
= SOFT_VER_DEFAULT
,
1983 /* We're using a dynamic kernel/rootfs split here */
1985 {"fs-uboot", 0x00000, 0x20000},
1986 {"firmware", 0x20000, 0xf30000},
1987 {"default-mac", 0xf50000, 0x00200},
1988 {"pin", 0xf50200, 0x00200},
1989 {"product-info", 0xf50400, 0x0fc00},
1990 {"soft-version", 0xf60000, 0x0b000},
1991 {"support-list", 0xf6b000, 0x04000},
1992 {"profile", 0xf70000, 0x04000},
1993 {"default-config", 0xf74000, 0x0b000},
1994 {"user-config", 0xf80000, 0x40000},
1995 {"partition-table", 0xfc0000, 0x10000},
1996 {"log", 0xfd0000, 0x20000},
1997 {"radio", 0xff0000, 0x10000},
2001 .first_sysupgrade_partition
= "os-image",
2002 .last_sysupgrade_partition
= "file-system"
2005 /** Firmware layout for the TL-WR902AC v1 */
2007 .id
= "TL-WR902AC-V1",
2011 "{product_name:TL-WR902AC,product_ver:1.0.0,special_id:45550000}\n"
2012 "{product_name:TL-WR902AC,product_ver:1.0.0,special_id:55530000}\n",
2014 .soft_ver
= SOFT_VER_DEFAULT
,
2017 384KB were moved from file-system to os-image
2018 in comparison to the stock image
2021 {"fs-uboot", 0x00000, 0x20000},
2022 {"firmware", 0x20000, 0x730000},
2023 {"default-mac", 0x750000, 0x00200},
2024 {"pin", 0x750200, 0x00200},
2025 {"product-info", 0x750400, 0x0fc00},
2026 {"soft-version", 0x760000, 0x0b000},
2027 {"support-list", 0x76b000, 0x04000},
2028 {"profile", 0x770000, 0x04000},
2029 {"default-config", 0x774000, 0x0b000},
2030 {"user-config", 0x780000, 0x40000},
2031 {"partition-table", 0x7c0000, 0x10000},
2032 {"log", 0x7d0000, 0x20000},
2033 {"radio", 0x7f0000, 0x10000},
2037 .first_sysupgrade_partition
= "os-image",
2038 .last_sysupgrade_partition
= "file-system",
2041 /** Firmware layout for the TL-WR941HP v1 */
2043 .id
= "TL-WR941HP-V1",
2047 "{product_name:TL-WR941HP,product_ver:1.0.0,special_id:00000000}\n",
2049 .soft_ver
= SOFT_VER_DEFAULT
,
2052 {"fs-uboot", 0x00000, 0x20000},
2053 {"firmware", 0x20000, 0x730000},
2054 {"default-mac", 0x750000, 0x00200},
2055 {"pin", 0x750200, 0x00200},
2056 {"product-info", 0x750400, 0x0fc00},
2057 {"soft-version", 0x760000, 0x0b000},
2058 {"support-list", 0x76b000, 0x04000},
2059 {"profile", 0x770000, 0x04000},
2060 {"default-config", 0x774000, 0x0b000},
2061 {"user-config", 0x780000, 0x40000},
2062 {"partition-table", 0x7c0000, 0x10000},
2063 {"log", 0x7d0000, 0x20000},
2064 {"radio", 0x7f0000, 0x10000},
2068 .first_sysupgrade_partition
= "os-image",
2069 .last_sysupgrade_partition
= "file-system",
2072 /** Firmware layout for the TL-WR942N V1 */
2078 "{product_name:TL-WR942N,product_ver:1.0.0,special_id:00000000}\r\n"
2079 "{product_name:TL-WR942N,product_ver:1.0.0,special_id:52550000}\r\n",
2081 .soft_ver
= SOFT_VER_DEFAULT
,
2084 {"fs-uboot", 0x00000, 0x20000},
2085 {"firmware", 0x20000, 0xe20000},
2086 {"default-mac", 0xe40000, 0x00200},
2087 {"pin", 0xe40200, 0x00200},
2088 {"product-info", 0xe40400, 0x0fc00},
2089 {"partition-table", 0xe50000, 0x10000},
2090 {"soft-version", 0xe60000, 0x10000},
2091 {"support-list", 0xe70000, 0x10000},
2092 {"profile", 0xe80000, 0x10000},
2093 {"default-config", 0xe90000, 0x10000},
2094 {"user-config", 0xea0000, 0x40000},
2095 {"qos-db", 0xee0000, 0x40000},
2096 {"certificate", 0xf20000, 0x10000},
2097 {"usb-config", 0xfb0000, 0x10000},
2098 {"log", 0xfc0000, 0x20000},
2099 {"radio-bk", 0xfe0000, 0x10000},
2100 {"radio", 0xff0000, 0x10000},
2104 .first_sysupgrade_partition
= "os-image",
2105 .last_sysupgrade_partition
= "file-system",
2108 /** Firmware layout for the RE200 v2 */
2114 "{product_name:RE200,product_ver:2.0.0,special_id:00000000}\n"
2115 "{product_name:RE200,product_ver:2.0.0,special_id:41520000}\n"
2116 "{product_name:RE200,product_ver:2.0.0,special_id:41550000}\n"
2117 "{product_name:RE200,product_ver:2.0.0,special_id:42520000}\n"
2118 "{product_name:RE200,product_ver:2.0.0,special_id:43410000}\n"
2119 "{product_name:RE200,product_ver:2.0.0,special_id:45530000}\n"
2120 "{product_name:RE200,product_ver:2.0.0,special_id:45550000}\n"
2121 "{product_name:RE200,product_ver:2.0.0,special_id:49440000}\n"
2122 "{product_name:RE200,product_ver:2.0.0,special_id:4a500000}\n"
2123 "{product_name:RE200,product_ver:2.0.0,special_id:4b520000}\n"
2124 "{product_name:RE200,product_ver:2.0.0,special_id:52550000}\n"
2125 "{product_name:RE200,product_ver:2.0.0,special_id:54570000}\n"
2126 "{product_name:RE200,product_ver:2.0.0,special_id:55530000}\n",
2128 .soft_ver
= SOFT_VER_DEFAULT
,
2131 {"fs-uboot", 0x00000, 0x20000},
2132 {"firmware", 0x20000, 0x7a0000},
2133 {"partition-table", 0x7c0000, 0x02000},
2134 {"default-mac", 0x7c2000, 0x00020},
2135 {"pin", 0x7c2100, 0x00020},
2136 {"product-info", 0x7c3100, 0x01000},
2137 {"soft-version", 0x7c4200, 0x01000},
2138 {"support-list", 0x7c5200, 0x01000},
2139 {"profile", 0x7c6200, 0x08000},
2140 {"config-info", 0x7ce200, 0x00400},
2141 {"user-config", 0x7d0000, 0x10000},
2142 {"default-config", 0x7e0000, 0x10000},
2143 {"radio", 0x7f0000, 0x10000},
2147 .first_sysupgrade_partition
= "os-image",
2148 .last_sysupgrade_partition
= "file-system"
2151 /** Firmware layout for the RE200 v3 */
2157 "{product_name:RE200,product_ver:3.0.0,special_id:00000000}\n"
2158 "{product_name:RE200,product_ver:3.0.0,special_id:41520000}\n"
2159 "{product_name:RE200,product_ver:3.0.0,special_id:41550000}\n"
2160 "{product_name:RE200,product_ver:3.0.0,special_id:42520000}\n"
2161 "{product_name:RE200,product_ver:3.0.0,special_id:43410000}\n"
2162 "{product_name:RE200,product_ver:3.0.0,special_id:45470000}\n"
2163 "{product_name:RE200,product_ver:3.0.0,special_id:45530000}\n"
2164 "{product_name:RE200,product_ver:3.0.0,special_id:45550000}\n"
2165 "{product_name:RE200,product_ver:3.0.0,special_id:49440000}\n"
2166 "{product_name:RE200,product_ver:3.0.0,special_id:4A500000}\n"
2167 "{product_name:RE200,product_ver:3.0.0,special_id:4B520000}\n"
2168 "{product_name:RE200,product_ver:3.0.0,special_id:52550000}\n"
2169 "{product_name:RE200,product_ver:3.0.0,special_id:54570000}\n"
2170 "{product_name:RE200,product_ver:3.0.0,special_id:55530000}\n",
2172 .soft_ver
= SOFT_VER_DEFAULT
,
2175 {"fs-uboot", 0x00000, 0x20000},
2176 {"firmware", 0x20000, 0x7a0000},
2177 {"partition-table", 0x7c0000, 0x02000},
2178 {"default-mac", 0x7c2000, 0x00020},
2179 {"pin", 0x7c2100, 0x00020},
2180 {"product-info", 0x7c3100, 0x01000},
2181 {"soft-version", 0x7c4200, 0x01000},
2182 {"support-list", 0x7c5200, 0x01000},
2183 {"profile", 0x7c6200, 0x08000},
2184 {"config-info", 0x7ce200, 0x00400},
2185 {"user-config", 0x7d0000, 0x10000},
2186 {"default-config", 0x7e0000, 0x10000},
2187 {"radio", 0x7f0000, 0x10000},
2191 .first_sysupgrade_partition
= "os-image",
2192 .last_sysupgrade_partition
= "file-system"
2195 /** Firmware layout for the RE200 v4 */
2201 "{product_name:RE200,product_ver:4.0.0,special_id:00000000}\n"
2202 "{product_name:RE200,product_ver:4.0.0,special_id:45550000}\n"
2203 "{product_name:RE200,product_ver:4.0.0,special_id:4A500000}\n"
2204 "{product_name:RE200,product_ver:4.0.0,special_id:4B520000}\n"
2205 "{product_name:RE200,product_ver:4.0.0,special_id:43410000}\n"
2206 "{product_name:RE200,product_ver:4.0.0,special_id:41550000}\n"
2207 "{product_name:RE200,product_ver:4.0.0,special_id:42520000}\n"
2208 "{product_name:RE200,product_ver:4.0.0,special_id:55530000}\n"
2209 "{product_name:RE200,product_ver:4.0.0,special_id:41520000}\n"
2210 "{product_name:RE200,product_ver:4.0.0,special_id:52550000}\n"
2211 "{product_name:RE200,product_ver:4.0.0,special_id:54570000}\n"
2212 "{product_name:RE200,product_ver:4.0.0,special_id:45530000}\n"
2213 "{product_name:RE200,product_ver:4.0.0,special_id:49440000}\n"
2214 "{product_name:RE200,product_ver:4.0.0,special_id:45470000}\n",
2216 .soft_ver
= SOFT_VER_TEXT("soft_ver:1.1.0\n"),
2219 {"fs-uboot", 0x00000, 0x20000},
2220 {"firmware", 0x20000, 0x7a0000},
2221 {"partition-table", 0x7c0000, 0x02000},
2222 {"default-mac", 0x7c2000, 0x00020},
2223 {"pin", 0x7c2100, 0x00020},
2224 {"product-info", 0x7c3100, 0x01000},
2225 {"soft-version", 0x7c4200, 0x01000},
2226 {"support-list", 0x7c5200, 0x01000},
2227 {"profile", 0x7c6200, 0x08000},
2228 {"config-info", 0x7ce200, 0x00400},
2229 {"user-config", 0x7d0000, 0x10000},
2230 {"default-config", 0x7e0000, 0x10000},
2231 {"radio", 0x7f0000, 0x10000},
2235 .first_sysupgrade_partition
= "os-image",
2236 .last_sysupgrade_partition
= "file-system"
2239 /** Firmware layout for the RE220 v2 */
2245 "{product_name:RE220,product_ver:2.0.0,special_id:00000000}\n"
2246 "{product_name:RE220,product_ver:2.0.0,special_id:41520000}\n"
2247 "{product_name:RE220,product_ver:2.0.0,special_id:41550000}\n"
2248 "{product_name:RE220,product_ver:2.0.0,special_id:42520000}\n"
2249 "{product_name:RE220,product_ver:2.0.0,special_id:43410000}\n"
2250 "{product_name:RE220,product_ver:2.0.0,special_id:45530000}\n"
2251 "{product_name:RE220,product_ver:2.0.0,special_id:45550000}\n"
2252 "{product_name:RE220,product_ver:2.0.0,special_id:49440000}\n"
2253 "{product_name:RE220,product_ver:2.0.0,special_id:4a500000}\n"
2254 "{product_name:RE220,product_ver:2.0.0,special_id:4b520000}\n"
2255 "{product_name:RE220,product_ver:2.0.0,special_id:52550000}\n"
2256 "{product_name:RE220,product_ver:2.0.0,special_id:54570000}\n"
2257 "{product_name:RE220,product_ver:2.0.0,special_id:55530000}\n",
2259 .soft_ver
= SOFT_VER_DEFAULT
,
2262 {"fs-uboot", 0x00000, 0x20000},
2263 {"firmware", 0x20000, 0x7a0000},
2264 {"partition-table", 0x7c0000, 0x02000},
2265 {"default-mac", 0x7c2000, 0x00020},
2266 {"pin", 0x7c2100, 0x00020},
2267 {"product-info", 0x7c3100, 0x01000},
2268 {"soft-version", 0x7c4200, 0x01000},
2269 {"support-list", 0x7c5200, 0x01000},
2270 {"profile", 0x7c6200, 0x08000},
2271 {"config-info", 0x7ce200, 0x00400},
2272 {"user-config", 0x7d0000, 0x10000},
2273 {"default-config", 0x7e0000, 0x10000},
2274 {"radio", 0x7f0000, 0x10000},
2278 .first_sysupgrade_partition
= "os-image",
2279 .last_sysupgrade_partition
= "file-system"
2282 /** Firmware layout for the RE305 v1 */
2288 "{product_name:RE305,product_ver:1.0.0,special_id:45550000}\n"
2289 "{product_name:RE305,product_ver:1.0.0,special_id:55530000}\n"
2290 "{product_name:RE305,product_ver:1.0.0,special_id:4a500000}\n"
2291 "{product_name:RE305,product_ver:1.0.0,special_id:42520000}\n"
2292 "{product_name:RE305,product_ver:1.0.0,special_id:4b520000}\n"
2293 "{product_name:RE305,product_ver:1.0.0,special_id:41550000}\n"
2294 "{product_name:RE305,product_ver:1.0.0,special_id:43410000}\n",
2296 .soft_ver
= SOFT_VER_DEFAULT
,
2299 {"fs-uboot", 0x00000, 0x20000},
2300 {"firmware", 0x20000, 0x5e0000},
2301 {"partition-table", 0x600000, 0x02000},
2302 {"default-mac", 0x610000, 0x00020},
2303 {"pin", 0x610100, 0x00020},
2304 {"product-info", 0x611100, 0x01000},
2305 {"soft-version", 0x620000, 0x01000},
2306 {"support-list", 0x621000, 0x01000},
2307 {"profile", 0x622000, 0x08000},
2308 {"user-config", 0x630000, 0x10000},
2309 {"default-config", 0x640000, 0x10000},
2310 {"radio", 0x7f0000, 0x10000},
2314 .first_sysupgrade_partition
= "os-image",
2315 .last_sysupgrade_partition
= "file-system"
2318 /** Firmware layout for the RE305 v3 */
2324 "{product_name:RE305,product_ver:3.0.0,special_id:00000000}\n"
2325 "{product_name:RE305,product_ver:3.0.0,special_id:45550000}\n"
2326 "{product_name:RE305,product_ver:3.0.0,special_id:4A500000}\n"
2327 "{product_name:RE305,product_ver:3.0.0,special_id:4B520000}\n"
2328 "{product_name:RE305,product_ver:3.0.0,special_id:41550000}\n"
2329 "{product_name:RE305,product_ver:3.0.0,special_id:42520000}\n"
2330 "{product_name:RE305,product_ver:3.0.0,special_id:55530000}\n"
2331 "{product_name:RE305,product_ver:3.0.0,special_id:45530000}\n"
2332 "{product_name:RE305,product_ver:3.0.0,special_id:41530000}\n"
2333 "{product_name:RE305,product_ver:3.0.0,special_id:43410000}\n"
2334 "{product_name:RE305,product_ver:3.0.0,special_id:52550000}\n",
2336 .soft_ver
= SOFT_VER_TEXT("soft_ver:2.0.0\n"),
2339 {"fs-uboot", 0x00000, 0x20000},
2340 {"firmware", 0x20000, 0x7a0000},
2341 {"partition-table", 0x7c0000, 0x02000},
2342 {"default-mac", 0x7c2000, 0x00020},
2343 {"pin", 0x7c2100, 0x00020},
2344 {"product-info", 0x7c3100, 0x01000},
2345 {"soft-version", 0x7c4200, 0x01000},
2346 {"support-list", 0x7c5200, 0x01000},
2347 {"profile", 0x7c6200, 0x08000},
2348 {"config-info", 0x7ce200, 0x00400},
2349 {"user-config", 0x7d0000, 0x10000},
2350 {"default-config", 0x7e0000, 0x10000},
2351 {"radio", 0x7f0000, 0x10000},
2355 .first_sysupgrade_partition
= "os-image",
2356 .last_sysupgrade_partition
= "file-system"
2359 /** Firmware layout for the RE350 v1 */
2365 "{product_name:RE350,product_ver:1.0.0,special_id:45550000}\n"
2366 "{product_name:RE350,product_ver:1.0.0,special_id:00000000}\n"
2367 "{product_name:RE350,product_ver:1.0.0,special_id:41550000}\n"
2368 "{product_name:RE350,product_ver:1.0.0,special_id:55530000}\n"
2369 "{product_name:RE350,product_ver:1.0.0,special_id:43410000}\n"
2370 "{product_name:RE350,product_ver:1.0.0,special_id:4b520000}\n"
2371 "{product_name:RE350,product_ver:1.0.0,special_id:4a500000}\n",
2373 .soft_ver
= SOFT_VER_DEFAULT
,
2375 /** We're using a dynamic kernel/rootfs split here */
2377 {"fs-uboot", 0x00000, 0x20000},
2378 {"firmware", 0x20000, 0x5e0000},
2379 {"partition-table", 0x600000, 0x02000},
2380 {"default-mac", 0x610000, 0x00020},
2381 {"pin", 0x610100, 0x00020},
2382 {"product-info", 0x611100, 0x01000},
2383 {"soft-version", 0x620000, 0x01000},
2384 {"support-list", 0x621000, 0x01000},
2385 {"profile", 0x622000, 0x08000},
2386 {"user-config", 0x630000, 0x10000},
2387 {"default-config", 0x640000, 0x10000},
2388 {"radio", 0x7f0000, 0x10000},
2392 .first_sysupgrade_partition
= "os-image",
2393 .last_sysupgrade_partition
= "file-system"
2396 /** Firmware layout for the RE350K v1 */
2402 "{product_name:RE350K,product_ver:1.0.0,special_id:00000000,product_region:US}\n",
2404 .soft_ver
= SOFT_VER_DEFAULT
,
2406 /** We're using a dynamic kernel/rootfs split here */
2408 {"fs-uboot", 0x00000, 0x20000},
2409 {"firmware", 0x20000, 0xd70000},
2410 {"partition-table", 0xd90000, 0x02000},
2411 {"default-mac", 0xda0000, 0x00020},
2412 {"pin", 0xda0100, 0x00020},
2413 {"product-info", 0xda1100, 0x01000},
2414 {"soft-version", 0xdb0000, 0x01000},
2415 {"support-list", 0xdb1000, 0x01000},
2416 {"profile", 0xdb2000, 0x08000},
2417 {"user-config", 0xdc0000, 0x10000},
2418 {"default-config", 0xdd0000, 0x10000},
2419 {"device-id", 0xde0000, 0x00108},
2420 {"radio", 0xff0000, 0x10000},
2424 .first_sysupgrade_partition
= "os-image",
2425 .last_sysupgrade_partition
= "file-system"
2428 /** Firmware layout for the RE355 */
2434 "{product_name:RE355,product_ver:1.0.0,special_id:00000000}\r\n"
2435 "{product_name:RE355,product_ver:1.0.0,special_id:55530000}\r\n"
2436 "{product_name:RE355,product_ver:1.0.0,special_id:45550000}\r\n"
2437 "{product_name:RE355,product_ver:1.0.0,special_id:4A500000}\r\n"
2438 "{product_name:RE355,product_ver:1.0.0,special_id:43410000}\r\n"
2439 "{product_name:RE355,product_ver:1.0.0,special_id:41550000}\r\n"
2440 "{product_name:RE355,product_ver:1.0.0,special_id:4B520000}\r\n"
2441 "{product_name:RE355,product_ver:1.0.0,special_id:55534100}\r\n",
2443 .soft_ver
= SOFT_VER_DEFAULT
,
2445 /* We're using a dynamic kernel/rootfs split here */
2447 {"fs-uboot", 0x00000, 0x20000},
2448 {"firmware", 0x20000, 0x5e0000},
2449 {"partition-table", 0x600000, 0x02000},
2450 {"default-mac", 0x610000, 0x00020},
2451 {"pin", 0x610100, 0x00020},
2452 {"product-info", 0x611100, 0x01000},
2453 {"soft-version", 0x620000, 0x01000},
2454 {"support-list", 0x621000, 0x01000},
2455 {"profile", 0x622000, 0x08000},
2456 {"user-config", 0x630000, 0x10000},
2457 {"default-config", 0x640000, 0x10000},
2458 {"radio", 0x7f0000, 0x10000},
2462 .first_sysupgrade_partition
= "os-image",
2463 .last_sysupgrade_partition
= "file-system"
2466 /** Firmware layout for the RE450 */
2472 "{product_name:RE450,product_ver:1.0.0,special_id:00000000}\r\n"
2473 "{product_name:RE450,product_ver:1.0.0,special_id:55530000}\r\n"
2474 "{product_name:RE450,product_ver:1.0.0,special_id:45550000}\r\n"
2475 "{product_name:RE450,product_ver:1.0.0,special_id:4A500000}\r\n"
2476 "{product_name:RE450,product_ver:1.0.0,special_id:43410000}\r\n"
2477 "{product_name:RE450,product_ver:1.0.0,special_id:41550000}\r\n"
2478 "{product_name:RE450,product_ver:1.0.0,special_id:4B520000}\r\n"
2479 "{product_name:RE450,product_ver:1.0.0,special_id:55534100}\r\n",
2481 .soft_ver
= SOFT_VER_DEFAULT
,
2483 /** We're using a dynamic kernel/rootfs split here */
2485 {"fs-uboot", 0x00000, 0x20000},
2486 {"firmware", 0x20000, 0x5e0000},
2487 {"partition-table", 0x600000, 0x02000},
2488 {"default-mac", 0x610000, 0x00020},
2489 {"pin", 0x610100, 0x00020},
2490 {"product-info", 0x611100, 0x01000},
2491 {"soft-version", 0x620000, 0x01000},
2492 {"support-list", 0x621000, 0x01000},
2493 {"profile", 0x622000, 0x08000},
2494 {"user-config", 0x630000, 0x10000},
2495 {"default-config", 0x640000, 0x10000},
2496 {"radio", 0x7f0000, 0x10000},
2500 .first_sysupgrade_partition
= "os-image",
2501 .last_sysupgrade_partition
= "file-system"
2504 /** Firmware layout for the RE450 v2 */
2510 "{product_name:RE450,product_ver:2.0.0,special_id:00000000}\r\n"
2511 "{product_name:RE450,product_ver:2.0.0,special_id:55530000}\r\n"
2512 "{product_name:RE450,product_ver:2.0.0,special_id:45550000}\r\n"
2513 "{product_name:RE450,product_ver:2.0.0,special_id:4A500000}\r\n"
2514 "{product_name:RE450,product_ver:2.0.0,special_id:43410000}\r\n"
2515 "{product_name:RE450,product_ver:2.0.0,special_id:41550000}\r\n"
2516 "{product_name:RE450,product_ver:2.0.0,special_id:41530000}\r\n"
2517 "{product_name:RE450,product_ver:2.0.0,special_id:4B520000}\r\n"
2518 "{product_name:RE450,product_ver:2.0.0,special_id:42520000}\r\n",
2520 .soft_ver
= SOFT_VER_DEFAULT
,
2522 /* We're using a dynamic kernel/rootfs split here */
2524 {"fs-uboot", 0x00000, 0x20000},
2525 {"firmware", 0x20000, 0x5e0000},
2526 {"partition-table", 0x600000, 0x02000},
2527 {"default-mac", 0x610000, 0x00020},
2528 {"pin", 0x610100, 0x00020},
2529 {"product-info", 0x611100, 0x01000},
2530 {"soft-version", 0x620000, 0x01000},
2531 {"support-list", 0x621000, 0x01000},
2532 {"profile", 0x622000, 0x08000},
2533 {"user-config", 0x630000, 0x10000},
2534 {"default-config", 0x640000, 0x10000},
2535 {"radio", 0x7f0000, 0x10000},
2539 .first_sysupgrade_partition
= "os-image",
2540 .last_sysupgrade_partition
= "file-system"
2543 /** Firmware layout for the RE450 v3 */
2549 "{product_name:RE450,product_ver:3.0.0,special_id:00000000}\r\n"
2550 "{product_name:RE450,product_ver:3.0.0,special_id:55530000}\r\n"
2551 "{product_name:RE450,product_ver:3.0.0,special_id:45550000}\r\n"
2552 "{product_name:RE450,product_ver:3.0.0,special_id:4A500000}\r\n"
2553 "{product_name:RE450,product_ver:3.0.0,special_id:43410000}\r\n"
2554 "{product_name:RE450,product_ver:3.0.0,special_id:41550000}\r\n"
2555 "{product_name:RE450,product_ver:3.0.0,special_id:41530000}\r\n"
2556 "{product_name:RE450,product_ver:3.0.0,special_id:4B520000}\r\n"
2557 "{product_name:RE450,product_ver:3.0.0,special_id:42520000}\r\n",
2559 .soft_ver
= SOFT_VER_DEFAULT
,
2561 /* We're using a dynamic kernel/rootfs split here */
2563 {"fs-uboot", 0x00000, 0x20000},
2564 {"default-mac", 0x20000, 0x00020},
2565 {"pin", 0x20020, 0x00020},
2566 {"product-info", 0x21000, 0x01000},
2567 {"partition-table", 0x22000, 0x02000},
2568 {"soft-version", 0x24000, 0x01000},
2569 {"support-list", 0x25000, 0x01000},
2570 {"profile", 0x26000, 0x08000},
2571 {"user-config", 0x2e000, 0x10000},
2572 {"default-config", 0x3e000, 0x10000},
2573 {"config-info", 0x4e000, 0x00400},
2574 {"firmware", 0x50000, 0x7a0000},
2575 {"radio", 0x7f0000, 0x10000},
2579 .first_sysupgrade_partition
= "os-image",
2580 .last_sysupgrade_partition
= "file-system"
2583 /** Firmware layout for the RE455 v1 */
2589 "{product_name:RE455,product_ver:1.0.0,special_id:00000000}\r\n"
2590 "{product_name:RE455,product_ver:1.0.0,special_id:55530000}\r\n"
2591 "{product_name:RE455,product_ver:1.0.0,special_id:45550000}\r\n"
2592 "{product_name:RE455,product_ver:1.0.0,special_id:4A500000}\r\n"
2593 "{product_name:RE455,product_ver:1.0.0,special_id:43410000}\r\n"
2594 "{product_name:RE455,product_ver:1.0.0,special_id:41550000}\r\n"
2595 "{product_name:RE455,product_ver:1.0.0,special_id:41530000}\r\n"
2596 "{product_name:RE455,product_ver:1.0.0,special_id:4B520000}\r\n"
2597 "{product_name:RE455,product_ver:1.0.0,special_id:42520000}\r\n",
2599 .soft_ver
= SOFT_VER_DEFAULT
,
2601 /* We're using a dynamic kernel/rootfs split here */
2603 {"fs-uboot", 0x00000, 0x20000},
2604 {"default-mac", 0x20000, 0x00020},
2605 {"pin", 0x20020, 0x00020},
2606 {"product-info", 0x21000, 0x01000},
2607 {"partition-table", 0x22000, 0x02000},
2608 {"soft-version", 0x24000, 0x01000},
2609 {"support-list", 0x25000, 0x01000},
2610 {"profile", 0x26000, 0x08000},
2611 {"user-config", 0x2e000, 0x10000},
2612 {"default-config", 0x3e000, 0x10000},
2613 {"config-info", 0x4e000, 0x00400},
2614 {"firmware", 0x50000, 0x7a0000},
2615 {"radio", 0x7f0000, 0x10000},
2619 .first_sysupgrade_partition
= "os-image",
2620 .last_sysupgrade_partition
= "file-system"
2623 /** Firmware layout for the RE500 */
2629 "{product_name:RE500,product_ver:1.0.0,special_id:00000000}\r\n"
2630 "{product_name:RE500,product_ver:1.0.0,special_id:55530000}\r\n"
2631 "{product_name:RE500,product_ver:1.0.0,special_id:45550000}\r\n"
2632 "{product_name:RE500,product_ver:1.0.0,special_id:4A500000}\r\n"
2633 "{product_name:RE500,product_ver:1.0.0,special_id:43410000}\r\n"
2634 "{product_name:RE500,product_ver:1.0.0,special_id:41550000}\r\n"
2635 "{product_name:RE500,product_ver:1.0.0,special_id:41530000}\r\n",
2637 .soft_ver
= SOFT_VER_DEFAULT
,
2639 /* We're using a dynamic kernel/rootfs split here */
2641 {"fs-uboot", 0x00000, 0x20000},
2642 {"firmware", 0x20000, 0xde0000},
2643 {"partition-table", 0xe00000, 0x02000},
2644 {"default-mac", 0xe10000, 0x00020},
2645 {"pin", 0xe10100, 0x00020},
2646 {"product-info", 0xe11100, 0x01000},
2647 {"soft-version", 0xe20000, 0x01000},
2648 {"support-list", 0xe21000, 0x01000},
2649 {"profile", 0xe22000, 0x08000},