RE: [PATCH 1/3 v4] P4080/eLBC: Make Freescale elbc interrupt common to elbc devices

2010-10-14 Thread Zang Roy-R61911


> -Original Message-
> From: Wood Scott-B07421
> Sent: Friday, October 15, 2010 0:03 AM
> To: Zang Roy-R61911
> Cc: Anton Vorontsov; linux-...@lists.infradead.org;
dw...@infradead.org;
> dedeki...@gmail.com; a...@linux-foundation.org; Lan Chunhe-B25806;
Wood Scott-
> B07421; Gala Kumar-B11780; linuxppc-...@ozlabs.org
> Subject: Re: [PATCH 1/3 v4] P4080/eLBC: Make Freescale elbc interrupt
common
> to elbc devices
> 
> On Wed, 13 Oct 2010 23:43:38 -0700
> "Zang Roy-R61911"  wrote:
> 
> > > Plus, I think the patch is not runtime bisectable (i.e. you
> > > now do request_irq() here, but not removing it from the nand
> > > driver, so nand will fail to probe).
> > Nand driver does not need to request irq. It will use the irq
requested by
> lbc.
> > remember, other lbc device may also need to use this registered irq.
> > It should not be removed in nand driver.
> 
> The point is that you need to make both changes in the same patch.

But according to previous discussion, if lbc driver is registered
successful, it will not be removed. (.remove function is dropped in the
patch). that is not bisectable?
nand driver will not touch the irq. all irq status process is in the lbc
driver.
Thanks.
Roy

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] add icswx support v2

2010-10-14 Thread Tseng-Hui (Frank) Lin
On Wed, 2010-10-13 at 11:52 +1100, Michael Neuling wrote:
> In message <1286855108.14049.8.ca...@flin.austin.ibm.com> you wrote:
> > icswx is a PowerPC co-processor instruction to send data to a
> > co-processor. On Book-S processors the LPAR_ID and process ID (PID) of
> > the owning process are registered in the window context of the
> > co-processor at initial time. When the icswx instruction is executed,
> > the L2 generates a cop-reg transaction on PowerBus. The transaction has
> > no address and the processor does not perform an MMU access to
> > authenticate the transaction. The coprocessor compares the LPAR_ID and
> > the PID included in the transaction and the LPAR_ID and PID held in the
> > window context to determine if the process is authorized to generate the
> > transaction.
> > 
> > This patch adds icswx co-processor instruction support.
> 
> Can you describe the ABI a bit?  
> 
> How has this changed from version 1?
> 

The icswx instruction itself does nothing but generating a cop-req
transaction on PowerBus. The cop-req transaction causes 1 cache
line of data (128 bytes) sent to the co-processor. This provides
a low latency mechanism for sending small amount of data without
the co-processor becoming a master on the PowerBus.

Since the transaction has no address and the processor does not
perform an MMU access to authenticate the transaction, the
co-processor relys on the the LPAR_ID and PID to determine if
the process is authorized to generate the transaction.

The OS needs to assign a 16-bit PID for the process. This
cop-PID needs needs to be updated during context switch. The
cop-PID needs to be destroied when the context is destroied.

Change log from v1:
- Change 2'nd parameter of use_cop() from struct task_struct *task
  to struct mm_struct *mm.
- Check for mm == current->active_mm before calling mtspr().
- Add a lock to guard acop related operations.
- Check for POWER7 CPU.
- Move the definition of SPRN_PID from reg_booke.h to avoid
  defining SPRN_PID in two different files.
- Rename pid to acop_pid.
- Change function name disuse_cop() to drop_cop().
- Add a comment to describe the two new fields in mm_context_t.
- Moving CONFIG_ICSWX from arch/powerpc/platforms/pseries/Kconfig
  to arch/powerpc/platforms/Kconfig.cputype

All other comments will be addressed in a new patch.

> Patch has been whitespace munged aswell.
> 
> More comments below...
> 
> > 
> > Signed-off-by: Sonny Rao 
> > Signed-off-by: Tseng-Hui (Frank) Lin 
> > ---
> >  arch/powerpc/include/asm/mmu-hash64.h  |5 ++
> >  arch/powerpc/include/asm/mmu_context.h |6 ++
> >  arch/powerpc/include/asm/reg.h |   12 
> >  arch/powerpc/include/asm/reg_booke.h   |3 -
> >  arch/powerpc/mm/mmu_context_hash64.c   |  105
> > 
> >  arch/powerpc/platforms/Kconfig.cputype |   16 +
> >  6 files changed, 144 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/powerpc/include/asm/mmu-hash64.h
> > b/arch/powerpc/include/asm/mmu-hash64.h
> > index acac35d..6c1ab90 100644
> > --- a/arch/powerpc/include/asm/mmu-hash64.h
> > +++ b/arch/powerpc/include/asm/mmu-hash64.h
> > @@ -423,6 +423,11 @@ typedef struct {
> >  #ifdef CONFIG_PPC_SUBPAGE_PROT
> > struct subpage_prot_table spt;
> >  #endif /* CONFIG_PPC_SUBPAGE_PROT */
> > +#ifdef CONFIG_ICSWX
> > +   unsigned long acop; /* mask of enabled coprocessor types */
> > +#define HASH64_MAX_PID (0x)
> > +   unsigned int acop_pid;  /* pid value used with coprocessors */
> > +#endif /* CONFIG_ICSWX */
> >  } mm_context_t;
> >  
> >  
> > diff --git a/arch/powerpc/include/asm/mmu_context.h
> > b/arch/powerpc/include/asm/mmu_context.h
> > index 81fb412..88118de 100644
> > --- a/arch/powerpc/include/asm/mmu_context.h
> > +++ b/arch/powerpc/include/asm/mmu_context.h
> > @@ -80,6 +80,12 @@ static inline void switch_mm(struct mm_struct *prev,
> > struct mm_struct *next,
> >  
> >  #define deactivate_mm(tsk,mm)  do { } while (0)
> >  
> > +#ifdef CONFIG_ICSWX
> > +extern void switch_cop(struct mm_struct *next);
> > +extern int use_cop(unsigned long acop, struct mm_struct *mm);
> > +extern void drop_cop(unsigned long acop, struct mm_struct *mm);
> > +#endif /* CONFIG_ICSWX */
> > +
> >  /*
> >   * After we have set current->mm to a new value, this activates
> >   * the context for the new mm so we see the new mappings.
> > diff --git a/arch/powerpc/include/asm/reg.h
> > b/arch/powerpc/include/asm/reg.h
> > index ff0005eec..9bbf178 100644
> > --- a/arch/powerpc/include/asm/reg.h
> > +++ b/arch/powerpc/include/asm/reg.h
> > @@ -170,8 +170,19 @@
> >  #define SPEFSCR_FRMC   0x0003  /* Embedded FP rounding mode co
> ntrol
> > */
> >  
> >  /* Special Purpose Registers (SPRNs)*/
> > +
> > +#ifdef CONFIG_40x
> > +#define SPRN_PID   0x3B1   /* Process ID */
> > +#else
> > +#defineSPRN_PID0x030   /* Process ID */
> > +#ifdef CONFIG_BOOKE
> > +#defineSPRN_PID0   SPRN_PID/* Process ID Register 0 */
> > +#endi

Re: [PATCH v2] pseries: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Michael Ellerman
On Thu, 2010-10-14 at 20:54 -0500, Linas Vepstas wrote:
> On 14 October 2010 19:48, Nishanth Aravamudan  wrote:
> > eeh and pci_dlpar #undef DEBUG, but I think they were added before the
> > ability to control this from Kconfig. It's really annoying to only get
> > some of the debug messages from these files. Leave the lpar.c #undef
> > alone as it produces so much output as to make the kernel unusable.
> > Update the Kconfig text to indicate this particular quirk :)
> >
> > Signed-off-by: Nishanth Aravamudan 
> 
> OK, ignore my last email.
> 
> Acked by: Linas Vepstas 

I guess I'll ack it too seeing I added PPC_PSERIES_DEBUG:

Acked-by: Michael Ellerman 

> > --- a/arch/powerpc/platforms/pseries/Kconfig
> > +++ b/arch/powerpc/platforms/pseries/Kconfig
> > @@ -47,6 +47,12 @@ config LPARCFG
> >  config PPC_PSERIES_DEBUG
> >depends on PPC_PSERIES && PPC_EARLY_DEBUG
> >bool "Enable extra debug logging in platforms/pseries"
> > +help
> > + Say Y here if you want the pseries core to produce a bunch of
> > + debug messages to the system log. Select this if you are having a
> > + problem with the pseries core and want to see more of what is
> > + going on. This does not enable debugging in lpar.c, which must
> > + be manually done due to its verbosity.
> >default y
> 
> Umm, I see "default y" and you are not changing this but ... default y
> ?? Really?

