dfu_gadget_test.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #! /bin/bash
  2. # Copyright (C) 2014 Samsung Electronics
  3. # Lukasz Majewski <l.majewski@samsung.com>
  4. #
  5. # Script fixes, enhancements and testing:
  6. # Stephen Warren <swarren@nvidia.com>
  7. #
  8. # DFU operation test script
  9. #
  10. # SPDX-License-Identifier: GPL-2.0+
  11. set -e # any command return if not equal to zero
  12. clear
  13. COLOUR_RED="\33[31m"
  14. COLOUR_GREEN="\33[32m"
  15. COLOUR_DEFAULT="\33[0m"
  16. DIR=./
  17. SUFFIX=img
  18. RCV_DIR=rcv/
  19. LOG_FILE=./log/log-`date +%d-%m-%Y_%H-%M-%S`
  20. cd `dirname $0`
  21. ./dfu_gadget_test_init.sh
  22. cleanup () {
  23. rm -rf $DIR$RCV_DIR
  24. }
  25. die () {
  26. printf " $COLOUR_RED FAILED $COLOUR_DEFAULT \n"
  27. cleanup
  28. exit 1
  29. }
  30. calculate_md5sum () {
  31. MD5SUM=`md5sum $1`
  32. MD5SUM=`echo $MD5SUM | cut -d ' ' -f1`
  33. echo "md5sum:"$MD5SUM
  34. }
  35. dfu_test_file () {
  36. printf "$COLOUR_GREEN ========================================================================================= $COLOUR_DEFAULT\n"
  37. printf "File:$COLOUR_GREEN %s $COLOUR_DEFAULT\n" $1
  38. dfu-util -D $1 -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $?
  39. echo -n "TX: "
  40. calculate_md5sum $1
  41. MD5_TX=$MD5SUM
  42. dfu-util -D ${DIR}/dfudummy.bin -a $TARGET_ALT_SETTING_B >> $LOG_FILE 2>&1 || die $?
  43. N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
  44. dfu-util -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $?
  45. echo -n "RX: "
  46. calculate_md5sum $N_FILE
  47. MD5_RX=$MD5SUM
  48. if [ "$MD5_TX" == "$MD5_RX" ]; then
  49. printf " $COLOUR_GREEN -------> OK $COLOUR_DEFAULT \n"
  50. else
  51. printf " $COLOUR_RED -------> FAILED $COLOUR_DEFAULT \n"
  52. cleanup
  53. exit 1
  54. fi
  55. }
  56. printf "$COLOUR_GREEN========================================================================================= $COLOUR_DEFAULT\n"
  57. echo "DFU EP0 transmission test program"
  58. echo "Trouble shoot -> disable DBG (even the KERN_DEBUG) in the UDC driver"
  59. echo "@ -> TRATS2 # dfu 0 mmc 0"
  60. cleanup
  61. mkdir -p $DIR$RCV_DIR
  62. touch $LOG_FILE
  63. if [ $# -eq 0 ]
  64. then
  65. printf " $COLOUR_RED Please pass alt setting number!! $COLOUR_DEFAULT \n"
  66. exit 0
  67. fi
  68. TARGET_ALT_SETTING=$1
  69. TARGET_ALT_SETTING_B=$2
  70. if [ -n "$3" ]
  71. then
  72. dfu_test_file $3
  73. else
  74. for file in $DIR*.$SUFFIX
  75. do
  76. dfu_test_file $file
  77. done
  78. fi
  79. cleanup
  80. exit 0