GitHub/exynos8895/android_kernel_samsung_universal8895.git
17 years ago[POWERPC] ps3: add a default zImage target
Geoff Levand [Tue, 5 Dec 2006 00:11:38 +0000 (16:11 -0800)]
[POWERPC] ps3: add a default zImage target

Add a powerpc make target that can be loaded by the ps3 bootloader (kboot) and
set this as the default image to build for that platform.

Until the compressed zImage wrapper is made, this arranges for a stripped
vmlinux image to be built.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add of_platform_bus support to mpc52xx psc uart driver
Grant Likely [Mon, 27 Nov 2006 21:21:02 +0000 (14:21 -0700)]
[POWERPC] Add of_platform_bus support to mpc52xx psc uart driver

Needed to support mpc52xx boards in arch/powerpc.  This patch
retains the platform_bus support when compiling for arch/ppc,
but uses the of_platform bindings for arch/powerpc.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] typo fix and whitespace cleanup on mpc52xx-uart driver
Grant Likely [Mon, 27 Nov 2006 21:21:01 +0000 (14:21 -0700)]
[POWERPC] typo fix and whitespace cleanup on mpc52xx-uart driver

Single typo fix and whitespace changes.  In preparation for heavy
changes to this driver when support for arch/powerpc is added.
Since the driver will be changing significantly anyway, then may
as well take the opportunity to clean it up first.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix debug printks for 32-bit resources in the PCI code
Sergei Shtylyov [Sun, 3 Dec 2006 17:52:27 +0000 (20:52 +0300)]
[POWERPC] Fix debug printks for 32-bit resources in the PCI code

Cure the damage done by the former PCI debug printks fix for the case
of 64-bit resources (commit 685143ac1f7a579a3fac9c7f2ac8f82e95af6864)
which broke it for the plain vanilla 32-bit resources...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Replace kmalloc+memset with kzalloc
Yan Burman [Sat, 2 Dec 2006 11:26:57 +0000 (13:26 +0200)]
[POWERPC] Replace kmalloc+memset with kzalloc

Replace kmalloc+memset with kzalloc.

Signed-off-by: Yan Burman <burman.yan@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Linkstation / kurobox support
Guennadi Liakhovetski [Fri, 1 Dec 2006 21:53:48 +0000 (22:53 +0100)]
[POWERPC] Linkstation / kurobox support

Support for the Kurobox(HG)/LinkStation-I NAS systems by Buffalo
Technology, should be also applicable to the PPC TeraStation family.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add the e300c3 core to the CPU table.
Scott Wood [Fri, 1 Dec 2006 18:57:05 +0000 (12:57 -0600)]
[POWERPC] Add the e300c3 core to the CPU table.

This core is used in Freescale's 831x chips.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] ppc: m48t35 add missing bracket
Mariusz Kozlowski [Thu, 30 Nov 2006 09:25:23 +0000 (10:25 +0100)]
[POWERPC] ppc: m48t35 add missing bracket

Add missing bracket in definition for m48t35 RTC chip.

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] iSeries: don't build head_64.o unnecessarily
Stephen Rothwell [Thu, 30 Nov 2006 05:55:04 +0000 (16:55 +1100)]
[POWERPC] iSeries: don't build head_64.o unnecessarily

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] iSeries: stop dt_mod.o being rebuilt unnecessarily
Stephen Rothwell [Thu, 30 Nov 2006 05:53:11 +0000 (16:53 +1100)]
[POWERPC] iSeries: stop dt_mod.o being rebuilt unnecessarily

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix cputable.h for combined build
Stephen Rothwell [Thu, 30 Nov 2006 00:46:22 +0000 (11:46 +1100)]
[POWERPC] Fix cputable.h for combined build

Remove CPU_FTR_16M_PAGE from the cupfeatures mask at runtime on iSeries.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Allow CONFIG_BOOTX_TEXT on iSeries
Stephen Rothwell [Thu, 30 Nov 2006 00:45:14 +0000 (11:45 +1100)]
[POWERPC] Allow CONFIG_BOOTX_TEXT on iSeries

and therefore combined builds.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Allow xmon to build on legacy iSeries
Stephen Rothwell [Thu, 30 Nov 2006 00:44:09 +0000 (11:44 +1100)]
[POWERPC] Allow xmon to build on legacy iSeries

xmon still does not run on iSeries, but this allows us to build a combined
kernel that includes it.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Change ppc64_defconfig to use AUTOFS_V4 not V3
Linas Vepstas [Wed, 29 Nov 2006 18:05:22 +0000 (12:05 -0600)]
[POWERPC] Change ppc64_defconfig to use AUTOFS_V4 not V3

Defconfig ppc64 kernels running under late-model distros
may hang in the automounter rc.d script, which seems to be
expecting autofs version 4. This patch uses the newer autofs.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Tell firmware we can handle POWER6 compatible mode
Paul Mackerras [Wed, 29 Nov 2006 11:31:47 +0000 (22:31 +1100)]
[POWERPC] Tell firmware we can handle POWER6 compatible mode

This adds the "logical" PVR value used by POWER6 in "compatible" mode
to the list of PVR values that the kernel tells firmware it is able to
handle.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Clean images in arch/powerpc/boot
Geert Uytterhoeven [Tue, 28 Nov 2006 11:31:53 +0000 (12:31 +0100)]
[POWERPC] Clean images in arch/powerpc/boot

Add a rule to clean up the various generated image files in
arch/powerpc/boot.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix OF pci flags parsing
Olof Johansson [Tue, 28 Nov 2006 03:21:29 +0000 (21:21 -0600)]
[POWERPC] Fix OF pci flags parsing

