Commit Graph

369 Commits

Author SHA1 Message Date
Mark Nutter
5473af049d [PATCH] spufs: switchable spu contexts
Add some infrastructure for saving and restoring the context of an
SPE. This patch creates a new structure that can hold the whole
state of a physical SPE in memory. It also contains code that
avoids races during the context switch and the binary code that
is loaded to the SPU in order to access its registers.

The actual PPE- and SPE-side context switch code are two separate
patches.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-09 14:49:16 +11:00
Arnd Bergmann
67207b9664 [PATCH] spufs: The SPU file system, base
This is the current version of the spu file system, used
for driving SPEs on the Cell Broadband Engine.

This release is almost identical to the version for the
2.6.14 kernel posted earlier, which is available as part
of the Cell BE Linux distribution from
http://www.bsc.es/projects/deepcomputing/linuxoncell/.

The first patch provides all the interfaces for running
spu application, but does not have any support for
debugging SPU tasks or for scheduling. Both these
functionalities are added in the subsequent patches.

See Documentation/filesystems/spufs.txt on how to use
spufs.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-09 14:49:12 +11:00
Michael Ellerman
3d1229d6ae [PATCH] powerpc: Merge kexec
This patch merges, to some extent, the PPC32 and PPC64 kexec implementations.

We adopt the PPC32 approach of having ppc_md callbacks for the kexec functions.
The current PPC64 implementation becomes the "default" implementation for PPC64
which platforms can select if they need no special treatment.

I've added these default callbacks to pseries/maple/cell/powermac, this means
iSeries no longer supports kexec - but it never worked anyway.

I've renamed PPC32's machine_kexec_simple to default_machine_kexec, inline with
PPC64. Judging by the comments it might be better named machine_kexec_non_of,
or something, but at the moment it's the only implementation for PPC32 so it's
the "default".

Kexec requires machine_shutdown(), which is in machine_kexec.c on PPC32, but we
already have in setup-common.c on powerpc. All this does is call
ppc_md.nvram_sync, which only powermac implements, so instead make
machine_shutdown a ppc_md member and have it call core99_nvram_sync directly
on powermac.

I've also stuck relocate_kernel.S into misc_32.S for powerpc.

Built for ARCH=ppc, and 32 & 64 bit ARCH=powerpc, with KEXEC=y/n. Booted on
P5 LPAR and successfully kexec'ed.

Should apply on top of 493f25ef40.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-09 14:48:52 +11:00
Paul Mackerras
8b1af56b29 powerpc: Fix i8259 cascade on pSeries with XICS interrupt controller
It turns out that commit f9bd170a87
broke the cascade from XICS to i8259 on pSeries machines; specifically
we ended up not ever doing the EOI on the XICS for the cascade.  The
result was that interrupts from the serial ports (and presumably any
other devices using ISA interrupts) didn't get through.  This fixes
it and also simplifies the code, by doing the EOI on the XICS in the
xics_get_irq routine after reading and acking the interrupt on the
i8259.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-22 21:55:37 +11:00
Benjamin Herrenschmidt
b39f9485e6 [PATCH] powerpc: Fix clock spreading setting on some powermacs
The code that sets the clock spreading feature of the Intrepid ASIC
must not be run on some machine models or those won't boot. This
fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-12 14:16:09 +11:00
Benjamin Herrenschmidt
6184b72387 [PATCH] powerpc: Remove debug code in hash path
Some debug code wasn't properly removed from the initial 64k pages
patch, and while it's harmless, it's also slowing down significantly a
very hot code path, thus it should really be removed.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-08 16:57:47 +11:00
Paul Mackerras
6fbb618f5d powerpc/pseries: Optimize IOMMU setup
The previous commit will use the page-at-a-time hypervisor call for
setting up IOMMU entries when we are using 64k pages and setting up
one 64k page, even though that means 16 calls to the hypervisor, since
the hypervisor still works on 4k pages.  This optimizes this case by
using the multi-page IOMMU setup hypervisor call instead.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-05 14:19:10 +11:00
Michal Ostrowski
cc8b5c96a7 [PATCH] powerpc/pseries: Fix TCE building with 64k pagesize
Must adjust tcenum and npages by TCE_PAGE_FACTOR to convert between
64KB pages and TCE (4K) pages.  (This is done in other places, except
for this one location.)

Signed-off-by: Michal Ostrowski <mostrows at watson ibm com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-02 14:51:22 +11:00
Olof Johansson
91f14480a5 [PATCH] powerpc: update my email address
Email address update, changing old work address to personal (permanent)
one.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-23 21:23:20 +11:00
Paul Mackerras
54c4e6b5fe powerpc: Fix bug in timebase synchronization on 32-bit SMP powermac
We were using udelay in the loop on the primary cpu waiting for the
secondary cpu to take the timebase value.  Unfortunately now that
udelay uses the timebase, and the timebase is stopped at this point,
the udelay never terminated.  This fixes it by not using udelay, and
increases the number of loops before we time out to compensate.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-19 21:24:55 +11:00
Paul Mackerras
44aedfe7de powerpc: Fix a couple of compile warnings for 32-bit compiles
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-18 15:54:12 +11:00
Paul Mackerras
49e16b7bec powerpc: time-of-day fixes for 32-bit CHRP systems
This makes 32-bit CHRP systems use the RTAS time-of-day routines if
available.  It fixes a bug in the RTAS time-of-day routines where they
were storing a 64-bit timebase value in an unsigned long by making
those variables u64.  Also, the direct-access time-of-day routines
had the wrong convention for the month and year in the struct rtc_time.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-18 15:52:38 +11:00
Paul Mackerras
6146eed1e9 powerpc: Fix compile error on pSeries arising from delay.h changes
pseries_dedicated_idle() was using __get_tb which used to be defined
in asm/delay.h.  Change it to use get_tb from asm/time.h, which is
in fact exactly the same thing.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-18 15:47:18 +11:00
Segher Boessenkool
a097a35c9a [PATCH] powerpc: Maple: request I/O resource.
Reserve the Maple RTC I/O resource.  Needed now we use genrtc.

Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-18 13:31:20 +11:00
David Woodhouse
1e28a7ddd3 [PATCH] Avoid use of uninitialised spinlock in EEH.
If the kernel supports both G5 and pSeries, and CONFIG_EEH is enabled,
eeh_init() is (quite reasonably) never called when we boot on a G5. Yet
eeh_check_failure() still gets called. We should avoid doing that if
!eeh_subsystem_enabled.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-17 16:53:38 +11:00
Olof Johansson
950fc0025f [PATCH] powerpc: add new powerbooks to feature table
Hi,

