summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-11-04 17:33:46 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-11-04 17:33:46 +0000
commit1588ee041e01dc31a75046dcf442da2fdc68ed66 (patch)
treecd5f0859df3d28f7b17bc7629dff3f9574a8e504
parent91dfb30679d4412323565cb8ea61795c2d78264a (diff)
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
-rw-r--r--xpp/astribank_hexload.c4
-rw-r--r--xpp/astribank_tool.c4
-rw-r--r--xpp/astribank_usb.c27
-rw-r--r--xpp/debug.c2
-rw-r--r--xpp/mpp_funcs.c14
-rw-r--r--xpp/pic_loader.c4
-rw-r--r--xpp/xpp_fxloader21
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 <syslog.h>
#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