platform.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. bananapi,bpi-r3)
  37. case "$(cmdline_get_var root)" in
  38. /dev/mmc*)
  39. CI_ROOTDEV="$rootdev"
  40. CI_KERNPART="production"
  41. emmc_do_upgrade "$1"
  42. ;;
  43. /dev/mtdblock*)
  44. PART_NAME="fit"
  45. default_do_upgrade "$1"
  46. ;;
  47. /dev/ubiblock*)
  48. CI_KERNPART="fit"
  49. nand_do_upgrade "$1"
  50. ;;
  51. esac
  52. ;;
  53. xiaomi,redmi-router-ax6000-stock)
  54. CI_KERN_UBIPART=ubi_kernel
  55. CI_ROOT_UBIPART=ubi
  56. nand_do_upgrade "$1"
  57. ;;
  58. *)
  59. nand_do_upgrade "$1"
  60. ;;
  61. esac
  62. }
  63. PART_NAME=firmware
  64. platform_check_image() {
  65. local board=$(board_name)
  66. local magic="$(get_magic_long "$1")"
  67. [ "$#" -gt 1 ] && return 1
  68. case "$board" in
  69. bananapi,bpi-r3)
  70. [ "$magic" != "d00dfeed" ] && {
  71. echo "Invalid image type."
  72. return 1
  73. }
  74. return 0
  75. ;;
  76. *)
  77. nand_do_platform_check "$board" "$1"
  78. return 0
  79. ;;
  80. esac
  81. return 0
  82. }
  83. platform_copy_config() {
  84. case "$(board_name)" in
  85. bananapi,bpi-r3)
  86. case "$(cmdline_get_var root)" in
  87. /dev/mmc*)
  88. emmc_copy_config
  89. ;;
  90. esac
  91. ;;
  92. esac
  93. }
  94. platform_pre_upgrade() {
  95. local board=$(board_name)
  96. case "$board" in
  97. xiaomi,redmi-router-ax6000-stock)
  98. redmi_ax6000_initial_setup
  99. ;;
  100. esac
  101. }