Wed May 27 2009 Oron Peled - xpp.r7150 * 116x Astribanks: - Support for the TwinStar capability and for FXO and (BRI|PRI) on same device. - New control protocol ("MPP"). - astribank_hextool - a low-level firmware loading tool instead of fpga_load . - astribank_tool - Other MPP activities . - Can still reset (but just that) through older protocol. - astribank_hexload is required for loading FPGA firmware for USB_FW.hex rev > 6885. - USB_FW rev. 7071 . - More modular FPGA firmware (1161 only). - FPGA_1161.hex rev. 7131. PIC_TYPE_* rev. 7107. - software-settings of some capabilities with astribank_allow . * XPP: - init_card_* script are less verbose. - Reduced rate of "Is a DAHDI sync master" message. - Replace member bus_id with dev_name() and set_dev_name() for building with 2.6.30. - Conditionally remove 'owner' property of procfs was dropped in 2.6.30. - astribank_hook now enabled by default. - Has an optional hook for TwinStar. * BRI: - hardhdlc support: The bri_dchan patch is no longer needed. - If bri_dchan patch applied: old code is used, and "dchan" is used. - If not: new code and "hardhdlc" is used. - zapconf will generate the right configuration, depending on the new sysfs driver attribute bri_hardhdlc, but default to "dchan" as before if not explicitly told. - Bugfix: explicitly turn off leds on startup. * FXS: - Initialization and calibration fixes. - Notify the user just one about wrong VMWI config * Dahdi-perl: - Fix detection of empty slots in wctdm. - Fix working with ethmf's extra file in /proc/zaptel - Improved detection of Rhino cards. - dahdi_genconf's generated text better explains files are generated. - /etc/xpp_order - allow specifiying an explicit order for Astribanks to register with Zaptel. - Dahdi::Xpp::Mpp - A wrapper around astribank_tool . * dahdi.init: - A separate waitfor_xpds script. May now have a wait-loop in some cases. - xpp_sync needs to only be called after dahdi_cfg . (for the PRI module). Sun Mar 1 2009 Oron Peled - xpp.r6795 * Fix cases where the command_queue overflowed during initialization. - Also add a 'command_queue_length' parameter to xpp.ko * More migrations to sysfs: - Add a 'transport' attribute to our astribank devices which points to the usb device we use. E.g: /sys/bus/astribanks/devices/xbus-00/transport is symlinked to ../../../../../../devices/pci0000:00/0000:00:10.4/usb5/5-4 - Move /proc/xpp/XBUS-??/XPD-??/span to /sys/bus/xpds/devices/??:?:?/span - Migrate from /proc/xpp/sync to: /sys/bus/astribanks/drivers/xppdrv/sync - New 'offhook' attribute in: /sys/bus/xpds/devices/??:?:?/offhook * PRI: change the "timing" priority to match the convention used by other PRI cards -- I.e: lower numbers (not 0) have higher priority. * FXO: - Power denial: create two module parameters instead of hard-coded constants (power_denial_safezone, power_denial_minlen). For sites that get non-standard power-denial signals from central office on offhook. - Don't hangup on power-denial, just notify Dahdi and wait for Asterisk's desicion. - Fix caller-id detection for the case central office sends it before first ring without any indication before. * New USB_FW.hex (xpp.r6885): handles some firmware rewriting races. Mon, Dec 8 2008 Oron Peled - xpp.r6430 * PRI: - Match our span clocking priorities (in system.conf) to Digium -- this is a reversal of the previous state. Now lower numbers (greater than 0) are better. - Synchronization fixes for PRI ports other than 0. - Fix T1 CRC for some countries (e.g: China). * FXS: fix bug in VMWI detection if using old asterisk which does not provide ZT_VMWI ioctl(). * FXO: - Improve caller_id_style module parameter. This provide a workaround for countries that send this information without any notification (reverse polarity, ring, etc.) - Don't force on-hook upon power-denial. So, loopstart devices would ignore these as expected. * Implement a flow-control to prevent user space (init_card_* scripts) from pressuring our command queue. Thu, Oct 30 2008 Oron Peled - xpp.r6279 * Major changes in hotplug architecture (backported from our DAHDI drivers). It entails migration to proper sysfs representation. and implementing a proper state machine for Astribanks. * Astribanks are now represented in /sys/bus/astribanks/devices/* * XPD's are now represented in /sys/bus/xpds/devices/* * Old /proc interfaces: - Some debugging info was left there (not affecting device functioning and does not fit sysfs model). - All the rest can be compiled in by -DOLD_PROC in Kbuild. - The perl scripts and their zconf/ modules abstract this change and fallback to /proc if no /sys interface is found (with a warning). * Astribank state: - May be read from /sys/bus/astribanks/devices/xbus-*/xbus_state - Writing stop/start into these file, initiate a logical disconnect/connect event (without physical access to AB). * Kill the race conditions that were inherent during AB initialization in the old method (at least those known to us). Using the /proc interface is racy by definition. * Send two new udev events (apart from add/remove): - "online" - when the Astribank is initialized and ready. - "offline" - when the Astribank start going down. - They can be used in the example astribank_hook udev script. Thu, Oct 30 2008 Oron Peled - xpp.r6276 * Important firmware change: - The protocol version of FPGA_*.hex firmwares is still 30, so old firmwares still work. However, the firmware loading is modified. This add some functionality to fpga_load and affect how xpp_fxloader calls it. - New USB_FW.hex fixes problems observed during boot with some BIOS'es. - libhexfile now read the version info (if available in the hex comments) and fpga_load displays it. - PRI: fix some scenarious where firmware would send bogus CAS updates when no CAS is used. Thu, Aug 14 2008 Oron Peled - xpp.r6055 * Added E1 CAS support. Uses new firmware. * New firmware also solve DTMF problems with some phones (double digits). * Bugfix in caller_id_style parameter to xpd_fxo. Now caller_id_style=2 actually works (always pass PCM). * Warn about DAHDI ioctls sent to us by mistake (helps catching problems during migration). * Parse per-channel alarms the perl modules. Use this to add an Zaptel::Chans->alarm() method. Update lszaptel accordingly. * Better parsing of signalling information in Zaptel::Chans * Documentation updates in Zaptel::Span * Fix some rare cases of false Yellow alarms in PRI. * Updates to PCI IDs in Zaptel::Hardware::PCI * Bugfix in blinking leds (rare, was detected with specific compiler versions). * Safer test in Kbuild for BRI compilation. * Bugfix in DTMF (was leaking from one channel to the next one). * Fix a rare problem in ONHOOK detection. * Fix a build problem with Centos-5.2 (backporting bool). * Debugging improvement: the pcmtx_chan parameter now refers to zaptel channel numbers. Tue, 13 May 2008 Oron Peled - xpp.r5744 * New firmware protocol version: 30 * New numbers for the device types: (e.g. in card_init* scripts) - FXS: 1 (was: 3) - FXO: 2 (was: 4) - BRI: 3 (was: 6 for TE, 7 for NT) - PRI: 4 (was: 9) * Init scripts of FXS and FXO modules are now written in Perl as well (be sure to have File::Basename, e.g: perl-modules in Debian). * calibrate_slics merged into init_card_1_30 . * Each of the init_card_* scripts now runs no more than once per card even if this card represents several XPD's (e.g: quad PRI, BRI). This means maximum of 4 script runs per Astribank. * Zaptel registration now briefly flash all LED's (not just the green ones as before). * Module parameter print_dbg was renamed to debug for consistency with the rest of zaptel. * init_fxo_modes removed: content moved into init_card_2_30, verified at build time. * FXO: removed polling for power-denial. New firmware notifies us. * Code tested with sparse. Most warnings were fixed. * Set ZT_SIG_DACS for the bchans in the PRI and BRI modules to not get ignored by ztscan. * fpga_load: Handle null config_desc we get from some crazy USB controllers. * genzaptelconf: Fix reporting of empty slots in list mode. * xpp_blink can now blink the led of a single analog port. * "slics" has been renamed "chipregs". * Fixed a small typo in fpga_load(8). * Fixed bashism in xpp_fxloader. Thu, 20 Mar 2008 Oron Peled - xpp.r5566 * Build: - Zaptel >= 1.4.9 is migrating to storing kernel stuff in zaptel/kernel/* - We conditionally use old/new directory scheme: In xpp/Kbuild and xpp/utils/Makefile use ZAP_KERNEL variable, so it's not confused with ZAPTEL_DIR (which appears in zaptel/Makefile as well). - Fix compile warnings on 64 bit systems. - Compile fixes for kernel-2.6.24 * UDEV: - /etc/udev/rules.d/xpp.rules now uses XPP_INIT_DIR to find astribank_hook. - astribank_hook: Modify to do nothing. Add some documentation. * Autoconfiguration -- zapconf: - Don't fail zapconf et.al. if no config file was found. - Skip the 'IRQ Missing:' line in /proc/zaptel/nnn for wcte1xp(?). - Add some newer Digium cards to our hardware inventory. - Partially handle cases where the /proc/zaptel strings does not contain info about E1/T1/J1 or NT/TE. * Better SYNC: - Finer tuning of PLL (New firmware). - Change calculation algorithm of sync offset. It now copes better with the variance in USB frame reception timing. - Statistics: . The view of results was moved from /proc/xpp/XBUS-*/summary to a new /sys/bus/astribanks/devices/xbus-*/timing and enhanced. . A new xpp_timing script shows all astribanks. . A new write only /sys/bus/astribanks/devices/xbus-*/cls is used to clear statistics. Eventually, clearing of XBUS related statistics should be done here. One that was migrated is the clearing of 'PCM [TR]X:' numbers currently appearing in /proc/xpp/XBUS-*/summary (they should be moved too later). - Shorten the strings representation sync_mode ("SYNC_MODE_AB" -> "AB") adapted their use in printk and /proc so the text is clear. - Added a command line parameter xpp.disable_pll_sync to stop all adjustments command to AB (calculations still continue as usual). * PRI: - 4 port support - set clocking master span via ztcfg, like other zaptel devices. * FXO: - Fix false hangups in some countries (voltage fluctuations). - Some countries send caller-id before first ring. Added code to handle caller-id PCM pass through according to a new command line parameter (xpd_fxo.caller_id_style). - No longer sends an event on zt_open. See #12160 . * FXS: Re-enable dtmf_detection. * Misc: - Adapt to zaptel-1.4.8 and above ztscan: added fields returend by new ZT_SPANSTAT_V2 ioctl() - Document sysfs and waitfor_xpds. - Miscelaneous optimizations and bugfixes. - Remove deprecated pcm_tasklet parameter. The rx_tasklet parameter has replaced it a long time ago. - Add RX_CMD counter to /proc/xpp/XBUS-*/summary - Unclutter some of the usb disconnect messages. - xpp_usb: minor preformance improvements in receive. Expose the number of pending receive URB's in /proc/xpp/XBUS-*/xpp_usb Thu Jan 10 2008 Oron Peled - xpp.r5254 * Improved polarity reversal hangups in FXO (r5194). Fixed false detection of polarity reversals. * Optimize xframe allocation, by not zeroing the whole memory (in get_xframe()). * Fixed erronous error message that appeared sometimes from fpga_load during USB renumeration. * Zaptel::Chans now provides battery() reporting for some FXO channels (Astribank FXO and wcfxo). Tue Dec 25 2007 Tzafrir Cohen - xpp.r5179 * xpd_pri: Basically ready. * PCM synchronization changes: - Each Astribank unit ticks independently. Each with its own PLL. - HOST synchronization is gone. Loading of xpp will no longer cause useless 250 ticks per second if you have no Astribank. - Synchronization from the zaptel sync master requires setting ZAPTEL as sync source (xpp_sync ZAPTEL). * rx_tasklet is now a parameter of the module xpp, rather than of xpp_usb. * New FPGA firmware: 5128 (1151) / 5122 (1141, 1131): - Fixes synchronization issues. - PRI module: E1/T1 should now work. * perl module and utilities: - Modules no longer magically scan system on initialization. - Scanning is by calling explicit methods. - "Serial" has been renamed "Label". It is basically unique, but should be modifieble. - Some basic documentation of zaptel perl modules. * Default sort order of zt_registration is back to SORT_CONNCTOR. * zt_registration proc file now shows the number of span registered to if registered. Try: grep . /proc/xpp/XBUS-*/XPD-*/zt_registration * genzaptelconf: Allow using a custom command instead of /etc/init.d/asterisk to start/stop asterisk. * Fixed the typo "Slagish". Wed Nov 14 2007 Tzafrir Cohen - xpp.r5010 * Fix a deadlock spotted on some SMP installations. * increase FXS ring detect debounce interval. * Improve (reduce) signal attenuation on FXO ports. * zaptel-perl: further fixes to handling of empty slots. Wed Oct 3 2007 Tzafrir Cohen - xpp.r4900 * Zaptel/Hardware perl modules: - Use sysfs directly. Don't rely on lspci/lsusb. - Each device has a description and driver name. - Zaptel::Hardware::drivers() to show the list of required drivers for this system (see zaptel_drivers). - zaptel_hardware shows a description and a (suggested?) driver. * zt_registration sorts by Serial first and only then by connector. * USB_FW.hex replaces all the USB_11x0.hex . - Separate USB interface for the management processor. - Hence fpga_load can now work even with drivers loaded. * Fix firmware upgrading. * Fix manual firmware loading while auto-loading. * Fix opermode parameter for FXO initialization (broken in r4648). Wed Oct 3 2007 Oron Peled - xpp.r4786 * New firmware protocol version: 2.9 . * fpga_load: initial clean-ups before interface split. * genzaptelconf: Don't leave an empty directory behind (4784) * Increase xpp poll_timeout to 1000ms - useful for CentOS 4 (r4781). * Fix initialization anoyance: if AB don't answer to polls, don't waitfor_xpds, and show no waiting XPDs (r4725). * Disable dtmf_detection by default once again (r4712). * Don't check twice for asterisk to stop. The second test was done while Asterisk was still stopping (r4708). * Support building the kernel with M= instead of with SUBDIRS= , as used in some newer build systems (r4677). Tue Sep 11 2007 Oron Peled - xpp.r4648 * New firmware protocol version: 2.8 . * Cleanup INFO() messages during module loading. * USB: Receive queue with TASKLETS [r4600]. Controlled by rx_tasklet parameter to xpp_usb module (can be changed in runtime). * The pcm_tasklet parameter in xpp module is deprecated: - Does not actually do anything. - If set during module loading, shows an ERR() message. - Also appears in /proc/xpp/sync * FXS: Hardware DTMF detection by default, can be disabled by setting dtmf_detection=0 parameter to xpd_fxs. PCM is muted when DTMF key is pressed. * zapconf: - Can now generate users.conf compatible with asterisk-gui. - Optional command-line arguments denoting which files to generate. Possible values are 'zaptel', 'zapata' and 'users'. - Defaults to creating zaptel and zapata. * Update to zaptel-1.4.5.1, zaptel-1.2.20.1 * Fix building on kernel 2.6.23rc1, from Axel Thimm. * New firmware to fix FXS leds irregularities. * Less noise at build time - don't echo version, test compile ony once. * zapconf can generate users.conf snippets. Thu Aug 16 2007 Tzafrir Cohen - xpp.r4515 * Don't use Astribanks connected to USB1 interfaces Unless the user set the option usb1=1 for xpp_usb (r4504). * README.Astribank can now be generated from the makefile (r4503). * Demote the messages about PCM in non-PCM from notice to debug (r4501). * Fix sample BRI zapata.conf: NT instead of TE (r4498). * Disable FXS hardware DTMF detection by default (r4492). * Extra Zaptel PCI IDs (from Philipp Kempgen) (r4466). Thu Aug 2 2007 Oron Peled - xpp.r4464 * Jump to zaptel-1.2.19 and zaptel-1.4.4 (with/without bristuff) * BRI improvement: an 'nt_keepalive' parameter to xpd_bri forces a BRI_NT to retry a connection indefinitely (this is our default). When false it revert to the behaviour in changeset:4415 ("Bezeq like") * Improvement in DBG macros. The print_dbg parameter is now set of flags to debug. They are defined in zap_debug.h * PRI configuration improvements (r4462): - Hardcoded default (in init_card_9_26) is TE. - The variable XPP_PRI_SETUP (in /etc/default/zaptel) may config all PRI ports or some of them as we wish. Full docs are in the utils/example_default_zaptel. * PRI D-channel indication: Similar to BRI (r4464). Thu Jul 30 2007 Oron Peled - xpp.r4415 * Show Astribank 6+2 as 6/2 channels and not 8/8 channels. - Added as a "subtype" to the device type (r4391). * Fixed a panic in BRI span shutdown method (r4393). * Changes to debug macros. * Add proper sysfs support (r4406) - A bus on whuch all of the Astribanks reside. - Replaces useless sysfs code that existed in the module. - Currently used to set the sync source automatically at device adition / removal. * BRI: We do need the T1 timer in NT. If it gets into G2 state (rr4407). Thu Jul 12 2007 Oron Peled - xpp.r4372 * Update to zaptel-1.2.18 and zaptel-1.4.3 (r4308 onward) * Fix a critical race with zaptel synchronization (r4362) * Added a /proc/xpp/cmds for statistics about command timing (r4360) * Fix a digit mapping bug with hardware dtmf detection (r4357) * In xpp/utils/Makefile add perl syntax checks to our scripts (r4337) * Better USB data error checking (r4336) * udev rules (xpp.rules) avoid false calls from wrong nodes (r4331) * Improve hardware detection and reporting in lszaptel, zaptel_hardware. zapconf is basically functional. * Leds are blinked synchronously on all Astribanks now (r4262) * Fix a BRI bug if OPTIMIZE_CHANMUTE was compiled into zaptel (r4258) (This feature was not yet accepted into official zaptel) * Removed compile warning about HZ != 1000 (r4218) * Firmware updates. * xpd_pri: the PRI module * fpga_load now supports USB pathes without zeros (r4211) * XPD numbers have changed to '' (r4196) * Proper support for ZT_VMWI ioctl, if used in zaptel (r4092) * Fix FXO power denial detection (r4054) * FXO could accidentally go off-hook with some compilers (r4048) Tue May 1 2007 Oron Peled - xpp.r3898 * Tested with zaptel-1.2.17.1 * Add D-Channel TX, RX and BAD frames count in /proc/xpp/XBUS-*/XPD-*/bri_info * Adjust output of xpp_sync script. Pad for 8 port BRI. * Added a debugging module parport_debug (not compiled by default). * Added an optional patch to zaptel: - compiles only if ZAPTEL_SYNC_TICK is defined - Allow interested driver to register for "sync" notification. - Does not affect drivers that do not use this feature. * Added external synchronization feature: - Only if ZAPTEL_SYNC_TICK feature is compiled in - Than XPP may be synchronized by another card (e.g: an Astribank with FXS can be synchronized by a Digium PRI card). - May be enabled/disabled in runtime via the 'sync_tick_active' module parameter to the xpp.ko module. * Fixed a potential bug in D-Channel hexdump printing. * New visual indications in BRI leds: - Constant ON RED/GREEN: Shows the port type -- NT/TE. - Very fast "double blink": Layer1 work, no D-Channel yet. - Steady blinking (1/2 sec): D-Channel trafic detected. * xpp_fxloader moved to /usr/share/zaptel . * adj_clock removed: never really used. Thu, 19 Apr 2007 Tzafrir Cohen - xpp.r3814 * No need for extra patch beyond bristuff for Astribank BRI. * Protocol no. 2.6: syncing improvements. * Default poll intervals changed: 500 in BRI and FXO. * Allow changing FXS polls interval at run time. * BRI initalization fixed on SUSE (path to logger). * When using the SUSE zaptel rpm package, set modules_var=ZAPTEL_MODULES in /etc/sysconfig/zaptel . * zt_registration not verbose by default. * xpp_sync warns if FXO is sync slave. * Extra PCM metrics data in /proc/xpp/XBUS-NN/summary . * Extra USB metrics data in /proc/xpp/XBUS-NN/usb_info . Wed, 11 Apr 2007 Tzafrir Cohen - xpp.r3768 * Removed "go away" notice and solved sync of a restarted device. * Resetting firmware: rmmod xpp_usb; /etc/hotplug/usb/xpp_fxloader reset * Perl modules use strict. * genzaptelconf -F will not generate zapata configuration for NT spans. * genzaptelconf uses perl utilities to start. * Initial support for 2nd XHFC (BRI) chip. Sun, 1 Apr 2007 Tzafrir Cohen - xpp.r3712 * New protocol version (2.5). * Luckily firmware unloading now works. * Solves "multiple ticks" bug. No need for pcm_tasklets workaround. * genzaptelconf -z will generate zapscan.conf for the asterisk-gui. * Fixed hardware detection for the BRI. Wed, 14 Mar 2007 Tzafrir Cohen - xpp.r3608 * Initial verssion of firmware unloading. * PCM bugfixes. * Defaults of kernel parameters are now part of parameter description. * Removed zaptel sync code for now. * genzaptelconf will detect vzaphfc. * genzaptelconf defaults to ptmp for BRI. * Documentation updates. Mon, 26 Feb 2007 Tzafrir Cohen - xpp.r3517 * genzaptelconf now uses ls for FXS lines by default . * World-readable kernel parameters. Thu, 22 Feb 2007 Tzafrir Cohen - xpp.r3440 * /proc/xpp/sync: 'm 0' is, while depracated, can still be used. * New firmware with PCM improvements. * Improvements to the xpp helper scripts. * Bug fixes. * zaptel/perl is now installed by xpp/utils/Makefile. Wed, 14 Feb 2007 Tzafrir Cohen - xpp.r3365 * Kewlstart support on the FXS ports (already existed on the FXO ports). * The format of /proc/xpp/sync has changed (still self-documented). * Better notification of FXS lines that were off-hook on registration time. * Parallel polling of Astribanks (faster startup when there are multiple devices) * zconf: scripts and perl modules to automate the work with Zaptel and the Astribank. Current scripts: zt_registration, xpp_sync.