openwrt/staging/blogic.git
16 years ago[POWERPC] Optimize fls64() on 64-bit processors
Paul Mackerras [Fri, 18 Apr 2008 04:26:08 +0000 (14:26 +1000)]
[POWERPC] Optimize fls64() on 64-bit processors

64-bit powerpc processors can find the leftmost 1 bit in a 64-bit
doubleword in one instruction, so use that rather than using the
generic fls64(), which does two 32-bit fls() calls.

Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] irqtrace support for 64-bit powerpc
Benjamin Herrenschmidt [Thu, 17 Apr 2008 04:35:01 +0000 (14:35 +1000)]
[POWERPC] irqtrace support for 64-bit powerpc

This adds the low level irq tracing hooks to the powerpc architecture
needed to enable full lockdep functionality.

This is partly based on Johannes Berg's initial version.  I removed
the asm trampoline that isn't needed (thus improving performance) and
modified all sorts of bits and pieces, reworking most of the assembly,
etc...

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Stacktrace support for lockdep
Christoph Hellwig [Thu, 17 Apr 2008 04:35:00 +0000 (14:35 +1000)]
[POWERPC] Stacktrace support for lockdep

This adds stacktrace support for powerpc, which will be needed for
lockdep.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Move stackframe definitions to common header
Benjamin Herrenschmidt [Thu, 17 Apr 2008 04:34:59 +0000 (14:34 +1000)]
[POWERPC] Move stackframe definitions to common header

This moves various definitions used all over the place to parse stack
frames to ptrace.h so only one definition is needed.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Fix device-tree locking vs. interrupts
Benjamin Herrenschmidt [Wed, 9 Apr 2008 07:21:36 +0000 (17:21 +1000)]
[POWERPC] Fix device-tree locking vs. interrupts

Lockdep found out that we can occasionally take the device-tree
lock for reading from softirq time (from rtas_token called
by the rtas real time clock code called by the NTP code),
while we take it occasionally for writing without masking
interrupts. The combination of those two can thus deadlock.

While some of those cases of interrupt read lock could be fixed
(such as caching the RTAS tokens) I figured that taking the
lock for writing is so rare (device-tree modification) that we
may as well penalize that case and allow reading from interrupts.

Thus, this turns all the writers to take the lock with irqs
masked to avoid the situation.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Make pci_bus_to_host()'s struct pci_bus * argument const
Trent Piepho [Wed, 9 Apr 2008 02:19:32 +0000 (12:19 +1000)]
[POWERPC] Make pci_bus_to_host()'s struct pci_bus * argument const

A) It's not modified and so it can be made const.  const is good.
B) If one has a function that was given a const pci_bus pointer and you
want to get a pointer to its pci_controller, you'll get a warning from gcc
when you use pci_bus_to_host().  This is the right way to stop that
warning.

Signed-off-by: Trent Piepho <tpiepho@freescale.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Remove unused __max_memory variable
Olof Johansson [Mon, 7 Apr 2008 15:33:07 +0000 (01:33 +1000)]
[POWERPC] Remove unused __max_memory variable

Remove the __max_memory variable, as it is not referenced anywhere
in the tree besides some code in arch/ppc.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Simplify xics direct/lpar irq_host setup
Michael Ellerman [Tue, 1 Apr 2008 06:42:27 +0000 (17:42 +1100)]
[POWERPC] Simplify xics direct/lpar irq_host setup

The xics code currently has a direct and lpar variant of
xics_host_map, the only difference being which irq_chip they use.  If
we remember which irq_chip we're using we can combine these two
routines.  That also allows us to have a single irq_host_ops instead
of two.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use pseries_setup_i8259_cascade() in pseries_mpic_init_IRQ()
Michael Ellerman [Tue, 1 Apr 2008 06:42:26 +0000 (17:42 +1100)]
[POWERPC] Use pseries_setup_i8259_cascade() in pseries_mpic_init_IRQ()

pseries_mpic_init_IRQ() implements the same logic as the xics code did to
find the i8259 cascade irq.  Now that we've pulled that logic out into
pseries_setup_i8259_cascade() we can use it in the mpic code.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()
Michael Ellerman [Tue, 1 Apr 2008 06:42:25 +0000 (17:42 +1100)]
[POWERPC] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()

Remove the xics references from xics_setup_8259_cascade(), and merge the
good bits from the almost identical logic in pseries_mpic_init_IRQ().

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c
Michael Ellerman [Tue, 1 Apr 2008 06:42:25 +0000 (17:42 +1100)]
[POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c

The code in xics.c to setup the i8259 cascaded irq handler is not really
xics specific, so move it into setup.c - we will clean this up further in
a subsequent patch.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use asm-generic/bitops/find.h in bitops.h
Alexander van Heukelum [Wed, 16 Apr 2008 13:55:08 +0000 (15:55 +0200)]
[POWERPC] Use asm-generic/bitops/find.h in bitops.h

Powerpc and ppc have some code in their bitops.h that is exactly the
same as asm-generic/bitops/find.h.  Include this header instead of the
private implementation.

Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agoMerge branch 'powerpc-next' of master.kernel.org:/pub/scm/linux/kernel/git/galak...
Paul Mackerras [Fri, 18 Apr 2008 03:34:30 +0000 (13:34 +1000)]
Merge branch 'powerpc-next' of /linux/kernel/git/galak/powerpc

16 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jk/spufs
Paul Mackerras [Fri, 18 Apr 2008 03:33:43 +0000 (13:33 +1000)]
Merge branch 'master' of git://git./linux/kernel/git/jk/spufs

16 years ago[POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup
Anton Vorontsov [Wed, 9 Apr 2008 13:59:25 +0000 (17:59 +0400)]
[POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup

Currently USB Host isn't functional on the MPC8315E boards, for two
reasons as described below.

MPC8315 Reference Manual says:
"The USB DR unit must have the same clock ratio as the encryption core
unit, unless one of them has its clock disabled."

The encryption core also drives I2C clock, so it is enabled and is equal
to 01. That means USBDRCM should be 01 here.

Plus, according to MPC8315E-RDB schematics, USB unit consumes CLK_IN
clock from the 24.00MHz oscillator, which means we must adjust REFSEL
bits as well.

p.s.
Idially we should rework whole 83xx/usb.c code, in two steps:
1. Move SCCR code to the U-Boot;
2. Implement fsl,usb-clock property in the device tree, so usb.c could
   decide what clock exactly to use on per-board basis.

Though, today we're not in a hurry since there is just one 8315e board
out there.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 85xx: Fix the size of qe muram for MPC8568E
Haiying Wang [Thu, 17 Apr 2008 12:56:02 +0000 (08:56 -0400)]
[POWERPC] 85xx: Fix the size of qe muram for MPC8568E

MPC8568E has 64K byte MURAM, so the size should be 0x10000, not 0xc000.

Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 86xx: mpc86xx_hpcn - Temporarily accept old dts node identifier.
Paul Gortmaker [Wed, 16 Apr 2008 17:53:07 +0000 (13:53 -0400)]
[POWERPC] 86xx: mpc86xx_hpcn - Temporarily accept old dts node identifier.

As suggested by Timur Tabi, we match on the old compat node ID for one
version and warn accordingly.  If we don't do this, we plunge people who
try to use an old DTB into silent boot death with no clear indication of
what the problem is.

This patch should be removed at the beginning of the 2.6.27 dev cycle.
It is only meant to ease the transition in the short term.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 86xx: mark functions static, other minor cleanups
Paul Gortmaker [Wed, 16 Apr 2008 17:53:06 +0000 (13:53 -0400)]
[POWERPC] 86xx: mark functions static, other minor cleanups

Cleanups as suggested by Stephen Rothwell and Dale Farnsworth, which
incudes marking a bunch of functions static and add a vendor prefix to
the compat node check for uniqueness.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] Make rheap safe for spinlocks
Timur Tabi [Mon, 14 Apr 2008 15:43:38 +0000 (10:43 -0500)]
[POWERPC] Make rheap safe for spinlocks

The rheap allocation function, rh_alloc, could call kmalloc with GFP_KERNEL.
This can sleep, which means you couldn't hold a spinlock while called rh_alloc.
Change all kmalloc calls to use GFP_ATOMIC so that it won't sleep.  This is
safe because only small blocks are allocated.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] fsl: Convert dts to v1 syntax
Kumar Gala [Thu, 17 Apr 2008 14:40:48 +0000 (09:40 -0500)]
[POWERPC] fsl: Convert dts to v1 syntax

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 85xx: minor .dts cleanups
Kumar Gala [Thu, 17 Apr 2008 06:29:14 +0000 (01:29 -0500)]
[POWERPC] 85xx: minor .dts cleanups

* remove #cpus from mpc8544ds.dts (not used anywhere else)
* remove memreserve from mpc8568mds.dts (not needed)

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 85xx: Convert dts to v1 syntax
Kumar Gala [Thu, 17 Apr 2008 06:28:15 +0000 (01:28 -0500)]
[POWERPC] 85xx: Convert dts to v1 syntax

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 85xx: Fix compile warning
Kumar Gala [Wed, 16 Apr 2008 04:35:47 +0000 (23:35 -0500)]
[POWERPC] 85xx: Fix compile warning

arch/powerpc/platforms/85xx/mpc85xx_ads.c: In function ‘init_ioports’:
arch/powerpc/platforms/85xx/mpc85xx_ads.c:168: warning: initialization discards qualifiers from pointer target type

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 83xx: Enable FCM NAND and OF partitions in defconfig
Kumar Gala [Tue, 15 Apr 2008 23:13:30 +0000 (18:13 -0500)]
[POWERPC] 83xx: Enable FCM NAND and OF partitions in defconfig

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 86xx: Add device tree source for Wind River SBC8641D
Paul Gortmaker [Tue, 15 Apr 2008 22:41:31 +0000 (18:41 -0400)]
[POWERPC] 86xx: Add device tree source for Wind River SBC8641D

This adds in the device tree source for the SBC8641D, based
largely on the mpc8641_hpcn.dts.  The biggest differences are
the lack of a complex IRQ mapping (since no Uli/i8259 cascade)
and the different layout of devices on the localbus node.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 86xx: Add defconfig for Wind River SBC8641D board
Paul Gortmaker [Tue, 15 Apr 2008 22:41:32 +0000 (18:41 -0400)]
[POWERPC] 86xx: Add defconfig for Wind River SBC8641D board

This adds a sample defconfig for the Wind River SBC8641D
board, with SMP, PCI and NFS root enabled.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 86xx: Add support for Wind River SBC8641D board
Paul Gortmaker [Tue, 15 Apr 2008 22:41:30 +0000 (18:41 -0400)]
[POWERPC] 86xx: Add support for Wind River SBC8641D board

This adds support for the Wind River SBC8641D board, based
largely on the mpc86xx_hpcn support.  The biggest difference is
the lack of the Uli and the i8259 cascade, which simplifies things.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 83xx: mpc8313erdb - Enable FCM NAND and OF partitions in defconfig
Scott Wood [Tue, 15 Apr 2008 16:03:38 +0000 (11:03 -0500)]
[POWERPC] 83xx: mpc8313erdb - Enable FCM NAND and OF partitions in defconfig

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] cuboot-pq2: PCI fixes
Scott Wood [Tue, 15 Apr 2008 16:02:31 +0000 (11:02 -0500)]
[POWERPC] cuboot-pq2: PCI fixes

1. Detect (and bail out on) more conditions that violate the
assumptions of the setup code -- we assume in such cases that the device
tree is correct and reflects what the firmware did.

