openwrt/staging/blogic.git
18 years ago[PATCH] ppc64: POWER5+ oprofile support
Anton Blanchard [Mon, 9 Jan 2006 04:42:30 +0000 (15:42 +1100)]
[PATCH] ppc64: POWER5+ oprofile support

POWER5+ adds new PMU groups and as such needs to be treated differently
by oprofile userspace. Change it to report itself as power5+.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc64: Fix oprofile when compiled as a module
Anton Blanchard [Mon, 9 Jan 2006 04:41:31 +0000 (15:41 +1100)]
[PATCH] ppc64: Fix oprofile when compiled as a module

My recent changes to oprofile broke it when built as a module. Fix it by
using an enum instead of a function pointer. This way we still retain
the oprofile configuration in the cputable.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] 4/5 powerpc: Add cpufreq support for all desktop G5
Benjamin Herrenschmidt [Sat, 7 Jan 2006 00:45:28 +0000 (11:45 +1100)]
[PATCH] 4/5 powerpc: Add cpufreq support for all desktop G5

This patch adds cpufreq support for all desktop "tower" G5 models. The
only G5 models still lacking cpufreq support at this point are the
Xserve and possibly the new iMac iSight (not tested). I'll have those
added soon. That patch uses the new platform functions interpreter to
implement frequency and voltage switching on most models.

Note that in order to find the low frequency value, I had to hack
something that might now work properly on all models, so if the
frequency value reported when running low speed looks bogus to you,
please report it to me. (Appart from a bogus reported value, things
should work fine).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] 3/5 powerpc: Add platform functions interpreter
Benjamin Herrenschmidt [Sat, 7 Jan 2006 00:41:02 +0000 (11:41 +1100)]
[PATCH] 3/5 powerpc: Add platform functions interpreter

This is the platform function interpreter itself along with the backends
for UniN/U3/U4, mac-io, GPIOs and i2c. It adds the ability to execute
those do-platform-* scripts in the device-tree (at least for most
devices for which a backend is provided). This should replace the clock
spreading hacks properly. It might also have an impact on all sort of
machines since some of the scripts marked "at init" will now be executed
on boot (or some other on sleep/wakeup), those will possibly do things
that the kernel didn't do at all, like setting some values into some i2c
devices (changing thermal sensor calibration or conversion rate) etc...
Thus regression testing is MUCH welcome. Also loook for errors in dmesg.
That's also why I've left rather verbose debugging enabled in this
version of the patch.

(I do expect some Windtunnel G4s to show some errors as they have an i2c
clock chip on the PMU bus that uses some primitives that the i2c backend
doesn't implement yet. I really need users that have one of those
machine to come back to me so we can get that done right, though the
errors themselves should be harmless, I suspect the machine might not
run at full speed).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] 2/5 powerpc: Rework PowerMac i2c part 2
Benjamin Herrenschmidt [Sat, 7 Jan 2006 00:35:26 +0000 (11:35 +1100)]
[PATCH] 2/5 powerpc: Rework PowerMac i2c part 2

This is the continuation of the previous patch. This one removes the old
PowerMac i2c drivers (i2c-keywest and i2c-pmac-smu) and replaces them
both with a single stub driver that uses the new PowerMac low i2c layer.

Now that i2c-keywest is gone, the low-i2c code is extended to support
interrupt driver transfers. All i2c busses now appear as platform
devices. Compatibility with existing drivers should be maintained as the
i2c bus names have been kept identical, except for the SMU bus but in
that later case, all users has been fixed.

With that patch added, matching a device node to an i2c_adapter becomes
trivial.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] 1/5 powerpc: Rework PowerMac i2c part 1
Benjamin Herrenschmidt [Sat, 7 Jan 2006 00:30:44 +0000 (11:30 +1100)]
[PATCH] 1/5 powerpc: Rework PowerMac i2c part 1

This is the first part of a rework of the PowerMac i2c code. It
completely reworks the "low_i2c" layer. It is now more flexible,
supports KeyWest, SMU and PMU i2c busses, and provides functions to
match device nodes to i2c busses and adapters.

This patch also extends & fix some bugs in the SMU driver related to i2c
support and removes the clock spreading hacks from the pmac feature code
rather than adapting them to the new API since they'll be replaced by
the platform function code completely in patch 3/5

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc64: fix time syscall
Anton Blanchard [Fri, 6 Jan 2006 13:49:49 +0000 (00:49 +1100)]
[PATCH] ppc64: fix time syscall

ppc64 has its own version of sys_time. It looks pretty scary, touching
a whole bunch of variables without any locking or memory ordering.

In fact, a recent bugreport has shown it can actually go backwards. Time
to remove it and just use the generic sys_time, which is implemented on
top of do_gettimeofday.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc32: Put cache flush routines back into .relocate_code section
Paul Janzen [Thu, 5 Jan 2006 05:40:48 +0000 (21:40 -0800)]
[PATCH] ppc32: Put cache flush routines back into .relocate_code section

In 2.6.14, we had the following definition of _GLOBAL() in
include/asm-ppc/processor.h:

#define _GLOBAL(n)\
        .stabs __stringify(n:F-1),N_FUN,0,0,n;\
        .globl n;\
n:

In 2.6.15, as part of the great powerpc merge, we moved this definition to
include/asm-powerpc/ppc_asm.h, where it appears (to 32-bit code) as:

#define _GLOBAL(n)      \
        .text;          \
        .stabs __stringify(n:F-1),N_FUN,0,0,n;\
        .globl n;       \
n:

Mostly, this is fine.  However, we also have the following, in
arch/ppc/boot/common/util.S:

        .section ".relocate_code","xa"
[...]
_GLOBAL(flush_instruction_cache)
[...]
_GLOBAL(flush_data_cache)
[...]

The addition of the .text section definition in the definition of
_GLOBAL overrides the .relocate_code section definition.  As a result,
these two functions don't end up in .relocate_code, so they don't get
relocated correctly, and the boot fails.

There's another suspicious-looking usage at kernel/swsusp.S:37 that
someone should look into.  I did not exhaustively search the source
tree, though.

The following is the minimal patch that fixes the immediate problem.
I could easily be convinced that the _GLOBAL definition should be
modified to remove the ".text;" line either instead of, or in addition
to, this fix.

