platform.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. REQUIRE_IMAGE_METADATA=1
  2. redmi_ax6000_initial_setup()
  3. {
  4. # initialize UBI and setup uboot-env if it's running on initramfs
  5. [ "$(rootfs_type)" = "tmpfs" ] || return 0
  6. local mtdnum="$( find_mtd_index ubi )"
  7. if [ ! "$mtdnum" ]; then
  8. echo "unable to find mtd partition ubi"
  9. return 1
  10. fi
  11. local kern_mtdnum="$( find_mtd_index ubi_kernel )"
  12. if [ ! "$kern_mtdnum" ]; then
  13. echo "unable to find mtd partition ubi_kernel"
  14. return 1
  15. fi
  16. ubidetach -m "$mtdnum"
  17. ubiformat /dev/mtd$mtdnum -y
  18. ubidetach -m "$kern_mtdnum"
  19. ubiformat /dev/mtd$kern_mtdnum -y
  20. if ! fw_printenv -n flag_try_sys2_failed &>/dev/null; then
  21. echo "failed to access u-boot-env. skip env setup."
  22. return 0
  23. fi
  24. fw_setenv boot_wait on
  25. fw_setenv uart_en 1
  26. fw_setenv flag_boot_rootfs 0
  27. fw_setenv flag_last_success 1
  28. fw_setenv flag_boot_success 1
  29. fw_setenv flag_try_sys1_failed 8
  30. fw_setenv flag_try_sys2_failed 8
  31. fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)"
  32. }
  33. platform_do_upgrade() {
  34. local board=$(board_name)
  35. case "$board" in
  36. asus,tuf-ax4200)
  37. CI_UBIPART="UBI_DEV"
  38. CI_KERNPART="linux"
  39. nand_do_upgrade "$1"
  40. ;;
  41. bananapi,bpi-r3)
  42. local rootdev="$(cmdline_get_var root)"
  43. rootdev="${rootdev##*/}"
  44. rootdev="${rootdev%p[0-9]*}"
  45. case "$rootdev" in
  46. mmc*)
  47. CI_ROOTDEV="$rootdev"
  48. CI_KERNPART="production"
  49. emmc_do_upgrade "$1"
  50. ;;
  51. mtdblock*)
  52. PART_NAME="fit"
  53. default_do_upgrade "$1"
  54. ;;
  55. ubiblock*)
  56. CI_KERNPART="fit"
  57. nand_do_upgrade "$1"
  58. ;;
  59. esac
  60. ;;
  61. cudy,wr3000-v1)
  62. default_do_upgrade "$1"
  63. ;;
  64. mercusys,mr90x-v1)
  65. CI_UBIPART="ubi0"
  66. nand_do_upgrade "$1"
  67. ;;
  68. h3c,magic-nx30-pro|\
  69. qihoo,360t7|\
  70. tplink,tl-xdr4288|\
  71. tplink,tl-xdr6086|\
  72. tplink,tl-xdr6088|\
  73. xiaomi,redmi-router-ax6000-ubootmod)
  74. CI_KERNPART="fit"
  75. nand_do_upgrade "$1"
  76. ;;
  77. xiaomi,redmi-router-ax6000-stock)
  78. CI_KERN_UBIPART=ubi_kernel
  79. CI_ROOT_UBIPART=ubi
  80. nand_do_upgrade "$1"
  81. ;;
  82. *)
  83. nand_do_upgrade "$1"
  84. ;;
  85. esac
  86. }
  87. PART_NAME=firmware
  88. platform_check_image() {
  89. local board=$(board_name)
  90. local magic="$(get_magic_long "$1")"
  91. [ "$#" -gt 1 ] && return 1
  92. case "$board" in
  93. bananapi,bpi-r3)
  94. [ "$magic" != "d00dfeed" ] && {
  95. echo "Invalid image type."
  96. return 1
  97. }
  98. return 0
  99. ;;
  100. *)
  101. nand_do_platform_check "$board" "$1"
  102. return $?
  103. ;;
  104. esac
  105. return 0
  106. }
  107. platform_copy_config() {
  108. case "$(board_name)" in
  109. bananapi,bpi-r3)
  110. case "$(cmdline_get_var root)" in
  111. /dev/mmc*)
  112. emmc_copy_config
  113. ;;
  114. esac
  115. ;;
  116. esac
  117. }
  118. platform_pre_upgrade() {
  119. local board=$(board_name)
  120. case "$board" in
  121. xiaomi,redmi-router-ax6000-stock)
  122. redmi_ax6000_initial_setup
  123. ;;
  124. esac
  125. }