Re: IIO advise + help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Alex and Lars and IIO Mainteners,

Many thanks for your detailed, helpful and quick answers, I really appreciate it. I will assimilate all your informations and links and let you know how it goes.
Best regards,
Michel Arruat.

On 3/13/21 11:46 AM, Lars-Peter Clausen wrote:
On 3/12/21 5:54 PM, Michel Arruat wrote:
Dear IIO Maintainers,

I'm starting studying IIO framework in order to migrate our acquisition systems, based on fast ADC, to this framework. So far we are using our framework named ZIO which was developed more than 10 years ago, when IIO was not mature enough to handle high speed constraints, large DMA transfer(>256MB) and zero copy.
Out of curiosity https://ohwr.org/project/zio

I did have a few discussions with Frederico and Alessandro back in the day (maybe 6-7 years now) about what can be done to combine IIO and ZIO. Unfortunately we couldn't quite get agreement on whether it is better to have one or two frameworks.

One thing where IIO and ZIO differ is that IIO is more around streaming data, while ZIO is around packetized data. In ZIO when you capture data you get a header with metadata.

But having support for packetized data with metadata in addition to streaming data is something we wanted to have for IIO for a while now. Just nobody has implemented it yet.

I know that there are a few people that use IIO with packetized data, but it is sort of in a hacky way where the userspace application uses the streaming interface but captures exactly the number of bytes that are in a packet. This sort of works, but having proper packetized data support would be nice.


The idea is to get rid of our local framework and move to IIO to benefit from the large Users community. For now, most of our drivers are running on x86_64 architecture, even if future applications will run on SoC (Zynq UltraScale+). I made a first prototype, widely inspired from your "ad_adc.c" driver found on your git repo, with a 4.18 kernel. I am facing some issues including kernel Oops while unloading the module. Could you please let me know which minimal kernel version is required to use the "IIO DMA engine buffer" features. In addition, I would really appreciate if you could point me to some reference IIO ADC driver implementation that handles similar DMA transfer size with good performances.

As Alex said high-speed support is still in progress of being upstreamed.

I do maintain a set of branches for recent Linux LTS releases which have a minimum set of patches to get high-speed support enabled.

See https://github.com/larsclausen/linux/branches

Maybe this is helpful since you should be able to easily import them into your kernel tree.

- Lars




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux