powerpc.git
17 years ago[S390] Cleanup memory_chunk array usage.
Heiko Carstens [Mon, 4 Dec 2006 14:40:38 +0000 (15:40 +0100)]
[S390] Cleanup memory_chunk array usage.

Need this at yet another file and don't want to add yet another
extern...

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Misaligned wait PSW at memory detection.
Heiko Carstens [Mon, 4 Dec 2006 14:40:36 +0000 (15:40 +0100)]
[S390] Misaligned wait PSW at memory detection.

If the memory detection code would ever reach the point where it would
load the wait psw, it would generate a specification exception and the
system would crash at ipl time. This is because of a misaligned wait
psw. It needs to be on a double word boundary instead of a word
boundary.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cpu shutdown rework
Heiko Carstens [Mon, 4 Dec 2006 14:40:33 +0000 (15:40 +0100)]
[S390] cpu shutdown rework

Let one master cpu kill all other cpus instead of sending an external
interrupt to all other cpus so they can kill themselves.
Simplifies reipl/shutdown functions a lot.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cpcmd <-> __cpcmd calling issues
Heiko Carstens [Mon, 4 Dec 2006 14:40:30 +0000 (15:40 +0100)]
[S390] cpcmd <-> __cpcmd calling issues

In case of reipl cpcmd gets called when all other cpus are not running
anymore. To prevent deadlocks change __cpcmd so that it doesn't take
any locks and call cpcmd or __cpcmd, whatever is correct in the current
context.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Bad kexec control page allocation.
Heiko Carstens [Mon, 4 Dec 2006 14:40:28 +0000 (15:40 +0100)]
[S390] Bad kexec control page allocation.

KEXEC_CONTROL_MEMORY_LIMIT is an unsigned long value and therefore
should be defined as one. Otherwise the kexec control page can be
allocated above 2GB which will cause a specification exception on the
sam31 instruction in the s390 kexec relocation code.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Reset infrastructure for re-IPL.
Heiko Carstens [Mon, 4 Dec 2006 14:40:26 +0000 (15:40 +0100)]
[S390] Reset infrastructure for re-IPL.

In case of re-IPL and diag308 doesn't work we have to reset all devices
manually and wait synchronously that each reset finished.
This patch adds the necessary infrastucture and the first exploiter of it.

Subsystems that need to add a function that needs to be called at re-IPL
may register/unregister this function via

struct reset_call {
struct reset_call *next;
void (*fn)(void);
};

void register_reset_call(struct reset_call *reset);
void unregister_reset_call(struct reset_call *reset);

When the registered function get called the context is:

- all cpus beside the current one are stopped
- all machine checks and interrupts are disabled
- prefixing is disabled
- a default machine check handler is available for use

The registered functions may not take any locks are sleep.

For the common I/O layer part of this patch:

Introduce a reset_call css_reset that does the following:
- clear all subchannels
- perform a rchp on all channel paths and wait for the resulting
  machine checks
This replaces the calls to clear_all_subchannels() and
cio_reset_channel_paths() for kexec and ccw reipl. reipl_ccw_dev() now
uses reipl_find_schid() to determine the subchannel id for a given
device id.
Also remove cio_reset_channel_paths() and friends since they are not
needed anymore.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Some documentation typos.
Nicolas Kaiser [Mon, 4 Dec 2006 14:40:23 +0000 (15:40 +0100)]
[S390] Some documentation typos.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] extmem unbalanced spin_lock.
Heiko Carstens [Mon, 4 Dec 2006 14:40:20 +0000 (15:40 +0100)]
[S390] extmem unbalanced spin_lock.

segment save will exit with a lock held if the passed segment doesn't
exist. Any subsequent call to segment_save will lead to a deadlock.
Fix this and give up the lock before returning.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] return 'count' for successful execution of dasd_eer_enable.
Horst Hummel [Mon, 4 Dec 2006 14:40:18 +0000 (15:40 +0100)]
[S390] return 'count' for successful execution of dasd_eer_enable.

Currently the return value of 'dasd_eer_enable' is returned - even if the
function returned '0'. Now return 'count' for successful execution.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Enhanced handling of failed termination requests.
Horst Hummel [Mon, 4 Dec 2006 14:40:15 +0000 (15:40 +0100)]
[S390] Enhanced handling of failed termination requests.

