Markus Osterried (BA/EDD) wrote:
> Hello,
> I want to use rtdm_iomap_to_user() to map our device registers to user 
> space.
> But this doesn't work, our application just crashes when I read from 
> the mapped registers.
> When I insert the line
>         vma->vm_page_prot = phys_mem_access_prot(filp, 
> paddr>>PAGE_SHIFT, size, vma->vm_page_prot);
> in rtdm_mmap_buffer() just before calling xnarch_remap_io_page_range() 
> it works fine.
> This is just like it is done in /drivers/char/mem.c and in 
> /drivers/video/fbmem.c.
> But I think this is architecture and kernel version dependent and I 
> don't know whether rtdm_mmap_buffer() is the right place.
> I use Xenomai 2.3.1 and Linux 2.6.18 with PowerPC CPU.
> What is the best solution? Everyone else seen this problem?

I had the same problem, but I solved this by using 2 drivers, one linux 
driver that implemented mmap, and an RTDM driver for the realtime 
functions.  On startup I do the mmap, and then enter RT-mode and can use 
this mapped area in my RT-application. But it would be better if the 
mmap function would also be supported by Xenomai.

Kind regards,
    Johan Borkhuis

Xenomai-core mailing list

Reply via email to