platform.sh 3.9 KB

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