1. 01 11月, 2005 4 次提交
    • D
      [PATCH] powerpc: Merge bitops.h · a0e60b20
      David Gibson 提交于
      Here's a revised version.  This re-introduces the set_bits() function
      from ppc64, which I removed because I thought it was unused (it exists
      on no other arch).  In fact it is used in the powermac interrupt code
      (but not on pSeries).
      
      - We use LARXL/STCXL macros to generate the right (32 or 64 bit)
        instructions, similar to LDL/STL from ppc_asm.h, used in fpu.S
      
      - ppc32 previously used a full "sync" barrier at the end of
        test_and_*_bit(), whereas ppc64 used an "isync".  The merged version
        uses "isync", since I believe that's sufficient.
      
      - The ppc64 versions of then minix_*() bitmap functions have changed
        semantics.  Previously on ppc64, these functions were big-endian
        (that is bit 0 was the LSB in the first 64-bit, big-endian word).
        On ppc32 (and x86, for that matter, they were little-endian.  As far
        as I can tell, the big-endian usage was simply wrong - I guess
        no-one ever tried to use minixfs on ppc64.
      
      - On ppc32 find_next_bit() and find_next_zero_bit() are no longer
        inline (they were already out-of-line on ppc64).
      
      - For ppc64, sched_find_first_bit() has moved from mmu_context.h to
        the merged bitops.  What it was doing in mmu_context.h in the first
        place, I have no idea.
      
      - The fls() function is now implemented using the cntlzw instruction
        on ppc64, instead of generic_fls(), as it already was on ppc32.
      
      - For ARCH=ppc, this patch requires adding arch/powerpc/lib to the
        arch/ppc/Makefile.  This in turn requires some changes to
        arch/powerpc/lib/Makefile which didn't correctly handle ARCH=ppc.
      
      Built and running on G5.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a0e60b20
    • A
      [PATCH] powerpc: move rtas_fw.c out of platforms/pseries · e9add2ee
      Arnd Bergmann 提交于
      Cell uses the same code as pSeries for flashing the firmware
      through rtas, so the implementation should not be part of
      platforms/pseries.
      
      Put it into arch/powerpc/kernel instead.
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e9add2ee
    • A
      [PATCH] powerpc: Rename BPA to Cell · f3f66f59
      Arnd Bergmann 提交于
      The official name for BPA is now CBEA (Cell Broadband
      Engine Architecture). This patch renames all occurences
      of the term BPA to 'Cell' for easier recognition.
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f3f66f59
    • S
      powerpc: make mem= work on iSeries again · bec7c458
      Stephen Rothwell 提交于
      By parsing the command line earlier, we can add the mem= value to the
      flattened device tree and let the generic code sort out the memory limit
      for us.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      bec7c458
  2. 31 10月, 2005 2 次提交
  3. 30 10月, 2005 1 次提交
    • P
      powerpc: Fix time setting bug on 32-bit · 5f6b5b97
      Paul Mackerras 提交于
      This fixes a bug where settimeofday would set the wrong parameters
      in do_gtod, resulting in gettimeofday returning a value about 4
      hours after the correct time.  The bug was that we divided a
      negative 64-bit value with do_div, which treated it as unsigned
      and gave us a result that was approximately 1.8e10 too large
      (since the divisor was 1e9).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5f6b5b97
  4. 29 10月, 2005 2 次提交
  5. 28 10月, 2005 6 次提交
  6. 27 10月, 2005 7 次提交
    • P
      powerpc: Introduce toreal/fromreal assembly macros · 6316222e
      Paul Mackerras 提交于
      On 32-bit platforms, these convert from kernel virtual addresses
      to real (physical addresses), like tophys/tovirt but they use
      the same register for the source and destination.  On 64-bit
      platforms, they do nothing because the hardware ignores the top
      two bits of the address in real mode.
      
      These new macros are used in fpu.S now.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6316222e
    • P
      powerpc: 32-bit CHRP SMP fixes · 80579e1f
      Paul Mackerras 提交于
      Untested, but "should" work...  at least this way it compiles.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      80579e1f
    • P
      eef69e3c
    • D
      [PATCH] powerpc: Purge bootinfo.h · e37bc5df
      David Gibson 提交于
      With ARCH=powerpc we assume the presence of a device tree, so we don't
      require any support for the old bi_recs method of passing boot
      parameters.  Likewise, we've never needed it for ppc64, but we still
      had an include/asm-ppc64/bootinfo.h from which nothing was used.  This
      patch removes that file, and all references to it in arch/ppc64 and
      arch/powerpc.  A related, unused variable 'boot_mem_size' is also
      removed from setup_32.c.  The bootinfo stuff remains in ARCH=ppc for
      the time being.
      
      Built and booted on Power5 (ARCH=ppc64 and ARCH=powerpc), built for
      32-bit powermac (ARCH=powerpc and ARCH=ppc).
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e37bc5df
    • 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
    • P
      [PATCH] ppc64: remove arch/ppc64/kernel/setup.c · fda262b8
      Paul Mackerras 提交于
      and use setup_64.c from the merged tree instead.  The only difference
      between them was the code to set up the syscall maps.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      fda262b8
    • P
      powerpc: Remove common stuff from setup_64.c · cb4ab974
      Paul Mackerras 提交于
      This should have been in commit 03501dab
      but got missed by accident.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      cb4ab974
  7. 26 10月, 2005 9 次提交
  8. 24 10月, 2005 3 次提交
  9. 23 10月, 2005 2 次提交
    • P
      powerpc: Run on old powermacs. · a575b807
      Paul Mackerras 提交于
      Old powermacs have a number of differences from current machines:
      - there is no interrupt tree in the device tree, just interrupt
        or AAPL,interrupt properties
      - the chosen node in the device tree is called /chosen@0
      - the OF claim method doesn't map the memory, so we have to do
        an explicit map call as well
      - there is no /chosen/cpu property on SMP machines
      - the NVRAM isn't structured as a set of partitions.
      
      This adapts the merged powermac support code to cope with these
      issues.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a575b807
    • P
      powerpc: Fix time code for 601 processors · 96c44507
      Paul Mackerras 提交于
      The 601 doesn't have the timebase register; instead it has an RTCL
      register that counts nanoseconds and wraps at 1000000000, and an
      RTCU register that counts seconds.  This makes the necessary changes
      for the merged time code to use the RTCL/U registers when the kernel
      is running on a 601.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      96c44507
  10. 22 10月, 2005 4 次提交