2. The inbound memory mask calculation was wrong.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] fsl_soc: Factor fsl_get_sys_freq() out of the wdt and spi inits.
Scott Wood [Tue, 15 Apr 2008 18:52:34 +0000 (13:52 -0500)]
[POWERPC] fsl_soc: Factor fsl_get_sys_freq() out of the wdt and spi inits.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 83xx: mpc837x_rdb: add simple-bus compatible matching
Anton Vorontsov [Tue, 18 Mar 2008 15:43:59 +0000 (18:43 +0300)]
[POWERPC] 83xx: mpc837x_rdb: add simple-bus compatible matching

This is needed to probe nor and nand flashes on the localbus.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] Make Book-E debug handling SMP safe
Kumar Gala [Wed, 9 Apr 2008 21:15:40 +0000 (16:15 -0500)]
[POWERPC] Make Book-E debug handling SMP safe

global_dbcr0 needs to be a per cpu set of save areas instead of a single
global on all processors.

Also, we switch to using DBCR0_IDM to determine if the user space app is
being debugged as its a more consistent way.  In the future we should
support features like hardware breakpoint and watchpoints which will
have DBCR0_IDM set but not necessarily DBCR0_IC (single step).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] CPM: Always use new binding.
Scott Wood [Thu, 10 Apr 2008 20:45:02 +0000 (15:45 -0500)]
[POWERPC] CPM: Always use new binding.

The kconfig entry can go away once arch/ppc and references to the config in
drivers are removed.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] QE: fix sparse warnings
Anton Vorontsov [Tue, 11 Mar 2008 17:24:50 +0000 (20:24 +0300)]
[POWERPC] QE: fix sparse warnings

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] QE: export qe_get_brg_clk()
Anton Vorontsov [Tue, 11 Mar 2008 17:24:24 +0000 (20:24 +0300)]
[POWERPC] QE: export qe_get_brg_clk()

qe_get_brg_clk() will be used by the fsl_gtm routines.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] QE: immap_qe.h should include asm/io.h
Anton Vorontsov [Tue, 11 Mar 2008 17:24:21 +0000 (20:24 +0300)]
[POWERPC] QE: immap_qe.h should include asm/io.h

Headers should include prototypes they use, otherwise build will
break if we use it without explicitly including io.h:

  CC      arch/powerpc/sysdev/qe_lib/gtm.o
In file included from include/asm/qe.h:20,
                 from arch/powerpc/sysdev/qe_lib/gtm.c:18:
include/asm/immap_qe.h: In function ‘immrbar_virt_to_phys’:
include/asm/immap_qe.h:480: error: implicit declaration of function ‘virt_to_phys’
make[2]: *** [arch/powerpc/sysdev/qe_lib/gtm.o] Error 1
make[1]: *** [arch/powerpc/sysdev/qe_lib] Error 2

gtm.c needs qe.h (which includes immap_qe.h) to use qe_get_brg_clk().

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] QE: implement qe_muram_offset
Anton Vorontsov [Tue, 11 Mar 2008 17:24:13 +0000 (20:24 +0300)]
[POWERPC] QE: implement qe_muram_offset

qe_muram_offset is the reverse of the qe_muram_addr, will be
used for the Freescale QE USB Host Controller driver.

This patch also moves qe_muram_addr into the qe.h header, plus
adds __iomem hints to use with sparse.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] fsl_lbc: implement few UPM routines
Anton Vorontsov [Fri, 11 Apr 2008 17:03:40 +0000 (21:03 +0400)]
[POWERPC] fsl_lbc: implement few UPM routines

Freescale UPM can be used to adjust localbus timings or to generate
orbitrary, pre-programmed "patterns" on the external Localbus signals.
This patch implements few routines so drivers could work with UPMs in
safe and generic manner.

So far there is just one user of these routines: Freescale UPM NAND
driver.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] fsl_elbc_nand: factor out localbus defines
Anton Vorontsov [Tue, 11 Mar 2008 17:23:28 +0000 (20:23 +0300)]
[POWERPC] fsl_elbc_nand: factor out localbus defines

This is needed to support other localbus peripherals, such as
NAND on FSL UPM.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] QE: UCC nodes cleanup
Anton Vorontsov [Fri, 11 Apr 2008 16:06:54 +0000 (20:06 +0400)]
[POWERPC] QE: UCC nodes cleanup

- get rid of `model = "UCC"' in the ucc nodes
  It isn't used anywhere, so remove it. If we'll ever need something
  like this, we'll use compatible property instead.
- replace last occurrences of device-id with cell-index.
  Drivers are modified for backward compatibility's sake.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] CPM: Move opcodes common to CPM1 and CPM2 to include/asm-powerpc/cpm.h
Laurent Pinchart [Thu, 10 Apr 2008 15:00:53 +0000 (17:00 +0200)]
[POWERPC] CPM: Move opcodes common to CPM1 and CPM2 to include/asm-powerpc/cpm.h

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] CPM2: Reset the CPM when early debugging is not enabled.
Laurent Pinchart [Thu, 10 Apr 2008 15:02:38 +0000 (17:02 +0200)]
[POWERPC] CPM2: Reset the CPM when early debugging is not enabled.

Similarly to what is done for PQ1-based platforms, this patch resets the
PQ2 Communication Processor Module in cpm2_reset() when early debugging is
not enabled. This helps avoiding conflicts when the boot loader configured
the CPM in an unexpected way.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] ep8248e: Reference SMC parameter RAM base in the device tree.
Laurent Pinchart [Thu, 10 Apr 2008 15:02:25 +0000 (17:02 +0200)]
[POWERPC] ep8248e: Reference SMC parameter RAM base in the device tree.

This patch modifies the Embedded Planet EP8248E device tree to reference the
SMC paramater RAM base register instead of the parameter RAM allocated by the
boot loader.

The cpm_uart driver will allocate parameter RAM itself, making the serial port
initialisation independent of the boot loader.

The patch adds the parameter RAM allocated by the boot loader in the CPM muram
node, making it available to the kernel.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] cpm-serial: Relocate CPM buffer descriptors and SMC parameter ram.
Laurent Pinchart [Thu, 10 Apr 2008 15:01:59 +0000 (17:01 +0200)]
[POWERPC] cpm-serial: Relocate CPM buffer descriptors and SMC parameter ram.

This patch relocates the buffer descriptors and the SMC parameter RAM at the
end of the first CPM muram chunk, as described in the device tree. This allows
device trees to stop excluding SMC parameter ram allocated by the boot loader
from the CPM muram node.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] Add bootwrapper function to get virtual reg from the device tree.
Laurent Pinchart [Thu, 10 Apr 2008 15:03:04 +0000 (17:03 +0200)]
[POWERPC] Add bootwrapper function to get virtual reg from the device tree.

This patch adds a new generic device tree processing function that retrieves
virtual reg addresses from the device tree to the bootwrapper code. It also
updates the bootwrapper code to use the new function.

dt_get_virtual_reg() retrieves the virtual reg addresses from the
"virtual-reg" property. If the property can't be found, it uses the "reg"
property and walks the tree to translate it to absolute addresses.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] cpm_uart: Allocate DPRAM memory for SMC ports on CPM2-based platforms.
Laurent Pinchart [Thu, 10 Apr 2008 15:01:27 +0000 (17:01 +0200)]
[POWERPC] cpm_uart: Allocate DPRAM memory for SMC ports on CPM2-based platforms.

This patch allocates parameter RAM for SMC serial ports without relying on
previous initialisation by a boot loader or a wrapper layer.

SMC parameter RAM on CPM2-based platforms can be allocated anywhere in the
general-purpose areas of the dual-port RAM. The current code relies on the
boot loader to allocate a section of general-purpose CPM RAM and gets the
section address from the device tree.

This patch modifies the device tree address usage to reference the SMC
parameter RAM base pointer instead of a pre-allocated RAM section and
allocates memory from the CPM dual-port RAM when initialising the SMC port.
CPM1-based platforms are not affected.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 85xx: Enable DMA engine on the MPC8544 DS
Sebastian Siewior [Fri, 14 Mar 2008 23:01:30 +0000 (00:01 +0100)]
[POWERPC] 85xx: Enable DMA engine on the MPC8544 DS

Add the device tree node for the DMA engine on 8544, publish
the device and enable the driver in the defconfig.

Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] 83xx/85xx: Reorganize defconfigs
Kumar Gala [Wed, 9 Apr 2008 15:16:42 +0000 (10:16 -0500)]
[POWERPC] 83xx/85xx: Reorganize defconfigs

Board specific defconfigs are useful, however with the ability to do
multi-board defconfigs they aren't needed in the top level configs directory

Move the 83xx/85xx board specific defconfigs to individual directories under
arch/powerpc/configs.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] Rework Book-E debug exception handling
Kumar Gala [Wed, 9 Apr 2008 11:06:11 +0000 (06:06 -0500)]
[POWERPC] Rework Book-E debug exception handling

The architecture allows for "Book-E" style debug interrupts to either go
to critial interrupts of their own debug interrupt level.  To allow for
a dynamic kernel to support machines of either type we want to be able to
compile in the interrupt handling code for both exception levels.

Towards this goal we renamed the debug handling macros to specify the
interrupt level in their name (DEBUG_CRIT_EXCEPTION/DebugCrit and
DEBUG_DEBUG_EXCEPTION/DebugDebug).

Additionally, on the Freescale Book-e parts we expanded the exception
stacks to cover the maximum case of needing three exception stacks (normal,
machine check and debug).

There is some kernel text space optimization to be gained if a kernel is
configured for a specific Freescale implementation but we aren't handling
that now to allow for the single kernel image support.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
16 years ago[POWERPC] Remove unused machine call outs
Kumar Gala [Wed, 16 Apr 2008 13:19:36 +0000 (23:19 +1000)]
[POWERPC] Remove unused machine call outs

When we moved to arch/powerpc we actively tried to avoid using the
ppc_md.setup_io_mappings().  Currently no board ports use it so let's
remove it to avoid any new boards using it.

Also, remove early_serial_map() since we don't even have a call out for
it in arch/powerpc.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Always add preferred consoles in platforms/pseries/lpar.c
Michael Ellerman [Wed, 16 Apr 2008 03:51:49 +0000 (13:51 +1000)]
[POWERPC] Always add preferred consoles in platforms/pseries/lpar.c

There is logic in platforms/peries/lpars.c which checks if the user has
specified a console on the command line, and refrains from adding a
preferred console entry for the hvc/hvsi console if they have.

This trips up if you use "netconsole=foo" on the command line, and has
the result that you get _only_ the netconsole, because the hvc device is
never added as a preferred console. Worse still if you get the netconsole
configuration wrong somehow, you end up with no console at all.

As it turns out we don't need to worry about checking the command line.
If the user has specified "console=foo", then foo will be set as the
preferred console when the command line is parsed in start_kernel(), much
later than the pseries code, and so the latter setting will take effect.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Move prototype for find_udbg_vterm() into a header file
Michael Ellerman [Wed, 16 Apr 2008 03:51:48 +0000 (13:51 +1000)]
[POWERPC] Move prototype for find_udbg_vterm() into a header file

Move the prototype for find_udbg_vterm() into pseries.h, removing
it from setup.c.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot
Manish Ahuja [Fri, 11 Apr 2008 23:31:52 +0000 (09:31 +1000)]
[POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot

This changes the way we calculate how much space to reserve for the
pHyp dump.  Currently we reserve 256MB only.  With this change, the
code first checks to see if an amount has been specified on the boot
command line with the "phyp_dump_reserve_size" option, and if so, uses
that much.

Otherwise it computes 5% of total ram and rounds it down to a multiple
of 256MB, and uses the larger of that or 256MB.

This is for large systems with a lot of memory (10GB or more).  The
aim is to have more space available for the kernel on reboot on
machines with more resources.  Although the dump will be collected
pretty fast and the memory released really early on allowing the
machine to have the full memory available, this alleviates any issues
that can be caused by having way too little memory on very very large
systems during those few minutes.

Signed-off-by: Manish Ahuja <mahuja@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Cleanup pgtable-ppc32.h
Kumar Gala [Tue, 15 Apr 2008 19:52:30 +0000 (05:52 +1000)]
[POWERPC] Cleanup pgtable-ppc32.h

* Removed defines KERNEL_PGD_PTRS & USER_PGD_PTRS since they aren't
  used anywhere
* Changed pmd_page macro to use pfn_to_page so we get proper behavior
  if ARCH_PFN_OFFSET is set as well if we use a different memory model
  on ppc32.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] bootwrapper: Use physical address in PHDR for uImage
Kumar Gala [Tue, 15 Apr 2008 19:52:29 +0000 (05:52 +1000)]
[POWERPC] bootwrapper: Use physical address in PHDR for uImage

Now that we properly set the physical address in the program header of the
vmlinux ELF we can extract it to properly set the load and entry point for
u-boot uImages.  Before we always hard coded the load & entry point to 0.
However there are situations that the kernel may be built with a non-zero
physical address.

We use objdump to extract the PHDR.  We assume that there is only one
PHDR in the vmlinux of type LOAD.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Update linker script to properly set physical addresses
Kumar Gala [Tue, 15 Apr 2008 19:52:28 +0000 (05:52 +1000)]
[POWERPC] Update linker script to properly set physical addresses

We can set LOAD_OFFSET and use the AT attribute on sections and the
linker will properly set the physical address of the LOAD program
header for us.

This allows us to know how the PHYSICAL_START the user configured a
kernel with by just looking at the resulting vmlinux ELF.

This is pretty much stolen from how x86 does things in their linker
scripts.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Move phys_addr_t definition into asm/types.h
Kumar Gala [Tue, 15 Apr 2008 19:52:27 +0000 (05:52 +1000)]
[POWERPC] Move phys_addr_t definition into asm/types.h

Moved phys_addr_t out of mmu-*.h and into asm/types.h so we can use it in
places that before would have caused recursive includes.

For example to use phys_addr_t in <asm/page.h> we would have included
<asm/mmu.h> which would have possibly included <asm/mmu-hash64.h> which
includes <asm/page.h>.  Wheeee recursive include.

CONFIG_PHYS_64BIT is a bit counterintuitive in light of ppc64 systems
and thus the config option is only used for ppc32 systems with >32-bit
physical addresses (44x, 85xx, 745x, etc.).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Clean up some linker and symbol usage
Kumar Gala [Tue, 15 Apr 2008 19:52:26 +0000 (05:52 +1000)]
[POWERPC] Clean up some linker and symbol usage

* PAGE_OFFSET is not always the start of code, use _stext instead.
* grab PAGE_SIZE and KERNELBASE from asm/page.h like ppc64 does.  Makes the
  code a bit more common and provide a single place to manipulate the
  defines for things like kdump.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Rename __initial_memory_limit to __initial_memory_limit_addr
Kumar Gala [Tue, 15 Apr 2008 19:52:25 +0000 (05:52 +1000)]
[POWERPC] Rename __initial_memory_limit to __initial_memory_limit_addr

We always use __initial_memory_limit as an address so rename it
to be clear.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use lowmem_end_addr to limit lmb allocations on ppc32
Kumar Gala [Tue, 15 Apr 2008 19:52:24 +0000 (05:52 +1000)]
[POWERPC] Use lowmem_end_addr to limit lmb allocations on ppc32

Now that we have a proper variable that is the address of the top
of low memory we can use it to limit the lmb allocations.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] 85xx: Cleanup TLB initialization
Kumar Gala [Tue, 15 Apr 2008 19:52:23 +0000 (05:52 +1000)]
[POWERPC] 85xx: Cleanup TLB initialization

* Determine the RPN we are running the kernel at runtime rather
  than using compile time constant for initial TLB

* Cleanup adjust_total_lowmem() to respect memstart_addr and
  be a bit more clear on variables that are sizes vs addresses.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Introduce lowmem_end_addr to distinguish from total_lowmem
Kumar Gala [Tue, 15 Apr 2008 19:52:22 +0000 (05:52 +1000)]
[POWERPC] Introduce lowmem_end_addr to distinguish from total_lowmem

total_lowmem represents the amount of low memory, not the physical
address that low memory ends at.  If the start of memory is at 0 it
happens that total_lowmem can be used as both the size and the address
that lowmem ends at (or more specifically one byte beyond the end).

To make the code a bit more clear and deal with the case when the start of
memory isn't at physical 0, we introduce lowmem_end_addr that represents
one byte beyond the last physical address in the lowmem region.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Remove and replace uses of PPC_MEMSTART with memstart_addr
Kumar Gala [Tue, 15 Apr 2008 19:52:21 +0000 (05:52 +1000)]
[POWERPC] Remove and replace uses of PPC_MEMSTART with memstart_addr

A number of users of PPC_MEMSTART (40x, ppc_mmu_32) can just always
use 0 as we don't support booting these kernels at non-zero physical
addresses since their exception vectors must be at 0 (or 0xfffx_xxxx).

For the sub-arches that support relocatable interrupt vectors
(book-e), it's reasonable to have memory start at a non-zero physical
address.  For those cases use the variable memstart_addr instead of
the #define PPC_MEMSTART since the only uses of PPC_MEMSTART are for
initialization and in the future we can set memstart_addr at runtime
to have a relocatable kernel.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Provide access to arch/powerpc include path on ppc64
Kumar Gala [Tue, 15 Apr 2008 19:52:20 +0000 (05:52 +1000)]
[POWERPC] Provide access to arch/powerpc include path on ppc64

There does not appear to be any reason that we shouldn't just have
-Iarch/$(ARCH) on both ppc32 and ppc64 builds.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Remove Kconfig option BOOT_LOAD
Kumar Gala [Tue, 15 Apr 2008 19:52:19 +0000 (05:52 +1000)]
[POWERPC] Remove Kconfig option BOOT_LOAD

Nothing appears to use BOOT_LOAD so remove it as a configurable option.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Add MODULE_LICENSE to powerpc/sysdev/rtc_cmos_setup.c
Adrian Bunk [Mon, 14 Apr 2008 14:19:42 +0000 (00:19 +1000)]
[POWERPC] Add MODULE_LICENSE to powerpc/sysdev/rtc_cmos_setup.c

This adds the missing MODULE_LICENSE("GPL").

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Efika: Really, don't pretend to be CHRP
David Woodhouse [Sun, 13 Apr 2008 16:52:38 +0000 (02:52 +1000)]
[POWERPC] Efika: Really, don't pretend to be CHRP

Fedora 9 works on Efika without the separate 'device-tree supplement',
thanks to the kernel's own fixups. With one exception -- because 'CHRP'
still appears on the 'machine:' line in /proc/cpuinfo, the installer
misdetects the platform and misconfigures yaboot, putting it into a PReP
boot partition instead of in the /boot filesystem where the Efika's
firmware could find it.

The kernel's fixups for Efika already correct one instance of 'chrp', in
the 'device_type' property. This fixes it in the 'CODEGEN,description'
property too, since that's what's exposed to userspace in /proc/cpuinfo.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] i2c: OF helpers for the i2c API
Jochen Friedrich [Fri, 11 Apr 2008 19:22:35 +0000 (05:22 +1000)]
[POWERPC] i2c: OF helpers for the i2c API

This implements various helpers to support OF bindings for the i2c
API.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Implement support for the GPIO LIB API
Anton Vorontsov [Fri, 11 Apr 2008 13:06:36 +0000 (23:06 +1000)]
[POWERPC] Implement support for the GPIO LIB API

This implements support for the GPIO LIB API.  Two calls are still
unimplemented though: irq_to_gpio and gpio_to_irq.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] OF helpers for the GPIO API
Anton Vorontsov [Fri, 11 Apr 2008 13:06:45 +0000 (23:06 +1000)]
[POWERPC] OF helpers for the GPIO API

This implements various helpers to support OF bindings for the GPIO
LIB API.

Previously this was PowerPC specific, but it seems this code isn't
arch-dependent anyhow, so let's place it into of/.

SPARC will not see this addition yet, real hardware seem to not use
GPIOs at all. But this might change:

   http://www.leox.org/docs/faq_MLleon.html

"16-bit I/O port" sounds promising. :-)

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] properly declare onstack completion in iseries veth
Benjamin Herrenschmidt [Wed, 9 Apr 2008 07:21:34 +0000 (17:21 +1000)]
[POWERPC] properly declare onstack completion in iseries veth

The iSeries veth driver uses an on-stack struct completion that
it initializes using the COMPLETION_INITIALIZER instead of
COMPLETION_INITIALIZER_ONSTACK macro, causing problems with
lockdep.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Fixup softirq preempt count
Benjamin Herrenschmidt [Wed, 9 Apr 2008 07:21:28 +0000 (17:21 +1000)]
[POWERPC] Fixup softirq preempt count

This fixes the handling of the preempt count when switching
interrupt stacks so that HW interrupt properly get the softirq
mask copied over from the previous stack.

It also initializes the softirq stack preempt_count to 0 instead
of SOFTIRQ_OFFSET, like x86, as __do_softirq() does the increment,
and we hit some lockdep checks if we have it twice.

That means we do run for a little while off the softirq stack
with the preempt-count set to 0, which could be deadly if we
try to take a softirq at that point, however we do so with
interrupts disabled, so I think we are ok.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Initialize paca->current earlier
Benjamin Herrenschmidt [Wed, 9 Apr 2008 07:21:26 +0000 (17:21 +1000)]
[POWERPC] Initialize paca->current earlier

Currently, we initialize the "current" pointer in the PACA (which
is used by the "current" macro in the kernel) before calling
setup_system(). That means that early_setup() is called with
current still "NULL" which is -not- a good idea. It happens to
work so far but breaks with lockdep when early code calls printk.

This changes it so that all PACAs are statically initialized with
__current pointing to the init task. For non-0 CPUs, this is fixed
up before use.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] hvcbeat: Fix buffer manipulation
Ishizaki Kou [Mon, 17 Mar 2008 10:05:18 +0000 (21:05 +1100)]
[POWERPC] hvcbeat: Fix buffer manipulation

This fixes a potential bug at drivers/char/hvc_beat.c.
 - hvc_put_term_char routine will decrement "rest" variable twice,
   and forget to advance "buf" pointer by "nlen" bytes.
This bug was not hit previously because the output handler in
drivers/char/hvc_console.c splits given output into 16 bytes
at maximum.

Reported-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] celleb: Coding style cleanup
Ishizaki Kou [Fri, 14 Mar 2008 12:19:34 +0000 (23:19 +1100)]
[POWERPC] celleb: Coding style cleanup

Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agoMerge branch 'for-2.6.26' of master.kernel.org:/pub/scm/linux/kernel/git/olof/pasemi
Paul Mackerras [Wed, 16 Apr 2008 21:45:35 +0000 (07:45 +1000)]
Merge branch 'for-2.6.26' of /linux/kernel/git/olof/pasemi

16 years ago[POWERPC] 4xx: Add idle wait support for 44x platforms
Jerone Young [Fri, 11 Apr 2008 19:03:33 +0000 (05:03 +1000)]
[POWERPC] 4xx: Add idle wait support for 44x platforms

This changes the cpu_idle loop for 44x platforms to utilize the Wait Enable
feature of the CPU.  This helps virtulization solutions know when the guest
Linux kernel is in an idle state.

A command line option called "idle" is also added to allow people to change
the idle loop back to the original variation.  This is done by setting
"idle=spin" on the kernel command line.

Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add ppc40x_defconfig
Josh Boyer [Tue, 15 Apr 2008 15:05:53 +0000 (10:05 -0500)]
[POWERPC] 4xx: Add ppc40x_defconfig

Add a multi-board PowerPC 40x defconfig file

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Reorganize 4xx defconfigs
Josh Boyer [Sun, 6 Apr 2008 13:01:21 +0000 (08:01 -0500)]
[POWERPC] 4xx: Reorganize 4xx defconfigs

Board specific defconfigs are useful, however with the ability to do
multi-board defconfigs they aren't needed in the top level configs directory.

Move the 4xx board specific defconfigs to individual directories under
arch/powerpc/configs.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[LMB] Restructure allocation loops to avoid unsigned underflow
Paul Mackerras [Sat, 12 Apr 2008 05:20:59 +0000 (15:20 +1000)]
[LMB] Restructure allocation loops to avoid unsigned underflow

There is a potential bug in __lmb_alloc_base where we subtract `size'
from the base address of a reserved region without checking whether
the subtraction could wrap around and produce a very large unsigned
value.  In fact it probably isn't possible to hit the bug in practice
since it would only occur in the situation where we can't satisfy the
allocation request and there is a reserved region starting at 0.

