1. 09 Jul, 2008 36 commits
  2. 08 Jul, 2008 4 commits
    • Bernhard Walle's avatar
      x86: use FIRMWARE_MEMMAP on x86/E820 · 5dfcf14d
      Bernhard Walle authored
      This patch uses the /sys/firmware/memmap interface provided in the last patch
      on the x86 architecture when E820 is used. The patch copies the E820
      memory map very early, and registers the E820 map afterwards via
      firmware_map_add_early().
      Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
      Acked-by: default avatarGreg KH <gregkh@suse.de>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: kexec@lists.infradead.org
      Cc: yhlu.kernel@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      5dfcf14d
    • Bernhard Walle's avatar
      sysfs: add /sys/firmware/memmap · 69ac9cd6
      Bernhard Walle authored
      This patch adds /sys/firmware/memmap interface that represents the BIOS
      (or Firmware) provided memory map. The tree looks like:
      
          /sys/firmware/memmap/0/start   (hex number)
                                 end     (hex number)
                                 type    (string)
          ...                 /1/start
                                 end
                                 type
      
      With the following shell snippet one can print the memory map in the same form
      the kernel prints itself when booting on x86 (the E820 map).
      
        --------- 8< --------------------------
          #!/bin/sh
          cd /sys/firmware/memmap
          for dir in * ; do
              start=$(cat $dir/start)
              end=$(cat $dir/end)
              type=$(cat $dir/type)
              printf "%016x-%016x (%s)\n" $start $[ $end +1] "$type"
          done
        --------- >8 --------------------------
      
      That patch only provides the needed interface:
      
       1. The sysfs interface.
       2. The structure and enumeration definition.
       3. The function firmware_map_add() and firmware_map_add_early()
          that should be called from architecture code (E820/EFI, for
          example) to add the contents to the interface.
      
      If the kernel is compiled without CONFIG_FIRMWARE_MEMMAP, the interface does
      nothing without cluttering the architecture-specific code with #ifdef's.
      
      The purpose of the new interface is kexec: While /proc/iomem represents
      the *used* memory map (e.g. modified via kernel parameters like 'memmap'
      and 'mem'), the /sys/firmware/memmap tree represents the unmodified memory
      map provided via the firmware. So kexec can:
      
       - use the original memory map for rebooting,
       - use the /proc/iomem for setting up the ELF core headers for kdump
         case that should only represent the memory of the system.
      
      The patch has been tested on i386 and x86_64.
      Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
      Acked-by: default avatarGreg KH <gregkh@suse.de>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: kexec@lists.infradead.org
      Cc: yhlu.kernel@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      69ac9cd6
    • Yinghai Lu's avatar
      x86: remove acpi_srat config v2 · 6247943d
      Yinghai Lu authored
      use ACPI_NUMA directly
      
      and move srat_32.c to mm/
      Signed-off-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      6247943d
    • Yinghai Lu's avatar
      x86: remove have_arch_parse_srat -v2 · 698839fe
      Yinghai Lu authored
      we already have the same srat handling interface for 32bit.
      Signed-off-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      698839fe