[alsa-devel] [PATCH 1/3] fireface: add skeleton for RME Fireface series
Jonathan Woithe
jwoithe at just42.net
Mon Dec 7 03:05:26 CET 2015
On Mon, Dec 07, 2015 at 10:32:26AM +0900, Takashi Sakamoto wrote:
> On Dec 07 2015 07:13, Jonathan Woithe wrote:
> >>It's reasonable that these models use different protocol for
> >>communication.
> >
> >For FF400 and FF800 the streaming protocol is very similar. I expect the
> >same to hold for the newer devices too, but will be able to say more once I
> >get a chance to fully probe the UFX. In other words, at this stage it is
> >fair to say that the streaming component for all devices will be similar,
> >and there is probably no reason to consider there being three completely
> >different firmwares. There are obviously some differences which will need
> >to be allowed for in places, but the same is true for almost every device
> >family.
>
> If so, why the vendor (RME GmbH) produces these different firmwares? Could
> I request your opinions about it?
The hardware used is different in each model. The Fireface product line is
FPGA-based and as such the "firmware" (which is as much to do with the FPGA
bitstream as it is to do with software) is very tightly bound to the exact
nature of the componentry which the FPGA needs to interface with. This is
why there are separate firmwares for each model. However, the programming
interface exposed to the bus by the different firmwares have a high degree
of similarity. There are some differences which are mostly evolutionary,
corresponding to improved ways to implement things in the FPGA, better PCB
layour, and so on. However, the basic ideas remain the same. This applies
to the FF400 and FF800 and I expect the streaming portion of the newer units
as well.
RME has revised the signal routing and control portions of their interfaces
in the last few years which has, I expect, changed the way mixer and DSP
control is implemented. I expect this doesn't impact the streaming
components significantly, although as noted earlier I need to confirm this.
This newer implementation is known as TotalMixFX while the earlier one was
referred to as TotalMix.
To summarise, the firmware which goes into an RME Fireface interface is
predominantly an FPGA configuration bitstream and is therefore tightly bound
to the underlying hardware. Therefore there is per-device firmware.
However, the exposed interface remains consistent across devices.
Does that address your concerns, or have I misinterpreted what you are
asking or referring to?
> >>+ /* TODO: how to detect all of models? */
> >>+ model = "Fireface 400";
> >
> >Though the unit version field of the ConfigROM.
> >
> >Once I get my head around git and how best to keep track of these patch
> >series I can provide a patch for this. Despite several attempts to truly
> >understand git over the last few years I have so far failed abysmally. :-(
>
> Currently, I have no direction to support models except for FF400 because
> I've never seen their packets. Even if you insists that they are similar,
> actually they're somewhat different (and I guess that the difference is
> larger than you expect, at least, isochronous packet streaming management).
I have been working with both the FF400 and the FF800 at the driver level
since 2009. I am intimately familiar with the isochronous streaming systems
of both and don't have to guess what the differences might be. I know what
the differences are, and as I eluded to earlier they are not much more than
superficial.
Regards
jonathan
More information about the Alsa-devel
mailing list