Message ID | 1439415852-15533-1-git-send-email-l.majewski@majess.pl |
---|---|
State | Superseded |
Headers | show |
On Wed, Aug 12, 2015 at 11:44 PM, Lukasz Majewski wrote: > In the dfu-util it is possible to set major:minor number by unsing -d flag > (-d 0451:d022). > Such option is very handy when many DFU devices are connected to a single > host PC. This commit allows testing when above situation emerges. > +If many DFU devices are connected, it is necessary to specify USB device major > +and minor numbers (0451:d022). One can get them by running "lsusb" command on > +a host PC. The 0451:d022 is a USB vendor/product ID in the device's own USB descriptor. To me "major" and "minor" sounds more like some host OS allocated properties, like Linux device major and minor numbers. I would have called it "USB device vendor/product ID" instead. "dfu-util allows filtering on USB device vendor/product ID by using the -d flag (-d 0451:d022)." "If many DFU devices are connected, it may be useful to filter on USB vendor/product ID (0451:d022)." Best regards, Tormod PS. There is a typo "unsing" above.
On Thu, 13 Aug 2015 14:37:06 +0200 Tormod Volden <lists.tormod@gmail.com> wrote: > On Wed, Aug 12, 2015 at 11:44 PM, Lukasz Majewski wrote: > > In the dfu-util it is possible to set major:minor number by unsing > > -d flag (-d 0451:d022). > > Such option is very handy when many DFU devices are connected to a > > single host PC. This commit allows testing when above situation > > emerges. > > > +If many DFU devices are connected, it is necessary to specify USB > > device major +and minor numbers (0451:d022). One can get them by > > running "lsusb" command on +a host PC. > > The 0451:d022 is a USB vendor/product ID in the device's own USB > descriptor. To me "major" and "minor" sounds more like some host OS > allocated properties, like Linux device major and minor numbers. I > would have called it "USB device vendor/product ID" instead. You are definitely correct here. I will correct this. > > "dfu-util allows filtering on USB device vendor/product ID by using > the -d flag (-d 0451:d022)." > > "If many DFU devices are connected, it may be useful to filter on USB > vendor/product ID (0451:d022)." > > Best regards, > Tormod > > PS. There is a typo "unsing" above. Thanks for spotting. Best regards, Lukasz Majewski
diff --git a/test/dfu/README b/test/dfu/README index 5176aba..8925a91 100644 --- a/test/dfu/README +++ b/test/dfu/README @@ -26,12 +26,19 @@ Example usage: setenv dfu_alt_info dfu_test.bin fat 0 6\;dfudummy.bin fat 0 6 dfu 0 mmc 0 2. On the host: - test/dfu/dfu_gadget_test.sh X Y [test file name] + test/dfu/dfu_gadget_test.sh X Y [test file name] [usb device major:minor] e.g. test/dfu/dfu_gadget_test.sh 0 1 or e.g. test/dfu/dfu_gadget_test.sh 0 1 ./dat_960.img + or + e.g. test/dfu/dfu_gadget_test.sh 0 1 0451:d022 + or + e.g. test/dfu/dfu_gadget_test.sh 0 1 ./dat_960.img 0451:d022 ... where X and Y are dfu_test.bin's and dfudummy.bin's alt setting numbers. They can be obtained from dfu-util -l or $dfu_alt_info. It is also possible to pass optional [test file name] to force the script to test one particular file. +If many DFU devices are connected, it is necessary to specify USB device major +and minor numbers (0451:d022). One can get them by running "lsusb" command on +a host PC. diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh index 2f5b7db..9c79422 100755 --- a/test/dfu/dfu_gadget_test.sh +++ b/test/dfu/dfu_gadget_test.sh @@ -45,18 +45,18 @@ dfu_test_file () { printf "$COLOUR_GREEN ========================================================================================= $COLOUR_DEFAULT\n" printf "File:$COLOUR_GREEN %s $COLOUR_DEFAULT\n" $1 - dfu-util -D $1 -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? + dfu-util $USB_DEV -D $1 -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? echo -n "TX: " calculate_md5sum $1 MD5_TX=$MD5SUM - dfu-util -D ${DIR}/dfudummy.bin -a $TARGET_ALT_SETTING_B >> $LOG_FILE 2>&1 || die $? + dfu-util $USB_DEV -D ${DIR}/dfudummy.bin -a $TARGET_ALT_SETTING_B >> $LOG_FILE 2>&1 || die $? N_FILE=$DIR$RCV_DIR${1:2}"_rcv" - dfu-util -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? + dfu-util $USB_DEV -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? echo -n "RX: " calculate_md5sum $N_FILE @@ -89,13 +89,17 @@ fi TARGET_ALT_SETTING=$1 TARGET_ALT_SETTING_B=$2 -if [ -n "$3" ] +file=$3 +[[ $3 == *':'* ]] && USB_DEV="-d $3" && file="" +[ $# -eq 4 ] && USB_DEV="-d $4" + +if [ -n "$file" ] then - dfu_test_file $3 + dfu_test_file $file else - for file in $DIR*.$SUFFIX + for f in $DIR*.$SUFFIX do - dfu_test_file $file + dfu_test_file $f done fi