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

H. Peter Anvin hpa at zytor.com
Sun Jun 19 19:44:32 EDT 2011


On 06/19/2011 04:02 PM, Ryan Mallon wrote:
> On 17/06/11 19:30, Ingo Molnar wrote:
>> * Petr Tesarik<ptesarik at suse.cz>  wrote:
>>
>>> 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.




More information about the linux-arm-kernel mailing list