Thread (39 messages) 39 messages, 11 authors, 2011-07-05

[PATCH 00/10] Enhance /dev/mem to allow read/write of arbitrary physical addresses

From: hpa@zytor.com (H. Peter Anvin)
Date: 2011-06-19 23:49:40
Also in: linux-sh, lkml

On 06/19/2011 04:02 PM, Ryan Mallon wrote:
On 17/06/11 19:30, Ingo Molnar wrote:
quoted
* Petr Tesarik[off-list ref]  wrote:
quoted
This patch series enhances /dev/mem, so that read and write is
possible at any address. The patchset includes actual
implementation for x86.
This series lacks a description of why this is desired.

My strong opinion is that it's not desired at all: /dev/mem never
worked beyond 4G addresses so by today it has become largely obsolete
and is on the way out really.

I'm aware of these current /dev/mem uses:

  - Xorg maps below 4G non-RAM addresses and the video BIOS

  - It used to have some debugging role but these days kexec and kgdb
    has largely taken over that role - partly due to the 4G limit.

  - there's some really horrible out-of-tree drivers that do mmap()s
    via /dev/mem, those should be fixed if they want to move beyond
    4G: their char device should be mmap()able.
There are drivers where this makes sense. For example an FPGA device
with a proprietary register layout on the memory bus can be done this
way. The FPGA can simply be mapped in user-space via /dev/mem and
handled there. If the device requires no access other than memory bus
reads and writes then writing a custom char device driver just to get an
mmap function seems a bit overkill.
There are some test drivers which really want /dev/mem to work.

FPGA devices like that really should be exported as resources from a
platform driver or device tree driver, at which point those resources
can be memory-mapped.  That being said, using /dev/mem for fixed
resources is semicommon.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help