LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 02/14] powerpc: Add a defconfig for 'corenet' 32-bit platforms
From: Tabi Timur-B04825 @ 2011-05-20 14:45 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <1305871771-16334-2-git-send-email-galak@kernel.crashing.org>

On Fri, May 20, 2011 at 1:09 AM, Kumar Gala <galak@kernel.crashing.org> wro=
te:

> +CONFIG_MATH_EMULATION=3Dy

Don't these chips have hardware floating point?

> +CONFIG_FORCE_MAX_ZONEORDER=3D13

This may be unnecessary.  I originally set CONFIG_FORCE_MAX_ZONEORDER
to 12 because the DIU driver needs to be able to allocate a contiguous
5MB memory block.  Setting it to 13 means a max of 16MB.  Is there a
reason the default isn't good enough?

--=20
Timur Tabi
Linux kernel developer at Freescale=

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Josh Boyer @ 2011-05-20 14:46 UTC (permalink / raw)
  To: Richard Cochran
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520143259.GB5785@riccoc20.at.omicron.at>

On Fri, May 20, 2011 at 04:32:59PM +0200, Richard Cochran wrote:
>On Fri, May 20, 2011 at 09:58:45AM -0400, Josh Boyer wrote:
>> On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
>> >When I try to build 'next' (now at 208b3a4c), it does not compile due
>> >to a change from the following commit.
>> >
>> >> Benjamin Herrenschmidt (1):
>> >>       powerpc/smp: Make start_secondary_resume available to all CPU variants
>> >
>> >I would appreciate your help in getting this fixed...
>> 
>> Could you try the patch below?
>
>Yes, and it both compiles and boots.

Thanks for testing!

Ben, can you pull this patch in as-is (fixing up the Subject), or do you
need me to resubmit it?

josh
>> 
>> Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
>> however it uses a 64-bit instruction which is not valid on 32-bit
>> platforms.  Use 'stw' instead.
>> 
>> Reported-by: Richard Cochran <richardcochran@gmail.com>
>> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> 
>> ---
>> 
>> diff --git a/arch/powerpc/kernel/misc_32.S
>> b/arch/powerpc/kernel/misc_32.S
>> index 402560e..998a100 100644
>> --- a/arch/powerpc/kernel/misc_32.S
>> +++ b/arch/powerpc/kernel/misc_32.S
>> @@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
>> 	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
>> 	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
>> 	li      r3,0
>> -	std     r3,0(r1)                /* Zero the stack frame pointer */
>> +	stw     r3,0(r1)                /* Zero the stack frame pointer */
>> 	bl      start_secondary
>> 	b       .
>>  #endif /* CONFIG_SMP */
>> 

^ permalink raw reply

* [git pull] Please pull powerpc.git merge branch
From: Kumar Gala @ 2011-05-20 14:35 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

A bug/erratum fix, and a 2 long standing SRIO patches...

The following changes since commit 208b3a4c196e733b9cec006dc132cfc149b2810a:

  powerpc: Fix hard CPU IDs detection (2011-05-20 17:50:18 +1000)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git merge

Shaohui Xie (2):
      powerpc/fsl_rio: move machine_check handler
      powerpc/fsl_rio: Error interrupt handler for sRIO on MPC85xx

Shengzhou Liu (1):
      powerpc/fsl_lbc: Add workaround for ELBC-A001 erratum

 arch/powerpc/include/asm/fsl_lbc.h |    2 +
 arch/powerpc/include/asm/rio.h     |    5 ++
 arch/powerpc/kernel/traps.c        |   13 +++++
 arch/powerpc/sysdev/fsl_lbc.c      |    9 +++-
 arch/powerpc/sysdev/fsl_rio.c      |  100 ++++++++++++++++++++++++++++-------
 5 files changed, 107 insertions(+), 22 deletions(-)

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Richard Cochran @ 2011-05-20 14:32 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520135845.GG25179@zod.rchland.ibm.com>

On Fri, May 20, 2011 at 09:58:45AM -0400, Josh Boyer wrote:
> On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
> >When I try to build 'next' (now at 208b3a4c), it does not compile due
> >to a change from the following commit.
> >
> >> Benjamin Herrenschmidt (1):
> >>       powerpc/smp: Make start_secondary_resume available to all CPU variants
> >
> >I would appreciate your help in getting this fixed...
> 
> Could you try the patch below?

Yes, and it both compiles and boots.

Thanks,
Richard

> 
> Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
> however it uses a 64-bit instruction which is not valid on 32-bit
> platforms.  Use 'stw' instead.
> 
> Reported-by: Richard Cochran <richardcochran@gmail.com>
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
> 
> ---
> 
> diff --git a/arch/powerpc/kernel/misc_32.S
> b/arch/powerpc/kernel/misc_32.S
> index 402560e..998a100 100644
> --- a/arch/powerpc/kernel/misc_32.S
> +++ b/arch/powerpc/kernel/misc_32.S
> @@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
> 	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
> 	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
> 	li      r3,0
> -	std     r3,0(r1)                /* Zero the stack frame pointer */
> +	stw     r3,0(r1)                /* Zero the stack frame pointer */
> 	bl      start_secondary
> 	b       .
>  #endif /* CONFIG_SMP */
> 

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Josh Boyer @ 2011-05-20 13:58 UTC (permalink / raw)
  To: Richard Cochran
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520132328.GA5785@riccoc20.at.omicron.at>

On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
>When I try to build 'next' (now at 208b3a4c), it does not compile due
>to a change from the following commit.
>
>> Benjamin Herrenschmidt (1):
>>       powerpc/smp: Make start_secondary_resume available to all CPU variants
>
>I would appreciate your help in getting this fixed...

Could you try the patch below?

Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
however it uses a 64-bit instruction which is not valid on 32-bit
platforms.  Use 'stw' instead.

Reported-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---

diff --git a/arch/powerpc/kernel/misc_32.S
b/arch/powerpc/kernel/misc_32.S
index 402560e..998a100 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
	li      r3,0
-	std     r3,0(r1)                /* Zero the stack frame pointer */
+	stw     r3,0(r1)                /* Zero the stack frame pointer */
	bl      start_secondary
	b       .
 #endif /* CONFIG_SMP */

^ permalink raw reply related

* Re: [PATCH 1/2][v4] fsl_rio: move machine_check handler into machine_check_e500 & machine_check_e500mc
From: Kumar Gala @ 2011-05-20 13:53 UTC (permalink / raw)
  To: Shaohui Xie; +Cc: Alexandre Bounine, akpm, linuxppc-dev
In-Reply-To: <1290063452-20873-1-git-send-email-b21989@freescale.com>


On Nov 18, 2010, at 12:57 AM, Shaohui Xie wrote:

> Signed-off-by: Shaohui Xie <b21989@freescale.com>
> Cc: Li Yang <leoli@freescale.com>
> Cc: Kumar Gala <kumar.gala@freescale.com>
> Cc: Roy Zang <tie-fei.zang@freescale.com>
> Cc: Alexandre Bounine <alexandre.bounine@idt.com>
> ---
> arch/powerpc/include/asm/rio.h |    5 +++++
> arch/powerpc/kernel/traps.c    |   13 +++++++++++++
> arch/powerpc/sysdev/fsl_rio.c  |   15 +++------------
> 3 files changed, 21 insertions(+), 12 deletions(-)

applied to merge

- k

^ permalink raw reply

* Re: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Kumar Gala @ 2011-05-20 13:53 UTC (permalink / raw)
  To: Shaohui Xie; +Cc: Alexandre Bounine, akpm, linuxppc-dev
In-Reply-To: <1290063473-20950-1-git-send-email-b21989@freescale.com>


On Nov 18, 2010, at 12:57 AM, Shaohui Xie wrote:

> The sRIO controller reports errors to the core with one signal, it =
uses
> register EPWISR to provides the core quick access to where the error =
occurred.
> The EPWISR indicates that there are 4 interrupts sources, port1, =
port2, message
> unit and port write receive, but the sRIO driver does not support =
port2
> for now, still the handler takes care of port2.
> Currently the handler only clear error status without any recovery.
>=20
> Signed-off-by: Shaohui Xie <b21989@freescale.com>
> Cc: Li Yang <leoli@freescale.com>
> Cc: Kumar Gala <kumar.gala@freescale.com>
> Cc: Roy Zang <tie-fei.zang@freescale.com>
> Cc: Alexandre Bounine <alexandre.bounine@idt.com>
> ---
> updated to 37-rc2
> arch/powerpc/sysdev/fsl_rio.c |   85 =
+++++++++++++++++++++++++++++++++++++----
> 1 files changed, 77 insertions(+), 8 deletions(-)

applied to merge

- k=

^ permalink raw reply

* 答复: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt handler for sRIO.
From: Li Yang-R58472 @ 2011-05-20 13:42 UTC (permalink / raw)
  To: Bounine, Alexandre, Kumar Gala
  Cc: akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	Zang Roy-R61911, Xie Shaohui-B21989, Gala Kumar-B11780
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E55201D20CA9@CORPEXCH1.na.ads.idt.com>

