From: Jonathan W. <jw...@ju...> - 2013-06-21 11:28:51
|
On Fri, Jun 21, 2013 at 02:56:35PM +0400, ??????? ?????? wrote: > > However, maybe you don't actually have to delve into all this but can > > proceed to work at a higher level with libffado instead of libraw1394 > > once you managed to initialize the FW 1814 firmware. > I'd love to proceed with higher level. I looked into ffado code for last 3 > days and still do not have full undrstanding of its structure and more > important function call flow. Let's imagine I did these things > > 1. Added device to 'configuration' and set driver to 'm-audio' (5) > 2. modified maudio_avdevice.cpp and reinstalled > > how to test it? are there any ready to use test apps for this or at least > the app I can use as base for my own test app? The easiest way to test it would be via ffado-test in the first instance. Once that program was shown to deal with the device initialisation correctly you could move on to using FFADO via JACK to test the audio streaming: jackd -d firewire for example. The primary way of using interfaces supported by FFADO is through JACK. JACK is a framework which allows applications and audio hardware to send audio freely between themselves. When the JACK server (jackd) is running, your "test app" would simply connect to jackd in the same way as any other jack-enabled audio program. For more information about jack, check out that project's website at http://www.jack-audio.org You mentioned the maudio_avdevice.cpp module. This is aimed primarily at the FW-410 device which is based on the BeBoB chipset. We suspect that the FW-1814 is based on DICE, so a separate driver would be needed. However, this would not be needed initially: at this early stage all you want to do is see how far the generic DICE code gets with this interface. So creating a configuration entry like the following is probably enough to get you started: { # M-Audio FW-1814 vendorid = 0x000d6c; modelid = 0x00010071; vendorname = "M-Audio"; modelname = "FW-1814"; driver = 20; # DICE mixer = "Generic_Dice_EAP"; }, > > The easiest way to determine what the situation is would be to obtain the > > vendor and model ID of the FW-1814 using gscanbus ... > these are config ROM dumps from my initial email for both nodes > : Apologies - I forgot you'd included these earlier. > The catch is the device starts in 'bootloader' mode after power-on-reset > and has to be switched to 'FW 1814' mode by special command which I can > send manually using is using simple utility 'fireconntrol' with my > modifications to send variable length block Right. That is different to most other interfaces. However, I don't think it would be difficult to accommodate this within ffado. There may be a need to include a configuration entry with the "boot loader" model ID (0x00010070) in addition to the main one. Then if the FW1814 probe/discover methods detected this they could arrange to send the special command at that point. After delaying for a suitable time it could then retry the probe to find the initialised FW-1814. It may even be possible to have the initialisation command in the probe() method so that by the time discover() is called the interface is ready to go. > exactly the same procedure is described in > http://sourceforge.net/mailarchive/forum.php?thread_name=5187BDB2.8030705%40sakamocchi.jp&forum_name=ffado-user > (thanks Stefan!) > > now we can say for sure that both WF410 and FW 1814 follow the same > start-up procedure. Since the FW-410 is BoBob-based, perhaps this indicates that the FW-1814 is also a BeBob device. If true, my comment above about the maudio_avdevice.cpp module is not true and it would be the applicable place to put FW-1814 code. However, M-Audio could easily have used the same startup sequence for both regardless of the underlying chipset. > I also looked into FW1814 firmware dump and I can see a lot of debug > messages inside. There must be serial console somethere on PCB. I'm going > to disassemble my device and find the console test points That might show up something interesting. > Looking into FW410 firmware I can see a lot of references to 'BeBob' but > there are none of them in FW1814 dump. This may indicate that the FW-1814 is not a BoBob device - perhaps it's DICE, or maybe it's something else entirely different. Regards jonathan |