Signed-off-by: Paul Janzen <pcj@linux.sez.to>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: set irq affinity for running threads
Arnd Bergmann [Thu, 5 Jan 2006 14:05:29 +0000 (14:05 +0000)]
[PATCH] spufs: set irq affinity for running threads

For far, all SPU triggered interrupts always end up on
the first SMT thread, which is a bad solution.

This patch implements setting the affinity to the
CPU that was running last when entering execution on
an SPU. This should result in a significant reduction
in IPI calls and better cache locality for SPE thread
specific data.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix allocation on 64k pages
Arnd Bergmann [Wed, 4 Jan 2006 19:31:32 +0000 (20:31 +0100)]
[PATCH] spufs: fix allocation on 64k pages

The size of the local store is architecture defined
and independent from the page size, so it should
not be defined in terms of pages in the first place.

This mistake broke a few places when building for
64kb pages.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix sparse warnings
Arnd Bergmann [Wed, 4 Jan 2006 19:31:31 +0000 (20:31 +0100)]
[PATCH] spufs: fix sparse warnings

One local variable is missing an __iomem modifier,
in another place, we pass a completely unused argument
with a missing __user modifier.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: abstract priv1 register access.
Arnd Bergmann [Wed, 4 Jan 2006 19:31:30 +0000 (20:31 +0100)]
[PATCH] spufs: abstract priv1 register access.

In a hypervisor based setup, direct access to the first
priviledged register space can typically not be allowed
to the kernel and has to be implemented through hypervisor
calls.

As suggested by Masato Noguchi, let's abstract the register
access trough a number of function calls. Since there is
currently no public specification of actual hypervisor
calls to implement this, I only provide a place that
makes it easier to hook into.

Cc: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Cc: Geoff Levand <geoff.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: move spu_run call to its own file
Arnd Bergmann [Wed, 4 Jan 2006 19:31:29 +0000 (20:31 +0100)]
[PATCH] spufs: move spu_run call to its own file

The logic for sys_spu_run keeps growing and it does
not really belong into file.c any more since we
moved away from using regular file operations to our
own syscall.

No functional change in here.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: clean up use of bitops
Arnd Bergmann [Wed, 4 Jan 2006 19:31:28 +0000 (20:31 +0100)]
[PATCH] spufs: clean up use of bitops

checking bits manually might not be synchonized with
the use of set_bit/clear_bit. Make sure we always use
the correct bitops by removing the unnecessary
identifiers.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix spufs_fill_dir error path
Arnd Bergmann [Wed, 4 Jan 2006 19:31:27 +0000 (20:31 +0100)]
[PATCH] spufs: fix spufs_fill_dir error path

If creating one entry failed in spufs_fill_dir,
we never cleaned up the freshly created entries.
Fix this by calling the cleanup function on error.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: dont leak directories in failed spu_create
Arnd Bergmann [Wed, 4 Jan 2006 19:31:26 +0000 (20:31 +0100)]
[PATCH] spufs: dont leak directories in failed spu_create

If get_unused_fd failed in sys_spu_create, we never cleaned
up the created directory. Fix that by restructuring the
error path.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs fix spu_acquire_runnable error path
Arnd Bergmann [Wed, 4 Jan 2006 19:31:25 +0000 (20:31 +0100)]
[PATCH] spufs fix spu_acquire_runnable error path

When spu_activate fails in spu_acquire_runnable, the
state must still be SPU_STATE_SAVED, we were
incorrectly setting it to SPU_STATE_RUNNABLE.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: serialize sys_spu_run per spu
Arnd Bergmann [Wed, 4 Jan 2006 19:31:24 +0000 (20:31 +0100)]
[PATCH] spufs: serialize sys_spu_run per spu

During an earlier cleanup, we lost the serialization
of multiple spu_run calls performed on the same
spu_context. In order to get this back, introduce a
mutex in the spu_context that is held inside of spu_run.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: check for proper file pointer in sys_spu_run
Arnd Bergmann [Wed, 4 Jan 2006 19:31:23 +0000 (20:31 +0100)]
[PATCH] spufs: check for proper file pointer in sys_spu_run

Only checking for SPUFS_MAGIC is not reliable, because
it might not be unique in theory. Worse than that,
we accidentally allow spu_run to be performed on
any file in spufs, not just those returned from
spu_create as intended.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: dont hold root->isem in spu_forget
Arnd Bergmann [Wed, 4 Jan 2006 19:31:22 +0000 (20:31 +0100)]
[PATCH] spufs: dont hold root->isem in spu_forget

spu_forget will do mmput on the DMA address space,
which can lead to lots of other stuff getting triggered.
We better not hold a semaphore here that we might
need in the process.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix locking in spu_acquire_runnable
Arnd Bergmann [Wed, 4 Jan 2006 19:31:21 +0000 (20:31 +0100)]
[PATCH] spufs: fix locking in spu_acquire_runnable

We need to check for validity of owner under down_write,
down_read is not enough.

Noticed by Al Viro.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] cell: enable pause(0) in cpu_idle
Arnd Bergmann [Wed, 4 Jan 2006 19:55:53 +0000 (19:55 +0000)]
[PATCH] cell: enable pause(0) in cpu_idle

This patch enables support for pause(0) power management state
for the Cell Broadband Processor, which is import for power efficient
operation. The pervasive infrastructure will in the future enable
us to introduce more functionality specific to the Cell's
pervasive unit.

From: Maximino Aguilar <maguilar@us.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: fixing compile issue with !CONFIG_PCI in legacy_serial.c
Kumar Gala [Tue, 3 Jan 2006 22:15:21 +0000 (16:15 -0600)]
[PATCH] powerpc: fixing compile issue with !CONFIG_PCI in legacy_serial.c

Only build in support for ISA and PCI cases if we have enabled CONFIG_ISA
and CONFIG_PCI.  Additionally, isa_bridge is a global so we shouldn't use
it a parameter name since it gets redefined to NULL when !CONFIG_PCI.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc32: cpm_uart: fix xchar sending
Aristeu Sergio Rozanski Filho [Thu, 29 Dec 2005 21:18:49 +0000 (19:18 -0200)]
[PATCH] ppc32: cpm_uart: fix xchar sending

while using SCC as uart and as serial console at same time I got this:

