cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sysfs-firmware-memmap (2429B)


      1What:		/sys/firmware/memmap/
      2Date:		June 2008
      3Contact:	Bernhard Walle <bernhard.walle@gmx.de>
      4Description:
      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		========  =====================================================
     38		start	  The start address (as hexadecimal number with the
     39			  '0x' prefix).
     40		end	  The end address, inclusive (regardless whether the
     41			  firmware provides inclusive or exclusive ranges).
     42		type	  Type of the entry as string. See below for a list of
     43			  valid types.
     44		========  =====================================================
     45
     46		So, for example::
     47
     48			/sys/firmware/memmap/0/start
     49			/sys/firmware/memmap/0/end
     50			/sys/firmware/memmap/0/type
     51			/sys/firmware/memmap/1/start
     52			...
     53
     54		Currently following types exist:
     55
     56		  - System RAM
     57		  - ACPI Tables
     58		  - ACPI Non-volatile Storage
     59		  - Unusable memory
     60		  - Persistent Memory (legacy)
     61		  - Persistent Memory
     62		  - Soft Reserved
     63		  - reserved
     64
     65		Following shell snippet can be used to display that memory
     66		map in a human-readable format::
     67
     68		  #!/bin/bash
     69		  cd /sys/firmware/memmap
     70		  for dir in * ; do
     71		      start=$(cat $dir/start)
     72		      end=$(cat $dir/end)
     73		      type=$(cat $dir/type)
     74		      printf "%016x-%016x (%s)\n" $start $[ $end +1] "$type"
     75		  done