For PCI devices with only io ports, of_bus_pci_get_flags() will fall
through and still mark the resource as IORESOURCE_MEM.

Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] defconfig for lite5200 board
Grant Likely [Mon, 27 Nov 2006 21:16:30 +0000 (14:16 -0700)]
[POWERPC] defconfig for lite5200 board

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add device trees for lite5200 and lite5200b eval boards
Grant Likely [Mon, 27 Nov 2006 21:16:29 +0000 (14:16 -0700)]
[POWERPC] Add device trees for lite5200 and lite5200b eval boards

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add lite5200 board support to arch/powerpc
Grant Likely [Mon, 27 Nov 2006 21:16:28 +0000 (14:16 -0700)]
[POWERPC] Add lite5200 board support to arch/powerpc

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add common routines for 52xx support in arch/powerpc
Grant Likely [Mon, 27 Nov 2006 21:16:27 +0000 (14:16 -0700)]
[POWERPC] Add common routines for 52xx support in arch/powerpc

Adds utility routines used by 52xx device drivers and board support
code.  Main functionality is to add device nodes to the of_platform_bus,
retrieve the IPB bus frequency, and find+ioremap device registers.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Separate IRQ config / register set from main header
Sylvain Munaut [Mon, 27 Nov 2006 21:16:26 +0000 (14:16 -0700)]
[POWERPC] Separate IRQ config / register set from main header

There is no need to expose these settings outside the scope
of the interrupt controller code itself.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Move Efika support files into platforms/52xx
Grant Likely [Mon, 27 Nov 2006 21:16:25 +0000 (14:16 -0700)]
[POWERPC] Move Efika support files into platforms/52xx

The Efika board isn't different enough from other 52xx based boards to
justify a separate platform.  This patch merges it with the support
code for all other 52xx based boards.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Put mpc52xx support file in platforms/52xx
Grant Likely [Mon, 27 Nov 2006 21:16:24 +0000 (14:16 -0700)]
[POWERPC] Put mpc52xx support file in platforms/52xx

platforms/embedded6xx is probably going away, and 52xx boards need
some extra support the 52xx interrupt controller and DMA engine
anyway.  It makes sense to group all the 52xx bits into a single path.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Move MPC52xx PIC driver into arch/powerpc/platforms/52xx
Grant Likely [Mon, 27 Nov 2006 21:16:23 +0000 (14:16 -0700)]
[POWERPC] Move MPC52xx PIC driver into arch/powerpc/platforms/52xx

No other chips use this device, it belongs in a 52xx-specific path.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Document describing mpc52xx device tree binding conventions
Grant Likely [Mon, 27 Nov 2006 21:16:22 +0000 (14:16 -0700)]
[POWERPC] Document describing mpc52xx device tree binding conventions

This document describes the device tree expectations for mpc52xx based
boards.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] iSeries: allow CONFIG_CMDLINE
Stephen Rothwell [Mon, 27 Nov 2006 06:17:02 +0000 (17:17 +1100)]
[POWERPC] iSeries: allow CONFIG_CMDLINE

It doesn't hurt to have this enabled on legacy iSeries and will mean it
is available for a combined build.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] iSeries: Eliminate "exceeds stub group size" warnings
Stephen Rothwell [Mon, 27 Nov 2006 03:59:50 +0000 (14:59 +1100)]
[POWERPC] iSeries: Eliminate "exceeds stub group size" warnings

Commit 3ccfc65c5004e5fe5cfbffe43b8acc686680b53e missed the same fixes for
legacy iSeries specific code, so make some more symbols no longer global.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add files build to .gitignore
Rutger Nijlunsing [Sun, 26 Nov 2006 20:08:38 +0000 (21:08 +0100)]
[POWERPC] Add files build to .gitignore

Mostly taken from corresponding Makefile's make-clean rule.

Tested by (cross)compiling for $ARCH PPC and POWERPC and checking
output of git-status.

Signed-off-by: Rutger Nijlunsing <git-commit@tux.tmfweb.nl>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Provide dummy hard_irq_enable/disable() for PPC32
Michael Ellerman [Sun, 26 Nov 2006 06:36:15 +0000 (17:36 +1100)]
[POWERPC] Provide dummy hard_irq_enable/disable() for PPC32

To allow arch/powerpc/kernel/crash.c to build on 32-bit we need a
definition of hard_irq_disable(). 32-bit doesn't support the lazy
interrupt disabling mechanism, so on 32-bit hard_irq_disable() is
simply local_irq_disable(). Add a definition for hard_irq_enable()
just for completeness.

This allows (KEXEC=y && PPC32=y) to build again. Broken since
d04c56f73c30a5e593202ecfcf25ed43d42363a2.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] include/asm-powerpc/: "extern inline" -> "static inline"
Adrian Bunk [Fri, 1 Dec 2006 11:53:18 +0000 (12:53 +0100)]
[POWERPC] include/asm-powerpc/: "extern inline" -> "static inline"

"extern inline" generates a warning with -Wmissing-prototypes and I'm
currently working on getting the kernel cleaned up for adding this to
the CFLAGS since it will help us to avoid a nasty class of runtime
errors.

If there are places that really need a forced inline, __always_inline
would be the correct solution.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Add of_platform support for ROM devices
Vitaly Wool [Mon, 20 Nov 2006 13:32:39 +0000 (16:32 +0300)]
[POWERPC] Add of_platform support for ROM devices

This adds support for flash device descriptions to the OF device tree.
It's inspired by and partially borrowed from Sergei's patch "[RFC]
Adding MTD to device tree.patch".

Signed-off-by: Vitaly Wool <vwool@ru.mvista.com>
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] pSeries/kexec: Fix for interrupt distribution
Mohan Kumar M [Fri, 17 Nov 2006 12:12:24 +0000 (17:42 +0530)]
[POWERPC] pSeries/kexec: Fix for interrupt distribution

This allows any secondary CPU thread also to become boot cpu for
POWER5.  The patch is required to solve kdump boot issue when the
kdump kernel is booted with parameter "maxcpus=1".  XICS init code
tries to match the current boot cpu id with "reg" property in each CPU
node in the device tree.  But CPU node is created only for primary
thread CPU ids and "reg" property only reflects primary CPU ids.  So
when a kernel is booted on a secondary cpu thread above condition will
never meet and the default distribution server is left as zero.  This
leads to route the interrupts to CPU 0, but which is not online at
this time.

