1. 29 10月, 2005 6 次提交
  2. 27 10月, 2005 2 次提交
    • K
      4b24b01c
    • D
      [PATCH] powerpc: Fix handling of fpscr on 64-bit · 25c8a78b
      David Gibson 提交于
      The recent merge of fpu.S broken the handling of fpscr for
      ARCH=powerpc and CONFIG_PPC64=y.  FP registers could be corrupted,
      leading to strange random application crashes.
      
      The confusion arises, because the thread_struct has (and requires) a
      64-bit area to save the fpscr, because we use load/store double
      instructions to get it in to/out of the FPU.  However, only the low
      32-bits are actually used, so we want to treat it as a 32-bit quantity
      when manipulating its bits to avoid extra load/stores on 32-bit.  This
      patch replaces the current definition with a structure of two 32-bit
      quantities (pad and val), to clarify things as much as is possible.
      The 'val' field is used when manipulating bits, the structure itself
      is used when obtaining the address for loading/unloading the value
      from the FPU.
      
      While we're at it, consolidate the 4 (!) almost identical versions of
      cvt_fd() and cvt_df() (arch/ppc/kernel/misc.S,
      arch/ppc64/kernel/misc.S, arch/powerpc/kernel/misc_32.S,
      arch/powerpc/kernel/misc_64.S) into a single version in fpu.S.  The
      new version takes a pointer to thread_struct and applies the correct
      offset itself, rather than a pointer to the fpscr field itself, again
      to avoid confusion as to which is the correct field to use.
      
      Finally, this patch makes ARCH=ppc64 also use the consolidated fpu.S
      code, which it previously did not.
      
      Built for G5 (ARCH=ppc64 and ARCH=powerpc), 32-bit powermac (ARCH=ppc
      and ARCH=powerpc) and Walnut (ARCH=ppc, CONFIG_MATH_EMULATION=y).
      Booted on G5 (ARCH=powerpc) and things which previously fell over no
      longer do.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      25c8a78b
  3. 26 10月, 2005 4 次提交
    • P
      powerpc: Fixes to get the Longtrail CHRP a bit further · c4988820
      Paul Mackerras 提交于
      Talk about buggy firmware...  the OF on the Longtrail returns 0
      from the claim client service rather than -1 when the claim fails.
      It also has no device_type on the /memory node and blows up if
      the output buffer for package-to-path is too big.
      
      This also fixes a bug with calling alloc_up with align == 0, where
      we did _ALIGN_UP(alloc_bottom, 0) which will end up as 0.
      
      Lastly, we now check the return value (in r3) from calling the
      prom, and return -1 from call_prom if we get a negative value back.
      That is supposed to indicate that the requested client service
      doesn't exist.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c4988820
    • P
      powerpc: Merge i8259.c into arch/powerpc/sysdev · f9bd170a
      Paul Mackerras 提交于
      This changes the parameters for i8259_init so that it takes two
      parameters: a physical address for generating an interrupt
      acknowledge cycle, and an interrupt number offset.  i8259_init
      now sets the irq_desc[] for its interrupts; all the callers
      were doing this, and that code is gone now.  This also defines
      a CONFIG_PPC_I8259 symbol to select i8259.o for inclusion, and
      makes the platforms that need it select that symbol.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f9bd170a
    • P
      ppc: Use the indirect_pci.c from arch/powerpc/sysdev · 25635c71
      Paul Mackerras 提交于
      This defines a CONFIG_INDIRECT_PCI symbol to control whether it
      gets used or not, and fixes the Kconfig to select that symbol for
      platforms that need it.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      25635c71
    • B
      [PATCH] ppc: Fix m82xx_pci build · ab590ccb
      Becky Bruce 提交于
      A recent patch updated the name of pci_assign_all_busses to
      pci_assign_all_buses.  This instance of its use wasn't corrected
      by the original patch to use the new name.
      
      Builds cleanly on ads8272.
      Signed-off-by: NBecky Bruce <becky.bruce@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      ab590ccb
  4. 23 10月, 2005 1 次提交
    • P
      powerpc: Make coff boot wrapper load the kernel at 8M · 85e568ea
      Paul Mackerras 提交于
      Previously it claimed 7MB starting at the 9M point and loaded the
      kernel there.  That meant that prom_init put the flattened device
      tree above 16M.  On the 601 that caused the early device tree scan
      to fail, since only 16MB are mapped with BATs on the 601.  Moving
      this down to 8MB allows prom_init to put the flattened device tree
      between 15M and 16M, so it works on the 601.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      85e568ea
  5. 22 10月, 2005 1 次提交
  6. 21 10月, 2005 1 次提交
    • D
      [PATCH] powerpc: Merge thread_info.h · 6cb7bfeb
      David Gibson 提交于
      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: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6cb7bfeb
  7. 20 10月, 2005 5 次提交
  8. 19 10月, 2005 1 次提交
  9. 18 10月, 2005 2 次提交
  10. 17 10月, 2005 4 次提交
  11. 13 10月, 2005 2 次提交
  12. 12 10月, 2005 2 次提交
    • 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
    • P
      [PATCH] ppc highmem fix · a0c111c6
      Paolo Galtieri 提交于
      I've noticed that the calculations for seg_size and nr_segs in
      __dma_sync_page_highmem() (arch/ppc/kernel/dma-mapping.c) are wrong.  The
      incorrect calculations can result in either an oops or a panic when running
      fsck depending on the size of the partition.
      
      The problem with the seg_size calculation is that it can result in a
      negative number if size is offset > size.  The problem with the nr_segs
      caculation is returns the wrong number of segments, e.g.  it returns 1 when
      size is 200 and offset is 4095, when it should return 2 or more.
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a0c111c6
  13. 11 10月, 2005 2 次提交
    • P
      ppc: Various minor compile fixes · fd582ec8
      Paul Mackerras 提交于
      This fixes up a variety of minor problems in compiling with ARCH=ppc
      arising from using the merged versions of various header files.
      A lot of the changes are just adding #include <asm/machdep.h> to
      files that use ppc_md or smp_ops_t.
      
      This also arranges for us to use semaphore.c, vecemu.c, vector.S and
      fpu.S from arch/powerpc/kernel when compiling with ARCH=ppc.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      fd582ec8
    • P
      ppc: Adapt to asm-powerpc/irq.h irq_canonicalize changes · 35d81a4b
      Paul Mackerras 提交于
      Now instead of having a ppc_md function, we just have a variable
      which says whether to do the i8259 irq canonicalization or not,
      and set that variable on the platforms that need that.  It looks
      to me that radstone_ppc7d was trying to use irq canonicalization
      for something else in a broken kind of way - it will need to be
      fixed properly.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      35d81a4b
  14. 10 10月, 2005 3 次提交
  15. 06 10月, 2005 1 次提交
  16. 05 10月, 2005 1 次提交
  17. 04 10月, 2005 2 次提交