[  138.214258] Oops: kernel access of bad area, sig: 11 [#1]
[  138.218832] PREEMPT
[  138.221021] NIP: C0105C48 LR: C0105E60 SP: C03D5D10 REGS: c03d5c60 TRAP: 0300    Not tainted
[  138.229280] MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
[  138.234713] DAR: 00000000, DSISR: C0000000
[  138.238745] TASK = c0349420[693] 'sh' THREAD: c03d4000
[  138.243754] Last syscall: 6
[  138.246402] GPR00: FEFFFFFF C03D5D10 C0349420 C01FB094 00000011 00000000 C1ECFBBC C01F24B0
[  138.254602] GPR08: FF002820 00000000 FF0028C0 00000000 19133615 A0CBCD5E 02000300 00000000
[  138.262804] GPR16: 00000000 01FF9E4C 00000000 7FA9A770 00000000 00000000 1003E2A8 00000000
[  138.271003] GPR24: 100562F4 7F9B6EF4 C0210000 C02A5338 C01FB094 00000000 C01FB094 C1F14574
[  138.279376] NIP [c0105c48] cpm_uart_tx_pump+0x4c/0x22c
[  138.284419] LR [c0105e60] cpm_uart_start_tx+0x38/0xb0
[  138.289361] Call trace:
[  138.291762]  [c0105e60] cpm_uart_start_tx+0x38/0xb0
[  138.296547]  [c010277c] uart_send_xchar+0x88/0x118
[  138.301244]  [c01029a0] uart_unthrottle+0x6c/0x138
[  138.305942]  [c00ece10] check_unthrottle+0x60/0x64
[  138.310641]  [c00ecec4] reset_buffer_flags+0xb0/0x138
[  138.315595]  [c00ecf64] n_tty_flush_buffer+0x18/0x78
[  138.320465]  [c00e81b0] tty_ldisc_flush+0x64/0x7c
[  138.325078]  [c010410c] uart_close+0xf0/0x2c8
[  138.329348]  [c00e9c48] release_dev+0x724/0x8d4
[  138.333790]  [c00e9e18] tty_release+0x20/0x3c
[  138.338061]  [c006e544] __fput+0x178/0x1e0
[  138.342076]  [c006c43c] filp_close+0x54/0xac
[  138.346261]  [c0002d90] ret_from_syscall+0x0/0x44
[  138.352386] note: sh[693] exited with preempt_count 2

a easy way to reproduce it is log into the system using ssh and do:
cat >/dev/ttyCPM0
then, switch to minicom and write some stuff on it back to ssh, a control C
produce the oops

this happens because uart_close calls uart_shutdown which frees xmit.buf,
currently used by xchar sending in cpm_uart_tx_pump(), which seems wrong.

the attached patch fixes the oops and also fixes xchar sending.

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] Small fix in eeh definitions when CONFIG_EEH not enabled
Haren Myneni [Wed, 28 Dec 2005 02:58:29 +0000 (18:58 -0800)]
[PATCH] Small fix in eeh definitions when CONFIG_EEH not enabled

Undefined symbols (eeh_add_device_tree_early and eeh_remove_bus_device)
when EEH is not enabled. This small patch will fix this.

Acked-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix search for the main interrupt controller
Haren Myneni [Tue, 27 Dec 2005 23:51:07 +0000 (15:51 -0800)]
[PATCH] powerpc: Fix search for the main interrupt controller

At present, we are not looking at all interrupt controller nodes in the
device tree even though the proper node was not found. This is causing
the system panic. The attached patch will scan all nodes until it finds
the proper interrupt controller type.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Call find_legacy_serial_ports() if we enable CONFIG_SERIAL_8250
Kumar Gala [Wed, 21 Dec 2005 15:27:13 +0000 (09:27 -0600)]
[PATCH] powerpc: Call find_legacy_serial_ports() if we enable CONFIG_SERIAL_8250

In setup_arch and setup_system call find_legacy_serial_ports() if we
build in support for 8250 serial ports instead of basing it on PPC_MULTIPLATFORM.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: added a udbg_progress
Kumar Gala [Tue, 20 Dec 2005 22:37:07 +0000 (16:37 -0600)]
[PATCH] powerpc: added a udbg_progress

Added a common udbg_progress for use by ppc_md.progress()

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add the ability to handle SOC ports in legacy_serial
Kumar Gala [Tue, 20 Dec 2005 22:16:52 +0000 (16:16 -0600)]
[PATCH] powerpc: Add the ability to handle SOC ports in legacy_serial

Add the ability to configure and initialize legacy 8250 serials
ports on an SOC bus.  Also, fixed an issue that we would not
configure any serial ports if "linux,stdout-path" was not found.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Loosen udbg_probe_uart_speed sanity checking
Kumar Gala [Tue, 20 Dec 2005 22:16:26 +0000 (16:16 -0600)]
[PATCH] powerpc: Loosen udbg_probe_uart_speed sanity checking

The checking of the baudrate in udbg_probe_uart_speed was
too tight and would cause reporting back of the default
baud rate in cases where the computed speed was valid.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: don't add memory to empty node/zone
Mike Kravetz [Fri, 16 Dec 2005 22:30:35 +0000 (14:30 -0800)]
[PATCH] powerpc: don't add memory to empty node/zone

The system will oops if an attempt is made to add memory to an
empty node/zone.  This patch prevents adding memory to an empty
node.  The code to dynamically add a node/zone is non-trivial.
This patch is temporary and will be removed when the ability
to dynamically add a node/zone is complete.

Signed-off-by: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: fix two build warnings
Arnd Bergmann [Fri, 16 Dec 2005 21:45:27 +0000 (22:45 +0100)]
[PATCH] powerpc: fix two build warnings

Building the arch/powerpc tree currently gives me
two warnings with gcc-4.0:

arch/powerpc/mm/imalloc.c: In function '__im_get_area':
arch/powerpc/mm/imalloc.c:225: warning: 'tmp' may be used uninitialized in this function
arch/powerpc/mm/hugetlbpage.c: In function 'hugetlb_get_unmapped_area':
arch/powerpc/mm/hugetlbpage.c:608: warning: unused variable 'vma'

both fixes are trivial.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years agopowerpc: Fix some #ifndef __KERNEL__ that should be #ifdef
Paul Mackerras [Tue, 20 Dec 2005 07:43:52 +0000 (18:43 +1100)]
powerpc: Fix some #ifndef __KERNEL__ that should be #ifdef

Grrr....

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: sanitize header files for user space includes
Arnd Bergmann [Fri, 16 Dec 2005 21:43:46 +0000 (22:43 +0100)]
[PATCH] powerpc: sanitize header files for user space includes

include/asm-ppc/ had #ifdef __KERNEL__ in all header files that
are not meant for use by user space, include/asm-powerpc does
not have this yet.

This patch gets us a lot closer there. There are a few cases
where I was not sure, so I left them out. I have verified
that no CONFIG_* symbols are used outside of __KERNEL__
any more and that there are no obvious compile errors when
including any of the headers in user space libraries.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix iSeries bug in VMALLOCBASE/VMALLOC_START consolidation
David Gibson [Fri, 16 Dec 2005 03:49:25 +0000 (14:49 +1100)]
[PATCH] powerpc: Fix iSeries bug in VMALLOCBASE/VMALLOC_START consolidation

Oops, forgot to compile the VMALLOCBASE/VMALLOC_START patch on
iSeries.  VMALLOC_START is defined in pgtable.h whereas previously
VMALLOCBASE was previously defined in page.h.  lparmap.c needs to be
updated appropriately.

Booted on iSeries RS64 (now).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: G4+ oprofile support
Andy Fleming [Fri, 16 Dec 2005 02:02:04 +0000 (20:02 -0600)]
[PATCH] powerpc: G4+ oprofile support

This patch adds oprofile support for the 7450 and all its multitudinous
derivatives.

* Added 7450 (and derivatives) support for oprofile
* Changed e500 cputable to have oprofile model and cpu_type fields
* Added support for classic 32-bit performance monitor interrupt
* Cleaned up common powerpc oprofile code to be as common as possible
* Cleaned up oprofile_impl.h to reflect 32 bit classic code
* Added 32-bit MMCRx bitfield definitions and SPR numbers

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix compile problem in pci.c for ppc32
Kumar Gala [Mon, 19 Dec 2005 21:49:07 +0000 (15:49 -0600)]
[PATCH] powerpc: Fix compile problem in pci.c for ppc32

pci_address_to_pio is missing a closing curly brace

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: pci_address_to_pio fix
Benjamin Herrenschmidt [Thu, 15 Dec 2005 04:00:57 +0000 (15:00 +1100)]
[PATCH] powerpc: pci_address_to_pio fix

This fixes pci_address_to_pio() to return an unsigned long (to be safe)
and fixes a bug in the implementation that caused it to return a bogus
IO port number

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] via-pmu: compile without Power Management support
Kristian Mueller [Thu, 15 Dec 2005 04:31:55 +0000 (12:31 +0800)]
[PATCH] via-pmu: compile without Power Management support

Fix compilation of via-pmu.c without Power Management support.

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Replace VMALLOCBASE with VMALLOC_START
David Gibson [Wed, 14 Dec 2005 05:08:40 +0000 (16:08 +1100)]
[PATCH] powerpc: Replace VMALLOCBASE with VMALLOC_START

On ppc64, we independently define VMALLOCBASE and VMALLOC_START to be
the same thing: the start of the vmalloc() area at 0xd000000000000000.
VMALLOC_START is used much more widely, including in generic code, so
this patch gets rid of the extraneous VMALLOCBASE.

This does require moving the definitions of region IDs from page_64.h
to pgtable.h, but they don't clearly belong in the former rather than
the latter, anyway.  While we're moving them, clean up the definitions
of the REGION_IDs:
- Abolish REGION_SIZE, it was only used once, to define
REGION_MASK anyway
- Define the specific region ids in terms of the REGION_ID()
macro.
- Define KERNEL_REGION_ID in terms of PAGE_OFFSET rather than
KERNELBASE.  It amounts to the same thing, but conceptually this is
about the region of the linear mapping (which starts at PAGE_OFFSET)
rather than of the kernel text itself (which is at KERNELBASE).

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix g5 DART init
Benjamin Herrenschmidt [Mon, 19 Dec 2005 05:49:07 +0000 (16:49 +1100)]
[PATCH] powerpc: Fix g5 DART init

The patch enabling the new G5's with U4 broke initialization of the DART
driver, causing it to trigger a BUG_ON for a case that is actually
valid. This patch fixes it:

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Experimental support for new G5 Macs (#2)
Benjamin Herrenschmidt [Wed, 14 Dec 2005 02:10:10 +0000 (13:10 +1100)]
[PATCH] powerpc: Experimental support for new G5 Macs (#2)

This adds some very basic support for the new machines, including the
Quad G5 (tested), and other new dual core based machines and iMac G5
iSight (untested). This is still experimental !  There is no thermal
control yet, there is no proper handing of MSIs, etc.. but it
boots, I have all 4 cores up on my machine. Compared to the previous
version of this patch, this one adds DART IOMMU support for the U4
chipset and thus should work fine on setups with more than 2Gb of RAM.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Detect prefetchable windows in pci_process_bridge_OF_ranges
Kumar Gala [Tue, 13 Dec 2005 20:46:29 +0000 (14:46 -0600)]
[PATCH] powerpc: Detect prefetchable windows in pci_process_bridge_OF_ranges

Added the ability to determine if an outbound window in the PCI host
controller is for prefetchable memory and report it as such.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: export PCI fixup routine
linas [Tue, 13 Dec 2005 19:46:36 +0000 (13:46 -0600)]
[PATCH] powerpc: export PCI fixup routine

There is code in the RPAPHP directory that is identical to this routine;
I'll be removing that code in an upcoming patch, but this patch is needed
to expose the function to make it callable.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Update MPIC workarounds
Segher Boessenkool [Tue, 13 Dec 2005 07:04:29 +0000 (18:04 +1100)]
[PATCH] powerpc: Update MPIC workarounds

Cleanup the MPIC IO-APIC workarounds, make them a bit more generic,
smaller and faster.

Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Remove device_node addrs/n_addr
Benjamin Herrenschmidt [Tue, 13 Dec 2005 07:01:21 +0000 (18:01 +1100)]
[PATCH] powerpc: Remove device_node addrs/n_addr

The pre-parsed addrs/n_addrs fields in struct device_node are finally
gone. Remove the dodgy heuristics that did that parsing at boot and
remove the fields themselves since we now have a good replacement with
the new OF parsing code. This patch also fixes a bunch of drivers to use
the new code instead, so that at least pmac32, pseries, iseries and g5
defconfigs build.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix platinumfb for some modes
Benjamin Herrenschmidt [Tue, 13 Dec 2005 06:48:35 +0000 (17:48 +1100)]
[PATCH] powerpc: Fix platinumfb for some modes

The platinumfb driver used only on some powermacs has an issue with some
video modes & limited VRAM. This patch fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add pmac32 defconfig for ARCH=powerpc
Benjamin Herrenschmidt [Tue, 13 Dec 2005 06:46:23 +0000 (17:46 +1100)]
[PATCH] powerpc: Add pmac32 defconfig for ARCH=powerpc

This adds a defconfig for PowerMac with ARCH=powerpc

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Remove old comment in head.S
Anton Blanchard [Mon, 12 Dec 2005 20:56:54 +0000 (07:56 +1100)]
[PATCH] powerpc: Remove old comment in head.S

Remove a comment in head.S which is no longer relevant.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Dont set 32bit cputable bits on 64bit
Anton Blanchard [Mon, 12 Dec 2005 20:45:33 +0000 (07:45 +1100)]
[PATCH] powerpc: Dont set 32bit cputable bits on 64bit

Milton and I were looking at the cputable code and it looks like we can
set spurious bits on 64bit.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc64: Add NUMA cpu summary at boot
Anton Blanchard [Mon, 12 Dec 2005 19:56:47 +0000 (06:56 +1100)]
[PATCH] ppc64: Add NUMA cpu summary at boot

We used to print a NUMA cpu summary at boot before the hotplug cpu code
was added. This has been useful for catching machine configuration as
well as firmware bugs in the past.

This patch restores that functionality. An example of the output is:

Node 0 CPUs: 0-7
Node 1 CPUs: 8-15

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] Documentation/powerpc: index update
Nicolas Kaiser [Sun, 11 Dec 2005 00:50:03 +0000 (01:50 +0100)]
[PATCH] Documentation/powerpc: index update

Add three files not mentioned in Documentation/powerpc/00-INDEX.
Sort alphabetically.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: fix large nvram access
Arnd Bergmann [Fri, 9 Dec 2005 18:21:44 +0000 (19:21 +0100)]
[PATCH] powerpc: fix large nvram access

/dev/nvram uses the user-provided read/write size
for kmalloc, which fails, if a large number is passed.
This will always use a single page at most, which
can be expected to succeed.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc/cell: disable legacy i/o area
David Woodhouse [Fri, 9 Dec 2005 18:04:21 +0000 (19:04 +0100)]
[PATCH] powerpc/cell: disable legacy i/o area

We currently crash in the fedora installer because the keyboard
driver tries to access I/O space that is not there on our hardware.

This uses the same solution as powermac by just marking all
legacy i/o as invalid.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc/cell: add iommu support for larger memory
Jens.Osterkamp@de.ibm.com [Fri, 9 Dec 2005 18:04:20 +0000 (19:04 +0100)]
[PATCH] powerpc/cell: add iommu support for larger memory

So far, the iommu code was hardwired to a linear mapping
between 0x20000000 and 0x40000000, so it could only support
512MB of RAM.

This patch still keeps the linear mapping, but looks for
proper ibm,dma-window properties to set up larger windows,
this makes the maximum supported RAM size 2GB.

If there is anything unusual about the dma-window properties,
we fall back to the old behavior.

We also support switching off the iommu completely now
with the regular iommu=off command line option.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: clear dsisr on CLASS1[Mf] exception
Arnd Bergmann [Fri, 9 Dec 2005 18:04:18 +0000 (19:04 +0100)]
[PATCH] spufs: clear dsisr on CLASS1[Mf] exception

Because of always clearing DSISR at spu class 1 interrupt handler,
kernel may lose Class1[Mf] interrupt.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoff.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix hexdump format
Arnd Bergmann [Fri, 9 Dec 2005 18:04:17 +0000 (19:04 +0100)]
[PATCH] spufs: fix hexdump format

Output from hexdump with "%08x" depends on HOST platform's endian.
When building linux by cross toolchain, that difference makes errors.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoff.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: trivial compile fix
Arnd Bergmann [Fri, 9 Dec 2005 18:04:16 +0000 (19:04 +0100)]
[PATCH] spufs: trivial compile fix

One of my last patches contained a broken line
from splitting out some other changes, this
restores a working version.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix module refcount race
Arnd Bergmann [Fri, 9 Dec 2005 18:04:15 +0000 (19:04 +0100)]
[PATCH] spufs: fix module refcount race

One of the two users of spufs_calls.owner still has a race
when calling try_module_get while the module is removed.
This makes it use the correct instance of owner.

Noticed by Milton Miller.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc32: Add TQM85xx (8540/8541/8555/8560) board support
Kumar Gala [Fri, 9 Dec 2005 17:57:44 +0000 (11:57 -0600)]
[PATCH] ppc32: Add TQM85xx (8540/8541/8555/8560) board support

This patch adds support for the TQ Components TQM85xx modules. Currently the
modules TQM8540/8541/8555/8560 are supported.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] cell: add platform detection code
Arnd Bergmann [Tue, 6 Dec 2005 03:52:29 +0000 (22:52 -0500)]
[PATCH] cell: add platform detection code

I can't really get a conclusive answer from the firmware
people what to check for, so I just try scanning for
anything that starts with "IBM,CPB", which should be
correct for all hardware produced so far and for
systemsim.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix mailbox polling
Arnd Bergmann [Tue, 6 Dec 2005 03:52:27 +0000 (22:52 -0500)]
[PATCH] spufs: fix mailbox polling

Handling mailbox interrupts was broken in multiple respects,
the combination of which was hiding the bugs most of the time.

- The ibox interrupt mask was open initially even though there
  are no waiters on a newly created SPU.

- Acknowledging the mailbox interrupt did not work because
  it is level triggered and the mailbox data is never retrieved
  from inside the interrupt handler.

- The interrupt handler delivered interrupts with a disabled
  mask if another interrupt is triggered for the same class
  but a different mask.

- The poll function did not enable the interrupt if it had not
  been enabled, so we might run into the poll timeout if none of
  the other bugs saved us and no signal was delivered.

We probably still have a similar problem with blocking
read/write on mailbox files, but that will result in extra
wakeup in the worst case, not in incorrect behaviour.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: Improved SPU preemptability [part 2].
Arnd Bergmann [Tue, 6 Dec 2005 03:52:26 +0000 (22:52 -0500)]
[PATCH] spufs: Improved SPU preemptability [part 2].

This patch reduces lock complexity of SPU scheduler, particularly
for involuntary preemptive switches.  As a result the new code
does a better job of mapping the highest priority tasks to SPUs.

Lock complexity is reduced by using the system default workqueue
to perform involuntary saves.  In this way we avoid nasty lock
ordering problems that the previous code had.  A "minimum timeslice"
for SPU contexts is also introduced.  The intent here is to avoid
thrashing.

While the new scheduler does a better job at prioritization it
still does nothing for fairness.

From: Mark Nutter <mnutter@us.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: Improved SPU preemptability.
Arnd Bergmann [Tue, 6 Dec 2005 03:52:25 +0000 (22:52 -0500)]
[PATCH] spufs: Improved SPU preemptability.

This patch makes it easier to preempt an SPU context by
having the scheduler hold ctx->state_sema for much shorter
periods of time.

As part of this restructuring, the control logic for the "run"
operation is moved from arch/ppc64/kernel/spu_base.c to
fs/spufs/file.c.  Of course the base retains "bottom half"
handlers for class{0,1} irqs.  The new run loop will re-acquire
an SPU if preempted.

From: Mark Nutter <mnutter@us.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: Turn off debugging output
Arnd Bergmann [Tue, 6 Dec 2005 03:52:24 +0000 (22:52 -0500)]
[PATCH] spufs: Turn off debugging output

spufs is rather noisy when debugging is enabled, this
turns off the messages for production use.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: Fix oops when spufs module is not loaded
Arnd Bergmann [Tue, 6 Dec 2005 03:52:23 +0000 (22:52 -0500)]
[PATCH] spufs: Fix oops when spufs module is not loaded

try_module_get returns true when NULL arguments, so
we first need to check if there is a module loaded before
getting the reference count.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: fix local store page refcounting
Arnd Bergmann [Tue, 6 Dec 2005 03:52:22 +0000 (22:52 -0500)]
[PATCH] spufs: fix local store page refcounting

With the new rules for reserved pages, the spufs now
needs working page reference counting.

I should probably look into converting to vm_insert_page,
but for now this patch makes spufs work again.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] spufs: Make all exports GPL-only
Arnd Bergmann [Tue, 6 Dec 2005 03:52:21 +0000 (22:52 -0500)]
[PATCH] spufs: Make all exports GPL-only

This changes all exported symbols of spufs to EXPORT_SYMBOL_GPL.
The spu_ibox_read/spu_wbox_write symbols are not exported
any more when the scheduler patch is applied.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add support for "linux,usable-memory" on memory nodes
Michael Ellerman [Sun, 4 Dec 2005 07:39:55 +0000 (18:39 +1100)]
[PATCH] powerpc: Add support for "linux,usable-memory" on memory nodes

Milton has proposed that we should support a "linux,usable-memory" property
on memory nodes which describes, in preference to "reg", the regions of memory
Linux should use.

This facility is required for kdump to inform the second kernel which memory
it should use.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add arch-dependent copy_oldmem_page
Michael Ellerman [Sun, 4 Dec 2005 07:39:51 +0000 (18:39 +1100)]
[PATCH] powerpc: Add arch-dependent copy_oldmem_page

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Parse crashkernel= parameter in first kernel
Michael Ellerman [Sun, 4 Dec 2005 07:39:48 +0000 (18:39 +1100)]
[PATCH] powerpc: Parse crashkernel= parameter in first kernel

This patch adds code to parse and setup the crash kernel resource in the
first kernel. PPC64 ignores the @x part, we always run at 32 MB.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add arch dependent basic infrastructure for Kdump.
Michael Ellerman [Sun, 4 Dec 2005 07:39:43 +0000 (18:39 +1100)]
[PATCH] powerpc: Add arch dependent basic infrastructure for Kdump.

Implementing the machine_crash_shutdown which will be called by
crash_kexec (called in case of a panic, sysrq etc.). Disable the
interrupts, shootdown cpus using debugger IPI and collect regs
for all CPUs.

elfcorehdr= specifies the location of elf core header stored by
the crashed kernel. This command line option will be passed by
the kexec-tools to capture kernel.

savemaxmem= specifies the actual memory size that the first kernel
has and this value will be used for dumping in the capture kernel.
This command line option will be passed by the kexec-tools to
capture kernel.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fixups for kernel linked at 32 MB
Michael Ellerman [Mon, 5 Dec 2005 21:49:00 +0000 (15:49 -0600)]
[PATCH] powerpc: Fixups for kernel linked at 32 MB

There's a few places where we need to fix things up for the kernel to work
if it's linked at 32MB:

 - platforms/powermac/smp.c
   To start secondary cpus on pmac we patch the reset vector, which is fine.
   Except if we're above 32MB we don't have enough bits for an absolute branch,
   it needs to relative.
 - kernel/head_64.s
    - A few branches in the cpu hold code need to load the full target address
      and do a bctr.
    - after_prom_start needs to load PHYSICAL_START as the dest address, not 0.
    - The exception prolog needs to load the low word of the target adddress,
      not just the low halfword.
    - Fixup handling of the initial stab address.
 - kernel/setup_64.c
   smp_release_cpus() needs to write 1 to the spinloop flag near 0, not 32 MB.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Reroute interrupts from 0 + offset to PHYSICAL_START + offset
Michael Ellerman [Sun, 4 Dec 2005 07:39:37 +0000 (18:39 +1100)]
[PATCH] powerpc: Reroute interrupts from 0 + offset to PHYSICAL_START + offset

Regardless of where the kernel's linked we always get interrupts at low
addresses. This patch creates a trampoline in the first 3 pages of memory,
where interrupts land, and patches those addresses to jump into the real
kernel code at PHYSICAL_START.