SGkgQWxleCwKCkp1c3QgZm9yIHlvdXIgaW5mb3JtYXRpb24gYXMgeW91IG1lbnRpb25lZCBhYm91
dCBpdC4gIFRoZSBkdWFsIHBvcnQgc3VwcG9ydCBpcyBiZWluZyB3b3JrZWQgb24sIGJ1dCBub3Qg
bGlrZWx5IHRvIGJlIHJlYWR5IGluIHRoaXMgbWVyZ2Ugd2luZG93LgoKLSBMZW8KCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kt6K8/sjLOiBCb3VuaW5lLCBBbGV4YW5k
cmUgW0FsZXhhbmRyZS5Cb3VuaW5lQGlkdC5jb21dCreiy83KsbzkOiAyMDExxOo11MIyMMjVIDIx
OjE4CrW9OiBLdW1hciBHYWxhCkNjOiBMaSBZYW5nLVI1ODQ3MjsgWGllIFNoYW9odWktQjIxOTg5
OyBaYW5nIFJveS1SNjE5MTE7IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IGxpbnV4cHBjLWRl
dkBsaXN0cy5vemxhYnMub3JnOyBHYWxhIEt1bWFyLUIxMTc4MArW98ziOiBSRTogW1BBVENIIDIv
Ml1bdjNdIHJhcGlkaW8scG93ZXJwYy84NXh4OiBFcnJvciBpbnRlcnJ1cHQgaGFuZGxlciBmb3Ig
c1JJTy4KCk5vdCBhdCBhbGwuIEkgdGVzdGVkIGl0IGVhcmxpZXIgYW5kIGl0IHdvcmtzIGZvciBt
ZSBvbiA4NTQ4IHBsYXRmb3JtLgoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206
IEt1bWFyIEdhbGEgW21haWx0bzpnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnXQo+IFNlbnQ6IEZy
aWRheSwgTWF5IDIwLCAyMDExIDg6NDIgQU0KPiBUbzogQm91bmluZSwgQWxleGFuZHJlCj4gQ2M6
IExpIFlhbmctUjU4NDcyOyBYaWUgU2hhb2h1aS1CMjE5ODk7IFphbmcgUm95LVI2MTkxMTsgYWtw
bUBsaW51eC0KPiBmb3VuZGF0aW9uLm9yZzsgbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7
IEdhbGEgS3VtYXItQjExNzgwCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdW3YzXSByYXBpZGlv
LHBvd2VycGMvODV4eDogRXJyb3IgaW50ZXJydXB0Cj4gaGFuZGxlciBmb3Igc1JJTy4KPgo+IEFu
eSByZWFzb24gZm9yIG1lIG5vdCB0byBhcHBseSB0aGlzIGFuZCBzZW5kIGl0IHVwc3RyZWFtIGZv
ciBub3c/Cj4KPiAtIGsKPgo+IE9uIE1heSAyMCwgMjAxMSwgYXQgNzoxNCBBTSwgQm91bmluZSwg
QWxleGFuZHJlIHdyb3RlOgo+Cj4gPiBLdW1hciwKPiA+Cj4gPiBBcmUgeW91IHBsYW5uaW5nIHRv
IHJlbGVhc2Ugc3VwcG9ydCBmb3IgZHVhbC1wb3J0IFNSSU8gY29udHJvbGxlcj8KPiA+IElmIHll
cywgaXQgbWF5IGJlIGp1c3QgbWVyZ2VkIGludG8gaXQgKHVubGVzcyBkdWFsLXBvcnQKPiBpbXBs
ZW1lbnRhdGlvbgo+ID4gYWxyZWFkeSBoYXMgaXQpLgo+ID4KPiA+IEFsZXguCj4gPgo+ID4+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4gRnJvbTogbGludXhwcGMtZGV2LQo+IGJvdW5j
ZXMrYWxleGFuZHJlLmJvdW5pbmU9aWR0LmNvbUBsaXN0cy5vemxhYnMub3JnCj4gPj4gW21haWx0
bzpsaW51eHBwYy1kZXYtCj4gPj4gYm91bmNlcythbGV4YW5kcmUuYm91bmluZT1pZHQuY29tQGxp
c3RzLm96bGFicy5vcmddIE9uIEJlaGFsZiBPZgo+IEt1bWFyCj4gPj4gR2FsYQo+ID4+IFNlbnQ6
IEZyaWRheSwgTWF5IDIwLCAyMDExIDEyOjI5IEFNCj4gPj4gVG86IEJvdW5pbmUsIEFsZXhhbmRy
ZQo+ID4+IENjOiBMaSBZYW5nLVI1ODQ3MjsgWGllIFNoYW9odWktQjIxOTg5OyBaYW5nIFJveS1S
NjE5MTE7CmFrcG1AbGludXgtCj4gPj4gZm91bmRhdGlvbi5vcmc7IGxpbnV4cHBjLWRldkBsaXN0
cy5vemxhYnMub3JnOyBHYWxhIEt1bWFyLUIxMTc4MAo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg
Mi8yXVt2M10gcmFwaWRpbyxwb3dlcnBjLzg1eHg6IEVycm9yIGludGVycnVwdAo+ID4+IGhhbmRs
ZXIgZm9yIHNSSU8uCj4gPj4KPiA+PiBBbGV4LAo+ID4+Cj4gPj4gV2hhdCBhcmUgd2UgZG9pbmcg
d2l0aCB0aGlzIHBhdGNoPwo+ID4+Cj4gPj4gLSBrCj4gPj4KPiA+PiBPbiBEZWMgMywgMjAxMCwg
YXQgMTI6MDQgUE0sIEJvdW5pbmUsIEFsZXhhbmRyZSB3cm90ZToKPiA+Pgo+ID4+PiBJIHRoaW5r
IHRoZXkgc2hvdWxkIGZvbGxvdyB0aGUgcHJldmlvdXMgdHdvIHRoYXQgYXJlIGluIEt1bWFyJ3MK
PiA+IHRyZWUuCj4gPj4+IFByb2JhYmx5IEt1bWFyIG1heSBnaXZlIHlvdSBhIGJldHRlciB0aW1l
bGluZSBlc3RpbWF0ZSBmb3IgdGhpcy4KPiA+Pj4KPiA+Pj4gQWxleC4KPiA+Pj4KPiA+Pj4gRnJv
bToKPiA+IGxpbnV4cHBjLWRldi1ib3VuY2VzK2FsZXhhbmRyZS5ib3VuaW5lPWlkdC5jb21AbGlz
dHMub3psYWJzLm9yZwo+ID4+IFttYWlsdG86bGludXhwcGMtZGV2LQo+ID4+IGJvdW5jZXMrYWxl
eGFuZHJlLmJvdW5pbmU9aWR0LmNvbUBsaXN0cy5vemxhYnMub3JnXSBPbiBCZWhhbGYgT2YKWGll
Cj4gPj4gU2hhb2h1aS1CMjE5ODkKPiA+Pj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDAyLCAy
MDEwIDEwOjI5IFBNCj4gPj4+IFRvOiBCb3VuaW5lLCBBbGV4YW5kcmU7IGxpbnV4cHBjLWRldkBs
aXN0cy5vemxhYnMub3JnCj4gPj4+IENjOiBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOyBHYWxh
IEt1bWFyLUIxMTc4MDsgTGkgWWFuZy1SNTg0NzI7Cj4gPj4gWmFuZyBSb3ktUjYxOTExCj4gPj4+
IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMi8yXVt2M10gcmFwaWRpbyxwb3dlcnBjLzg1eHg6IEVycm9y
IGludGVycnVwdAo+ID4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+Cj4gPj4+IEhpIEFsZXgsCj4g
Pj4+Cj4gPj4+IE1heSBJIGFzayB3aGVuIHdvdWxkIHRoZXNlIHBhdGNoZXMgYmUgYXBwbGllZCB0
byBtYWlubGluZT8KPiA+Pj4KPiA+Pj4KPiA+Pj4gQmVzdCBSZWdhcmRzLAo+ID4+PiBTaGFvaHVp
IFhpZQo+ID4+Pgo+ID4+PiBGcm9tOiBCb3VuaW5lLCBBbGV4YW5kcmUgW21haWx0bzpBbGV4YW5k
cmUuQm91bmluZUBpZHQuY29tXQo+ID4+PiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDAxLCAy
MDEwIDQ6NDkgQU0KPiA+Pj4gVG86IFhpZSBTaGFvaHVpLUIyMTk4OTsgbGludXhwcGMtZGV2QGxp
c3RzLm96bGFicy5vcmcKPiA+Pj4gQ2M6IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IExpIFlh
bmctUjU4NDcyOyBHYWxhIEt1bWFyLUIxMTc4MDsKPiA+PiBaYW5nIFJveS1SNjE5MTEKPiA+Pj4g
U3ViamVjdDogUkU6IFtQQVRDSCAyLzJdW3YzXSByYXBpZGlvLCBwb3dlcnBjLzg1eHg6IEVycm9y
CmludGVycnVwdAo+ID4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+Cj4gPj4+IEFwcGxpZXMgY29y
cmVjdGx5IG5vdy4gTGFiIHRlc3RlZCBvbiA4NTQ4L1JJTyBzZXR1cC4KPiA+Pj4KPiA+Pj4gQWxl
eC4KPiA+Pj4KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+PiBGcm9tOiBT
aGFvaHVpIFhpZSBbbWFpbHRvOmIyMTk4OUBmcmVlc2NhbGUuY29tXQo+ID4+Pj4gU2VudDogVGh1
cnNkYXksIE5vdmVtYmVyIDE4LCAyMDEwIDE6NTggQU0KPiA+Pj4+IFRvOiBsaW51eHBwYy1kZXZA
bGlzdHMub3psYWJzLm9yZwo+ID4+Pj4gQ2M6IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IFNo
YW9odWkgWGllOyBMaSBZYW5nOyBLdW1hciBHYWxhOwo+ID4gUm95Cj4gPj4+IFphbmc7IEJvdW5p
bmUsIEFsZXhhbmRyZQo+ID4+Pj4gU3ViamVjdDogW1BBVENIIDIvMl1bdjNdIHJhcGlkaW8sIHBv
d2VycGMvODV4eDogRXJyb3IgaW50ZXJydXB0Cj4gPj4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+
Pgo+ID4+Pj4gVGhlIHNSSU8gY29udHJvbGxlciByZXBvcnRzIGVycm9ycyB0byB0aGUgY29yZSB3
aXRoIG9uZSBzaWduYWwsCml0Cj4gPj4+IHVzZXMKPiA+Pj4+IHJlZ2lzdGVyIEVQV0lTUiB0byBw
cm92aWRlcyB0aGUgY29yZSBxdWljayBhY2Nlc3MgdG8gd2hlcmUgdGhlCj4gPiBlcnJvcgo+ID4+
PiBvY2N1cnJlZC4KPiA+Pj4+IFRoZSBFUFdJU1IgaW5kaWNhdGVzIHRoYXQgdGhlcmUgYXJlIDQg
aW50ZXJydXB0cyBzb3VyY2VzLCBwb3J0MSwKPiA+Pj4gcG9ydDIsIG1lc3NhZ2UKPiA+Pj4+IHVu
aXQgYW5kIHBvcnQgd3JpdGUgcmVjZWl2ZSwgYnV0IHRoZSBzUklPIGRyaXZlciBkb2VzIG5vdCBz
dXBwb3J0Cj4gPj4+IHBvcnQyCj4gPj4+PiBmb3Igbm93LCBzdGlsbCB0aGUgaGFuZGxlciB0YWtl
cyBjYXJlIG9mIHBvcnQyLgo+ID4+Pj4gQ3VycmVudGx5IHRoZSBoYW5kbGVyIG9ubHkgY2xlYXIg
ZXJyb3Igc3RhdHVzIHdpdGhvdXQgYW55Cj4gcmVjb3ZlcnkuCj4gPj4+Cj4gPj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+IExpbnV4cHBjLWRl
diBtYWlsaW5nIGxpc3QKPiA+Pj4gTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKPiA+Pj4g
aHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldgo+ID4+Cj4gPj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBMaW51
eHBwYy1kZXYgbWFpbGluZyBsaXN0Cj4gPj4gTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcK
PiA+PiBodHRwczovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vbGludXhwcGMtZGV2CgoK

^ permalink raw reply

* RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Bounine, Alexandre @ 2011-05-20 13:18 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <C1F44016-59F6-459E-82E6-0A265A280D48@kernel.crashing.org>

Not at all. I tested it earlier and it works for me on 8548 platform.

> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Friday, May 20, 2011 8:42 AM
> To: Bounine, Alexandre
> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
>=20
> Any reason for me not to apply this and send it upstream for now?
>=20
> - k
>=20
> On May 20, 2011, at 7:14 AM, Bounine, Alexandre wrote:
>=20
> > Kumar,
> >
> > Are you planning to release support for dual-port SRIO controller?
> > If yes, it may be just merged into it (unless dual-port
> implementation
> > already has it).
> >
> > Alex.
> >
> >> -----Original Message-----
> >> From: linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> >> [mailto:linuxppc-dev-
> >> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of
> Kumar
> >> Gala
> >> Sent: Friday, May 20, 2011 12:29 AM
> >> To: Bounine, Alexandre
> >> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911;
akpm@linux-
> >> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> >> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> >> handler for sRIO.
> >>
> >> Alex,
> >>
> >> What are we doing with this patch?
> >>
> >> - k
> >>
> >> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
> >>
> >>> I think they should follow the previous two that are in Kumar's
> > tree.
> >>> Probably Kumar may give you a better timeline estimate for this.
> >>>
> >>> Alex.
> >>>
> >>> From:
> > linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> >> [mailto:linuxppc-dev-
> >> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of
Xie
> >> Shaohui-B21989
> >>> Sent: Thursday, December 02, 2010 10:29 PM
> >>> To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
> >>> Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
> >> Zang Roy-R61911
> >>> Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> >> handler for sRIO.
> >>>
> >>> Hi Alex,
> >>>
> >>> May I ask when would these patches be applied to mainline?
> >>>
> >>>
> >>> Best Regards,
> >>> Shaohui Xie
> >>>
> >>> From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
> >>> Sent: Wednesday, December 01, 2010 4:49 AM
> >>> To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
> >>> Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
> >> Zang Roy-R61911
> >>> Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error
interrupt
> >> handler for sRIO.
> >>>
> >>> Applies correctly now. Lab tested on 8548/RIO setup.
> >>>
> >>> Alex.
> >>>
> >>>> -----Original Message-----
> >>>> From: Shaohui Xie [mailto:b21989@freescale.com]
> >>>> Sent: Thursday, November 18, 2010 1:58 AM
> >>>> To: linuxppc-dev@lists.ozlabs.org
> >>>> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
> > Roy
> >>> Zang; Bounine, Alexandre
> >>>> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> >>> handler for sRIO.
> >>>>
> >>>> The sRIO controller reports errors to the core with one signal,
it
> >>> uses
> >>>> register EPWISR to provides the core quick access to where the
> > error
> >>> occurred.
> >>>> The EPWISR indicates that there are 4 interrupts sources, port1,
> >>> port2, message
> >>>> unit and port write receive, but the sRIO driver does not support
> >>> port2
> >>>> for now, still the handler takes care of port2.
> >>>> Currently the handler only clear error status without any
> recovery.
> >>>
> >>> _______________________________________________
> >>> Linuxppc-dev mailing list
> >>> Linuxppc-dev@lists.ozlabs.org
> >>> https://lists.ozlabs.org/listinfo/linuxppc-dev
> >>
> >> _______________________________________________
> >> Linuxppc-dev mailing list
> >> Linuxppc-dev@lists.ozlabs.org
> >> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Richard Cochran @ 2011-05-20 13:23 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev list, Andrew Morton, Linus Torvalds,
	Linux Kernel list
In-Reply-To: <1305777978.7481.37.camel@pasglop>

On Thu, May 19, 2011 at 02:06:18PM +1000, Benjamin Herrenschmidt wrote:
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge

When I try to build 'next' (now at 208b3a4c), it does not compile due
to a change from the following commit.

> Benjamin Herrenschmidt (1):
>       powerpc/smp: Make start_secondary_resume available to all CPU variants

I would appreciate your help in getting this fixed...

Thanks,
Richard

PS the error looks like this:

  AS      arch/powerpc/kernel/misc_32.o
arch/powerpc/kernel/misc_32.S: Assembler messages:
arch/powerpc/kernel/misc_32.S:703: Error: Unrecognized opcode: `std'
make[2]: *** [arch/powerpc/kernel/misc_32.o] Error 1
make[1]: *** [arch/powerpc/kernel] Error 2

> ${CROSS_COMPILE}gcc -v
Using built-in specs.
Target: powerpc-none-linux-gnuspe
Configured with: ../gcc-4.3.2/configure --target=powerpc-none-linux-gnuspe --host=i686-pc-linux-gnu --prefix=/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe --with-sysroot=/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/powerpc-none-linux-gnuspe/libc --disable-libssp --disable-libmudflap --disable-libstdcxx-pch --enable-libgomp --enable-shared --enable-threads --enable-languages=c,c++ --with-gmp=/usr/src/redhat/BUILD/csl-tc-4.3.74/host-libs/usr --with-mpfr=/usr/src/redhat/BUILD/csl-tc-4.3.74/host-libs/usr --with-cpu=8548 --with-gnu-as --with-gnu-ld --enable-symvers=gnu --enable-__cxa_atexit --enable-cxx-flags=-mcpu=8548 --disable-multilib --with-long-double-128 --disable-nls --enable-e500_double
Thread model: posix
gcc version 4.3.2 (GCC) 

^ permalink raw reply

* Re: [bg-linux] [PATCH 6/7] [RFC] enable early TLBs for BG/P
From: Eric Van Hensbergen @ 2011-05-20 13:01 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Kazutomo Yoshii, linuxppc-dev, linux-kernel, bg-linux
In-Reply-To: <1305863541.7481.132.camel@pasglop>

On Thu, May 19, 2011 at 10:52 PM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:
>> Unfortunately, the firmware is also required:
>> - to configure Blue Gene Interrupt Controller(BIC)
>> - to configure Torus DMA unit. e.g. fifo
>> - to configure global interrupt (even we don't use, we need to disable
>> some channel correctly)
>
> Can't we just write bare metal code for that ?
>

The kittyhawk code has the bare-metal equivalents for all of these.
When I get to the drivers, I'll favor the kittyhawk versions for
submission and then we'll see if it would be possible to adapt the HPC
extensions to use the bare-metal versions of the drivers versus the
firmware interface.

>> - to access node personality information (node id, DDR size, HZ, etc) or
>> maybe we can directly access SRAM?
>
> That should be turned into device-tree at boot, possibly from a
> bootloader or from the zImage wrapper.
>

This is the approach is used by the kittyhawk u-boot approach.
However, it would also be just as easy to construct an in-memory
device-tree within Linux by mapping the personality page and copying
the relevant bits out.  This has the advantage of being able to boot
Linux directly on the nodes without an intermediary boot loader (which
kittyhawk uses just to allow us customize which kernel boots on a
node-to-node basis whereas the stock system boots the same kernel on
all the nodes within a partition allocation (64-40,000 nodes)).

         -eric

^ permalink raw reply

* Re: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Kumar Gala @ 2011-05-20 12:42 UTC (permalink / raw)
  To: Bounine, Alexandre
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E55201D20C69@CORPEXCH1.na.ads.idt.com>

Any reason for me not to apply this and send it upstream for now?

- k

On May 20, 2011, at 7:14 AM, Bounine, Alexandre wrote:

> Kumar,
> 
> Are you planning to release support for dual-port SRIO controller?
> If yes, it may be just merged into it (unless dual-port implementation
> already has it).
> 
> Alex.
> 
>> -----Original Message-----
>> From: linuxppc-dev-bounces+alexandre.bounine=idt.com@lists.ozlabs.org
>> [mailto:linuxppc-dev-
>> bounces+alexandre.bounine=idt.com@lists.ozlabs.org] On Behalf Of Kumar
>> Gala
>> Sent: Friday, May 20, 2011 12:29 AM
>> To: Bounine, Alexandre
>> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
>> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
>> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
>> handler for sRIO.
>> 
>> Alex,
>> 
>> What are we doing with this patch?
>> 
>> - k
>> 
>> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
>> 
>>> I think they should follow the previous two that are in Kumar's
> tree.
>>> Probably Kumar may give you a better timeline estimate for this.
>>> 
>>> Alex.
>>> 
>>> From:
> linuxppc-dev-bounces+alexandre.bounine=idt.com@lists.ozlabs.org
>> [mailto:linuxppc-dev-
>> bounces+alexandre.bounine=idt.com@lists.ozlabs.org] On Behalf Of Xie
>> Shaohui-B21989
>>> Sent: Thursday, December 02, 2010 10:29 PM
>>> To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
>>> Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
>> Zang Roy-R61911
>>> Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
>> handler for sRIO.
>>> 
>>> Hi Alex,
>>> 
>>> May I ask when would these patches be applied to mainline?
>>> 
>>> 
>>> Best Regards,
>>> Shaohui Xie
>>> 
>>> From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
>>> Sent: Wednesday, December 01, 2010 4:49 AM
>>> To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
>>> Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
>> Zang Roy-R61911
>>> Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
>> handler for sRIO.
>>> 
>>> Applies correctly now. Lab tested on 8548/RIO setup.
>>> 
>>> Alex.
>>> 
>>>> -----Original Message-----
>>>> From: Shaohui Xie [mailto:b21989@freescale.com]
>>>> Sent: Thursday, November 18, 2010 1:58 AM
>>>> To: linuxppc-dev@lists.ozlabs.org
>>>> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
> Roy
>>> Zang; Bounine, Alexandre
>>>> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
>>> handler for sRIO.
>>>> 
>>>> The sRIO controller reports errors to the core with one signal, it
>>> uses
>>>> register EPWISR to provides the core quick access to where the
> error
>>> occurred.
>>>> The EPWISR indicates that there are 4 interrupts sources, port1,
>>> port2, message
>>>> unit and port write receive, but the sRIO driver does not support
>>> port2
>>>> for now, still the handler takes care of port2.
>>>> Currently the handler only clear error status without any recovery.
>>> 
>>> _______________________________________________
>>> Linuxppc-dev mailing list
>>> Linuxppc-dev@lists.ozlabs.org
>>> https://lists.ozlabs.org/listinfo/linuxppc-dev
>> 
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Bounine, Alexandre @ 2011-05-20 12:14 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <6CBDFAB4-F884-4B33-8A77-0AE2CF2D2ED4@kernel.crashing.org>

Kumar,

Are you planning to release support for dual-port SRIO controller?
If yes, it may be just merged into it (unless dual-port implementation
already has it).

Alex.

> -----Original Message-----
> From: =
linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> [mailto:linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of =
Kumar
> Gala
> Sent: Friday, May 20, 2011 12:29 AM
> To: Bounine, Alexandre
> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
>=20
> Alex,
>=20
> What are we doing with this patch?
>=20
> - k
>=20
> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
>=20
> > I think they should follow the previous two that are in Kumar's
tree.
> > Probably Kumar may give you a better timeline estimate for this.
> >
> > Alex.
> >
> > From:
linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> [mailto:linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of Xie
> Shaohui-B21989
> > Sent: Thursday, December 02, 2010 10:29 PM
> > To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
> > Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
> Zang Roy-R61911
> > Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
> >
> > Hi Alex,
> >
> > May I ask when would these patches be applied to mainline?
> >
> >
> > Best Regards,
> > Shaohui Xie
> >
> > From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
> > Sent: Wednesday, December 01, 2010 4:49 AM
> > To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
> > Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
> Zang Roy-R61911
> > Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> handler for sRIO.
> >
> > Applies correctly now. Lab tested on 8548/RIO setup.
> >
> > Alex.
> >
> >> -----Original Message-----
> >> From: Shaohui Xie [mailto:b21989@freescale.com]
> >> Sent: Thursday, November 18, 2010 1:58 AM
> >> To: linuxppc-dev@lists.ozlabs.org
> >> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
Roy
> > Zang; Bounine, Alexandre
> >> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> > handler for sRIO.
> >>
> >> The sRIO controller reports errors to the core with one signal, it
> > uses
> >> register EPWISR to provides the core quick access to where the
error
> > occurred.
> >> The EPWISR indicates that there are 4 interrupts sources, port1,
> > port2, message
> >> unit and port write receive, but the sRIO driver does not support
> > port2
> >> for now, still the handler takes care of port2.
> >> Currently the handler only clear error status without any recovery.
> >
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
>=20
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* Re: [PATCH 6/7] tty/powerpc: introduce the ePAPR embedded hypervisor byte channel driver
From: Alan Cox @ 2011-05-20  9:54 UTC (permalink / raw)
  To: Timur Tabi
  Cc: kumar.gala, linux-kernel, akpm, linux-console, greg, linuxppc-dev
In-Reply-To: <4DD53FDD.7070503@freescale.com>

On Thu, 19 May 2011 11:05:49 -0500
Timur Tabi <timur@freescale.com> wrote:

> Alan Cox wrote:
> >> > +		/* Pass the received data to the tty layer.  Note that this
> >> > +		 * function calls tty_buffer_request_room(), so I'm not sure if
> >> > +		 * we should have also called tty_buffer_request_room().
> >> > +		 */
> >> > +		ret = tty_insert_flip_string(ttys, buffer, len);
> 
> > You only need to request_room in advance if you can't handle the case
> > where the insert_flip_string returns less than you stuffed down it.
> 
> If tty_insert_flip_string() returns less than I stuffed down it, the characters
> it didn't accept will be dropped.  That's because once I receive them, I have
> nowhere else to put them.  I suppose I could implement a receive FIFO, but that
> seems overkill.  If calling tty_buffer_request_room() ensures that
> tty_insert_flip_string() always accepts all the characters, I would rather do that.

I was answering the question in the comment in the code...

^ permalink raw reply

* PATCH: powerpc: remove unused variable assignment
From: Marcus Meissner @ 2011-05-20  9:13 UTC (permalink / raw)
  To: benh, paulus, akpm, linuxppc-dev, linux-kernel


Hi,

gcc 4.6 with -Werror does not like setting but not using variables
anymore.

So remove it, it does not seem necessary.

Signed-off-by: Marcus Meissner <meissner@suse.de>

Ciao, Marcus
---
 arch/powerpc/include/asm/pgtable-ppc64.h |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h
index 2b09cd5..c3d39de 100644
--- a/arch/powerpc/include/asm/pgtable-ppc64.h
+++ b/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -257,21 +257,17 @@ static inline int __ptep_test_and_clear_young(struct mm_struct *mm,
 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
 				      pte_t *ptep)
 {
-	unsigned long old;
-
        	if ((pte_val(*ptep) & _PAGE_RW) == 0)
        		return;
-	old = pte_update(mm, addr, ptep, _PAGE_RW, 0);
+	pte_update(mm, addr, ptep, _PAGE_RW, 0);
 }
 
 static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
 					   unsigned long addr, pte_t *ptep)
 {
-	unsigned long old;
-
 	if ((pte_val(*ptep) & _PAGE_RW) == 0)
 		return;
-	old = pte_update(mm, addr, ptep, _PAGE_RW, 1);
+	pte_update(mm, addr, ptep, _PAGE_RW, 1);
 }
 
 /*
-- 
1.7.4.1

^ permalink raw reply related

* [git pull] Please pull powerpc.git merge branch
From: Benjamin Herrenschmidt @ 2011-05-20  8:06 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list

Hi Linus

Here's the bulk of powerpc changes for this merge window. 

Some of the highlights are:

 - Basic support for the new PowerEN processor (Power Edge of Network, I
didn't come up with that name), and known in the linux code by one of
it's former code names "wsp" (aka Wirespeed Processor). This adds among
other support for the A2i core contained in that SoC which is an
embedded multithreaded 64-bit core with an in-order pipeline using the
"embedded" variant of the PowerPC architecture.

 - Some work for running on Power7 without an underlying hypervisor
(running in hypervisor mode), which will enable the KVM code that Paulus
and Alex are getting ready for the next merge window

 - A whole pile of cleanups and bugs fixes mostly to our interrupt
handling from Milton, which should make Thomas and Grant life easier in
moving some of the irq domain facility to generic code

And the usual pile of small bits & pieces, fixes, new boards, etc...

I have done a manual merge with your tree today to fixup a non-trivial
clash with Peter's scheduler_ipi() changes (the obvious fixup would have
missed a couple of places where that call needs to be added) and I've
added a pair of fixes on top of it to work around immediate breakage I
found after testing the result.

Note: At the time of sending this, it hadn't hit the mirrors yet.

Cheers,
Ben. 

The following changes since commit 39ab05c8e0b519ff0a04a869f065746e6e8c3d95:

  Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 (2011-05-19 18:24:11 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge

Alexey Kardashevskiy (1):
      powerpc: Per process DSCR + some fixes (try#4)

Anton Blanchard (10):
      powerpc: Replace open coded instruction patching with patch_instruction/patch_branch
      powerpc/rtas: Only sleep in rtas_busy_delay if we have useful work to do
      powerpc/pseries: Enable Emulex and Qlogic 10Gbit cards
      powerpc/pseries: Enable iSCSI support for a number of cards
      powerpc: Simplify 4k/64k copy_page logic
      powerpc: Remove static branch hint in giveup_altivec
      powerpc: Improve scheduling of system call entry instructions
      powerpc: Add ioremap_wc
      powerpc: Remove ioremap_flags
      powerpc/pseries: Print corrupt r3 in FWNMI code

Ben Hutchings (2):
      powerpc/kexec: Fix build failure on 32-bit SMP
      powerpc/kexec: Fix build failure on 32-bit SMP

Benjamin Herrenschmidt (29):
      powerpc/xics: Rewrite XICS driver
      powerpc: Add more Power7 specific definitions
      powerpc/xics: Make sure we have a sensible default distribution server
      powerpc: Define CPU feature for Architected 2.06 HV mode
      powerpc: In HV mode, use HSPRG0 for PACA
      powerpc: Base support for exceptions using HSRR0/1
      powerpc: More work to support HV exceptions
      powerpc: Initialize LPCR:DPFD on power7 to a sane default
      powerpc: Initialize TLB and LPID register on HV mode Power7
      powerpc: Call CPU ->restore callback earlier on secondary CPUs
      powerpc: Properly handshake CPUs going out of boot spin loop
      powerpc: Add NAP mode support on Power7 in HV mode
      powerpc: Perform an isync to synchronize CPUs coming out of secondary_hold
      powerpc: Improve prom_printf()
      powerpc/a2: Add some #defines for A2 specific instructions
      powerpc: Add SCOM infrastructure
      powerpc/nvram: Search for nvram using compatible
      powerpc: Add A2 cpu support
      powerpc: Add TLB size detection for TYPE_3E MMUs
      powerpc/book3e: Use way 3 for linear mapping bolted entry
      powerpc: Rename slb0_limit() to safe_stack_limit() and add Book3E support
      powerpc/smp: Make start_secondary_resume available to all CPU variants
      powerpc: Remove unused/obsolete CONFIG_XICS
      Merge branch 'merge' into next
      powerpc: Make early memory scan more resilient to out of order nodes
      Merge remote branch 'kumar/next' into next
      Merge remote branch 'origin/master' into merge
      powerpc/pmac: Update via-pmu to new syscore_ops
      powerpc: Fix hard CPU IDs detection

Bhaskar Upadhaya (1):
      powerpc: Adding bindings for flexcan controller

Brian King (1):
      powerpc/pseries: Add page coalescing support

David Gibson (2):
      powerpc/boot: Add an ePAPR compliant boot wrapper
      powerpc: Add WSP platform

Dipen Dudhat (1):
      powerpc: Integrated Flash controller device tree bindings

Gabriel Paubert (1):
      powerpc: Fix for Pegasos keyboard and mouse

Geert Uytterhoeven (2):
      powerpc/ps3: Update debug message for irq_set_chip_data()
      powerpc/mpc8610_hpcd: Do not use "/" in interrupt names

Grant Likely (1):
      powerpc/irq: Stop exporting irq_map

Ira Snyder (2):
      misc: Add CARMA DATA-FPGA Access Driver
      misc: Add CARMA DATA-FPGA Programmer support

Jack Miller (2):
      powerpc/book3e: Flush IPROT protected TLB entries leftover by firmware
      powerpc: Add early debug for WSP platforms

Justin Mattock (1):
      powerpc: Remove unused config in the Makefile

KOSAKI Motohiro (1):
      powerpc: Convert old cpumask API into new one

Kumar Gala (2):
      Merge remote branch 'benh/merge' into benh-next
      powerpc/fsl-booke64: Add support for Debug Level exception handler

Matt Evans (1):
      powerpc: Free up some CPU feature bits by moving out MMU-related features

Michael Ellerman (19):
      powerpc/mm: Standardise on MMU_NO_CONTEXT
      powerpc/mm: Fix slice state initialization for Book3E
      powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN
      powerpc/smp: smp_ops->kick_cpu() should be able to fail
      powerpc/nohash: Allocate stale_map[cpu] on CPU_UP_PREPARE not CPU_ONLINE
      of: Export of_irq_find_parent()
      powerpc/xics: xics.h relies on linux/interrupt.h
      powerpc/xics: Move irq_host matching into the ics backend
      powerpc: Index crit/dbg/mcheck stacks using cpu number on 64bit
      powerpc/pci: Split IO vs MMIO indirect access hooks
      powerpc/pci: Move IO workarounds to the common kernel dir
      powerpc/pci: Make IO workarounds init implicit when first bus is registered
      powerpc/pci: Properly initialize IO workaround "private"
      powerpc/numa: Look for ibm, associativity-reference-points at the root
      powerpc/irq: Dump chip data pointer in virq_mapping
      powerpc: Add MSR_64BIT
      powerpc: Use MSR_64BIT in places
      powerpc: Use MSR_64BIT in sstep.c, fix kprobes on BOOK3E
      powerpc/book3e: Fix extlb size

Michael Neuling (1):
      powerpc: Use new CPU feature bit to select 2.06 tlbie

Michal Marek (2):
      powerpc: Call gzip with -n
      powerpc: Use the deterministic mode of ar

Milton Miller (39):
      powerpc/kexec: Fix memory corruption from unallocated slaves
      powerpc: Don't search for paca in freed memory
      powerpc/kdump64: Don't reference freed memory as pacas
      powerpc/iseries: Cleanup and fix secondary startup
      powerpc: Respect nr_cpu_ids when calling set_cpu_possible and set_cpu_present
      powerpc: Use nr_cpu_ids in initial paca allocation
      powerpc: Call no-longer static setup_nr_cpu_ids instead of replicating it
      powerpc/mpic: Limit NR_CPUS loop to 32 bit
      powerpc/mpic: Break cpumask abstraction earlier
      powerpc: Remove call sites of MSG_ALL_BUT_SELF
      powerpc: Remove checks for MSG_ALL and MSG_ALL_BUT_SELF
      powerpc/mpic: Simplify ipi cpu mask handling
      powerpc: Remove powermac/pic.h
      powerpc: Remove alloc_maybe_bootmem for zalloc version
      powerpc: Remove stubbed beat smp support
      powerpc: Move smp_ops_t from machdep.h to smp.h
      powerpc: Consolidate ipi message mux and demux
      powerpc: Add kconfig for muxed smp ipi support
      powerpc: Use bytes instead of bitops in smp ipi multiplexing
      powerpc/xics: Cleanup xics_host_map and ipi
      powerpc: Radix trees are available before init_IRQ
      powerpc: Return early if irq_host lookup type is wrong
      powerpc: Remove trival irq_host_ops.unmap
      powerpc: Remove i8259 irq_host_ops->unmap
      powerpc/fsl_msi: Don't abuse platform_data for driver_data
      powerpc/fsl_msi: Use chip_data not handler_data
      powerpc/mpc5121_ads_cpld: Remove use of NO_IRQ_IGNORE
      powerpc/mpc62xx_pic: Fix get_irq handling of NO_IRQ
      powerpc/psurge: Create a irq_host for secondary cpus
      powerpc: Remove irq_host_ops->remap hook
      powerpc/spider-pic: Get pic from chip_data instead of irq_map
      powerpc/axon_msi: Validate msi irq via chip_data
      powerpc: Add virq_is_host to reduce virq_to_host usage
      powerpc: Remove virq_to_host
      powerpc: Make IRQ_NOREQUEST last to clear, first to set
      powerpc/pseries/iommu: Add additional checks when changing iommu mask
      powerpc/pseries/iommu: Remove ddw property when destroying window
      powerpc/pseries/iommu: Find windows after kexec during boot
      powerpc/pseries/iommu: Cleanup ddw naming

Nishanth Aravamudan (5):
      cxgb4: use pgprot_writecombine() on powerpc
      powerpc: Fix kexec with dynamic dma windows
      powerpc: Ensure dtl buffers do not cross 4k boundary
      pseries/iommu: Restore iommu table pointer when restoring iommu ops
      powerpc/pseries/iommu: Use correct return type in dupe_ddw_if_already_created

Paul Mackerras (5):
      powerpc: Always use SPRN_SPRG_HSCRATCH0 when running in HV mode
      powerpc: Save register r9-r13 values accurately on interrupt with bad stack
      powerpc: Save Come-From Address Register (CFAR) in exception frame
      powerpc/kvm: Fix kvmppc_core_pending_dec
      powerpc/kvm: Fix the build for 32-bit Book 3S (classic) processors

Prabhakar Kushwaha (4):
      powerpc/85xx: P1020 DTS : re-organize dts files
      powerpc/85xx: P2020 DTS: re-organize dts files
      powerpc/85xx: Fix PCIe IDSEL for Px020RDB
      powerpc/85xx: Create dts of each core in CAMP mode for P1020RDB

Richard A Lary (3):
      powerpc/pseries/eeh: Propagate needs_freset flag to device at PE
      powerpc/pseries/eeh: Handle functional reset on non-PCIe device
      powerpc/eeh: Display eeh error location for bus and device

Richard A. Lary (1):
      powerpc/eeh: Add support for ibm,configure-pe RTAS call

Robert P. J. Day (1):
      powerpc/pseries/bsr: Remove redundant initialization of bsr dev_t declaration.

Scott Wood (7):
      powerpc/e5500: set non-base IVORs
      powerpc: Add fsl mpic timer binding
      powerpc/p1022ds: fix broken mpic timer node
      powerpc/mpic: parse 4-cell intspec types other than zero
      powerpc/mpic: add the mpic global timer support
      powerpc/e5500: add networking to defconfig
      powerpc/fsl: enable verbose bug output

Sebastian Siewior (1):
      powerpc: Remove last piece of GEMINI

Stephen Rothwell (1):
      powerpc: Fix compile with icwsx support

Stratos Psomadakis (1):
      powerpc/mm: Fix compiler warning in pgtable-ppc64.h [-Wunused-but-set-variable]

Timur Tabi (1):
      powerpc/86xx: don't pretend that we support 8-bit pixels on the MPC8610 HPCD

Tseng-Hui (Frank) Lin (3):
      powerpc: Add Initiate Coprocessor Store Word (icswx) support
      powerpc/pseries: Add RTAS event log v6 definition
      powerpc/pseries: Add support for IO event interrupts

Wanlong Gao (1):
      powerpc: Fix build warning of the defconfigs

kerstin jonsson (1):
      powerpc/4xx: Fix regression in SMP on 476

 .../devicetree/bindings/net/can/fsl-flexcan.txt    |   61 +
 .../devicetree/bindings/powerpc/fsl/ifc.txt        |   76 +
 .../devicetree/bindings/powerpc/fsl/mpic-timer.txt |   38 +
 .../devicetree/bindings/powerpc/fsl/mpic.txt       |    2 +-
 arch/powerpc/Kconfig                               |    6 +
 arch/powerpc/Kconfig.debug                         |    5 +
 arch/powerpc/boot/Makefile                         |    6 +-
 arch/powerpc/boot/crt0.S                           |  116 +-
 arch/powerpc/boot/dts/p1020rdb.dts                 |  332 +-----
 arch/powerpc/boot/dts/p1020rdb_camp_core0.dts      |  213 +++
 arch/powerpc/boot/dts/p1020rdb_camp_core1.dts      |  148 ++
 arch/powerpc/boot/dts/p1020si.dtsi                 |  377 +++++
 arch/powerpc/boot/dts/p1022ds.dts                  |  106 +-
 arch/powerpc/boot/dts/p2020ds.dts                  |  374 +-----
 arch/powerpc/boot/dts/p2020rdb.dts                 |  378 +-----
 arch/powerpc/boot/dts/p2020rdb_camp_core0.dts      |  245 +---
 arch/powerpc/boot/dts/p2020rdb_camp_core1.dts      |  150 ++-
 arch/powerpc/boot/dts/p2020si.dtsi                 |  382 ++++++
 arch/powerpc/boot/epapr.c                          |   66 +
 arch/powerpc/boot/wrapper                          |   19 +-
 arch/powerpc/boot/zImage.coff.lds.S                |    6 +-
 arch/powerpc/boot/zImage.lds.S                     |   57 +-
 arch/powerpc/configs/83xx/mpc8313_rdb_defconfig    |    1 -
 arch/powerpc/configs/83xx/mpc8315_rdb_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc8540_ads_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc8560_ads_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc85xx_cds_defconfig    |    1 -
 arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig   |    1 -
 arch/powerpc/configs/c2k_defconfig                 |    4 +-
 arch/powerpc/configs/e55xx_smp_defconfig           |   39 +-
 arch/powerpc/configs/mpc85xx_defconfig             |    1 -
 arch/powerpc/configs/mpc85xx_smp_defconfig         |    1 -
 arch/powerpc/configs/mpc86xx_defconfig             |    1 -
 arch/powerpc/configs/pmac32_defconfig              |    4 +-
 arch/powerpc/configs/ppc6xx_defconfig              |    4 +-
 arch/powerpc/configs/ps3_defconfig                 |    4 +-
 arch/powerpc/configs/pseries_defconfig             |    8 +
 arch/powerpc/include/asm/cputable.h                |   55 +-
 arch/powerpc/include/asm/cputhreads.h              |   12 +-
 arch/powerpc/include/asm/dbell.h                   |    3 +-
 arch/powerpc/include/asm/emulated_ops.h            |    4 +
 arch/powerpc/include/asm/exception-64s.h           |  113 +-
 arch/powerpc/include/asm/feature-fixups.h          |   15 +-
 arch/powerpc/include/asm/firmware.h                |    3 +-
 arch/powerpc/include/asm/hvcall.h                  |   12 +
 .../cell => include/asm}/io-workarounds.h          |    1 -
 arch/powerpc/include/asm/io.h                      |   33 +-
 arch/powerpc/include/asm/io_event_irq.h            |   54 +
 arch/powerpc/include/asm/irq.h                     |   18 +-
 arch/powerpc/include/asm/kexec.h                   |    2 +-
 arch/powerpc/include/asm/kvm_asm.h                 |    1 +
 arch/powerpc/include/asm/kvm_book3s_asm.h          |    1 +
 arch/powerpc/include/asm/lppaca.h                  |    2 +
 arch/powerpc/include/asm/machdep.h                 |   22 +-
 arch/powerpc/include/asm/mmu-book3e.h              |   20 +
 arch/powerpc/include/asm/mmu-hash64.h              |    6 +
 arch/powerpc/include/asm/mmu.h                     |   52 +-
 arch/powerpc/include/asm/mmu_context.h             |   12 +-
 arch/powerpc/include/asm/mpic.h                    |    5 +-
 arch/powerpc/include/asm/pSeries_reconfig.h        |    5 +
 arch/powerpc/include/asm/paca.h                    |   11 +-
 arch/powerpc/include/asm/page_64.h                 |   21 +-
 arch/powerpc/include/asm/pgtable-ppc64.h           |   13 +-
 arch/powerpc/include/asm/ppc-opcode.h              |   35 +
 arch/powerpc/include/asm/ppc_asm.h                 |    1 +
 arch/powerpc/include/asm/processor.h               |    4 +
 arch/powerpc/include/asm/reg.h                     |  104 ++-
 arch/powerpc/include/asm/reg_a2.h                  |  165 +++
 arch/powerpc/include/asm/reg_booke.h               |   10 +-
 arch/powerpc/include/asm/rtas.h                    |   45 +-
 arch/powerpc/include/asm/scom.h                    |  156 +++
 arch/powerpc/include/asm/smp.h                     |   38 +-
 arch/powerpc/include/asm/system.h                  |    2 -
 arch/powerpc/include/asm/tlbflush.h                |    2 +
 arch/powerpc/include/asm/udbg.h                    |    1 +
 arch/powerpc/include/asm/wsp.h                     |   14 +
 arch/powerpc/include/asm/xics.h                    |  142 ++
 arch/powerpc/kernel/Makefile                       |    6 +-
 arch/powerpc/kernel/asm-offsets.c                  |    1 +
 arch/powerpc/kernel/cpu_setup_a2.S                 |  114 ++
 arch/powerpc/kernel/cpu_setup_fsl_booke.S          |    3 +
 arch/powerpc/kernel/cpu_setup_power7.S             |   91 ++
 arch/powerpc/kernel/cputable.c                     |   66 +-
 arch/powerpc/kernel/crash.c                        |   91 +-
 arch/powerpc/kernel/dbell.c                        |   65 +-
 arch/powerpc/kernel/entry_64.S                     |   27 +-
 arch/powerpc/kernel/exceptions-64e.S               |  202 +++-
 arch/powerpc/kernel/exceptions-64s.S               |  216 +++-
 arch/powerpc/kernel/head_32.S                      |   22 -
 arch/powerpc/kernel/head_64.S                      |   49 +-
 arch/powerpc/kernel/idle_power7.S                  |   97 ++
 .../{platforms/cell => kernel}/io-workarounds.c    |   31 +-
 arch/powerpc/kernel/irq.c                          |  166 +--
 arch/powerpc/kernel/kgdb.c                         |    2 +-
 arch/powerpc/kernel/lparcfg.c                      |   53 +-
 arch/powerpc/kernel/misc_32.S                      |   11 +
 arch/powerpc/kernel/misc_64.S                      |   13 +-
 arch/powerpc/kernel/paca.c                         |   30 +-
 arch/powerpc/kernel/pci_dn.c                       |    3 +-
 arch/powerpc/kernel/ppc_ksyms.c                    |    5 +-
 arch/powerpc/kernel/process.c                      |   20 +-
 arch/powerpc/kernel/prom.c                         |   64 +-
 arch/powerpc/kernel/prom_init.c                    |   30 +-
 arch/powerpc/kernel/rtas.c                         |    4 +-
 arch/powerpc/kernel/setup-common.c                 |   22 +-
 arch/powerpc/kernel/setup_32.c                     |    1 +
 arch/powerpc/kernel/setup_64.c                     |   44 +-
 arch/powerpc/kernel/signal_64.c                    |    4 +-
 arch/powerpc/kernel/smp.c                          |  138 ++-
 arch/powerpc/kernel/sysfs.c                        |   38 +
 arch/powerpc/kernel/traps.c                        |   28 +-
 arch/powerpc/kernel/udbg.c                         |    2 +
 arch/powerpc/kernel/udbg_16550.c                   |   51 +
 arch/powerpc/kernel/vector.S                       |    2 +-
 arch/powerpc/kvm/book3s.c                          |    2 +-
 arch/powerpc/kvm/book3s_rmhandlers.S               |   13 +-
 arch/powerpc/kvm/book3s_segment.S                  |   12 +-
 arch/powerpc/lib/alloc.c                           |    8 -
 arch/powerpc/lib/copypage_64.S                     |    7 +-
 arch/powerpc/lib/devres.c                          |    6 +-
 arch/powerpc/lib/sstep.c                           |   61 +-
 arch/powerpc/mm/hash_low_64.S                      |    8 +-
 arch/powerpc/mm/hash_native_64.c                   |   18 +-
 arch/powerpc/mm/hash_utils_64.c                    |   62 +-
 arch/powerpc/mm/hugetlbpage.c                      |    2 +-
 arch/powerpc/mm/mmu_context_hash64.c               |  214 +++-
 arch/powerpc/mm/mmu_context_nohash.c               |   18 +-
 arch/powerpc/mm/numa.c                             |   17 +-
 arch/powerpc/mm/pgtable_32.c                       |   12 +-
 arch/powerpc/mm/pgtable_64.c                       |   15 +-
 arch/powerpc/mm/slb.c                              |   10 +-
 arch/powerpc/mm/slb_low.S                          |    8 +-
 arch/powerpc/mm/stab.c                             |    2 +-
 arch/powerpc/platforms/44x/iss4xx.c                |    6 +-
 arch/powerpc/platforms/512x/mpc5121_ads_cpld.c     |   10 +-
 arch/powerpc/platforms/52xx/media5200.c            |    4 +-
 arch/powerpc/platforms/52xx/mpc52xx_pic.c          |   83 +-
 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c       |   12 +-
 arch/powerpc/platforms/85xx/smp.c                  |   12 +-
 arch/powerpc/platforms/85xx/socrates_fpga_pic.c    |   26 +-
 arch/powerpc/platforms/86xx/gef_pic.c              |   10 +-
 arch/powerpc/platforms/86xx/mpc8610_hpcd.c         |   99 +-
 arch/powerpc/platforms/86xx/mpc86xx_smp.c          |    6 +-
 arch/powerpc/platforms/8xx/m8xx_setup.c            |    2 +-
 arch/powerpc/platforms/Kconfig                     |   31 +-
 arch/powerpc/platforms/Kconfig.cputype             |   24 +
 arch/powerpc/platforms/Makefile                    |    1 +
 arch/powerpc/platforms/cell/Kconfig                |    4 +-
 arch/powerpc/platforms/cell/Makefile               |    9 +-
 arch/powerpc/platforms/cell/axon_msi.c             |    3 +-
 arch/powerpc/platforms/cell/beat_interrupt.c       |   27 -
 arch/powerpc/platforms/cell/beat_interrupt.h       |    3 -
 arch/powerpc/platforms/cell/beat_smp.c             |  124 --
 arch/powerpc/platforms/cell/cbe_regs.c             |   11 +-
 arch/powerpc/platforms/cell/celleb_pci.c           |   25 +-
 arch/powerpc/platforms/cell/celleb_pci.h           |    3 +-
 arch/powerpc/platforms/cell/celleb_setup.c         |    4 -
 arch/powerpc/platforms/cell/interrupt.c            |   16 +-
 arch/powerpc/platforms/cell/qpace_setup.c          |    1 -
 arch/powerpc/platforms/cell/setup.c                |    4 +-
 arch/powerpc/platforms/cell/smp.c                  |   37 +-
 arch/powerpc/platforms/cell/spider-pci.c           |    3 +-
 arch/powerpc/platforms/cell/spider-pic.c           |   21 +-
 arch/powerpc/platforms/cell/spufs/sched.c          |    2 +-
 arch/powerpc/platforms/chrp/smp.c                  |    4 +-
 arch/powerpc/platforms/embedded6xx/flipper-pic.c   |   15 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c      |   15 +-
 arch/powerpc/platforms/iseries/Kconfig             |    4 +-
 arch/powerpc/platforms/iseries/exception.S         |   62 +-
 arch/powerpc/platforms/iseries/irq.c               |   13 +-
 arch/powerpc/platforms/iseries/setup.c             |    9 +-
 arch/powerpc/platforms/iseries/smp.c               |   45 +-
 arch/powerpc/platforms/iseries/smp.h               |    6 -
 arch/powerpc/platforms/powermac/Kconfig            |   11 +-
 arch/powerpc/platforms/powermac/pic.c              |   25 +-
 arch/powerpc/platforms/powermac/pic.h              |   11 -
 arch/powerpc/platforms/powermac/pmac.h             |    1 +
 arch/powerpc/platforms/powermac/smp.c              |   97 +-
 arch/powerpc/platforms/ps3/interrupt.c             |    8 +-
 arch/powerpc/platforms/ps3/smp.c                   |   22 +-
 arch/powerpc/platforms/ps3/spu.c                   |    4 +-
 arch/powerpc/platforms/pseries/Kconfig             |   23 +-
 arch/powerpc/platforms/pseries/Makefile            |    2 +-
 arch/powerpc/platforms/pseries/dtl.c               |   20 +-
 arch/powerpc/platforms/pseries/eeh.c               |   82 +-
 arch/powerpc/platforms/pseries/eeh_driver.c        |   22 +-
 arch/powerpc/platforms/pseries/hotplug-cpu.c       |    5 +-
 arch/powerpc/platforms/pseries/io_event_irq.c      |  231 ++++
 arch/powerpc/platforms/pseries/iommu.c             |  117 +-
 arch/powerpc/platforms/pseries/kexec.c             |    5 +-
 arch/powerpc/platforms/pseries/lpar.c              |   48 +-
 arch/powerpc/platforms/pseries/plpar_wrappers.h    |   27 -
 arch/powerpc/platforms/pseries/ras.c               |    6 +-
 arch/powerpc/platforms/pseries/setup.c             |   50 +-
 arch/powerpc/platforms/pseries/smp.c               |   24 +-
 arch/powerpc/platforms/pseries/xics.c              |  949 -------------
 arch/powerpc/platforms/pseries/xics.h              |   23 -
 arch/powerpc/platforms/wsp/Kconfig                 |   28 +
 arch/powerpc/platforms/wsp/Makefile                |    6 +
 arch/powerpc/platforms/wsp/ics.c                   |  712 ++++++++++
 arch/powerpc/platforms/wsp/ics.h                   |   20 +
 arch/powerpc/platforms/wsp/opb_pic.c               |  332 +++++
 arch/powerpc/platforms/wsp/psr2.c                  |   95 ++
 arch/powerpc/platforms/wsp/scom_smp.c              |  427 ++++++
 arch/powerpc/platforms/wsp/scom_wsp.c              |   77 ++
 arch/powerpc/platforms/wsp/setup.c                 |   36 +
 arch/powerpc/platforms/wsp/smp.c                   |   88 ++
 arch/powerpc/platforms/wsp/wsp.h                   |   17 +
 arch/powerpc/sysdev/Kconfig                        |   10 +
 arch/powerpc/sysdev/Makefile                       |    6 +
 arch/powerpc/sysdev/axonram.c                      |    2 +-
 arch/powerpc/sysdev/cpm1.c                         |    8 +-
 arch/powerpc/sysdev/cpm2_pic.c                     |   10 +-
 arch/powerpc/sysdev/fsl_85xx_cache_sram.c          |    4 +-
 arch/powerpc/sysdev/fsl_msi.c                      |   10 +-
 arch/powerpc/sysdev/i8259.c                        |   13 -
 arch/powerpc/sysdev/ipic.c                         |   16 +-
 arch/powerpc/sysdev/mmio_nvram.c                   |    2 +
 arch/powerpc/sysdev/mpc8xx_pic.c                   |   10 +-
 arch/powerpc/sysdev/mpc8xxx_gpio.c                 |   12 +-
 arch/powerpc/sysdev/mpic.c                         |  209 ++-
 arch/powerpc/sysdev/mv64x60_pic.c                  |   14 +-
 arch/powerpc/sysdev/qe_lib/qe_ic.c                 |    6 +-
 arch/powerpc/sysdev/scom.c                         |  192 +++
 arch/powerpc/sysdev/uic.c                          |   12 +-
 arch/powerpc/sysdev/xics/Kconfig                   |   13 +
 arch/powerpc/sysdev/xics/Makefile                  |    6 +
 arch/powerpc/sysdev/xics/icp-hv.c                  |  164 +++
 arch/powerpc/sysdev/xics/icp-native.c              |  293 ++++
 arch/powerpc/sysdev/xics/ics-rtas.c                |  240 ++++
 arch/powerpc/sysdev/xics/xics-common.c             |  443 ++++++
 arch/powerpc/sysdev/xilinx_intc.c                  |    8 +-
 arch/powerpc/xmon/xmon.c                           |   38 +-
 drivers/char/bsr.c                                 |    2 +-
 drivers/infiniband/hw/cxgb4/t4.h                   |    5 +-
 drivers/macintosh/via-pmu.c                        |   56 +-
 drivers/misc/Kconfig                               |    1 +
 drivers/misc/Makefile                              |    1 +
 drivers/misc/carma/Kconfig                         |   17 +
 drivers/misc/carma/Makefile                        |    2 +
 drivers/misc/carma/carma-fpga-program.c            | 1141 ++++++++++++++++
 drivers/misc/carma/carma-fpga.c                    | 1433 ++++++++++++++++++++
 drivers/of/irq.c                                   |    2 +-
 include/linux/of_irq.h                             |    1 +
 244 files changed, 11490 insertions(+), 4116 deletions(-)
 create mode 100755 Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt
 create mode 100644 arch/powerpc/boot/dts/p1020rdb_camp_core0.dts
 create mode 100644 arch/powerpc/boot/dts/p1020rdb_camp_core1.dts
 create mode 100644 arch/powerpc/boot/dts/p1020si.dtsi
 create mode 100644 arch/powerpc/boot/dts/p2020si.dtsi
 create mode 100644 arch/powerpc/boot/epapr.c
 rename arch/powerpc/{platforms/cell => include/asm}/io-workarounds.h (97%)
 create mode 100644 arch/powerpc/include/asm/io_event_irq.h
 create mode 100644 arch/powerpc/include/asm/reg_a2.h
 create mode 100644 arch/powerpc/include/asm/scom.h
 create mode 100644 arch/powerpc/include/asm/wsp.h
 create mode 100644 arch/powerpc/include/asm/xics.h
 create mode 100644 arch/powerpc/kernel/cpu_setup_a2.S
 create mode 100644 arch/powerpc/kernel/cpu_setup_power7.S
 create mode 100644 arch/powerpc/kernel/idle_power7.S
 rename arch/powerpc/{platforms/cell => kernel}/io-workarounds.c (95%)
 delete mode 100644 arch/powerpc/platforms/cell/beat_smp.c
 delete mode 100644 arch/powerpc/platforms/iseries/smp.h
 delete mode 100644 arch/powerpc/platforms/powermac/pic.h
 create mode 100644 arch/powerpc/platforms/pseries/io_event_irq.c
 delete mode 100644 arch/powerpc/platforms/pseries/xics.c
 delete mode 100644 arch/powerpc/platforms/pseries/xics.h
 create mode 100644 arch/powerpc/platforms/wsp/Kconfig
 create mode 100644 arch/powerpc/platforms/wsp/Makefile
 create mode 100644 arch/powerpc/platforms/wsp/ics.c
 create mode 100644 arch/powerpc/platforms/wsp/ics.h
 create mode 100644 arch/powerpc/platforms/wsp/opb_pic.c
 create mode 100644 arch/powerpc/platforms/wsp/psr2.c
 create mode 100644 arch/powerpc/platforms/wsp/scom_smp.c
 create mode 100644 arch/powerpc/platforms/wsp/scom_wsp.c
 create mode 100644 arch/powerpc/platforms/wsp/setup.c
 create mode 100644 arch/powerpc/platforms/wsp/smp.c
 create mode 100644 arch/powerpc/platforms/wsp/wsp.h
 create mode 100644 arch/powerpc/sysdev/scom.c
 create mode 100644 arch/powerpc/sysdev/xics/Kconfig
 create mode 100644 arch/powerpc/sysdev/xics/Makefile
 create mode 100644 arch/powerpc/sysdev/xics/icp-hv.c
 create mode 100644 arch/powerpc/sysdev/xics/icp-native.c
 create mode 100644 arch/powerpc/sysdev/xics/ics-rtas.c
 create mode 100644 arch/powerpc/sysdev/xics/xics-common.c
 create mode 100644 drivers/misc/carma/Kconfig
 create mode 100644 drivers/misc/carma/Makefile
 create mode 100644 drivers/misc/carma/carma-fpga-program.c
 create mode 100644 drivers/misc/carma/carma-fpga.c

^ permalink raw reply

* [PATCH 2/2] powerpc: Fix hard CPU IDs detection
From: Benjamin Herrenschmidt @ 2011-05-20  7:51 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305877875-23157-1-git-send-email-benh@kernel.crashing.org>

commit 9d07bc841c9779b4d7902e417f4e509996ce805d
"powerpc: Properly handshake CPUs going out of boot spin loop"

Would cause a miscalculation of the hard CPU ID. It removes breaking
out of the loop when finding a match with a processor, thus the "i"
used as an index in the intserv array is always incorrect

This broke interrupt on my PowerMac laptop.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/kernel/prom.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 5311a26..48aeb55 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -278,6 +278,7 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 	int i, nthreads;
 	unsigned long len;
 	int found = -1;
+	int found_thread = 0;
 
 	/* We are scanning "cpu" nodes only */
 	if (type == NULL || strcmp(type, "cpu") != 0)
@@ -301,9 +302,11 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 		 * version 2 of the kexec param format adds the phys cpuid of
 		 * booted proc.
 		 */
-		if (initial_boot_params && initial_boot_params->version >= 2) {
-			if (intserv[i] == initial_boot_params->boot_cpuid_phys)
+		if (initial_boot_params->version >= 2) {
+			if (intserv[i] == initial_boot_params->boot_cpuid_phys) {
 				found = boot_cpu_count;
+				found_thread = i;
+			}
 		} else {
 			/*
 			 * Check if it's the boot-cpu, set it's hw index now,
@@ -322,9 +325,9 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 
 	if (found >= 0) {
 		DBG("boot cpu: logical %d physical %d\n", found,
-			intserv[i]);
+			intserv[found_thread]);
 		boot_cpuid = found;
-		set_hard_smp_processor_id(found, intserv[i]);
+		set_hard_smp_processor_id(found, intserv[found_thread]);
 
 		/*
 		 * PAPR defines "logical" PVR values for cpus that
-- 
1.7.1

^ permalink raw reply related

* [PATCH 1/2] powerpc/pmac: Update via-pmu to new syscore_ops
From: Benjamin Herrenschmidt @ 2011-05-20  7:51 UTC (permalink / raw)
  To: linuxppc-dev

This was left as a sysdev, breaking the build

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 drivers/macintosh/via-pmu.c |   56 +++++++++---------------------------------
 1 files changed, 12 insertions(+), 44 deletions(-)

diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 8b021eb..6cccd60 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -40,7 +40,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/device.h>
-#include <linux/sysdev.h>
+#include <linux/syscore_ops.h>
 #include <linux/freezer.h>
 #include <linux/syscalls.h>
 #include <linux/suspend.h>
@@ -2527,12 +2527,9 @@ void pmu_blink(int n)
 #if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
 int pmu_sys_suspended;
 
-static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
+static int pmu_syscore_suspend(void)
 {
-	if (state.event != PM_EVENT_SUSPEND || pmu_sys_suspended)
-		return 0;
-
-	/* Suspend PMU event interrupts */\
+	/* Suspend PMU event interrupts */
 	pmu_suspend();
 	pmu_sys_suspended = 1;
 
@@ -2544,12 +2541,12 @@ static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
 	return 0;
 }
 
-static int pmu_sys_resume(struct sys_device *sysdev)
+static void pmu_syscore_resume(void)
 {
 	struct adb_request req;
 
 	if (!pmu_sys_suspended)
-		return 0;
+		return;
 
 	/* Tell PMU we are ready */
 	pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
@@ -2562,50 +2559,21 @@ static int pmu_sys_resume(struct sys_device *sysdev)
 	/* Resume PMU event interrupts */
 	pmu_resume();
 	pmu_sys_suspended = 0;
-
-	return 0;
 }
 
-#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
-
-static struct sysdev_class pmu_sysclass = {
-	.name = "pmu",
-};
-
-static struct sys_device device_pmu = {
-	.cls		= &pmu_sysclass,
-};
-
-static struct sysdev_driver driver_pmu = {
-#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
-	.suspend	= &pmu_sys_suspend,
-	.resume		= &pmu_sys_resume,
-#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
+static struct syscore_ops pmu_syscore_ops = {
+	.suspend = pmu_syscore_suspend,
+	.resume = pmu_syscore_resume,
 };
 
-static int __init init_pmu_sysfs(void)
+static int pmu_syscore_register(void)
 {
-	int rc;
+	register_syscore_ops(&pmu_syscore_ops);
 
-	rc = sysdev_class_register(&pmu_sysclass);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys class\n");
-		return -ENODEV;
-	}
-	rc = sysdev_register(&device_pmu);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys device\n");
-		return -ENODEV;
-	}
-	rc = sysdev_driver_register(&pmu_sysclass, &driver_pmu);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys driver\n");
-		return -ENODEV;
-	}
 	return 0;
 }
-
-subsys_initcall(init_pmu_sysfs);
+subsys_initcall(pmu_syscore_register);
+#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
 
 EXPORT_SYMBOL(pmu_request);
 EXPORT_SYMBOL(pmu_queue_request);
-- 
1.7.1

^ permalink raw reply related

* [PATCH 14/14] powerpc/qe: Limit QE support to ppc32
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-13-git-send-email-galak@kernel.crashing.org>

Only 32-bit SoCs have a QUICC Engine so limit the config option to PPC32.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/platforms/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index f970ca2..546ceea 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -266,7 +266,7 @@ config TAU_AVERAGE
 
 config QUICC_ENGINE
 	bool "Freescale QUICC Engine (QE) Support"
-	depends on FSL_SOC
+	depends on FSL_SOC && PPC32
 	select PPC_LIB_RHEAP
 	select CRC32
 	help
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 13/14] powerpc/85xx: Add PCI support in 64-bit mode on P5020DS
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-12-git-send-email-galak@kernel.crashing.org>

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/platforms/85xx/corenet_ds.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c
index 10af3c7..338e6dc 100644
--- a/arch/powerpc/platforms/85xx/corenet_ds.c
+++ b/arch/powerpc/platforms/85xx/corenet_ds.c
@@ -22,6 +22,7 @@
 #include <asm/time.h>
 #include <asm/machdep.h>
 #include <asm/pci-bridge.h>
+#include <asm/ppc-pci.h>
 #include <mm/mmu_decl.h>
 #include <asm/prom.h>
 #include <asm/udbg.h>
@@ -90,6 +91,10 @@ void __init corenet_ds_setup_arch(void)
 					hose->dma_window_size);
 		}
 	}
+
+#ifdef CONFIG_PPC64
+	pci_devs_phb_init();
+#endif
 #endif
 
 #ifdef CONFIG_SWIOTLB
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 12/14] powerpc/pci: Move FSL fixup from 32-bit to common
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-11-git-send-email-galak@kernel.crashing.org>

We need the FSL specific header fixup code on both 32-bit and 64-bit
platforms so just move the code into pci-common.c.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/kernel/pci-common.c |   18 ++++++++++++++++++
 arch/powerpc/kernel/pci_32.c     |   19 -------------------
 2 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 893af2a..4f134132c 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1728,3 +1728,21 @@ void __devinit pcibios_scan_phb(struct pci_controller *hose)
 	if (mode == PCI_PROBE_NORMAL)
 		hose->last_busno = bus->subordinate = pci_scan_child_bus(bus);
 }
+
+static void fixup_hide_host_resource_fsl(struct pci_dev *dev)
+{
+	int i, class = dev->class >> 8;
+
+	if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
+	     class == PCI_CLASS_BRIDGE_OTHER) &&
+		(dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
+		(dev->bus->parent == NULL)) {
+		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+			dev->resource[i].start = 0;
+			dev->resource[i].end = 0;
+			dev->resource[i].flags = 0;
+		}
+	}
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl);
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index bedb370..d521644 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -51,25 +51,6 @@ struct pci_dev *isa_bridge_pcidev;
 EXPORT_SYMBOL_GPL(isa_bridge_pcidev);
 
 static void
-fixup_hide_host_resource_fsl(struct pci_dev *dev)
-{
-	int i, class = dev->class >> 8;
-
-	if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
-	     class == PCI_CLASS_BRIDGE_OTHER) &&
-		(dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
-		(dev->bus->parent == NULL)) {
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			dev->resource[i].start = 0;
-			dev->resource[i].end = 0;
-			dev->resource[i].flags = 0;
-		}
-	}
-}
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl); 
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl); 
-
-static void
 fixup_cpc710_pci64(struct pci_dev* dev)
 {
 	/* Hide the PCI64 BARs from the kernel as their content doesn't
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 10/14] powerpc/85xx: Add basic P1023RDS board support
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-9-git-send-email-galak@kernel.crashing.org>

From: Roy Zang <tie-fei.zang@freescale.com>

The P1023 processor is an e500v2 based SoC that utilizes the DPAA
networking architecture.  This adds basic board support for non-DPAA
functionality (device tree, board file, etc).

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/boot/dts/p1023rds.dts           |  546 ++++++++++++++++++++++++++
 arch/powerpc/configs/85xx/p1023rds_defconfig |  173 ++++++++
 arch/powerpc/configs/mpc85xx_defconfig       |    7 +-
 arch/powerpc/configs/mpc85xx_smp_defconfig   |    6 +-
 arch/powerpc/platforms/85xx/Kconfig          |    6 +
 arch/powerpc/platforms/85xx/Makefile         |    1 +
 arch/powerpc/platforms/85xx/p1023_rds.c      |  162 ++++++++
 7 files changed, 892 insertions(+), 9 deletions(-)
 create mode 100644 arch/powerpc/boot/dts/p1023rds.dts
 create mode 100644 arch/powerpc/configs/85xx/p1023rds_defconfig
 create mode 100644 arch/powerpc/platforms/85xx/p1023_rds.c

diff --git a/arch/powerpc/boot/dts/p1023rds.dts b/arch/powerpc/boot/dts/p1023rds.dts
new file mode 100644
index 0000000..bfa96aa
--- /dev/null
+++ b/arch/powerpc/boot/dts/p1023rds.dts
@@ -0,0 +1,546 @@
+/*
+ * P1023 RDS Device Tree Source
+ *
+ * Copyright 2010-2011 Freescale Semiconductor Inc.
+ *
+ * Author: Roy Zang <tie-fei.zang@freescale.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+/ {
+	model = "fsl,P1023";
+	compatible = "fsl,P1023RDS";
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	aliases {
+		serial0 = &serial0;
+		serial1 = &serial1;
+		pci0 = &pci0;
+		pci1 = &pci1;
+		pci2 = &pci2;
+
+		crypto = &crypto;
+		sec_jr0 = &sec_jr0;
+		sec_jr1 = &sec_jr1;
+		sec_jr2 = &sec_jr2;
+		sec_jr3 = &sec_jr3;
+		rtic_a = &rtic_a;
+		rtic_b = &rtic_b;
+		rtic_c = &rtic_c;
+		rtic_d = &rtic_d;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: PowerPC,P1023@0 {
+			device_type = "cpu";
+			reg = <0x0>;
+			next-level-cache = <&L2>;
+		};
+
+		cpu1: PowerPC,P1023@1 {
+			device_type = "cpu";
+			reg = <0x1>;
+			next-level-cache = <&L2>;
+		};
+	};
+
+	memory {
+		device_type = "memory";
+	};
+
+	soc@ff600000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		device_type = "soc";
+		compatible = "fsl,p1023-immr", "simple-bus";
+		ranges = <0x0 0x0 0xff600000 0x200000>;
+		bus-frequency = <0>;		// Filled out by uboot.
+
+		ecm-law@0 {
+			compatible = "fsl,ecm-law";
+			reg = <0x0 0x1000>;
+			fsl,num-laws = <12>;
+		};
+
+		ecm@1000 {
+			compatible = "fsl,p1023-ecm", "fsl,ecm";
+			reg = <0x1000 0x1000>;
+			interrupts = <16 2>;
+			interrupt-parent = <&mpic>;
+		};
+
+		memory-controller@2000 {
+			compatible = "fsl,p1023-memory-controller";
+			reg = <0x2000 0x1000>;
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+		};
+
+		i2c@3000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			cell-index = <0>;
+			compatible = "fsl-i2c";
+			reg = <0x3000 0x100>;
+			interrupts = <43 2>;
+			interrupt-parent = <&mpic>;
+			dfsrr;
+			rtc@68 {
+				compatible = "dallas,ds1374";
+				reg = <0x68>;
+			};
+		};
+
+		i2c@3100 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			cell-index = <1>;
+			compatible = "fsl-i2c";
+			reg = <0x3100 0x100>;
+			interrupts = <43 2>;
+			interrupt-parent = <&mpic>;
+			dfsrr;
+		};
+
+		serial0: serial@4500 {
+			cell-index = <0>;
+			device_type = "serial";
+			compatible = "ns16550";
+			reg = <0x4500 0x100>;
+			clock-frequency = <0>;
+			interrupts = <42 2>;
+			interrupt-parent = <&mpic>;
+		};
+
+		serial1: serial@4600 {
+			cell-index = <1>;
+			device_type = "serial";
+			compatible = "ns16550";
+			reg = <0x4600 0x100>;
+			clock-frequency = <0>;
+			interrupts = <42 2>;
+			interrupt-parent = <&mpic>;
+		};
+
+		spi@7000 {
+			cell-index = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,p1023-espi", "fsl,mpc8536-espi";
+			reg = <0x7000 0x1000>;
+			interrupts = <59 0x2>;
+			interrupt-parent = <&mpic>;
+			fsl,espi-num-chipselects = <4>;
+
+			fsl_dataflash@0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "atmel,at45db081d";
+				reg = <0>;
+				spi-max-frequency = <40000000>; /* input clock */
+				partition@u-boot {
+					/* 512KB for u-boot Bootloader Image */
+					label = "u-boot-spi";
+					reg = <0x00000000 0x00080000>;
+					read-only;
+				};
+				partition@dtb {
+					/* 512KB for DTB Image */
+					label = "dtb-spi";
+					reg = <0x00080000 0x00080000>;
+					read-only;
+				};
+			};
+		};
+
+		gpio: gpio-controller@f000 {
+			#gpio-cells = <2>;
+			compatible = "fsl,qoriq-gpio";
+			reg = <0xf000 0x100>;
+			interrupts = <47 0x2>;
+			interrupt-parent = <&mpic>;
+			gpio-controller;
+		};
+
+		L2: l2-cache-controller@20000 {
+			compatible = "fsl,p1023-l2-cache-controller";
+			reg = <0x20000 0x1000>;
+			cache-line-size = <32>;	// 32 bytes
+			cache-size = <0x40000>; // L2,256K
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+		};
+
+		dma@21300 {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "fsl,eloplus-dma";
+			reg = <0x21300 0x4>;
+			ranges = <0x0 0x21100 0x200>;
+			cell-index = <0>;
+			dma-channel@0 {
+				compatible = "fsl,eloplus-dma-channel";
+				reg = <0x0 0x80>;
+				cell-index = <0>;
+				interrupt-parent = <&mpic>;
+				interrupts = <20 2>;
+			};
+			dma-channel@80 {
+				compatible = "fsl,eloplus-dma-channel";
+				reg = <0x80 0x80>;
+				cell-index = <1>;
+				interrupt-parent = <&mpic>;
+				interrupts = <21 2>;
+			};
+			dma-channel@100 {
+				compatible = "fsl,eloplus-dma-channel";
+				reg = <0x100 0x80>;
+				cell-index = <2>;
+				interrupt-parent = <&mpic>;
+				interrupts = <22 2>;
+			};
+			dma-channel@180 {
+				compatible = "fsl,eloplus-dma-channel";
+				reg = <0x180 0x80>;
+				cell-index = <3>;
+				interrupt-parent = <&mpic>;
+				interrupts = <23 2>;
+			};
+		};
+
+		usb@22000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl-usb2-dr";
+			reg = <0x22000 0x1000>;
+			interrupt-parent = <&mpic>;
+			interrupts = <28 0x2>;
+			dr_mode = "host";
+			phy_type = "ulpi";
+		};
+
+		crypto: crypto@300000 {
+			compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0x30000 0x10000>;
+			ranges = <0 0x30000 0x10000>;
+			interrupt-parent = <&mpic>;
+			interrupts = <58 2>;
+
+			sec_jr0: jr@1000 {
+				compatible = "fsl,sec-v4.2-job-ring",
+					     "fsl,sec-v4.0-job-ring";
+				reg = <0x1000 0x1000>;
+				interrupts = <45 2>;
+			};
+
+			sec_jr1: jr@2000 {
+				compatible = "fsl,sec-v4.2-job-ring",
+					     "fsl,sec-v4.0-job-ring";
+				reg = <0x2000 0x1000>;
+				interrupts = <45 2>;
+			};
+
+			sec_jr2: jr@3000 {
+				compatible = "fsl,sec-v4.2-job-ring",
+					     "fsl,sec-v4.0-job-ring";
+				reg = <0x3000 0x1000>;
+				interrupts = <57 2>;
+			};
+
+			sec_jr3: jr@4000 {
+				compatible = "fsl,sec-v4.2-job-ring",
+					     "fsl,sec-v4.0-job-ring";
+				reg = <0x4000 0x1000>;
+				interrupts = <57 2>;
+			};
+
+			rtic@6000 {
+				compatible = "fsl,sec-v4.2-rtic",
+					     "fsl,sec-v4.0-rtic";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x6000 0x100>;
+				ranges = <0x0 0x6100 0xe00>;
+
+				rtic_a: rtic-a@0 {
+					compatible = "fsl,sec-v4.2-rtic-memory",
+						     "fsl,sec-v4.0-rtic-memory";
+					reg = <0x00 0x20 0x100 0x80>;
+				};
+
+				rtic_b: rtic-b@20 {
+					compatible = "fsl,sec-v4.2-rtic-memory",
+						     "fsl,sec-v4.0-rtic-memory";
+					reg = <0x20 0x20 0x200 0x80>;
+				};
+
+				rtic_c: rtic-c@40 {
+					compatible = "fsl,sec-v4.2-rtic-memory",
+						     "fsl,sec-v4.0-rtic-memory";
+					reg = <0x40 0x20 0x300 0x80>;
+				};
+
+				rtic_d: rtic-d@60 {
+					compatible = "fsl,sec-v4.2-rtic-memory",
+						     "fsl,sec-v4.0-rtic-memory";
+					reg = <0x60 0x20 0x500 0x80>;
+				};
+			};
+		};
+
+		power@e0070{
+			compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc",
+			             "fsl,p1022-pmc";
+			reg = <0xe0070 0x20>;
+			etsec1_clk: soc-clk@B0{
+				fsl,pmcdr-mask = <0x00000080>;
+			};
+			etsec2_clk: soc-clk@B1{
+				fsl,pmcdr-mask = <0x00000040>;
+			};
+			etsec3_clk: soc-clk@B2{
+				fsl,pmcdr-mask = <0x00000020>;
+			};
+		};
+
+		mpic: pic@40000 {
+			interrupt-controller;
+			#address-cells = <0>;
+			#interrupt-cells = <2>;
+			reg = <0x40000 0x40000>;
+			compatible = "chrp,open-pic";
+			device_type = "open-pic";
+		};
+
+		msi@41600 {
+			compatible = "fsl,p1023-msi", "fsl,mpic-msi";
+			reg = <0x41600 0x80>;
+			msi-available-ranges = <0 0x100>;
+			interrupts = <
+				0xe0 0
+				0xe1 0
+				0xe2 0
+				0xe3 0
+				0xe4 0
+				0xe5 0
+				0xe6 0
+				0xe7 0>;
+			interrupt-parent = <&mpic>;
+		};
+
+		global-utilities@e0000 {	//global utilities block
+			compatible = "fsl,p1023-guts";
+			reg = <0xe0000 0x1000>;
+			fsl,has-rstcr;
+		};
+	};
+
+	localbus@ff605000 {
+		#address-cells = <2>;
+		#size-cells = <1>;
+		compatible = "fsl,p1023-elbc", "fsl,elbc", "simple-bus";
+		reg = <0 0xff605000 0 0x1000>;
+		interrupts = <19 2>;
+		interrupt-parent = <&mpic>;
+
+		/* NOR Flash, BCSR */
+		ranges = <0x0 0x0 0x0 0xee000000 0x02000000
+			  0x1 0x0 0x0 0xe0000000 0x00008000>;
+
+		nor@0,0 {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "cfi-flash";
+			reg = <0x0 0x0 0x02000000>;
+			bank-width = <1>;
+			device-width = <1>;
+			partition@0 {
+				label = "ramdisk";
+				reg = <0x00000000 0x01c00000>;
+			};
+			partition@1c00000 {
+				label = "kernel";
+				reg = <0x01c00000 0x002e0000>;
+			};
+			partiton@1ee0000 {
+				label = "dtb";
+				reg = <0x01ee0000 0x00020000>;
+			};
+			partition@1f00000 {
+				label = "firmware";
+				reg = <0x01f00000 0x00080000>;
+				read-only;
+			};
+			partition@1f80000 {
+				label = "u-boot";
+				reg = <0x01f80000 0x00080000>;
+				read-only;
+			};
+		};
+
+		fpga@1,0 {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "fsl,p1023rds-fpga";
+			reg = <1 0 0x8000>;
+			ranges = <0 1 0 0x8000>;
+
+			bcsr@20 {
+				compatible = "fsl,p1023rds-bcsr";
+				reg = <0x20 0x20>;
+			};
+		};
+	};
+
+	pci0: pcie@ff60a000 {
+		compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+		cell-index = <1>;
+		device_type = "pci";
+		#size-cells = <2>;
+		#address-cells = <3>;
+		reg = <0 0xff60a000 0 0x1000>;
+		bus-range = <0 255>;
+		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
+			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
+		clock-frequency = <33333333>;
+		interrupt-parent = <&mpic>;
+		interrupts = <16 2>;
+		pcie@0 {
+			reg = <0x0 0x0 0x0 0x0 0x0>;
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			#address-cells = <3>;
+			device_type = "pci";
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+			interrupt-map-mask = <0xf800 0 0 7>;
+			interrupt-map = <
+				/* IDSEL 0x0 */
+				0000 0 0 1 &mpic 0 1
+				0000 0 0 2 &mpic 1 1
+				0000 0 0 3 &mpic 2 1
+				0000 0 0 4 &mpic 3 1
+				>;
+			ranges = <0x2000000 0x0 0xc0000000
+				  0x2000000 0x0 0xc0000000
+				  0x0 0x20000000
+
+				  0x1000000 0x0 0x0
+				  0x1000000 0x0 0x0
+				  0x0 0x100000>;
+		};
+	};
+
+	pci1: pcie@ff609000 {
+		compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+		cell-index = <2>;
+		device_type = "pci";
+		#size-cells = <2>;
+		#address-cells = <3>;
+		reg = <0 0xff609000 0 0x1000>;
+		bus-range = <0 255>;
+		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
+			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
+		clock-frequency = <33333333>;
+		interrupt-parent = <&mpic>;
+		interrupts = <16 2>;
+		pcie@0 {
+			reg = <0x0 0x0 0x0 0x0 0x0>;
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			#address-cells = <3>;
+			device_type = "pci";
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+			interrupt-map-mask = <0xf800 0 0 7>;
+			interrupt-map = <
+				/* IDSEL 0x0 */
+				0000 0 0 1 &mpic 4 1
+				0000 0 0 2 &mpic 5 1
+				0000 0 0 3 &mpic 6 1
+				0000 0 0 4 &mpic 7 1
+				>;
+			ranges = <0x2000000 0x0 0xa0000000
+				  0x2000000 0x0 0xa0000000
+				  0x0 0x20000000
+
+				  0x1000000 0x0 0x0
+				  0x1000000 0x0 0x0
+				  0x0 0x100000>;
+		};
+	};
+
+	pci2: pcie@ff60b000 {
+		cell-index = <3>;
+		compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+		device_type = "pci";
+		#size-cells = <2>;
+		#address-cells = <3>;
+		reg = <0 0xff60b000 0 0x1000>;
+		bus-range = <0 255>;
+		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
+			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
+		clock-frequency = <33333333>;
+		interrupt-parent = <&mpic>;
+		interrupts = <16 2>;
+		pcie@0 {
+			reg = <0x0 0x0 0x0 0x0 0x0>;
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			#address-cells = <3>;
+			device_type = "pci";
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+			interrupt-map-mask = <0xf800 0 0 7>;
+			interrupt-map = <
+				/* IDSEL 0x0 */
+				0000 0 0 1 &mpic 8 1
+				0000 0 0 2 &mpic 9 1
+				0000 0 0 3 &mpic 10 1
+				0000 0 0 4 &mpic 11 1
+				>;
+			ranges = <0x2000000 0x0 0x80000000
+				  0x2000000 0x0 0x80000000
+				  0x0 0x20000000
+
+				  0x1000000 0x0 0x0
+				  0x1000000 0x0 0x0
+				  0x0 0x100000>;
+		};
+	};
+};
diff --git a/arch/powerpc/configs/85xx/p1023rds_defconfig b/arch/powerpc/configs/85xx/p1023rds_defconfig
new file mode 100644
index 0000000..980ff8f
--- /dev/null
+++ b/arch/powerpc/configs/85xx/p1023rds_defconfig
@@ -0,0 +1,173 @@
+CONFIG_PPC_85xx=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
+CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_AUDIT=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_EMBEDDED=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_P1023_RDS=y
+CONFIG_QUICC_ENGINE=y
+CONFIG_QE_GPIO=y
+CONFIG_CPM2=y
+CONFIG_MPC8xxx_GPIO=y
+CONFIG_HIGHMEM=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_MATH_EMULATION=y
+CONFIG_SWIOTLB=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIEAER is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCI_MSI=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=y
+CONFIG_NET_KEY=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_INET_ESP=y
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_IP_SCTP=m
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_PROC_DEVICETREE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=131072
+CONFIG_MISC_DEVICES=y
+CONFIG_EEPROM_LEGACY=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_ATA=y
+CONFIG_SATA_FSL=y
+CONFIG_SATA_SIL24=y
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+CONFIG_MARVELL_PHY=y
+CONFIG_DAVICOM_PHY=y
+CONFIG_CICADA_PHY=y
+CONFIG_VITESSE_PHY=y
+CONFIG_FIXED_PHY=y
+CONFIG_NET_ETHERNET=y
+CONFIG_FS_ENET=y
+CONFIG_E1000E=y
+CONFIG_FSL_PQ_MDIO=y
+CONFIG_INPUT_FF_MEMLESS=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_QE=m
+CONFIG_HW_RANDOM=y
+CONFIG_NVRAM=y
+CONFIG_I2C=y
+CONFIG_I2C_CPM=m
+CONFIG_I2C_MPC=y
+# CONFIG_HWMON is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_EDAC=y
+CONFIG_EDAC_MM_EDAC=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_DMADEVICES=y
+CONFIG_FSL_DMA=y
+# CONFIG_NET_DMA is not set
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_TMPFS=y
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_CRC_T10DIF=y
+CONFIG_FRAME_WARN=8092
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_VIRQ_DEBUG=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 96b89df..1ac5198 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -5,6 +5,7 @@ CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_AUDIT=y
+CONFIG_SPARSE_IRQ=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=14
@@ -26,6 +27,7 @@ CONFIG_MPC8536_DS=y
 CONFIG_MPC85xx_DS=y
 CONFIG_MPC85xx_RDB=y
 CONFIG_P1022_DS=y
+CONFIG_P1023_RDS=y
 CONFIG_SOCRATES=y
 CONFIG_KSI8560=y
 CONFIG_XES_MPC85xx=y
@@ -44,7 +46,6 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_BINFMT_MISC=m
 CONFIG_MATH_EMULATION=y
-CONFIG_SPARSE_IRQ=y
 CONFIG_FORCE_MAX_ZONEORDER=12
 CONFIG_PCI=y
 CONFIG_PCI_MSI=y
@@ -65,8 +66,6 @@ CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_BOOTP=y
 CONFIG_IP_PNP_RARP=y
 CONFIG_NET_IPIP=y
-CONFIG_NET_IPGRE=y
-CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
@@ -170,7 +169,6 @@ CONFIG_FSL_DMA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_INOTIFY=y
 CONFIG_ISO9660_FS=m
 CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
@@ -205,7 +203,6 @@ CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEBUG_INFO=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 CONFIG_SYSCTL_SYSCALL_CHECK=y
 CONFIG_VIRQ_DEBUG=y
 CONFIG_CRYPTO_PCBC=m
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index de65841..f77eddd 100644
--- a/arch/powerpc/configs/mpc85xx_smp_defconfig
+++ b/arch/powerpc/configs/mpc85xx_smp_defconfig
@@ -7,6 +7,7 @@ CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_AUDIT=y
+CONFIG_SPARSE_IRQ=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=14
@@ -28,6 +29,7 @@ CONFIG_MPC8536_DS=y
 CONFIG_MPC85xx_DS=y
 CONFIG_MPC85xx_RDB=y
 CONFIG_P1022_DS=y
+CONFIG_P1023_RDS=y
 CONFIG_SOCRATES=y
 CONFIG_KSI8560=y
 CONFIG_XES_MPC85xx=y
@@ -46,7 +48,6 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_BINFMT_MISC=m
 CONFIG_MATH_EMULATION=y
-CONFIG_SPARSE_IRQ=y
 CONFIG_FORCE_MAX_ZONEORDER=12
 CONFIG_PCI=y
 CONFIG_PCI_MSI=y
@@ -67,8 +68,6 @@ CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_BOOTP=y
 CONFIG_IP_PNP_RARP=y
 CONFIG_NET_IPIP=y
-CONFIG_NET_IPGRE=y
-CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
@@ -172,7 +171,6 @@ CONFIG_FSL_DMA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_INOTIFY=y
 CONFIG_ISO9660_FS=m
 CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index b6976e1..6db0275 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -75,6 +75,12 @@ config P1022_DS
 	help
 	  This option enables support for the Freescale P1022DS reference board.
 
+config P1023_RDS
+	bool "Freescale P1023 RDS"
+	select DEFAULT_UIMAGE
+	help
+	  This option enables support for the P1023 RDS board
+
 config SOCRATES
 	bool "Socrates"
 	select DEFAULT_UIMAGE
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index dd70db7..5c08be5 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_MPC85xx_DS)  += mpc85xx_ds.o
 obj-$(CONFIG_MPC85xx_MDS) += mpc85xx_mds.o
 obj-$(CONFIG_MPC85xx_RDB) += mpc85xx_rdb.o
 obj-$(CONFIG_P1022_DS)    += p1022_ds.o
+obj-$(CONFIG_P1023_RDS)   += p1023_rds.o
 obj-$(CONFIG_P3041_DS)    += p3041_ds.o corenet_ds.o
 obj-$(CONFIG_P4080_DS)    += p4080_ds.o corenet_ds.o
 obj-$(CONFIG_P5020_DS)    += p5020_ds.o corenet_ds.o
diff --git a/arch/powerpc/platforms/85xx/p1023_rds.c b/arch/powerpc/platforms/85xx/p1023_rds.c
new file mode 100644
index 0000000..835e0b3
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/p1023_rds.c
@@ -0,0 +1,162 @@
+/*
+ * Copyright 2010-2011 Freescale Semiconductor, Inc.
+ *
+ * Author: Roy Zang <tie-fei.zang@freescale.com>
+ *
+ * Description:
+ * P1023 RDS Board Setup
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/pci.h>
+#include <linux/delay.h>
+#include <linux/module.h>
+#include <linux/fsl_devices.h>
+#include <linux/of_platform.h>
+#include <linux/of_device.h>
+
+#include <asm/system.h>
+#include <asm/time.h>
+#include <asm/machdep.h>
+#include <asm/pci-bridge.h>
+#include <mm/mmu_decl.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/mpic.h>
+
+#include <sysdev/fsl_soc.h>
+#include <sysdev/fsl_pci.h>
+
+/* ************************************************************************
+ *
+ * Setup the architecture
+ *
+ */
+#ifdef CONFIG_SMP
+void __init mpc85xx_smp_init(void);
+#endif
+
+static void __init mpc85xx_rds_setup_arch(void)
+{
+	struct device_node *np;
+
+	if (ppc_md.progress)
+		ppc_md.progress("p1023_rds_setup_arch()", 0);
+
+	/* Map BCSR area */
+	np = of_find_node_by_name(NULL, "bcsr");
+	if (np != NULL) {
+		static u8 __iomem *bcsr_regs;
+
+		bcsr_regs = of_iomap(np, 0);
+		of_node_put(np);
+
+		if (!bcsr_regs) {
+			printk(KERN_ERR
+			       "BCSR: Failed to map bcsr register space\n");
+			return;
+		} else {
+#define BCSR15_I2C_BUS0_SEG_CLR		0x07
+#define BCSR15_I2C_BUS0_SEG2		0x02
+/*
+ * Note: Accessing exclusively i2c devices.
+ *
+ * The i2c controller selects initially ID EEPROM in the u-boot;
+ * but if menu configuration selects RTC support in the kernel,
+ * the i2c controller switches to select RTC chip in the kernel.
+ */
+#ifdef CONFIG_RTC_CLASS
+			/* Enable RTC chip on the segment #2 of i2c */
+			clrbits8(&bcsr_regs[15], BCSR15_I2C_BUS0_SEG_CLR);
+			setbits8(&bcsr_regs[15], BCSR15_I2C_BUS0_SEG2);
+#endif
+
+			iounmap(bcsr_regs);
+		}
+	}
+
+#ifdef CONFIG_PCI
+	for_each_compatible_node(np, "pci", "fsl,p1023-pcie")
+		fsl_add_bridge(np, 0);
+#endif
+
+#ifdef CONFIG_SMP
+	mpc85xx_smp_init();
+#endif
+}
+
+static struct of_device_id p1023_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{},
+};
+
+
+static int __init p1023_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, p1023_ids, NULL);
+
+	return 0;
+}
+
+machine_device_initcall(p1023_rds, p1023_publish_devices);
+
+static void __init mpc85xx_rds_pic_init(void)
+{
+	struct mpic *mpic;
+	struct resource r;
+	struct device_node *np = NULL;
+
+	np = of_find_node_by_type(NULL, "open-pic");
+	if (!np) {
+		printk(KERN_ERR "Could not find open-pic node\n");
+		return;
+	}
+
+	if (of_address_to_resource(np, 0, &r)) {
+		printk(KERN_ERR "Failed to map mpic register space\n");
+		of_node_put(np);
+		return;
+	}
+
+	mpic = mpic_alloc(np, r.start,
+		MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
+		MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
+		0, 256, " OpenPIC  ");
+
+	BUG_ON(mpic == NULL);
+	of_node_put(np);
+
+	mpic_init(mpic);
+}
+
+static int __init p1023_rds_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	return of_flat_dt_is_compatible(root, "fsl,P1023RDS");
+
+}
+
+define_machine(p1023_rds) {
+	.name			= "P1023 RDS",
+	.probe			= p1023_rds_probe,
+	.setup_arch		= mpc85xx_rds_setup_arch,
+	.init_IRQ		= mpc85xx_rds_pic_init,
+	.get_irq		= mpic_get_irq,
+	.restart		= fsl_rstcr_restart,
+	.calibrate_decr		= generic_calibrate_decr,
+	.progress		= udbg_progress,
+#ifdef CONFIG_PCI
+	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus,
+#endif
+};
+
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 09/14] powerpc/85xx: Save scratch registers to thread info instead of using SPRGs.
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Ashish Kalra
In-Reply-To: <1305871771-16334-8-git-send-email-galak@kernel.crashing.org>

From: Ashish Kalra <Ashish.Kalra@freescale.com>

We expect this is actually faster, and we end up needing more space than we
can get from the SPRGs in some instances.  This is also useful when running
as a guest OS - SPRGs4-7 do not have guest versions.

8 slots are allocated in thread_info for this even though we only actually
use 4 of them - this allows space for future code to have more scratch
space (and we know we'll need it for things like hugetlb).

Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/include/asm/processor.h |    5 +++
 arch/powerpc/include/asm/reg.h       |    4 +-
 arch/powerpc/kernel/asm-offsets.c    |    3 ++
 arch/powerpc/kernel/head_booke.h     |   42 ++++++++++++++++++-----------
 arch/powerpc/kernel/head_fsl_booke.S |   49 ++++++++++++++++++---------------
 5 files changed, 63 insertions(+), 40 deletions(-)

diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
index d50c2b6..eb11a44 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -20,6 +20,7 @@
 
 #ifndef __ASSEMBLY__
 #include <linux/compiler.h>
+#include <linux/cache.h>
 #include <asm/ptrace.h>
 #include <asm/types.h>
 
@@ -156,6 +157,10 @@ struct thread_struct {
 #endif
 	struct pt_regs	*regs;		/* Pointer to saved register state */
 	mm_segment_t	fs;		/* for get_fs() validation */
+#ifdef CONFIG_BOOKE
+	/* BookE base exception scratch space; align on cacheline */
+	unsigned long	normsave[8] ____cacheline_aligned;
+#endif
 #ifdef CONFIG_PPC32
 	void		*pgdir;		/* root of page-table tree */
 #endif
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index fdec593..ef1d1d6 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -867,8 +867,8 @@
 #define SPRN_SPRG_WSCRATCH2	SPRN_SPRG4W
 #define SPRN_SPRG_RSCRATCH3	SPRN_SPRG5R
 #define SPRN_SPRG_WSCRATCH3	SPRN_SPRG5W
-#define SPRN_SPRG_RSCRATCH_MC	SPRN_SPRG6R
-#define SPRN_SPRG_WSCRATCH_MC	SPRN_SPRG6W
+#define SPRN_SPRG_RSCRATCH_MC	SPRN_SPRG1
+#define SPRN_SPRG_WSCRATCH_MC	SPRN_SPRG1
 #define SPRN_SPRG_RSCRATCH4	SPRN_SPRG7R
 #define SPRN_SPRG_WSCRATCH4	SPRN_SPRG7W
 #ifdef CONFIG_E200
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 6887661..ea95441 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -82,6 +82,9 @@ int main(void)
 	DEFINE(KSP, offsetof(struct thread_struct, ksp));
 	DEFINE(KSP_LIMIT, offsetof(struct thread_struct, ksp_limit));
 	DEFINE(PT_REGS, offsetof(struct thread_struct, regs));
+#ifdef CONFIG_BOOKE
+	DEFINE(THREAD_NORMSAVES, offsetof(struct thread_struct, normsave[0]));
+#endif
 	DEFINE(THREAD_FPEXC_MODE, offsetof(struct thread_struct, fpexc_mode));
 	DEFINE(THREAD_FPR0, offsetof(struct thread_struct, fpr[0]));
 	DEFINE(THREAD_FPSCR, offsetof(struct thread_struct, fpscr));
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index a0bf158..fc921bf 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -20,33 +20,43 @@
 	addi	reg,reg,val@l
 #endif
 
+/*
+ * Macro used to get to thread save registers.
+ * Note that entries 0-3 are used for the prolog code, and the remaining
+ * entries are available for specific exception use in the event a handler
+ * requires more than 4 scratch registers.
+ */
+#define THREAD_NORMSAVE(offset)	(THREAD_NORMSAVES + (offset * 4))
+
 #define NORMAL_EXCEPTION_PROLOG						     \
-	mtspr	SPRN_SPRG_WSCRATCH0,r10;/* save two registers to work with */\
-	mtspr	SPRN_SPRG_WSCRATCH1,r11;				     \
-	mtspr	SPRN_SPRG_WSCRATCH2,r1;					     \
-	mfcr	r10;			/* save CR in r10 for now	   */\
+	mtspr	SPRN_SPRG_WSCRATCH0, r10;	/* save one register */	     \
+	mfspr	r10, SPRN_SPRG_THREAD;					     \
+	stw	r11, THREAD_NORMSAVE(0)(r10);				     \
+	stw	r13, THREAD_NORMSAVE(2)(r10);				     \
+	mfcr	r13;			/* save CR in r13 for now	   */\
 	mfspr	r11,SPRN_SRR1;		/* check whether user or kernel    */\
 	andi.	r11,r11,MSR_PR;						     \
+	mr	r11, r1;						     \
 	beq	1f;							     \
-	mfspr	r1,SPRN_SPRG_THREAD;	/* if from user, start at top of   */\
-	lwz	r1,THREAD_INFO-THREAD(r1); /* this thread's kernel stack   */\
-	ALLOC_STACK_FRAME(r1, THREAD_SIZE);				     \
-1:	subi	r1,r1,INT_FRAME_SIZE;	/* Allocate an exception frame     */\
-	mr	r11,r1;							     \
-	stw	r10,_CCR(r11);          /* save various registers	   */\
+	/* if from user, start at top of this thread's kernel stack */       \
+	lwz	r11, THREAD_INFO-THREAD(r10);				     \
+	ALLOC_STACK_FRAME(r11, THREAD_SIZE);				     \
+1 :	subi	r11, r11, INT_FRAME_SIZE; /* Allocate exception frame */     \
+	stw	r13, _CCR(r11);		/* save various registers */	     \
 	stw	r12,GPR12(r11);						     \
 	stw	r9,GPR9(r11);						     \
-	mfspr	r10,SPRN_SPRG_RSCRATCH0;					\
-	stw	r10,GPR10(r11);						     \
-	mfspr	r12,SPRN_SPRG_RSCRATCH1;				     \
+	mfspr	r13, SPRN_SPRG_RSCRATCH0;				     \
+	stw	r13, GPR10(r11);					     \
+	lwz	r12, THREAD_NORMSAVE(0)(r10);				     \
 	stw	r12,GPR11(r11);						     \
+	lwz	r13, THREAD_NORMSAVE(2)(r10); /* restore r13 */		     \
 	mflr	r10;							     \
 	stw	r10,_LINK(r11);						     \
-	mfspr	r10,SPRN_SPRG_RSCRATCH2;				     \
 	mfspr	r12,SPRN_SRR0;						     \
-	stw	r10,GPR1(r11);						     \
+	stw	r1, GPR1(r11);						     \
 	mfspr	r9,SPRN_SRR1;						     \
-	stw	r10,0(r11);						     \
+	stw	r1, 0(r11);						     \
+	mr	r1, r11;						     \
 	rlwinm	r9,r9,0,14,12;		/* clear MSR_WE (necessary?)	   */\
 	stw	r0,GPR0(r11);						     \
 	lis	r10, STACK_FRAME_REGS_MARKER@ha;/* exception frame marker */ \
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 5ecf54c..985638d 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -346,11 +346,12 @@ interrupt_base:
 	/* Data TLB Error Interrupt */
 	START_EXCEPTION(DataTLBError)
 	mtspr	SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */
-	mtspr	SPRN_SPRG_WSCRATCH1, r11
-	mtspr	SPRN_SPRG_WSCRATCH2, r12
-	mtspr	SPRN_SPRG_WSCRATCH3, r13
-	mfcr	r11
-	mtspr	SPRN_SPRG_WSCRATCH4, r11
+	mfspr	r10, SPRN_SPRG_THREAD
+	stw	r11, THREAD_NORMSAVE(0)(r10)
+	stw	r12, THREAD_NORMSAVE(1)(r10)
+	stw	r13, THREAD_NORMSAVE(2)(r10)
+	mfcr	r13
+	stw	r13, THREAD_NORMSAVE(3)(r10)
 	mfspr	r10, SPRN_DEAR		/* Get faulting address */
 
 	/* If we are faulting a kernel address, we have to use the
@@ -416,11 +417,12 @@ interrupt_base:
 	/* The bailout.  Restore registers to pre-exception conditions
 	 * and call the heavyweights to help us out.
 	 */
-	mfspr	r11, SPRN_SPRG_RSCRATCH4
+	mfspr	r10, SPRN_SPRG_THREAD
+	lwz	r11, THREAD_NORMSAVE(3)(r10)
 	mtcr	r11
-	mfspr	r13, SPRN_SPRG_RSCRATCH3
-	mfspr	r12, SPRN_SPRG_RSCRATCH2
-	mfspr	r11, SPRN_SPRG_RSCRATCH1
+	lwz	r13, THREAD_NORMSAVE(2)(r10)
+	lwz	r12, THREAD_NORMSAVE(1)(r10)
+	lwz	r11, THREAD_NORMSAVE(0)(r10)
 	mfspr	r10, SPRN_SPRG_RSCRATCH0
 	b	DataStorage
 
@@ -432,11 +434,12 @@ interrupt_base:
 	 */
 	START_EXCEPTION(InstructionTLBError)
 	mtspr	SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */
-	mtspr	SPRN_SPRG_WSCRATCH1, r11
-	mtspr	SPRN_SPRG_WSCRATCH2, r12
-	mtspr	SPRN_SPRG_WSCRATCH3, r13
-	mfcr	r11
-	mtspr	SPRN_SPRG_WSCRATCH4, r11
+	mfspr	r10, SPRN_SPRG_THREAD
+	stw	r11, THREAD_NORMSAVE(0)(r10)
+	stw	r12, THREAD_NORMSAVE(1)(r10)
+	stw	r13, THREAD_NORMSAVE(2)(r10)
+	mfcr	r13
+	stw	r13, THREAD_NORMSAVE(3)(r10)
 	mfspr	r10, SPRN_SRR0		/* Get faulting address */
 
 	/* If we are faulting a kernel address, we have to use the
@@ -496,11 +499,12 @@ interrupt_base:
 	/* The bailout.  Restore registers to pre-exception conditions
 	 * and call the heavyweights to help us out.
 	 */
-	mfspr	r11, SPRN_SPRG_RSCRATCH4
+	mfspr	r10, SPRN_SPRG_THREAD
+	lwz	r11, THREAD_NORMSAVE(3)(r10)
 	mtcr	r11
-	mfspr	r13, SPRN_SPRG_RSCRATCH3
-	mfspr	r12, SPRN_SPRG_RSCRATCH2
-	mfspr	r11, SPRN_SPRG_RSCRATCH1
+	lwz	r13, THREAD_NORMSAVE(2)(r10)
+	lwz	r12, THREAD_NORMSAVE(1)(r10)
+	lwz	r11, THREAD_NORMSAVE(0)(r10)
 	mfspr	r10, SPRN_SPRG_RSCRATCH0
 	b	InstructionStorage
 
@@ -621,11 +625,12 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_BIG_PHYS)
 	tlbwe
 
 	/* Done...restore registers and get out of here.  */
-	mfspr	r11, SPRN_SPRG_RSCRATCH4
+	mfspr	r10, SPRN_SPRG_THREAD
+	lwz	r11, THREAD_NORMSAVE(3)(r10)
 	mtcr	r11
-	mfspr	r13, SPRN_SPRG_RSCRATCH3
-	mfspr	r12, SPRN_SPRG_RSCRATCH2
-	mfspr	r11, SPRN_SPRG_RSCRATCH1
+	lwz	r13, THREAD_NORMSAVE(2)(r10)
+	lwz	r12, THREAD_NORMSAVE(1)(r10)
+	lwz	r11, THREAD_NORMSAVE(0)(r10)
 	mfspr	r10, SPRN_SPRG_RSCRATCH0
 	rfi					/* Force context change */
 
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 08/14] powerpc/85xx: Set up doorbells even with no mpic
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Scott Wood
In-Reply-To: <1305871771-16334-7-git-send-email-galak@kernel.crashing.org>

From: Scott Wood <scottwood@freescale.com>

In cases like when the platform is used under hypervisor we will NOT
have an MPIC controller but still want doorbells setup.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/platforms/85xx/smp.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c
index d6a93a1..eebb08f1 100644
--- a/arch/powerpc/platforms/85xx/smp.c
+++ b/arch/powerpc/platforms/85xx/smp.c
@@ -111,14 +111,6 @@ smp_85xx_kick_cpu(int nr)
 	return 0;
 }
 
-static void __init
-smp_85xx_setup_cpu(int cpu_nr)
-{
-	mpic_setup_this_cpu();
-	if (cpu_has_feature(CPU_FTR_DBELL))
-		doorbell_setup_this_cpu();
-}
-
 struct smp_ops_t smp_85xx_ops = {
 	.kick_cpu = smp_85xx_kick_cpu,
 #ifdef CONFIG_KEXEC
@@ -224,14 +216,25 @@ static void mpc85xx_smp_machine_kexec(struct kimage *image)
 }
 #endif /* CONFIG_KEXEC */
 
+static void __init
+smp_85xx_setup_cpu(int cpu_nr)
+{
+	if (smp_85xx_ops.probe == smp_mpic_probe)
+		mpic_setup_this_cpu();
+
+	if (cpu_has_feature(CPU_FTR_DBELL))
+		doorbell_setup_this_cpu();
+}
+
 void __init mpc85xx_smp_init(void)
 {
 	struct device_node *np;
 
+	smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu;
+
 	np = of_find_node_by_type(NULL, "open-pic");
 	if (np) {
 		smp_85xx_ops.probe = smp_mpic_probe;
-		smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu;
 		smp_85xx_ops.message_pass = smp_mpic_message_pass;
 	}
 
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 11/14] powerpc/book3e: Clarify HW table walk enable/disable message
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-10-git-send-email-galak@kernel.crashing.org>

Before if we didn't support or enable HW table walk we'd get a messaage
like:

MMU: Book3E Page Tables Disabled

Which is a bit misleading.  Now it will say:

MMU: Book3E HW tablewalk not supported

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/mm/tlb_nohash.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c
index 2a030d8..97e6193 100644
--- a/arch/powerpc/mm/tlb_nohash.c
+++ b/arch/powerpc/mm/tlb_nohash.c
@@ -476,8 +476,8 @@ static void setup_mmu_htw(void)
 			     (unsigned long)&exc_instruction_tlb_miss_htw_book3e, 0);
 		book3e_htw_enabled = 1;
 	}
-	pr_info("MMU: Book3E Page Tables %s\n",
-		book3e_htw_enabled ? "Enabled" : "Disabled");
+	pr_info("MMU: Book3E HW tablewalk %s\n",
+		book3e_htw_enabled ? "enabled" : "not supported");
 }
 
 /*
-- 
1.7.3.4

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox