)]}'
{
  "commit": "69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7",
  "tree": "e9bb108c5ec36c666d64a52ca35ccf0197c84306",
  "parents": [
    "6247943d8ab699b57653afd453a4940cca70ef8a"
  ],
  "author": {
    "name": "Bernhard Walle",
    "email": "bwalle@suse.de",
    "time": "Fri Jun 27 13:12:54 2008 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Jul 08 17:55:41 2008 +0200"
  },
  "message": "sysfs: add /sys/firmware/memmap\n\nThis patch adds /sys/firmware/memmap interface that represents the BIOS\n(or Firmware) provided memory map. The tree looks like:\n\n    /sys/firmware/memmap/0/start   (hex number)\n                           end     (hex number)\n                           type    (string)\n    ...                 /1/start\n                           end\n                           type\n\nWith the following shell snippet one can print the memory map in the same form\nthe kernel prints itself when booting on x86 (the E820 map).\n\n  --------- 8\u003c --------------------------\n    #!/bin/sh\n    cd /sys/firmware/memmap\n    for dir in * ; do\n        start\u003d$(cat $dir/start)\n        end\u003d$(cat $dir/end)\n        type\u003d$(cat $dir/type)\n        printf \"%016x-%016x (%s)\\n\" $start $[ $end +1] \"$type\"\n    done\n  --------- \u003e8 --------------------------\n\nThat patch only provides the needed interface:\n\n 1. The sysfs interface.\n 2. The structure and enumeration definition.\n 3. The function firmware_map_add() and firmware_map_add_early()\n    that should be called from architecture code (E820/EFI, for\n    example) to add the contents to the interface.\n\nIf the kernel is compiled without CONFIG_FIRMWARE_MEMMAP, the interface does\nnothing without cluttering the architecture-specific code with #ifdef\u0027s.\n\nThe purpose of the new interface is kexec: While /proc/iomem represents\nthe *used* memory map (e.g. modified via kernel parameters like \u0027memmap\u0027\nand \u0027mem\u0027), the /sys/firmware/memmap tree represents the unmodified memory\nmap provided via the firmware. So kexec can:\n\n - use the original memory map for rebooting,\n - use the /proc/iomem for setting up the ELF core headers for kdump\n   case that should only represent the memory of the system.\n\nThe patch has been tested on i386 and x86_64.\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nAcked-by: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: kexec@lists.infradead.org\nCc: yhlu.kernel@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d99ee6ae02ec786aef9ed6373bc91d1f5d1fb19",
      "new_mode": 33188,
      "new_path": "Documentation/ABI/testing/sysfs-firmware-memmap"
    },
    {
      "type": "modify",
      "old_id": "dc2cec6127d1816982558de72a2ee9e4c1b884a5",
      "old_mode": 33188,
      "old_path": "drivers/firmware/Kconfig",
      "new_id": "ebb9e51deb0cd86acb38ea5b0180d7c1b16a862a",
      "new_mode": 33188,
      "new_path": "drivers/firmware/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "4c9147154df891d0659cd1f68582a9f6fca4a196",
      "old_mode": 33188,
      "old_path": "drivers/firmware/Makefile",
      "new_id": "1c3c17343dbeabb730d0bbc6313f7dca7ca1b364",
      "new_mode": 33188,
      "new_path": "drivers/firmware/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e23399c7f7735ad8677d7f011821cc5d3fa56717",
      "new_mode": 33188,
      "new_path": "drivers/firmware/memmap.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "acbdbcc160518ab81fb7c7197d661a37b5303aab",
      "new_mode": 33188,
      "new_path": "include/linux/firmware-map.h"
    }
  ]
}
