From 1b9a64e43bd624e27e95cc04f408c0d8fb9f5c3b Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Tue, 29 Nov 2011 23:40:50 +0000 Subject: [PATCH] xpp: recovery firmware in xpp_fxloader USB_RECOV.hex is an extra firmware that may be useful for recovering from certain Astribank hardware faults in some scenarios. This adds support for either loading it manually ('/usr/share/dahdi/xpp_fxloader recover-sb') or through udev, *if* the required udev rules were set on the system. Signed-off-by: Tzafrir Cohen git-svn-id: http://svn.astersk.org/svn/dahdi/tools/trunk@10349 17933a7a-c749-41c5-a318-cba88f637d49 --- xpp/xpp_fxloader | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/xpp/xpp_fxloader b/xpp/xpp_fxloader index 34248ef..49a8cd4 100644 --- a/xpp/xpp_fxloader +++ b/xpp/xpp_fxloader @@ -70,6 +70,8 @@ ASTRIBANK_TOOL=${ASTRIBANK_TOOL:-/usr/sbin/astribank_tool} XPP_CONFIG="${XPP_CONFIG:-/etc/dahdi/xpp.conf}" XPP_UDEV_SLEEP_TIME="${XPP_UDEV_SLEEP_TIME:-15}" +USB_RECOV="${USB_RECOV:-USB_RECOV.hex}" + if [ -r "$DEFAULTS" ]; then . "$DEFAULTS" fi @@ -469,6 +471,11 @@ xppdetect|load|usb) $LOGGER -- "--------- FIRMWARE IS LOADED" exit 0 ;; +recover-sb) + # Load a firmware that fixes a but which makes the Source Byte in the + # EEPROM reset and make the device appear like a Cypress dev kit: + load_usb_fw 04b4 8613 $USB_RECOV + ;; help) usage exit 0 @@ -522,6 +529,14 @@ udev_delayed_load() { $LOGGER "Trying to find what to do for product $PRODUCT, device $DEVICE" case "$PRODUCT" in + 4b4/8613/*) + # This case is for a potentially-broken Astribank. + # In most systems you should not set udev rules for those to + # get here, as this is actually the ID of a Cypress dev-kit: + FIRM_USB="$FIRMWARE_DIR/$USB_RECOV" + $LOGGER "Loading recovery firmware '$FIRM_USB' into '$DEVICE'" + run_fxload -D "$DEVICE" -I "$FIRM_USB" + ;; e4e4/11[3456]0/*|e4e4/1163/*) usb_firmware_device "$PRODUCT" "$DEVICE" ;;