Mapping unchached memory with UDD

Wolfgang Grandegger wg at grandegger.com
Sat Mar 16 12:48:31 CET 2019


Hello Philippe,

Am 14.03.19 um 15:32 schrieb Philippe Gerum:
> 
> Hi Wolfgang,
> 
> On 3/14/19 11:38 AM, Wolfgang Grandegger via Xenomai wrote:
>> Hello,
>>
>> I'm writing a little UDD driver to handling interrupts and shared memory
>> to communicate with a co-processor. Is it possible to setup and map a
>> "mem_region" for *uncahced* memory. Will it be automatically uncached if
>> it's of type UDD_MEM_PHY?
>>
> 
> Yep. Such requests is routed to RTDM's iomem mapping helper, which does:
> 
> static int mmap_iomem_helper(struct vm_area_struct *vma, phys_addr_t pa)
> {
> 	pgprot_t prot = PAGE_SHARED;
> 	unsigned long len;
> 
> 	len = vma->vm_end - vma->vm_start;
> 	...
> 	vma->vm_page_prot = pgprot_noncached(prot);
> 
> 	return remap_pfn_range(vma, vma->vm_start, pa >> PAGE_SHIFT,
> 			       len, vma->vm_page_prot);
> }

I was aware of that code! I suspected some other magic when mapping
system memory with UDD_MEM_PHY. Maybe it's a barrier issue in the A9 or
M4 code.

Thanks,

Wolfgang.




More information about the Xenomai mailing list