The previous PowerBook patch didn't contain the feature table updates
for ARCH=powerpc. Here they are.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-16 13:52:06 +11:00
Benjamin Herrenschmidt
b5166cc252 [PATCH] powerpc: pci_64 fixes & cleanups
I discovered that in some cases (PowerMac for example) we wouldn't
properly map the PCI IO space on recent kernels. In addition, the code
for initializing PCI host bridges was scattered all over the place with
some duplication between platforms.

This patch fixes the problem and does a small cleanup by creating a
pcibios_alloc_controller() in pci_64.c that is similar to the one in
pci_32.c (just takes an additional device node argument) that takes care
of all the grunt allocation and initialisation work. It should work for
both boot time and dynamically allocated PHBs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-16 13:29:46 +11:00
Michael Ellerman
f9e4ec57c6 [PATCH] powerpc: More debugging fixups
Add a few more missing includes of udbg.h

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-16 13:29:40 +11:00
Paul Mackerras
ba76cd575f powerpc: Remove __init from a function used in suspend/resume.
Suspend/resume on powermacs uses the pmac_get_boot_time function,
so it can't be marked as __init.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-15 11:17:09 +11:00
Paul Mackerras
7568cb4ef6 powerpc: Move most remaining ppc64 files over to arch/powerpc
Also deletes files in arch/ppc64 that are no longer used now that
we don't compile with ARCH=ppc64 any more.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-14 17:30:17 +11:00
Paul Mackerras
821077b261 Merge git://oak/home/sfr/kernels/iseries/work 2005-11-14 17:15:45 +11:00
Stephen Rothwell
d7867959e7 powerpc: iSeries build fixes
log_plpar_hcall_return is only used on PPC_PSERIES, so move
it closer to its users and inside ifdef CONFIG_PPC_PSERIES.

remove the last vestiges of systemcfg in iSeries.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-14 17:14:51 +11:00
Benjamin Herrenschmidt
3136254ca5 [PATCH] powerpc: kill ppc64 rtc.c, use genrtc instead
This moves the rtas RTC callbacks to rtas-rtc.c in arch/powerpc/kernel,
and kills the rest of arch/ppc64/kernel/rtc.c which was just a duplicate
of the genrtc functionality. Also enable build of genrtc for
CONFIG_PPC64 (it just works are we already have the required callbacks)
and enable it in all defconfigs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-14 16:36:08 +11:00
Benjamin Herrenschmidt
0c37ec2aa8 [PATCH] powerpc: vdso fixes (take #2)
This fixes various errors in the new functions added in the vDSO's,
I've now verified all functions on both 32 and 64 bits vDSOs. It also
fix a sign extension bug getting the initial time of day at boot that
could cause the monotonic clock value to be completely on bogus for
64 bits applications (with either the vDSO or the syscall) on
powermacs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-14 16:35:58 +11:00
Michael Ellerman
c5e24354ef [PATCH] powerpc: Turn cpu_irq_down into kexec_cpu_down
We currently have a ppc_md member called cpu_irq_down, which disables IRQs
for the cpu in question. The only caller of cpu_irq_down is the kexec code.

On pSeries we need to do more than just teardown IRQs at kexec time, so rename
the ppc_md member to kexec_cpu_down and expand it. The pSeries code needs to
know, and other platforms might too, whether we're doing a crash shutdown (ie.
panicking) or a regular kexec, so add a flag for that.

The pSeries implementation of kexec_cpu_down does an unregister VPA call, which
tells the Hypervisor to stop writing stuff into our pacas. Without this we can
get weird memory corruption bugs when we kexec, caused by the Hypervisor
writing into the first kernel's pacas which happens to be somewhere interesting
in the second kernel's memory.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-14 16:33:09 +11:00
Stephen Rothwell
d9ae2bad5c powerpc: make iSeries use generic virtual irq mapping
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-14 14:44:24 +11:00
Paul Mackerras
271c3f35bd powerpc: Fix some compile problems with the VDSO stuff
We needed the VDSO symbols in the arch/ppc asm-offsets.c, and there
were a few usages of _systemcfg still left lying around.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-11 23:04:40 +11:00
Anton Blanchard
50bcfec19f [PATCH] ppc64: Remove debug boot message
We have been printing the raw ppc64_firmware_features during boot. Since
we can work it out from the device tree, lets remove it.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-11 22:20:04 +11:00
Linas Vepstas
d9564ad114 [PATCH] ppc64: mark failed devices
17-eeh-slot-marking-bug.patch

A device that experiences a PCI outage may be just one deivce out
of many that was affected. In order to avoid repeated reports of
a failure, the entire tree of affected devices should be marked
as failed. This patch marks up the entire tree.

Signed-off-by: Linas Vepstas <linas@linas.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 16:00:32 +11:00
Paul Mackerras
0c95fbb256 Merge git://oak/home/sfr/kernels/iseries/work 2005-11-10 15:54:00 +11:00
Paul Mackerras
49b09853df powerpc: Move some extern declarations from C code into headers
This also make klimit have the same type on 32-bit as on 64-bit,
namely unsigned long, and defines and initializes it in one place.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 15:53:40 +11:00
Benjamin Herrenschmidt
0f34f49029 [PATCH] ppc64: fix PCI IO mapping
phbs_remap_io(), which maps the PCI IO space into the kernel virtual space,
is called too early on powermac, and thus doesn't work.

This fixes it by removing the call from all platforms and putting it back
into the ppc64 common code where it belongs, after the actual probing of
the bus.

That means that before that call, only the ISA IO space (if any) is mapped,
any PIO access (from quirks for example) will fail. This happens not to be
a problem for now, but we'll have to rework that code if it becomes one in
the future.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 15:32:37 +11:00
Stephen Rothwell
676e2497f8 powerpc: remove some warnings when building iSeries
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-10 14:40:43 +11:00
Paul Mackerras
094fe2e712 powerpc: Fixes for 32-bit powermac SMP
A couple of bugs crept in with the merge of smp.c...

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 14:26:12 +11:00
Paul Mackerras
0a5cab42a1 powerpc: Fix compile error in EEH code with gcc4
Gcc 4 doesn't like being told to inline a recursive function...

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 14:23:54 +11:00
Paul Mackerras
799d6046d3 [PATCH] powerpc: merge code values for identifying platforms
This patch merges platform codes.  systemcfg->platform is no longer used,
systemcfg use in general is deprecated as much as possible (and renamed
_systemcfg before it gets completely moved elsewhere in a future patch),
_machine is now used on ppc64 along as ppc32.  Platform codes aren't gone
yet but we are getting a step closer. A bunch of asm code in head[_64].S
is also turned into C code.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 13:37:51 +11:00
David Gibson
3ddfbcf19b [PATCH] powerpc: Consolidate asm compatibility macros
This patch consolidates macros used to generate assembly for
compatibility across different CPUs or configs.  A new header,
asm-powerpc/asm-compat.h contains the main compatibility macros.  It
uses some preprocessor magic to make the macros suitable both for use
in .S files, and in inline asm in .c files.  Headers (bitops.h,
uaccess.h, atomic.h, bug.h) which had their own such compatibility
macros are changed to use asm-compat.h.

ppc_asm.h is now for use in .S files *only*, and a #error enforces
that.  As such, we're a lot more careless about namespace pollution
here than in asm-compat.h.

While we're at it, this patch adds a call to the PPC405_ERR77 macro in
futex.h which should have had it already, but didn't.

Built and booted on pSeries, Maple and iSeries (ARCH=powerpc).  Built
for 32-bit powermac (ARCH=powerpc) and Walnut (ARCH=ppc).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 13:10:38 +11:00
David Gibson
f6d3577da1 [PATCH] powerpc: Move scanlog.c to platforms/pseries
scanlog.c is only compiled on pSeries.  Thus, this patch moves it to
platforms/pseries.

Built and booted on pSeries LPAR (ARCH=powerpc and ARCH=ppc64).  Built
for iSeries (ARCH=powerpc).

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 13:09:27 +11:00
Paul Mackerras
e130bedb7c Merge git://oak/home/sfr/kernels/iseries/work 2005-11-10 13:08:55 +11:00
Paul Mackerras
a23414beb6 ppc/powerpc: workarounds for old Open Firmware versions
This adds code to work around some problems with old versions of
Open Firmware, such as on the early powermacs (7500 etc.) and the
"Longtrail" CHRP machine.  On these machines we have to claim
the physical and virtual address ranges explicitly when claiming
memory and then set up a V->P mapping.

The Longtrail has more problems: setprop doesn't work, and we have
to set an "allow-reclaim" variable to 0 in order to get claim on
physical memory ranges to fail if the memory is already claimed.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 12:00:55 +11:00
Linas Vepstas
8b553f32db [PATCH] ppc64: Save & restore of PCI device BARS
14-eeh-device-bar-save.patch

After a PCI device has been resest, the device BAR's and other config
space info must be restored to the same state as they were in when
the firmware first handed us this device.  This will allow the
PCI device driver, when restarted, to correctly recognize and set up
the device.

Tis patch saves the device config space as early as reasonable after
the firmware has handed over the device.  Te state resore funcion
is inteded for use by the EEH recovery routines.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 11:38:14 +11:00
Linas Vepstas
6dee3fb940 [PATCH] ppc64: PCI reset support routines
13-eeh-recovery-support-routines.patch

EEH Recovery support routines

This patch adds routines required to help drive the recovery of
EEH-frozen slots.  The main function is to drive the PCI #RST
signal line high for a qurter of a second, and then allow for
a second & a half of settle time.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 11:38:11 +11:00
Linas Vepstas
172ca92618 [PATCH] ppc64: PCI error event dispatcher
12-eeh-event-dispatcher.patch

ppc64: EEH Recovery dispatcher thread

This patch adds a mechanism to create recovery threads when an
EEH event is received.  Since an EEH freeze state may be detected
within an interrupt context, we need to get out of the interrupt
context before starting recovery. This dispatcher does this in
two steps: first, it uses a workqueue to get out, and then
lanuches a kernel thread, so that the recovery routine can
sleep for exteded periods without upseting the keventd.

A kernel thread is created with each EEH event, rather than
having one long-running daemon started at boot time.  This is
because it is anticipated that EEH events will be very rare
(very very rare, ideally) and so its pointless to cluter the
process tables with a daemon that will almost never run.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 11:38:05 +11:00
Linas Vepstas
7f79da7acc [PATCH] ppc64: move eeh.c to powerpc directory from ppc64
11-eeh-move-to-powerpc.patch

Move arch/ppc64/kernel/eeh.c to arch//powerpc/platforms/pseries/eeh.c
No other changes (except for Makefile to build it)

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-10 11:37:59 +11:00
Nick Piggin
64c7c8f885 [PATCH] sched: resched and cpu_idle rework
Make some changes to the NEED_RESCHED and POLLING_NRFLAG to reduce
confusion, and make their semantics rigid.  Improves efficiency of
resched_task and some cpu_idle routines.

* In resched_task:
- TIF_NEED_RESCHED is only cleared with the task's runqueue lock held,
  and as we hold it during resched_task, then there is no need for an
  atomic test and set there. The only other time this should be set is
  when the task's quantum expires, in the timer interrupt - this is
  protected against because the rq lock is irq-safe.

- If TIF_NEED_RESCHED is set, then we don't need to do anything. It
  won't get unset until the task get's schedule()d off.

- If we are running on the same CPU as the task we resched, then set
  TIF_NEED_RESCHED and no further action is required.

- If we are running on another CPU, and TIF_POLLING_NRFLAG is *not* set
  after TIF_NEED_RESCHED has been set, then we need to send an IPI.

Using these rules, we are able to remove the test and set operation in
resched_task, and make clear the previously vague semantics of
POLLING_NRFLAG.

* In idle routines:
- Enter cpu_idle with preempt disabled. When the need_resched() condition
  becomes true, explicitly call schedule(). This makes things a bit clearer
  (IMO), but haven't updated all architectures yet.

- Many do a test and clear of TIF_NEED_RESCHED for some reason. According
  to the resched_task rules, this isn't needed (and actually breaks the
  assumption that TIF_NEED_RESCHED is only cleared with the runqueue lock
  held). So remove that. Generally one less locked memory op when switching
  to the idle thread.

- Many idle routines clear TIF_POLLING_NRFLAG, and only set it in the inner
  most polling idle loops. The above resched_task semantics allow it to be
  set until before the last time need_resched() is checked before going into
  a halt requiring interrupt wakeup.

  Many idle routines simply never enter such a halt, and so POLLING_NRFLAG
  can be always left set, completely eliminating resched IPIs when rescheduling
  the idle task.

  POLLING_NRFLAG width can be increased, to reduce the chance of resched IPIs.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Con Kolivas <kernel@kolivas.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:56:33 -08:00