Yes, default y if early debug is enabled. Unlike DEBUG_KERNEL,
PPC_EARLY_DEBUG is a pretty good indication that you are doing some
kernel development - because you have to choose exactly which platform
you're working on.

> Also, I am guessing that the lpar spam is due only to a handful of printk's,
> while most of the rest will be infrequent.  Just knock out the
> high-frequency ones...

No they're all related to the HPTE code, so you basically don't want any
of them enabled unless you're debugging that, and most people aren't.

cheers



signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

RE: [PATCH 2/3 v4] P4080/mtd: Only make elbc nand driver detect nand flash partitions

2010-10-14 Thread Zang Roy-R61911


> -Original Message-
> From: Wood Scott-B07421
> Sent: Friday, October 15, 2010 0:01 AM
> To: Zang Roy-R61911
> Cc: Wood Scott-B07421; Anton Vorontsov; linux-...@lists.infradead.org;
> dw...@infradead.org; dedeki...@gmail.com; a...@linux-foundation.org;
Lan
> Chunhe-B25806; Gala Kumar-B11780; linuxppc-...@ozlabs.org; Hu
Mingkai-B21284
> Subject: Re: [PATCH 2/3 v4] P4080/mtd: Only make elbc nand driver
detect nand
> flash partitions
> 
> On Wed, 13 Oct 2010 20:09:02 -0700
> "Zang Roy-R61911"  wrote:
> 
> > > > > > +   struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = NULL;
> > > > >
> > > > > No need for = NULL.
> > > > Any harm? Or just personal habit or style? Can you explain about
> > why?
> > >
> > > Besides not wanting superfluous code on general principle, it
could
> > > hide a bug if in the future the real initialization is missing on
some
> > > code path.  It would become a runtime NULL dereference rather than
a
> > > compiler warning.
> >
> > Not exactly.
> > Per my understand, if the pointer will definitely be assigned in
code
> > path,
> > it is not necessary to init it when define. for example,
> >
> > char c;
> > char b;
> > char *a;
> > if (condition)
> > a = &c;
> > else
> > a = &b;
> > ...
> >
> > for other case, if the path will not ensure the pointer assignment,
it
> > will be inited
> > when define to avoid warning. for example,
> >
> > char c;
> > char *a = NULL;
> > if (condition)
> > a = &c;
> > ...
> 
> Yes, but this patch looks like the former case, not the
> latter. 
That is right.
> Is GCC giving a warning without the initializer?
no.
we are on the same point.
Thanks.
Roy

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v2] pseries: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Linas Vepstas
On 14 October 2010 19:48, Nishanth Aravamudan  wrote:
> eeh and pci_dlpar #undef DEBUG, but I think they were added before the
> ability to control this from Kconfig. It's really annoying to only get
> some of the debug messages from these files. Leave the lpar.c #undef
> alone as it produces so much output as to make the kernel unusable.
> Update the Kconfig text to indicate this particular quirk :)
>
> Signed-off-by: Nishanth Aravamudan 

OK, ignore my last email.

Acked by: Linas Vepstas 


> --- a/arch/powerpc/platforms/pseries/Kconfig
> +++ b/arch/powerpc/platforms/pseries/Kconfig
> @@ -47,6 +47,12 @@ config LPARCFG
>  config PPC_PSERIES_DEBUG
>        depends on PPC_PSERIES && PPC_EARLY_DEBUG
>        bool "Enable extra debug logging in platforms/pseries"
> +        help
> +         Say Y here if you want the pseries core to produce a bunch of
> +         debug messages to the system log. Select this if you are having a
> +         problem with the pseries core and want to see more of what is
> +         going on. This does not enable debugging in lpar.c, which must
> +         be manually done due to its verbosity.
>        default y

Umm, I see "default y" and you are not changing this but ... default y
?? Really?

Also, I am guessing that the lpar spam is due only to a handful of printk's,
while most of the rest will be infrequent.  Just knock out the
high-frequency ones...

--linas
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [RFC PATCH] ppc: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Linas Vepstas
On 14 October 2010 12:48, Nishanth Aravamudan  wrote:
> These files undef DEBUG, but I think they were added before the ability
> to control this from Kconfig.

Right.

> It's really annoying to only get some of
> the debug messages!

I don't get the big picture.  Will there be some CONFIG_DEBUG_EEH in Kconfig?
or just some option to turn on DEBUG for all powerpc-related files?

Or maybe I am demonstrating my utter ignorance of some new whiz-bang
Kconfig technology?

Anyway, I see no harm in the EEH portion of the patch.

--linas
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread tiejun.chen
Scott Wood wrote:
> On Thu, 14 Oct 2010 11:27:09 +0800
> "tiejun.chen"  wrote:
> 
>> tiejun.chen wrote:
>>> Scott Wood wrote:
 On Wed, 13 Oct 2010 09:17:01 +0800
 "tiejun.chen"  wrote:

> Scott Wood wrote:
>> The crash is happening somewhere in mpic_set_irq_type():
> Agreed. That is just where I pointed out on my email replied for OOPS. To 
> enable
> DBG to figure out 'src' and 'mpic->irq_count' from the file,
> arch/powerpc/sysdev/mpic.c,.
> ==
> int mpic_set_irq_type(unsigned int virq, unsigned int flow_type)
> {
>   ..
>   if (src >= mpic->irq_count)
>   return -EINVAL;
>   ^
>   I think this OOPS may be from here.
 No, it's after that.  His board code is using the mpic's "isu" remapping
>>> I means OOPS is *from* here. According to David's call trace,
>>> mpic_set_irq_type() is the last issued function. And that corresponding 
>>> return
>>> value, R3, is '0xffea', -22, and also '-EINVAL'.
> 
> Just because that value is in r3 doesn't mean that src >=
> mpic->irq_count.
> 
> Consider something like:
> 
> cmplw r4, r5
> lir3, -EINVAL
> bgelr

Right absolutely and got it.

Thanks again
Tiejun

> ...
> 
> 
> -Scott
> 
> ___
> 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


[PATCH v2] pseries: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Nishanth Aravamudan
eeh and pci_dlpar #undef DEBUG, but I think they were added before the
ability to control this from Kconfig. It's really annoying to only get
some of the debug messages from these files. Leave the lpar.c #undef
alone as it produces so much output as to make the kernel unusable.
Update the Kconfig text to indicate this particular quirk :)

Signed-off-by: Nishanth Aravamudan 
---
 arch/powerpc/platforms/pseries/Kconfig |6 ++
 arch/powerpc/platforms/pseries/eeh.c   |2 --
 arch/powerpc/platforms/pseries/pci_dlpar.c |2 --
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/Kconfig 
b/arch/powerpc/platforms/pseries/Kconfig
index c667f0f..3139814 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -47,6 +47,12 @@ config LPARCFG
 config PPC_PSERIES_DEBUG
depends on PPC_PSERIES && PPC_EARLY_DEBUG
bool "Enable extra debug logging in platforms/pseries"
+help
+ Say Y here if you want the pseries core to produce a bunch of
+ debug messages to the system log. Select this if you are having a
+ problem with the pseries core and want to see more of what is
+ going on. This does not enable debugging in lpar.c, which must
+ be manually done due to its verbosity.
default y
 
 config PPC_SMLPAR
diff --git a/arch/powerpc/platforms/pseries/eeh.c 
b/arch/powerpc/platforms/pseries/eeh.c
index 34b7dc1..17a11c8 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -21,8 +21,6 @@
  * Please address comments and feedback to Linas Vepstas 
  */
 
-#undef DEBUG
-
 #include 
 #include 
 #include 
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c 
b/arch/powerpc/platforms/pseries/pci_dlpar.c
index 4b7a062..5fcc92a 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -25,8 +25,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#undef DEBUG
-
 #include 
 #include 
 #include 
-- 
1.7.1

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [RFC PATCH] ppc: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Michael Ellerman
On Thu, 2010-10-14 at 17:23 -0700, Nishanth Aravamudan wrote:
> On 15.10.2010 [11:14:23 +1100], Michael Ellerman wrote:
> > On Thu, 2010-10-14 at 10:48 -0700, Nishanth Aravamudan wrote:
> > > Because the lpar and pci_dlpar code is pretty low-level & verbose,
> > > perhaps it makes sense to add another Kconfig variable for really
> > > low-level stuff? But it's annoying to have DEBUG *somewhat* effective,
> > > especially in the EEH area when doing PCI stuff.
> > 
> > I really don't think you want to enable the lpar debug by default.
> > Have you tried it? It can make for a pretty unusable system, just
> > because of the console spam.
> 
> Yeah, you're right. After enabling it, I had to kill my boot and start
> over w/o the lpar DEBUG on. 

