Commit Graph

197 Commits

Author SHA1 Message Date
Paul Mackerras e2f2e58e79 powerpc: import a fix from arch/ppc/mm/pgtable.c
... namely, the change to the 2-argument pte_alloc_kernel.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-31 14:40:03 +11:00
Paul Mackerras 734d652480 powerpc: apply recent changes to merged code
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-31 13:57:01 +11:00
Paul Mackerras 23fd07750a Merge ../linux-2.6 by hand 2005-10-31 13:37:12 +11:00
Paul Mackerras cf00a8d18b powerpc: Fix bug arising from having multiple memory_limit variables
We had a static memory_limit in prom.c, and then another one defined
in setup_64.c and used in numa.c, which resulted in the kernel crashing
when mem=xxx was given on the command line.  This puts the declaration
in system.h and the definition in mem.c.  This also moves the
definition of tce_alloc_start/end out of setup_64.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-31 13:07:02 +11:00
Paul Mackerras 5f6b5b973a powerpc: Fix time setting bug on 32-bit
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: Paul Mackerras <paulus@samba.org>
2005-10-30 22:55:52 +11:00
Paul Mackerras eb66ce6333 powerpc: Remove T command from xmon help text since it no longer exists
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 22:11:06 +10:00
Paul Mackerras 3ee1fcac33 powerpc: import a gfp_t fix to arch/powerpc/mm/pgtable_32.c
This applies the same fix as Al Viro recently made to
arch/ppc/mm/pgtable.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 22:10:38 +10:00
Paul Mackerras c1c3a554a3 powerpc: 32-bit needs cur_cpu_spec exported too
Somehow we ended up with an #ifdef CONFIG_PPC64 around the export
of cur_cpu_spec, but raid6 as a module needs it on ppc32 as well
as ppc64.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 22:08:55 +10:00
Paul Mackerras 0cb7b2afd7 powerpc: Merge maple support code to arch/powerpc/platforms/maple
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 22:07:56 +10:00
Paul Mackerras d3f67fbb96 powerpc: Add -mno-altivec for ARCH=powerpc builds
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 15:31:17 +10:00
Andy Whitcroft ffa27b6bc6 [PATCH] ppc64 memory model depends on NUMA
Currently when we first select memory model (FLAT, DISCONTIG, SPARSE) then
select whether the machine is NUMA.  However NUMA systems may not be FLAT.
This constraint it not honoured and we may configure a NUMA/FLAT system.

Reorder the configuration such that we choose NUMA first which allows us to
only list the memory models which are valid.  We now default NUMA for known
NUMA systems.  Note that this new order also matches that used in x86.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Joel Schopp <jschopp@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 15:27:39 +10:00
Olaf Hering ea6526605a [PATCH] ppc64: remove duplicate local variable in set_preferred_console
remove duplicate local variable, saves 2 asm instructions.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 15:23:08 +10:00
Nicolas DET dd03d25fac [PATCH] chrp_pegasos_eth: Added Marvell Discovery II SRAM support
Add proper entry to support the Marvell MV64361 (Marvell Discovery II)
SRAM.

This feature may be used by the mv643xx_eth driver.

Signed-off-by: Nicolas DET <det.nicolas@free.fr>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 14:41:08 +10:00
Olaf Hering 35e95e6399 [PATCH] ppc32: nvram driver for chrp
This implements a nvram acccess method, similar to
arch/ppc64/kernel/pSeries_nvram.c tested on CHRP B50.

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 14:35:00 +10:00
Roland Dreier 8b150478ae [PATCH] ppc: make phys_mem_access_prot() work with pfns instead of addresses
Change the phys_mem_access_prot() function to take a pfn instead of an
address.  This allows mmap64() to work on /dev/mem for addresses above 4G
on 32-bit architectures.  We start with a pfn in mmap_mem(), so there's no
need to convert to an address; in fact, it's actively bad, since the
conversion can overflow when the address is above 4G.

Similarly fix the ppc32 page_is_ram() function to avoid a conversion to an
address by directly comparing to max_pfn.  Working with max_pfn instead of
high_memory fixes page_is_ram() to give the right answer for highmem pages.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 14:25:49 +10:00
Paul Mackerras f78541dcec powerpc: Merge xmon
The merged version follows the ppc64 version pretty closely mostly,
and in fact ARCH=ppc64 now uses the arch/powerpc/xmon version.
The main difference for ppc64 is that the 'p' command to call
show_state (which was always pretty dodgy) has been replaced by
the ppc32 'p' command, which calls a given procedure (so in fact
the old 'p' command behaviour can be achieved with 'p $show_state').

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 22:53:37 +10:00
Paul Mackerras c032524f0d powerpc: Make single-stepping emulation (mostly) usable on 32-bit
The sc instruction emulation can't be done the same way on 32-bit
as 64-bit yet, but this should work OK.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 22:48:08 +10:00
Paul Mackerras d73e0c99f5 powerpc: Rename asm offset TRAP to _TRAP for 32-bit
... for consistency with 64-bit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 22:45:25 +10:00
David Gibson 007e8f51b2 [PATCH] powerpc: Move xics.[ch] into platforms/pseries
This patch moves the XICS interrupt controller code into the
platforms/pseries directory, since it only appears on pSeries
machines.  If it ever appears on some other machine we can move it to
sysdev, although xics.c itself will need a bunch of changes in that
case to remove pSeries specific assumptions.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 16:39:19 +10:00
Paul Mackerras 22b280324a Merge git://oak/home/sfr/kernels/iseries/work/ 2005-10-28 13:50:39 +10:00
Stephen Rothwell 299f6ce491 ppc64: use mem_64.S from powerpc/lib
and remove the same bits from ppc64/lib/string.S.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:54:35 +10:00
Stephen Rothwell a4a264f144 ppc64: use usercopy_64.c from powerpc/lib
since it is identical to usercopy.c from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:54:26 +10:00
Stephen Rothwell a2b0ca84a1 ppc64: user strcase.c from powerpc/lib
since it is identical to strcase.c from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:54:18 +10:00
Stephen Rothwell a0d8bf9cf1 ppc64: use sstep.c from powerpc/lib
since it is identical to sstep.c from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:54:08 +10:00
Stephen Rothwell 12a39407f0 ppc64: use memcpy_64.S from powerpc/lib
since it is identical to mempcy.S from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:53:58 +10:00
Stephen Rothwell ecc81e0f71 ppc64: use lockc.c from powerpc/lib
since it is effectively the same as locks.c from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:53:48 +10:00
Stephen Rothwell 43f35ec35c ppc64: use copyuser_64.S from powerpc/lib
since it is identical to copyuser.S from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:53:37 +10:00
Stephen Rothwell 34faa82841 ppc64: use copypage_64.S from powerpc/lib
since it is identical to copypage.S from ppc64/lib.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:53:27 +10:00
Stephen Rothwell 454fb016b3 ppc64: use e2a.c from powerpc/lib
since it is identical to e2a.c from ppc64/lib

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:53:13 +10:00
Stephen Rothwell 1a3c061efd ppc64: use checksum_64.S from powerpc
as it is identical to checksum.S from ppc64.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:52:58 +10:00
Stephen Rothwell 640768eef2 ppc64: use the merged syscall table
This allows us to also use entry_64.S from the merged tree and reverts
the setup_64.c part of fda262b897.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-28 12:51:45 +10:00
David Gibson a8e3d48150 [PATCH] powerpc: Remove dregs of bootinfo.h
Since I sent the patch to purge bootinfo.h from ARCH=powerpc and
ARCH=ppc64, setup-common.c has come into existence, and another
#include of bootinfo.h slipped in.  This patch removes it.  It also
removes include/asm-ppc64/bootinfo.h, which somehow survived the
previous patch which was supposed to remove it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 11:37:03 +10:00
Kumar Gala e6b4fe92ef [PATCH] powerpc: only build idle_6xx for 6xx
For the current time idle_6xx only applies to 6xx ppc32 CPUs

Signed-off-by: Kumar K. Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 11:36:55 +10:00
Paul Mackerras 9675c7ebcf ppc64: Include arch/powerpc/kernel/setup-common.o
... which is needed now that ARCH=ppc64 is using the merged
setup_64.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 08:30:25 +10:00
Paul Mackerras 09eee63471 powerpc: Move U3 IOMMU driver to arch/powerpc/sysdev
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 08:29:36 +10:00
Paul Mackerras bfab1019b7 powerpc: Fix new-world powermac detection
My G5 was being reported as an OldWorld in /proc/cpuinfo, which is
obviously not right... :)

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 22:45:33 +10:00
Paul Mackerras 6316222ea0 powerpc: Introduce toreal/fromreal assembly macros
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: Paul Mackerras <paulus@samba.org>
2005-10-27 22:44:39 +10:00
Paul Mackerras 80579e1f4a powerpc: 32-bit CHRP SMP fixes
Untested, but "should" work...  at least this way it compiles.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 22:42:04 +10:00
Paul Mackerras eef69e3cfb powerpc: remove duplicate screen_info from setup_32.c
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 22:21:37 +10:00
Kumar Gala 4b24b01c6c [PATCH] powerpc: Moved dcr support to arch/powerpc
Signed-off-by: Kumar K. Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 20:51:22 +10:00
Kumar Gala cffb09ce6b [PATCH] powerpc: Fix warning related to do_dabr
do_dabr() is not relevant on 40x or Book-E processors so dont build it

Signed-off-by: Kumar K. Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 20:51:19 +10:00
David Gibson e37bc5df8e [PATCH] powerpc: Purge bootinfo.h
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: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 20:50:46 +10:00
David Gibson 25c8a78b1e [PATCH] powerpc: Fix handling of fpscr on 64-bit
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: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 20:48:50 +10:00
Paul Mackerras fda262b897 [PATCH] ppc64: remove arch/ppc64/kernel/setup.c
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: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 20:20:42 +10:00
Paul Mackerras cb4ab974ae powerpc: Remove common stuff from setup_64.c
This should have been in commit 03501dab03
but got missed by accident.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 11:08:31 +10:00
Paul Mackerras b6a4ce526a powerpc: 32-bit powermac needs the mpc106 code
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 22:54:17 +10:00
Paul Mackerras bd561c79dc powerpc: Fix incorrect timer register addresses in mpic.c
We were computing the wrong address for the MPIC timer registers,
so when we went to initialize them we would have been hitting some
unrelated ioremap... oops.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 21:55:33 +10:00
Paul Mackerras fa39dc437a powerpc32: Limit memory to lowmem if !CONFIG_HIGHMEM.
This trims off the extra unusable memory from the lmb structure,
so we don't try to use it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 21:54:21 +10:00
Paul Mackerras c49888203d powerpc: Fixes to get the Longtrail CHRP a bit further
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: Paul Mackerras <paulus@samba.org>
2005-10-26 21:52:53 +10:00
Paul Mackerras bbd0abda9c powerpc: Merge 32-bit CHRP support.
SMP still needs more work but UP gets as far as starting userspace
at least.  This uses the 64-bit-style code for spinning up the cpus.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 21:45:56 +10:00