platform.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. buffalo,wxr-5950ax12)
  38. CI_KERN_UBIPART="rootfs"
  39. CI_ROOT_UBIPART="user_property"
  40. buffalo_upgrade_prepare
  41. nand_do_flash_file "$1" || nand_do_upgrade_failed
  42. nand_do_restore_config || nand_do_upgrade_failed
  43. buffalo_upgrade_optvol
  44. ;;
  45. dynalink,dl-wrx36)
  46. nand_do_upgrade "$1"
  47. ;;
  48. edgecore,eap102)
  49. active="$(fw_printenv -n active)"
  50. if [ "$active" -eq "1" ]; then
  51. CI_UBIPART="rootfs2"
  52. else
  53. CI_UBIPART="rootfs1"
  54. fi
  55. # force altbootcmd which handles partition change in u-boot
  56. fw_setenv bootcount 3
  57. fw_setenv upgrade_available 1
  58. nand_do_upgrade "$1"
  59. ;;
  60. compex,wpq873|\
  61. edimax,cax1800|\
  62. netgear,wax218)
  63. nand_do_upgrade "$1"
  64. ;;
  65. prpl,haze|\
  66. qnap,301w)
  67. kernelname="0:HLOS"
  68. rootfsname="rootfs"
  69. mmc_do_upgrade "$1"
  70. ;;
  71. zyxel,nbg7815)
  72. local config_mtdnum="$(find_mtd_index 0:bootconfig)"
  73. [ -z "$config_mtdnum" ] && reboot
  74. part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
  75. if [ "$part_num" -eq "0" ]; then
  76. kernelname="0:HLOS"
  77. rootfsname="rootfs"
  78. mmc_do_upgrade "$1"
  79. else
  80. kernelname="0:HLOS_1"
  81. rootfsname="rootfs_1"
  82. mmc_do_upgrade "$1"
  83. fi
  84. ;;
  85. redmi,ax6|\
  86. xiaomi,ax3600|\
  87. xiaomi,ax9000)
  88. # Make sure that UART is enabled
  89. fw_setenv boot_wait on
  90. fw_setenv uart_en 1
  91. # Enforce single partition.
  92. fw_setenv flag_boot_rootfs 0
  93. fw_setenv flag_last_success 0
  94. fw_setenv flag_boot_success 1
  95. fw_setenv flag_try_sys1_failed 8
  96. fw_setenv flag_try_sys2_failed 8
  97. # Kernel and rootfs are placed in 2 different UBI
  98. CI_KERN_UBIPART="ubi_kernel"
  99. CI_ROOT_UBIPART="rootfs"
  100. nand_do_upgrade "$1"
  101. ;;
  102. *)
  103. default_do_upgrade "$1"
  104. ;;
  105. esac
  106. }