:)

> I assume dlpar_pci is similar?

That should be OK to enable I think. Suck it and see I guess.

> I dunno, would a patch to a least remove the EEH one be ok? Seems like
> it isn't super-verbose, and does have some handy output.

Yeah definitely. That undef was merged as part of a cleanup/fix patch
but shouldn't have been.

cheers




signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: msi_bitmap.c question

2010-10-14 Thread Michael Ellerman
On Thu, 2010-10-14 at 15:56 -0700, Tirumala Marri wrote:
> Hi,
> 
> I am trying to resubmit a patch for MSI support for ppc4xx devices.
> One of the review feedback was not to use the bit map as it is only
> for the devices which don’t have hard wired mapping between interrupt
> controller interrupts and MSI number. For example intr-ctrl0 interrupt
> 20 goes to MSI-0, interrupt 21 goes to MSI-1 ..etc. But when I checked
> freescale SoCs and cell SoCs they have interrupts hard wired to MSI
> interrupts.  
> 
>  
> 
> Why do they have to use the bitmap and create irqhost, even though
> they are one-to-one mapped between interrupt controller numbers and
> MSI ?

I'm not quite sure I understand your question.

The MSI bitmap and the irq_host are two different things.

The MSI bitmap is basically an allocator for hardware numbers that can
be used for MSI. On some interrupt controllers that might be any
interrupt that's not used, on others there are restrictions on which
numbers can be used for MSI, it depends. So it's possible you don't need
to use that code, but I don't know how your hardware works.

The irq_host is the struct that controls mapping hardware irq numbers
into linux irq numbers. The cell MSI code has no restrictions on what
the MSI value is, so it just uses the Linux irq number directly using
irq_create_direct_mapping().

cheers





signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [RFC PATCH] ppc: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Nishanth Aravamudan
On 15.10.2010 [11:14:23 +1100], Michael Ellerman wrote:
> On Thu, 2010-10-14 at 10:48 -0700, Nishanth Aravamudan wrote:
> > These files undef DEBUG, but I think they were added before the ability
> > to control this from Kconfig. 
> 
> Perhaps. Some people, *cough*, have a tendency to merge those back in
> again from time to time :)
> 
> > It's really annoying to only get some of the debug messages!
> 
> True, but ..
> 
> > Signed-off-by: Nishanth Aravamudan 
> > 
> > ---
> > Because the lpar and pci_dlpar code is pretty low-level & verbose,
> > perhaps it makes sense to add another Kconfig variable for really
> > low-level stuff? But it's annoying to have DEBUG *somewhat* effective,
> > especially in the EEH area when doing PCI stuff.
> 
> I really don't think you want to enable the lpar debug by default.
> Have you tried it? It can make for a pretty unusable system, just
> because of the console spam.

Yeah, you're right. After enabling it, I had to kill my boot and start
over w/o the lpar DEBUG on. I assume dlpar_pci is similar?

I dunno, would a patch to a least remove the EEH one be ok? Seems like
it isn't super-verbose, and does have some handy output.

> Also these days there is CONFIG_DYNAMIC_DEBUG which is much smarter than
> all this, but requires setup at runtime.

True, I started looking into it, but only realized today that eeh.c had
that #undef! :)

Thanks,
Nish

-- 
Nishanth Aravamudan 
IBM Linux Technology Center
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [RFC PATCH] ppc: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Michael Ellerman
On Thu, 2010-10-14 at 10:48 -0700, Nishanth Aravamudan wrote:
> These files undef DEBUG, but I think they were added before the ability
> to control this from Kconfig. 

Perhaps. Some people, *cough*, have a tendency to merge those back in
again from time to time :)

> It's really annoying to only get some of the debug messages!

True, but ..

> Signed-off-by: Nishanth Aravamudan 
> 
> ---
> Because the lpar and pci_dlpar code is pretty low-level & verbose,
> perhaps it makes sense to add another Kconfig variable for really
> low-level stuff? But it's annoying to have DEBUG *somewhat* effective,
> especially in the EEH area when doing PCI stuff.

I really don't think you want to enable the lpar debug by default. Have
you tried it? It can make for a pretty unusable system, just because of
the console spam.

Also these days there is CONFIG_DYNAMIC_DEBUG which is much smarter than
all this, but requires setup at runtime.

cheers



signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

msi_bitmap.c question

2010-10-14 Thread Tirumala Marri
Hi,

I am trying to resubmit a patch for MSI support for ppc4xx devices. One of
the review feedback was not to use the bit map as it is only for the devices
which don’t have hard wired mapping between interrupt controller interrupts
and MSI number. For example intr-ctrl0 interrupt 20 goes to MSI-0, interrupt
21 goes to MSI-1 ..etc. But when I checked  freescale SoCs and cell SoCs
they have interrupts hard wired to MSI interrupts.



Why do they have to use the bitmap and create irqhost, even though they are
one-to-one mapped between interrupt controller numbers and MSI ?



Thx,

Marri
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: Possible kernel stack overflow due to fast interrupts

2010-10-14 Thread Benjamin Herrenschmidt
On Thu, 2010-10-14 at 13:45 -0700, Rick Tao wrote:
> Hi, all,

 .../...

> In the context of task A
> a. NIP would point to the instruction after switch_to(). 
> b. MSR_EE is enabled in the call trace (finish_task_switch 
> -->finish_lock_switch-->spin_unlock_irq)
> c. do something that would trigger an interrupt later on (such as timer)
> d. call schedule() for context switch to task B.
>In this step, 
>  task B's stack is popped INT_FRAME_SIZE size for context restore.  
>Note that task B's ksp = X - INT_FRAME_SIZE
> 
> In the context of task B again
> a1. similar to step "a" above
>
> b1. similar to step "b" above 
> c1. interrupt occurs, go to step "1" above, and repeat!!!
> 
> As you can see, task B's kernel stack space is reduced by INT_FRAME_SIZE
> on each loop. It will eventually overflow.

So if I follow you correctly, you are worried that by the time execution
resumes in B, and before it pops the second frame off, it might get
another interrupt and re-preempt...

Now unless I missed something, that cannot happen because
preempt_schedule_irq() does increment the preempt count:

add_preempt_count(PREEMPT_ACTIVE);
local_irq_enable();
schedule();
local_irq_disable();
sub_preempt_count(PREEMPT_ACTIVE);

Which means that it won't preempt again in finish_task_switch, and so
will eventually come back, turn EE back off, and pop off the stack
frame.

Or am I missing something ?

Cheers,
Ben.


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] [v2] powerpc/85xx: add DIU support to the Freecale P1022DS reference board

2010-10-14 Thread Mark Brown
On Thu, Oct 14, 2010 at 01:21:33PM -0500, Timur Tabi wrote:
> Mark, can you pick up this patch for us?  Because it depends on
> "powerpc: rename immap_86xx.h to fsl_guts.h, and add 85xx support", it
> will break the build if we apply to powerpc-next.
> 
> You can grab the patch from http://patchwork.ozlabs.org/patch/67095/

Done, but I had to fix up what looked like an add/add conflict with
headers in the file.  Since I was editing that area of the file anyway I
also dropped the #define DEBUG as it looked like a mistake.  Please send
followup patch(es) correcting things if I messed up any of that.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Oops while running systemtap on the p6 machine against the kernel version 2.6.36-rc7-git3

2010-10-14 Thread Frank Ch. Eigler

divya  writes:

> While running systemtap tests on the p6 machine , against the kernel
> version 2.6.36-rc7-git3 Oops occured , here are the call trace

Did the oops happen during a systemtap module startup vs. operation
vs. shutdown?  stap -V version string?