We also need to reserve the trampoline code and a bit more in prom.c

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Create a trampoline for the fwnmi vectors
Michael Ellerman [Sun, 4 Dec 2005 07:39:33 +0000 (18:39 +1100)]
[PATCH] powerpc: Create a trampoline for the fwnmi vectors

The fwnmi vectors can be anywhere < 32 MB, so we need to use a trampoline
for them. The kdump kernel will register the trampoline addresses, which will
then jump up to the real code above 32 MB.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add CONFIG_CRASH_DUMP
Michael Ellerman [Sun, 4 Dec 2005 07:39:23 +0000 (18:39 +1100)]
[PATCH] powerpc: Add CONFIG_CRASH_DUMP

This patch adds a Kconfig variable, CONFIG_CRASH_DUMP, which configures the
built kernel for use as a Kdump kernel.

Currently "all" this involves is changing the value of KERNELBASE to 32 MB.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years agopowerpc: Fix typo in head_64.S
Paul Mackerras [Wed, 7 Dec 2005 03:52:16 +0000 (14:52 +1100)]
powerpc: Fix typo in head_64.S

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: fix for "Update OF address parsers"
Stephen Rothwell [Wed, 7 Dec 2005 02:01:05 +0000 (13:01 +1100)]
[PATCH] powerpc: fix for "Update OF address parsers"

This allows iSeries to build again.  It just moves pci_address_to_pio
outside the #ifdef CONFIG_PPC_MULTIPLATFORM.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: minor cleanup of void ptr deref
linas [Tue, 6 Dec 2005 01:37:35 +0000 (19:37 -0600)]
[PATCH] powerpc: minor cleanup of void ptr deref

Minor: use macro to perform void pointer deref; this may someday help
avoid pointer typecasting errors.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc/8xx: Fix m8xx_wdt issues
Marcelo Tosatti [Mon, 5 Dec 2005 21:31:36 +0000 (19:31 -0200)]
[PATCH] powerpc/8xx: Fix m8xx_wdt issues

The following fixes some issues with the last mpc8xx_wdt update:

- Adds missing #include <asm/io.h>
- Use "uint __iomem" pointer for in_be32/out_be32

Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: numa placement for dynamically added memory
Mike Kravetz [Mon, 5 Dec 2005 20:06:42 +0000 (12:06 -0800)]
[PATCH] powerpc: numa placement for dynamically added memory

This places dynamically added memory within the appropriate
numa node.  A new routine hot_add_scn_to_nid() replicates most of
the memory scanning code in parse_numa_properties().

Signed-off-by: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Separate usage of KERNELBASE and PAGE_OFFSET
Michael Ellerman [Mon, 5 Dec 2005 16:24:33 +0000 (10:24 -0600)]
[PATCH] powerpc: Separate usage of KERNELBASE and PAGE_OFFSET

This patch separates usage of KERNELBASE and PAGE_OFFSET. I haven't
looked at any of the PPC32 code, if we ever want to support Kdump on
PPC we'll have to do another audit, ditto for iSeries.

This patch makes PAGE_OFFSET the constant, it'll always be 0xC * 1
gazillion for 64-bit.

To get a physical address from a virtual one you subtract PAGE_OFFSET,
_not_ KERNELBASE.

KERNELBASE is the virtual address of the start of the kernel, it's
often the same as PAGE_OFFSET, but _might not be_.

If you want to know something's offset from the start of the kernel
you should subtract KERNELBASE.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add a is_kernel_addr() macro
Michael Ellerman [Sun, 4 Dec 2005 07:39:15 +0000 (18:39 +1100)]
[PATCH] powerpc: Add a is_kernel_addr() macro

There's a bunch of code that compares an address with KERNELBASE to see if
it's a "kernel address", ie. >= KERNELBASE. The proper test is actually to
compare with PAGE_OFFSET, since we're going to change KERNELBASE soon.

So replace all of them with an is_kernel_addr() macro that does that.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Propagate regs through to machine_crash_shutdown
Michael Ellerman [Sun, 4 Dec 2005 07:39:12 +0000 (18:39 +1100)]
[PATCH] powerpc: Propagate regs through to machine_crash_shutdown

Currently machine_crash_shutdown() gets a struct pt_regs, but doesn't pass it
through to the ppc_md function, it should.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc32: fix definition of distribute_irqs
Andy Whitcroft [Tue, 29 Nov 2005 19:25:54 +0000 (19:25 +0000)]
[PATCH] powerpc32: fix definition of distribute_irqs

When we select ppc32 under the powerpc architecture we get the
error below.  This relates to defining distribute_irqs when this
configuratiom option is undefined.

      CC      arch/powerpc/sysdev/mpic.o
    .../arch/powerpc/sysdev/mpic.c: In function `mpic_setup_this_cpu':
    .../arch/powerpc/sysdev/mpic.c:788: error: `CONFIG_IRQ_ALL_CPUS'
undeclared (first use in this function)

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc32: clean up available memory models
Andy Whitcroft [Tue, 29 Nov 2005 19:20:55 +0000 (19:20 +0000)]
[PATCH] powerpc32: clean up available memory models

Clean up the currently available memory models for ppc32 under
the powerpc architecture.  We need FLATMEM for ppc32: enable it.
SPARSEMEM is not parameterised for ppc32 so disable that.  Take this
opportunity to clean up white space for FLATMEM_ENABLE.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc: removed unused variable i from code.
Otavio Salvador [Sat, 3 Dec 2005 18:42:25 +0000 (16:42 -0200)]
[PATCH] ppc: removed unused variable i from code.

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Minor numa memory code cleanup
Mike Kravetz [Wed, 30 Nov 2005 21:47:23 +0000 (13:47 -0800)]
[PATCH] powerpc: Minor numa memory code cleanup

Here is an updated version of the patch that panics if no memory is
found as Nathan suggested.  I'm still concerned that panic strings
(not just the one added here) at this stage of booting do not show
up on my system.  But, that is an issue separate from this patch.

Combine get_mem_*_cells() routines to avoid multiple memory node
lookups.  Added missing of_node_put() call.  Changed variable names
to help with some confusion as to meaning.

Signed-off-by: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years agoRevert "[PATCH] powerpc: Minor numa memory code cleanup"
Paul Mackerras [Mon, 5 Dec 2005 04:50:39 +0000 (15:50 +1100)]
Revert "[PATCH] powerpc: Minor numa memory code cleanup"

