1. 05 8月, 2011 1 次提交
  2. 15 6月, 2010 1 次提交
    • A
      powerpc: Move kdump default base address to 64MB on 64bit · b5416ca9
      Anton Blanchard 提交于
      We are seeing boot fails on some System p machines when using the kdump
      crashkernel= boot option. The default kdump base address is 32MB, so if we
      reserve 256MB for kdump then we reserve all of the RMO except the first 32MB.
      
      We really want kdump to reserve some memory in the RMO and most of it
      elsewhere but that will require more significant changes. For now we can shift
      the default base address to 64MB when CONFIG_PPC64 and CONFIG_RELOCATABLE are
      set. This isn't quite correct since what we really care about is the kdump
      kernel is relocatable, but we already make the assumption that base kernel
      and kdump kernel have the same CONFIG_RELOCATABLE setting, eg:
      
      #ifndef CONFIG_RELOCATABLE
              if (crashk_res.start != KDUMP_KERNELBASE)
                      printk("Crash kernel location must be 0x%x\n",
                                      KDUMP_KERNELBASE);
      ...
      
      RTAS is instantiated towards the top of our RMO, so if we were to go any
      higher we risk not having enough RMO memory for the kdump kernel on boxes
      with a 128MB RMO.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b5416ca9
  3. 23 12月, 2008 1 次提交
  4. 31 10月, 2008 2 次提交
    • M
      powerpc: Use is_kdump_kernel() · 62a8bd6c
      Milton Miller 提交于
      linux/crash_dump.h defines is_kdump_kernel() to be used by code that
      needs to know if the previous kernel crashed instead of a (clean) boot
      or reboot.
      
      This updates the just added powerpc code to use it.  This is needed
      for the next commit, which will remove __kdump_flag.
      Signed-off-by: NMilton Miller <miltonm@bga.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      62a8bd6c
    • M
      powerpc: Kexec exit should not use magic numbers · 1767c8f3
      Milton Miller 提交于
      Commit 54622f10 ("powerpc: Support for
      relocatable kdump kernel") added a magic flag value in a register to
      tell purgatory that it should be a panic kernel.  This part is wrong
      and is reverted by this commit.
      
      The kernel gets a list of memory blocks and a entry point from user space.
      Its job is to copy the blocks into place and then branch to the designated
      entry point (after turning "off" the mmu).
      
      The user space tool inserts a trampoline, called purgatory, that runs
      before the user supplied code.   Its job is to establish the entry
      environment for the new kernel or other application based on the contents
      of memory.  The purgatory code is compiled and embedded in the tool,
      where it is later patched using the elf symbol table using elf symbols.
      
      Since the tool knows it is creating a purgatory that will run after a
      kernel crash, it should just patch purgatory (or the kernel directly)
      if something needs to happen.
      Signed-off-by: NMilton Miller <miltonm@bga.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1767c8f3
  5. 22 10月, 2008 1 次提交
    • M
      powerpc: Support for relocatable kdump kernel · 54622f10
      Mohan Kumar M 提交于
      This adds relocatable kernel support for kdump. With this one can
      use the same regular kernel to capture the kdump. A signature (0xfeed1234)
      is passed in r6 from panic code to the next kernel through kexec_sequence
      and purgatory code. The signature is used to differentiate between
      kdump kernel and non-kdump kernels.
      
      The purgatory code compares the signature and sets the __kdump_flag in
      head_64.S.  During the boot up, kernel code checks __kdump_flag and if it
      is set, the kernel will behave as relocatable kdump kernel. This kernel
      will boot at the address where it was loaded by kexec-tools ie. at the
      address reserved through crashkernel boot parameter.
      
      CONFIG_CRASH_DUMP depends on CONFIG_RELOCATABLE option to build kdump
      kernel as relocatable. So the same kernel can be used as production and
      kdump kernel.
      
      This patch incorporates the changes suggested by Paul Mackerras to avoid
      GOT use and to avoid two copies of the code.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NMohan Kumar M <mohan@in.ibm.com>
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      54622f10
  6. 04 8月, 2008 1 次提交
  7. 24 4月, 2008 1 次提交
    • K
      [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero) · 37dd2bad
      Kumar Gala 提交于
      Added support to allow an 85xx kernel to be run from a non-zero physical
      address (useful for cooperative asymmetric multiprocessing situations and
      kdump).  The support can be configured at compile time by setting
      CONFIG_PAGE_OFFSET, CONFIG_KERNEL_START, and CONFIG_PHYSICAL_START as
      desired.
      
      Alternatively, the kernel build can set CONFIG_RELOCATABLE.  Setting this
      config option causes the kernel to determine at runtime the physical
      addresses of CONFIG_PAGE_OFFSET and CONFIG_KERNEL_START.  If
      CONFIG_RELOCATABLE is set, then CONFIG_PHYSICAL_START has no meaning.
      However, CONFIG_PHYSICAL_START will always be used to set the LOAD program
      header physical address field in the resulting ELF image.
      
      Currently we are limited to running at a physical address that is a
      multiple of 256M.  This is due to how we map TLBs to cover
      lowmem.  This should be fixed to allow 64M or maybe even 16M alignment
      in the future.  It is considered an error to try and run a kernel at a
      non-aligned physical address.
      
      All the magic for this support is accomplished by proper initialization
      of the kernel memory subsystem and use of ARCH_PFN_OFFSET.
      
      The use of ARCH_PFN_OFFSET only affects normal memory and not IO mappings.
      ioremap uses map_page and isn't affected by ARCH_PFN_OFFSET.
      
      /dev/mem continues to allow access to any physical address in the system
      regardless of how CONFIG_PHYSICAL_START is set.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      37dd2bad
  8. 13 9月, 2006 1 次提交
    • S
      [POWERPC] kdump: Support kernels having 64k page size. · e269d269
      Sachin P. Sant 提交于
      This is required to generate proper core files using kdump on ppc64.
      
      Create a backup region of 64K size irrespective of the PAGE SIZE.
      At present 32K was used as backup size. In the case of 64K page size,
      second PT_LOAD segments starts at 32K and the first one is not page
      aligned.  __ioremap() (crash_dump.c) fails if pfn = 0 which is the
      case for the second PT_LOAD segment. This is not an issue for 4K page
      size because the the first page (32K backup) is copied to second
      kernel memory and thus referencing with the second kernel pfn.
      Signed-off-by: NSachin Sant <sachinp@in.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e269d269
  9. 28 6月, 2006 1 次提交
    • H
      [POWERPC] kdump: Reserve the existing TCE mappings left by the first kernel · 5f50867b
      Haren Myneni 提交于
      During kdump boot, noticed some machines checkstop on dma protection
      fault for ongoing DMA left in the first kernel. Instead of initializing
      TCE entries in iommu_init() for the kdump boot, this patch fixes this
      issue by walking through the each TCE table and checks whether the
      entries are in use by the first kernel. If so, reserve those entries by
      setting the corresponding bit in tbl->it_map such that these entries
      will not be available for the kdump boot.
      
      However it could be possible that all TCE entries might be used up due
      to the driver bug that does continuous mapping. My observation is around
      1700 TCE  entries are used on some systems (Ex: P4) at some point of
      time during kdump boot and saving dump (either write into the disk or
      sending to remote machine). Hence, this patch will make sure that
      minimum of 2048 entries will be available such that kdump boot could be
      successful in some cases.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5f50867b
  10. 19 5月, 2006 1 次提交
  11. 09 1月, 2006 1 次提交