Release Notes

From IEEE 1394 FireWire Wiki
Revision as of 13:58, 13 November 2016 by Stefanr (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 git:


Linux 4.9

tentative release notes as per v4.9-rc4

  • 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.

Linux 4.8

2 October 2016

  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4 and v4.4.21.
  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4, v4.4.21, v4.1.34, v3.18.43.

Linux 4.7

24 July 2016

  • Add support for M-Audio Profire 610, and perhaps for Profire 2626.
  • 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.

Linux 4.6

15 May 2016

  • internal rework related to streaming recovery after bus reset
  • 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.
  • improvements to MIDI I/O

Linux 4.5

13 March 2016

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

Linux 4.4

10 January 2016

  • 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.
  • Fix device identifier of Mackie Onyx 1220/1620/1640 FireWire I/O card.
  • Fix device identifier of Mackie Onyx Blackbird and Onyx-i series.
  • 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.
  • 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.
  • New driver for TASCAM audio interfaces: FW-1082, FW-1884. Written by Takashi Sakamoto.
  • 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.

Linux 4.3

1 November 2015

No functional changes to the FireWire subsystem.

Linux 4.2

30 August 2015

  • 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.
  • Internal changes related to packet handling.
  • Fix packet discontinuity with newer firmwares. Also fixed in v4.1.6 and v3.18.21.

Linux 4.1

21 June 2015

No functional changes to the FireWire subsystem.

Linux 4.0

12 April 2015

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.
  • 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.

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.

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.

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.

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