We use ibm,ppc-interrupt-server#s to check for both primary and
secondary CPU ids.  Accordingly default distribution server value is
initialized from "ibm,ppc-interrupt-gserver#s" property.  We loop
through ibm,ppc-interrupt-gserver#s property to find the global
distribution server from the last entry that matches with boot cpuid.

Signed-off-by: Mohan Kumar M <mohan@in.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] fix building without PCI
Arnd Bergmann [Mon, 27 Nov 2006 18:19:00 +0000 (19:19 +0100)]
[POWERPC] fix building without PCI

At least the ide driver calls pcibus_to_node, which is not
defined when CONFIG_PCI is disabled. This adds a nop function
for the !PCI case.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] fix missing #include in sys_ppc32.c
Arnd Bergmann [Mon, 27 Nov 2006 18:18:59 +0000 (19:18 +0100)]
[POWERPC] fix missing #include in sys_ppc32.c

sys_mmap is declared in asm/syscalls.h

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add a default zImage target
Arnd Bergmann [Mon, 27 Nov 2006 18:18:58 +0000 (19:18 +0100)]
[POWERPC] ps3: add a default zImage target

It's currently not possible to build the default zImage
target if PS3 is the only selected platform. This is
a hack to fall back to building the pseries style
zImage, so the build is successful. This will probably
change in the future, if someone writes a PS3 specific
boot wrapper.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: multiplatform build fixes
Arnd Bergmann [Mon, 27 Nov 2006 18:18:57 +0000 (19:18 +0100)]
[POWERPC] ps3: multiplatform build fixes

A few code paths need to check whether or not they are running
on the PS3's LV1 hypervisor before making hcalls. This introduces
a new firmware feature bit for this, FW_FEATURE_PS3_LV1.

Now when both PS3 and IBM_CELL_BLADE are enabled, but not PSERIES,
FW_FEATURE_PS3_LV1 and FW_FEATURE_LPAR get enabled at compile time,
which is a bug. The same problem can also happen for (PPC_ISERIES &&
!PPC_PSERIES && PPC_SOMETHING_ELSE). In order to solve this, I
introduce a new CONFIG_PPC_NATIVE option that is set when at least
one platform is selected that can run without a hypervisor and then
turns the firmware feature check into a run-time option.

The new cell oprofile support that was recently merged does not
work on hypervisor based platforms like the PS3, therefore make
it depend on PPC_CELL_NATIVE instead of PPC_CELL. This may change
if we get oprofile support for PS3.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: Missed renames of CONFIG_PS3 to CONFIG_PPC_PS3
Geert Uytterhoeven [Mon, 27 Nov 2006 18:18:56 +0000 (19:18 +0100)]
[POWERPC] ps3: Missed renames of CONFIG_PS3 to CONFIG_PPC_PS3

When renaming CONFIG_PS3 to CONFIG_PPC_PS3, a few occurrences have been
missed.

I also fixed up the alignment in arch/powerpc/platforms/Makefile.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] cell: fix building without spufs
Arnd Bergmann [Mon, 27 Nov 2006 18:18:55 +0000 (19:18 +0100)]
[POWERPC] cell: fix building without spufs

It may be desireable to build a kernel for cell without
spufs, e.g. as the initial kboot kernel. This requires
that the SPU specific parts of the core dump and the xmon
code depend on CONFIG_SPU_BASE instead of CONFIG_PPC_CELL.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] spufs: we should only execute init_spu_base on cell
Stephen Rothwell [Mon, 27 Nov 2006 18:18:54 +0000 (19:18 +0100)]
[POWERPC] spufs: we should only execute init_spu_base on cell

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] spufs: always send sigtrap on breakpoint
Arnd Bergmann [Mon, 27 Nov 2006 18:18:53 +0000 (19:18 +0100)]
[POWERPC] spufs: always send sigtrap on breakpoint

Currently, we only send a sigtrap if the current task is being ptraced.
This is somewhat inconsistant, and it breaks utrace support in fedora.
Removing the check should do the right thing in all cases.

Cc: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] spufs: return an error in spu_create is isolated create isnt supported
Jeremy Kerr [Mon, 27 Nov 2006 18:18:52 +0000 (19:18 +0100)]
[POWERPC] spufs: return an error in spu_create is isolated create isnt supported

This changes the spu_create system call to return an error (-ENODEV) if
and isolated spu context is requested on hardware that doesn't support
isolated mode.

Tested on systemsim with and without isolation support

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Fix compile issue for Efika platform
Nicolas DET [Fri, 17 Nov 2006 15:03:20 +0000 (16:03 +0100)]
[POWERPC] Fix compile issue for Efika platform

This patch fixes a compile issue for the Efika platform recently
introduced by API changes.

Signed-off-by: Nicolas DET <nd@bplan-gmbh.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Compile a zImage.chrp if PPC_EFIKA seleted
Nicolas DET [Fri, 17 Nov 2006 16:08:37 +0000 (17:08 +0100)]
[POWERPC] Compile a zImage.chrp if PPC_EFIKA seleted

Signed-off-by: Nicolas DET <nd@bplan-gmbh.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] powerpc: Make 970MP detectable by oprofile
Mike Wolf [Tue, 21 Nov 2006 20:41:54 +0000 (14:41 -0600)]
[POWERPC] powerpc: Make 970MP detectable by oprofile

Change the oprofile_cpu_type in cputables.c to be ppc64/970MP.  Oprofile
needs to distinquish the MP from other 970 processors so it can add some
new counters specific to the 970MP.

