platform.sh 5.0 KB

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