Re: powerpc/mpc5200: remove unused #include

2008-08-22 Thread Grant Likely
On Fri, Aug 22, 2008 at 11:56 PM, Huang Weiyi <[EMAIL PROTECTED]> wrote:
> The file(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
>  arch/powerpc/sysdev/bestcomm/gen_bd.c
>
> This patch removes the said #include .
>
> Signed-off-by: Huang Weiyi <[EMAIL PROTECTED]>

Thanks, I'll queue this for .28

g.

>
> diff --git a/arch/powerpc/sysdev/bestcomm/gen_bd.c 
> b/arch/powerpc/sysdev/bestcomm/gen_bd.c
> index a3a134c..e0a53e3 100644
> --- a/arch/powerpc/sysdev/bestcomm/gen_bd.c
> +++ b/arch/powerpc/sysdev/bestcomm/gen_bd.c
> @@ -11,7 +11,6 @@
>  *
>  */
>
> -#include 
>  #include 
>  #include 
>  #include 
>
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [POWERPC] XilinxFB: removed unused #include

2008-08-22 Thread Grant Likely
On Fri, Aug 22, 2008 at 11:56 PM, Huang Weiyi <[EMAIL PROTECTED]> wrote:
> The driver(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
>  drivers/video/xilinxfb.c
>
> This patch removes the said #include .
>
> Signed-off-by: Huang Weiyi <[EMAIL PROTECTED]>

Thanks, I'll pick this one up for .28

g.

>
> diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
> index 7b3a842..5da3d24 100644
> --- a/drivers/video/xilinxfb.c
> +++ b/drivers/video/xilinxfb.c
> @@ -24,7 +24,6 @@
>  #include 
>  #include 
>  #include 
> -#include 
>  #include 
>  #include 
>  #include 
>
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[POWERPC] XilinxFB: removed unused #include

2008-08-22 Thread Huang Weiyi
The driver(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
  drivers/video/xilinxfb.c

This patch removes the said #include .

Signed-off-by: Huang Weiyi <[EMAIL PROTECTED]>

diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index 7b3a842..5da3d24 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -24,7 +24,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 

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


powerpc/mpc5200: remove unused #include

2008-08-22 Thread Huang Weiyi
The file(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
  arch/powerpc/sysdev/bestcomm/gen_bd.c

This patch removes the said #include .

Signed-off-by: Huang Weiyi <[EMAIL PROTECTED]>

diff --git a/arch/powerpc/sysdev/bestcomm/gen_bd.c 
b/arch/powerpc/sysdev/bestcomm/gen_bd.c
index a3a134c..e0a53e3 100644
--- a/arch/powerpc/sysdev/bestcomm/gen_bd.c
+++ b/arch/powerpc/sysdev/bestcomm/gen_bd.c
@@ -11,7 +11,6 @@
  *
  */

-#include 
 #include 
 #include 
 #include 

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


[PATCH] Pika Warp appliance watchdog timer

2008-08-22 Thread Sean MacLennan
The FPGA based watchdog timer used by the Pika Warp appliance.

Signed-off-by: Sean MacLennan <[EMAIL PROTECTED]>
---
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index db20542..2bbb607 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -719,6 +719,14 @@ config BOOKE_WDT
  Please see Documentation/watchdog/watchdog-api.txt for
  more information.
 
+config PIKA_WDT
+   tristate "PIKA FPGA Watchdog"
+   depends on WARP
+   default y
+   help
+This enables the watchdog in the PIKA FPGA. Currently used on
+the Warp platform.
+
 # PPC64 Architecture
 
 config WATCHDOG_RTAS
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index ca3dc04..3527290 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -109,6 +109,7 @@ obj-$(CONFIG_MPC5200_WDT) += mpc5200_wdt.o
 obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
 obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
 obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
+obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
 
 # PPC64 Architecture
 obj-$(CONFIG_WATCHDOG_RTAS) += wdrtas.o
diff --git a/drivers/watchdog/pika_wdt.c b/drivers/watchdog/pika_wdt.c
new file mode 100644
index 000..32e11f7
--- /dev/null
+++ b/drivers/watchdog/pika_wdt.c
@@ -0,0 +1,113 @@
+/*
+ * PIKA FPGA based Watchdog Timer
+ *
+ * Copyright (c) 2008 PIKA Technologies
+ *   Sean MacLennan <[EMAIL PROTECTED]>
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+static void __iomem *pikawdt_fpga;
+
+
+static inline void pikawdt_ping(void)
+{
+   unsigned reset = in_be32(pikawdt_fpga + 0x14);
+   reset |= 0xf80; /* enable with max timeout - 15 seconds */
+   out_be32(pikawdt_fpga + 0x14, reset);
+}
+
+static int pikawdt_open(struct inode *inode, struct file *file)
+{
+   printk(KERN_INFO "PIKA WDT started...\n");
+
+   pikawdt_ping();
+
+   return 0;
+}
+
+static int pikawdt_release(struct inode *inode, struct file *file)
+{
+   pikawdt_ping(); /* one last time */
+   return 0;
+}
+
+static ssize_t pikawdt_write(struct file *file, const char __user *buf,
+size_t count, loff_t *ppos)
+{
+   pikawdt_ping();
+   return count;
+}
+
+/* We support the bare minimum to be conformant. */
+static int pikawdt_ioctl(struct inode *inode, struct file *file,
+unsigned int cmd, unsigned long arg)
+{
+   if (cmd == WDIOC_KEEPALIVE) {
+   pikawdt_ping();
+   return 0;
+   } else
+   return -EINVAL;
+}
+
+static const struct file_operations pikawdt_fops = {
+   .owner  = THIS_MODULE,
+   .open   = pikawdt_open,
+   .release= pikawdt_release,
+   .write  = pikawdt_write,
+   .ioctl  = pikawdt_ioctl,
+};
+
+static struct miscdevice pikawdt_miscdev = {
+   .minor  = WATCHDOG_MINOR,
+   .name   = "watchdog",
+   .fops   = &pikawdt_fops,
+};
+
+static int __init pikawdt_init(void)
+{
+   struct device_node *np;
+   int ret;
+
+   np = of_find_compatible_node(NULL, NULL, "pika,fpga");
+   if (np == NULL) {
+   printk(KERN_ERR "pikawdt: Unable to find fpga.\n");
+   return -ENOENT;
+   }
+
+   pikawdt_fpga = of_iomap(np, 0);
+
+   of_node_put(np);
+
+   if (pikawdt_fpga == NULL) {
+   printk(KERN_ERR "pikawdt: Unable to map fpga.\n");
+   return -ENOENT;
+   }
+
+   ret = misc_register(&pikawdt_miscdev);
+   if (ret) {
+   iounmap(pikawdt_fpga);
+   printk(KERN_ERR "pikawdt: Unable to register miscdev.\n");
+   return ret;
+   }
+
+   return 0;
+}
+module_init(pikawdt_init);
+
+
+static void __exit pikawdt_exit(void)
+{
+   misc_deregister(&pikawdt_miscdev);
+
+   iounmap(pikawdt_fpga);
+}
+module_exit(pikawdt_exit);
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: checkpatch nits ...

2008-08-22 Thread Sean MacLennan
On Fri, 22 Aug 2008 17:21:44 -0700
"Kevin Diggs" <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> Can I ignore these checkpatch errors:
> 
> ERROR: do not initialise statics to 0 or NULL
> #829: FILE: powerpc/kernel/cpu/pll_if.c:61:
> +static unsigned int override_bus_clock = 0;
> 
> ERROR: do not initialise externals to 0 or NULL
> #1281: FILE: powerpc/kernel/cpu/pll_if.c:513:
> +int rval = 0;
> 
> Someone (Arnd?) told me this was due to an older compiler putting
> these in a strange section?

Older gcc, and in fact many (most?) compilers, put *all* initialized
variables in a data section rather than the bss. This means they took
up room in the executable. By not explicitly setting them to zero, they
where put in the bss and initialized to zero anyway.

Newer gccs will put them in the bss if they are zero. You could argue
that this is technically wrong.

I tend to remove the 0s or nulls just to cut down on the checkpatch
errors. You need to decide if it is worth it. I wouldn't submit a patch
with *just* these changes.

Cheers,
   Sean
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


checkpatch nits ...

2008-08-22 Thread Kevin Diggs

Hi,

Can I ignore these checkpatch errors:

ERROR: do not initialise statics to 0 or NULL
#829: FILE: powerpc/kernel/cpu/pll_if.c:61:
+static unsigned int override_bus_clock = 0;

ERROR: do not initialise externals to 0 or NULL
#1281: FILE: powerpc/kernel/cpu/pll_if.c:513:
+int rval = 0;

Someone (Arnd?) told me this was due to an older compiler putting these
in a strange section?

WARNING: externs should be avoided in .c files
#1137: FILE: powerpc/kernel/cpu/pll_if.c:369:
+   __asm__ __volatile__ (

??? I don't know what this is?

The entire block is:

__asm__ __volatile__ (
"addi %0,%3,-1\n"
"andc %1,%3,%0\n"
"cntlzw %1,%1\n"
"subfic %1,%1,31\n"
"cntlzw %0,%2\n":
"=r"(cntlz), "=r"(cnttz):
"r"(tmp), "b"(cnttz)
);

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


Re: Why does one "stw" fail with address translation disabled in PPC405EP?

2008-08-22 Thread Josh Boyer
On Fri, Aug 22, 2008 at 08:27:15PM +0200, Zhou Rui wrote:
>Hi, all:
>I think I meet an odd problem with PPC405EP (PPChameleonEVB Board).

What kernel version are you using?

>I am running a kernel module which will execute a user space
>application. The entry point of the application is 0x10a0. At the

That should be the first clue that you are doing it wrong.  Don't do
stuff like that in modules...

>moment when the processor tries to execute the application, 0x10a0
>is not in TLB (this can be seen from BDI by printing out TLB entries),
>so DTLBMiss is called automatically and then finish_tlb_load. However,
>InstructionAccess is followed and the problem arises here.
>InstructionAccess starts from 0x400, and after instruction "0xc434
>:  stw r12,64(r11)", machine check occurs.
>This instruction will store the value of r12, which is 0x0 at this
>moment, to address 0x03072de0. I am puzzled why this action leads to
>machine check. Is it illegal to store 0x0 in a memory address? Or is
>there some other cause of the machine check here?

I have no idea if you're using physical or virtual addresses here, so
there isn't much we can do to help you.

Do you have enough DRAM to cover that?  Some of those boards only come
with 32MiB of DRAM.

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


Re: [PATCH] POWERPC: Allow 32-bit pgtable code to support 36-bit physical

2008-08-22 Thread Becky Bruce


On Aug 21, 2008, at 4:40 PM, Kumar Gala wrote:


#define _PMD_PRESENT0
#define _PMD_PRESENT_MASK (PAGE_MASK)
@@ -517,7 +522,13 @@ extern unsigned long  
bad_call_to_PMD_PAGE_SIZE(void);


#define pte_none(pte)   ((pte_val(pte) & ~_PTE_NONE_MASK) == 0)
#define pte_present(pte)(pte_val(pte) & _PAGE_PRESENT)
+
+#if (defined(CONFIG_PTE_64BIT) && (_PAGE_HASHPTE != 0))
+#define pte_clear(mm, addr, ptep) \
+   do { pte_update((ptep), (~_PAGE_HASHPTE), __pte(0)); } while (0)


drop the __pte(0), doesn't make sense for pte_update


Cut-and-paste strikes again :) Will fix, thanks.





+#else
#define pte_clear(mm,addr,ptep)	do { set_pte_at((mm), (addr),  
(ptep), __pte(0)); } while (0)

+#endif


Can we just always (for all ppc32) do:

#define pte_clear(mm,addr,ptep)do { pte_update(ptep,  
(~_PAGE_HASHPTE), 0); } while (0)