This fixes the potential bug by breaking out of the loop when we get
to the point where the base of the reserved region is less than the
size requested.  This also restructures the loop to be a bit easier to
follow.

The same logic got copied into lmb_alloc_nid_unreserved, so this makes
a similar change there.  Here the bug is more likely to be hit because
the outer loop  (in lmb_alloc_nid) goes through the memory regions in
increasing order rather than decreasing order as __lmb_alloc_base
does, and we are therefore more likely to hit the case where we are
testing against a reserved region with a base address of 0.

Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[LMB] Fix some whitespace and other formatting issues, use pr_debug
Paul Mackerras [Sat, 12 Apr 2008 05:20:59 +0000 (15:20 +1000)]
[LMB] Fix some whitespace and other formatting issues, use pr_debug

This makes no semantic changes.  It fixes the whitespace and formatting
a bit, gets rid of a local DBG macro and uses the equivalent pr_debug
instead, and restructures one while loop that had a function call and
assignment in the condition to be a bit more readable.  Some comments
about functions being called with relocation disabled were also removed
as they would just be confusing to most readers now that the code is
in lib/.

Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[LMB] Add lmb_alloc_nid()
David S. Miller [Mon, 24 Mar 2008 09:50:48 +0000 (20:50 +1100)]
[LMB] Add lmb_alloc_nid()