Nick Piggin
5bfb5d690f [PATCH] sched: disable preempt in idle tasks
Run idle threads with preempt disabled.

Also corrected a bugs in arm26's cpu_idle (make it actually call schedule()).
How did it ever work before?

Might fix the CPU hotplugging hang which Nigel Cunningham noted.

We think the bug hits if the idle thread is preempted after checking
need_resched() and before going to sleep, then the CPU offlined.

After calling stop_machine_run, the CPU eventually returns from preemption and
into the idle thread and goes to sleep.  The CPU will continue executing
previous idle and have no chance to call play_dead.

By disabling preemption until we are ready to explicitly schedule, this bug is
fixed and the idle threads generally become more robust.

From: alexs <ashepard@u.washington.edu>

  PPC build fix

From: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>

  MIPS build fix

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:56:33 -08:00
Stephen Rothwell
756e7104fe powerpc: merge irq.c
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-09 18:07:45 +11:00
Stephen Rothwell
d4be4f37d9 ppc64: remove ppc_irq_dispatch_handler
Use __do_IRQ instead.  The only difference is that every controller
is now assumed to have an end() routine (only xics_8259 did not).

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-09 16:19:53 +11:00
Stephen Rothwell
5a7b3ff467 ppc64: allow iSeries to use IRQSTACKS again
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-09 15:07:16 +11:00
Paul Mackerras
22358ea8e1 powerpc: Fix typo in pmac_cpufreq_resume
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-08 12:13:38 +11:00
Benjamin Herrenschmidt
4350147a81 [PATCH] ppc64: SMU based macs cpufreq support
CPU freq support using 970FX powertune facility for iMac G5 and SMU
based single CPU desktop.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-08 11:17:34 +11:00
Paul Mackerras
24bfb00123 Merge ../linux-2.6 2005-11-08 11:14:20 +11:00
Jesper Juhl
b2325fe1b7 [PATCH] kfree cleanup: arch
This is the arch/ part of the big kfree cleanup patch.

Remove pointless checks for NULL prior to calling kfree() in arch/.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Acked-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:54:06 -08:00
Paul Mackerras
c613523455 Merge ../linux-2.6 2005-11-07 14:42:09 +11:00
Michael Ellerman
76032de898 [PATCH] powerpc: Make ppc_md.set_dabr non 64-bit specific
Define ppc_md.set_dabr for both 32 + 64 bit. Cleanup the implementation for
pSeries also, it was needlessly complex. Now we just do two firmware tests at
setup time, and use one of two functions, rather than using one function and
testing on every call.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-07 13:31:13 +11:00
Paul Mackerras
2249ca9d60 powerpc: Various UP build fixes
Mostly this involves adding #include <asm/smp.h>, since that defines
things like boot_cpuid[_phys] and [gs]et_hard_smp_processor_id, which
are SMP-related but still needed on UP.  This incorporates fixes
posted by Olof Johansson and Heikki Lindholm.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-07 13:18:13 +11:00
David Gibson
dcad47fc42 [PATCH] powerpc: Kill ppcdebug
The ancient ppcdebug/PPCDBG mechanism is now only used in two places.
First, in the hash setup code, one of the bits allows the size of the
hash table to be reduced by a factor of 8 - which would be better
accomplished with a command line option for that purpose.  The other
was a bunch of bus walking related messages in the iSeries code, which
would seem to be insufficient reason to keep the mechanism.

This patch removes the last traces of this mechanism.

Built and booted on iSeries and pSeries POWER5 LPAR (ARCH=powerpc).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-07 12:37:45 +11:00
Benjamin Herrenschmidt
3c726f8dee [PATCH] ppc64: support 64k pages
Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel
base page size to 64K.  The resulting kernel still boots on any
hardware.  On current machines with 4K pages support only, the kernel
will maintain 16 "subpages" for each 64K page transparently.

Note that while real 64K capable HW has been tested, the current patch
will not enable it yet as such hardware is not released yet, and I'm
still verifying with the firmware architects the proper to get the
information from the newer hypervisors.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-06 16:56:47 -08:00
Paul Mackerras
5ad5707861 powerpc: Merge smp.c and smp.h
This also moves setup_cpu_maps to setup-common.c (calling it
smp_setup_cpu_maps) and uses it on both 32-bit and 64-bit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-05 10:33:55 +11:00
Michael Ellerman
dc3a9efb5e Merge with Paulus 2005-11-04 12:12:52 +11:00
Michael Ellerman
40765d2b8b powerpc: Cleanup vpa code
register_vpa() doesn't actually do a VPA register call it just uses the flags
you pass it, so rename it to vpa_call() to be clearer.