Signed-off-by: Mike Wolf <mjw@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] update cell_defconfig for ps3 support
Arnd Bergmann [Wed, 22 Nov 2006 23:47:02 +0000 (00:47 +0100)]
[POWERPC] update cell_defconfig for ps3 support

In the common cell kernel, I want to have ps3 enabled
to find potential bugs at compile-time.
Also enable SPU disassembly in xmon.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add ps3_defconfig
Geoff Levand [Wed, 22 Nov 2006 23:47:01 +0000 (00:47 +0100)]
[POWERPC] ps3: add ps3_defconfig

Adds a ps3_defconfig for the PS3 game console.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add ps3 platform system bus support
Geoff Levand [Wed, 22 Nov 2006 23:47:00 +0000 (00:47 +0100)]
[POWERPC] ps3: add ps3 platform system bus support

Adds a PS3 system bus driver.  This system bus is a virtual bus used to present
the PS3 system devices in the LDM.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add spu support
Geoff Levand [Wed, 22 Nov 2006 23:46:59 +0000 (00:46 +0100)]
[POWERPC] ps3: add spu support

Adds spu support for the PS3 platform.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add OS params support
Geoff Levand [Wed, 22 Nov 2006 23:46:58 +0000 (00:46 +0100)]
[POWERPC] ps3: add OS params support

Adds support for early access to the parameter data from the PS3 'Other OS'
flash memory area.  The parameter data mainly holds user preferences like
static ip address.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add lpar addressing
Geoff Levand [Wed, 22 Nov 2006 23:46:57 +0000 (00:46 +0100)]
[POWERPC] ps3: add lpar addressing

Adds some needed bits for a config option PS3_USE_LPAR_ADDR that disables
the PS3 lpar address translation mechanism.  This is a currently needed
workaround for limitations in the design of the generic cell spu support.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add interrupt support
Geoff Levand [Wed, 22 Nov 2006 23:46:56 +0000 (00:46 +0100)]
[POWERPC] ps3: add interrupt support

Adds routines to interface with the PS3 interrupt services.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add repository support
Geoff Levand [Wed, 22 Nov 2006 23:46:55 +0000 (00:46 +0100)]
[POWERPC] ps3: add repository support

Adds support for the PS3 repository.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add htab routines
Geoff Levand [Wed, 22 Nov 2006 23:46:54 +0000 (00:46 +0100)]
[POWERPC] ps3: add htab routines

Adds pagetable management routines for the PS3.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add feature bits
Geoff Levand [Wed, 22 Nov 2006 23:46:53 +0000 (00:46 +0100)]
[POWERPC] ps3: add feature bits

Adds the needed firmware feature bits for the PS3.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add lv1 hvcalls
Geoff Levand [Wed, 22 Nov 2006 23:46:52 +0000 (00:46 +0100)]
[POWERPC] ps3: add lv1 hvcalls

Adds the PS3 hvcalls.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] ps3: add support for ps3 platform
Geoff Levand [Wed, 22 Nov 2006 23:46:51 +0000 (00:46 +0100)]
[POWERPC] ps3: add support for ps3 platform

Adds the core platform support for the PS3 game console and other devices
using the PS3 hypervisor.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] cell: spu management xmon routines
Michael Ellerman [Wed, 22 Nov 2006 23:46:50 +0000 (00:46 +0100)]
[POWERPC] cell: spu management xmon routines

This fixes the xmon support for the cell spu to be compatable with the split
spu platform code.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] cell: abstract spu management routines
Geoff Levand [Wed, 22 Nov 2006 23:46:49 +0000 (00:46 +0100)]
[POWERPC] cell: abstract spu management routines

This adds a platform specific spu management abstraction and the coresponding
routines to support the IBM Cell Blade.  It also removes the hypervisor only
resources that were included in struct spu.

Three new platform specific routines are introduced, spu_enumerate_spus(),
spu_create_spu() and spu_destroy_spu().  The underlying design uses a new
type, struct spu_management_ops, to hold function pointers that the platform
setup code is expected to initialize to instances appropriate to that platform.

For the IBM Cell Blade support, I put the hypervisor only resources that were
in struct spu into a platform specific data structure struct spu_pdata.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] add virq_to_hw accessor routine
Geoff Levand [Wed, 22 Nov 2006 23:46:48 +0000 (00:46 +0100)]
[POWERPC] add virq_to_hw accessor routine

This adds an accessor routine virq_to_hw() to the
virq routines which hides the implementation details
of the virq to hwirq map.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Import updated version of ppc disassembly code for xmon
Michael Ellerman [Wed, 22 Nov 2006 23:46:47 +0000 (00:46 +0100)]
[POWERPC] Import updated version of ppc disassembly code for xmon

This includes:
 * version 1.24 of ppc-dis.c
 * version 1.88 of ppc-opc.c
 * version 1.23 of ppc.h

I can't vouch for the accuracy etc. of these changes, but it brings
us into line with binutils - and from a cursory test appears to work
fine.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Make 64-bit cpu features defined on 32-bit
Michael Ellerman [Wed, 22 Nov 2006 23:46:46 +0000 (00:46 +0100)]
[POWERPC] Make 64-bit cpu features defined on 32-bit

It saves #ifdef'ing in callers if we at least define the 64-bit cpu
features for 32-bit also.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Make xmon disassembly optional
Michael Ellerman [Wed, 22 Nov 2006 23:46:45 +0000 (00:46 +0100)]
[POWERPC] Make xmon disassembly optional

While adding spu disassembly support it struck me that we're actually
carrying quite a lot of code around, just to do disassembly in the case
of a crash.

While on large systems it's not an issue, on smaller ones it might be
nice to have xmon - but without the weight of the disassembly support.
For a Cell build this saves ~230KB (!), and for pSeries ~195KB.

We still support the 'di' and 'sdi' commands, however they just dump
the instruction in hex.

Move the definitions into a header to clean xmon.c just a tiny bit.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Add spu disassembly to xmon
Michael Ellerman [Wed, 22 Nov 2006 23:46:44 +0000 (00:46 +0100)]
[POWERPC] Add spu disassembly to xmon