A variant of lmb_alloc() that tries to allocate memory on a specified
NUMA node 'nid' but falls back to normal lmb_alloc() if that fails.

The caller provides a 'nid_range' function pointer which assists the
allocator.  It is given args 'start', 'end', and pointer to integer
'this_nid'.

It places at 'this_nid' the NUMA node id that corresponds to 'start',
and returns the end address within 'start' to 'end' at which memory
assosciated with 'nid' ends.

This callback allows a platform to use lmb_alloc_nid() in just
about any context, even ones in which early_pfn_to_nid() might
not be working yet.

This function will be used by the NUMA setup code on sparc64, and also
it can be used by powerpc, replacing it's hand crafted
"careful_allocation()" function in arch/powerpc/mm/numa.c

If x86 ever converts it's NUMA support over to using the LMB helpers,
it can use this too as it has something entirely similar.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] replace asm/of_device.h with linux/of_device.h in macio.h
Stephen Rothwell [Mon, 14 Apr 2008 02:08:47 +0000 (12:08 +1000)]
[POWERPC] replace asm/of_device.h with linux/of_device.h in macio.h

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] remove include of asm/of_device.h from pmi.h
Stephen Rothwell [Mon, 14 Apr 2008 02:00:47 +0000 (12:00 +1000)]
[POWERPC] remove include of asm/of_device.h from pmi.h

