platform.sh 4.1 KB

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