Tag Archives: driver

ARM Cache Flush on mmap’d Buffers with __clear_cache()

Memory mapped operation from user space on devices is a powerful technique to improve runtime performance. Some ARM processors use caches keyed to virtual addresses, instead of normally to physical addresses. The problem, is that if the kernel maps the … Continue reading

Posted in All, C/C++, Hardware | Tagged , , , , , , , | 2 Comments

ARM MMU Theory and Practice

In his blog “Turning on an ARM MMU” Andrew Murry listed the schemes: a memory manager would use in their combination form: Split the entire virtual range into pages and point them all to one same physical page. This is … Continue reading

Posted in All, C/C++, Hardware | Tagged , , , , , , , , | 2 Comments

Mapping DMA Buffers to User Space on Linux with mmap

Memory mapped operation from user space on devices is a powerful technique to improve runtime performance of a user space application. The technique, conceptually is simple, yet is often hard to do correctly.

Posted in All, C/C++, Hardware | Tagged , , , , , , | 2 Comments

Linux Kernel ioctl(), unlocked_ioctl(), and compat_ioctl()

The ioctl() has been a common way of passing control into a kernel. Recent change of Linux kernel requires new driver be developed without resorting to the big kernel lock. This article titled “the new way of ioctl()” explain it … Continue reading

Posted in All, C/C++ | Tagged , | 1 Comment