1. 13 Jan, 2006 2 commits
    • David Gibson's avatar
      [PATCH] powerpc: Remove lppaca structure from the PACA · 3356bb9f
      David Gibson authored
      
      
      At present the lppaca - the structure shared with the iSeries
      hypervisor and phyp - is contained within the PACA, our own low-level
      per-cpu structure.  This doesn't have to be so, the patch below
      removes it, making a separate array of lppaca structures.
      
      This saves approximately 500*NR_CPUS bytes of image size and kernel
      memory, because we don't need aligning gap between the Linux and
      hypervisor portions of every PACA.  On the other hand it means an
      extra level of dereference in many accesses to the lppaca.
      
      The patch also gets rid of several places where we assign the paca
      address to a local variable for no particular reason.
      Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      3356bb9f
    • David Gibson's avatar
      [PATCH] powerpc: Cleanup LOADADDR etc. asm macros · e58c3495
      David Gibson authored
      
      
      This patch consolidates the variety of macros used for loading 32 or
      64-bit constants in assembler (LOADADDR, LOADBASE, SET_REG_TO_*).  The
      idea is to make the set of macros consistent across 32 and 64 bit and
      to make it more obvious which is the appropriate one to use in a given
      situation.  The new macros and their semantics are described in the
      comments in ppc_asm.h.
      
      In the process, we change several places that were unnecessarily using
      immediate loads on ppc64 to use the GOT/TOC.  Likewise we cleanup a
      couple of places where we were clumsily subtracting PAGE_OFFSET with
      asm instructions to use assemble-time arithmetic or the toreal() macro
      instead.
      Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      e58c3495
  2. 09 Jan, 2006 1 commit
  3. 08 Jan, 2006 5 commits
  4. 09 Nov, 2005 1 commit
  5. 06 Nov, 2005 1 commit
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc64: support 64k pages · 3c726f8d
      Benjamin Herrenschmidt authored
      
      
      Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel
      base page size to 64K.  The resulting kernel still boots on any
      hardware.  On current machines with 4K pages support only, the kernel
      will maintain 16 "subpages" for each 64K page transparently.
      
      Note that while real 64K capable HW has been tested, the current patch
      will not enable it yet as such hardware is not released yet, and I'm
      still verifying with the firmware architects the proper to get the
      information from the newer hypervisors.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3c726f8d
  6. 03 Nov, 2005 1 commit
  7. 01 Nov, 2005 1 commit
  8. 22 Oct, 2005 1 commit
    • Paul Mackerras's avatar
      powerpc: Merge in 64-bit powermac support. · 35499c01
      Paul Mackerras authored
      
      
      This brings in a lot of changes from arch/ppc64/kernel/pmac_*.c to
      arch/powerpc/platforms/powermac/*.c and makes various minor tweaks
      elsewhere.  On the powermac we now initialize ppc_md by copying
      the whole pmac_md structure into it, which required some changes in
      the ordering of initializations of individual fields of it.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      35499c01
  9. 21 Oct, 2005 1 commit
    • David Gibson's avatar
      [PATCH] powerpc: Merge thread_info.h · 6cb7bfeb
      David Gibson authored
      
      
      Merge ppc32 and ppc64 versions of thread_info.h.  They were pretty
      similar already, the chief changes are:
      
      	- Instead of inline asm to implement current_thread_info(),
      which needs to be different for ppc32 and ppc64, we use C with an
      asm("r1") register variable.  gcc turns it into the same asm as we
      used to have for both platforms.
      	- We replace ppc32's 'local_flags' with the ppc64
      'syscall_noerror' field.  The noerror flag was in fact the only thing
      in the local_flags field anyway, so the ppc64 approach is simpler, and
      means we only need a load-immediate/store instead of load/mask/store
      when clearing the flag.
      	- In readiness for 64k pages, when THREAD_SIZE will be less
      than a page, ppc64 used kmalloc() rather than get_free_pages() to
      allocate the kernel stack.  With this patch we do the same for ppc32,
      since there's no strong reason not to.
      	- For ppc64, we no longer export THREAD_SHIFT and THREAD_SIZE
      via asm-offsets, thread_info.h can now be safely included in asm, as
      on ppc32.
      
      Built and booted on G4 Powerbook (ARCH=ppc and ARCH=powerpc) and
      Power5 (ARCH=ppc64 and ARCH=powerpc).
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      6cb7bfeb
  10. 10 Oct, 2005 2 commits
  11. 09 Oct, 2005 1 commit
  12. 05 Oct, 2005 1 commit
  13. 30 Sep, 2005 1 commit
  14. 26 Sep, 2005 1 commit
    • Paul Mackerras's avatar
      powerpc: Merge enough to start building in arch/powerpc. · 14cf11af
      Paul Mackerras authored
      
      
      This creates the directory structure under arch/powerpc and a bunch
      of Kconfig files.  It does a first-cut merge of arch/powerpc/mm,
      arch/powerpc/lib and arch/powerpc/platforms/powermac.  This is enough
      to build a 32-bit powermac kernel with ARCH=powerpc.
      
      For now we are getting some unmerged files from arch/ppc/kernel and
      arch/ppc/syslib, or arch/ppc64/kernel.  This makes some minor changes
      to files in those directories and files outside arch/powerpc.
      
      The boot directory is still not merged.  That's going to be interesting.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      14cf11af
  15. 22 Sep, 2005 2 commits
  16. 21 Sep, 2005 1 commit
  17. 15 Sep, 2005 1 commit
  18. 09 Sep, 2005 1 commit
  19. 06 Sep, 2005 1 commit
  20. 29 Aug, 2005 2 commits
  21. 28 Aug, 2005 9 commits
  22. 16 Aug, 2005 1 commit
  23. 04 Aug, 2005 1 commit
  24. 27 Jul, 2005 1 commit
    • David Gibson's avatar
      [PATCH] ppc64: remove another fixed address constraint · 488f8499
      David Gibson authored
      
      
      Presently the LparMap, one of the structures the kernel shares with the
      legacy iSeries hypervisor has a fixed offset address in head.S.  This patch
      changes this so the LparMap is a normally initialized structure, without
      fixed address.  This allows us to use macros to compute some of the values
      in the structure, which wasn't previously possible because the assembler
      always uses signed-% which gets the wrong answers for the computations in
      question.
      
      Unfortunately, a gcc bug means that doing this requires another structure
      (hvReleaseData) to be initialized in asm instead of C, but on the whole the
      result is cleaner than before.
      Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      488f8499