pmi.h does not diectly reference anything in of_device.h and of the two
files that include asm/pmi.h, one includes of_device.h and the other
includes of_platform.h (which includes of_device.h).

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] iSeries: Localise and constify some iSeries data
Stephen Rothwell [Thu, 10 Apr 2008 06:44:30 +0000 (16:44 +1000)]
[POWERPC] iSeries: Localise and constify some iSeries data

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] iSeries: Make iseries_reg_save private to iSeries
Stephen Rothwell [Thu, 10 Apr 2008 06:43:47 +0000 (16:43 +1000)]
[POWERPC] iSeries: Make iseries_reg_save private to iSeries

Now that we have the alpaca, the reg_save_ptr is no longer needed in the
paca.  Eradicate all global uses of it and make it static in the iSeries
lpardata.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] iSeries: Use alternate paca structure for booting
Stephen Rothwell [Thu, 10 Apr 2008 06:39:18 +0000 (16:39 +1000)]
[POWERPC] iSeries: Use alternate paca structure for booting

The iSeries HV only needs the first two fields of the paca statically
initialised, so create an alternate paca that contains only those and
switch to our real paca immediately after boot.

This is in order to make the 1024 cpu patches easier since they will no
longer have to statically initialise the pacas for iSeries.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] prpmc2800 needs a dtbImage
Dale Farnsworth [Mon, 7 Apr 2008 22:13:10 +0000 (08:13 +1000)]
[POWERPC] prpmc2800 needs a dtbImage