I've already changed this to be:

#define pte_clear(mm,addr,ptep) do { pte_update(ptep, ~0, 0); }  
while (0)


That's fine, but it makes me dependent on your tree.  Shall I respin  
on top of your tree and have you pick this up, or are you going to  
push your changes to Paulus?







/*
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/ 
include/asm/types.h

index d3374bc..a9a9262 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -55,7 +55,7 @@ typedef u64 phys_addr_t;
typedef u32 phys_addr_t;
#endif

-#ifdef __powerpc64__
+#if defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT)
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;


is this really part of this patchset of the IOMMU changes?


It doesn't really belong here - I'll move it.

Thanks,
B

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


Why does one "stw" fail with address translation disabled in PPC405EP?

2008-08-22 Thread Zhou Rui
Hi, all:
I think I meet an odd problem with PPC405EP (PPChameleonEVB Board).
I am running a kernel module which will execute a user space
application. The entry point of the application is 0x10a0. At the
moment when the processor tries to execute the application, 0x10a0
is not in TLB (this can be seen from BDI by printing out TLB entries),
so DTLBMiss is called automatically and then finish_tlb_load. However,
InstructionAccess is followed and the problem arises here.
InstructionAccess starts from 0x400, and after instruction "0xc434
:  stw r12,64(r11)", machine check occurs.
This instruction will store the value of r12, which is 0x0 at this
moment, to address 0x03072de0. I am puzzled why this action leads to
machine check. Is it illegal to store 0x0 in a memory address? Or is
there some other cause of the machine check here?

405EP>r
GPR00: c31c5200 c3072da0 c03a97b0 10a0
GPR04: c306a000 c306e000 c31c51b8 c306a000
GPR08: c0a64000 c0a64000 4000 03072da0
GPR12:    
GPR16:    
GPR20:    
GPR24:    
GPR28:  c31d 10a0 c306a000
CR   : 2000 MSR: 1000
405EP>t
Core number   : 0
Core state: debug mode
Debug entry cause : single step
Current PC: 0x0434
Current CR: 0x2000
Current MSR   : 0x1000
Current LR: 0xc31c478c
405EP>r
GPR00: c31c5200 c3072da0 c03a97b0 10a0
GPR04: c306a000 c306e000 c31c51b8 c306a000
GPR08: c0a64000 c0a64000 4000 03072da0
GPR12:    
GPR16:    
GPR20:    
GPR24:    
GPR28:  c31d 10a0 c306a000
CR   : 2000 MSR: 1000
405EP>t
Core number   : 0
Core state: debug mode
Debug entry cause : single step
Current PC: 0x0200
Current CR: 0x2000
Current MSR   : 0x1000
Current LR: 0xc31c478c
405EP>

The error message shows more information. I am also puzzled why NIP here
is 0x440 but not 0x434:

Data machine check in kernel mode.
PLB0: BEAR= 0x03072dd4 ACR=   0x BESR=  0x00c0
PLB0 to OPB: BEAR= 0x0400 BESR0= 0x BESR1= 0x
Oops: machine check, sig: 7 [#1]
NIP: 0440 LR: C31C478C CTR: 10A0
REGS: c02a8f50 TRAP: 0202   Not tainted  (2.6.19.2)
MSR: 00021000   CR: 2000  XER: 
TASK = c0399490[987] 'loader.xm' THREAD: c028a000
GPR00: C31C5200 C3072DA0 C0399490 10A0 C306A000 C306E000 C31C51B8
C306A000 
GPR08: C0413000 C0413000  03072DA0   
 
GPR16:       
 
GPR24:      C31D 10A0
C306A000 
NIP [0440] 0x440
LR [C31C478C] jump_xm_dom+0x2c/0x48 [xm]
Call Trace:
Instruction dump:
        
        
Data machine check in kernel mode.
PLB0: BEAR= 0x03072dc0 ACR=   0x BESR=  0x0080
PLB0 to OPB: BEAR= 0x0400 BESR0= 0x BESR1= 0x
Oops: machine check, sig: 7 [#2]
NIP: C0002EA8 LR: C0002E94 CTR: C31C3094
REGS: c02a8f50 TRAP: 0202   Not tainted  (2.6.19.2)
MSR: 00021030   CR: 22002022  XER: 
TASK = c03990d0[905] 'klogd' THREAD: c0e34000
GPR00: C0002E94 C0E35F40 C03990D0 0FFF 0001  0FFF
 
GPR08:   00021032  C0E34000 0804E364 100F
 
GPR16: 101009E8 1009DF98 100F 08046368 08046364 07FEF08C 08046130
08004B74 
GPR24: 08004FA4 08046130 08004DB4 08004DB8 08004F70 080466BC 08046358
08046AC0 
NIP [C0002EA8] ret_from_syscall+0x14/0x3c
LR [C0002E94] ret_from_syscall+0x0/0x3c
Call Trace:
[C0E35F40] [C0002E94] ret_from_syscall+0x0/0x3c (unreliable)
Instruction dump:
614a9634 5400103a 408000a0 7d4a002e 7d4803a6 39210010 4e800021 7c661b78 
542c0024 3d42 614a1032 7d400124 <812c0028> 3900fdfc 7120db0f
408201a4

Another question is when 0x10a0 is missed in TLB, why the order of
calling kernel functions is DTLBMiss -- finish_tlb_load --
InstructionAccess?

Appreciate in advance for any advice!!!

Best Wishes

Zhou Rui
2008-08-22

__
¸Ï¿ì×¢²áÑÅ»¢³¬´óÈÝÁ¿Ãâ·ÑÓÊÏä?
http://cn.mail.yahoo.com

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

Re: libfreevec benchmarks

2008-08-22 Thread Ryan S. Arnold
On Fri, 2008-08-22 at 12:44 -0500, Ryan S. Arnold wrote:
> Today, if glibc is configure with --with-cpu=970 it will actually
> default to the power optimizations for the string routines, as
> indicated
> by the sysdeps/powerpc/powerpc[32|64]/970/Implies files.  It'd be
> worth
> verifying that your baseline glibc runs are against existing optimized
> versions of glibc.  If they're not then this is a fault of the distro
> you're testing on.

I intended to say that "it will actually default to the POWER4
optimizations"

Regards,
Ryan S. Arnold
IBM Linux Technology Center
Linux Toolchain Development

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


Re: libfreevec benchmarks

2008-08-22 Thread Ryan S. Arnold
On Thu, 2008-08-21 at 19:09 +0300, Konstantinos Margaritis wrote:
> Benh suggested that I made this more known, and in particular to this list, 
> so 
> I send this mail in hope that some people might be interested. In particular, 
> I ran the following benchmarks against libfreevec/glibc:
> 
> http://www.freevec.org/content/libfreevec_104_benchmarks_updated

Nice results.

> libfreevec has reached a very stable point, where me and a couple of others 
> (the OpenSuse PowerPC port developer being one) have been using it for weeks 
> (personally I've been using it for months), using the LD_PRELOAD mechanism 
> (as 
> explained here: 
> http://www.freevec.org/content/howto_using_libfreevec_using_ld_preload).
> The OpenSuse guys even consider using it by default on the ppc port even, but 
> that's not final of course.
> 
> glibc integration _might_ happen if glibc developers change their attitude 
> (my 
> mails have been mostly ignored).

Konstantinos,

Do you have FSF (Free Software Foundation) copyright assignment yet?

How've you implemented the optimizations?

Vector insns are allowed in the PowerPC code in GLIBC if guarded by
PPC_FEATURE_HAS_ALTIVEC (look at setjmp/_longjmp).

The use of unguarded vector code is allowed in --with-cpu powerpc-cpu
override directories for cpus that support altivec/VMX.

Optimizations for individual architectures should follow the powerpc-cpu
precedent for providing these routines, e.g.

sysdeps/powerpc/powerpc32/power6/memcpy.S
sysdeps/powerpc/powerpc64/power6/memcpy.S

I believe that optimizations for the G5 processor would go into the
existing 970 directories:

sysdeps/powerpc/powerpc32/970
sysdeps/powerpc/powerpc64/970

Today, if glibc is configure with --with-cpu=970 it will actually
default to the power optimizations for the string routines, as indicated
by the sysdeps/powerpc/powerpc[32|64]/970/Implies files.  It'd be worth
verifying that your baseline glibc runs are against existing optimized
versions of glibc.  If they're not then this is a fault of the distro
you're testing on.

I'm not aware of the status of some of the embedded PowerPC processors
with-regard to powerpc-cpu optimizations.

Our research found that for some tasks on some PowerPC processors the
expense of reserving the floating point pipeline for vector operations
exceeds the benefit of using vector insns for the task.

In these cases we tend to optimize based on pipeline characteristics
rather than using the vector facility.

Generally our optimizations tend to favor data an average of 12 bytes
with 1000 byte max.  We also favor aligned data and use the existing
implementation as a model as a baseline for where we try to keep
unaligned data performance from dropping below.

> Last, I've also been working on a libm rewrite, though this will take some 
> time still. I've reimplemented most math functions at the algorithm level, 
> eg. 
> so far, most functions achieve 50%-200% speed increase at full IEEE754 
> accuracy (mathematically proven, soon to be published online) without using 
> Altivec yet, just by choosing a different approximation method (Taylor 
> approximation is pretty dumb if you ask me anyway).

This research would be a good candidate for selectively replacing some
of the existing libm functionality.  Do these results hold for all
permutations of long double support?  Do they hold for x86/x86_64 as
well as PowerPC?  I would suggest against a massive patch to libc-alpha
and would instead recommend selective, individual replacement of
fundamental routines to start with accompanied by exhaustive profile
data.  You have to show that you're dedicated to maintenance of these
routines and you can't overwhelm the reviewers with massive patches.

Any submission to GLIBC is going to require that you and your code
follow the GLIBC process or it'll probably be ignored.  You can engage
me directly via CC and I can help you understand how to integrate the
code but I can't give you a free pass or do the work for you.

The new libc-help mailing list was also created as a place for people to
learn the process and get the patches in a state where they're ready to
be submitted to libc-alpha.

Regards,
Ryan S. Arnold
IBM Linux Technology Center
Linux Toolchain Development

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


Re: [PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Scott Wood
On Fri, Aug 22, 2008 at 12:26:01PM +0100, Martyn Welch wrote:
> > > drop device_type.
> > > 
> > 
> > Ah - _all_ device_type!
> > 
> 
> Um, not all - just the ones where the name of the block matches the
> device type(?)

All except "cpu" and "memory".

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


Re: [PATCH] POWERPC: Change total_memory to phys_addr_t

2008-08-22 Thread Becky Bruce
It turns out that the commit message was out of date, and the patch  
itself was correct.  I have resubmitted with a different title/log, so  
this patch can be ignored.


Cheers,
B

On Aug 22, 2008, at 10:26 AM, Becky Bruce wrote:

Gah, I just noticed that part of this patch is missing - I will  
resubmit as soon as I figure out what the heck happened.


-Becky


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


[PATCH] POWERPC: Change mem.c to support large physical addresses on 32-bit

2008-08-22 Thread Becky Bruce
Use phys_addr_t for sizes and addresses where appropriate.

Signed-off-by: Becky Bruce <[EMAIL PROTECTED]>
---
 arch/powerpc/mm/mem.c |   19 ++-
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 1c93c25..89dc32b 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -75,14 +75,14 @@ static inline pte_t *virt_to_kpte(unsigned long vaddr)
 
 int page_is_ram(unsigned long pfn)
 {
-   unsigned long paddr = (pfn << PAGE_SHIFT);
+   phys_addr_t paddr = ((phys_addr_t)pfn << PAGE_SHIFT);
 
 #ifndef CONFIG_PPC64   /* XXX for now */
