1. 25 10月, 2006 2 次提交
    • B
      [POWERPC] Support feature fixups in vdso's · 0909c8c2
      Benjamin Herrenschmidt 提交于
      This patch reworks the feature fixup mecanism so vdso's can be fixed up.
      The main issue was that the construct:
      
              .long   label  (or .llong on 64 bits)
      
      will not work in the case of a shared library like the vdso. It will
      generate an empty placeholder in the fixup table along with a reloc,
      which is not something we can deal with in the vdso.
      
      The idea here (thanks Alan Modra !) is to instead use something like:
      
      1:
              .long   label - 1b
      
      That is, the feature fixup tables no longer contain addresses of bits of
      code to patch, but offsets of such code from the fixup table entry
      itself. That is properly resolved by ld when building the .so's. I've
      modified the fixup mecanism generically to use that method for the rest
      of the kernel as well.
      
      Another trick is that the 32 bits vDSO included in the 64 bits kernel
      need to have a table in the 64 bits format. However, gas does not
      support 32 bits code with a statement of the form:
      
              .llong  label - 1b  (Or even just .llong label)
      
      That is, it cannot emit the right fixup/relocation for the linker to use
      to assign a 32 bits address to an .llong field. Thus, in the specific
      case of the 32 bits vdso built as part of the 64 bits kernel, we are
      using a modified macro that generates:
      
              .long   0xffffffff
              .llong  label - 1b
      
      Note that is assumes that the value is negative which is enforced by
      the .lds (those offsets are always negative as the .text is always
      before the fixup table and gas doesn't support emiting the reloc the
      other way around).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0909c8c2
    • B
      [POWERPC] Consolidate feature fixup code · 42c4aaad
      Benjamin Herrenschmidt 提交于
      There are currently two versions of the functions for applying the
      feature fixups, one for CPU features and one for firmware features. In
      addition, they are both in assembly and with separate implementations
      for 32 and 64 bits. identify_cpu() is also implemented in assembly and
      separately for 32 and 64 bits.
      
      This patch replaces them with a pair of C functions. The call sites are
      slightly moved on ppc64 as well to be called from C instead of from
      assembly, though it's a very small change, and thus shouldn't cause any
      problem.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      42c4aaad
  2. 23 10月, 2006 1 次提交
  3. 16 10月, 2006 1 次提交
  4. 04 10月, 2006 1 次提交
  5. 21 9月, 2006 1 次提交
  6. 13 9月, 2006 1 次提交
  7. 25 8月, 2006 1 次提交
    • O
      [POWERPC] Cleanup CPU inits · f39b7a55
      Olof Johansson 提交于
      Cleanup CPU inits a bit more, Geoff Levand already did some earlier.
      
      * Move CPU state save to cpu_setup, since cpu_setup is only ever done
        on cpu 0 on 64-bit and save is never done more than once.
      * Rename __restore_cpu_setup to __restore_cpu_ppc970 and add
        function pointers to the cputable to use instead. Powermac always
        has 970 so no need to check there.
      * Rename __970_cpu_preinit to __cpu_preinit_ppc970 and check PVR before
        calling it instead of in it, it's too early to use cputable.
      * Rename pSeries_secondary_smp_init to generic_secondary_smp_init since
        everyone but powermac and iSeries use it.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f39b7a55
  8. 01 7月, 2006 1 次提交
  9. 28 6月, 2006 1 次提交
    • K
      powerpc: minor cleanups for mpc86xx · 9ad494f6
      Kumar Gala 提交于
      * Remove duplicated cputable entry for 8641 (matches w/7448)
      * Removed __init from function prototypes in mpc86xx.h
      * Moved pci fixups into board specific code
      * Moved mpc86xx_exclude_device to generic mpc86xx pci code
      * Fixed sparse warnings in mpc86xx_smp.c
      * Removed board specific header include from asm-powerpc/mpc86xx.h
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      9ad494f6
  10. 21 6月, 2006 1 次提交
  11. 15 6月, 2006 1 次提交
  12. 09 6月, 2006 3 次提交
  13. 19 5月, 2006 1 次提交
  14. 29 4月, 2006 1 次提交
  15. 03 3月, 2006 1 次提交
  16. 07 2月, 2006 1 次提交
  17. 14 1月, 2006 2 次提交
    • A
      [PATCH] powerpc: oprofile cpu type names clash with other code · 7a45fb19
      Andy Whitcroft 提交于
      In 2.6.15-git6 a change was commited in the oprofile support in
      the powerpc architecture.  It introduced the powerpc_oprofile_type
      which contains the define G4.  This causes a name clash with the
      existing wacom usb tablet driver.
      
            CC [M]  drivers/usb/input/wacom.o
          drivers/usb/input/wacom.c:98: error: conflicting types for `G4'
          include/asm/cputable.h:37: error: previous declaration of `G4'
            CC [M]  drivers/usb/mon/mon_text.o
          make[3]: *** [drivers/usb/input/wacom.o] Error 1
          make[2]: *** [drivers/usb/input] Error 2
      
      The elements of an enum declared in global scope are effectivly
      global identifiers themselves.  As such we need to ensure the names
      are unique.  This patch updates the later oprofile support to use
      unique names.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7a45fb19
    • P
      powerpc: Provide a suitable AT_PLATFORM value · 80f15dc7
      Paul Mackerras 提交于
      The glibc folks want to use AT_PLATFORM to select between possible
      alternative versions of shared libraries.  This commit makes the kernel
      supply an AT_PLATFORM string that indicates what class of processor
      we are running on.  Processors with the same set of user-level
      instructions and roughly the same instruction scheduling characteristics
      are given the same AT_PLATFORM value; for example, 821, 823 and 860
      are all reported as "ppc823", and 7447, 7447A, 7448, 7450, 7451, 7455
      are all called "ppc7450".
      
      The intention is that the AT_PLATFORM values match the values that
      gcc accepts for the -mcpu= option.  For values which are numeric
      (e.g. -mcpu=750), "ppc" has been prepended.
      
      This also adds a PPC_FEATURE_BOOKE bit to the AT_HWCAP value and sets
      it for the 440 family and the Freescale 85xx family.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      80f15dc7
  18. 09 1月, 2006 4 次提交
  19. 10 11月, 2005 1 次提交
  20. 07 11月, 2005 2 次提交
  21. 29 10月, 2005 1 次提交
  22. 13 10月, 2005 1 次提交
  23. 12 10月, 2005 1 次提交
    • B
      [PATCH] ppc32: Tell userland about lack of standard TB · d8e998c5
      Benjamin Herrenschmidt 提交于
      Glibc is about to get some new high precision timer stuff that relies on
      the standard timebase of the PPC architecture.
      
      However, some (rare & old) CPUs do not have such timebase and it is a
      bit annoying to have your stuff just crash because you are running on
      the wrong CPU...
      
      This exposes to userland a CPU feature bit that tells that the current
      processor doesn't have a standard timebase.  It's negative logic so that
      glibc will still "just work" on older kernels (it will just be unhappy
      on those old CPUs but that doesn't really matter as distro tend to
      update glibc & kernel at the same time).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d8e998c5
  24. 28 9月, 2005 2 次提交
  25. 05 9月, 2005 5 次提交
  26. 02 8月, 2005 1 次提交
  27. 26 6月, 2005 1 次提交