>  BUG: spinlock bad magic on CPU#6, stapio/20398
> -- 0:conmux-control -- time-stamp -- Oct/13/10  2:49:18 --res
>  lock: c0fcfa18, .magic: , .owner:/-1, .owner_cpu: 0
> Call Trace:
> [c001effbfab0] [c0011934] .show_stack+0x6c/0x16c (unreliable)
> [c001effbfb60] [c02c9274] .spin_bug+0xb0/0xd4
> [c001effbfbf0] [c02c953c] .do_raw_spin_lock+0x48/0x184
> [c001effbfc90] [c054af78] ._raw_spin_lock+0x10/0x24
> [c001effbfd00] [d3015908] .__stp_time_timer_callback+0x94/0x13c 
> [stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
> [...]
> kernel BUG at kernel/timer.c:681!
> Oops: Exception in kernel mode, sig: 5 [#1]
> SMP NR_CPUS=1024 NUMA pSeries
> [...]
> [c001effbfc50] [c001effbfd00] 0xc001effbfd00 (unreliable)
> [c001effbfd00] [d301597c] .__stp_time_timer_callback+0x108/0x13c 
> [stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
> [c001effbfdc0] [c009c2f8] .run_timer_softirq+0x1d8/0x2a8


We have had occasional problems in the past with something like this:
http://sourceware.org/PR10651, but it never was tracked down to a
systemtap bug per se, as opposed to suspicions that the kernel was not
satisfying one of its guarantees w.r.t. del_timer_sync().

- FChE
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Possible kernel stack overflow due to fast interrupts

2010-10-14 Thread Rick Tao
Hi, all,

I am looking at the kernel source of 2.6.32. It appears to me that kernel stack 
can be easily getting overflowed in case of fast interrupts. Here is my 
observation, any comments? Thanks,

Let's assume task A triggers the fast interrupts, and task B was running when 
the fast interrupt occur. 

In the context of task B (according to entry_32.S)
0. Assume task B's ksp = X
1. the interrupt causes exception, allocate exception frame space from
   the task B'stack (ksp = X - INT_FRAME_SIZE).
2. interrupt handler is invoked
3. ret_from_except, and resume_kernel is invoked
4. then preempt_schedule_irq is called, which in trun, __schedule() and 
   context_switch is called. Assume it switches to task A. 
   In this step,
 task B's stack is pushed another INT_FRAME_SIZE to save its context,
 so task B's ksp = X - 2 * INT_FRAME_SIZE now.

In the context of task A
a. NIP would point to the instruction after switch_to(). 
b. MSR_EE is enabled in the call trace (finish_task_switch 
-->finish_lock_switch-->spin_unlock_irq)
c. do something that would trigger an interrupt later on (such as timer)
d. call schedule() for context switch to task B.
   In this step, 
 task B's stack is popped INT_FRAME_SIZE size for context restore.  
   Note that task B's ksp = X - INT_FRAME_SIZE

In the context of task B again
a1. similar to step "a" above
b1. similar to step "b" above 
c1. interrupt occurs, go to step "1" above, and repeat!!!

As you can see, task B's kernel stack space is reduced by INT_FRAME_SIZE
on each loop. It will eventually overflow.

Thanks for your input.

Rick





  
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] powerpc: fix warning when compiling immap_qe.h

2010-10-14 Thread Timur Tabi
Fix the warnings genereted by arch/powerpc/include/asm/immap_qe.h when
CONFIG_PHYS_ADDR_T_64BIT is defined:

immap_qe.h: In function 'immrbar_virt_to_phys':
immap_qe.h:472:8: warning: cast from pointer to integer of different size
immap_qe.h:472:24: warning: cast from pointer to integer of different size
immap_qe.h:473:5: warning: cast from pointer to integer of different size
immap_qe.h:473:21: warning: cast from pointer to integer of different size
immap_qe.h:474:36: warning: cast from pointer to integer of different size

Note that the QE does not support 36-bit physical addresses, so even when
CONFIG_PHYS_ADDR_T_64BIT is defined, the QE MURAM must be located below the
4GB boundary.

Signed-off-by: Timur Tabi 
---
 arch/powerpc/include/asm/immap_qe.h |   21 +++--
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/include/asm/immap_qe.h 
b/arch/powerpc/include/asm/immap_qe.h
index 4e10f50..0edb684 100644
--- a/arch/powerpc/include/asm/immap_qe.h
+++ b/arch/powerpc/include/asm/immap_qe.h
@@ -467,13 +467,22 @@ struct qe_immap {
 extern struct qe_immap __iomem *qe_immr;
 extern phys_addr_t get_qe_base(void);
 
-static inline unsigned long immrbar_virt_to_phys(void *address)
+/*
+ * Returns the offset within the QE address space of the given pointer.
+ *
+ * Note that the QE does not support 36-bit physical addresses, so if
+ * get_qe_base() returns a number above 4GB, the caller will probably fail.
+ */
+static inline phys_addr_t immrbar_virt_to_phys(void *address)
 {
-   if ( ((u32)address >= (u32)qe_immr) &&
-   ((u32)address < ((u32)qe_immr + QE_IMMAP_SIZE)) )
-   return (unsigned long)(address - (u32)qe_immr +
-   (u32)get_qe_base());
-   return (unsigned long)virt_to_phys(address);
+   void *q = (void *)qe_immr;
+
+   /* Is it a MURAM address? */
+   if ((address >= q) && (address < (q + QE_IMMAP_SIZE)))
+   return get_qe_base() + (address - q);
+
+   /* It's an address returned by kmalloc */
+   return virt_to_phys(address);
 }
 
 #endif /* __KERNEL__ */
-- 
1.7.2.3


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread david . hagood

> Well, it was a coworker who added the workaround, so I assume we're
> already aware of the issue.
>
> The description of NIRQ is vague enough that it's hard to argue that
> Linux's expectations of what it means are justified.
>
Well, I now can actually interrupt the PPC from my host processor!

(well, it segfaulted, but's my fault for not actually initializing my work
queue structure. But I can get the interrupt into the part!)

So thanks to all.

I hope to get my code working, get past my delivery deadline on it, clean
it up so it matches The One True Way Of Laying Out Kernel Code, and post
it here for everybody to point and laugh at. Maybe around Christmas.

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] [v2] powerpc/85xx: add DIU support to the Freecale P1022DS reference board

2010-10-14 Thread Timur Tabi
Mark, can you pick up this patch for us?  Because it depends on
"powerpc: rename immap_86xx.h to fsl_guts.h, and add 85xx support", it
will break the build if we apply to powerpc-next.

You can grab the patch from http://patchwork.ozlabs.org/patch/67095/

On Thu, Oct 7, 2010 at 2:36 PM, Timur Tabi  wrote:
> The Freescale P1022DS has an on-chip video controller called the DIU, and a
> driver for this device already exists.  Update the platform file for the
> P1022DS reference board to enable the driver, and update the defconfig for
> Freescale MPC85xx boards to add the driver.
>
> Signed-off-by: Timur Tabi 
> ---

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] [v2] powerpc/85xx: add DIU support to the Freecale P1022DS reference board

2010-10-14 Thread Kumar Gala

On Oct 13, 2010, at 8:39 PM, Tabi Timur-B04825 wrote:

> Kumar Gala wrote:
 arch/powerpc/configs/mpc85xx_defconfig |3 +
 arch/powerpc/configs/mpc85xx_smp_defconfig |3 +
 arch/powerpc/platforms/85xx/p1022_ds.c |  213 
 +++-
 3 files changed, 217 insertions(+), 2 deletions(-)
>> I dropped this because of chicken/egg issue with guts.h
> 
> If you pull from alsa-next, it should resolve that.
> 
> Either that, or ask the alsa guys to apply this patch instead.

Can you ask the alsa guys to pick it up.  I'm happy to ack.

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread Scott Wood
On Thu, 14 Oct 2010 12:20:55 -0500
 wrote:

> > It comes from FRR[NIRQ].  It seems that this chip takes a
> > less-than-useful interpretation of what that field means -- it gives
> > the actual number of sources, not the size of the sparsely populated
> > array.
> Perhaps you might want to have a talk with your cow-orkers there, Scott,
> since this is a Freescale part.

Well, it was a coworker who added the workaround, so I assume we're
already aware of the issue.

The description of NIRQ is vague enough that it's hard to argue that
Linux's expectations of what it means are justified.

-Scott

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[RFC PATCH] ppc: don't override CONFIG_PPC_PSERIES_DEBUG

2010-10-14 Thread Nishanth Aravamudan
These files undef DEBUG, but I think they were added before the ability
to control this from Kconfig. It's really annoying to only get some of
the debug messages!

Signed-off-by: Nishanth Aravamudan 

---
Because the lpar and pci_dlpar code is pretty low-level & verbose,
perhaps it makes sense to add another Kconfig variable for really
low-level stuff? But it's annoying to have DEBUG *somewhat* effective,
especially in the EEH area when doing PCI stuff.
---
 arch/powerpc/platforms/pseries/eeh.c   |2 --
 arch/powerpc/platforms/pseries/lpar.c  |3 ---
 arch/powerpc/platforms/pseries/pci_dlpar.c |2 --
 3 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/eeh.c 
b/arch/powerpc/platforms/pseries/eeh.c
index 34b7dc1..17a11c8 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -21,8 +21,6 @@
  * Please address comments and feedback to Linas Vepstas 
  */
 
-#undef DEBUG
-
 #include 
 #include 
 #include 
diff --git a/arch/powerpc/platforms/pseries/lpar.c 
b/arch/powerpc/platforms/pseries/lpar.c
index cf79b46..4b31a66 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -19,9 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-/* Enables debugging of low-level hash table routines - careful! */
-#undef DEBUG
-
 #include 
 #include 
 #include 
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c 
b/arch/powerpc/platforms/pseries/pci_dlpar.c
index 4b7a062..5fcc92a 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -25,8 +25,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#undef DEBUG
-
 #include 
 #include 
 #include 
-- 
1.7.1

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread david . hagood
Hallelujah and Huzzah! I finally got my vector!

I back-ported the MPIC_BROKEN_FRR_NIRQS flag and code to our kernel, and
the kernel is now letting me have my vector! Now I can actually see if the
dang thing works!

THANK YOU EVERYBODY for putting up with me on this!

> It comes from FRR[NIRQ].  It seems that this chip takes a
> less-than-useful interpretation of what that field means -- it gives
> the actual number of sources, not the size of the sparsely populated
> array.
Perhaps you might want to have a talk with your cow-orkers there, Scott,
since this is a Freescale part.

> It's not very clear to me what distinction the MPIC code is
> trying to make between irq_count and num_sources in the first place,
> though.
/me looks at Scott's email again.

If you, working FOR Freescale, and following the Linux development
(presumably for some time) are confused, imagine what I've been going
through!

Hot damn, and time for a quick version control commit, a hot lunch, and
really testing the code.

Thanks again!


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread Scott Wood
On Thu, 14 Oct 2010 11:22:45 -0500
 wrote:

> As I read the code:
> /* Read feature register, calculate num CPUs and, for non-ISU
>* MPICs, num sources as well. On ISU MPICs, sources are counted
>* as ISUs are added
>*/
>   greg_feature = mpic_read(mpic->gregs, MPIC_INFO(GREG_FEATURE_0));
>   mpic->num_cpus = ((greg_feature & MPIC_GREG_FEATURE_LAST_CPU_MASK)
> >> MPIC_GREG_FEATURE_LAST_CPU_SHIFT) + 1;
>   if (isu_size == 0)
>   mpic->num_sources =
>   ((greg_feature & MPIC_GREG_FEATURE_LAST_SRC_MASK)
>>> MPIC_GREG_FEATURE_LAST_SRC_SHIFT) + 1;
> So it would seem to me that the "greg_feature" is saying I have 88
> interrupts.
> 
> I've tried setting the ISU size to 256:
> mpic1 = mpic_alloc(np, res.start,
>   MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN ,
>   256, 256,
>   " MPIC ");
> And that kills the kernel as we init the mpic.
> 
> SO, I guess the question in, what sets "greg_feature", as it would seem to
> be incorrect.

It comes from FRR[NIRQ].  It seems that this chip takes a
less-than-useful interpretation of what that field means -- it gives
the actual number of sources, not the size of the sparsely populated
array.

If you look at current kernels, you'll find an MPIC_BROKEN_FRR_NIRQS
flag to work around this.

It's not very clear to me what distinction the MPIC code is
trying to make between irq_count and num_sources in the first place,
though.

-Scott

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/3 v4] P4080/mtd: Only make elbc nand driver detect nand flash partitions

2010-10-14 Thread Scott Wood
On Wed, 13 Oct 2010 20:09:02 -0700
"Zang Roy-R61911"  wrote:

> > > > > + struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = NULL;
> > > >
> > > > No need for = NULL.
> > > Any harm? Or just personal habit or style? Can you explain about
> why?
> > 
> > Besides not wanting superfluous code on general principle, it could
> > hide a bug if in the future the real initialization is missing on some
> > code path.  It would become a runtime NULL dereference rather than a
> > compiler warning.
> 
> Not exactly.
> Per my understand, if the pointer will definitely be assigned in code
> path,
> it is not necessary to init it when define. for example,
> 
> char c;
> char b;
> char *a;
> if (condition)
>   a = &c;
> else
>   a = &b;
> ...
> 
> for other case, if the path will not ensure the pointer assignment, it
> will be inited
> when define to avoid warning. for example,
> 
> char c;
> char *a = NULL;
> if (condition)
>   a = &c;
> ...

Yes, but this patch looks like the former case, not the
latter.  Is GCC giving a warning without the initializer?

-Scott

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread david . hagood
I may have a clue (you might not think so, but...):

I've configured the init thusly:
mpic1 = mpic_alloc(np, res.start,
MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN ,
0, 256,
" MPIC ");

Which, as I read the code, should disable the ISU stuff.

I've seeing this on boot:
mpic: Setting up MPIC " MPIC " version 1.2 at e004, max 2 CPUs
mpic: ISU size: 88, shift: 7, mask: 7f
mpic: Initializing for 88 sources

Now, since the interrupt number I want is 224, which, last time I checked,
was > 88, this may be the root cause.

As I read the code:
/* Read feature register, calculate num CPUs and, for non-ISU
 * MPICs, num sources as well. On ISU MPICs, sources are counted
 * as ISUs are added
 */
greg_feature = mpic_read(mpic->gregs, MPIC_INFO(GREG_FEATURE_0));
mpic->num_cpus = ((greg_feature & MPIC_GREG_FEATURE_LAST_CPU_MASK)
  >> MPIC_GREG_FEATURE_LAST_CPU_SHIFT) + 1;
if (isu_size == 0)
mpic->num_sources =
((greg_feature & MPIC_GREG_FEATURE_LAST_SRC_MASK)
 >> MPIC_GREG_FEATURE_LAST_SRC_SHIFT) + 1;
So it would seem to me that the "greg_feature" is saying I have 88
interrupts.

I've tried setting the ISU size to 256:
mpic1 = mpic_alloc(np, res.start,
MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN ,
256, 256,
" MPIC ");
And that kills the kernel as we init the mpic.

SO, I guess the question in, what sets "greg_feature", as it would seem to
be incorrect.

Or, am I on the wrong trail?


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/3 v4] P4080/eLBC: Make Freescale elbc interrupt common to elbc devices

2010-10-14 Thread Scott Wood
On Wed, 13 Oct 2010 23:43:38 -0700
"Zang Roy-R61911"  wrote:

> > Plus, I think the patch is not runtime bisectable (i.e. you
> > now do request_irq() here, but not removing it from the nand
> > driver, so nand will fail to probe).
> Nand driver does not need to request irq. It will use the irq requested by 
> lbc.
> remember, other lbc device may also need to use this registered irq. 
> It should not be removed in nand driver.

The point is that you need to make both changes in the same patch.

-Scott

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Questions on interrupt vector assignment on MPC8641D

2010-10-14 Thread Scott Wood
On Thu, 14 Oct 2010 11:27:09 +0800
"tiejun.chen"  wrote:

> tiejun.chen wrote:
> > Scott Wood wrote:
> >> On Wed, 13 Oct 2010 09:17:01 +0800
> >> "tiejun.chen"  wrote:
> >>
> >>> Scott Wood wrote:
>  The crash is happening somewhere in mpic_set_irq_type():
> >>> Agreed. That is just where I pointed out on my email replied for OOPS. To 
> >>> enable
> >>> DBG to figure out 'src' and 'mpic->irq_count' from the file,
> >>> arch/powerpc/sysdev/mpic.c,.
> >>> ==
> >>> int mpic_set_irq_type(unsigned int virq, unsigned int flow_type)
> >>> {
> >>>   ..
> >>>   if (src >= mpic->irq_count)
> >>>   return -EINVAL;
> >>>   ^
> >>>   I think this OOPS may be from here.
> >> No, it's after that.  His board code is using the mpic's "isu" remapping
> > 
> > I means OOPS is *from* here. According to David's call trace,
> > mpic_set_irq_type() is the last issued function. And that corresponding 
> > return
> > value, R3, is '0xffea', -22, and also '-EINVAL'.

Just because that value is in r3 doesn't mean that src >=
mpic->irq_count.

Consider something like:

cmplw   r4, r5
li  r3, -EINVAL
bgelr
...


-Scott

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/5121: pdm360ng: fix touch irq if 8xxx gpio driver is enabled

2010-10-14 Thread Anatolij Gustschin
Hi Grant,

On Wed, 15 Sep 2010 22:12:57 +0200
Anatolij Gustschin  wrote:

> Enabling the MPC8xxx GPIO driver with MPC512x GPIO extension
> breaks touch screen support on this board since the GPIO
> interrupt will be mapped to 8xxx GPIO irq host resulting in
> a not requestable interrupt in the touch screen driver. Fix
> it by mapping the touch interrupt on 8xxx GPIO irq host.
> 
> Signed-off-by: Anatolij Gustschin 
> ---
>  arch/powerpc/platforms/512x/pdm360ng.c |   26 ++
>  1 files changed, 22 insertions(+), 4 deletions(-)

Can this patch go in for 2.6.37 ?

Thanks,
Anatolij

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


eSDHC controller driver on MPC8308rdb

2010-10-14 Thread Maria Johansen
Hello,
(apologies for writing such a long e-mail, hope you can bother to read it all ☺ 
)
I have some difficulties with the eSDHC controller driver used on a MPC8308 
evaluation board with kernel 2.6.36-rc7, and hope that some of you may be able 
to help me with the debugging. 

The driver is loaded properly, and binds to the eSDHC controller without 
problems. When inserting a sd-card it is bound to the  mmcblk-driver, so no 
problems there either.  

However, I am not able to read nor write to the card, I have attached output 
with error messages below:

**
mmc0: new SDHC card at address 9155
mmcblk0: mmc0:9155 SD04G 3.69 GiB
mmc0: Too large timeout requested!
mmcblk0: retrying using single block read
mmc0: Too large timeout requested!
mmcblk0: error -84 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 0
mmc0: Too large timeout requested!
mmcblk0: error -84 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 1
…..

Debug output with no SD-card:
**
mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 20 width 0 timing 0
mmc0: clock 40Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
of:sdhci-of e002e000.sdhci: desired SD clock: 40, actual: 0
mmc0: starting CMD52 arg 0c00 flags 0195
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req done (CMD52): -110:    
mmc0: starting CMD52 arg 8c08 flags 0195
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req done (CMD52): -110:    
mmc0: clock 40Hz busmode 1 powermode 2 cs 1 Vdd 20 width 0 timing 0
mmc0: starting CMD0 arg  flags 00c0
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001
mmc0: req done (CMD0): 0:    
mmc0: clock 40Hz busmode 1 powermode 2 cs 0 Vdd 20 width 0 timing 0
mmc0: starting CMD8 arg 01aa flags 02f5
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req done (CMD8): -110:    
mmc0: starting CMD5 arg  flags 02e1
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req failed (CMD5): -110, retrying...
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req failed (CMD5): -110, retrying...
sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010001
mmc0: req failed (CMD5): -110, retrying...
…

I have the following in my dts:
   sd...@2e000 {
compatible = "fsl,mpc8308-esdhc", "fsl,esdhc";
reg = <0x2e000 0x1000>;
interrupts = <42 0x8>;
interrupt-parent = <&ipic>;
clock-frequency = <0>;
};


Could this be a problem related the eSDHC controller (or the driver), or is it 
the memory card? (a 4GB SanDisk Extreme SDHC card, which unfortunately is the 
only card I have available at the moment.)
I will keep digging into drivers/mmc/host/sdhci.c in search of a solution, and 
any tips to how I should proceed would be greatly appreciated!

--
Maria 
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] spi/fsl_spi: Fix compile errors when building on ppc64

2010-10-14 Thread Grant Likely
On Thu, Oct 14, 2010 at 08:55:47AM -0500, Kumar Gala wrote:
> We get the following when building on ppc64 due to lack of include of
> :

Applied.

g.

> 
> In file included from drivers/spi/spi_fsl_espi.c:25:0:
> drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_write_reg':
> drivers/spi/spi_fsl_lib.h:88:2: error: implicit declaration of function 
> 'out_be32'
> drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_read_reg':
> drivers/spi/spi_fsl_lib.h:93:2: error: implicit declaration of function 
> 'in_be32'
> drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_remove':
> drivers/spi/spi_fsl_espi.c:571:2: error: implicit declaration of function 
> 'iounmap'
> drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_probe':
> drivers/spi/spi_fsl_espi.c:602:2: error: implicit declaration of function 
> 'ioremap'
> drivers/spi/spi_fsl_espi.c:602:24: warning: assignment makes pointer from 
> integer without a cast
> 
> Signed-off-by: Kumar Gala 
> ---
>  drivers/spi/spi_fsl_lib.h |2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/spi/spi_fsl_lib.h b/drivers/spi/spi_fsl_lib.h
> index 15aa6c2..281e060 100644
> --- a/drivers/spi/spi_fsl_lib.h
> +++ b/drivers/spi/spi_fsl_lib.h
> @@ -18,6 +18,8 @@
>  #ifndef __SPI_FSL_LIB_H__
>  #define __SPI_FSL_LIB_H__
>  
> +#include 
> +
>  /* SPI/eSPI Controller driver's private data. */
>  struct mpc8xxx_spi {
>   struct device *dev;
> -- 
> 1.7.2.3
> 
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] spi/fsl_spi: Fix compile errors when building on ppc64

2010-10-14 Thread Kumar Gala

On Oct 14, 2010, at 9:12 AM, Grant Likely wrote:

> On Thu, Oct 14, 2010 at 08:55:47AM -0500, Kumar Gala wrote:
>> We get the following when building on ppc64 due to lack of include of
>> :
> 
> Is this an immediate problem (merge for .36), or is it a linux-next thing?
> 
> g.

.37 / next is fine.

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] spi/fsl_spi: Fix compile errors when building on ppc64

2010-10-14 Thread Grant Likely
On Thu, Oct 14, 2010 at 08:55:47AM -0500, Kumar Gala wrote:
> We get the following when building on ppc64 due to lack of include of
> :

Is this an immediate problem (merge for .36), or is it a linux-next thing?

g.

> 
> In file included from drivers/spi/spi_fsl_espi.c:25:0:
> drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_write_reg':
> drivers/spi/spi_fsl_lib.h:88:2: error: implicit declaration of function 
> 'out_be32'
> drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_read_reg':
> drivers/spi/spi_fsl_lib.h:93:2: error: implicit declaration of function 
> 'in_be32'
> drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_remove':
> drivers/spi/spi_fsl_espi.c:571:2: error: implicit declaration of function 
> 'iounmap'
> drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_probe':
> drivers/spi/spi_fsl_espi.c:602:2: error: implicit declaration of function 
> 'ioremap'
> drivers/spi/spi_fsl_espi.c:602:24: warning: assignment makes pointer from 
> integer without a cast
> 
> Signed-off-by: Kumar Gala 
> ---
>  drivers/spi/spi_fsl_lib.h |2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/spi/spi_fsl_lib.h b/drivers/spi/spi_fsl_lib.h
> index 15aa6c2..281e060 100644
> --- a/drivers/spi/spi_fsl_lib.h
> +++ b/drivers/spi/spi_fsl_lib.h
> @@ -18,6 +18,8 @@
>  #ifndef __SPI_FSL_LIB_H__
>  #define __SPI_FSL_LIB_H__
>  
> +#include 
> +
>  /* SPI/eSPI Controller driver's private data. */
>  struct mpc8xxx_spi {
>   struct device *dev;
> -- 
> 1.7.2.3
> 
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: RTC rtc-cmos.c : Fix warning on PowerPC

2010-10-14 Thread srikanth krishnakar
>From 8435e5876fc3d629406c63b85bff82c25fc4bf75 Mon Sep 17 00:00:00 2001
From: Srikanth Krishnakar 
Date: Fri, 8 Oct 2010 18:07:06 +0530
Subject: [PATCH] RTC: rtc-cmos.c: Fix warning on PowerPC

The following warning is seen while compilation of PowerPC kernel:

 CC  drivers/rtc/rtc-cmos.o
drivers/rtc/rtc-cmos.c:697:2: warning: #warning Assuming 128 bytes
of RTC+NVRAM address space, not 64 bytes.

Fix it by adding defined(__powerpc__).

Signed-off-by: Srikanth Krishnakar 
---
 drivers/rtc/rtc-cmos.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 5856167..7e6ce62 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -687,7 +687,8 @@ cmos_do_probe(struct device *dev, struct resource
*ports, int rtc_irq)
 #ifdefined(CONFIG_ATARI)
address_space = 64;
 #elif defined(__i386__) || defined(__x86_64__) || defined(__arm__) \
-   || defined(__sparc__) || defined(__mips__)
+   || defined(__sparc__) || defined(__mips__) \
+   || defined(__powerpc__)
address_space = 128;
 #else
 #warning Assuming 128 bytes of RTC+NVRAM address space, not 64 bytes.
-- 
1.6.3.3.333.gdf68
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] spi/fsl_spi: Fix compile errors when building on ppc64

2010-10-14 Thread Kumar Gala
We get the following when building on ppc64 due to lack of include of
:

In file included from drivers/spi/spi_fsl_espi.c:25:0:
drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_write_reg':
drivers/spi/spi_fsl_lib.h:88:2: error: implicit declaration of function 
'out_be32'
drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_read_reg':
drivers/spi/spi_fsl_lib.h:93:2: error: implicit declaration of function 
'in_be32'
drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_remove':
drivers/spi/spi_fsl_espi.c:571:2: error: implicit declaration of function 
'iounmap'
drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_probe':
drivers/spi/spi_fsl_espi.c:602:2: error: implicit declaration of function 
'ioremap'
drivers/spi/spi_fsl_espi.c:602:24: warning: assignment makes pointer from 
integer without a cast

Signed-off-by: Kumar Gala 
---
 drivers/spi/spi_fsl_lib.h |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/spi/spi_fsl_lib.h b/drivers/spi/spi_fsl_lib.h
index 15aa6c2..281e060 100644
--- a/drivers/spi/spi_fsl_lib.h
+++ b/drivers/spi/spi_fsl_lib.h
@@ -18,6 +18,8 @@
 #ifndef __SPI_FSL_LIB_H__
 #define __SPI_FSL_LIB_H__
 
+#include 
+
 /* SPI/eSPI Controller driver's private data. */
 struct mpc8xxx_spi {
struct device *dev;
-- 
1.7.2.3

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/fsl-booke: Add e500mc smp defconfig

2010-10-14 Thread Timur Tabi
On Thu, Oct 14, 2010 at 8:25 AM, Kumar Gala  wrote:

> +CONFIG_MATH_EMULATION=y

Don't these chips have hardware FP?

> +CONFIG_E1000=y
> +CONFIG_E1000E=y

Are you sure you want these on by default?  We may use the E1000 cards
in-house, but I don't know if our customers do.

> +CONFIG_MSDOS_FS=m
> +CONFIG_VFAT_FS=y
> +CONFIG_NTFS_FS=y

These should probably be off as well.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] powerpc/fsl-booke: Add e500mc smp defconfig

2010-10-14 Thread Kumar Gala
The p4080, p3041, and p5020 (32-bit) SoCs from Freescale use the e500mc
defconfig.  There are enough minor differences between these SoCs and
the existing P1xxx/P2xxx and MPC85xx SoCs to warrant a new defconfig.
The biggest of those is the cachline size being different which we
handle at compile time.

Signed-off-by: Kumar Gala 
---
 arch/powerpc/configs/e500mc_smp_defconfig |  178 +
 1 files changed, 178 insertions(+), 0 deletions(-)
 create mode 100644 arch/powerpc/configs/e500mc_smp_defconfig

diff --git a/arch/powerpc/configs/e500mc_smp_defconfig 
b/arch/powerpc/configs/e500mc_smp_defconfig
new file mode 100644
index 000..39b5871
--- /dev/null
+++ b/arch/powerpc/configs/e500mc_smp_defconfig
@@ -0,0 +1,178 @@
+CONFIG_PPC_85xx=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=8
+CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_AUDIT=y
+CONFIG_RCU_TRACE=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_EMBEDDED=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_PERF_EVENTS=y
+CONFIG_SLAB=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_P3041_DS=y
+CONFIG_P4080_DS=y
+CONFIG_P5020_DS=y
+CONFIG_HIGHMEM=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BINFMT_MISC=m
+CONFIG_MATH_EMULATION=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIEASPM is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=y
+CONFIG_NET_KEY_MIGRATE=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_NET_IPGRE=y
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_INET_AH=y
+CONFIG_INET_ESP=y
+CONFIG_INET_IPCOMP=y
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_IP_SCTP=m
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_MTD=y
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_M25P80=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=131072
+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_SCSI_SYM53C8XX_2=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_SIL24=y
+CONFIG_SATA_SIL=y
+CONFIG_PATA_SIL680=y
+CONFIG_NETDEVICES=y
+CONFIG_VITESSE_PHY=y
+CONFIG_FIXED_PHY=y
+CONFIG_NET_ETHERNET=y
+CONFIG_E1000=y
+CONFIG_E1000E=y
+CONFIG_FSL_PQ_MDIO=y
+# 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_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_HW_RANDOM=y
+CONFIG_NVRAM=y
+CONFIG_I2C=y
+CONFIG_I2C_MPC=y
+CONFIG_SPI=y
+CONFIG_SPI_GPIO=y
+# CONFIG_HWMON is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_USB_HID=m
+CONFIG_USB=y
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_MON=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_FSL=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
+CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
+CONFIG_USB_STORAGE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_OF=y
+CONFIG_MMC_SDHCI_OF_ESDHC=y
+CONFIG_EDAC=y
+CONFIG_EDAC_MM_EDAC=y
+CONFIG_EDAC_MPC85XX=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_CMOS=y
+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_JFFS2_FS=y
+CONFIG_CRAMFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_SHIRQ=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEBUG_INFO=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-- 
1.7.2.3

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Oops while running systemtap on the p6 machine against the kernel version 2.6.36-rc7-git3

2010-10-14 Thread divya

While running systemtap tests on the p6 machine , against the kernel version 
2.6.36-rc7-git3
Oops occured , here are the call trace

 BUG: spinlock bad magic on CPU#6, stapio/20398
-- 0:conmux-control -- time-stamp -- Oct/13/10  2:49:18 --res
 lock: c0fcfa18, .magic: , .owner:/-1, .owner_cpu: 0
