Blame view

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