About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / ABI / testing / sysfs-firmware-memmap




Custom Search

Based on kernel version 3.16. Page generated on 2014-08-06 21:35 EST.

1	What:		/sys/firmware/memmap/
2	Date:		June 2008
3	Contact:	Bernhard Walle <bernhard.walle@gmx.de>
4	Description:
5			On all platforms, the firmware provides a memory map which the
6			kernel reads. The resources from that memory map are registered
7			in the kernel resource tree and exposed to userspace via
8			/proc/iomem (together with other resources).
9	
10			However, on most architectures that firmware-provided memory
11			map is modified afterwards by the kernel itself, either because
12			the kernel merges that memory map with other information or
13			just because the user overwrites that memory map via command
14			line.
15	
16			kexec needs the raw firmware-provided memory map to setup the
17			parameter segment of the kernel that should be booted with
18			kexec. Also, the raw memory map is useful for debugging. For
19			that reason, /sys/firmware/memmap is an interface that provides
20			the raw memory map to userspace.
21	
22			The structure is as follows: Under /sys/firmware/memmap there
23			are subdirectories with the number of the entry as their name:
24	
25				/sys/firmware/memmap/0
26				/sys/firmware/memmap/1
27				/sys/firmware/memmap/2
28				/sys/firmware/memmap/3
29				...
30	
31			The maximum depends on the number of memory map entries provided
32			by the firmware. The order is just the order that the firmware
33			provides.
34	
35			Each directory contains three files:
36	
37			start	: The start address (as hexadecimal number with the
38				  '0x' prefix).
39			end	: The end address, inclusive (regardless whether the
40				  firmware provides inclusive or exclusive ranges).
41			type	: Type of the entry as string. See below for a list of
42				  valid types.
43	
44			So, for example:
45	
46				/sys/firmware/memmap/0/start
47				/sys/firmware/memmap/0/end
48				/sys/firmware/memmap/0/type
49				/sys/firmware/memmap/1/start
50				...
51	
52			Currently following types exist:
53	
54			  - System RAM
55			  - ACPI Tables
56			  - ACPI Non-volatile Storage
57			  - reserved
58	
59			Following shell snippet can be used to display that memory
60			map in a human-readable format:
61	
62			-------------------- 8< ----------------------------------------
63			  #!/bin/bash
64			  cd /sys/firmware/memmap
65			  for dir in * ; do
66			      start=$(cat $dir/start)
67			      end=$(cat $dir/end)
68			      type=$(cat $dir/type)
69			      printf "%016x-%016x (%s)\n" $start $[ $end +1] "$type"
70			  done
71			-------------------- >8 ----------------------------------------
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.