1. 10 1月, 2009 1 次提交
    • P
      powerpc/perf_counter: Add generic support for POWER-family PMU hardware · 4574910e
      Paul Mackerras 提交于
      This provides the architecture-specific functions needed to access
      PMU hardware on the 64-bit PowerPC processors.  It has been designed
      for the IBM POWER family (POWER 4/4+/5/5+/6 and PPC970) but will
      hopefully also suit other 64-bit PowerPC machines (although probably
      not Cell given how different it is in this area).  This doesn't
      include back-ends for any specific processors.
      
      This implements a system which allows back-ends to express the
      constraints that their hardware has on what events can be counted
      simultaneously.  The constraints are expressed as a 64-bit mask +
      64-bit value for each event, and the encoding is capable of
      expressing the constraints arising from having a set of multiplexers
      feeding an event bus, with some events being available through
      multiple multiplexer settings, such as we get on POWER4 and PPC970.
      Furthermore, the back-end can supply alternative event codes for
      each event, and the constraint checking code will try all possible
      combinations of alternative event codes to try to find a combination
      that will fit.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      4574910e
  2. 23 12月, 2008 2 次提交
  3. 28 11月, 2008 1 次提交
    • S
      powerpc/ppc32: static ftrace fixes for PPC32 · f1eecf0e
      Steven Rostedt 提交于
      Impact: fix for PowerPC 32 code
      
      There were some early init code that was not safe for static
      ftrace to boot on my PowerBook. This code must only use relative
      addressing, and static mcount performs a compare of the
      ftrace_trace_function pointer, and gets that with an absolute address.
      In the early init boot up code, this will cause a fault.
      
      This patch removes tracing from the files containing the offending
      functions.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f1eecf0e
  4. 21 10月, 2008 1 次提交
  5. 25 9月, 2008 3 次提交
  6. 16 9月, 2008 1 次提交
    • P
      powerpc: Make the 64-bit kernel as a position-independent executable · 549e8152
      Paul Mackerras 提交于
      This implements CONFIG_RELOCATABLE for 64-bit by making the kernel as
      a position-independent executable (PIE) when it is set.  This involves
      processing the dynamic relocations in the image in the early stages of
      booting, even if the kernel is being run at the address it is linked at,
      since the linker does not necessarily fill in words in the image for
      which there are dynamic relocations.  (In fact the linker does fill in
      such words for 64-bit executables, though not for 32-bit executables,
      so in principle we could avoid calling relocate() entirely when we're
      running a 64-bit kernel at the linked address.)
      
      The dynamic relocations are processed by a new function relocate(addr),
      where the addr parameter is the virtual address where the image will be
      run.  In fact we call it twice; once before calling prom_init, and again
      when starting the main kernel.  This means that reloc_offset() returns
      0 in prom_init (since it has been relocated to the address it is running
      at), which necessitated a few adjustments.
      
      This also changes __va and __pa to use an equivalent definition that is
      simpler.  With the relocatable kernel, PAGE_OFFSET and MEMORY_START are
      constants (for 64-bit) whereas PHYSICAL_START is a variable (and
      KERNELBASE ideally should be too, but isn't yet).
      
      With this, relocatable kernels still copy themselves down to physical
      address 0 and run there.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      549e8152
  7. 03 9月, 2008 1 次提交
    • T
      powerpc: Work around gcc's -fno-omit-frame-pointer bug · 7563dc64
      Tony Breeds 提交于
      This bug is causing random crashes
      (http://bugzilla.kernel.org/show_bug.cgi?id=11414).
      
      -fno-omit-frame-pointer is only needed on powerpc when -pg is also
      supplied, and there is a gcc bug that causes incorrect code generation
      on 32-bit powerpc when -fno-omit-frame-pointer is used---it uses stack
      locations below the stack pointer, which is not allowed by the ABI
      because those locations can and sometimes do get corrupted by an
      interrupt.
      
      This ensures that CONFIG_FRAME_POINTER is only selected by ftrace.
      When CONFIG_FTRACE is enabled we also pass -mno-sched-epilog to work
      around the gcc codegen bug.
      
      Patch based on work by:
      	Andreas Schwab <schwab@suse.de>
      	Segher Boessenkool <segher@kernel.crashing.org>
      Signed-off-by: NTony Breeds <tony@bakeyournoodle.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7563dc64
  8. 20 8月, 2008 1 次提交
  9. 04 8月, 2008 1 次提交
  10. 24 7月, 2008 1 次提交
    • J
      kgdb, powerpc: arch specific powerpc kgdb support · 17ce452f
      Jason Wessel 提交于
      This patch removes the old kgdb reminants from ARCH=powerpc and
      implements the new style arch specific stub for the common kgdb core
      interface.
      
      It is possible to have xmon and kgdb in the same kernel, but you
      cannot use both at the same time because there is only one set of
      debug hooks.
      
      The arch specific kgdb implementation saves the previous state of the
      debug hooks and restores them if you unconfigure the kgdb I/O driver.
      Kgdb should have no impact on a kernel that has no kgdb I/O driver
      configured.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      17ce452f
  11. 01 7月, 2008 1 次提交
  12. 26 6月, 2008 1 次提交
  13. 24 5月, 2008 1 次提交
  14. 12 5月, 2008 1 次提交
  15. 29 4月, 2008 1 次提交
  16. 24 4月, 2008 1 次提交
  17. 18 4月, 2008 1 次提交
  18. 17 4月, 2008 1 次提交
  19. 14 2月, 2008 1 次提交
  20. 07 2月, 2008 2 次提交
  21. 24 1月, 2008 1 次提交
  22. 17 1月, 2008 1 次提交
  23. 20 12月, 2007 1 次提交
    • S
      [POWERPC] Stop the TOC overflowing for large builds · 08a644ec
      Stephen Rothwell 提交于
      We were using -mno-minimal-toc on everything in arch/powerpc/kernel,
      which means that all the functions in there were putting all their
      TOC entries in the top-level TOC, and it was overflowing on an
      allyesconfig build.  For various reasons, prom_init.c does need
      -mno-minimal-toc, but the other .c files in there can use sub-TOCs
      quite happily.  This change is sufficient for now to stop the TOC
      overflowing; other directories under arch/powerpc also use
      -mno-minimal-toc and could also be changed later if necessary.
      
      Lmbench runs with and without this patch showed no significant speed
      differences.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      08a644ec
  24. 05 10月, 2007 1 次提交
    • S
      [POWERPC] 8xx: Move softemu8xx.c from arch/ppc · 5dd57a13
      Scott Wood 提交于
      Previously, Soft_emulate_8xx was called with no implementation, resulting in
      build failures whenever building 8xx without math emulation.  The
      implementation is copied from arch/ppc to resolve this issue.
      
      However, this sort of minimal emulation is not a very good idea other than
      for compatibility with existing userspaces, as it's less efficient than
      soft-float and can mislead users into believing they have soft-float.  Thus,
      it is made a configurable option, off by default.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      5dd57a13
  25. 04 10月, 2007 1 次提交
  26. 03 10月, 2007 3 次提交
  27. 22 8月, 2007 1 次提交
  28. 20 8月, 2007 1 次提交
  29. 15 8月, 2007 1 次提交
  30. 30 7月, 2007 1 次提交
  31. 29 6月, 2007 1 次提交
  32. 14 6月, 2007 2 次提交
    • B
      [POWERPC] Make syscall restart code more common · 22e38f29
      Benjamin Herrenschmidt 提交于
      This patch moves the code in signal_32.c and signal_64.c for handling
      syscall restart into a common signal.c file and converge around a single
      implementation that is based on the 32 bits one, using trap, ccr
      and r3 rather than the special "result" field for deciding what to do.
      
      The "result" field is now pretty much deprecated. We still set it for
      the sake of whatever might rely on it in userland but we no longer use
      it's content.
      
      This, along with a previous patch that enables ptracers to write to
      "trap" and "orig_r3" should allow gdb to properly handle syscall
      restarting.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      22e38f29
    • B
      [POWERPC] Rewrite IO allocation & mapping on powerpc64 · 3d5134ee
      Benjamin Herrenschmidt 提交于
      This rewrites pretty much from scratch the handling of MMIO and PIO
      space allocations on powerpc64.  The main goals are:
      
       - Get rid of imalloc and use more common code where possible
       - Simplify the current mess so that PIO space is allocated and
         mapped in a single place for PCI bridges
       - Handle allocation constraints of PIO for all bridges including
         hot plugged ones within the 2GB space reserved for IO ports,
         so that devices on hotplugged busses will now work with drivers
         that assume IO ports fit in an int.
       - Cleanup and separate tracking of the ISA space in the reserved
         low 64K of IO space. No ISA -> Nothing mapped there.
      
      I booted a cell blade with IDE on PIO and MMIO and a dual G5 so
      far, that's it :-)
      
      With this patch, all allocations are done using the code in
      mm/vmalloc.c, though we use the low level __get_vm_area with
      explicit start/stop constraints in order to manage separate
      areas for vmalloc/vmap, ioremap, and PCI IOs.
      
      This greatly simplifies a lot of things, as you can see in the
      diffstat of that patch :-)
      
      A new pair of functions pcibios_map/unmap_io_space() now replace
      all of the previous code that used to manipulate PCI IOs space.
      The allocation is done at mapping time, which is now called from
      scan_phb's, just before the devices are probed (instead of after,
      which is by itself a bug fix). The only other caller is the PCI
      hotplug code for hot adding PCI-PCI bridges (slots).
      
      imalloc is gone, as is the "sub-allocation" thing, but I do beleive
      that hotplug should still work in the sense that the space allocation
      is always done by the PHB, but if you unmap a child bus of this PHB
      (which seems to be possible), then the code should properly tear
      down all the HPTE mappings for that area of the PHB allocated IO space.
      
      I now always reserve the first 64K of IO space for the bridge with
      the ISA bus on it. I have moved the code for tracking ISA in a separate
      file which should also make it smarter if we ever are capable of
      hot unplugging or re-plugging an ISA bridge.
      
      This should have a side effect on platforms like powermac where VGA IOs
      will no longer work. This is done on purpose though as they would have
      worked semi-randomly before. The idea at this point is to isolate drivers
      that might need to access those and fix them by providing a proper
      function to obtain an offset to the legacy IOs of a given bus.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3d5134ee
  33. 08 5月, 2007 1 次提交