This patch adds a "sdi" command to xmon, to disassemble the contents
of an spu's local store.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Import spu disassembly code into xmon
Michael Ellerman [Wed, 22 Nov 2006 23:46:43 +0000 (00:46 +0100)]
[POWERPC] Import spu disassembly code into xmon

This patch imports and munges the spu disassembly code from binutils.

All files originated from version 1.1 in binutils cvs.
 * spu.h, spu-insns.h and spu-opc.c are unchanged except for pathnames.
 * spu-dis.c has been edited heavily:
   * use printf instead of info->fprintf_func and similar.
   * pass the instruction in rather than reading it.
   * we have no equivalent to symbol_at_address_func, so we just assume
     there is never a symbol at the address given.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Prepare for spu disassembly in xmon
Michael Ellerman [Wed, 22 Nov 2006 23:46:42 +0000 (00:46 +0100)]
[POWERPC] Prepare for spu disassembly in xmon

In order to do disassembly of spu binaries in xmon, we need to abstract
the disassembly function from ppc_inst_dump.

We do this by making the actual disassembly function a function pointer
that we pass to ppc_inst_dump(). To save updating all the callers, we
turn ppc_inst_dump() into generic_inst_dump() and make ppc_inst_dump()
a wrapper which always uses print_insn_powerpc().

Currently we pass the dialect into print_insn_powerpc(), but we always
pass 0 - so just make it a local.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Add a sd command (spu dump) to xmon to dump spu local store
Michael Ellerman [Wed, 22 Nov 2006 23:46:41 +0000 (00:46 +0100)]
[POWERPC] Add a sd command (spu dump) to xmon to dump spu local store

Add a command to xmon to dump the memory of a spu's local store.
This mimics the 'd' command which dumps regular memory, but does
a little hand holding by taking the user supplied address and
finding that offset in the local store for the specified spu.

This makes it easy for example to look at what was executing on a spu:

1:mon> ss
...
Stopped spu 04 (was running)
...
1:mon> sf 4
Dumping spu fields at address c0000000019e0a00:
...
  problem->spu_npc_RW     = 0x228
...
1:mon> sd 4 0x228
d000080080318228 01a00c021cffc408 4020007f217ff488  |........@ ..!...|

Aha, 01a00c02, which is of course rdch $2,$ch24 !

--

Updated to only do the setjmp goo around the spu access, and not
around prdump because it does its own (via mread).

Also the num variable is now common between sf and sd, so you don't
have to keep typing the spu number in if you're repeating commands
on the same spu.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Show state of spus as theyre stopped in Cell xmon helper
Michael Ellerman [Wed, 22 Nov 2006 23:46:40 +0000 (00:46 +0100)]
[POWERPC] Show state of spus as theyre stopped in Cell xmon helper

After stopping spus in xmon I often find myself trawling through the
field dumps to find out which spus were running. The spu stopping
code actually knows what's running, so let's print it out to save
the user some futzing.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] Fix sparse warning in xmon Cell code
Michael Ellerman [Wed, 22 Nov 2006 23:46:39 +0000 (00:46 +0100)]
[POWERPC] Fix sparse warning in xmon Cell code

My patch to add spu helpers to xmon (a898497088f46252e6750405504064e2dce53117)
introduced a few sparse warnings, because I was dereferencing an __iomem
pointer.

I think the best way to handle it is to actually use the appropriate in_beXX
functions. Need to rejigger the DUMP macro a little to accomodate that.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] cell: hard disable interrupts in power_save()
Benjamin Herrenschmidt [Wed, 22 Nov 2006 23:46:38 +0000 (00:46 +0100)]
[POWERPC] cell: hard disable interrupts in power_save()

With soft-disabled interrupts in power_save, we can
still get external exceptions on Cell, even if we are
in pause(0) a.k.a. sleep state.

When the CPU really wakes up through the 0x100 (system reset)
vector, while we have already started processing the 0x500
(external) exception, we get a panic in unrecoverable_exception()
because of the lost state.

This occurred in Systemsim for Cell, but as far as I can see,
it can theoretically occur on any machine that uses the
system reset exception to get out of sleep state.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] coredump: Add SPU elf notes to coredump.
Dwayne Grant McConnell [Wed, 22 Nov 2006 23:46:37 +0000 (00:46 +0100)]
[POWERPC] coredump: Add SPU elf notes to coredump.

This patch adds SPU elf notes to the coredump. It creates a separate note
for each of /regs, /fpcr, /lslr, /decr, /decr_status, /mem, /signal1,
/signal1_type, /signal2, /signal2_type, /event_mask, /event_status,
/mbox_info, /ibox_info, /wbox_info, /dma_info, /proxydma_info, /object-id.

A new macro, ARCH_HAVE_EXTRA_NOTES, was created for architectures to
specify they have extra elf core notes.

A new macro, ELF_CORE_EXTRA_NOTES_SIZE, was created so the size of the
additional notes could be calculated and added to the notes phdr entry.

A new macro, ELF_CORE_WRITE_EXTRA_NOTES, was created so the new notes
would be written after the existing notes.

The SPU coredump code resides in spufs. Stub functions are provided in the
kernel which are hooked into the spufs code which does the actual work via
register_arch_coredump_calls().

A new set of __spufs_<file>_read/get() functions was provided to allow the
coredump code to read from the spufs files without having to lock the
SPU context for each file read from.

Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
17 years ago[POWERPC] powerpc: Workaround for of_platform without "reg" nor "dcr-reg"
Benjamin Herrenschmidt [Tue, 21 Nov 2006 03:56:37 +0000 (14:56 +1100)]
[POWERPC] powerpc: Workaround for of_platform without "reg" nor "dcr-reg"