Call Trace:
[c001effbfab0] [c0011934] .show_stack+0x6c/0x16c (unreliable)
[c001effbfb60] [c02c9274] .spin_bug+0xb0/0xd4
[c001effbfbf0] [c02c953c] .do_raw_spin_lock+0x48/0x184
[c001effbfc90] [c054af78] ._raw_spin_lock+0x10/0x24
[c001effbfd00] [d3015908] .__stp_time_timer_callback+0x94/0x13c 
[stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
[c001effbfdc0] [c009c2f8] .run_timer_softirq+0x1d8/0x2a8
[c001effbfec0] [c00952d0] .__do_softirq+0xe4/0x1b4
[c001effbff90] [c002a7a8] .call_do_softirq+0x14/0x24
[c0010af1f560] [c000dde4] .do_softirq+0x88/0xf0
[c0010af1f600] [c0095030] .irq_exit+0x50/0xac
[c0010af1f680] [c0027660] .timer_interrupt+0x110/0x13c
[c0010af1f710] [c0003718] decrementer_common+0x118/0x180
--- Exception: 901 at .smp_call_function_many+0x284/0x2d0
LR = .smp_call_function_many+0x268/0x2d0
[c0010af1fae0] [c00c55c4] .smp_call_function+0x3c/0x54
[c0010af1fb60] [c0094cdc] .on_each_cpu+0x24/0x84
[c0010af1fc00] [d3016738] ._stp_ctl_write_cmd+0x3b0/0x9c8 
[stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
[c0010af1fce0] [c01585f4] .vfs_write+0xd0/0x1b8
[c0010af1fd80] [c01587e4] .SyS_write+0x58/0xa0
[c0010af1fe30] [c00085b4] syscall_exit+0x0/0x40
[ cut here ]
kernel BUG at kernel/timer.c:681!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: 
/sys/module/stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798/sections/__param
Modules linked in: stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798 ipv6 fuse loop 
dm_mod ibmveth sg sr_mod cdrom sd_mod crc_t10dif ibmvscsic scsi_transport_srp 
scsi_tgt scsi_mod [last unloaded: stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
NIP: c009d090 LR: d301597c CTR: c009cfb0
REGS: c001effbf9d0 TRAP: 0700   Not tainted  (2.6.36-rc7-git3-autotest)
MSR: 80029032   CR: 28000482  XER: 0002
TASK = c00103422410[20398] 'stapio' THREAD: c0010af1c000 CPU: 6
GPR00: 0001 c001effbfc50 c0a31660 c0fcfa48
GPR04: 0001c8da 0070 0002 
GPR08:  c0ac7bf8 0006 c009cfb0
GPR12: d3017090 cf600f00 10008fd8 10008ff8
GPR16:  c0a91180  0001
GPR20: c0010edb9030 c0010edb9430 c0010edb9830 c0010edb9c30
GPR24: 0001 001167a5b590dc41 c0fcfa18 0001c8da
GPR28: c0fcfa48 d301597c c09a6470 0001c8da
NIP [c009d090] .mod_timer+0xe0/0x24c
LR [d301597c] .__stp_time_timer_callback+0x108/0x13c 
[stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
Call Trace:
[c001effbfc50] [c001effbfd00] 0xc001effbfd00 (unreliable)
[c001effbfd00] [d301597c] .__stp_time_timer_callback+0x108/0x13c 
[stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
[c001effbfdc0] [c009c2f8] .run_timer_softirq+0x1d8/0x2a8
[c001effbfec0] [c00952d0] .__do_softirq+0xe4/0x1b4
[c001effbff90] [c002a7a8] .call_do_softirq+0x14/0x24
[c0010af1f560] [c000dde4] .do_softirq+0x88/0xf0
[c0010af1f600] [c0095030] .irq_exit+0x50/0xac
[c0010af1f680] [c0027660] .timer_interrupt+0x110/0x13c
[c0010af1f710] [c0003718] decrementer_common+0x118/0x180
--- Exception: 901 at .smp_call_function_many+0x284/0x2d0
LR = .smp_call_function_many+0x268/0x2d0
[c0010af1fae0] [c00c55c4] .smp_call_function+0x3c/0x54
[c0010af1fb60] [c0094cdc] .on_each_cpu+0x24/0x84
[c0010af1fc00] [d3016738] ._stp_ctl_write_cmd+0x3b0/0x9c8 
[stap_75ce6f84d34f8665c9a6b8e27fb9ea95_818798]
[c0010af1fce0] [c01585f4] .vfs_write+0xd0/0x1b8
[c0010af1fd80] [c01587e4] .SyS_write+0x58/0xa0
[c0010af1fe30] [c00085b4] syscall_exit+0x0/0x40
Instruction dump:
7ffb4878 f9210070 e93e8078 8009 2f80 419e0010 7fa4eb78 7f83e378
4bfffcb1 e81c0020 7c74 7800d182<0b00>  7f83e378 38810070 3b40
Kernel panic - not syncing: Fatal exception in interrupt
Call Trace:
[c001effbf5b0] [c0011934] .show_stack+0x6c/0x16c (unreliable)
[c001effbf660] [c0552094] .panic+0x9c/0x204
[c001effbf700] [c0028974] .die+0x268/0x2ac
[c001effbf7a0] [c0028ca8] ._exception+0x88/0x174
[c001effbf960] [c0004f8c] program_check_common+0x10c/0x180
--- Exception: 700 at .mod_timer+0xe0/0x24c
LR = .__stp_time_timer_callb

Re: [PATCH 2/3] fsl_rio: fix non-standard HID1 register access

2010-10-14 Thread Kumar Gala

On Oct 14, 2010, at 2:10 AM, Li Yang-R58472 wrote:

>> Subject: Re: [PATCH 2/3] fsl_rio: fix non-standard HID1 register access
>> 
>> 
>> On Oct 13, 2010, at 9:04 PM, Shaohui Xie wrote:
>> 
>>> From: Li Yang 
>>> 
>>> The access to HID1 register is only legitimate for e500 v1/v2 cores.
>>> Also fixes magic number.
>>> 
>>> Signed-off-by: Li Yang 
>>> Signed-off-by: Shaohui Xie 
>>> ---
>>> arch/powerpc/sysdev/fsl_rio.c |9 ++---
>>> 1 files changed, 6 insertions(+), 3 deletions(-)
>>> 
>>> diff --git a/arch/powerpc/sysdev/fsl_rio.c
>>> b/arch/powerpc/sysdev/fsl_rio.c index 4127636..dfff3b7 100644
>>> --- a/arch/powerpc/sysdev/fsl_rio.c
>>> +++ b/arch/powerpc/sysdev/fsl_rio.c
>>> @@ -1537,9 +1537,12 @@ int fsl_rio_setup(struct platform_device *dev)
>>> #ifdef CONFIG_E500
>>> saved_mcheck_exception = ppc_md.machine_check_exception;
>>> ppc_md.machine_check_exception = fsl_rio_mcheck_exception; -#endif
>>> -   /* Ensure that RFXE is set */
>>> -   mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x2));
>>> +
>>> +#ifndef CONFIG_PPC_E500MC
>>> +   /* Ensure that RFXE is set on e500 v1/v2 */
>>> +   mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | HID1_RFXE)); #endif /*
>>> +!PPC_E500MC */ #endif /* E500 */
>> 
>> I've never really been happy with this code.  We really should set
>> HID1_RFXE in cpu_setup_fsl_booke.S instead.
> 
> But this bit is not recommended to be set unless necessary.  And it is only 
> required by SRIO for now.

Than wrap it in a CONFIG_RAPIDIO in cpu_setup_fsl_booke.S

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Please pull 'next' branch of 4xx tree

2010-10-14 Thread Josh Boyer
On Thu, Oct 14, 2010 at 11:56:15AM +1100, Benjamin Herrenschmidt wrote:
>On Wed, 2010-10-13 at 09:16 -0400, Josh Boyer wrote:
>> On Tue, Sep 28, 2010 at 09:09:41AM -0400, Josh Boyer wrote:
>> >Hi Ben,
>> >
>> >A few small updates for the next branch.  A new board/SoC from AMCC, and
>> >some 476 changes from Shaggy.  Please pull.
>> 
>> OK, below is a fixed up tree that drops the patch Shaggy said was
>> broken, and rebases on top of your new -next branch.  Please pull.
>
>please, rebase again without Shaggy's lazy flush patch. I'll handle that
>one separately, I think it needs a little bit more massaging.

The following changes since commit 4108d9ba9091c55cfb968d42dd7dcae9a098b876:

  powerpc/Makefiles: Change to new flag variables (2010-10-13 16:19:22 +1100)

are available in the git repository at:
  ssh://master.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git next

Josh Boyer (1):
  powerpc/44x: Update ppc44x_defconfig

Tirumala Marri (1):
  powerpc/44x: Add support for the AMCC APM821xx SoC

 arch/powerpc/boot/dts/bluestone.dts  |  254 ++
 arch/powerpc/configs/44x/bluestone_defconfig |   68 +++
 arch/powerpc/configs/ppc44x_defconfig|9 +-
 arch/powerpc/kernel/cpu_setup_44x.S  |1 +
 arch/powerpc/kernel/cputable.c   |   15 ++
 arch/powerpc/platforms/44x/Kconfig   |   16 ++
 arch/powerpc/platforms/44x/ppc44x_simple.c   |1 +
 7 files changed, 360 insertions(+), 4 deletions(-)
 create mode 100644 arch/powerpc/boot/dts/bluestone.dts
 create mode 100644 arch/powerpc/configs/44x/bluestone_defconfig

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH][v2] powerpc/fsl: 85xx: add cache-sram support

2010-10-14 Thread Li Yang
 Oct 13, 2010 at 8:00 PM,   wrote:
> From: Harninder Rai 
>
> It adds cache-sram support in P1/P2 QorIQ platforms as under:
>
>    * A small abstraction over powerpc's remote heap allocator
>    * Exports mpc85xx_cache_sram_alloc()/free() APIs
>    * Supports only one contiguous SRAM window
>    * Drivers can do the following in Kconfig to use these APIs
>        "select FSL_85XX_CACHE_SRAM if MPC85xx"

You are missing the definition of this option in Kconfig like:

+config FSL_85XX_CACHE_SRAM
+   bool
+   select PPC_LIB_RHEAP
+

The select won't work actually.

Furthermore, MPC85xx config has been changed to FSL_SOC_BOOKE

- Leo
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

RE: [PATCH 2/3] fsl_rio: fix non-standard HID1 register access

2010-10-14 Thread Li Yang-R58472
>Subject: Re: [PATCH 2/3] fsl_rio: fix non-standard HID1 register access
>
>
>On Oct 13, 2010, at 9:04 PM, Shaohui Xie wrote:
>
>> From: Li Yang 
>>
>> The access to HID1 register is only legitimate for e500 v1/v2 cores.
>> Also fixes magic number.
>>
>> Signed-off-by: Li Yang 
>> Signed-off-by: Shaohui Xie 
>> ---
>> arch/powerpc/sysdev/fsl_rio.c |9 ++---
>> 1 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/powerpc/sysdev/fsl_rio.c
>> b/arch/powerpc/sysdev/fsl_rio.c index 4127636..dfff3b7 100644
>> --- a/arch/powerpc/sysdev/fsl_rio.c
>> +++ b/arch/powerpc/sysdev/fsl_rio.c
>> @@ -1537,9 +1537,12 @@ int fsl_rio_setup(struct platform_device *dev)
>> #ifdef CONFIG_E500
>>  saved_mcheck_exception = ppc_md.machine_check_exception;
>>  ppc_md.machine_check_exception = fsl_rio_mcheck_exception; -#endif
>> -/* Ensure that RFXE is set */
>> -mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x2));
>> +
>> +#ifndef CONFIG_PPC_E500MC
>> +/* Ensure that RFXE is set on e500 v1/v2 */
>> +mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | HID1_RFXE)); #endif /*
>> +!PPC_E500MC */ #endif /* E500 */
>
>I've never really been happy with this code.  We really should set
>HID1_RFXE in cpu_setup_fsl_booke.S instead.

But this bit is not recommended to be set unless necessary.  And it is only 
required by SRIO for now.

- Leo

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev