From 1588ee041e01dc31a75046dcf442da2fdc68ed66 Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Wed, 4 Nov 2009 17:33:46 +0000 Subject: xpp: reduce the clutter of firmware loading Make the new XPP tools much less verbose: * demote messages to be debug * Convert multi-line messages to be single-line messages Making xpp_fxloader run in debug mode can be done by setting DEBUG=yes in /etc/dahdi/init.conf Merged revisions 7221 via svnmerge from http://svn.digium.com/svn/dahdi/tools/trunk git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/branches/2.2@7474 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- xpp/astribank_hexload.c | 4 ++-- xpp/astribank_tool.c | 4 ++++ xpp/astribank_usb.c | 27 ++++++++++++++++++++++----- xpp/debug.c | 2 +- xpp/mpp_funcs.c | 14 ++++++++------ xpp/pic_loader.c | 4 ++-- xpp/xpp_fxloader | 21 +++++++++++++-------- 7 files changed, 52 insertions(+), 24 deletions(-) diff --git a/xpp/astribank_hexload.c b/xpp/astribank_hexload.c index 85cfd23..411bab2 100644 --- a/xpp/astribank_hexload.c +++ b/xpp/astribank_hexload.c @@ -82,7 +82,7 @@ static int load_fpga(struct astribank_device *astribank, const char *hexfile) perror(hexfile); return -errno; } - INFO("Loading FPGA firmware version %s\n", hexdata->version_info); + INFO("Loading FPGA: %s (version %s)\n", hexdata->fname, hexdata->version_info); #if 0 FILE *fp; if((fp = fopen("fpga_dump_new.txt", "w")) == NULL) { @@ -121,7 +121,7 @@ static int load_fpga(struct astribank_device *astribank, const char *hexfile) fclose(fp); #endif free_hexdata(hexdata); - INFO("FPGA firmware loaded successfully\n"); + DBG("FPGA firmware loaded successfully\n"); return 0; } diff --git a/xpp/astribank_tool.c b/xpp/astribank_tool.c index caee860..475aba8 100644 --- a/xpp/astribank_tool.c +++ b/xpp/astribank_tool.c @@ -83,6 +83,8 @@ static int show_hardware(struct astribank_device *astribank) struct extrainfo extrainfo; show_astribank_info(astribank); + if(verbose <= LOG_INFO) + return 0; ret = mpp_caps_get(astribank, &eeprom_table, &capabilities, NULL); if(ret < 0) return ret; @@ -221,11 +223,13 @@ int main(int argc, char *argv[]) ERR("Bad reset kind '%s'\n", opt_reset); return 1; } + INFO("Reseting (%s)\n", opt_reset); if((ret = mpp_reset(astribank, full_reset)) < 0) { ERR("%s Reseting astribank failed: %d\n", (full_reset) ? "Full" : "Half", ret); } } else if(opt_renumerate) { + INFO("Renumerate\n"); if((ret = mpp_renumerate(astribank)) < 0) { ERR("Renumerating astribank failed: %d\n", ret); } diff --git a/xpp/astribank_usb.c b/xpp/astribank_usb.c index 088d360..63a46cb 100644 --- a/xpp/astribank_usb.c +++ b/xpp/astribank_usb.c @@ -262,7 +262,7 @@ static int astribank_init(struct astribank_device *astribank) return 0; if(get_usb_string(astribank, iface_desc->iInterface, astribank->iInterface, BUFSIZ) < 0) return 0; - INFO("ID=%04X:%04X Manufacturer=[%s] Product=[%s] SerialNumber=[%s] Interface=[%s]\n", + DBG("ID=%04X:%04X Manufacturer=[%s] Product=[%s] SerialNumber=[%s] Interface=[%s]\n", dev_desc->idVendor, dev_desc->idProduct, astribank->iManufacturer, @@ -332,11 +332,28 @@ found: */ void show_astribank_info(const struct astribank_device *astribank) { + struct usb_device_descriptor *dev_desc; + struct usb_device *dev; + assert(astribank != NULL); - printf("USB Firmware Type: [%s]\n", astribank->fwtype->name); - printf("USB iManufacturer: [%s]\n", astribank->iManufacturer); - printf("USB iProduct: [%s]\n", astribank->iProduct); - printf("USB iSerialNumber: [%s]\n", astribank->iSerialNumber); + dev = astribank->dev; + dev_desc = &dev->descriptor; + if(verbose <= LOG_INFO) { + INFO("usb:%s/%s: ID=%04X:%04X [%s / %s / %s]\n", + dev->bus->dirname, + dev->filename, + dev_desc->idVendor, + dev_desc->idProduct, + astribank->iManufacturer, + astribank->iProduct, + astribank->iSerialNumber); + } else { + printf("USB Bus/Device: [%s/%s]\n", dev->bus->dirname, dev->filename); + printf("USB Firmware Type: [%s]\n", astribank->fwtype->name); + printf("USB iManufacturer: [%s]\n", astribank->iManufacturer); + printf("USB iProduct: [%s]\n", astribank->iProduct); + printf("USB iSerialNumber: [%s]\n", astribank->iSerialNumber); + } } void astribank_close(struct astribank_device *astribank, int disconnected) diff --git a/xpp/debug.c b/xpp/debug.c index f188a2d..b8d3a70 100644 --- a/xpp/debug.c +++ b/xpp/debug.c @@ -26,7 +26,7 @@ #include #include "debug.h" -int verbose = LOG_DEBUG; +int verbose = LOG_INFO; int debug_mask = 0; void log_function(int level, int mask, const char *msg, ...) diff --git a/xpp/mpp_funcs.c b/xpp/mpp_funcs.c index 53b1a7a..04b93d6 100644 --- a/xpp/mpp_funcs.c +++ b/xpp/mpp_funcs.c @@ -239,7 +239,7 @@ int send_command(struct astribank_device *astribank, struct mpp_command *cmd, in #endif ret = send_usb(astribank, (char *)cmd, len, timeout); if(ret < 0) { - ERR("send_usb failed ret=%d\n", ret); + DBG("send_usb failed ret=%d\n", ret); } astribank->tx_sequenceno++; return ret; @@ -277,6 +277,7 @@ err: } +__attribute__((warn_unused_result)) int process_command(struct astribank_device *astribank, struct mpp_command *cmd, struct mpp_command **reply_ref) { struct mpp_command *reply = NULL; @@ -291,14 +292,14 @@ int process_command(struct astribank_device *astribank, struct mpp_command *cmd, expected = get_command_desc(reply_op); //printf("%s: len=%d\n", __FUNCTION__, cmd->header.len); ret = send_command(astribank, cmd, TIMEOUT); - if(ret < 0) { - ERR("send_command failed: %d\n", ret); - goto out; - } if(!reply_ref) { DBG("No reply requested\n"); goto out; } + if(ret < 0) { + ERR("send_command failed: %d\n", ret); + goto out; + } reply = recv_command(astribank, TIMEOUT); if(!reply) { ERR("recv_command failed\n"); @@ -400,7 +401,8 @@ int mpp_proto_query(struct astribank_device *astribank) ret = -EPROTO; goto out; } - INFO("Protocol version: %02x\n", astribank->mpp_proto_version); + DBG("Protocol version: %02x\n", astribank->mpp_proto_version); + ret = astribank->mpp_proto_version; free_command(reply); out: return ret; diff --git a/xpp/pic_loader.c b/xpp/pic_loader.c index c74718e..f84c09b 100644 --- a/xpp/pic_loader.c +++ b/xpp/pic_loader.c @@ -187,7 +187,7 @@ static int pic_burn(struct astribank_device *astribank, const struct hexdata *he ERR("Skip PIC burning (not USB2)\n"); return 0; } - INFO("Load PIC: %s\n", hexdata->fname); + INFO("Load PIC: %s (version %s)\n", hexdata->fname, hexdata->version_info); basename = pic_basename(hexdata->fname, &card_type); if(!basename) { ERR("Bad PIC filename '%s'. Abort.\n", hexdata->fname); @@ -251,7 +251,7 @@ int load_pic(struct astribank_device *astribank, int numfiles, char *filelist[]) { int i; - INFO("Loading %d PIC files...\n", numfiles); + DBG("Loading %d PIC files...\n", numfiles); for(i = 0; i < numfiles; i++) { struct hexdata *picdata; const char *curr = filelist[i]; diff --git a/xpp/xpp_fxloader b/xpp/xpp_fxloader index ea159de..2f42126 100644 --- a/xpp/xpp_fxloader +++ b/xpp/xpp_fxloader @@ -82,6 +82,11 @@ else LOGGER="logger -i -t '$me'" fi +debug() { + [ "$DEBUG" != "" ] && $LOGGER "$@" + return 0 +} + USBFS_PREFIX=/proc/bus/usb DEVUSB_PREFIX=/dev/bus/usb USB_PREFIX= @@ -133,7 +138,7 @@ run_fxload() { } run_astribank_hexload() { - $LOGGER "Running: $ASTRIBANK_HEXLOAD $*" + debug "Running: $ASTRIBANK_HEXLOAD $*" $ASTRIBANK_HEXLOAD "$@" | $LOGGER status=$PIPESTATUS if [ $status != 0 ]; then @@ -143,7 +148,7 @@ run_astribank_hexload() { } run_astribank_tool() { - $LOGGER "Running: $ASTRIBANK_TOOL $*" + debug "Running: $ASTRIBANK_TOOL $*" $ASTRIBANK_TOOL "$@" | $LOGGER status=$PIPESTATUS if [ $status != 0 ]; then @@ -161,7 +166,7 @@ load_usb_fw() { for dev in $devices do ver=$(awk '/\$Id:/ { print $4 }' $FIRMWARE_DIR/$fw) - $LOGGER "USB Firmware $FIRMWARE_DIR/$fw (Version=$ver) into $dev" + debug "USB Firmware $FIRMWARE_DIR/$fw (Version=$ver) into $dev" run_fxload -D $dev -I $FIRMWARE_DIR/$fw || exit 1 done } @@ -169,13 +174,13 @@ load_usb_fw() { load_fw_device() { dev=$1 fw=$2 - $LOGGER "FPGA loading $fw into $dev" + debug "FPGA loading $fw into $dev" run_astribank_hexload -D "$dev" -F "$FIRMWARE_DIR/$fw" pic_files=`echo "$FIRMWARE_DIR"/PIC_TYPE_[1-4].hex` - $LOGGER "PIC burning into $dev: $pic_files" + debug "PIC burning into $dev: $pic_files" run_astribank_hexload -D "$dev" -p $pic_files run_astribank_tool -D "$dev" -n # Do renumeration! - $LOGGER "PIC burning finished $pic_files" + debug "PIC burning finished $pic_files" } # @@ -237,10 +242,10 @@ wait_renumeration() { reset_fpga() { totaldevs=`numdevs e4e4 '11[3456][012]'` devices=`find_dev e4e4 '11[3456][12]'` - $LOGGER "Reseting devices [$totaldevs devices]" + debug "Reseting devices [$totaldevs devices]" for dev in $devices do - $LOGGER "Resetting FPGA Firmware on $dev" + debug "Resetting FPGA Firmware on $dev" sleep_if_race run_astribank_tool -D "$dev" -r full 2>&1 >/dev/null done -- cgit v1.2.3