Devices with no "reg" nor "dcr-reg" property are given a bus_id which
is the node name alone. This means that if more than one such device
with the same names are present in the system, sysfs will have
collisions when creating the symlinks and will fail registering the
devices.

This works around that problem by assigning successive numbers to such
devices.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Distinguish POWER6 partition modes and tell userspace
Paul Mackerras [Fri, 10 Nov 2006 09:38:53 +0000 (20:38 +1100)]
[POWERPC] Distinguish POWER6 partition modes and tell userspace

This adds code to look at the properties firmware puts in the device
tree to determine what compatibility mode the partition is in on
POWER6 machines, and set the ELF aux vector AT_HWCAP and AT_PLATFORM
entries appropriately.

Specifically, we look at the cpu-version property in the cpu node(s).
If that contains a "logical" PVR value (of the form 0x0f00000x), we
call identify_cpu again with this PVR value.  A value of 0x0f000001
indicates the partition is in POWER5+ compatibility mode, and a value
of 0x0f000002 indicates "POWER6 architected" mode, with various
extensions disabled.  We also look for various other properties:
ibm,dfp, ibm,purr and ibm,spurr.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] cell: Add oprofile support
Maynard Johnson [Mon, 20 Nov 2006 17:45:16 +0000 (18:45 +0100)]
[POWERPC] cell: Add oprofile support

Add PPU event-based and cycle-based profiling support to Oprofile for Cell.

Oprofile is expected to collect data on all CPUs simultaneously.
However, there is one set of performance counters per node.  There are
two hardware threads or virtual CPUs on each node.  Hence, OProfile must
multiplex in time the performance counter collection on the two virtual
CPUs.

The multiplexing of the performance counters is done by a virtual
counter routine.  Initially, the counters are configured to collect data
on the even CPUs in the system, one CPU per node.  In order to capture
the PC for the virtual CPU when the performance counter interrupt occurs
(the specified number of events between samples has occurred), the even
processors are configured to handle the performance counter interrupts
for their node.  The virtual counter routine is called via a kernel
timer after the virtual sample time.  The routine stops the counters,
saves the current counts, loads the last counts for the other virtual
CPU on the node, sets interrupts to be handled by the other virtual CPU
and restarts the counters, the virtual timer routine is scheduled to run
again.  The virtual sample time is kept relatively small to make sure
sampling occurs on both CPUs on the node with a relatively small
granularity.  Whenever the counters overflow, the performance counter
interrupt is called to collect the PC for the CPU where data is being
collected.

The oprofile driver relies on a firmware RTAS call to setup the debug bus
to route the desired signals to the performance counter hardware to be
counted.  The RTAS call must set the routing registers appropriately in
each of the islands to pass the signals down the debug bus as well as
routing the signals from a particular island onto the bus.  There is a
second firmware RTAS call to reset the debug bus to the non pass thru
state when the counters are not in use.

Signed-off-by: Carl Love <carll@us.ibm.com>
Signed-off-by: Maynard Johnson <mpjohn@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] cell: Add routines for managing PMU interrupts
Kevin Corry [Mon, 20 Nov 2006 17:45:15 +0000 (18:45 +0100)]
[POWERPC] cell: Add routines for managing PMU interrupts

The following routines are added to arch/powerpc/platforms/cell/pmu.c:
 cbe_clear_pm_interrupts()
 cbe_enable_pm_interrupts()
 cbe_disable_pm_interrupts()
 cbe_query_pm_interrupts()
 cbe_pm_irq()
 cbe_init_pm_irq()

This also adds a routine in arch/powerpc/platforms/cell/interrupt.c and
some macros in cbe_regs.h to manipulate the IIC_IR register:
 iic_set_interrupt_routing()

Signed-off-by: Kevin Corry <kevcorry@us.ibm.com>
Signed-off-by: Carl Love <carll@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] cell: Move PMU-related stuff to include/asm-powerpc/cell-pmu.h
Kevin Corry [Mon, 20 Nov 2006 17:45:14 +0000 (18:45 +0100)]
[POWERPC] cell: Move PMU-related stuff to include/asm-powerpc/cell-pmu.h

Move some PMU-related macros and function prototypes from cbe_regs.h
and pmu.h in arch/powerpc/platforms/cell/ to a new header at
include/asm-powerpc/cell-pmu.h

This is cleaner to use from the oprofile code, since that sits in
arch/powerpc/oprofile, not in the cell platform directory.

Signed-off-by: Kevin Corry <kevcorry@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] cell: PMU register macros
Kevin Corry [Mon, 20 Nov 2006 17:45:13 +0000 (18:45 +0100)]
[POWERPC] cell: PMU register macros

More macros for manipulating bits in the Cell PMU control registers.

Signed-off-by: Kevin Corry <kevcorry@us.ibm.com>
Signed-off-by: Carl Love <carll@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] cell: Add symbol exports for oprofile
Arnd Bergmann [Mon, 20 Nov 2006 17:45:12 +0000 (18:45 +0100)]
[POWERPC] cell: Add symbol exports for oprofile

Add symbol-exports for the new routines in arch/powerpc/platforms/cell/pmu.c.
They are needed for Oprofile, which can be built as a module.

Signed-off-by: Kevin Corry <kevcorry@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Load isolation kernel from spu_run
Jeremy Kerr [Mon, 20 Nov 2006 17:45:10 +0000 (18:45 +0100)]
[POWERPC] spufs: Load isolation kernel from spu_run

In order to fit with the "don't-run-spus-outside-of-spu_run" model, this
patch starts the isolated-mode loader in spu_run, rather than
spu_create. If spu_run is passed an isolated-mode context that isn't in
isolated mode state, it will run the loader.

This fixes potential races with the isolated SPE app doing a
stop-and-signal before the PPE has called spu_run: bugzilla #29111.
Also (in conjunction with a mambo patch), this addresses #28565, as we
always set the runcntrl register when entering spu_run.

