1. 09 Jan, 2006 16 commits
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: Unify udbg (#2) · 51d3082f
      Benjamin Herrenschmidt authored
      This patch unifies udbg for both ppc32 and ppc64 when building the
      merged achitecture. xmon now has a single "back end". The powermac udbg
      stuff gets enriched with some ADB capabilities and btext output. In
      addition, the early_init callback is now called on ppc32 as well,
      approx. in the same order as ppc64 regarding device-tree manipulations.
      The init sequences of ppc32 and ppc64 are getting closer, I'll unify
      them in a later patch.
      
      For now, you can force udbg to the scc using "sccdbg" or to btext using
      "btextdbg" on powermacs. I'll implement a cleaner way of forcing udbg
      output to something else than the autodetected OF output device in a
      later patch.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      51d3082f
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: serial port discovery (#2) · 463ce0e1
      Benjamin Herrenschmidt authored
      This moves the discovery of legacy serial ports to a separate file,
      makes it common to ppc32 and ppc64, and reworks it to use the new OF
      address translators to get to the ports early. This new version can also
      detect some PCI serial cards using legacy chips and will probably match
      those discovered port with the default console choice.
      
      Only ppc64 gets udbg still yet, unifying udbg isn't finished yet.
      
      It also adds some speed-probing code to udbg so that the default console
      can come up at the same speed it was set to by the firmware.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      463ce0e1
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: Add OF address parsing code (#2) · d1405b86
      Benjamin Herrenschmidt authored
      Parsing addresses extracted from Open Firmware isn't a simple matter. We
      have various bits of code that try to do it in various place, including
      some heuristics in prom.c that pre-parse addresses at boot and fill
      device-nodes "addrs", but those are dodgy at best and I want to
      deprecate them. So this patch introduces a new set of routines that
      should be capable of parsing most types of addresses and translating
      them into CPU physical addresses. It currently works for things on PCI
      busses and ISA busses and should work on "standard" busses like the root
      bus or the MacIO bus that don't put funky flags in addresses. If you
      have other bus types that do use funky flags, you'll have to add new bus
      type translators, which is fairly easy.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      d1405b86
    • David Woodhouse's avatar
      [PATCH] ppc64 syscall_exit_work: call the save_nvgprs function, not its descriptor. · bcb05504
      David Woodhouse authored
      On Tue, 2005-11-15 at 18:52 +0000, David Woodhouse wrote:
      > This cleanup patch speeds up the null syscall path on ppc64 by about 3%,
      > and brings the ppc32 and ppc64 code slightly closer together.
      
      Needs this unless your binutils, like mine, are clever enough to notice
      my stupidity and fix it up automatically...
      
      Spotted by Paul.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      bcb05504
    • Paul Mackerras's avatar
      ppc: remove duplicate bseip.h · c1189c92
      Paul Mackerras authored
      include/asm-ppc/bseip.h is a duplicate of arch/ppc/platforms/bseip.h
      and is not referenced anywhere, so get rid of it.  Pointed out by
      Marcelo Tosatti.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      c1189c92
    • Paul Mackerras's avatar
      powerpc: Update __NR_syscalls to account for SPU syscalls · d6a55504
      Paul Mackerras authored
      A previous patch ended up not increasing __NR_syscalls to account
      for the new SPU syscalls (probably my fault).
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      d6a55504
    • Arnd Bergmann's avatar
      [PATCH] spufs: cooperative scheduler support · 8b3d6663
      Arnd Bergmann authored
      This adds a scheduler for SPUs to make it possible to use
      more logical SPUs than physical ones are present in the
      system.
      
      Currently, there is no support for preempting a running
      SPU thread, they have to leave the SPU by either triggering
      an event on the SPU that causes it to return to the
      owning thread or by sending a signal to it.
      
      This patch also adds operations that enable accessing an SPU
      in either runnable or saved state. We use an RW semaphore
      to protect the state of the SPU from changing underneath
      us, while we are holding it readable. In order to change
      the state, it is acquired writeable and a context save
      or restore is executed before downgrading the semaphore
      to read-only.
      
      From: Mark Nutter <mnutter@us.ibm.com>,
            Uli Weigand <Ulrich.Weigand@de.ibm.com>
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      8b3d6663
    • Mark Nutter's avatar
      [PATCH] spufs: add spu-side context switch code · 05b84117
      Mark Nutter authored
      Add the source code that is used to generate spu_save_dump.h and
      spu_restore_dump.h. Since a full spu tool chain is needed to
      generate these files, the default remains to use the shipped
      versions in order to keep the number of tools for building the
      kernel down.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      05b84117
    • Mark Nutter's avatar
      [PATCH] kernel-side context switch code for spufs · 7c038749
      Mark Nutter authored
      This adds the code needed to perform a context switch from
      spufs, following the recommended 76-step sequence.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      7c038749
    • Mark Nutter's avatar
      [PATCH] spufs: switchable spu contexts · 5473af04
      Mark Nutter authored
      Add some infrastructure for saving and restoring the context of an
      SPE. This patch creates a new structure that can hold the whole
      state of a physical SPE in memory. It also contains code that
      avoids races during the context switch and the binary code that
      is loaded to the SPU in order to access its registers.
      
      The actual PPE- and SPE-side context switch code are two separate
      patches.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      5473af04
    • Arnd Bergmann's avatar
      [PATCH] spufs: The SPU file system, base · 67207b96
      Arnd Bergmann authored
      This is the current version of the spu file system, used
      for driving SPEs on the Cell Broadband Engine.
      
      This release is almost identical to the version for the
      2.6.14 kernel posted earlier, which is available as part
      of the Cell BE Linux distribution from
      http://www.bsc.es/projects/deepcomputing/linuxoncell/.
      
      The first patch provides all the interfaces for running
      spu application, but does not have any support for
      debugging SPU tasks or for scheduling. Both these
      functionalities are added in the subsequent patches.
      
      See Documentation/filesystems/spufs.txt on how to use
      spufs.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      67207b96
    • Heiko J Schick's avatar
      [PATCH] powerpc: IBMEBUS bus support · d7a30103
      Heiko J Schick authored
      This patch adds the necessary core bus support used by device drivers
      that sit on the IBM GX bus on modern pSeries machines like the Galaxy
      infiniband for example. It provide transparent DMA ops (the low level
      driver works with virtual addresses directly) along with a simple bus
      layer using the Open Firmware matching routines.
      Signed-off-by: default avatarHeiko J Schick <schickhj@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      d7a30103
    • David Woodhouse's avatar
      [PATCH] syscall entry/exit revamp · 401d1f02
      David Woodhouse authored
      This cleanup patch speeds up the null syscall path on ppc64 by about 3%,
      and brings the ppc32 and ppc64 code slightly closer together.
      
      The ppc64 code was checking current_thread_info()->flags twice in the
      syscall exit path; once for TIF_SYSCALL_T_OR_A before disabling
      interrupts, and then again for TIF_SIGPENDING|TIF_NEED_RESCHED etc after
      disabling interrupts. Now we do the same as ppc32 -- check the flags
      only once in the fast path, and re-enable interrupts if necessary in the
      ptrace case.
      
      The patch abolishes the 'syscall_noerror' member of struct thread_info
      and replaces it with a TIF_NOERROR bit in the flags, which is handled in
      the slow path. This shortens the syscall entry code, which no longer
      needs to clear syscall_noerror.
      
      The patch adds a TIF_SAVE_NVGPRS flag which causes the syscall exit slow
      path to save the non-volatile GPRs into a signal frame. This removes the
      need for the assembly wrappers around sys_sigsuspend(),
      sys_rt_sigsuspend(), et al which existed solely to save those registers
      in advance. It also means I don't have to add new wrappers for ppoll()
      and pselect(), which is what I was supposed to be doing when I got
      distracted into this...
      
      Finally, it unifies the ppc64 and ppc32 methods of handling syscall exit
      directly into a signal handler (as required by sigsuspend et al) by
      introducing a TIF_RESTOREALL flag which causes _all_ the registers to be
      reloaded from the pt_regs by taking the ret_from_exception path, instead
      of the normal syscall exit path which stomps on the callee-saved GPRs.
      
      It appears to pass an LTP test run on ppc64, and passes basic testing on
      ppc32 too. Brief tests of ptrace functionality with strace and gdb also
      appear OK. I wouldn't send it to Linus for 2.6.15 just yet though :)
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      401d1f02
    • Kumar Gala's avatar
      [PATCH] powerpc: moved ipic code to arch/powerpc · 1cd8e506
      Kumar Gala authored
      Moved 83xx and QUICC Engine interrupt handling code into arch/powerpc
      as a precursor of getting 83xx sub-arch building in arch/powerpc.
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      1cd8e506
    • Michael Ellerman's avatar
      [PATCH] powerpc: Merge kexec · 3d1229d6
      Michael Ellerman authored
      This patch merges, to some extent, the PPC32 and PPC64 kexec implementations.
      
      We adopt the PPC32 approach of having ppc_md callbacks for the kexec functions.
      The current PPC64 implementation becomes the "default" implementation for PPC64
      which platforms can select if they need no special treatment.
      
      I've added these default callbacks to pseries/maple/cell/powermac, this means
      iSeries no longer supports kexec - but it never worked anyway.
      
      I've renamed PPC32's machine_kexec_simple to default_machine_kexec, inline with
      PPC64. Judging by the comments it might be better named machine_kexec_non_of,
      or something, but at the moment it's the only implementation for PPC32 so it's
      the "default".
      
      Kexec requires machine_shutdown(), which is in machine_kexec.c on PPC32, but we
      already have in setup-common.c on powerpc. All this does is call
      ppc_md.nvram_sync, which only powermac implements, so instead make
      machine_shutdown a ppc_md member and have it call core99_nvram_sync directly
      on powermac.
      
      I've also stuck relocate_kernel.S into misc_32.S for powerpc.
      
      Built for ARCH=ppc, and 32 & 64 bit ARCH=powerpc, with KEXEC=y/n. Booted on
      P5 LPAR and successfully kexec'ed.
      
      Should apply on top of 493f25ef.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      3d1229d6
    • Adrian Bunk's avatar
      [PATCH] PPC_PREP: remove unneeded exports · afcc2472
      Adrian Bunk authored
      This patch removes the EXPORT_SYMBOL'ed but completely unused variable
      ucSystemType and removes the unneeded EXPORT_SYMBOL(_prep_type).
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarTom Rini <trini@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      afcc2472
  2. 07 Jan, 2006 18 commits
  3. 06 Jan, 2006 6 commits