In case a request timed out and termination did not work, the console was
flooded with retry messages (every 1/10s). Now we use a 5s delay per retry and
generate a more precise message.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Use diag instead of ccw reipl.
Michael Holzheu [Mon, 4 Dec 2006 14:40:13 +0000 (15:40 +0100)]
[S390] Use diag instead of ccw reipl.

Since the diag 308 reipl method is superior to the ccw method, we should
use it whenever it is possible. We can do that, if the user has not
specified a new reipl ccw device and the system has been ipled from
a ccw device.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Add MODALIAS= to the uevent for the ap bus.
Cornelia Huck [Mon, 4 Dec 2006 14:40:10 +0000 (15:40 +0100)]
[S390] Add MODALIAS= to the uevent for the ap bus.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] 3215 device locking.
Martin Schwidefsky [Mon, 4 Dec 2006 14:40:07 +0000 (15:40 +0100)]
[S390] 3215 device locking.

Remove lock pointer from 3215 device structure. Use get_ccwdev_lock
for each use of the lock in the ccw-device structure.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] No panic for failed reboot
Michael Holzheu [Mon, 4 Dec 2006 14:40:05 +0000 (15:40 +0100)]
[S390] No panic for failed reboot

If reboot fails (e.g. because wrong devno has been specified by the user),
we should just stop all cpus, but should not trigger a kernel panic.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] termio <-> termios conversion error handling.
Heiko Carstens [Mon, 4 Dec 2006 14:40:02 +0000 (15:40 +0100)]
[S390] termio <-> termios conversion error handling.

Get rid of our own user_termio_to_kernel_termios() and
kernel_termios_to_user_termio() macros which didn't check for errors
on user space accesses. Instead use the generic functions which
handle this properly.
In addition the generic version of user_termio_to_kernel_termios()
also copies the c_line member which was missing in our variant.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] update interface notes in zcrypt.h
Ralph Wuerthner [Mon, 4 Dec 2006 14:40:00 +0000 (15:40 +0100)]
[S390] update interface notes in zcrypt.h

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Add ipl/reipl loadparm attribute.
Michael Holzheu [Mon, 4 Dec 2006 14:39:58 +0000 (15:39 +0100)]
[S390] Add ipl/reipl loadparm attribute.

If multiple kernel images are installed on one DASD, the loadparm can be used
to select the boot configuration. This patch introduces the following two new
sysfs attributes:

/sys/firmware/ipl/loadparm: shows loadparm of current system (ro)
/sys/firmware/reipl/ccw/loadparm: loadparm used for next reboot (rw)

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Add __must_check to uaccess functions.
Heiko Carstens [Mon, 4 Dec 2006 14:39:55 +0000 (15:39 +0100)]
[S390] Add __must_check to uaccess functions.

Follow other architectures and add __must_check to uaccess functions.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Remove unused GENERIC_BUST_SPINLOCK from Kconfig.
Heiko Carstens [Mon, 4 Dec 2006 14:39:52 +0000 (15:39 +0100)]
[S390] Remove unused GENERIC_BUST_SPINLOCK from Kconfig.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] handle incorrect values when writing to dasd sysfs attributes.
Horst Hummel [Mon, 4 Dec 2006 14:39:50 +0000 (15:39 +0100)]
[S390] handle incorrect values when writing to dasd sysfs attributes.

When writing to dasd attributes (e.g. readonly), all values besides '1'
are handled like '0'.
Other sysfs-attributes like 'online' are checking for '1' and for '0'
and do not accept other values. Therefore enhanced checking and error
handling in dasd_devmap attribute store functions.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] remove salipl memory detection.
Christian Borntraeger [Mon, 4 Dec 2006 14:39:47 +0000 (15:39 +0100)]
[S390] remove salipl memory detection.

The SALIPL entry point has an needless memory detection routine as we
later check the memory size again. The SALIPL code also uses diagnose
0x060 if we are running under VM, but this diagnose is not compatible
with the 64 bit addressing mode. The solution is to get rid of this
code and rely on the memory detection in the startup code.

Signed-off-by: Christian Borntraeger <cborntra@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
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>