It is up to libspe to ensure that isolated-mode apps are cleaned up
after running to completion - ie, put the app through the "ISOLATE EXIT"
state (see Ch11 of the CBEA).

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Add runcntrl read accessors
Jeremy Kerr [Mon, 20 Nov 2006 17:45:09 +0000 (18:45 +0100)]
[POWERPC] spufs: Add runcntrl read accessors

This change adds a read accessor for the SPE problem-state run control
register.

This is required for for applying (userspace) changes made to the run
control register while the SPE is stopped - simply asserting the master
run control bit is not sufficient. My next patch for isolated-mode
setup requires this.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Use SPU master control to prevent wild SPU execution
Arnd Bergmann [Mon, 20 Nov 2006 17:45:08 +0000 (18:45 +0100)]
[POWERPC] spufs: Use SPU master control to prevent wild SPU execution

When the user changes the runcontrol register, an SPU might be
running without a process being attached to it and waiting for
events. In order to prevent this, make sure we always disable
the priv1 master control when we're not inside of spu_run.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Fix return value of spufs_mfc_write
Masato Noguchi [Mon, 20 Nov 2006 17:45:07 +0000 (18:45 +0100)]
[POWERPC] spufs: Fix return value of spufs_mfc_write

This patch changes spufs_mfc_write() to return
correct size instead of 0.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Always map local store non-guarded
Arnd Bergmann [Mon, 20 Nov 2006 17:45:06 +0000 (18:45 +0100)]
[POWERPC] spufs: Always map local store non-guarded

When fixing spufs to map the 'mem' file backing store cacheable,
I incorrectly set the physical mapping to use both cache-inhibited
and guarded mapping, which resulted in a serious performance
degradation.

Debugged-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Avoid user-triggered oops in ptrace
Christoph Hellwig [Mon, 20 Nov 2006 17:45:05 +0000 (18:45 +0100)]
[POWERPC] spufs: Avoid user-triggered oops in ptrace

When one of the spufs files is mapped into a process address
space, regular users can use ptrace to attempt accessing
them with access_process_vm(). With the way that the
mappings currently work, this likely causes an oops.

Setting the vm_flags to VM_IO makes sure that ptrace can
not access them but returns an error code. This is not
the perfect solution in case of the local store mapping,
but it fixes the oops in a well-defined way.

Also remove leftover VM_RESERVED flags in spufs.  The
VM_RESERVED flag is on it's way out and not checked by
the memory managment code anymore.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Christoph Hellwig <chellwig@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Fix missing stop-and-signal
Masato Noguchi [Mon, 20 Nov 2006 17:45:04 +0000 (18:45 +0100)]
[POWERPC] spufs: Fix missing stop-and-signal

When there is pending signals, current spufs_run_spu() always returns
-ERESTARTSYS and it is called again automatically.
But, if spe already stopped by stop-and-signal or halt instruction,
returning -ERESTARTSYS makes stop-and-signal/halt lost and
spu run over the end-point.

For your convenience, I attached a sample code to restage this bug.
If there is no bug, printed NPC will be 0x4000.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Return correct event for data storage interrupt
Arnd Bergmann [Mon, 20 Nov 2006 17:45:03 +0000 (18:45 +0100)]
[POWERPC] spufs: Return correct event for data storage interrupt

When we attempt an MFC DMA to an unmapped address, the event
returned from spu_run should be SPE_EVENT_SPE_DATA_STORAGE,
not SPE_EVENT_INVALID_DMA.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Replace spu.nid with spu.node
Geoff Levand [Mon, 20 Nov 2006 17:45:02 +0000 (18:45 +0100)]
[POWERPC] spufs: Replace spu.nid with spu.node

Replace the use of the platform specific variable spu.nid with the
platform independednt variable spu.node.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Read from signal files only if data is there
Dwayne Grant McConnell [Mon, 20 Nov 2006 17:45:01 +0000 (18:45 +0100)]
[POWERPC] spufs: Read from signal files only if data is there

We need to check the channel count of the signal notification registers
before reading them, because it can be undefined when the count is
zero. In order to read count and data atomically, we read from the
saved context.

This patch uses spu_acquire_saved() to force a context save before a
/signal1 or /signal2 read. Because of this it is no longer necessary to
have backing_ops and hw_ops versions of this function so they have been
removed.

Regular applications should not rely on reading this register
to be fast, as it's conceptually a write-only file from the PPE
perspective.

Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Implement /mbox_info, /ibox_info, and /wbox_info.
Dwayne Grant McConnell [Mon, 20 Nov 2006 17:45:00 +0000 (18:45 +0100)]
[POWERPC] spufs: Implement /mbox_info, /ibox_info, and /wbox_info.

This patch implements read only access to

/mbox_info - SPU Write Outbound Mailbox
/ibox_info - SPU Write Outbound Interrupt Mailbox
/wbox_info - SPU Read Inbound Mailbox

These files are used by gdb in order to look into the current mailbox
queues without changing the contents at the same time. They are
not meant for general programming use, since the access requires
a context save and is therefore rather slow.

It would be good to complement this patch with one that adds
write support as well.

Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Remove /spu_tag_mask file
Dwayne Grant McConnell [Mon, 20 Nov 2006 17:44:59 +0000 (18:44 +0100)]
[POWERPC] spufs: Remove /spu_tag_mask file

This patch removes the /spu_tag_mask file from spufs. The data provided by
this file is also available from the /dma_info file in the dma_info_mask
of the spu_dma_info struct.

The file was intended to be used by gdb, but that never used it, and
now it has been replaced with the more verbose dma_info file.

Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Add /lslr, /dma_info and /proxydma files
Dwayne Grant McConnell [Mon, 20 Nov 2006 17:44:58 +0000 (18:44 +0100)]
[POWERPC] spufs: Add /lslr, /dma_info and /proxydma files

