[Xenomai] rtdm_iomap_to_user caching followup
jmelville at mitre.org
Wed Aug 20 16:46:50 CEST 2014
There was a patch applied back in January 2013 to disable caching with
memory areas mapped with rtdm_iomap_to_user.
Henri Roosen followed up in September 2013 to say that he still saw
caching behavior with rtdm_iomap_to_user. The original patch didn't
cover the ifdef LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) &&
defined(CONFIG_MMU). He submitted two patch options but I didn't see any
I'm currently working with a Zynq ZC706, using Xenomai 2.6.3 on top of
the Xilinx fork of the 3.8 kernel, as described in the README. The FPGA
guys gave me a test FPGA image with a (dumb) AXI slave that has a very
small register space. Pulling a cache line actually overflows the
register space and causes the bus to lock up. I added a logic analyzer
block to the FPGA to confirm the access addresses.
More importantly, I don't want any of that address space cached even
when the register space gets bigger. I was able to fix my problems by
changing this line:
- remap_pfn_range(vma,from,(to) >> PAGE_SHIFT,size,prot); \
+ remap_pfn_range(vma,from,(to) >>
Can we apply the patch? I can provide a new one if it is lost. Or is
there a better way to use rtdm_iomap_to_user that lets the caller
specify caching behavior? I couldn't find one.
As a side note, has anyone successfully used Xenomai with Zynq on
kernels newer than 3.8? I haven't found any newer pre/post patches and
haven't had time to play around with manually merging it yet. I'd be
willing to help if this is an area of need.
More information about the Xenomai