Release Notes

From IEEE 1394 FireWire Wiki
(Difference between revisions)
Jump to: navigation, search
(Linux 2.6.35: summary, known issues)
(Linux 4.8, Linux 4.4: stable backports)
 
(75 intermediate revisions by one user not shown)
Line 5: Line 5:
 
'''Release Status'''
 
'''Release Status'''
  
The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 2.6 kernels.
+
The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 4.x kernels.
  
The drivers in Linux 2.4 are considered stable too but are not actively updated anymore.  Therefore they lack some features and compatibility updates which went into recent Linux 2.6 releases.
+
The drivers in Linux 2.4 were considered stable too but have not been updated anymore for a long time.  Therefore they lack many features and compatibility updates which went into Linux 2.6.x...4.x releases.
  
The following release notes only summarize more notable changes.  A complete list of IEEE 1394 related changes is available via kernel.org git: Changes in [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/ieee1394 drivers/ieee1394], in [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/firewire drivers/firewire].
+
The following release notes only summarize more notable changes.  A complete list of IEEE 1394 related changes is available via kernel.org git:
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/ieee1394 drivers/ieee1394]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/firewire drivers/firewire]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/firewire drivers/media/firewire], formerly [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/dvb/firewire drivers/media/dvb/firewire]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/target/sbp drivers/target/sbp]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=sound/firewire sound/firewire]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=tools/firewire tools/firewire]
 +
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire.h include/linux/firewire.h]
 +
:* include/uapi/linux/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-cdev.h firewire-cdev.h],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-constants.h firewire-constants.h]}, formerly include/linux/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-cdev.h firewire-cdev.h],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-constants.h firewire-constants.h]}
 +
:* Documentation/ABI/stable/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/firewire-cdev firewire-cdev],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/sysfs-bus-firewire sysfs-bus-firewire]}, [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/debugging-via-ohci1394.txt Documentation/debugging-via-ohci1394.txt]
  
  
Line 15: Line 24:
  
  
== Linux 2.6.35 ==
+
== Linux 4.9 ==
  
''tentative release notes per 2.6.35-rc5''
+
''tentative release notes as per v4.9-rc4''
  
This release brings minor big fixes to the new firewire driver stack.
+
;firewire-net:
 +
:* Add missing input validation.  Invalid IP-over-1394 encapsulation headers could trigger buffer overflows, potentially leading up to remote code execution ([http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8633 CVE-2016-8633]).  Also fixed in v4.8.7 and v4.4.31.
 +
:* Fix IP-over-1394 link fragmentation headers that were read and written incorrectly, which prevented fragmented reception from/ fragmented transmission to other stacks, including Mac OS X, Windows XP, and older Linux' eth1394.  Also fixed in v4.8.7 and v4.4.31.
  
The old ieee1394 driver stack — i.e. ieee1394, ohci1394, pcilynx, sbp2, eth1394, raw1394, video1394, dv1394 — is now scheduled for removal in Linux 2.6.37.
 
  
;firewire-core:
+
== Linux 4.8 ==
:* lseek() is not useful with /dev/fw*;  it is now failed instead of seemingly succeeding
+
:* more robust allocation of transaction labels and time-out of transactions
+
:* Fix inaccessibility of certain Sony camcorders, caused by bus reset loops because of conflicts between firewire-core's and the camcorder firmware's bus management.  Fixed by checking for IEEE 1394a compliance of the isochronous resource manager.  Also fixed in Linux 2.6.34.1, 2.6.33.6, 2.6.32.16.
+
  
;firewire-ohci:
+
''2 October 2016''
:* access PHY registers more safely
+
:* enable IEEE 1394a enhancements in the physical layer and link layer consistently (or disable consistently on IEEE 1394-1995 hardware)
+
:* enable Texas Instruments OHCI-Lynx enhancements if the onboard EEPROM did not
+
  
;raw1394, video1394, dv1394:
+
;snd-firewire-tascam:
:* lseek() is not useful with /dev/raw1394, /dev/video1394/*, /dev/dv1394/*; it is now failed instead of seemingly succeeding
+
:* Fix possible deadlock in hwdep interface. Also fixed in v4.7.4 and v4.4.21.
  
'''Known issues:'''  FFADO still cannot access more than a single FireWire audio device on a bus when run on tof of the new firewire drivers instead of the old stackThis is because firewire-core reports no (or together with libraw1394, wrong) sender node IDs of incoming requests to application programs that receive requests to FireWire address ranges. A [http://git.kernel.org/?p=linux/kernel/git/ieee1394/linux1394-2.6.git;a=commitdiff;h=e205597d188a9ea69ce43f740a14f07b3f5b996a fix exists] and is planned to be released in Linux 2.6.36-rc1. A [http://git.kernel.org/?p=libs/ieee1394/libraw1394.git;a=commitdiff;h=3232f3f31197c560334a0457dd8c3771f89acb79 correspondingly updated] libraw1394 release will be required too to utilize this kernel fix for libraw1394 based applications like FFADO.  Setups with only a single device on the bus are not affected.
+
;snd-fireworks:
 +
:* Fix possible deadlock in hwdep interfaceAlso fixed in v4.7.4, v4.4.21, v4.1.34, v3.18.43.
  
  
== Linux 2.6.34 ==
+
== Linux 4.7 ==
  
''16 May 2010''
+
''24 July 2016''
  
;firewire-core:
+
;snd-dice:
:* fix "giving up on config rom for node id..." with some devices with bogus configuration ROM, notably Panasonic AG-DV2500 tape deck
+
:* Add support for M-Audio Profire 610, and perhaps for Profire 2626.
:* fix Model_ID in modalias (sysfs variable and uevent)
+
:* more consistency checks in userspace driver interface
+
:* add FW_CDEV_IOC_GET_CYCLE_TIMER2 ioctl for choice of local clock
+
:* put <linux/firewire-*.h> files under MIT license
+
:* remove incomplete support of Bus_Time CSR
+
  
;firewire-ohci:
+
;snd-firewire-lib:
:* work around hardware that does not provide reliable cycle timer register access (ALi, NEC, VIA, TI TSB12LV22), needed for video reception timestamps and audio synchronization
+
:* Add tracepoints to dump a part of isochronous packet data in order to support debugging of device quirks and of kernel-internal packet processing.  The [https://git.kernel.org/linus/0c95c1d6197f patch changelog] describes how to use this feature.  A [https://git.kernel.org/linus/a9c4284bf5a9 subsequent commit] expands the dump format.
:* add module parameter that allows ad hoc activation of quirk fixes
+
:* fix detection of maximum available IR and IT DMA contexts
+
:* fixes for local (loopback) requests
+
  
;firedtv:
+
;snd-firewire-lib, snd-bebob, snd-firewire-tascam, snd-fireworks:
:* DMA mapping fixes
+
:* Remove matching of SYT fields of the outbound stream to those of the inbound stream since it proves to be unnecessary in practice.  The same was already done in snd-dice in Linux v4.6.  This simplifies the kernel code and allows for finer-grained tasklet scheduling.
  
;ohci1394_earlyinit:
+
;snd-firewire-lib, snd-bebob, snd-firewire-digi00x, snd-firewire-tascam, snd-fireworks, snd-oxfw:
:* fix boot crash regression
+
:* Perform sound card registration at least 2 seconds after the last IEEE 1394 bus reset.  This was already implemented for snd-dice in Linux v4.5 and is now adopted by the other FireWire audio drivers.  It ensures that the bus and device firmware settle into a ready state before userspace initiate I/O to the device.
  
  
== Linux 2.6.33 ==
+
== Linux 4.6 ==
  
''24 February 2010''
+
''15 May 2016''
  
This release finally adapts the firedtv DVB driver to be usable with the new stack alternatively to the old stack.  It furthermore brings a few fixes for the new stack along with the usual assortment of less visible updates.
+
;snd-bebob:
 +
:* internal rework related to streaming recovery after bus reset
  
Distributors who still ship the old stack (ieee1394, ohci1394, raw1394, sbp2, eth1394 and more) should now switch to the new one (firewire-core, firewire-ohci, firewire-sbp2, firewire-net)In the first iteration, those distributors might want to ship the old stack also (but blacklisted) as a fallback for their users if unforeseen problems with the newer replacement drivers are encountered.
+
;snd-dice:
 +
:* Change how the dependency between number of available PCM and MIDI channels versus sampling rate is handled.  Also affects the hw_params ioctl interface.  Userspace should set the desired sampling rate before starting PCM I/O.
 +
:* Change how phase lock is ensured and how lock status is detected.
 +
:* Remove matching of SYT fields of the outbound stream to those of the inbound streamThis synchronization happened when the device was configured for internal clock.  It required a startup delay of the outbound stream, which caused DICE II based devices to remain silent at the first attempt to start streaming.
 +
:* Add support for previously unavailable higher PCM channels on certain devices with high channel count, notably Focusrite Saffire PRO 40, Focusrite Liquid Saffire 56, and TC Electronic Studio Konnekt 48.  These devices spread the PCM and MIDI channels across 2 tx + 2 rx IEEE 1394 channels instead of just 1 tx + 1 rx IEEE 1394 channel, as most other devices do.
  
The older FireWire stack contains several known problems which are not going to be fixed; instead, those issues are addressed by the new stack.  An incomplete list of these issues is kept in [http://bugzilla.kernel.org/show_bug.cgi?id=10046 bugzilla].  We have a [http://ieee1394.wiki.kernel.org/index.php/Juju_Migration guide] on migration from the older to the newer stack.
+
;snd-oxfw:
 +
:* improvements to MIDI I/O
  
;firewire-core:
 
:* Properly support multiple concurrent FCP listeners.  This is necessary if more than one process or driver requires continuous control over AV/C devices (e.g. camcorders, tape decks, audio devices, TV tuners).
 
:* Some small optimizations and fixes, among them improved Topology Map register handling.
 
:* Proper size check in the add_descriptor ioctl.  Also fixed in Linux 2.6.32.8.
 
  
;firewire-net:
+
== Linux 4.5 ==
:* Fix a crash on SMP systems.
+
  
;firewire-ohci:
+
''13 March 2016''
:* Always use packet-per-buffer mode for isochronous reception, not dual-buffer mode.  Reasons to do so are different behavior of the modes under some circumstances, and hardware bugs in dual-buffer mode.
+
:* Fix possible crash with unusual isochronous reception parameters ([http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4138 CVE-2009-4138]).  Also fixed in Linux 2.6.32.2, 2.6.31.9, 2.6.27.42.
+
:* Fix crashes or image corruption during video reception with TSB43AB23 on 64 bit systems with more than 2 GB RAM.  Also fixed in Linux 2.6.32.8.
+
:* Fix potential breakup of isochronous transmission on some controllers, e.g. probably O2Micro controllers.
+
  
;firedtv:
+
;snd-dice:
:* Port to new firewire stack. Depending on whether the kernel is being configured for ieee1394 (classic stack) or firewire (new stack) or both, the firedtv driver will automatically use the proper stack.  This means that FireDTV users are no longer forced to use the old stack.
+
:* Improved handling of DICE II firmware bootstrapping during device start-up.
 +
:* Avoid time-out when PCM streaming is started.
  
 +
;snd-firewire-tascam:
 +
:* Add support for TASCAM FW-1804.
  
== Linux 2.6.32 ==
+
;snd-scs1x:
 +
:* The functionality of this driver was moved to the snd-oxfw driver, and the now obsolete snd-scs1x module has been removed.
  
''2 December 2009''
 
  
This release fixes the new FireWire drivers for operation with [http://www.ffado.org/ FFADO] (FireWire audio driver framework) and brings some other, minor updates.  There are also fixes in [[Release Notes - Libraries|libraw1394]] required in order to run FFADO on top of the new drivers; these fixes have been released in libraw1394 v2.0.5.
+
== Linux 4.4 ==
  
;firewire-core, firewire-ohci, raw1394:
+
''10 January 2016''
:* Fix a few obscure bugs which were unlikely to show up in practice.
+
  
 
;firewire-ohci:
 
;firewire-ohci:
:* Fix start-on-cycle feature of isochronous transmissions and receptionsEspecially needed for FFADO.
+
:* Work around JMicron JMB38x initialization quirkAffected isochronous transmission, e.g. audio via FFADO or ALSA.  Also fixed in v4.3.3, v4.2.8, v4.1.15, v3.18.26, v3.16.35, v3.14.59, v3.12.52, v3.10.95, v3.4.113, v3.2.74.
:* Expose isochronous transmit cycle timestamps to firewire-core and thus to userspace drivers. Especially needed for FFADO.
+
  
;firewire-sbp2:
+
;snd-bebob:
:* Fix potential bugs: login timeout, invalid SCSI status
+
:* Fix device identifier of Mackie Onyx 1220/1620/1640 FireWire I/O card.
  
;firedtv:
+
;snd-dice:
:* Fix automatic retuning of DVB-C cards after temporary loss of antenna signal.
+
:* Fix device identifier of Mackie Onyx Blackbird and Onyx-i series.
:* Fix I/O to Conditional Access Module.
+
:* Improve module parameter for runtime debugging.
+
  
 +
;snd-firewire-digi00x:
 +
:* New driver for Digidesign audio interfaces: Digi 002 Console, Digi 002 Rack, Digi 003 Console, Digi 003 Rack, Digi 003 Rack+.  Written by Takashi Sakamoto.
  
== Linux 2.6.31 ==
+
;snd-firewire-lib:
 +
:* Restructured and extended for wider protocol support. Data block processing is split from isochronous packet processing.  This work was required for integration of snd-firewire-digi00x and snd-firewire-tascam because devices which are supported by these drivers do not comply with IEC 61883-6. Written by Takashi Sakamoto.
  
''9 September 2009''
+
;snd-firewire-tascam:
 +
:* New driver for TASCAM audio interfaces: FW-1082, FW-1884.  Written by Takashi Sakamoto.
  
This release brings improved support of fine-grained access permission policies for FireWire application programs in userspace, IP networking with the new FireWire driver stack, and support for FireWire disks larger than 2 TB (this is also available in some stable kernel sub-releases before 2.6.31, see below).
+
;snd-oxfw:
 +
:* Fix Mackie Onyx Satellite packet discontinuity when device is used in base station mode.
 +
:* Add support for TASCAM FireOne.
 +
:* Fix calculation of MIDI ports.
 +
:* Fix for statically linked (i.e. non-modular) builds.
  
;firewire-core, firewire-ohci, firewire-sbp2:
 
:* No longer marked as "experimental" in the kernel configuration menu.  Distributors who provided the older ieee1394 driver stack so far are encouraged to build and install both driver stacks.  Note, the new stack does not yet support studio audio devices, nor FireDTV DVB interfaces.  (Support is currently in development.)  See [[Juju Migration]] for further guidance on switching to the new drivers.
 
:* Driver source files and header files have been reorganized.  This only affects kernel driver developers.
 
  
;firewire-core:
+
== Linux 4.3 ==
:* Added the sysfs attribute "units" to node representations. Its path is /sys/bus/firewire/devices/fw[0-9]+/units and it contains tuples of specifier-ID:software-version of all units found on a node.<br>  This is used in new udev rules, released in udev v144, which selectively grant non-root users access to FireWire character device files of AV/C devices (camcorders, set top boxes, audio devices and more) and IIDC cameras (alias DCAM, industrial cameras and webcams) while other device types remain inaccessible to unprivileged users by default.
+
:* Be even more careful with Broadcast_Channel CSR accesses to avoid clashes with buggy firmwares.
+
:* Fixed rarely occurring bugs related to shutdown of isochronous DMA contexts and to DMA-mapping on platforms with non-cachecoherent DMA.  (The latter fix introduced a regression into 2.6.31-rc1, fixed since 2.6.31-rc9.)
+
  
;firewire-net:
+
''1 November 2015''
:* Added as new driver for IPv4 over 1394 for the new firewire stack, replacement of et1394 in the old stack.  Both eth1394 and firewire-net are still considered experimental due to some remaining, though different, bugs in them.
+
  
;firewire-ohci:
+
No functional changes to the FireWire subsystem.
:* Fix video reception on Ricoh R5C832.
+
:* Fix video reception from more than one camera simultaneously on Agere FW643.
+
  
;firewire-sbp2:
 
:* Added support for disks bigger than 2 TB.  The necessary fix in our two SBP-2 initiator drivers has also been released in kernel 2.6.30.5 and 2.6.27.30.<br>  Note, volume sizes bigger than 2 TB also require specific support in the SBP-2 target chipset of FireWire disk or RAID enclosures.  This is true for any operating system as initiator, not just Linux.  Check with your enclosure vendor if in doubt.
 
:* Fix potential crash after "status write for unknown orb" events.
 
  
;sbp2:
+
== Linux 4.2 ==
:* Added support for disks bigger than 2 TB.  See remarks at firewire-sbp2.
+
  
 +
''30 August 2015''
  
== Linux 2.6.30 ==
+
;snd-bebob:
 +
:* Add support for
 +
::: Digidesign Mbox 2 Pro
 +
::: Behringer FCA610, FCA1616
 +
:* Improve BeBoB v3 support (PrismSound Orpheus, Behringer UFX1604, Behringer FCA610).
 +
:* Improved clock source detection.  Add SYT-Match support.
  
''9 June 2009''
+
;snd-firewire-lib:
 +
:* Internal changes related to packet handling.
  
Most of the changes relate to extensions to the <linux/firewire-cdev.h> API which are required for advanced usage by FireWire-enabled userspace applications, especially IIDC video capture.
+
;snd-fireworks:
 +
:* Fix packet discontinuity with newer firmwares. Also fixed in v4.1.6 and v3.18.21.
  
With these updates, the newer firewire drivers are now superior to the older ieee1394 drivers in the fields of industrial video acquisition/ machine vision/ microscopy etc. &mdash; just like the new drivers have already been superior and preferred for mass storage (SBP-2) in the last two or three kernel releases.
 
  
(Regarding consumer video applications, the new drivers should now be functionally on par with &mdash; yet more secure than &mdash; the old drivers. Alas the new drivers cannot be used with studio audio equipment yet.  IP networking with the new drivers has become available in kernel 2.6.31.)
+
== Linux 4.1 ==
 +
 
 +
''21 June 2015''
 +
 
 +
No functional changes to the FireWire subsystem.
 +
 
 +
 
 +
== Linux 4.0 ==
 +
 
 +
''12 April 2015''
  
 
;firewire-core:
 
;firewire-core:
:* Optionally expose the reception timestamp of each isochronous packet, not just of interrupt packets.  This change is accompanied by an update of the constant FW_CDEV_VERSION from 1 to 2.
+
:: The vendor ID and model ID in the Configuration ROM root directory of Linux hosts was changed from 0xd00d1e:0x000001 to 0x001f11:0x023901.  This change makes firewire-core's local Configuration ROM comply with IEEE's OUI assignment rules.
:* Add ioctls for isochronous resource management (allocation and deallocation of isochronous channels and bandwidth)These do not only accomplish what the corresponding libraw1394 functions can do, they also implement optional kernel-assisted reallocation and deallocation.<br> This means that client programs do not need to implement reallocation in their bus reset handler anymore and often can get rid of bus reset handlers entirely.  Also, isochronous resources can be released by the kernel if the client program crashes or shuts down improperlyThe kernel-assisted variant of resource allocation also takes care of the grace period which is to be observed after bus resets.
+
 
:* Add ioctl to query the maximum transmission speed to/from a given node.
+
:: This has been made possible by Openmoko's granting a range of IDs to the Linux IEEE 1394 subsystemSee [[IEEE OUI Assignments]] for additional information.  This change cannot have negative impact on any standard protocols, but developers of private protocols may need to adapt if they relied on these root directory entries instead of their own unit directory entries.
:* Add ioctl for broadcast write requests. This is for example useful to control multiple similar cameras at once.  For device security reasons, broadcast write requests are restricted to addresses in Units Space.
+
 
:* Add ioctl for asynchronous stream transmission. Asynchronous streams are addressed to channels instead of nodes (like isochronous streams are tied to channels) but transmitted after asynchronous bus arbitrations (like asynchronous write requests, unlike isochronous streams).
+
:: The change was also backmerged into v3.12.51.
:* Add various consistency checks to enforce proper cdev API usage.
+
 
:* Disallow the FW_CDEV_IOC_ADD_DESCRIPTOR ioctl on any other /dev/fw* than those of local nodesThis is because userland will typically maintain an access policy based on unit directories that are present on each node, and this ioctl may therefore influence accessibility of local nodes' device files.
+
;snd-bebob:
:* Implement Broadcast_Channel register support for conformance with the 1394a bus management specification.
+
:* Fix initialization of some M-Audio devices with Linux on big-endian CPUs.  Also fixed in v3.19.5 and v3.18.13.
 +
 
 +
;snd-firewire-lib, snd-bebob, snd-dice, snd-fireworks:
 +
:* Fix device reference counting and shutdownAlso fixed in v3.19.2.
 +
 
 +
 
 +
== Linux 3.0...3.19 ==
 +
 
 +
''July 2011 &ndash; February 2015''
 +
 
 +
Support of various devices and controllers was improved.  IPv6 support was added to ''firewire-net'' (v3.10).  New drivers ware added:
 +
:* ''sbp-target'' lets a Linux node act as a storage device (v3.5),
 +
:* ''snd-isight'' for audio capture through Apple iSight FireWire webcam (v3.0),
 +
:* ''snd-scs1x'', a MIDI driver for Stanton SCS.1d and SCS.1m FireWire DJ controllers (v3.8),
 +
:* ''snd-dice'' for audio playback through some audio devices based on TC Applied Technologies' DICE chipset (v3.13), later also for audio capture and MIDI through basically all DICE based devices (v3.19),
 +
:* ''snd-bebob'' for audio I/O through BridgeCo DM1000/DM1100/DM1500 based devices with BeBoB firmware (v3.16),
 +
:* ''snd-fireworks'' for audio I/O through Echo Digital Audio Fireworks based devices (v3.16),
 +
:* ''snd-oxfw'' for audio I/O through Oxford Semiconductor OXFW970/971 based devices (v3.19)''snd-oxfw'' replaced ''snd-firewire-speakers'' in v3.19 and ''snd-scs1x'' in v4.5.
 +
The audio I/O drivers are an alternative to the existing userspace drivers which [http://ffado.org/ the FFADO project] provides.  While the FFADO drivers can only be used in conjunction with [http://jackaudio.org/ JACK], the kernelspace drivers can be used with any ALSA compatible application.  However, the kernelspace drivers only implement PCM streaming and MIDI streaming, whereas device control is meant to be provided by userspace applications like ffado-mixer.
 +
 
 +
See [[Release Notes/3.x]].
 +
 
 +
 
 +
== Linux 2.6.30...2.6.39 ==
 +
 
 +
''June 2009 &ndash; May 2011''
 +
 
 +
The older ieee1394 driver stack was removed from the kernel after it coexisted as an alternative to the current firewire drivers until kernel 2.6.36 inclusive.  Many new features and fixes went into the newer firewire drivers.  Some new drivers were added: ''firewire-net'' (IPv4 over 1394, replacing the eth1394 driver), ''nosy'' (a bus sniffer, formerly maintained outside of the kernel repository), and ''snd-firewire-speakers'' (for LaCie FireWire speakers and Griffin FireWave).
  
;firedtv:
+
See [[Release Notes/2.6.3x]].
:* Implement tuning of DVB-S2 boxes.  Also implemented in kernel 2.6.29.1.  This fixes tuning of standard definition channels.  Reception of high definition channels is not yet implemented.
+
  
  
Line 172: Line 202:
 
''February 2007 &ndash; March 2009''
 
''February 2007 &ndash; March 2009''
  
The new alternative firewire drivers were added and gradually stabilized.  Since the new drivers were not yet feature-complete, the older ieee1394 stacked remained preferred for production but received only few minor updates during this time frame.
+
The new alternative firewire drivers were added and gradually stabilized.  Since the new drivers were not yet feature-complete, the older ieee1394 stack remained preferred for production but received only few minor updates during this time frame.
  
 
See [[Release Notes/2.6.2x]].
 
See [[Release Notes/2.6.2x]].

Latest revision as of 13:58, 13 November 2016

Release Notes: Kernel Drivers

See Release Notes - Libraries for changelogs of some IEEE 1394 userspace libraries.

Release Status

The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 4.x kernels.

The drivers in Linux 2.4 were considered stable too but have not been updated anymore for a long time. Therefore they lack many features and compatibility updates which went into Linux 2.6.x...4.x releases.

The following release notes only summarize more notable changes. A complete list of IEEE 1394 related changes is available via kernel.org git:


Contents


[edit] Linux 4.9

tentative release notes as per v4.9-rc4

firewire-net
  • Add missing input validation. Invalid IP-over-1394 encapsulation headers could trigger buffer overflows, potentially leading up to remote code execution (CVE-2016-8633). Also fixed in v4.8.7 and v4.4.31.
  • Fix IP-over-1394 link fragmentation headers that were read and written incorrectly, which prevented fragmented reception from/ fragmented transmission to other stacks, including Mac OS X, Windows XP, and older Linux' eth1394. Also fixed in v4.8.7 and v4.4.31.


[edit] Linux 4.8

2 October 2016

snd-firewire-tascam
  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4 and v4.4.21.
snd-fireworks
  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4, v4.4.21, v4.1.34, v3.18.43.


[edit] Linux 4.7

24 July 2016

snd-dice
  • Add support for M-Audio Profire 610, and perhaps for Profire 2626.
snd-firewire-lib
  • Add tracepoints to dump a part of isochronous packet data in order to support debugging of device quirks and of kernel-internal packet processing. The patch changelog describes how to use this feature. A subsequent commit expands the dump format.
snd-firewire-lib, snd-bebob, snd-firewire-tascam, snd-fireworks
  • Remove matching of SYT fields of the outbound stream to those of the inbound stream since it proves to be unnecessary in practice. The same was already done in snd-dice in Linux v4.6. This simplifies the kernel code and allows for finer-grained tasklet scheduling.
snd-firewire-lib, snd-bebob, snd-firewire-digi00x, snd-firewire-tascam, snd-fireworks, snd-oxfw
  • Perform sound card registration at least 2 seconds after the last IEEE 1394 bus reset. This was already implemented for snd-dice in Linux v4.5 and is now adopted by the other FireWire audio drivers. It ensures that the bus and device firmware settle into a ready state before userspace initiate I/O to the device.


[edit] Linux 4.6

15 May 2016

snd-bebob
  • internal rework related to streaming recovery after bus reset
snd-dice
  • Change how the dependency between number of available PCM and MIDI channels versus sampling rate is handled. Also affects the hw_params ioctl interface. Userspace should set the desired sampling rate before starting PCM I/O.
  • Change how phase lock is ensured and how lock status is detected.
  • Remove matching of SYT fields of the outbound stream to those of the inbound stream. This synchronization happened when the device was configured for internal clock. It required a startup delay of the outbound stream, which caused DICE II based devices to remain silent at the first attempt to start streaming.
  • Add support for previously unavailable higher PCM channels on certain devices with high channel count, notably Focusrite Saffire PRO 40, Focusrite Liquid Saffire 56, and TC Electronic Studio Konnekt 48. These devices spread the PCM and MIDI channels across 2 tx + 2 rx IEEE 1394 channels instead of just 1 tx + 1 rx IEEE 1394 channel, as most other devices do.
snd-oxfw
  • improvements to MIDI I/O


[edit] Linux 4.5

13 March 2016

snd-dice
  • Improved handling of DICE II firmware bootstrapping during device start-up.
  • Avoid time-out when PCM streaming is started.
snd-firewire-tascam
  • Add support for TASCAM FW-1804.
snd-scs1x
  • The functionality of this driver was moved to the snd-oxfw driver, and the now obsolete snd-scs1x module has been removed.


[edit] Linux 4.4

10 January 2016

firewire-ohci
  • Work around JMicron JMB38x initialization quirk. Affected isochronous transmission, e.g. audio via FFADO or ALSA. Also fixed in v4.3.3, v4.2.8, v4.1.15, v3.18.26, v3.16.35, v3.14.59, v3.12.52, v3.10.95, v3.4.113, v3.2.74.
snd-bebob
  • Fix device identifier of Mackie Onyx 1220/1620/1640 FireWire I/O card.
snd-dice
  • Fix device identifier of Mackie Onyx Blackbird and Onyx-i series.
snd-firewire-digi00x
  • New driver for Digidesign audio interfaces: Digi 002 Console, Digi 002 Rack, Digi 003 Console, Digi 003 Rack, Digi 003 Rack+. Written by Takashi Sakamoto.
snd-firewire-lib
  • Restructured and extended for wider protocol support. Data block processing is split from isochronous packet processing. This work was required for integration of snd-firewire-digi00x and snd-firewire-tascam because devices which are supported by these drivers do not comply with IEC 61883-6. Written by Takashi Sakamoto.
snd-firewire-tascam
  • New driver for TASCAM audio interfaces: FW-1082, FW-1884. Written by Takashi Sakamoto.
snd-oxfw
  • Fix Mackie Onyx Satellite packet discontinuity when device is used in base station mode.
  • Add support for TASCAM FireOne.
  • Fix calculation of MIDI ports.
  • Fix for statically linked (i.e. non-modular) builds.


[edit] Linux 4.3

1 November 2015

No functional changes to the FireWire subsystem.


[edit] Linux 4.2

30 August 2015

snd-bebob
  • Add support for
Digidesign Mbox 2 Pro
Behringer FCA610, FCA1616
  • Improve BeBoB v3 support (PrismSound Orpheus, Behringer UFX1604, Behringer FCA610).
  • Improved clock source detection. Add SYT-Match support.
snd-firewire-lib
  • Internal changes related to packet handling.
snd-fireworks
  • Fix packet discontinuity with newer firmwares. Also fixed in v4.1.6 and v3.18.21.


[edit] Linux 4.1

21 June 2015

No functional changes to the FireWire subsystem.


[edit] Linux 4.0

12 April 2015

firewire-core
The vendor ID and model ID in the Configuration ROM root directory of Linux hosts was changed from 0xd00d1e:0x000001 to 0x001f11:0x023901. This change makes firewire-core's local Configuration ROM comply with IEEE's OUI assignment rules.
This has been made possible by Openmoko's granting a range of IDs to the Linux IEEE 1394 subsystem. See IEEE OUI Assignments for additional information. This change cannot have negative impact on any standard protocols, but developers of private protocols may need to adapt if they relied on these root directory entries instead of their own unit directory entries.
The change was also backmerged into v3.12.51.
snd-bebob
  • Fix initialization of some M-Audio devices with Linux on big-endian CPUs. Also fixed in v3.19.5 and v3.18.13.
snd-firewire-lib, snd-bebob, snd-dice, snd-fireworks
  • Fix device reference counting and shutdown. Also fixed in v3.19.2.


[edit] Linux 3.0...3.19

July 2011 – February 2015

Support of various devices and controllers was improved. IPv6 support was added to firewire-net (v3.10). New drivers ware added:

  • sbp-target lets a Linux node act as a storage device (v3.5),
  • snd-isight for audio capture through Apple iSight FireWire webcam (v3.0),
  • snd-scs1x, a MIDI driver for Stanton SCS.1d and SCS.1m FireWire DJ controllers (v3.8),
  • snd-dice for audio playback through some audio devices based on TC Applied Technologies' DICE chipset (v3.13), later also for audio capture and MIDI through basically all DICE based devices (v3.19),
  • snd-bebob for audio I/O through BridgeCo DM1000/DM1100/DM1500 based devices with BeBoB firmware (v3.16),
  • snd-fireworks for audio I/O through Echo Digital Audio Fireworks based devices (v3.16),
  • snd-oxfw for audio I/O through Oxford Semiconductor OXFW970/971 based devices (v3.19). snd-oxfw replaced snd-firewire-speakers in v3.19 and snd-scs1x in v4.5.

The audio I/O drivers are an alternative to the existing userspace drivers which the FFADO project provides. While the FFADO drivers can only be used in conjunction with JACK, the kernelspace drivers can be used with any ALSA compatible application. However, the kernelspace drivers only implement PCM streaming and MIDI streaming, whereas device control is meant to be provided by userspace applications like ffado-mixer.

See Release Notes/3.x.


[edit] Linux 2.6.30...2.6.39

June 2009 – May 2011

The older ieee1394 driver stack was removed from the kernel after it coexisted as an alternative to the current firewire drivers until kernel 2.6.36 inclusive. Many new features and fixes went into the newer firewire drivers. Some new drivers were added: firewire-net (IPv4 over 1394, replacing the eth1394 driver), nosy (a bus sniffer, formerly maintained outside of the kernel repository), and snd-firewire-speakers (for LaCie FireWire speakers and Griffin FireWave).

See Release Notes/2.6.3x.


[edit] Linux 2.6.20...2.6.29

February 2007 – March 2009

The new alternative firewire drivers were added and gradually stabilized. Since the new drivers were not yet feature-complete, the older ieee1394 stack remained preferred for production but received only few minor updates during this time frame.

See Release Notes/2.6.2x.


[edit] Linux 2.6.12...2.6.19

June 2005 – November 2006

This is a stabilization phase of the ieee1394 driver stack in Linux 2.6.

See Release Notes/2.6.1x.

Personal tools