The prpmc2800 platform requires a zImage formatted file with an
embedded dtb file.  Rename the requested boot image file to
dtbImage.prpmc2800.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Acked-by: Mark A. Greer <mgreer@mvista.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Document the mv64x60 device tree bindings
Dale Farnsworth [Mon, 7 Apr 2008 22:12:07 +0000 (08:12 +1000)]
[POWERPC] Document the mv64x60 device tree bindings

Add the device tree bindings for the Marvell mv64x60 series of
system controller chips in booting-without-of.text.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] mv643xx_eth: Prepare to support multiple silicon blocks
Dale Farnsworth [Mon, 7 Apr 2008 22:11:27 +0000 (08:11 +1000)]
[POWERPC] mv643xx_eth: Prepare to support multiple silicon blocks

The mv643xx_eth driver is being modified to support multiple instances
of the ethernet silicon block on the same platform.  Each block contains
a single register bank containing the registers for up to three ports
interleaved within that bank.  This patch updates the PowerPC OF to
platform_device glue code to support multiple silicon blocks, each
with up to three ethernet ports.  The main difference is that we now
allow multiple mv64x60_shared platform_devices to be registered and
we provide each port platform_device with a pointer to its associated
shared platform_device.  The pointer will not be used until the
mv643xx_eth driver changes are committed.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Acked-by: Mark Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] prpmc2800: Clean up dts properties
Mark A. Greer [Mon, 7 Apr 2008 22:10:34 +0000 (08:10 +1000)]
[POWERPC] prpmc2800: Clean up dts properties

Remove several unused (or software config only) properties.
Rename marvel node to "system-controller".  Also, rename the
"block-index" property to "cell-index" to conform to current
practice.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] mv64x60: Remove device tree absolute path references
Dale Farnsworth [Mon, 7 Apr 2008 22:09:51 +0000 (08:09 +1000)]
[POWERPC] mv64x60: Remove device tree absolute path references

Replace several device node absolute path lookups in the mv64x60
bootwrapper code with lookups by compatible or device_type
properties.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360
Mark A. Greer [Mon, 7 Apr 2008 22:09:03 +0000 (08:09 +1000)]
[POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360

Compatible names should refer to a specific version of the hardware,
without wildcards.  Change each instance of mv64x60 to mv64360, which
is the oldest version we currently support.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] prpmc2800: Fix frequencies in prpmc2800.dts
Dale Farnsworth [Mon, 7 Apr 2008 22:08:06 +0000 (08:08 +1000)]
[POWERPC] prpmc2800: Fix frequencies in prpmc2800.dts

After the conversion to dts v1 format, seeing the frequencies
in decimal made it obvious that some of them had been
incorrectly truncated.  This fixes them.  Note that the PCI
frequency comes from a different source and is documented
as 66MHz, so it was left at 66000000.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] prpmc2800: Convert DTS to v1 and add labels
Mark A. Greer [Mon, 7 Apr 2008 22:07:08 +0000 (08:07 +1000)]
[POWERPC] prpmc2800: Convert DTS to v1 and add labels

Update the prpmc2800 DTS file to version 1 and add labels.
I verified that there was no change in the resulting dtb file.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Fix MAX_ORDER config problem
Stephen Rothwell [Fri, 11 Apr 2008 01:11:56 +0000 (11:11 +1000)]
[POWERPC] Fix MAX_ORDER config problem

The allyesconfig (among others) build was giving this:

In file included from include/linux/gfp.h:4,
                 from include/linux/slab.h:14,
                 from include/linux/percpu.h:5,
                 from include2/asm/time.h:18,
                 from include2/asm/cputime.h:26,
                 from include/linux/sched.h:67,
                 from
arch/powerpc/kernel/asm-offsets.c:17:
include/linux/mmzone.h:791:2: error: #error Allocator MAX_ORDER exceeds SECTION_SIZE

Kconfig options are order depenendent, so move the setting of
FORCE_MAX_ZONEORDER to after the setting of PPC_64K_PAGES. Also add an
explicit !PPC_64K_PAGES.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Fix handling of unrecoverable SLB miss interrupts
Paul Mackerras [Mon, 14 Apr 2008 03:59:02 +0000 (13:59 +1000)]
[POWERPC] Fix handling of unrecoverable SLB miss interrupts

If an SLB miss interrupt happens while the RI bit of MSR is zero, we
can't just return, because RI being zero indicates that SRR0/SRR1
potentially had live values in them, and the process of taking an
interrupt overwrites them.

This should never happen, but if it does, we try to print a nice oops
message.  That doesn't work, however, because the code at unrecov_slb
assumes that the MMU has been turned on, but we call it with the MMU
off (and have done so since the SLB miss handler was rewritten to run
without turning the MMU on) -- except on iSeries, where everything runs
with the MMU on.

This fixes it by adding the necessary code to turn the MMU on if
necessary.

Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agoMerge branch 'linux-2.6'
Paul Mackerras [Mon, 14 Apr 2008 11:11:02 +0000 (21:11 +1000)]
Merge branch 'linux-2.6'

16 years agoLinux 2.6.25-rc9
Linus Torvalds [Fri, 11 Apr 2008 20:32:29 +0000 (13:32 -0700)]
Linux 2.6.25-rc9

16 years agoMerge branch 'docs' of git://git.lwn.net/linux-2.6
Linus Torvalds [Fri, 11 Apr 2008 20:24:16 +0000 (13:24 -0700)]
Merge branch 'docs' of git://git.lwn.net/linux-2.6

* 'docs' of git://git.lwn.net/linux-2.6:
  Add additional examples in Documentation/spinlocks.txt
  Move sched-rt-group.txt to scheduler/
  Documentation: move rpc-cache.txt to filesystems/
  Documentation: move nfsroot.txt to filesystems/
  Spell out behavior of atomic_dec_and_lock() in kerneldoc
  Fix a typo in highres.txt
  Fixes to the seq_file document
  Fill out information on patch tags in SubmittingPatches
  Add the seq_file documentation