The /lslr file gives read access to the SPU_LSLR register in hex; 0x3fff
for example The /dma_info file provides read access to the SPU Command
Queue in a binary format. The /proxydma_info files provides read access
access to the Proxy Command Queue in a binary format. The spu_info.h
file provides data structures for interpreting the binary format of
/dma_info and /proxydma_info.

Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] spufs: Change %llx to 0x%llx.
Dwayne Grant McConnell [Mon, 20 Nov 2006 17:44:57 +0000 (18:44 +0100)]
[POWERPC] spufs: Change %llx to 0x%llx.

This patches changes /npc, /decr, /decr_status, /spu_tag_mask,
/event_mask, /event_status, and /srr0 files to provide output according to
the format string "0x%llx" instead of "%llx".

Before this patch some files used "0x%llx" and other used "%llx" which is
inconsistent and potentially confusing. A user might assume "%llx" numbers
were decimal if they happened to not contain any a-f digits. This change
will break any code cannot tolerate a leading 0x in the file contents. The
only known users of these files are the libspe but there might also be
some scripts which access these files. This risk is deemed acceptable for
future consistency.

Signed-off-by: Dwayne Grant McConnell <decimal@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Change ppc_rtas declaration to weak
Geoff Levand [Mon, 20 Nov 2006 17:44:56 +0000 (18:44 +0100)]
[POWERPC] Change ppc_rtas declaration to weak

Change the definition of powerpc's cond_syscall() to use the standard gcc
weak attribute specifier which provides proper support for C linkage as
needed by spu_syscall_table[].

Fixes this powerpc build error with CONFIG_SPU_FS=y, CONFIG_PPC_RTAS=n:

 arch/powerpc/platforms/built-in.o: undefined reference to `ppc_rtas'

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] 8xx: Off-by-one fixes to SCC parameter RAM definitions
Kalle Pokki [Sat, 11 Nov 2006 10:09:39 +0000 (12:09 +0200)]
[POWERPC] 8xx: Off-by-one fixes to SCC parameter RAM definitions

The SCC parameter RAM areas are mapped wrong in MPC8xx device descriptions. All
memory areas overlap with the next one, so that I2C, SPI, SMC1 and SMC2 cannot
be enabled if the four SCCs are.

Signed-off-by: Kalle Pokki <kalle.pokki@iki.fi>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] setup_kcore(): Fix incorrect function name in panic() call.
Geert Uytterhoeven [Fri, 17 Nov 2006 05:21:12 +0000 (06:21 +0100)]
[POWERPC] setup_kcore(): Fix incorrect function name in panic() call.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Don't compile arch/powerpc mpc52xx_pic driver for ARCH=ppc
Grant Likely [Sat, 18 Nov 2006 06:12:14 +0000 (23:12 -0700)]
[POWERPC] Don't compile arch/powerpc mpc52xx_pic driver for ARCH=ppc

arch/powerpc/sysdev/mpc52xx_pic.c breaks the ppc build

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix wraparound problem in smp-tbsync on 32-bit
Adrian Cox [Fri, 17 Nov 2006 14:35:48 +0000 (14:35 +0000)]
[POWERPC] Fix wraparound problem in smp-tbsync on 32-bit

The patch below fixes an arithmetic wrap-around issue on 32bit machines
using smp-tbsync. Without this patch a timebase value over
0x000000007fffffff will hang the boot process while bringing up
secondary CPUs.

Signed-off-by: Adrian Cox <adrian@humboldt.co.uk>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Cleanup zImage handling of kernel entry with flat device tree
David Gibson [Tue, 21 Nov 2006 00:37:37 +0000 (11:37 +1100)]
[POWERPC] Cleanup zImage handling of kernel entry with flat device tree

This makes 2 changes to clean up the flat device tree handling
logic in the zImage wrapper.

First, there were two callbacks from the dt_ops structure used for
producing a final flat tree to pass to the kerne: dt_ops.ft_pack()
which packed the flat tree (possibly a no-op) and dt_ops.ft_addr()
which retreived the address of the final blob.  Since they were only
ever called together, this patch combines the two into a single new
callback, dt_ops.finalize().  This new callback does whatever
platform-dependent things are necessary to produce a final flat device
tree blob, and returns the blob's addres.

Second, the current logic calls the kernel with a flat device tree if
one is build into the zImage wrapper, otherwise it boots the kernel
with a PROM pointer, expecting the kernel to copy the OF device tree
itself.  This approach precludes the possibility of the platform
wrapper code building a flat device tree from whatever
platform-specific information firmware provides.  Thus, this patch
takes the more sensible approach of invoking the kernel with a flat
tree if the dt_ops.finalize callback provides one (by whatever means).

So, the dt_ops.finalize callback can be NULL, or can be a function
which returns NULL.  In either case, the zImage wrapper logic assumes
that this is a platform with OF and invokes the kernel accordingly.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Small clarification of initrd handling
David Gibson [Thu, 16 Nov 2006 04:31:32 +0000 (15:31 +1100)]
[POWERPC] Small clarification of initrd handling

This patch makes the handling of the initrd (or initramfs) in the
zImage wrapper a little easier to follow.  Instead of passing the
initrd addresses out from prep_kernel() via the cryptic a1 and a2
parameters, use the global struct add_range, 'initrd'.  prep_kernel()
already passes information through the 'vmlinux' addr_range struct, so
this seems like a reasonable extension.

Some comments also clarify the logic with prep_kernel(): we use an
initrd included in the zImage if present, otherwise we use an initrd
passed in by the bootloader in the a1 and a2 parameters (yaboot, at
least, uses this mechanism to pass an initrd).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Xserve cpu-meter driver
Benjamin Herrenschmidt [Thu, 16 Nov 2006 03:03:33 +0000 (14:03 +1100)]
[POWERPC] Xserve cpu-meter driver

This is a small driver for the Xserve G5 CPU-meter blue LEDs on the
front-panel. It might work on the Xserve G4 as well though that was
not tested. It's pretty basic and could use some improvements if
somebody cares doing them. :)

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>