platform.sh 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  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. all0239-3g|\
  16. all0256n-4M|\
  17. all0256n-8M|\
  18. all5002|\
  19. all5003|\
  20. ar725w|\
  21. asl26555-8M|\
  22. asl26555-16M|\
  23. awapn2403|\
  24. awm002-evb-4M|\
  25. awm002-evb-8M|\
  26. bc2|\
  27. broadway|\
  28. carambola|\
  29. cf-wr800n|\
  30. cs-qr10|\
  31. d105|\
  32. d240|\
  33. dap-1350|\
  34. db-wrt01|\
  35. dcs-930|\
  36. dcs-930l-b1|\
  37. dir-300-b1|\
  38. dir-300-b7|\
  39. dir-320-b1|\
  40. dir-600-b1|\
  41. dir-615-d|\
  42. dir-615-h1|\
  43. dir-620-a1|\
  44. dir-620-d1|\
  45. dir-810l|\
  46. duzun-dm06|\
  47. dwr-512-b|\
  48. e1700|\
  49. esr-9753|\
  50. ew1200|\
  51. ex2700|\
  52. ex3700|\
  53. f7c027|\
  54. firewrt|\
  55. fonera20n|\
  56. freestation5|\
  57. gb-pc1|\
  58. gl-mt300a|\
  59. gl-mt300n|\
  60. gl-mt750|\
  61. gl-mt300n-v2|\
  62. hc5*61|\
  63. hc5661a|\
  64. hg255d|\
  65. hlk-rm04|\
  66. hpm|\
  67. ht-tm02|\
  68. hw550-3g|\
  69. ip2202|\
  70. jhr-n805r|\
  71. jhr-n825r|\
  72. jhr-n926r|\
  73. k2p|\
  74. kn|\
  75. kn_rc|\
  76. kn_rf|\
  77. kng_rc|\
  78. linkits7688|\
  79. linkits7688d|\
  80. m2m|\
  81. m3|\
  82. m4-4M|\
  83. m4-8M|\
  84. mac1200rv2|\
  85. microwrt|\
  86. miniembplug|\
  87. miniembwifi|\
  88. miwifi-mini|\
  89. miwifi-nano|\
  90. mlw221|\
  91. mlwg2|\
  92. mofi3500-3gn|\
  93. mpr-a1|\
  94. mpr-a2|\
  95. mr-102n|\
  96. mt7628|\
  97. mzk-750dhp|\
  98. mzk-dp150n|\
  99. mzk-ex300np|\
  100. mzk-ex750np|\
  101. mzk-w300nh2|\
  102. mzk-wdpr|\
  103. nbg-419n|\
  104. nbg-419n2|\
  105. newifi-d1|\
  106. nixcore-x1-8M|\
  107. nixcore-x1-16M|\
  108. nw718|\
  109. omega2|\
  110. omega2p|\
  111. oy-0001|\
  112. pbr-d1|\
  113. pbr-m1|\
  114. psg1208|\
  115. psg1218a|\
  116. psg1218b|\
  117. psr-680w|\
  118. px-4885-4M|\
  119. px-4885-8M|\
  120. rb750gr3|\
  121. re6500|\
  122. rp-n53|\
  123. rt5350f-olinuxino|\
  124. rt5350f-olinuxino-evb|\
  125. rt-ac51u|\
  126. rt-g32-b1|\
  127. rt-n10-plus|\
  128. rt-n13u|\
  129. rt-n14u|\
  130. rt-n15|\
  131. rt-n56u|\
  132. rut5xx|\
  133. sap-g3200u3|\
  134. sk-wb8|\
  135. sl-r7205|\
  136. tew-638apb-v2|\
  137. tew-691gr|\
  138. tew-692gr|\
  139. tew-714tru|\
  140. timecloud|\
  141. tiny-ac|\
  142. ur-326n4g|\
  143. ur-336un|\
  144. v22rw-2x2|\
  145. vocore-8M|\
  146. vocore-16M|\
  147. vocore2|\
  148. vocore2lite|\
  149. vr500|\
  150. w150m|\
  151. w2914nsv2|\
  152. w306r-v20|\
  153. w502u|\
  154. wf-2881|\
  155. whr-1166d|\
  156. whr-300hp2|\
  157. whr-600d|\
  158. whr-g300n|\
  159. widora-neo|\
  160. witi|\
  161. wizfi630a|\
  162. wl-330n|\
  163. wl-330n3g|\
  164. wl-341v3|\
  165. wl-351|\
  166. wl-wn575a3|\
  167. wli-tx4-ag300n|\
  168. wlr-6000|\
  169. wmdr-143n|\
  170. wmr-300|\
  171. wn3000rpv3|\
  172. wnce2001|\
  173. wndr3700v5|\
  174. wr512-3gn-4M|\
  175. wr512-3gn-8M|\
  176. wr6202|\
  177. wrh-300cr|\
  178. wrtnode|\
  179. wrtnode2r |\
  180. wrtnode2p |\
  181. wsr-600|\
  182. wt1520-4M|\
  183. wt1520-8M|\
  184. wt3020-4M|\
  185. wt3020-8M|\
  186. wzr-agl300nh|\
  187. x5|\
  188. x8|\
  189. y1|\
  190. y1s|\
  191. zbt-ape522ii|\
  192. zbt-cpe102|\
  193. zbt-wa05|\
  194. zbt-we1326|\
  195. zbt-we2026|\
  196. zbt-we826-16M|\
  197. zbt-we826-32M|\
  198. zbt-wg2626|\
  199. zbt-wg3526-16M|\
  200. zbt-wg3526-32M|\
  201. zbt-wr8305rt|\
  202. zte-q7|\
  203. youku-yk1)
  204. [ "$magic" != "27051956" ] && {
  205. echo "Invalid image type."
  206. return 1
  207. }
  208. return 0
  209. ;;
  210. 3g-6200n|\
  211. 3g-6200nl|\
  212. br-6475nd)
  213. [ "$magic" != "43535953" ] && {
  214. echo "Invalid image type."
  215. return 1
  216. }
  217. return 0
  218. ;;
  219. ar670w)
  220. [ "$magic" != "6d000080" ] && {
  221. echo "Invalid image type."
  222. return 1
  223. }
  224. return 0
  225. ;;
  226. c20i|\
  227. c50|\
  228. mr200|\
  229. tl-wr840n-v4|\
  230. tl-wr841n-v13)
  231. [ "$magic" != "03000000" ] && {
  232. echo "Invalid image type."
  233. return 1
  234. }
  235. return 0
  236. ;;
  237. cy-swr1100|\
  238. dch-m225|\
  239. dir-610-a1|\
  240. dir-645|\
  241. dir-860l-b1)
  242. [ "$magic" != "5ea3a417" ] && {
  243. echo "Invalid image type."
  244. return 1
  245. }
  246. return 0
  247. ;;
  248. hc5962|\
  249. r6220)
  250. # these boards use metadata images
  251. return 0
  252. ;;
  253. re350-v1)
  254. [ "$magic" != "01000000" ] && {
  255. echo "Invalid image type."
  256. return 1
  257. }
  258. return 0
  259. ;;
  260. ubnt-erx|\
  261. ubnt-erx-sfp)
  262. nand_do_platform_check "$board" "$1"
  263. return $?;
  264. ;;
  265. wcr-1166ds|\
  266. wsr-1166)
  267. [ "$magic" != "48445230" ] && {
  268. echo "Invalid image type."
  269. return 1
  270. }
  271. return 0
  272. ;;
  273. esac
  274. echo "Sysupgrade is not yet supported on $board."
  275. return 1
  276. }
  277. platform_nand_pre_upgrade() {
  278. local board=$(board_name)
  279. case "$board" in
  280. ubnt-erx|\
  281. ubnt-erx-sfp)
  282. platform_upgrade_ubnt_erx "$ARGV"
  283. ;;
  284. esac
  285. }
  286. platform_do_upgrade() {
  287. local board=$(board_name)
  288. case "$board" in
  289. hc5962|\
  290. r6220|\
  291. ubnt-erx|\
  292. ubnt-erx-sfp)
  293. nand_do_upgrade "$ARGV"
  294. ;;
  295. *)
  296. default_do_upgrade "$ARGV"
  297. ;;
  298. esac
  299. }
  300. disable_watchdog() {
  301. killall watchdog
  302. ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
  303. echo 'Could not disable watchdog'
  304. return 1
  305. }
  306. }
  307. blink_led() {
  308. . /etc/diag.sh; set_state upgrade
  309. }
  310. append sysupgrade_pre_upgrade disable_watchdog
  311. append sysupgrade_pre_upgrade blink_led