We can then define register_vpa() and unregister_vpa() which are both simple
wrappers around vpa_call(). (we'll need unregister_vpa() for kexec soon)

We can then cleanup vpa_init(), and because vpa_init() is only called from
platforms/pseries we remove the definition in asm-ppc64/smp.h.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 19:34:38 +11:00
David Woodhouse
91c33d28cd [PATCH] powerpc: always init nvram on 64-bit powermac
Currently there is no Kconfig symbol to indicate that we want nvram
support on 64-bit kernels; it's assumed we always want it, so make
the powermac setup code always initialize the pmac nvram code if
64-bit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:56:13 +11:00
John Rose
8902e87f1f [PATCH] ppc64: Fix add notifier crashes
The extraction of PCI stuff from struct device_node left some false
assumptions in notifier code.  As a result, dynamic add crashes when
non-PCI nodes are added.  This patch fixes these assumptions.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:53:49 +11:00
Michael Ellerman
a121872032 powerpc: Move plpar_wrappers.h into arch/powerpc/platforms/pseries
Move plpar_wrappers.h into arch/powerpc/platforms/pseries, fixup white space,
and update callers.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:33:31 +11:00
Michael Ellerman
cab0af98df powerpc: Make set_dabr() a ppc_md function
Move pSeries specific code in set_dabr() into a ppc_md function, this will
allow us to keep plpar_wrappers.h private to platforms/pseries.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:30:49 +11:00
Paul Mackerras
f4fcbbe9a7 powerpc: Merge remaining RTAS code
This moves rtas-proc.c and rtas_flash.c into arch/powerpc/kernel, since
cell wants them as well as pseries (and chrp can use rtas-proc.c too,
at least in principle).  rtas_fw.c is gone, with its bits moved into
rtas_flash.c and rtas.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 14:41:19 +11:00
Paul Mackerras
398382999b powerpc: Compile fixes for chrp/nvram.c
Include asm/rtas.h for prototype for rtas_call etc., and make the
`done' variable unsigned int since that's what rtas_call wants.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 19:58:12 +11:00
Paul Mackerras
300230dcba powerpc: include <linux/platform_device.h> in pegasos_eth.c
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 19:57:22 +11:00
Stephen Rothwell
2be7a90675 Merge Paulus' tree 2005-11-02 18:15:43 +11:00
Paul Mackerras
fbf1769d08 powerpc: include lmb.h in arch/powerpc/platforms/powermac/setup.c
since it uses the lmb stuff in one place.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 16:07:22 +11:00
Stephen Rothwell
aaf8a7a294 Merge iSeries include file move 2005-11-02 16:06:03 +11:00
David Gibson
f11b7bd88f [PATCH] powerpc: Move naca.h to platforms/iseries
These days, the NACA only exists on iSeries.  Therefore, this patch
moves naca.h from include/asm-ppc64 to arch/powerpc/platforms/iseries.
There was one file including naca.h outside of platforms/iseries -
arch/ppc64/kernel/udbg_scc.c.  However, that's obviously a hangover
from older days.  The include is not necessary, so this patch simply
removes it.

Built and booted on iSeries, built for G5 (which uses udbg_scc.o).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 16:05:53 +11:00
Kelly Daly
b420677870 merge filename and modify references to iseries/vio.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 15:13:57 +11:00
Kelly Daly
bbc8b628b0 merge filename and modify references to iSeries/mf.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 15:10:38 +11:00
Paul Mackerras
a000503471 powerpc: exclude powerbook sleep code with CONFIG_PPC64 and CONFIG_PM
We were getting powerbook sleep code included, and giving compile
errors, with CONFIG_PM=y on a 64-bit build.  This excludes that code
so the kernel will compile.  One day BenH will implement on sleep on
the G5...

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 15:08:17 +11:00
Paul Mackerras
19fa17e5b1 powerpc: Use rtas_call not call_rtas in CHRP code
The nvram driver imported from the ppc code uses call_rtas, but
rtas_call is the name we are using in merged code (since ppc64 used
that name, and it uses far more RTAS calls than ppc32).

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 15:04:26 +11:00
Kelly Daly
c43a55ff4e merge filename and modify references to iseries/lpar_map.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 15:02:47 +11:00
Kelly Daly
59ce20bb34 merge filename and modify references to iseries/it_lp_reg_save.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 14:49:47 +11:00
Kelly Daly
8875ccfb7a merge filename and modify references to iseries/it_lp_queue.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 14:13:34 +11:00
Kelly Daly
f218aab5cf merge filename and modify references to iseries/it_lp_naca.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 13:51:41 +11:00
Kelly Daly
7b487bb801 merge filename and modify references to iseries/it_exp_vpd_panel.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 13:48:25 +11:00
Kelly Daly
1ec65d76f3 merge filename and modify references to iseries/hv_types.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 13:46:07 +11:00
Kelly Daly
e45423eac2 merge filename and modify references to iseries/hv_lp_event.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 12:08:31 +11:00
Kelly Daly
15b1718948 merge filename and modify reference to iseries/hv_lp_config.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 11:55:28 +11:00
Kelly Daly
8021b8a776 merge filename and modify references to iseries/hv_call_xm.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 11:41:12 +11:00
Kelly Daly
50592f5d2a merge filename and modify references to iseries/hv_call_sc.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 11:37:22 +11:00
Kelly Daly
c0a8d05c8a merge filename and modify references to iseries/hv_call_event.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-02 11:11:11 +11:00
Paul Mackerras
a39dbcf71e powerpc: Fix pseries (64-bit) build
A recent commit that removed rtas-fw.h and moved its contents to
include/asm-powerpc/rtas.h forgot to also remove the inclusion of
it in arch/powerpc/platforms/pseries/setup.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-01 22:37:47 +11:00
Arnd Bergmann
811d4176f4 [PATCH] powerpc: move arch/ppc64/kernel/bpa* to arch/powerpc/platforms/cell
This patch simply moves files over to arch/powerpc without making
any changes to them.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-01 21:03:07 +11:00
Arnd Bergmann
e9add2eeb1 [PATCH] powerpc: move rtas_fw.c out of platforms/pseries
Cell uses the same code as pSeries for flashing the firmware
through rtas, so the implementation should not be part of
platforms/pseries.

Put it into arch/powerpc/kernel instead.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-01 21:02:59 +11:00
Arnd Bergmann
19fe04755a [PATCH] powerpc: create a new arch/powerpc/platforms/cell/smp.c
During the conversion to the merge tree, the Cell specific
SMP initialization was removed from the pSeries code.

This creates a new Cell specific SMP implementation file.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-01 21:02:53 +11:00
Kelly Daly
1da4403788 merge filename and modify references to iseries/hv_call.h
Signed-off-by: Kelly Daly <kelly@au.ibm.com>
2005-11-01 16:59:20 +11:00
Stephen Rothwell
bec7c458b3 powerpc: make mem= work on iSeries again
By parsing the command line earlier, we can add the mem= value to the
flattened device tree and let the generic code sort out the memory limit
for us.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-01 14:34:30 +11:00
Paul Mackerras
cf00a8d18b powerpc: Fix bug arising from having multiple memory_limit variables
We had a static memory_limit in prom.c, and then another one defined
in setup_64.c and used in numa.c, which resulted in the kernel crashing
when mem=xxx was given on the command line.  This puts the declaration
in system.h and the definition in mem.c.  This also moves the
definition of tce_alloc_start/end out of setup_64.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-31 13:07:02 +11:00
Paul Mackerras
0cb7b2afd7 powerpc: Merge maple support code to arch/powerpc/platforms/maple
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 22:07:56 +10:00
Nicolas DET
dd03d25fac [PATCH] chrp_pegasos_eth: Added Marvell Discovery II SRAM support
Add proper entry to support the Marvell MV64361 (Marvell Discovery II)
SRAM.

This feature may be used by the mv643xx_eth driver.

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

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 14:35:00 +10:00
David Gibson
007e8f51b2 [PATCH] powerpc: Move xics.[ch] into platforms/pseries
This patch moves the XICS interrupt controller code into the
platforms/pseries directory, since it only appears on pSeries
machines.  If it ever appears on some other machine we can move it to
sysdev, although xics.c itself will need a bunch of changes in that
case to remove pSeries specific assumptions.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-28 16:39:19 +10:00
Paul Mackerras
bfab1019b7 powerpc: Fix new-world powermac detection
My G5 was being reported as an OldWorld in /proc/cpuinfo, which is
obviously not right... :)

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 22:45:33 +10:00
Paul Mackerras
80579e1f4a powerpc: 32-bit CHRP SMP fixes
Untested, but "should" work...  at least this way it compiles.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-27 22:42:04 +10:00
Paul Mackerras
bbd0abda9c powerpc: Merge 32-bit CHRP support.
SMP still needs more work but UP gets as far as starting userspace
at least.  This uses the 64-bit-style code for spinning up the cpus.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 21:45:56 +10:00
Paul Mackerras
303d72a000 powerpc: Don't limit pmac_get_rtc_time to return only positive values
If the machine's clock is set to a bogus value, this check resulted
in userland waiting effectively forever for the RTC value to change,
so remove the check.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 17:22:33 +10:00
Paul Mackerras
830825d6c3 powerpc: Pull out MPC106 (grackle) initialization code into its own file
This is so that the 32-bit CHRP code can use it.  The MPC106
initialization code is now in arch/powerpc/sysdev/grackle.c and
is controlled by CONFIG_PPC_MPC106.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 17:16:38 +10:00
Paul Mackerras
033ef338b6 powerpc: Merge rtas.c into arch/powerpc/kernel
This splits arch/ppc64/kernel/rtas.c into arch/powerpc/kernel/rtas.c,
which contains generic RTAS functions useful on any CHRP platform,
and arch/powerpc/platforms/pseries/rtas-fw.[ch], which contain
some pSeries-specific firmware flashing bits.  The parts of rtas.c
that are to do with pSeries-specific error logging are protected
by a new CONFIG_RTAS_ERROR_LOGGING symbol.  The inclusion of rtas.o
is controlled by the CONFIG_PPC_RTAS symbol, and the relevant
platforms select that.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 17:05:24 +10:00
Paul Mackerras
f9bd170a87 powerpc: Merge i8259.c into arch/powerpc/sysdev
This changes the parameters for i8259_init so that it takes two
parameters: a physical address for generating an interrupt
acknowledge cycle, and an interrupt number offset.  i8259_init
now sets the irq_desc[] for its interrupts; all the callers
were doing this, and that code is gone now.  This also defines
a CONFIG_PPC_I8259 symbol to select i8259.o for inclusion, and
makes the platforms that need it select that symbol.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 16:47:42 +10:00
Paul Mackerras
25635c71e4 ppc: Use the indirect_pci.c from arch/powerpc/sysdev
This defines a CONFIG_INDIRECT_PCI symbol to control whether it
gets used or not, and fixes the Kconfig to select that symbol for
platforms that need it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 16:36:55 +10:00
Michael Ellerman
d9953105ce [PATCH] powerpc: Move ras.c into arch/powerpc/platforms/pseries
ras.o is only built for CONFIG_PPC_PSERIES, so move it into
arch/powerpc/platforms/pseries. Update Makefiles to suit.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 16:00:29 +10:00
Kumar Gala
6d7f58b04d [PATCH] powerpc: Some minor cleanups to setup_32.c
* Removed of_show_percpuinfo and just report CPU frequency in generic
  show_cpuinfo code.
* Killed OCP and PPC_SYS related code which doesn't belong in the
  merge tree

Signed-off-by: Kumar K. Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-26 15:55:53 +10:00
Stephen Rothwell
7c7eb28481 powerpc: iseries: Fix a bogus comment
A comment in lpevents.c refers to code that's actually in HvCallEvent.h.
The code in HvCallEvent.h is pretty obvious, so just remove the comment
altogether.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-24 15:42:24 +10:00
Paul Mackerras
a575b80717 powerpc: Run on old powermacs.
Old powermacs have a number of differences from current machines:
- there is no interrupt tree in the device tree, just interrupt
  or AAPL,interrupt properties
- the chosen node in the device tree is called /chosen@0
- the OF claim method doesn't map the memory, so we have to do
  an explicit map call as well
- there is no /chosen/cpu property on SMP machines
- the NVRAM isn't structured as a set of partitions.

This adapts the merged powermac support code to cope with these
issues.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-23 17:23:21 +10:00
Paul Mackerras
985990137e Merge changes from linux-2.6 by hand 2005-10-22 16:51:34 +10:00
Paul Mackerras
8342894475 ppc64: Use arch/powerpc/platforms/powermac for powermac build.
This switches the ARCH=ppc64 build to use arch/powerpc/platforms/powermac
instead of arch/ppc64/kernel/pmac*, and deletes the latter set of files.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-22 16:06:27 +10:00
Paul Mackerras
35499c0195 powerpc: Merge in 64-bit powermac support.
This brings in a lot of changes from arch/ppc64/kernel/pmac_*.c to
arch/powerpc/platforms/powermac/*.c and makes various minor tweaks
elsewhere.  On the powermac we now initialize ppc_md by copying
the whole pmac_md structure into it, which required some changes in
the ordering of initializations of individual fields of it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-22 16:02:39 +10:00
Paul Mackerras
5d14a18d59 powerpc: Fix some bugs in the new merged time code
I had the sense of the test for when to use the old 601-style RTC
registers inverted.  pmac_calibrate_decr and via_calibrate_decr
weren't setting ppc_tb_freq, on which all the further calculations
depended.  Lastly, update_gtod was losing the top 32 bits of
the new tb_to_xs value.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 22:33:06 +10:00
Paul Mackerras
0458060c1c ppc64: Move init_boot_text call and conswitchp init into setup_arch
This way they get done in one place for all platforms, and it is
more consistent with what ppc32 does.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 21:00:20 +10:00
Paul Mackerras
399fe2bdd3 ppc: rename pci_assign_all_busses to pci_assign_all_buses
... for consistency with ppc64 and to make merging easier.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 20:57:05 +10:00
Paul Mackerras
0dd194d02d powerpc: Fix places where ppc_md.show_[per]cpuinfo was treated as int
I missed a few places where ppc code was still assuming that the
ppc_md.show_[per]cpuinfo functions returned int.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 20:48:19 +10:00
Paul Mackerras
d8699e65c6 ppc64: Change ppc_md.get_cpuinfo to ppc_md.show_cpuinfo
... for consistency with ppc32; also add in ppc32's show_percpuinfo
function.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 17:02:01 +10:00
Paul Mackerras
f2783c1500 powerpc: Merge time.c and asm/time.h.
We now use the merged time.c for both 32-bit and 64-bit compilation
with ARCH=powerpc, and for ARCH=ppc64, but not for ARCH=ppc32.
This removes setup_default_decr (folds its function into time_init)
and moves wakeup_decrementer into time.c.  This also makes an
asm-powerpc/rtc.h.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-20 09:23:26 +10:00
Paul Mackerras
143a1dec7e powerpc: Merge machdep.h
A few things change for consistency between ppc32 and ppc64:
idle functions return void; *_get_boot_time functions return
unsigned long (i.e. time_t) rather than filling in a struct rtc_time
(since that's useful to the callers and easier for pmac to
generate); *_get_rtc_time and *_set_rtc_time functions take
a struct rtc_time; irq_canonicalize is gone; nvram_sync returns
void.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-19 23:11:21 +10:00
Paul Mackerras
7ed476d17f ppc: Minor smp changes for consistency with ppc64
This makes platform code use the smp_ops variable directly instead
of ppc_md.smp_ops, removes the two unused `data' and `wait' arguments
from the *_message_pass() functions, and removes the call to the
never-implemented smp_ops->space_timers() function.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-19 21:44:51 +10:00
Stephen Rothwell
7dffb72028 ppc32: use L1_CACHE_SHIFT/L1_CACHE_BYTES
instead of L1_CACHE_LINE_SIZE and LG_L1_CACHE_LINE_SIZE

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-17 11:50:32 +10:00
Stephen Rothwell
c6d2ea92d1 powerpc: move iSeries/HvCallPci.h to platforms/iseries/call_pci.h
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-14 17:16:17 +10:00
Stephen Rothwell
0e29bb1a4e powerpc: move iSeries/HvCallHpt.h to platforms/iseries/call_hpt.h
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-14 17:09:16 +10:00
Stephen Rothwell
20f48ccfa0 powerpc: eliminate DsaAddr from pci_dn
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-14 16:49:58 +10:00
Stephen Rothwell
bffa8fc383 powerpc: remove ISERIES_[SUB]BUS macros
This allows us to simplify a couple of things.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-14 15:06:10 +10:00
Stephen Rothwell
426c1a11a6 powerpc: move iSeries/iSeries_pci.h to platforms/iseries
The only real user of this file outside platforms/iseries was
drivers/net/iseries_veth.c but all it wanted was ISERIES_HV_ADDR()
so we move that to abs_addr.h (and lowercase it).

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-14 14:51:42 +10:00
Paul Mackerras
5629d41d5c powerpc: Bring in some changes made to arch/ppc and include/asm-ppc64
Recent commits upstream have changed files which are currently
duplicated in arch/powerpc and include/asm-powerpc.  This updates
them with the corresponding changes.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-12 17:01:50 +10:00
Paul Mackerras
b6ec995a21 Merge from Linus' tree 2005-10-12 14:43:32 +10:00
Stephen Rothwell
3a5f8c5f78 powerpc: make iSeries boot again
On ARCH=ppc64 we were getting htab_hash_mask recalculated
to the correct value for our particular machine by accident.
In the merge tree, that code was commented out, so htab_hash_mask
was being corrupted.

We now set ppc64_pft_size instead which gets htab_has_mask
calculated correctly for us later.  We should put an
ibm,pft-size property in the device tree at some point.

Also set -mno-minimal-toc in some makefiles.
Allow iSeries to configure PROC_DEVICETREE.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-12 10:58:00 +10:00
Stephen Rothwell
f255f0dd1b powerpc: pci_dn's should point to their device_node's
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-12 10:57:45 +10:00
Paul Mackerras
fd582ec88e ppc: Various minor compile fixes
This fixes up a variety of minor problems in compiling with ARCH=ppc
arising from using the merged versions of various header files.
A lot of the changes are just adding #include <asm/machdep.h> to
files that use ppc_md or smp_ops_t.

This also arranges for us to use semaphore.c, vecemu.c, vector.S and
fpu.S from arch/powerpc/kernel when compiling with ARCH=ppc.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-11 22:08:12 +10:00
Paul Mackerras
abc244dd85 powerpc: Remove xmon.h include from arch/powerpc/platforms/powermac/pic.c
... since it isn't needed.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-11 10:00:07 +10:00
Paul Mackerras
8d66912c3d powerpc: Remove 83xx from arch/powerpc/platforms/Makefile for now
Since we don't have an 83xx directory or a 83xx/Makefile, having
83xx in causes make clean to fail.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-11 09:59:53 +10:00
Paul Mackerras
3c3f42d63a powerpc: Start merging 64-bit support into powermac files
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-10 22:58:41 +10:00
Paul Mackerras
76f9f87fa5 powerpc: Get iseries to compile with ARCH=powerpc
This moves the Device_List member from struct device_node to
struct pci_dn, which cleans up the device_node and makes the code
a little simpler.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-10 22:52:26 +10:00
Paul Mackerras
bc6f8a4b19 powerpc: move lparmap.c to arch/powerpc/kernel
Since lparmap.s gets included in arch/powerpc/kernel/head_64.S,
this avoids depending on a file in another directory.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-10 22:45:07 +10:00
Paul Mackerras
f6d57916db powerpc: rename powermac files to remove pmac_ prefix
Since the files are now in arch/powerpc/platforms/powermac, the
pmac_ prefix that they had is redundant.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-10 22:13:53 +10:00
Paul Mackerras
69a80d3f69 powerpc: move pSeries files to arch/powerpc/platforms/pseries
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-10 22:03:41 +10:00
Paul Mackerras
9b6b563c0d powerpc: Merge in the ppc64 version of the prom code.
This brings in the ppc64 version of prom_init.c, prom.c and btext.c
and makes them work for ppc32.  This also brings in the new calling
convention, where the first entry to the kernel (with r5 != 0) goes
to the prom_init code, which then restarts from the beginning (with
r5 == 0) after it has done its stuff.

For now this also brings in the ppc32 version of setup.c.  It also
merges lmb.h.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-06 12:06:20 +10:00
Paul Mackerras
292dcc86dd Merge rsync://ozlabs.org/sfr-git/for-paulus/ 2005-10-02 11:12:43 +10:00
Stephen Rothwell
cabb558714 powerpc: make iSeries build
Merge vmlinux.lds.S.
Also remove arch/powerpc/kernel/vmlinux.lds which is a
generated file.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-10-01 18:52:10 +10:00
Paul Mackerras
c0c0d996d0 powerpc: Get merged kernel to compile and run on 32-bit SMP powermac.
This updates the powermac SMP code to use the mpic driver instead of
the openpic driver and fixes the SMP-dependent context switch code.
We had a subtle bug where we were using interrupt numbers 256-259 for
IPIs, but ppc32 had NR_IRQS = 256.  Moved the IPIs down to use interrupt
numbers 252-255 instead.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-01 13:49:08 +10:00
Stephen Rothwell
d96024c688 powerpc: Move lparmap.c to powerpc/platforms
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-30 18:04:10 +10:00
Stephen Rothwell
b08567cb68 ppc64 iseries: move some iSeries include files
These files are only referenced from within
arch/powerpc/platforms/iseries, so move them there.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-30 18:03:56 +10:00
Paul Mackerras
952ecef7a0 Merge Stephen Rothwell's patches 2005-09-28 21:11:41 +10:00
Paul Mackerras
20c8c21063 powerpc: Fixes to get the merged kernel to boot on powermac.
This merges ppc_ksyms.c, puts back the actual do_execve call in
sys_execve, makes init_MMU call find_end_of_memory rather than
ppc_md.find_end_of_memory (every platform has a device tree
with a /memory node now, right?) and fixes some problems with the
mpic initialization on newworld powermacs.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-09-28 20:28:14 +10:00
Kumar Gala
400d221274 [PATCH] ppc32: make cur_cpu_spec a single pointer instead of an array
Changed ppc32 so that cur_cpu_spec is just a single pointer for all CPUs.
Additionally, made call_setup_cpu check to see if the cpu_setup pointer
is NULL or not before calling the function.  This lets remove the dummy
cpu_setup calls that just return.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-09-28 15:42:54 +10:00
Stephen Rothwell
252e75a51d ppc64 iSeries: use device_node instead of iSeries_Device_node
There needs to be more cleanup after this.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 14:40:40 +10:00
Stephen Rothwell
c111d0bda8 powerpc: move more iSeries code
Move the iSeries specific parts of misc.S and ppc_ksyms.c
into powerpc/platforms/iseries.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 13:28:01 +10:00
Stephen Rothwell
7b875f4dc3 powerpc: Make powerpc pmac 32 bit build again
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 09:40:24 +10:00
Stephen Rothwell
d223e721b7 powerpc: Move viopath.c to powerpc/platforms/iseries
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 03:12:35 +10:00
Stephen Rothwell
b6b8681843 powerpc: Move iSeries_smp.c to powerpc/platforms/iseries
And rename it to smp.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 03:07:14 +10:00
Stephen Rothwell
ed7f2c05de powerpc: Move iSeries_vio.c to powerpc/platforms/iseries
And rename it to vio.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 03:03:00 +10:00
Stephen Rothwell
da3420fcd6 powerpc: Move iSeries_VpdInfo.c to powerpc/platforms/iseries
And rename it to vpdinfo.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:59:19 +10:00
Stephen Rothwell
cb4cf8056e powerpc: Move iSeries_irq.c to powerpc/platorms/iseries
And rename it to irq.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:54:39 +10:00
Stephen Rothwell
d387899f3f powerpc: Move iSeries_pci.c to powerpc/platform/iseries
and rename it to pci.c.  This also required moving
arch/ppc64/kernel/pci.h into include/asm-powerpc (called
ppc-pci.h.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:50:25 +10:00
Stephen Rothwell
cc14d43083 powerpc: Move iSeries_iommu.c to powerpc/platforms/iseries
And rename it to iommu.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:32:16 +10:00
Stephen Rothwell
e508f438e0 powerpc: Move iSeries_htab.c to powerpc/platforms/iseries
And rename it to htab.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:28:45 +10:00
Stephen Rothwell
cb5c7980ab powerpc: move iSeries_proc.c to powerpc/platforms/iseries
And renamed it to proc.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:24:05 +10:00
Stephen Rothwell
544cbbaed4 powerpc: Merge HvLpEvent.c into lpevents.c
These two files were intimately connected, so just merge them.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 02:18:47 +10:00
Stephen Rothwell
99a2379cdd powerpc: move hvCall.s to powerpc/platforms/iseries
Rename it to hvcall.S and (so I can do that) rename hvcall.c
to hvlog.c - a more appropriate name.

Do some white space cleanups.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 00:17:40 +10:00
Stephen Rothwell
2952bc7c89 powerpc: move ItLpQueue.c to powerpc/platforms/iseries
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-28 00:03:46 +10:00
Stephen Rothwell
c8b84976f8 powerpc: move iSeries_setup.[ch] and mf.c into platforms/iseries
iSeries_setup.c becomes setup.c
iSeries_setup.h becomes setup.h
mf.c retains its name

Also moved iSeries_[gs]et_rtc_time and iSeries_get_boot_time into
mf.c since they are just small wrappers around mf_ functions.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-27 18:44:42 +10:00
Stephen Rothwell
2960eb661a powerpc: Move LparData.c to powerpc platforms
Also rename it to lpardata.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-27 17:24:54 +10:00
Stephen Rothwell
acdbec1b89 powerpc: Move HvLpConfig.c to powerpc arch
Also rename it to hvlpconfig.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-27 17:24:37 +10:00
Stephen Rothwell
ba0dd617a3 powerpc: Create arch/powerpc/platforms/iseries
I also move arch/ppc64/kernel/HvCall.c to
arch/powerpc/platforms/iseries/hvcall.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-27 17:23:00 +10:00
Stephen Rothwell
bbeb3f4c55 powerpc: clean up after powermac build merge
Complete moving arch/ppc64/kernel/mpic.h,
        include/asm-ppc/reg.h, include/asm-ppc64/kdebug.h
	        and include/asm-ppc64/kprobes.h
Add arch/powerpc/platforms/Makefile and use it from
	arch/powerpc/Makefile
Introduce OLDARCH temporarily so we can point back to
	the originating architecture

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-09-27 13:51:59 +10:00
Paul Mackerras
14cf11af6c powerpc: Merge enough to start building in arch/powerpc.
This creates the directory structure under arch/powerpc and a bunch
of Kconfig files.  It does a first-cut merge of arch/powerpc/mm,
arch/powerpc/lib and arch/powerpc/platforms/powermac.  This is enough
to build a 32-bit powermac kernel with ARCH=powerpc.

For now we are getting some unmerged files from arch/ppc/kernel and
arch/ppc/syslib, or arch/ppc64/kernel.  This makes some minor changes
to files in those directories and files outside arch/powerpc.

The boot directory is still not merged.  That's going to be interesting.

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