platform.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #
  2. # Copyright (C) 2011 OpenWrt.org
  3. #
  4. PART_NAME=firmware
  5. REQUIRE_IMAGE_METADATA=1
  6. RAMFS_COPY_BIN='fw_printenv fw_setenv'
  7. RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
  8. redboot_fis_do_upgrade() {
  9. local append
  10. local sysup_file="$1"
  11. local kern_part="$2"
  12. local magic=$(get_magic_word "$sysup_file")
  13. if [ "$magic" = "4349" ]; then
  14. local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
  15. [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
  16. dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
  17. mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
  18. elif [ "$magic" = "7379" ]; then
  19. local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
  20. local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
  21. [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
  22. tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
  23. mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
  24. else
  25. echo "Unknown image, aborting!"
  26. return 1
  27. fi
  28. }
  29. platform_check_image() {
  30. return 0
  31. }
  32. platform_do_upgrade() {
  33. local board=$(board_name)
  34. case "$board" in
  35. adtran,bsap1800-v2|\
  36. adtran,bsap1840)
  37. redboot_fis_do_upgrade "$1" vmlinux_2
  38. ;;
  39. jjplus,ja76pf2)
  40. redboot_fis_do_upgrade "$1" linux
  41. ;;
  42. openmesh,om2p-v4)
  43. PART_NAME="inactive"
  44. platform_do_upgrade_openmesh "$1"
  45. ;;
  46. plasmacloud,pa300|\
  47. plasmacloud,pa300e)
  48. PART_NAME="inactive"
  49. platform_do_upgrade_dualboot_datachk "$1"
  50. ;;
  51. ubnt,routerstation|\
  52. ubnt,routerstation-pro)
  53. redboot_fis_do_upgrade "$1" kernel
  54. ;;
  55. *)
  56. default_do_upgrade "$1"
  57. ;;
  58. esac
  59. }