platform.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. PART_NAME=firmware
  2. REQUIRE_IMAGE_METADATA=1
  3. RAMFS_COPY_BIN='fw_printenv fw_setenv head'
  4. RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
  5. xiaomi_initramfs_prepare() {
  6. # Wipe UBI if running initramfs
  7. [ "$(rootfs_type)" = "tmpfs" ] || return 0
  8. local rootfs_mtdnum="$( find_mtd_index rootfs )"
  9. if [ ! "$rootfs_mtdnum" ]; then
  10. echo "unable to find mtd partition rootfs"
  11. return 1
  12. fi
  13. local kern_mtdnum="$( find_mtd_index ubi_kernel )"
  14. if [ ! "$kern_mtdnum" ]; then
  15. echo "unable to find mtd partition ubi_kernel"
  16. return 1
  17. fi
  18. ubidetach -m "$rootfs_mtdnum"
  19. ubiformat /dev/mtd$rootfs_mtdnum -y
  20. ubidetach -m "$kern_mtdnum"
  21. ubiformat /dev/mtd$kern_mtdnum -y
  22. }
  23. platform_check_image() {
  24. return 0;
  25. }
  26. platform_pre_upgrade() {
  27. case "$(board_name)" in
  28. redmi,ax6|\
  29. xiaomi,ax3600|\
  30. xiaomi,ax9000)
  31. xiaomi_initramfs_prepare
  32. ;;
  33. esac
  34. }
  35. platform_do_upgrade() {
  36. case "$(board_name)" in
  37. arcadyan,aw1000|\
  38. cmcc,rm2-6|\
  39. compex,wpq873|\
  40. dynalink,dl-wrx36|\
  41. edimax,cax1800|\
  42. netgear,rax120v2|\
  43. netgear,sxr80|\
  44. netgear,sxs80|\
  45. netgear,wax218|\
  46. netgear,wax620|\
  47. netgear,wax630|\
  48. zbtlink,zbt-z800ax)
  49. nand_do_upgrade "$1"
  50. ;;
  51. buffalo,wxr-5950ax12)
  52. CI_KERN_UBIPART="rootfs"
  53. CI_ROOT_UBIPART="user_property"
  54. buffalo_upgrade_prepare
  55. nand_do_flash_file "$1" || nand_do_upgrade_failed
  56. nand_do_restore_config || nand_do_upgrade_failed
  57. buffalo_upgrade_optvol
  58. ;;
  59. edgecore,eap102)
  60. active="$(fw_printenv -n active)"
  61. if [ "$active" -eq "1" ]; then
  62. CI_UBIPART="rootfs2"
  63. else
  64. CI_UBIPART="rootfs1"
  65. fi
  66. # force altbootcmd which handles partition change in u-boot
  67. fw_setenv bootcount 3
  68. fw_setenv upgrade_available 1
  69. nand_do_upgrade "$1"
  70. ;;
  71. linksys,mx4200v1|\
  72. linksys,mx4200v2|\
  73. linksys,mx5300|\
  74. linksys,mx8500)
  75. boot_part="$(fw_printenv -n boot_part)"
  76. if [ "$boot_part" -eq "1" ]; then
  77. fw_setenv boot_part 2
  78. CI_KERNPART="alt_kernel"
  79. CI_UBIPART="alt_rootfs"
  80. else
  81. fw_setenv boot_part 1
  82. CI_UBIPART="rootfs"
  83. fi
  84. fw_setenv boot_part_ready 3
  85. fw_setenv auto_recovery yes
  86. nand_do_upgrade "$1"
  87. ;;
  88. prpl,haze|\
  89. qnap,301w|\
  90. spectrum,sax1v1k)
  91. kernelname="0:HLOS"
  92. rootfsname="rootfs"
  93. mmc_do_upgrade "$1"
  94. ;;
  95. redmi,ax6|\
  96. xiaomi,ax3600|\
  97. xiaomi,ax9000)
  98. # Make sure that UART is enabled
  99. fw_setenv boot_wait on
  100. fw_setenv uart_en 1
  101. # Enforce single partition.
  102. fw_setenv flag_boot_rootfs 0
  103. fw_setenv flag_last_success 0
  104. fw_setenv flag_boot_success 1
  105. fw_setenv flag_try_sys1_failed 8
  106. fw_setenv flag_try_sys2_failed 8
  107. # Kernel and rootfs are placed in 2 different UBI
  108. CI_KERN_UBIPART="ubi_kernel"
  109. CI_ROOT_UBIPART="rootfs"
  110. nand_do_upgrade "$1"
  111. ;;
  112. yuncore,ax880)
  113. active="$(fw_printenv -n active)"
  114. if [ "$active" -eq "1" ]; then
  115. CI_UBIPART="rootfs_1"
  116. else
  117. CI_UBIPART="rootfs"
  118. fi
  119. # force altbootcmd which handles partition change in u-boot
  120. fw_setenv bootcount 3
  121. fw_setenv upgrade_available 1
  122. nand_do_upgrade "$1"
  123. ;;
  124. zte,mf269)
  125. CI_KERN_UBIPART="ubi_kernel"
  126. CI_ROOT_UBIPART="rootfs"
  127. nand_do_upgrade "$1"
  128. ;;
  129. zyxel,nbg7815)
  130. local config_mtdnum="$(find_mtd_index 0:bootconfig)"
  131. [ -z "$config_mtdnum" ] && reboot
  132. part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
  133. if [ "$part_num" -eq "0" ]; then
  134. kernelname="0:HLOS"
  135. rootfsname="rootfs"
  136. mmc_do_upgrade "$1"
  137. else
  138. kernelname="0:HLOS_1"
  139. rootfsname="rootfs_1"
  140. mmc_do_upgrade "$1"
  141. fi
  142. ;;
  143. *)
  144. default_do_upgrade "$1"
  145. ;;
  146. esac
  147. }