This reverts f1fdc0117004d343698b9830e141491d5ae320d1 commit.

18 years ago[PATCH] powerpc: Update OF address parsers
Benjamin Herrenschmidt [Wed, 30 Nov 2005 05:57:28 +0000 (16:57 +1100)]
[PATCH] powerpc: Update OF address parsers

This updates the OF address parsers to return the IO flags
indicating the type of address obtained. It also adds a PCI
call for converting physical addresses that hit IO space into
into IO tokens, and add routines that return the translated
addresses into struct resource

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: udbg updates
Benjamin Herrenschmidt [Wed, 30 Nov 2005 05:54:12 +0000 (16:54 +1100)]
[PATCH] powerpc: udbg updates

The udbg low level io layer has an issue with udbg_getc() returning a
char (unsigned on ppc) instead of an int, thus the -1 if you had no
available input device could end up turned into 0xff, filling your
display with bogus characters. This fixes it, along with adding a little
blob to xmon to do a delay before exiting when getting an EOF and fixing
the detection of ADB keyboards in udbg_adb.c

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: powermac adb fix udbg_adb_use_btext warning
Andy Whitcroft [Wed, 30 Nov 2005 17:35:01 +0000 (17:35 +0000)]
[PATCH] powerpc: powermac adb fix udbg_adb_use_btext warning

When compiling without BOOTX_TEXT the following warning is emitted.
Fix up the definition to only be made when required.

      CC      arch/powerpc/platforms/powermac/udbg_adb.o
    .../arch/powerpc/platforms/powermac/udbg_adb.c:41: warning:
`udbg_adb_use_btext' defined but not used

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: powermac adb fix dependency on btext_drawchar
Andy Whitcroft [Wed, 30 Nov 2005 17:34:50 +0000 (17:34 +0000)]
[PATCH] powerpc: powermac adb fix dependency on btext_drawchar

udbg_adb_init() has become dependent on btext_drawchar, even when
BOOTX_TEXT support is not selected.  This leads to the error below.
Make the check dependant on BOOTX_TEXT.

      LD      .tmp_vmlinux1
    arch/powerpc/platforms/built-in.o(.toc1+0xa40): undefined
reference to `btext_drawchar'

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: migrate common PCI hotplug code
Linas Vepstas [Fri, 4 Nov 2005 00:52:16 +0000 (18:52 -0600)]
[PATCH] powerpc: migrate common PCI hotplug code

23-rpaphp-migrate.patch (parts)

This patch moves some pci device add & remove code from the PCI
hotplug directory to the arch/powerpc/kernel directory, and cleans
it up a tad. The primary reason for this is that the code performs
some fairly generic operations that are shared with the PCI error
recovery code (living in the arch/powerpc/kernel directory).

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: make pcibios_claim_one_bus available to other code
Linas Vepstas [Fri, 4 Nov 2005 00:52:01 +0000 (18:52 -0600)]
[PATCH] powerpc: make pcibios_claim_one_bus available to other code

22-rpaphp-eliminate-dupe-code.patch (parts)

The RPAPHP code contains two routines that appear to be gratuitous
copies of very similar pci code.  In particular,

   rpaphp_claim_resource ~~ pci_claim_resource
   rpadlpar_claim_one_bus == pcibios_claim_one_bus

This makes pcibios_claim_one_bus from arch/powerpc/kernel/pci_64.c
available to the RPAPHP code.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: PCI hotplug common code elimination
Linas Vepstas [Fri, 4 Nov 2005 00:51:31 +0000 (18:51 -0600)]
[PATCH] powerpc: PCI hotplug common code elimination

20-rpaphp-eeh-cleanup.patch

This patch move some code from the rpaphp directory, to the powerpc
directory, where it should have been all along (Among other things, I
need it in the powerpc directory for the PCI error recovery.)

Please note that patch affects TWO maintainers: Paul, after applying
the powerpc part, please ask that GregKH appli the PCI part. It is safe
to have the powerpc part go in first. It would be bad to have the
PCI part go in first.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Minor numa memory code cleanup
Mike Kravetz [Tue, 29 Nov 2005 00:33:24 +0000 (16:33 -0800)]
[PATCH] powerpc: Minor numa memory code cleanup

I started to add missing of_node_put() calls to the routines that
determine the number of cells for memory.  Decided to combine the
routines instead of making separate node lookups.  Changed variable
names to help with some confusion as to meaning.

Signed-off-by: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: More serial probe fixes (#2)
Benjamin Herrenschmidt [Tue, 29 Nov 2005 00:21:59 +0000 (11:21 +1100)]
[PATCH] powerpc: More serial probe fixes (#2)

This fixes the new serial probe code with some PCI MMIO UARTs, and fixes
CHRP build with ARCH=powerpc.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc: Make ARCH=ppc build again with new syscall path
David Woodhouse [Sat, 26 Nov 2005 14:44:47 +0000 (14:44 +0000)]
[PATCH] ppc: Make ARCH=ppc build again with new syscall path

This makes ARCH=ppc build in your powerpc tree again, with the new
syscall entry/exit path.

Still doesn't actually boot on my Pegasos; the last thing I see is
'MMU:exit'. But at least it builds -- I'll look at why it doesn't boot
later, so that I can see if the mv643xx_eth actually works with ARCH=ppc
(it doesn't with ARCH=powerpc; two in every three packets I receive are
offset by 4 bytes).

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] ppc32: m8xx watchdog update
Marcelo Tosatti [Thu, 24 Nov 2005 13:32:09 +0000 (11:32 -0200)]
[PATCH] ppc32: m8xx watchdog update

This updates m8xx_wdt as follows:

1) Remove now obsolete fpos check in the write() function. The driver is
currently non functional due to this bug.

2) Use in/out macros for register access.

3) Allows m8xx_wdt to use a kernel timer instead of the builtin RTC/PIT
for keep-alive trigger (which is responsible for servicing the watchdog
until an userspace application takes over). For instance Cyclades PRxK
boards (MPC 855T based) have a non-functional internal RTC/PIT unit.
Behaviour for boards with RTC/PIT is unchaged.

4) The last change required moving the RTCSC register setting code
to a weak function which can be overriden by board specific files.
Otherwise the timer init code trashes the register making it impossible
for m8xx_wdt to detect the situation.

Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>