platform.sh 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. #
  2. # Copyright (C) 2010 OpenWrt.org
  3. #
  4. PART_NAME=firmware
  5. REQUIRE_IMAGE_METADATA=1
  6. platform_check_image() {
  7. local board=$(board_name)
  8. local magic="$(get_magic_long "$1")"
  9. [ "$#" -gt 1 ] && return 1
  10. case "$board" in
  11. 3g150b|\
  12. 3g300m|\
  13. a5-v11|\
  14. ai-br100|\
  15. air3gii|\
  16. alfa-network,ac1200rm|\
  17. alfa-network,awusfree1|\
  18. all0256n-4M|\
  19. all0256n-8M|\
  20. all5002|\
  21. all5003|\
  22. mediatek,ap-mt7621a-v60|\
  23. ar725w|\
  24. asl26555-8M|\
  25. asl26555-16M|\
  26. awapn2403|\
  27. awm002-evb-4M|\
  28. awm002-evb-8M|\
  29. bc2|\
  30. bdcom,wap2100-sk|\
  31. bocco|\
  32. broadway|\
  33. c108|\
  34. carambola|\
  35. cf-wr800n|\
  36. cs-qr10|\
  37. d105|\
  38. d240|\
  39. dap-1350|\
  40. db-wrt01|\
  41. dcs-930|\
  42. dcs-930l-b1|\
  43. dir-300-b1|\
  44. dir-300-b7|\
  45. dir-320-b1|\
  46. dir-600-b1|\
  47. dir-615-d|\
  48. dir-615-h1|\
  49. dir-620-a1|\
  50. dir-620-d1|\
  51. dir-810l|\
  52. duzun-dm06|\
  53. e1700|\
  54. elecom,wrc-1167ghbk2-s|\
  55. elecom,wrc-2533gst|\
  56. elecom,wrc-1900gst|\
  57. esr-9753|\
  58. ew1200|\
  59. ex2700|\
  60. ex3700|\
  61. f7c027|\
  62. firewrt|\
  63. fonera20n|\
  64. freestation5|\
  65. gnubee,gb-pc1|\
  66. gnubee,gb-pc2|\
  67. gl-mt300a|\
  68. gl-mt300n|\
  69. gl-mt750|\
  70. gl-mt300n-v2|\
  71. hc5*61|\
  72. hc5661a|\
  73. hg255d|\
  74. hiwifi,hc5861b|\
  75. hlk-rm04|\
  76. hpm|\
  77. ht-tm02|\
  78. hw550-3g|\
  79. iodata,wn-ax1167gr|\
  80. iodata,wn-gx300gr|\
  81. ip2202|\
  82. jhr-n805r|\
  83. jhr-n825r|\
  84. jhr-n926r|\
  85. k2p|\
  86. kimax,u35wf|\
  87. kn|\
  88. kn_rc|\
  89. kn_rf|\
  90. kng_rc|\
  91. linkits7688|\
  92. m2m|\
  93. m3|\
  94. m4-4M|\
  95. m4-8M|\
  96. mac1200rv2|\
  97. microwrt|\
  98. miniembplug|\
  99. miniembwifi|\
  100. miwifi-mini|\
  101. miwifi-nano|\
  102. mlw221|\
  103. mlwg2|\
  104. mofi3500-3gn|\
  105. mpr-a1|\
  106. mpr-a2|\
  107. mr-102n|\
  108. mt7628|\
  109. mtc,wr1201|\
  110. mzk-750dhp|\
  111. mzk-dp150n|\
  112. mzk-ex300np|\
  113. mzk-ex750np|\
  114. mzk-w300nh2|\
  115. mzk-wdpr|\
  116. nbg-419n|\
  117. nbg-419n2|\
  118. newifi-d1|\
  119. d-team,newifi-d2|\
  120. nixcore-x1-8M|\
  121. nixcore-x1-16M|\
  122. nw718|\
  123. omega2|\
  124. omega2p|\
  125. oy-0001|\
  126. pbr-d1|\
  127. pbr-m1|\
  128. phicomm,k2g|\
  129. psg1208|\
  130. psg1218a|\
  131. psg1218b|\
  132. psr-680w|\
  133. px-4885-4M|\
  134. px-4885-8M|\
  135. netgear,r6120|\
  136. rb750gr3|\
  137. re6500|\
  138. rp-n53|\
  139. rt5350f-olinuxino|\
  140. rt5350f-olinuxino-evb|\
  141. rt-ac51u|\
  142. rt-g32-b1|\
  143. rt-n10-plus|\
  144. rt-n12p|\
  145. rt-n13u|\
  146. rt-n14u|\
  147. rt-n15|\
  148. rt-n56u|\
  149. rut5xx|\
  150. sap-g3200u3|\
  151. sk-wb8|\
  152. skylab,skw92a|\
  153. sl-r7205|\
  154. tama,w06|\
  155. tew-638apb-v2|\
  156. tew-691gr|\
  157. tew-692gr|\
  158. tew-714tru|\
  159. timecloud|\
  160. tiny-ac|\
  161. u25awf-h1|\
  162. unielec,u7621-06-256m-16m|\
  163. unielec,u7621-06-512m-64m|\
  164. u7628-01-128M-16M|\
  165. ur-326n4g|\
  166. ur-336un|\
  167. v22rw-2x2|\
  168. vonets,var11n-300|\
  169. vocore-8M|\
  170. vocore-16M|\
  171. vocore2|\
  172. vocore2lite|\
  173. vr500|\
  174. w150m|\
  175. w2914nsv2|\
  176. w306r-v20|\
  177. w502u|\
  178. ravpower,wd03|\
  179. wavlink,wl-wn570ha1|\
  180. wf-2881|\
  181. whr-1166d|\
  182. whr-300hp2|\
  183. whr-600d|\
  184. whr-g300n|\
  185. widora,neo-16m|\
  186. widora,neo-32m|\
  187. mqmaker,witi-256m|\
  188. mqmaker,witi-512m|\
  189. we1026-5g-16m|\
  190. wizfi630a|\
  191. wl-330n|\
  192. wl-330n3g|\
  193. wl-351|\
  194. wl-wn575a3|\
  195. wli-tx4-ag300n|\
  196. wlr-6000|\
  197. wmdr-143n|\
  198. wmr-300|\
  199. wn3000rpv3|\
  200. wnce2001|\
  201. wndr3700v5|\
  202. wr512-3gn-4M|\
  203. wr512-3gn-8M|\
  204. wr6202|\
  205. wrh-300cr|\
  206. wrtnode|\
  207. wrtnode2r |\
  208. wrtnode2p |\
  209. wsr-600|\
  210. wt1520-4M|\
  211. wt1520-8M|\
  212. wt3020-4M|\
  213. wt3020-8M|\
  214. wzr-agl300nh|\
  215. x5|\
  216. x8|\
  217. y1|\
  218. y1s|\
  219. youhua,wr1200js|\
  220. zbt-ape522ii|\
  221. zbt-cpe102|\
  222. zbt-wa05|\
  223. zbtlink,zbt-we1226|\
  224. zbt-we1326|\
  225. zbt-we2026|\
  226. zbtlink,zbt-we3526|\
  227. zbt-we826-16M|\
  228. zbt-we826-32M|\
  229. zbt-wg2626|\
  230. zbt-wg3526-16M|\
  231. zbt-wg3526-32M|\
  232. zbt-wr8305rt|\
  233. zorlik,zl5900v2|\
  234. zte-q7|\
  235. zyxel,keenetic-extra-ii|\
  236. youku-yk1)
  237. [ "$magic" != "27051956" ] && {
  238. echo "Invalid image type."
  239. return 1
  240. }
  241. return 0
  242. ;;
  243. 3g-6200n|\
  244. 3g-6200nl|\
  245. br-6475nd|\
  246. edimax,br-6478ac-v2)
  247. [ "$magic" != "43535953" ] && {
  248. echo "Invalid image type."
  249. return 1
  250. }
  251. return 0
  252. ;;
  253. ar670w)
  254. [ "$magic" != "6d000080" ] && {
  255. echo "Invalid image type."
  256. return 1
  257. }
  258. return 0
  259. ;;
  260. c20i|\
  261. c50|\
  262. mr200|\
  263. tplink,c2-v1|\
  264. tplink,c20-v1|\
  265. tplink,c20-v4|\
  266. tplink,c50-v3|\
  267. tplink,tl-mr3020-v3|\
  268. tplink,tl-mr3420-v5|\
  269. tplink,tl-wa801nd-v5|\
  270. tplink,tl-wr842n-v5|\
  271. tplink,tl-wr902ac-v3|\
  272. tl-wr840n-v4|\
  273. tl-wr840n-v5|\
  274. tl-wr841n-v13)
  275. [ "$magic" != "03000000" ] && {
  276. echo "Invalid image type."
  277. return 1
  278. }
  279. return 0
  280. ;;
  281. cy-swr1100|\
  282. dch-m225|\
  283. dir-610-a1|\
  284. dir-645|\
  285. dir-860l-b1)
  286. [ "$magic" != "5ea3a417" ] && {
  287. echo "Invalid image type."
  288. return 1
  289. }
  290. return 0
  291. ;;
  292. dlink,dwr-116-a1|\
  293. dlink,dwr-118-a1|\
  294. dlink,dwr-118-a2|\
  295. dlink,dwr-921-c1|\
  296. dwr-512-b|\
  297. lava,lr-25g001)
  298. [ "$magic" != "0404242b" ] && {
  299. echo "Invalid image type."
  300. return 1
  301. }
  302. return 0
  303. ;;
  304. hc5962|\
  305. mir3g|\
  306. r6220|\
  307. ubnt-erx|\
  308. ubnt-erx-sfp)
  309. nand_do_platform_check "$board" "$1"
  310. return $?;
  311. ;;
  312. mikrotik,rbm11g|\
  313. mikrotik,rbm33g|\
  314. re350-v1)
  315. [ "$magic" != "01000000" ] && {
  316. echo "Invalid image type."
  317. return 1
  318. }
  319. return 0
  320. ;;
  321. wcr-1166ds|\
  322. wsr-1166)
  323. [ "$magic" != "48445230" ] && {
  324. echo "Invalid image type."
  325. return 1
  326. }
  327. return 0
  328. ;;
  329. esac
  330. echo "Sysupgrade is not yet supported on $board."
  331. return 1
  332. }
  333. platform_pre_upgrade() {
  334. local board=$(board_name)
  335. case "$board" in
  336. mikrotik,rbm11g|\
  337. mikrotik,rbm33g)
  338. [ -z "$(rootfs_type)" ] && mtd erase firmware
  339. ;;
  340. esac
  341. }
  342. platform_nand_pre_upgrade() {
  343. local board=$(board_name)
  344. case "$board" in
  345. ubnt-erx|\
  346. ubnt-erx-sfp)
  347. platform_upgrade_ubnt_erx "$ARGV"
  348. ;;
  349. esac
  350. }
  351. platform_do_upgrade() {
  352. local board=$(board_name)
  353. case "$board" in
  354. hc5962|\
  355. mir3g|\
  356. r6220|\
  357. ubnt-erx|\
  358. ubnt-erx-sfp)
  359. nand_do_upgrade "$ARGV"
  360. ;;
  361. *)
  362. default_do_upgrade "$ARGV"
  363. ;;
  364. esac
  365. }