1. 20 9月, 2011 1 次提交
    • S
      powerpc/32: Pass device tree address as u64 to machine_init · 6dece0eb
      Scott Wood 提交于
      u64 is used rather than phys_addr_t to keep things simple, as
      this is called from assembly code.
      
      Update callers to pass a 64-bit address in r3/r4.  Other unused
      register assignments that were once parameters to machine_init
      are dropped.
      
      For FSL BookE, look up the physical address of the device tree from the
      effective address passed in r3 by the loader.  This is required for
      situations where memory does not start at zero (due to AMP or IOMMU-less
      virtualization), and thus the IMA doesn't start at zero, and thus the
      device tree effective address does not equal the physical address.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      6dece0eb
  2. 19 5月, 2011 2 次提交
  3. 01 4月, 2011 1 次提交
    • B
      powerpc/smp: soft-replugged CPUs must go back to start_secondary · fa3f82c8
      Benjamin Herrenschmidt 提交于
      Various thing are torn down when a CPU is hot-unplugged. That CPU
      is expected to go back to start_secondary when re-plugged to re
      initialize everything, such as clock sources, maps, ...
      
      Some implementations just return from cpu_die() callback
      in the idle loop when the CPU is "re-plugged". This is not enough.
      
      We fix it using a little asm trampoline which resets the stack
      and calls back into start_secondary as if we were all fresh from
      boot. The trampoline already existed on ppc64, but we add it for
      ppc32
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      fa3f82c8
  4. 17 5月, 2010 1 次提交
  5. 13 12月, 2009 1 次提交
  6. 20 8月, 2009 1 次提交
    • B
      powerpc: Use names rather than numbers for SPRGs (v2) · ee43eb78
      Benjamin Herrenschmidt 提交于
      The kernel uses SPRG registers for various purposes, typically in
      low level assembly code as scratch registers or to hold per-cpu
      global infos such as the PACA or the current thread_info pointer.
      
      We want to be able to easily shuffle the usage of those registers
      as some implementations have specific constraints realted to some
      of them, for example, some have userspace readable aliases, etc..
      and the current choice isn't always the best.
      
      This patch should not change any code generation, and replaces the
      usage of SPRN_SPRGn everywhere in the kernel with a named replacement
      and adds documentation next to the definition of the names as to
      what those are used for on each processor family.
      
      The only parts that still use the original numbers are bits of KVM
      or suspend/resume code that just blindly needs to save/restore all
      the SPRGs.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ee43eb78
  7. 26 6月, 2009 1 次提交
    • B
      powerpc: Map more memory early on 601 processors · 4a5cbf17
      Benjamin Herrenschmidt 提交于
      The 32-bit kernel relies on some memory being mapped covering
      the kernel text,data and bss at least, early during boot before
      the full MMU setup is done. On 32-bit "classic" processors, this
      is done using BAT registers.
      
      On 601, the size of BATs is limited to 8M and we use 2 of them
      for that initial mapping. This can become quite tight when enabling
      features like lockdep, so let's use a 3rd one to bump that mapping
      from 16M to 24M. We keep the 4th BAT free as it can be useful for
      debugging early boot code to map things like serial ports.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4a5cbf17
  8. 12 6月, 2009 1 次提交
  9. 09 6月, 2009 1 次提交
  10. 27 4月, 2009 1 次提交
  11. 24 3月, 2009 3 次提交
  12. 23 3月, 2009 1 次提交
  13. 17 3月, 2009 1 次提交
  14. 11 3月, 2009 1 次提交
    • B
      powerpc/kconfig: Kill PPC_MULTIPLATFORM · 28794d34
      Benjamin Herrenschmidt 提交于
      CONFIG_PPC_MULTIPLATFORM is a remain of the pre-powerpc days and isn't
      really meaningful anymore. It was basically equivalent to PPC64 || 6xx.
      
      This removes it along with the following changes:
      
       - 32-bit platforms that relied on PPC32 && PPC_MULTIPLATFORM now rely
         on 6xx which is what they want anyway.
      
       - A new symbol, PPC_BOOK3S, is defined that represent compliance with
         the "Server" variant of the architecture. This is set when either 6xx
         or PPC64 is set and open the door for future BOOK3E 64-bit.
      
       - 64-bit platforms that relied on PPC64 && PPC_MULTIPLATFORM now use
         PPC64 && PPC_BOOK3S
      
       - A separate and selectable CONFIG_PPC_OF_BOOT_TRAMPOLINE option is now
         used to control the use of prom_init.c
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      28794d34
  15. 23 12月, 2008 1 次提交
  16. 21 12月, 2008 2 次提交
  17. 15 10月, 2008 1 次提交
  18. 25 9月, 2008 1 次提交
    • B
      POWERPC: Allow 32-bit hashed pgtable code to support 36-bit physical · 4ee7084e
      Becky Bruce 提交于
      This rearranges a bit of code, and adds support for
      36-bit physical addressing for configs that use a
      hashed page table.  The 36b physical support is not
      enabled by default on any config - it must be
      explicitly enabled via the config system.
      
      This patch *only* expands the page table code to accomodate
      large physical addresses on 32-bit systems and enables the
      PHYS_64BIT config option for 86xx.  It does *not*
      allow you to boot a board with more than about 3.5GB of
      RAM - for that, SWIOTLB support is also required (and
      coming soon).
      Signed-off-by: NBecky Bruce <becky.bruce@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      4ee7084e
  19. 18 8月, 2008 1 次提交
    • R
      powerpc: Fix TLB invalidation on boot on 32-bit · 9acd57ca
      Rocky Craig 提交于
      The intent of "flush_tlbs" is to invalidate all TLB entries by doing a
      TLB invalidate instruction for all pages in the address range 0 to
      0x00400000.  A loop counter is set up at the high value and
      decremented by page size.  However, the loop is only done once as the
      sense of the conditional branch at the loop end does not match the
      setup/decrement.  This fixes it to do the whole range by correcting
      the branch condition.
      Signed-off-by: NRocky Craig <rocky.craig@hp.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9acd57ca
  20. 01 7月, 2008 1 次提交
  21. 18 4月, 2008 1 次提交
  22. 26 2月, 2008 1 次提交
  23. 07 12月, 2007 1 次提交
  24. 12 10月, 2007 1 次提交
  25. 04 10月, 2007 1 次提交
  26. 19 9月, 2007 1 次提交
  27. 14 9月, 2007 1 次提交
    • K
      [POWERPC] Fix modpost warnings from head*.S on ppc32 · 748a7683
      Kumar Gala 提交于
      We get warnings like the following from the various ppc32 head*.S files:
      
      WARNING: vmlinux.o(.text+0x358): Section mismatch: reference to .init.text:early_init (between 'skpinv' and 'interrupt_base')
      WARNING: vmlinux.o(.text+0x380): Section mismatch: reference to .init.text:machine_init (between 'skpinv' and 'interrupt_base')
      WARNING: vmlinux.o(.text+0x384): Section mismatch: reference to .init.text:MMU_init (between 'skpinv' and 'interrupt_base')
      WARNING: vmlinux.o(.text+0x3aa): Section mismatch: reference to .init.text:start_kernel (between 'skpinv' and 'interrupt_base')
      WARNING: vmlinux.o(.text+0x3ae): Section mismatch: reference to .init.text:start_kernel (between 'skpinv' and 'interrupt_base')
      
      Added a .text.head section simliar to what other architectures do since
      modpost already excludes this from its warnings.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      748a7683
  28. 13 9月, 2007 1 次提交
  29. 14 6月, 2007 1 次提交
  30. 24 1月, 2007 1 次提交
  31. 08 12月, 2006 1 次提交
    • K
      [POWERPC] Add support for FP emulation for the e300c2 core · aa42c69c
      Kim Phillips 提交于
      The e300c2 has no FPU.  Its MSR[FP] is grounded to zero.  If an attempt
      is made to execute a floating point instruction (including floating-point
      load, store, or move instructions), the e300c2 takes a floating-point
      unavailable interrupt.
      
      This patch adds support for FP emulation on the e300c2 by declaring a
      new CPU_FTR_FP_TAKES_FPUNAVAIL, where FP unavail interrupts are
      intercepted and redirected to the ProgramCheck exception path for
      correct emulation handling.
      
      (If we run out of CPU_FTR bits we could look to reclaim this bit by adding
      support to test the cpu_user_features for PPC_FEATURE_HAS_FPU instead)
      
      It adds a nop to the exception path for 32-bit processors with a FPU.
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      aa42c69c
  32. 01 7月, 2006 1 次提交
  33. 21 6月, 2006 1 次提交
  34. 24 2月, 2006 1 次提交
  35. 09 1月, 2006 2 次提交
    • P
      powerpc: set CONFIG_PPC_OF=y always for ARCH=powerpc · 0a498d96
      Paul Mackerras 提交于
      The CONFIG_PPC_OF symbol is used to mean that the firmware device tree
      access functions are available.  Since we always have a device tree
      with ARCH=powerpc, make CONFIG_PPC_OF always Y for ARCH=powerpc.
      
      This fixes some compile errors reported by Kumar Gala, but in a
      different way to his patch.  This also makes prom_parse.o be compiled
      only if CONFIG_PPC_OF so that non-OF ARCH=ppc platforms will compile.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0a498d96
    • A
      [PATCH] powerpc: G4+ oprofile support · 555d97ac
      Andy Fleming 提交于
      This patch adds oprofile support for the 7450 and all its multitudinous
      derivatives.
      
      * Added 7450 (and derivatives) support for oprofile
      * Changed e500 cputable to have oprofile model and cpu_type fields
      * Added support for classic 32-bit performance monitor interrupt
      * Cleaned up common powerpc oprofile code to be as common as possible
      * Cleaned up oprofile_impl.h to reflect 32 bit classic code
      * Added 32-bit MMCRx bitfield definitions and SPR numbers
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      555d97ac