return paddr < __pa(high_memory);
 #else
int i;
for (i=0; i < lmb.memory.cnt; i++) {
-   unsigned long base;
+   phys_addr_t base;
 
base = lmb.memory.region[i].base;
 
@@ -195,7 +195,8 @@ EXPORT_SYMBOL_GPL(walk_memory_resource);
 void __init do_init_bootmem(void)
 {
unsigned long i;
-   unsigned long start, bootmap_pages;
+   phys_addr_t start;
+   unsigned long bootmap_pages;
unsigned long total_pages;
int boot_mapsize;
 
@@ -234,8 +235,8 @@ void __init do_init_bootmem(void)
 
/* reserve the sections we're already using */
for (i = 0; i < lmb.reserved.cnt; i++) {
-   unsigned long addr = lmb.reserved.region[i].base +
-lmb_size_bytes(&lmb.reserved, i) - 1;
+   phys_addr_t addr = lmb.reserved.region[i].base +
+   lmb_size_bytes(&lmb.reserved, i) - 1;
if (addr < lowmem_end_addr)
reserve_bootmem(lmb.reserved.region[i].base,
lmb_size_bytes(&lmb.reserved, i),
@@ -290,7 +291,7 @@ static int __init mark_nonram_nosave(void)
  */
 void __init paging_init(void)
 {
-   unsigned long total_ram = lmb_phys_mem_size();
+   phys_addr_t total_ram = lmb_phys_mem_size();
phys_addr_t top_of_ram = lmb_end_of_DRAM();
unsigned long max_zone_pfns[MAX_NR_ZONES];
 
@@ -310,10 +311,10 @@ void __init paging_init(void)
kmap_prot = PAGE_KERNEL;
 #endif /* CONFIG_HIGHMEM */
 
-   printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n",
-  (unsigned long long)top_of_ram, total_ram);
+   printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%llx\n",
+  (unsigned long long)top_of_ram, (unsigned long long)total_ram);
printk(KERN_DEBUG "Memory hole size: %ldMB\n",
-  (long int)((top_of_ram - total_ram) >> 20));
+  (unsigned long)((top_of_ram - total_ram) >> 20));
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
 #ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT;
-- 
1.5.5.1

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


Re: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread Grant Likely
On Thu, Aug 21, 2008 at 8:39 PM, Jon Smirl <[EMAIL PROTECTED]> wrote:
> On 8/21/08, Grant Likely <[EMAIL PROTECTED]> wrote:
>> It was over a year ago when support for i2c devices in the device tree
>>  was merged.
>
> I see, the old support needed the drivers to be built-in. The newer
> code dynamically loads the correct i2c driver and set its parameters.
>
> Did the old code use anything besides compatible? It would have been
> using the older i2c system that probed for the address.

I think you're confusing binding with implementation.  The binding is
the layout of data in the device tree.  The implementation uses that
data.  Your right that the current implementation is new, but it
replaces older implementation that uses the same binding.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Scott Wood
On Fri, Aug 22, 2008 at 06:46:20AM -0400, Martyn Welch wrote:
> + enet0: [EMAIL PROTECTED] {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + device_type = "network";
> + model = "eTSEC";
> + compatible = "gianfar";
> + reg = <0x00024000 0x1000>;
> + mac-address = [ 00 00 00 00 00 00 ]; // set by u-boot

local-mac-address

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


Re: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread Josh Boyer
On Fri, Aug 22, 2008 at 09:00:09AM -0700, Yoder Stuart wrote:
>There are a few bindings specified in the ePAPR, based on the old
>Open Firmware working group stuff:
>   -cpu
>   -interrupt controllers
>   -PCI
>   -network devices
>   -DCR devices

Er, I don't think that one is based on the old workgroup.  DCR is only
applicable to PowerPC 4xx devices, and those have never had open firmware.

>The best way to publish bindings will be on the web.  I've been
>looking into getting power.org to host a wiki-based site
>that could be used as a repository for bindings.  We could have
>both an area for general bindings and company specific ones.
>I've made some progress here and actually have a sandbox wiki
>that I'm playing with.

That sounds good, but I have one suggestion.  Use the wiki for
submission and discussion of new binding proposals, but once they
are agreed upon put them in a static webpage somewhere until they
are incorporated into the next ePAPR revision.  Wikis are awesome
for changing stuff, but you don't want people to go back and change
a binding that has already been approved (for whatever definition
of approved we come up with.)

Also, you might want to have some kind of Licensing or copyright
assignment for all wiki contributions.  Talk to your legal team or
the power.org legal team about that if you haven't already.

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


RE: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread Yoder Stuart
 

> -Original Message-
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] 
> On Behalf Of Mitch Bradley
> Sent: Friday, August 22, 2008 12:19 AM
> To: David Miller
> Cc: linuxppc-dev@ozlabs.org; [EMAIL PROTECTED]; 
> [EMAIL PROTECTED]; Wood Scott
> Subject: Re: [PATCH 0/3]: Sparc OF I2C support.
> 
> 
> 
> David Miller wrote:
> > From: "Grant Likely" <[EMAIL PROTECTED]>
> > Date: Thu, 21 Aug 2008 22:34:31 -0600
> >
> >   
> >> On Thu, Aug 21, 2008 at 10:30 PM, Grant Likely
> >> <[EMAIL PROTECTED]> wrote:
> >> 
> >>> On Thu, Aug 21, 2008 at 10:29 PM, Mitch Bradley 
> <[EMAIL PROTECTED]> wrote:
> >>>   
>  Hi, I wrote most of 1275.
> 
>  Mitch Bradley  ([EMAIL PROTECTED])
>  
> >>> Hi Mitch,
> >>>
> >>> What is your suggestion.  Where should we be discussing new device
> >>> tree bindings?  Whether it be real Open Firmware, or 
> flattened device
> >>> tree, or something in between
> >>>   
> >> ...and along those lines: is there a place for documenting new
> >> bindings?  Lacking anything better, those of us in 
> PowerPC-Linux-land
> >> have been adding documentation to 
> Documentation/powerpc/dts-bindings/*
> >> in the Linux kernel tree.
> >> 
> >
> > In a discussion I am having with Greg Onufer, David K. and Tayfun
> > at Sun, Greg said the some of the newer binding documents are
> > being published on the opensolaris site, and he is trying to
> > get some of the older cases (like this I2C one) published there
> > too.
> >
> >   
> 
> This collection of mailing lists is as good a place as any to discuss 
> new bindings.  I don't know how many Sun people are on the 
> lists, but we 
> might be able to persuade various Sun people to lurk on one 
> or more of 
> them;  I lurk on devicetree-discuss.
> 
> The opensolaris site seems as good as anywhere for publishing the 
> bindings, especially if they can pull over the old ones from e.g. 
> playground.sun.com .
> 
> Another possible site might be openbios.org .

I agree that the linuxppc-dev and devicetree-discuss mailing
lists are probably the best place to discuss bindings.  (I'm
not aware of other good options).

Once there is consensus as to what a binding should be, and publishing
is needed-- for general, common bindings some single place is needed.
Something that is ideally authoritative, with a committed organization
behind it.  One suggestion would be the power.org and follow on
versions of the ePAPR.  ePAPR 1.0 is out now and currently is a base
document-- defines the flat device tree concept, and basically extracts
the relevant parts of 1275 for how this is used in the embedded space.

There are a few bindings specified in the ePAPR, based on the old
Open Firmware working group stuff:
   -cpu
   -interrupt controllers
   -PCI
   -network devices
   -DCR devices
   -serial devices

ePAPR doc is at:
http://www.power.org/resources/downloads/

It's obvious that more bindings are needed, and the expecation from
those who worked on the ePAPR (most or all of which are on this
mailing list) was that as bindings are codified they could be
added to the ePAPR.

The best way to publish bindings will be on the web.  I've been
looking into getting power.org to host a wiki-based site
that could be used as a repository for bindings.  We could have
both an area for general bindings and company specific ones.
I've made some progress here and actually have a sandbox wiki
that I'm playing with.

Stuart Yoder
Freescale

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


Re: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread Scott Wood
On Thu, Aug 21, 2008 at 10:39:40PM -0400, Jon Smirl wrote:
> I see, the old support needed the drivers to be built-in. The newer
> code dynamically loads the correct i2c driver and set its parameters.
> 
> Did the old code use anything besides compatible?

Yes.

> It would have been using the older i2c system that probed for the
> address.

No, it wouldn't have.  It used glue code to generate i2c_board_info
structs.

> >  See commit id d13ae8620dfdedfa7e9ab6d1eec294adc0516065.

As shown in the above commit id. :-)

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


Re: [PATCH 4/4] kvmppc: convert wrteei to wrtee as kvm guest optimization

2008-08-22 Thread Scott Wood
On Fri, Aug 22, 2008 at 09:56:16AM -0400, Jimi Xenidis wrote:
> Sorry, I have not really been following this, I assume you are  
> replacing SPR accesses with load/stores that do not trap.
> I believe thats fine for reading any SPR, but not true for modifying  
> some SPRs, particularly MSR.
> IMHO you must trap on any instruction that modifies the MSR.
> So you should prolly not rewrite mtmsr or wrtee* but let them trap.

You only need to trap when changing MSR[EE] if there's a pending
interrupt.  The hypervisor can change the mapping of the shared page when
it is unable to deliver an interrupt due to the virtual EE value being
zero.

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


Re: [PATCH] POWERPC: Change total_memory to phys_addr_t

2008-08-22 Thread Becky Bruce
Gah, I just noticed that part of this patch is missing - I will  
resubmit as soon as I figure out what the heck happened.


-Becky

On Aug 21, 2008, at 3:10 PM, Becky Bruce wrote:


Also change consumers of various lmb funcs/arrays that are now
phys_addr_t to also be phys_addr_t.

Signed-off-by: Becky Bruce <[EMAIL PROTECTED]>
---
arch/powerpc/mm/mem.c |   19 ++-
1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 1c93c25..89dc32b 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -75,14 +75,14 @@ static inline pte_t *virt_to_kpte(unsigned long  
vaddr)


int page_is_ram(unsigned long pfn)
{
-   unsigned long paddr = (pfn << PAGE_SHIFT);
+   phys_addr_t paddr = ((phys_addr_t)pfn << PAGE_SHIFT);

#ifndef CONFIG_PPC64/* XXX for now */
return paddr < __pa(high_memory);
#else
int i;
for (i=0; i < lmb.memory.cnt; i++) {
-   unsigned long base;
+   phys_addr_t base;

base = lmb.memory.region[i].base;

@@ -195,7 +195,8 @@ EXPORT_SYMBOL_GPL(walk_memory_resource);
void __init do_init_bootmem(void)
{
unsigned long i;
-   unsigned long start, bootmap_pages;
+   phys_addr_t start;
+   unsigned long bootmap_pages;
unsigned long total_pages;
int boot_mapsize;

@@ -234,8 +235,8 @@ void __init do_init_bootmem(void)

/* reserve the sections we're already using */
for (i = 0; i < lmb.reserved.cnt; i++) {
-   unsigned long addr = lmb.reserved.region[i].base +
-lmb_size_bytes(&lmb.reserved, i) - 1;
+   phys_addr_t addr = lmb.reserved.region[i].base +
+   lmb_size_bytes(&lmb.reserved, i) - 1;
if (addr < lowmem_end_addr)
reserve_bootmem(lmb.reserved.region[i].base,
lmb_size_bytes(&lmb.reserved, i),
@@ -290,7 +291,7 @@ static int __init mark_nonram_nosave(void)
 */
void __init paging_init(void)
{
-   unsigned long total_ram = lmb_phys_mem_size();
+   phys_addr_t total_ram = lmb_phys_mem_size();
phys_addr_t top_of_ram = lmb_end_of_DRAM();
unsigned long max_zone_pfns[MAX_NR_ZONES];

@@ -310,10 +311,10 @@ void __init paging_init(void)
kmap_prot = PAGE_KERNEL;
#endif /* CONFIG_HIGHMEM */

-   printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n",
-  (unsigned long long)top_of_ram, total_ram);
+   printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%llx\n",
+	   (unsigned long long)top_of_ram, (unsigned long  
long)total_ram);

printk(KERN_DEBUG "Memory hole size: %ldMB\n",
-  (long int)((top_of_ram - total_ram) >> 20));
+  (unsigned long)((top_of_ram - total_ram) >> 20));
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT;
--
1.5.5.1


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


Re: [PATCH 2/4] kvmppc: add hypercall infrastructure - guest part

2008-08-22 Thread Hollis Blanchard
On Friday 22 August 2008 05:38:54 Kumar Gala wrote:
> 
> On Aug 19, 2008, at 5:36 AM, [EMAIL PROTECTED] wrote:
> 
> > From: Christian Ehrhardt <[EMAIL PROTECTED]>
> >
> > This adds the guest portion of the hypercall infrastructure,  
> > basically an
> > illegal instruction with a defined layout.
> > See http://kvm.qumranet.com/kvmwiki/PowerPC_Hypercall_ABI for more  
> > detail
> > on the hypercall ABI for powerpc.
> >
> > Signed-off-by: Christian Ehrhardt <[EMAIL PROTECTED]>
> > ---
> >
> > [diffstat]
> > kvm_para.h |   33 +
> > 1 file changed, 33 insertions(+)
> >
> > [diff]
> 
> Can we make this more generic (naming) and location.  I believe there  
> is some interesting in using the same ABI on the Freescale HV so it  
> seems like have the wrappers be a bit more generic saves us.

Agreed. Maybe something like epapr_hcalls.h .

-- 
Hollis Blanchard
IBM Linux Technology Center
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH 4/4] kvmppc: convert wrteei to wrtee as kvm guest optimization

2008-08-22 Thread Jimi Xenidis


On Aug 22, 2008, at 4:17 AM, Kumar Gala wrote:



On Aug 22, 2008, at 3:08 AM, Christian Ehrhardt wrote:


Scott Wood wrote:

On Thu, Aug 21, 2008 at 09:21:39AM -0500, Kumar Gala wrote:

Where is the other discussion?  I'd like to understand what's  
going on  here.. (especially since I added the wrtee[i] changes  
to kernel way  back when).




Presumably, they want to be able to replace wrtee with a store to a
hypervisor/guest shared memory area, and there's no store-immediate
instruction.

-Scott


Exactly Scott

And for your question Kumar, in the last submission I was asked to  
split host and guest patches.
So the host discussion lives on [EMAIL PROTECTED] as I  
mentioned (maybe a bit too hidden)

in the [0/4] mail of this series.


Maybe I'm missing something but it seems like just changing the code  
to wrtee isn't the best way to ensure you have enough space to put  
the set of instructions you guys want.




Sorry, I have not really been following this, I assume you are  
replacing SPR accesses with load/stores that do not trap.
I believe thats fine for reading any SPR, but not true for modifying  
some SPRs, particularly MSR.

IMHO you must trap on any instruction that modifies the MSR.
So you should prolly not rewrite mtmsr or wrtee* but let them trap.

BTW: actually moving problem SPRs (like MSRs) to a read only page  
makes decoding far more efficient, but it does burn another TLB entry.


-JX



- k
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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


Re: [PATCH] add a simple 405EP based board

2008-08-22 Thread Arnd Bergmann
On Thursday 21 August 2008, Josh Boyer wrote:
> I can understand why, as they are really two different platforms.  So
> logically it makes sense to have them separate.

Ok, fair enough.

Arnd <><
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
On Fri, 22 Aug 2008 12:11:52 +0100
Martyn Welch <[EMAIL PROTECTED]> wrote:

> On Fri, 22 Aug 2008 05:56:53 -0500
> Kumar Gala <[EMAIL PROTECTED]> wrote:
> 
> > >
> > > + PowerPC,[EMAIL PROTECTED] {
> > > + device_type = "cpu";
> > > + reg = <0x>;
> > > + d-cache-line-size = <32>;   // 32 bytes
> > > + i-cache-line-size = <32>;   // 32 bytes
> > > + d-cache-size = <32768>; // L1, 32K
> > > + i-cache-size = <32768>; // L1, 32K
> > > + timebase-frequency = <0>;   // From uboot
> > > + bus-frequency = <0>;// From uboot
> > > + clock-frequency = <0>;  // From uboot
> > > + l2cr = <0x8000>;// Enable L2
> > 
> > do you expect the 'l2cr' prop to do anything?  Not sure if this is  
> > something apple invented or you did?
> > 
> 
> TBH, it was in the dts file that I based this on - I thought it was in the 
> others as well - my mistake, I shall remove it.
> 
> > 
> > >
> > > + i2c1: [EMAIL PROTECTED] {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > + device_type = "i2c";
> > 
> > drop device_type.
> > 
> 
> Ah - _all_ device_type!
> 

Um, not all - just the ones where the name of the block matches the device 
type(?)

Martyn

-- 
Martyn Welch MEng MPhil MIET (Principal Software Engineer)   T:+44(0)1327322748
GE Fanuc Intelligent Platforms Ltd,|Registered in England and Wales
Tove Valley Business Park, Towcester,  |(3828642) at 100 Barbirolli Square,
Northants, NN12 6PF, UK T:+44(0)1327359444 |Manchester,M2 3AB  VAT:GB 729849476

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


Re: [PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
On Fri, 22 Aug 2008 05:56:53 -0500
Kumar Gala <[EMAIL PROTECTED]> wrote:

> >
> > +   PowerPC,[EMAIL PROTECTED] {
> > +   device_type = "cpu";
> > +   reg = <0x>;
> > +   d-cache-line-size = <32>;   // 32 bytes
> > +   i-cache-line-size = <32>;   // 32 bytes
> > +   d-cache-size = <32768>; // L1, 32K
> > +   i-cache-size = <32768>; // L1, 32K
> > +   timebase-frequency = <0>;   // From uboot
> > +   bus-frequency = <0>;// From uboot
> > +   clock-frequency = <0>;  // From uboot
> > +   l2cr = <0x8000>;// Enable L2
> 
> do you expect the 'l2cr' prop to do anything?  Not sure if this is  
> something apple invented or you did?
> 

TBH, it was in the dts file that I based this on - I thought it was in the 
others as well - my mistake, I shall remove it.

> 
> >
> > +   i2c1: [EMAIL PROTECTED] {
> > +   #address-cells = <1>;
> > +   #size-cells = <0>;
> > +   device_type = "i2c";
> 
> drop device_type.
> 

Ah - _all_ device_type!



> >
> > +   };
> > +   };
> > +
> > +   enet0: [EMAIL PROTECTED] {
> > +   #address-cells = <1>;
> > +   #size-cells = <0>;
> 
> there is no need for #add/size cells here.
> 

Will remove.

> >
> > +   device_type = "network";
> > +   model = "eTSEC";
> > +   compatible = "gianfar";
> > +   reg = <0x00024000 0x1000>;
> > +   mac-address = [ 00 00 00 00 00 00 ]; // set by u-boot
> > +   interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
> > +   interrupt-parent = <&mpic>;
> > +   phy-handle = <&phy0>;
> > +   phy-connection-type = "gmii";
> > +   };
> > +
> > +   enet1: [EMAIL PROTECTED] {
> > +   #address-cells = <1>;
> > +   #size-cells = <0>;
> 
> there is no need for #add/size cells here.
> 

ditto.

> >
> > +   device_type = "network";
> > +   model = "eTSEC";
> > +   compatible = "gianfar";
> > +   reg = <0x00026000 0x1000>;
> > +   mac-address = [ 00 00 00 00 00 00 ]; // set by u-boot
> > +   interrupts = <0x1f 0x2 0x20 0x2 0x21 0x2>;
> > +   interrupt-parent = <&mpic>;
> > +   phy-handle = <&phy2>;
> > +   phy-connection-type = "gmii";
> > +   };
> > +
> 
> You may want to add in msi interrupts for PCIe support (see  
> mpc8572ds.dtb)
> 

Interrupts are routed on this board - just via a custom interrupt controller.

I have a patch to add this, but I was getting the basics right first...

> > +
> > +   mpic: [EMAIL PROTECTED] {
> > +   clock-frequency = <0>;
> > +   interrupt-controller;
> > +   #address-cells = <0>;
> > +   #interrupt-cells = <2>;
> > +   reg = <0x0004 0x0004>;
> > +   compatible = "chrp,open-pic";
> > +   device_type = "open-pic";
> > +   };
> > +
> > +   [EMAIL PROTECTED] {
> > +   compatible = "fsl,mpc8641-guts";
> > +   reg = <0x000e 0x1000>;
> > +   fsl,has-rstcr;
> > +   };
> > +   };
> > +
> > +   pci0: [EMAIL PROTECTED] {
> > +   compatible = "fsl,mpc8641-pcie";
> > +   device_type = "pci";
> > +   #interrupt-cells = <1>;
> > +   #size-cells = <2>;
> > +   #address-cells = <3>;
> > +   reg = <0xfef08000 0x1000>;
> > +   bus-range = <0x0 0xff>;
> > +   ranges = <0x0200 0x0 0x8000 0x8000 0x0 0x4000
> > + 0x0100 0x0 0x 0xfe00 0x0 0x0040>;
> > +   clock-frequency = <>;
> > +   interrupt-parent = <&mpic>;
> > +   interrupts = <0x18 0x2>;
> > +   interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
> > +   interrupt-map = <
> > +   0x 0x0 0x0 0x1 &mpic 0x0 0x1
> > +   0x 0x0 0x0 0x2 &mpic 0x1 0x1
> > +   0x 0x0 0x0 0x3 &mpic 0x2 0x1
> > +   0x 0x0 0x0 0x4 &mpic 0x3 0x1
> > +   >;
> > +
> > +   [EMAIL PROTECTED] {
> > +   reg = <0 0 0 0 0>;
> > +   #size-cells = <2>;
> > +   #address-cells = <3>;
> > +   device_type = "pci";
> > +   ranges = <0x0200 0x0 0x8000
> > + 0x0200 0x0 0x8000
> > + 0x0 0x4000
> > +
> > + 0x0100 0x0 0x

Re: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread David Miller
From: Josh Boyer <[EMAIL PROTECTED]>
Date: Fri, 22 Aug 2008 06:50:48 -0400

> On Thu, 21 Aug 2008 20:53:05 -0700 (PDT)
> David Miller <[EMAIL PROTECTED]> wrote:
> 
> > From: Josh Boyer <[EMAIL PROTECTED]>
> > Date: Thu, 21 Aug 2008 21:15:37 -0400
> > 
> > > Huge?  I'd say mistake, but not necessarily huge.  I mean nobody other
> > > than you (at least in the context of this conversation) had access to
> > > the IEEE1275 proposed binding so it wasn't like there was tons to go on.
> > 
> > I guess all the PowerMAC G5 systems out there and their device trees
> > were locked up in a highly secure vault somewhere :-)
> 
> Apple has done silly things in their device trees before.  I wouldn't
> hold them up as an excellent example.

Sure, I agree, and Sun has too.

But it's always a good idea to go look thoroughly at what existing
systems are doing before pulling the switch and inventing one's own
OF binding from scratch.

Right?

> I have no idea who to contact.

Simply ask :-)

I listen on here too and if I had seen such a query I would have
tossed some feelers around tothe people I know.  I know various OF
ninjas at Sun :)

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


[PATCH v2 2/2] powerpc: Default configuration for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
Support for the SBC610 VPX Single Board Computer from GE Fanuc (PowerPC
MPC8641D).

This is the default config file for GE Fanuc's SBC610, a 6U single board
computer, based on Freescale's MPC8641D.

Signed-off-by: Martyn Welch <[EMAIL PROTECTED]>
---

 arch/powerpc/configs/gef_sbc610_defconfig | 1654 +
 1 files changed, 1654 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/configs/gef_sbc610_defconfig 
b/arch/powerpc/configs/gef_sbc610_defconfig
new file mode 100644
index 000..f589489
--- /dev/null
+++ b/arch/powerpc/configs/gef_sbc610_defconfig
@@ -0,0 +1,1654 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.26-rc5
+# Wed Jun 11 12:06:53 2008
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+CONFIG_6xx=y
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+CONFIG_PPC_FPU=y
+CONFIG_ALTIVEC=y
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_32=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
+CONFIG_PPC32=y
+CONFIG_WORD_SIZE=32
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+CONFIG_IRQ_PER_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_LOCKBREAK=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_OF=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_GENERIC_TBSYNC=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFAULT_UIMAGE=y
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_RELAY=y
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_DMA_ATTRS is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_CLASSIC_RCU=y
+
+#
+# Platform support
+#
+# CONFIG_PPC_MULTIPLATFORM is not set
+# CONFIG_PPC_82xx is not set
+# CONFIG_PPC_83xx is not set
+CONFIG_PPC_86xx=y
+# CONFIG_PPC_MPC512x is not set
+# CONFIG_PPC_MPC5121 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_MPC8641_HPCN is not set
+# CONFIG_SBC8641D is not set
+# CONFIG_MPC8610_HPCD is not set
+CONFIG_GEF_SBC610=y
+CONFIG_MPC8641=y
+# CONFIG_IPIC is not set
+CONFIG_MPIC=y
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_P

Re: [PATCH v2 2/2] powerpc: Default configuration for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
On Fri, 22 Aug 2008 05:57:51 -0500
Kumar Gala <[EMAIL PROTECTED]> wrote:

> 
> On Aug 22, 2008, at 5:46 AM, Martyn Welch wrote:
> 
> > Support for the SBC610 VPX Single Board Computer from GE Fanuc  
> > (PowerPC
> > MPC8641D).
> >
> > This is the default config file for GE Fanuc's SBC610, a 6U single  
> > board
> > computer, based on Freescale's MPC8641D.
> >
> > Signed-off-by: Martyn Welch <[EMAIL PROTECTED]>
> > ---
> >
> > arch/powerpc/configs/gef_sbc610_defconfig | 1654  
> > +
> > 1 files changed, 1654 insertions(+), 0 deletions(-)
> 
> Do you mind putting this under configs/86xx/gef_sbc610_defconfig (I  
> know it 86xx/ doesn't exist but we are getting enough boards there to  
> make it useful).
> 

Will do.

> - k


-- 
Martyn Welch MEng MPhil MIET (Principal Software Engineer)   T:+44(0)1327322748
GE Fanuc Intelligent Platforms Ltd,|Registered in England and Wales
Tove Valley Business Park, Towcester,  |(3828642) at 100 Barbirolli Square,
Northants, NN12 6PF, UK T:+44(0)1327359444 |Manchester,M2 3AB  VAT:GB 729849476

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


Re: [PATCH v2 2/2] powerpc: Default configuration for GE Fanuc SBC610

2008-08-22 Thread Kumar Gala


On Aug 22, 2008, at 5:46 AM, Martyn Welch wrote:

Support for the SBC610 VPX Single Board Computer from GE Fanuc  
(PowerPC

MPC8641D).

This is the default config file for GE Fanuc's SBC610, a 6U single  
board

computer, based on Freescale's MPC8641D.

Signed-off-by: Martyn Welch <[EMAIL PROTECTED]>
---

arch/powerpc/configs/gef_sbc610_defconfig | 1654  
+

1 files changed, 1654 insertions(+), 0 deletions(-)


Do you mind putting this under configs/86xx/gef_sbc610_defconfig (I  
know it 86xx/ doesn't exist but we are getting enough boards there to  
make it useful).


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


Re: [PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Kumar Gala


+   PowerPC,[EMAIL PROTECTED] {
+   device_type = "cpu";
+   reg = <0x>;
+   d-cache-line-size = <32>; // 32 bytes
+   i-cache-line-size = <32>; // 32 bytes
+   d-cache-size = <32768>;   // L1, 32K
+   i-cache-size = <32768>;   // L1, 32K
+   timebase-frequency = <0>; // From uboot
+   bus-frequency = <0>;  // From uboot
+   clock-frequency = <0>;// From uboot
+   l2cr = <0x8000>;  // Enable L2


do you expect the 'l2cr' prop to do anything?  Not sure if this is  
something apple invented or you did?





+   i2c1: [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <0>;
+   device_type = "i2c";


drop device_type.



+   compatible = "fsl-i2c";
+   reg = <0x3000 0x0100>;
+   interrupts = <0x2b 0x2>;
+   interrupt-parent = <&mpic>;
+   dfsrr;
+
+   [EMAIL PROTECTED] {
+   compatible = "dallas,ds1682";
+   reg = <0x006b>;
+   };
+   };
+
+   i2c2: [EMAIL PROTECTED] {


I recommend having #addr/#size cells here.



+   device_type = "i2c";


ditto


+   compatible = "fsl-i2c";
+   reg = <0x3100 0x0100>;
+   interrupts = <0x2b 0x2>;
+   interrupt-parent = <&mpic>;
+   dfsrr;
+   };
+



+   [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <0>;
+   device_type = "mdio";


drop device_type, (see a theme here ;)



+   compatible = "fsl,gianfar-mdio";
+   reg = <0x00024520 0x0020>;
+
+   phy0: [EMAIL PROTECTED] {
+   interrupt-parent = <&mpic>;
+   interrupts = <0x0 0x1>;
+   reg = <0x0001>;
+   device_type = "ethernet-phy";


drop device_type.



+   };
+   phy2: [EMAIL PROTECTED] {
+   interrupt-parent = <&mpic>;
+   interrupts = <0x0 0x1>;
+   reg = <0x0003>;
+   device_type = "ethernet-phy";


ditto



+   };
+   };
+
+   enet0: [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <0>;


there is no need for #add/size cells here.



+   device_type = "network";
+   model = "eTSEC";
+   compatible = "gianfar";
+   reg = <0x00024000 0x1000>;
+   mac-address = [ 00 00 00 00 00 00 ]; // set by u-boot
+   interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
+   interrupt-parent = <&mpic>;
+   phy-handle = <&phy0>;
+   phy-connection-type = "gmii";
+   };
+
+   enet1: [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <0>;


there is no need for #add/size cells here.



+   device_type = "network";
+   model = "eTSEC";
+   compatible = "gianfar";
+   reg = <0x00026000 0x1000>;
+   mac-address = [ 00 00 00 00 00 00 ]; // set by u-boot
+   interrupts = <0x1f 0x2 0x20 0x2 0x21 0x2>;
+   interrupt-parent = <&mpic>;
+   phy-handle = <&phy2>;
+   phy-connection-type = "gmii";
+   };
+


You may want to add in msi interrupts for PCIe support (see  
mpc8572ds.dtb)



+
+   mpic: [EMAIL PROTECTED] {
+   clock-frequency = <0>;
+   interrupt-controller;
+   #address-cells = <0>;
+   #interrupt-cells = <2>;
+   reg = <0x0004 0x0004>;
+   compatible = "chrp,open-pic";
+   device_type = "open-pic";
+   };
+
+   [EMAIL PROTECTED] {
+   compatible = "fsl,mpc8641-guts";
+   reg = <0x000e 0x1000>;
+   fsl,has-rstcr;
+   };
+   };
+
+   pci0: [EMAIL PROTECTED] {
+   compatible = "fsl,mpc8

Re: [PATCH 0/3]: Sparc OF I2C support.

2008-08-22 Thread Josh Boyer
On Thu, 21 Aug 2008 20:53:05 -0700 (PDT)
David Miller <[EMAIL PROTECTED]> wrote:

> From: Josh Boyer <[EMAIL PROTECTED]>
> Date: Thu, 21 Aug 2008 21:15:37 -0400
> 
> > Huge?  I'd say mistake, but not necessarily huge.  I mean nobody other
> > than you (at least in the context of this conversation) had access to
> > the IEEE1275 proposed binding so it wasn't like there was tons to go on.
> 
> I guess all the PowerMAC G5 systems out there and their device trees
> were locked up in a highly secure vault somewhere :-)

Apple has done silly things in their device trees before.  I wouldn't
hold them up as an excellent example.

> > Have patience with the embedded people that are both new to
> > OpenFirmware and trying to make stuff work at the same time.  I
> > think the devicetree-discuss list will help here as new bindings are
> > proposed.  I hope you're subscribed.
> 
> Why not ask the people who actually work on the standards?  That's who
> I go to when I want to know something about openfirmware issues.

Honestly, I don't know.  And from what I can tell, there _aren't_
people who actively work on the standards anymore.  Mitch is active
elsewhere and could be a great resource but aside from him I have no
idea who to contact.

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


[PATCH v2 1/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
Support for the SBC610 VPX Single Board Computer from GE Fanuc (PowerPC
MPC8641D).

This is the basic board support for GE Fanuc's SBC610, a 6U single board
computer, based on Freescale's MPC8641D.

Signed-off-by: Martyn Welch <[EMAIL PROTECTED]>
---

 arch/powerpc/boot/dts/gef_sbc610.dts |  268 ++
 arch/powerpc/platforms/86xx/Kconfig  |9 +
 arch/powerpc/platforms/86xx/Makefile |1 
 arch/powerpc/platforms/86xx/gef_sbc610.c |  177 
 4 files changed, 454 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/boot/dts/gef_sbc610.dts 
b/arch/powerpc/boot/dts/gef_sbc610.dts
new file mode 100644
index 000..598deda
--- /dev/null
+++ b/arch/powerpc/boot/dts/gef_sbc610.dts
@@ -0,0 +1,268 @@
+/*
+ * GE Fanuc SBC610 Device Tree Source
+ *
+ * Copyright 2008 GE Fanuc Intelligent Platforms Embedded Systems, Inc.
+ *
+ * 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.
+ * 
+ * Based on: SBS CM6 Device Tree Source
+ * Copyright 2007 SBS Technologies GmbH & Co. KG
+ * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source)
+ * Copyright 2006 Freescale Semiconductor Inc.
+ */
+
+/*
+ * Compiled with dtc -I dts -O dtb -o gef_sbc610.dtb gef_sbc610.dts
+ */
+
+/dts-v1/;
+
+/ {
+   model = "GEF_SBC610";
+   compatible = "gef,sbc610";
+   #address-cells = <1>;
+   #size-cells = <1>;
+
+   aliases {
+   ethernet0 = &enet0;
+   ethernet1 = &enet1;
+   serial0 = &serial0;
+   serial1 = &serial1;
+   pci0 = &pci0;
+   };
+
+   cpus {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   PowerPC,[EMAIL PROTECTED] {
+   device_type = "cpu";
+   reg = <0x>;
+   d-cache-line-size = <32>;   // 32 bytes
+   i-cache-line-size = <32>;   // 32 bytes
+   d-cache-size = <32768>; // L1, 32K
+   i-cache-size = <32768>; // L1, 32K
+   timebase-frequency = <0>;   // From uboot
+   bus-frequency = <0>;// From uboot
+   clock-frequency = <0>;  // From uboot
+   l2cr = <0x8000>;// Enable L2
+   };
+   PowerPC,[EMAIL PROTECTED] {
+   device_type = "cpu";
+   reg = <0x0001>;
+   d-cache-line-size = <32>;   // 32 bytes
+   i-cache-line-size = <32>;   // 32 bytes
+   d-cache-size = <32768>; // L1, 32K
+   i-cache-size = <32768>; // L1, 32K
+   timebase-frequency = <0>;   // From uboot
+   bus-frequency = <0>;// From uboot
+   clock-frequency = <0>;  // From uboot
+   l2cr = <0x8000>;// Enable L2
+   };
+   };
+
+   memory {
+   device_type = "memory";
+   reg = <0x 0x4000>;  // set by u-boot
+   };
+
+   [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <1>;
+   #interrupt-cells = <2>;
+   device_type = "soc";
+   ranges = <0x 0xfef0 0x0010>;
+   reg = <0xfef0 0x0010>;  // CCSRBAR 1M
+   bus-frequency = <0>;
+
+   i2c1: [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <0>;
+   device_type = "i2c";
+   compatible = "fsl-i2c";
+   reg = <0x3000 0x0100>;
+   interrupts = <0x2b 0x2>;
+   interrupt-parent = <&mpic>;
+   dfsrr;
+
+   [EMAIL PROTECTED] {
+   compatible = "dallas,ds1682";
+   reg = <0x006b>;
+   };
+   };
+
+   i2c2: [EMAIL PROTECTED] {
+   device_type = "i2c";
+   compatible = "fsl-i2c";
+   reg = <0x3100 0x0100>;
+   interrupts = <0x2b 0x2>;
+   interrupt-parent = <&mpic>;
+   dfsrr;
+   };
+
+   [EMAIL PROTECTED] {
+   #address-cells = <1>;
+   #size-cells = <1>;
+   compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma";
+   reg = <0x21300 0x4>;
+  

[PATCH v2 0/2] powerpc: Board support for GE Fanuc SBC610

2008-08-22 Thread Martyn Welch
The following series implements basic board support for GE Fanuc's SBC610, a 
6U single board computer, based on Freescale's MPC8641D.

This series provides basic functionality:
- The board can boot with a serial console.
- Ethernet works, though the phys are polled.
- The PCI bus is scanned and sata functions.

Signed-off-by: Martyn Welch <[EMAIL PROTECTED]>
---

Kumar, Jon & Scott: Thank you for your comments, I hope this revision resolves
the issues you highlighted.

Martyn

Martyn Welch (2):
  powerpc: Default configuration for GE Fanuc SBC610
  powerpc: Board support for GE Fanuc SBC610


 arch/powerpc/boot/dts/gef_sbc610.dts  |  268 +
 arch/powerpc/configs/gef_sbc610_defconfig | 1654 +
 arch/powerpc/platforms/86xx/Kconfig   |9 
 arch/powerpc/platforms/86xx/Makefile  |1 
 arch/powerpc/platforms/86xx/gef_sbc610.c  |  187 +++
 5 files changed, 2118 insertions(+), 1 deletions(-)
 create mode 100644 arch/powerpc/boot/dts/gef_sbc610.dts
 create mode 100644 arch/powerpc/configs/gef_sbc610_defconfig
 create mode 100644 arch/powerpc/platforms/86xx/gef_sbc610.c

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


Re: [PATCH 2/4] kvmppc: add hypercall infrastructure - guest part

2008-08-22 Thread Kumar Gala


On Aug 19, 2008, at 5:36 AM, [EMAIL PROTECTED] wrote:


From: Christian Ehrhardt <[EMAIL PROTECTED]>

This adds the guest portion of the hypercall infrastructure,  
basically an

illegal instruction with a defined layout.
See http://kvm.qumranet.com/kvmwiki/PowerPC_Hypercall_ABI for more  
detail

on the hypercall ABI for powerpc.

Signed-off-by: Christian Ehrhardt <[EMAIL PROTECTED]>
---

[diffstat]
kvm_para.h |   33 +
1 file changed, 33 insertions(+)

[diff]


Can we make this more generic (naming) and location.  I believe there  
is some interesting in using the same ABI on the Freescale HV so it  
seems like have the wrappers be a bit more generic saves us.


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


Re: [PATCH 1/2][V3] powerpc: add support for dynamic reconfiguration memory in kexec/kdump kernels

2008-08-22 Thread Chandru
Pls let me know the status of this patch. 

Thanks,
Chandru

On Thursday 14 August 2008 15:17:32 Chandru wrote:
> kdump kernel needs to use only those memory regions that it is allowed to use 
> (crashkernel, rtas, tce ..etc ). Each of these regions have their own sizes 
> and are currently added under  'linux,usable-memory' property under each 
> memory@ node of the device tree.  ibm,dynamic-memory property of 
> ibm,dynamic-reconfiguration-memory node now stores in it the representation 
> for most of the logical memory blocks with the size of each memory block 
> being a constant (lmb_size).  If one or more or part of the above mentioned 
> regions lie under one of the lmb from ibm,dynamic-memory property, there is a 
> need to identify those regions within the given lmb. Following patch 
> recognizes a new property 'linux,drconf-usable-memory' property added by 
> kexec-tools. Each entry in this property is of the form 'a counter'  followed 
> by those many (base, size) duple for the above mentioned regions.
> 
> Signed-off-by: Chandru Siddalingappa <[EMAIL PROTECTED]>
> ---
> 
> These patches were sent earlier but these are V3 of the patches. Pls let me 
> know your thoughts. Thanks. 
> 
>  arch/powerpc/kernel/prom.c |   40 +++--
>  arch/powerpc/mm/numa.c |   79 +++
>  2 files changed, 96 insertions(+), 23 deletions(-)
> 
> diff -Naurp powerpc-orig/arch/powerpc/kernel/prom.c 
> powerpc/arch/powerpc/kernel/prom.c
> --- powerpc-orig/arch/powerpc/kernel/prom.c   2008-08-14 08:23:25.0 
> +0530
> +++ powerpc/arch/powerpc/kernel/prom.c2008-08-14 14:35:24.0 
> +0530
> @@ -888,9 +888,10 @@ static u64 __init dt_mem_next_cell(int s
>   */
>  static int __init early_init_dt_scan_drconf_memory(unsigned long node)
>  {
> - cell_t *dm, *ls;
> + cell_t *dm, *ls, *usm;
>   unsigned long l, n, flags;
>   u64 base, size, lmb_size;
> + unsigned int is_kexec_kdump = 0, rngs;
> 
>   ls = (cell_t *)of_get_flat_dt_prop(node, "ibm,lmb-size", &l);
>   if (ls == NULL || l < dt_root_size_cells * sizeof(cell_t))
> @@ -905,6 +906,12 @@ static int __init early_init_dt_scan_drc
>   if (l < (n * (dt_root_addr_cells + 4) + 1) * sizeof(cell_t))
>   return 0;
> 
> + /* check if this is a kexec/kdump kernel. */
> + usm = (cell_t *)of_get_flat_dt_prop(node, "linux,drconf-usable-memory",
> +  &l);
> + if (usm != NULL)
> + is_kexec_kdump = 1;
> +
>   for (; n != 0; --n) {
>   base = dt_mem_next_cell(dt_root_addr_cells, &dm);
>   flags = dm[3];
> @@ -915,13 +922,34 @@ static int __init early_init_dt_scan_drc
>   if ((flags & 0x80) || !(flags & 0x8))
>   continue;
>   size = lmb_size;
> - if (iommu_is_off) {
> - if (base >= 0x8000ul)
> + rngs = 1;
> + if (is_kexec_kdump) {
> + /*
> +  * For each lmb in ibm,dynamic-memory, a corresponding
> +  * entry in linux,drconf-usable-memory property contains
> +  * a counter 'p' followed by 'p' (base, size) duple.
> +  * Now read the counter from
> +  * linux,drconf-usable-memory property
> +  */
> + rngs = dt_mem_next_cell(dt_root_size_cells, &usm);
> + if (!rngs) /* there are no (base, size) duple */
>   continue;
> - if ((base + size) > 0x8000ul)
> - size = 0x8000ul - base;
>   }
> - lmb_add(base, size);
> + do {
> + if (is_kexec_kdump) {
> + base = dt_mem_next_cell(dt_root_addr_cells,
> +  &usm);
> + size = dt_mem_next_cell(dt_root_size_cells,
> +  &usm);
> + }
> + if (iommu_is_off) {
> + if (base >= 0x8000ul)
> + continue;
> + if ((base + size) > 0x8000ul)
> + size = 0x8000ul - base;
> + }
> + lmb_add(base, size);
> + } while (--rngs);
>   }
>   lmb_dump_all();
>   return 0;
> diff -Naurp powerpc-orig/arch/powerpc/mm/numa.c powerpc/arch/powerpc/mm/numa.c
> --- powerpc-orig/arch/powerpc/mm/numa.c   2008-08-14 08:23:25.0 
> +0530
> +++ powerpc/arch/powerpc/mm/numa.c2008-08-14 14:35:42.0 +0530
> @@ -150,6 +150,21 @@ static const int *of_get_associativity(s
>   return of_get_property(dev, "ibm,associativity", NULL);
>  }
> 
> +/*
> + * Returns the proper

Re: [PATCH 3/3]: of_i2c: Add Sparc support.

2008-08-22 Thread David Miller
From: David Miller <[EMAIL PROTECTED]>
Date: Thu, 21 Aug 2008 21:21:45 -0700 (PDT)

> of_i2c: Add Sparc support.
> 
> Signed-off-by: David S. Miller <[EMAIL PROTECTED]>

Of course, after testing, I noticed that I forgot the all
important shifts here. :-)

Here is a fixed patch:

of_i2c: Add Sparc support.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>

diff --git a/arch/sparc/include/asm/of_i2c.h b/arch/sparc/include/asm/of_i2c.h
new file mode 100644
index 000..0fdab1e
--- /dev/null
+++ b/arch/sparc/include/asm/of_i2c.h
@@ -0,0 +1,67 @@
+#ifndef _ASM_SPARC_OF_I2C_H
+#define _ASM_SPARC_OF_I2C_H
+
+/* In my copy of the I2C bindings for IEEE1275 the register value is
+ * encoded as a 2-cell value:
+ *
+ * Bit #3322  1100 
+ *  10987654 32109876 54321098 76543210
+ *
+ * bus:    
+ * address:   0sss sss0
+ *
+ * where:
+ * 8-bit unsigned number representing
+ * the I2C bus address within this I2C bus
+ * controller node
+ * ss  10-bit unsigned number representing the
+ * slave address
+ *
+ * When doing I2C transfers to a device the low bit of the address
+ * indicates whether the transfer is a read or a write, and the upper
+ * bits indicate the device address.
+ *
+ * The Linux I2C layer wants device addresses which elide this
+ * direction bit.  Thus we should shift the OF provided reg property
+ * address down by one bit.
+ */
+static inline int of_i2c_fetch_addr(struct i2c_board_info *bp,
+   struct device_node *client_node,
+   struct device_node *adap_node,
+   int num_addr_cells)
+{
+   const u32 *addr;
+   int len;
+
+   addr = of_get_property(client_node, "reg", &len);
+   if (!addr)
+   goto out_inval;
+
+   if (len < (num_addr_cells * sizeof(int)))
+   goto out_inval;
+
+   if (addr[num_addr_cells - 1] > (1 << 10) - 1)
+   goto out_inval;
+
+   switch (num_addr_cells) {
+   case 1:
+   bp->addr = addr[0] >> 1;
+   break;
+
+   case 2:
+   /* XXX cell 0 contains bus number XXX */
+   bp->addr = addr[1] >> 1;
+   break;
+
+   default:
+   goto out_inval;
+   }
+
+   return 0;
+
+out_inval:
+   printk(KERN_ERR "of-i2c: invalid i2c device entry\n");
+   return -EINVAL;
+}
+
+#endif /* _ASM_SPARC_OF_I2C_H */
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index f821dbc..493c717 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -10,7 +10,7 @@ config OF_GPIO
 
 config OF_I2C
def_tristate I2C
-   depends on PPC_OF && I2C
+   depends on I2C
help
  OpenFirmware I2C accessors
 
-- 
1.5.6.5.GIT

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


Re: [Cbe-oss-dev] New Patchwork beta

2008-08-22 Thread Kumar Gala


On Aug 22, 2008, at 3:55 AM, Jeremy Kerr wrote:


Hi Kumar,

[trimming CC list]


Now that I can log in, can I get "maintainer" privileges (user:
galak)


Yep, you should already have maintainer privs for linuxppc-dev


also is it possible to put the patch controls in a separate frame so
they are always visible (dont have to scoll to the bottom to find
them).


I'm trying to avoid using frames; it makes it hard to link to  
individual

pages, and makes patch updating much more complex.

However, there shouldn't be a need for too much scrolling now - to
prevent patch lists from growing too long, the results are paginated
into groups of 100 patches.

Also, when there are more than about 30 patches on a page, you'll  
get a

small link on the left-hand side to scroll straight to the form area.

Is this OK?


probably, will need to see when we get more patches how this actually  
looks.  I know it was a big annoyance w/v1.


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


Initrd

2008-08-22 Thread Sébastien Chrétien
Hello,

I am using linux 2.6.26 on a powerpc board. I would like to use a initrd. So
I set the initrd option in the kernel. But when I boot Linux, it crashes
before  start_kernel(). And after the configuration of the MMU. The last
words of the prompt are :
Probing machine type ...
  MPC7448 on IAD68 ... match !
id mach(): done
MMU:enter
MMU:hw init
hash:enter
hash:find piece
hash:patch
hash:done
MMU:mapin
MMU:setio
MMU:exi

Can you help me ?
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [machdep_calls] IRQ

2008-08-22 Thread Sébastien Chrétien
Ok thank you, I will begin to implement the irq functions

2008/8/22, Michael Ellerman <[EMAIL PROTECTED]>:
>
> On Thu, 2008-08-21 at 10:23 +0200, Sébastien Chrétien wrote:
> > Exactly, I mean ppc_md.init_IRQ().
>
> > Ok. What have I to setup in this function ? I set the mask and other
> > registers. Is it right ?  How do I chose the mask ?
>
>
> It totally depends on your platform, I really can't tell you. You can
> look at similar platform code if there is some, otherwise the reference
> manual for your hardware or similar should have what you need.
>
>
> > At the end of this funtion, IRQ are disable. Is that right ? So who
> > does enable IRQs ?
>
>
> Yes, irqs get enabled a bit later in start_kernel().
>
>
> cheers
>
> --
> Michael Ellerman
> OzLabs, IBM Australia Development Lab
>
> wwweb: http://michael.ellerman.id.au
> phone: +61 2 6212 1183 (tie line 70 21183)
>
> We do not inherit the earth from our ancestors,
> we borrow it from our children. - S.M.A.R.T Person
>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [Cbe-oss-dev] New Patchwork beta

2008-08-22 Thread Jeremy Kerr
Hi Kumar,

[trimming CC list]

> Now that I can log in, can I get "maintainer" privileges (user:
> galak)

Yep, you should already have maintainer privs for linuxppc-dev

> also is it possible to put the patch controls in a separate frame so
> they are always visible (dont have to scoll to the bottom to find
> them).

I'm trying to avoid using frames; it makes it hard to link to individual 
pages, and makes patch updating much more complex.

However, there shouldn't be a need for too much scrolling now - to 
prevent patch lists from growing too long, the results are paginated 
into groups of 100 patches.

Also, when there are more than about 30 patches on a page, you'll get a 
small link on the left-hand side to scroll straight to the form area.

Is this OK?

Cheers,


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


[PATCH] ppc4xx_pci: necessary fixes for 4GB RAM size

2008-08-22 Thread Ilya Yanok
1. total_memory should be phys_addr_t not unsigned long
2. is_power_of_2() works with u32 so I just inlined (size & (size-1)) != 0
instead.
Also this patch fixes default initialization: res->end should be 0x7fff
not 0x8000.

Signed-off-by: Ilya Yanok <[EMAIL PROTECTED]>
---
 arch/powerpc/sysdev/ppc4xx_pci.c |   11 ++-
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index e1c7df9..645b2c9 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -36,7 +36,7 @@
 static int dma_offset_set;
 
 /* Move that to a useable header */
-extern unsigned long total_memory;
+extern phys_addr_t total_memory;
 
 #define U64_TO_U32_LOW(val)((u32)((val) & 0xULL))
 #define U64_TO_U32_HIGH(val)   ((u32)((val) >> 32))
@@ -105,7 +105,8 @@ static int __init ppc4xx_parse_dma_ranges(struct 
pci_controller *hose,
 
/* Default */
res->start = 0;
-   res->end = size = 0x8000;
+   size = 0x8000;
+   res->end = size - 1;
res->flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
 
/* Get dma-ranges property */
@@ -167,13 +168,13 @@ static int __init ppc4xx_parse_dma_ranges(struct 
pci_controller *hose,
 */
if (size < total_memory) {
printk(KERN_ERR "%s: dma-ranges too small "
-  "(size=%llx total_memory=%lx)\n",
-  hose->dn->full_name, size, total_memory);
+  "(size=%llx total_memory=%llx)\n",
+  hose->dn->full_name, size, (u64)total_memory);
return -ENXIO;
}
 
/* Check we are a power of 2 size and that base is a multiple of size*/
-   if (!is_power_of_2(size) ||
+   if ((size & (size - 1)) != 0  ||
(res->start & (size - 1)) != 0) {
printk(KERN_ERR "%s: dma-ranges unaligned\n",
   hose->dn->full_name);
-- 
1.5.6.1

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


Re: disable modules and get "multiple definition" errors?

2008-08-22 Thread Geert Uytterhoeven
On Thu, 21 Aug 2008, Kevin Diggs wrote:
>   I am trying to do some compile testing of my cpufreq driver. If
> I disable modules I am getting multiple definition errors of inline
> functions:
> 
> inline volatile unsigned int get_PLL(void)
> {
> unsigned int ret;
> 
> __asm__ __volatile__ ("mfspr %0,%1":
> "=r"(ret):
> "i"(SPRN_HID1)
> );
> 
> return ret;
> }
> 
> arch/powerpc/kernel/cpu/pll_if.o(.text+0x1c): In function `get_PLL':
> : multiple definition of `get_PLL'
> arch/powerpc/kernel/cpu/cpufreq/built-in.o(.text+0x0): first defined here
> 
> What am I doing wrong?

You forgot to make the inline functions static?

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:+32 (0)2 700 8453
Fax:  +32 (0)2 700 8622
E-mail:   [EMAIL PROTECTED]
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [PATCH 4/4] kvmppc: convert wrteei to wrtee as kvm guest optimization

2008-08-22 Thread Kumar Gala


On Aug 22, 2008, at 3:08 AM, Christian Ehrhardt wrote:


Scott Wood wrote:

On Thu, Aug 21, 2008 at 09:21:39AM -0500, Kumar Gala wrote:

Where is the other discussion?  I'd like to understand what's  
going on  here.. (especially since I added the wrtee[i] changes to  
kernel way  back when).




Presumably, they want to be able to replace wrtee with a store to a
hypervisor/guest shared memory area, and there's no store-immediate
instruction.

-Scott


Exactly Scott

And for your question Kumar, in the last submission I was asked to  
split host and guest patches.
So the host discussion lives on [EMAIL PROTECTED] as I  
mentioned (maybe a bit too hidden)

in the [0/4] mail of this series.


Maybe I'm missing something but it seems like just changing the code  
to wrtee isn't the best way to ensure you have enough space to put the  
set of instructions you guys want.


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


Re: New Patchwork beta

2008-08-22 Thread Kumar Gala


On Aug 21, 2008, at 5:52 PM, Josh Boyer wrote:


On Thu, 2008-08-21 at 15:32 -0500, Kumar Gala wrote:

Some feedback:

* Can we increase the font size a bit?


NOO.  Just use CTRL-SHIFT-+.


ok


* For the list of patches can we change the background of every other
line (light gray)


That would work well.


thanks this looks better, easier to read.


* Parsing subject header for determining state -- "[RFC]"


That is going to fail miserably because people tend to do silly things
like post final patches in the middle of an [RFC] thread.


gotcha.

Now that I can log in, can I get "maintainer" privileges (user: galak)

also is it possible to put the patch controls in a separate frame so  
they are always visible (dont have to scoll to the bottom to find them).


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


Re: [PATCH 4/4] kvmppc: convert wrteei to wrtee as kvm guest optimization

2008-08-22 Thread Christian Ehrhardt

Scott Wood wrote:

On Thu, Aug 21, 2008 at 09:21:39AM -0500, Kumar Gala wrote:
  
Where is the other discussion?  I'd like to understand what's going on  
here.. (especially since I added the wrtee[i] changes to kernel way  
back when).



Presumably, they want to be able to replace wrtee with a store to a
hypervisor/guest shared memory area, and there's no store-immediate
instruction.

-Scott
  

Exactly Scott

And for your question Kumar, in the last submission I was asked to split 
host and guest patches.
So the host discussion lives on [EMAIL PROTECTED] as I mentioned 
(maybe a bit too hidden)

in the [0/4] mail of this series.


--

Grüsse / regards, 
Christian Ehrhardt

IBM Linux Technology Center, Open Virtualization

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