LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 09/15] [POWERPC] Promess Motion-PRO board support
From: Grant Likely @ 2007-10-08  6:45 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linuxppc-dev, Marian Balakowicz
In-Reply-To: <20071007223219.932e3f8a.sfr@canb.auug.org.au>

On 10/7/07, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> On Sun, 07 Oct 2007 13:28:48 +0200 Marian Balakowicz <m8@semihalf.com> wrote:
> >
> > +++ b/arch/powerpc/platforms/52xx/motionpro.c
>
> Same comments again.

Ditto.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: [PATCH 07/15] [POWERPC] Promess Motion-PRO DTS
From: Grant Likely @ 2007-10-08  6:44 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C22D.5060805@semihalf.com>

On 10/7/07, Marian Balakowicz <m8@semihalf.com> wrote:
>
> Add device tree source file for Motion-PRO board.
>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> ---
>
>  motionpro.dts |  334 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 334 insertions(+)
>
> diff --git a/arch/powerpc/boot/dts/motionpro.dts b/arch/powerpc/boot/dts/motionpro.dts
> new file mode 100644
> index 0000000..4b197c8
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/motionpro.dts
> @@ -0,0 +1,334 @@
> +/*
> + * Motion-PRO board Device Tree Source, based on Lite5200B DTS.
> + *
> + * Copyright (C) 2007 Semihalf
> + * Modified for CM5200 by Marian Balakowicz <m8@semihalf.com>
> + *
> + * Copyright 2006-2007 Secret Lab Technologies Ltd.
> + * Grant Likely <grant.likely@secretlab.ca>
> + *
> + * Copyright (C) 2007 DENX Software Engineering
> + *
> + * 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.
> + */
> +
> +/*
> + * WARNING: Do not depend on this tree layout remaining static just yet.
> + * The MPC5200 device tree conventions are still in flux
> + * Keep an eye on the linuxppc-dev mailing list for more details
> + */
> +
> +/ {
> +       model = "fsl,motionpro";
> +       // revision = "1.0";
> +       compatible = "fsl,motionpro\0generic-mpc5200";

Not 'fsl,'

> +               pci@0d00 {
> +                       #interrupt-cells = <1>;
> +                       #size-cells = <2>;
> +                       #address-cells = <3>;
> +                       device_type = "pci";
> +                       compatible = "mpc5200b-pci\0mpc5200-pci";
> +                       reg = <d00 100>;
> +                       interrupt-map-mask = <f800 0 0 7>;
> +                       interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot
> +                                        c000 0 0 2 &mpc5200_pic 1 1 3
> +                                        c000 0 0 3 &mpc5200_pic 1 2 3
> +                                        c000 0 0 4 &mpc5200_pic 1 3 3
> +
> +                                        c800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot
> +                                        c800 0 0 2 &mpc5200_pic 1 2 3
> +                                        c800 0 0 3 &mpc5200_pic 1 3 3
> +                                        c800 0 0 4 &mpc5200_pic 0 0 3>;
> +                       clock-frequency = <0>; // From boot loader
> +                       interrupts = <2 8 0 2 9 0 2 a 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       bus-range = <0 0>;
> +                       ranges = <42000000 0 80000000 80000000 0 20000000
> +                                 02000000 0 a0000000 a0000000 0 10000000
> +                                 01000000 0 00000000 b0000000 0 01000000>;
> +               };

PCI should no longer be a child of the soc node.

> +
> +               spi@f00 {
> +                       device_type = "spi";
> +                       compatible = "mpc5200b-spi\0mpc5200-spi";
> +                       reg = <f00 20>;
> +                       interrupts = <2 d 0 2 e 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               usb@1000 {
> +                       device_type = "usb-ohci-be";
> +                       compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be";
> +                       reg = <1000 ff>;
> +                       interrupts = <2 6 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               bestcomm@1200 {
> +                       device_type = "dma-controller";
> +                       compatible = "mpc5200b-bestcomm\0mpc5200-bestcomm";
> +                       reg = <1200 80>;
> +                       interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
> +                                     3 4 0  3 5 0  3 6 0  3 7 0
> +                                     3 8 0  3 9 0  3 a 0  3 b 0
> +                                     3 c 0  3 d 0  3 e 0  3 f 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               xlb@1f00 {
> +                       compatible = "mpc5200b-xlb\0mpc5200-xlb";
> +                       reg = <1f00 100>;
> +               };
> +
> +               serial@2000 {           // PSC1
> +                       device_type = "serial";
> +                       compatible = "mpc5200b-psc-uart\0mpc5200-psc-uart";
> +                       port-number = <0>;  // Logical port assignment
> +                       cell-index = <0>;
> +                       reg = <2000 100>;
> +                       interrupts = <2 1 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               // PSC2 in spi master mode
> +               spi@2200 {              // PSC2
> +                       device_type = "spi";
> +                       compatible = "mpc5200b-psc-spi\0mpc5200-psc-spi";
> +                       cell-index = <1>;
> +                       reg = <2200 100>;
> +                       interrupts = <2 2 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               // PSC5 in uart mode example

Not an example if it is uncommented, change your comment.

> +               serial@2800 {           // PSC5
> +                       device_type = "serial";
> +                       compatible = "mpc5200b-psc-uart\0mpc5200-psc-uart";
> +                       port-number = <4>;  // Logical port assignment
> +                       cell-index = <4>;
> +                       reg = <2800 100>;
> +                       interrupts = <2 c 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               ethernet@3000 {
> +                       device_type = "network";
> +                       compatible = "mpc5200b-fec\0mpc5200-fec";
> +                       reg = <3000 800>;
> +                       mac-address = [ 02 03 04 05 06 07 ]; // Bad!

I really should fix this in the lite5200 device tree.

> +                       interrupts = <2 5 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               ata@3a00 {
> +                       device_type = "ata";
> +                       compatible = "mpc5200b-ata\0mpc5200-ata";
> +                       reg = <3a00 100>;
> +                       interrupts = <2 7 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               i2c@3d40 {
> +                       device_type = "i2c";
> +                       compatible = "mpc5200b-i2c\0mpc5200-i2c\0fsl-i2c";
> +                       cell-index = <1>;
> +                       reg = <3d40 40>;
> +                       interrupts = <2 10 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       fsl5200-clocking;
> +               };
> +               sram@8000 {
> +                       device_type = "sram";
> +                       compatible = "mpc5200b-sram\0mpc5200-sram\0sram";
> +                       reg = <8000 4000>;
> +               };
> +
> +       };
> +       kollmorgen {
> +               device_type = "kollmorgen";
> +               compatible = "kollmorgen";
> +               reg = <50000000 ffff>;
> +               interrupts = <1 1 0>;
> +               interrupt-parent = <&mpc5200_pic>;
> +       };
> +       cpld {
> +               device_type = "cpld";
> +               compatible = "cpld";
> +               reg = <50010000 ffff>;
> +       };
> +       anybus {
> +               device_type = "anybus";
> +               compatible = "anybus";
> +               reg = <50020000 ffff>;
> +       };
> +       pro_module_general {
> +               device_type = "pro_module_general";
> +               compatible = "pro_module_general";

compatible properties should use '<manufacturer>,' prefixes.

> +               reg = <50020000 3>;
> +       };
> +       pro_module_dio {
> +               device_type = "pro_module_dio";
> +               compatible = "pro_module_dio";
> +               reg = <50020800 2>;
> +       };

So; what are 'kollmogens', 'anybusses' and 'pro_modules'?  This stuff
have some documentation attached to it.  If these are devices which
are only on this board; then I think you can just add comments about
each node to describe them.  If they are devices which will appear on
other boards, you should describe them in
Documentation/powerpc/booting-without-of.txt.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: [PATCH 06/15] [POWERPC] CM5200 board support
From: Grant Likely @ 2007-10-08  6:28 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linuxppc-dev, Marian Balakowicz
In-Reply-To: <20071007222930.a5b03174.sfr@canb.auug.org.au>

On 10/7/07, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> On Sun, 07 Oct 2007 13:24:18 +0200 Marian Balakowicz <m8@semihalf.com> wrote:
> >
> > +++ b/arch/powerpc/platforms/52xx/cm5200.c
> >
> > +#include <asm/prom.h>
> > +#include <asm/of_platform.h>
>
> Same comments as for tqm5200.c.

Ditto

g.

^ permalink raw reply

* Re: [PATCH 01/15] [POWERPC] TQM5200 DTS
From: Grant Likely @ 2007-10-08  6:27 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708BFDD.9020900@semihalf.com>

On 10/7/07, Marian Balakowicz <m8@semihalf.com> wrote:
> +
> +               pci@0d00 {
> +                       #interrupt-cells = <1>;
> +                       #size-cells = <2>;
> +                       #address-cells = <3>;
> +                       device_type = "pci";
> +                       compatible = "mpc5200-pci";
> +                       reg = <d00 100>;
> +                       interrupt-map-mask = <f800 0 0 7>;
> +                       interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3
> +                                        c000 0 0 2 &mpc5200_pic 0 0 3
> +                                        c000 0 0 3 &mpc5200_pic 0 0 3
> +                                        c000 0 0 4 &mpc5200_pic 0 0 3>;
> +                       clock-frequency = <0>; // From boot loader
> +                       interrupts = <2 8 0 2 9 0 2 a 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       bus-range = <0 0>;
> +                       ranges = <42000000 0 80000000 80000000 0 10000000
> +                                 02000000 0 90000000 90000000 0 10000000
> +                                 01000000 0 00000000 a0000000 0 01000000>;
> +               };

Also, the PCI node should no longer be a child of the 'soc' node.  See
the latest lite5200.dts file in Paul Mackerras' powerpc tree for an
example.



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: [POWERPC 03/15] [POWERPC] TQM5200 board support
From: Grant Likely @ 2007-10-08  6:21 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C0DA.2040606@semihalf.com>

On 10/7/07, Marian Balakowicz <m8@semihalf.com> wrote:
>
> Add arch/powerpc board support for TQM5200.
>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> Signed-off-by: Jan Wrobel <wrr@semihalf.com>

Hmmm....

Both this patch and the CM5200 support patch (#6 in your series) are
pretty much clones of lite5200.c.  I don't think this is the right
approach.  Don't duplicate code in this way.  Determine the common
bits and put them in a common place to be usable by any 5200 board
port.

It might even be better just to add a platform that matches on
compatible='mpc5200-generic' which is usable for mpc5200 boards that
don't need any custom setup by the kernel at platform setup time.
(which will probably be most 5200 boards).

More comments below.  (And, yes, I realize that all these comments
also apply to lite5200.c).

> ---
>
>  Kconfig   |    5 +
>  Makefile  |    1
>  tqm5200.c |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 180 insertions(+)
>
> diff --git a/arch/powerpc/platforms/52xx/Kconfig b/arch/powerpc/platforms/52xx/Kconfig
> index 3ffaa06..7c828eb 100644
> --- a/arch/powerpc/platforms/52xx/Kconfig
> +++ b/arch/powerpc/platforms/52xx/Kconfig
> @@ -33,4 +33,9 @@ config PPC_LITE5200
>         select PPC_MPC5200
>         default n
>
> +config PPC_TQM5200
> +       bool "TQM5200 Board"
> +       depends on PPC_MULTIPLATFORM && PPC32

Hmmm; it's looking like every 52xx board is adding this boilerplate
"depends" line... That's probably sub-optimal.  (More a general
thought than a comment on your patch)

> +       select PPC_MPC5200
> +       default n
>
> diff --git a/arch/powerpc/platforms/52xx/Makefile b/arch/powerpc/platforms/52xx/Makefile
> index b91e39c..4997ebf 100644
> --- a/arch/powerpc/platforms/52xx/Makefile
> +++ b/arch/powerpc/platforms/52xx/Makefile
> @@ -8,5 +8,6 @@ endif
>
>  obj-$(CONFIG_PPC_EFIKA)                += efika.o
>  obj-$(CONFIG_PPC_LITE5200)     += lite5200.o
> +obj-$(CONFIG_PPC_TQM5200)      += tqm5200.o
>
>  obj-$(CONFIG_PM)               += mpc52xx_sleep.o mpc52xx_pm.o
> diff --git a/arch/powerpc/platforms/52xx/tqm5200.c b/arch/powerpc/platforms/52xx/tqm5200.c
> new file mode 100644
> index 0000000..780b79f
> --- /dev/null
> +++ b/arch/powerpc/platforms/52xx/tqm5200.c
> @@ -0,0 +1,174 @@
> +/*
> + * TQM5200 board support
> + *
> + * Written by: Grant Likely <grant.likely@secretlab.ca> for lite5200
> + * Adapted for tqm5200 by: Jan Wrobel <wrr@semihalf.com>
> + *
> + * Copyright (C) Secret Lab Technologies Ltd. 2006. All rights reserved.
> + * Copyright (C) Freescale Semicondutor, Inc. 2006. All rights reserved.
> + *
> + * Description:
> + * 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.
> + */
> +
> +#undef DEBUG
> +
> +#include <linux/stddef.h>
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/errno.h>
> +#include <linux/reboot.h>
> +#include <linux/pci.h>
> +#include <linux/kdev_t.h>
> +#include <linux/major.h>
> +#include <linux/console.h>
> +#include <linux/delay.h>
> +#include <linux/seq_file.h>
> +#include <linux/root_dev.h>
> +#include <linux/initrd.h>
> +
> +#include <asm/system.h>
> +#include <asm/atomic.h>
> +#include <asm/time.h>
> +#include <asm/io.h>
> +#include <asm/machdep.h>
> +#include <asm/ipic.h>
> +#include <asm/bootinfo.h>
> +#include <asm/irq.h>
> +#include <asm/prom.h>
> +#include <asm/udbg.h>
> +#include <sysdev/fsl_soc.h>
> +#include <asm/of_platform.h>
> +
> +#include <asm/mpc52xx.h>
> +
> +/* ************************************************************************
> + *
> + * Setup the architecture
> + *
> + */
> +static void __init
> +tqm5200_setup_cpu(void)
> +{
> +       struct mpc52xx_gpio __iomem *gpio;
> +       u32 port_config;
> +
> +       /* Map zones */
> +       gpio = mpc52xx_find_and_map("mpc5200-gpio");
> +       if (!gpio) {
> +               printk(KERN_ERR __FILE__ ": "
> +                       "Error while mapping GPIO register for port config. "
> +                       "Expect some abnormal behavior\n");
> +               goto error;
> +       }
> +
> +       /* Set port config */
> +       port_config = in_be32(&gpio->port_config);
> +
> +       port_config &= ~0x00800000;     /* 48Mhz internal, pin is GPIO  */
> +
> +       port_config &= ~0x00007000;     /* USB port : Differential mode */
> +       port_config |=  0x00001000;     /*            USB 1 only        */
> +
> +       port_config &= ~0x03000000;     /* ATA CS is on csb_4/5         */
> +       port_config |=  0x01000000;

Are you *sure* you want this?  You should only be touching port_config
if firmware fails to set it up correctly.  Don't blindly copy what was
done for the lite5200.

Lite5200 touches it because firmware does *not* do the right thing at
the moment.

> +
> +       pr_debug("port_config: old:%x new:%x\n",
> +                in_be32(&gpio->port_config), port_config);
> +       out_be32(&gpio->port_config, port_config);
> +
> +       /* Unmap zone */
> +error:
> +       iounmap(gpio);
> +}
> +
> +static void __init tqm5200_setup_arch(void)
> +{
> +       struct device_node *np;
> +
> +       if (ppc_md.progress)
> +               ppc_md.progress("tqm5200_setup_arch()", 0);
> +
> +       np = of_find_node_by_type(NULL, "cpu");
> +       if (np) {
> +               unsigned int *fp =
> +                   (int *)of_get_property(np, "clock-frequency", NULL);

Unnecessary cast, and add 'const' to 'fp' declaration.

> +               if (fp != 0)

Use NULL instead of 0 for pointer tests.  'if (fp)' is also good style here.

> +                       loops_per_jiffy = *fp / HZ;
> +               else
> +                       loops_per_jiffy = 50000000 / HZ;
> +               of_node_put(np);
> +       }
> +
> +       /* CPU & Port mux setup */
> +       mpc52xx_setup_cpu();
> +       tqm5200_setup_cpu();
> +
> +#ifdef CONFIG_PCI
> +       np = of_find_node_by_type(NULL, "pci");
> +       if (np) {
> +               mpc52xx_add_bridge(np);
> +               of_node_put(np);
> +       }
> +#endif
> +
> +#ifdef CONFIG_BLK_DEV_INITRD
> +       if (initrd_start)
> +               /*
> +                * We want the proper initrd behavior, i.e., launching of
> +                * /linuxrc from the initial root file system, and not only
> +                * mounting it as the normal root file system.
> +                */
> +               ROOT_DEV = 0x0;
> +       else
> +#endif
> +#ifdef  CONFIG_ROOT_NFS
> +               ROOT_DEV = Root_NFS;
> +#else
> +               ROOT_DEV = Root_HDA1;
> +#endif

Drop all this ROOT_DEV code.  It's brain damaged.

> +
> +}
> +
> +void tqm5200_show_cpuinfo(struct seq_file *m)
> +{
> +       struct device_node* np = of_find_all_nodes(NULL);
> +       const char *model = NULL;
> +
> +       if (np)
> +               model = of_get_property(np, "model", NULL);
> +
> +       seq_printf(m, "vendor\t\t:      Freescale Semiconductor\n");

Freescale?  Really?

> +       seq_printf(m, "machine\t\t:     %s\n", model ? model : "unknown");
> +
> +       of_node_put(np);
> +}
> +
> +/*
> + * Called very early, MMU is off, device-tree isn't unflattened
> + */
> +static int __init tqm5200_probe(void)
> +{
> +       unsigned long node = of_get_flat_dt_root();
> +       const char *model = of_get_flat_dt_prop(node, "model", NULL);
> +
> +       if (!of_flat_dt_is_compatible(node, "fsl,tqm5200"))
> +               return 0;
> +       pr_debug("%s board found\n", model ? model : "unknown");

Drop the pr_debug line and the setting of 'model' above.  The platform
setup call prints out the name of the platform regardless.

> +
> +       return 1;
> +}
> +
> +define_machine(tqm5200) {
> +       .name           = "tqm5200",
> +       .probe          = tqm5200_probe,
> +       .setup_arch     = tqm5200_setup_arch,
> +       .init           = mpc52xx_declare_of_platform_devices,
> +       .init_IRQ       = mpc52xx_init_irq,
> +       .get_irq        = mpc52xx_get_irq,
> +       .show_cpuinfo   = tqm5200_show_cpuinfo,
> +       .calibrate_decr = generic_calibrate_decr,
> +};
>

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: Where are inb/outb macros?
From: Misbah khan @ 2007-10-08  6:05 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <200710070146.51140.arnd@arndb.de>


inb/outb could be used from the usr space on x86 class PC-computer to access
to io ports this is what i assume that you are trying 

You need to compile the program with -O option (expantion of Inline function
)

To perform io operation on ports ioprem/iopl system call must be used (To
get permissio to perform io operation)

Program must run as root 

on non 86 platform try using /dev/port device file in the application 

misbah


Arnd Bergmann wrote:
> 
> On Saturday 06 October 2007, Benjamin Herrenschmidt wrote:
>> On Sun, 2007-10-07 at 00:47 +0400, Peter Lemenkov wrote:
>> > Hello All!
>> > I can't compile one small software title because of lack <sys/io.h>
>> > and inb/outb macros. What sould I do to overcome this obstacle?
>> > 
>> > My linux distro is Fedora 7 if it is matter.
>> 
>> They don't exist in user space on non-x86. You have to do things
>> differently. What is your software trying to do ? If it's trying to
>> access a PCI device IO space, you probably want to mmap it in sysfs and
>> write your own accessors with appropriate memory barriers.
> 
> All cases where I've seen application software use <sys/io.h>, there was
> actually a full device driver in the kernel that already exported a 
> high-level interface to user space. If that's the case here, the
> application
> should use that instead of sysfs.
> 
> 	Arnd <><
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 
> 

-- 
View this message in context: http://www.nabble.com/Where-are-inb-outb-macros--tf4581135.html#a13091078
Sent from the linuxppc-dev mailing list archive at Nabble.com.

^ permalink raw reply

* Re: include/asm/cpm2.h:14:21: error: asm/cpm.h: No such file or directory
From: Misbah khan @ 2007-10-08  4:36 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <4705691A.9020509@freescale.com>





Timur Tabi-3 wrote:
> 
> Kumar, this is what I get when I compile your 2.6.24 branch for the 8610:
> 
>    CC      arch/powerpc/sysdev/fsl_soc.o
> In file included from arch/powerpc/sysdev/fsl_soc.c:40:
> include/asm/cpm2.h:14:21: error: asm/cpm.h: No such file or directory
> make[1]: *** [arch/powerpc/sysdev/fsl_soc.o] Error 1
> make: *** [arch/powerpc/sysdev] Error 2
> 
> I guess the file /asm/cpm2.h is not present in the kernel source , You
> need to go through the source and see what asm file is being provided for
> you to access the communication processor specific register (i assume you
> are accessing/assigning to processor register) 
> 
> Commenting out the "#include <asm/cpm.h>" in cpm2.h makes the compilation 
> failure go away, but I don't know if that's the proper fix, since the 8610 
> doesn't have a CPM.
> 
> Are u including #include <asm/cpm.h> or <asm/cpm2.h> ???????
> 
> Processor registers are memory mapped and you can access it directly by
> including proper asm file ,and writing to the structure element of the
> file by  using Pointer to comm processor 
> 
> If you could let me know what is the operation that you need to perform on
> comm process register and which register you need to access then i could
> be in better position to help you
> 
> Misbah 
> -- 
> Timur Tabi
> Linux Kernel Developer @ Freescale
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 
> 

-- 
View this message in context: http://www.nabble.com/include-asm-cpm2.h%3A14%3A21%3A-error%3A-asm-cpm.h%3A-No-such-file-or-directory-tf4571911.html#a13090379
Sent from the linuxppc-dev mailing list archive at Nabble.com.

^ permalink raw reply

* Re: 2.6.23-rc7-mm1 -- powerpc rtas panic
From: Nish Aravamudan @ 2007-10-08  3:47 UTC (permalink / raw)
  To: Linas Vepstas; +Cc: linuxppc-dev, Andrew Morton, linux-kernel
In-Reply-To: <20071005160322.GN4338@austin.ibm.com>

On 10/5/07, Linas Vepstas <linas@austin.ibm.com> wrote:
> On Thu, Oct 04, 2007 at 05:01:47PM -0700, Nish Aravamudan wrote:
> > On 10/2/07, Tony Breeds <tony@bakeyournoodle.com> wrote:
> > > On Wed, Oct 03, 2007 at 10:30:16AM +1000, Michael Ellerman wrote:
> > >
> > > > I realise it'll make the patch bigger, but this doesn't seem like a
> > > > particularly good name for the variable anymore.
> > >
> > > Sure, what about?
> > >
> > > Clarify when RTAS logging is enabled.
> > >
> > > Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
> >
> > For what it's worth, on a different ppc64 box, this resolves a similar
> > panic for me.
> >
> > Tested-by: Nishanth Aravamudan <nacc@us.ibm.com>
>
> For the reasons explained, I'd really like to nack Tony's patch.

I see. Can you reply in this thread with the patch you mentioned in
your other reply? (or point me to a copy of it)

Thanks,
Nish

^ permalink raw reply

* Re: [PATCH 07/15] [POWERPC] Promess Motion-PRO DTS
From: David Gibson @ 2007-10-08  1:53 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C22D.5060805@semihalf.com>

On Sun, Oct 07, 2007 at 01:25:33PM +0200, Marian Balakowicz wrote:
> 
> Add device tree source file for Motion-PRO board.
> 
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> ---
> 
>  motionpro.dts |  334 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 334 insertions(+)
> 
> diff --git a/arch/powerpc/boot/dts/motionpro.dts b/arch/powerpc/boot/dts/motionpro.dts
> new file mode 100644
> index 0000000..4b197c8
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/motionpro.dts
> @@ -0,0 +1,334 @@
> +/*
> + * Motion-PRO board Device Tree Source, based on Lite5200B DTS.
> + *
> + * Copyright (C) 2007 Semihalf
> + * Modified for CM5200 by Marian Balakowicz <m8@semihalf.com>
> + *
> + * Copyright 2006-2007 Secret Lab Technologies Ltd.
> + * Grant Likely <grant.likely@secretlab.ca>
> + *
> + * Copyright (C) 2007 DENX Software Engineering
> + *
> + * 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.
> + */
> +
> +/*
> + * WARNING: Do not depend on this tree layout remaining static just yet.
> + * The MPC5200 device tree conventions are still in flux
> + * Keep an eye on the linuxppc-dev mailing list for more details
> + */
> +
> +/ {
[snip]
> +	kollmorgen {
> +		device_type = "kollmorgen";
> +		compatible = "kollmorgen";
> +		reg = <50000000 ffff>;
> +		interrupts = <1 1 0>;
> +		interrupt-parent = <&mpc5200_pic>;
> +	};
> +	cpld {
> +		device_type = "cpld";
> +		compatible = "cpld";
> +		reg = <50010000 ffff>;
> +	};
> +	anybus {
> +		device_type = "anybus";
> +		compatible = "anybus";
> +		reg = <50020000 ffff>;
> +	};
> +	pro_module_general {
> +		device_type = "pro_module_general";
> +		compatible = "pro_module_general";
> +		reg = <50020000 3>;
> +	};
> +	pro_module_dio {
> +		device_type = "pro_module_dio";
> +		compatible = "pro_module_dio";
> +		reg = <50020800 2>;
> +	};

Surely there must be some sort of bus controller above these devices..?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply

* Re: [PATCH 04/15] [POWERPC] CM5200 DTS
From: David Gibson @ 2007-10-08  1:50 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C112.9020506@semihalf.com>

On Sun, Oct 07, 2007 at 01:20:50PM +0200, Marian Balakowicz wrote:
> 
> Add device tree source file for CM5200 board.
> 
> Signed-off-by Marian Balakowicz <m8@semihalf.com>
> Signed-off-by: Jan Wrobel <wrr@semihalf.com>
> ---
> 
>  cm5200.dts |  284 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 284 insertions(+)
> 
> diff --git a/arch/powerpc/boot/dts/cm5200.dts b/arch/powerpc/boot/dts/cm5200.dts
> new file mode 100644
> index 0000000..96d2ee4
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/cm5200.dts
> @@ -0,0 +1,284 @@
> +/*
> + * CM5200 board Device Tree Source
> + *
> + * Copyright (C) 2007 Semihalf
> + * Modified for CM5200 by Jan Wrobel <wrr@semihalf.com>
> + *
> + * Copyright 2006-2007 Secret Lab Technologies Ltd.
> + * Grant Likely <grant.likely@secretlab.ca>
> + *
> + * 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.
> + */
> +
> +/*
> + * WARNING: Do not depend on this tree layout remaining static just yet.
> + * The MPC5200 device tree conventions are still in flux
> + * Keep an eye on the linuxppc-dev mailing list for more details
> + */
> +
> +/ {
> +	model = "cm5200";
> +	compatible = "fsl,cm5200\0generic-mpc5200";

dtc now supports the syntax "fsl,cm5200", "generic-mpc5200" so you
don't need the ugly inline \0.

> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
> +	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		PowerPC,5200@0 {
> +			device_type = "cpu";
> +			reg = <0>;
> +			d-cache-line-size = <20>;
> +			i-cache-line-size = <20>;
> +			d-cache-size = <4000>;		// L1, 16K
> +			i-cache-size = <4000>;		// L1, 16K
> +			timebase-frequency = <0>;	// from bootloader
> +			bus-frequency = <0>;		// from bootloader
> +			clock-frequency = <0>;		// from bootloader
> +			32-bit;
> +		};
> +	};
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <00000000 04000000>;	// 64MB
> +	};
> +
> +	soc5200@f0000000 {
> +		model = "fsl,mpc5200b";
> +		compatible = "mpc5200";
> +		revision = "";			// from bootloader
> +		#interrupt-cells = <3>;
> +		device_type = "soc";
> +		ranges = <0 f0000000 f0010000>;
> +		reg = <f0000000 00010000>;
> +		bus-frequency = <0>;		// from bootloader
> +		system-frequency = <0>;		// from bootloader

[snip]
> +		flash@c000000 {
> +			device_type = "rom";
> +			compatible = "direct-mapped";
> +			reg = <0c000000 02000000>;
> +			probe-type = "CFI";
> +			bank-width = <2>;
> +			partitions = <00000000 00060000
> +				00060000 00020000
> +				00080000 00020000
> +				000a0000 00020000
> +				000c0000 00200000
> +				002c0000 01b40000
> +				01e00000 00200000>;
> +			partition-names = "uboot\0env\0redund_env\0dtb\0kernel\0rootfs\0config";
> +		};

First, this is the old flash binding, please use the new one.

Second, is the flash really part of the SoC?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply

* Re: [RFC] [PATCH] PowerPC: add more than 4MB kernel image size support to bootwarapper
From: Scott Wood @ 2007-10-08  1:31 UTC (permalink / raw)
  To: Mark A. Greer; +Cc: linuxppc-dev
In-Reply-To: <20071005210320.GE6663@mag.az.mvista.com>

Mark A. Greer wrote:
> Why?  Because its only safe to download a zImage to certain "safe" locations.
> Where those "safe" locations are vary by firmware, firmware version, and
> zImage size.  This is the issue we're discussing.

In theory, yes -- but in practice the odds of this particular heuristic 
choosing an unsuitable address seem slim.

> I've already explained _why_ the link address matters WRT where its downloaded.

Sorry, I was being a bit too pendantic with respect to the distinction 
between link and load address.

>>> Also, being able to control the link address (that is, the download
>>> address with some firmwares) is not a u-boot specific issue and we
>>> shouldn't make a u-boot specific solution.
>> How is this a u-boot specific solution?
> 
> Because the hoops being jumped through in the patch(es) are to make
> u-boot happy and no other firmware.

No, the "hoops" (which I don't think are sufficiently complicated to 
warrant such a name) are to address a generic issue with the bootwrapper 
-- it wants to put the kernel at zero.  It'd be really nice if, in the 
absense of a vmlinux_alloc method, the generic code would do an ordinary 
malloc() if there's not enough room at zero.

>> I'd much rather it be automatic than require the user to guess an
>> appropriate value (and be aware in the first place that it needs to be set).
> 
> Sure, automatic is nice; conjuring up the magic to make it work in all
> situations isn't.

I think this heuristic would work in most situations, so if we do add a 
manual override it should be an override, and not something that 
everybody has to put up with.

> Having the link address--and therefore the download address on some
> systems--mysteriously and uncontrollably jump around based on the zImage
> size is asking for trouble.

It's a source of potential issues, but I think "asking for trouble" is 
exaggerating somewhat.

-Scott

^ permalink raw reply

* Re: TASK_SIZE default 0x80000000 ?
From: Benjamin Herrenschmidt @ 2007-10-07 21:05 UTC (permalink / raw)
  To: Kumar Gala; +Cc: PowerPC dev list, Paul Mackerras
In-Reply-To: <796C20BF-1592-4F07-B83B-5EA35CADBA01@kernel.crashing.org>


> Can you explain (a) further -- I'm assuming the BAT mapping is 1:1  
> for that region?
> 
> For (b) it looks like:
> * 40x, 44x, fsl-booke compare against TASK_SIZE in their software  
> handlers.
> * 8xx still tests 0x80000000
> * 6xx (603) compares against KERNELBASE
> 
> It would seem like we should set the default on 8xx & PReP to  
> 0x80000000 and not allow it to be modified since that will break the  
> world and for everything else move it to match KERNELBASE.  Any  
> issues with that?

The proper value is neither :-)

It should be compared against PAGE_OFFSET.

Ben.

^ permalink raw reply

* Re: [PATCH 01/15] [POWERPC] TQM5200 DTS
From: Wolfgang Denk @ 2007-10-07 20:30 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-dev, tech-denx, Detlev Zundel, Marian Balakowicz
In-Reply-To: <fa686aa40710071036u164f2cbaob8cfa4ebc0b1ed1c@mail.gmail.com>

In message <fa686aa40710071036u164f2cbaob8cfa4ebc0b1ed1c@mail.gmail.com> you wrote:
>
> > +/ {
> > +       model = "fsl,tqm5200";
> 
> "fsl," is not appropriate as the TQM5200 is not a freescale product.
> We need a new abbreviation for tq-components.

How about

	model = "tqc,tqm5200";
?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Behind every great man, there is a woman -- urging him on.
	-- Harry Mudd, "I, Mudd", stardate 4513.3

^ permalink raw reply

* Re: TASK_SIZE default 0x80000000 ?
From: Dan Malek @ 2007-10-07 18:35 UTC (permalink / raw)
  To: Kumar Gala; +Cc: PowerPC dev list, Benjamin Herrenschmidt, Paul Mackerras
In-Reply-To: <796C20BF-1592-4F07-B83B-5EA35CADBA01@kernel.crashing.org>


On Oct 7, 2007, at 8:02 AM, Kumar Gala wrote:

> It would seem like we should set the default on 8xx & PReP to
> 0x80000000 and not allow it to be modified

For as much as this has been discussed in the past,
I don't know why the 8xx doesn't check KERNEL_BASE
and work properly with the options.  There is no reason
this can't work.  The history is I wrote the tlb handlers
to test the MS bit due to a hardcoded address, not that
the address is hardcoded because I wanted to just
test a bit.  Unlike PReP, there is no reason to
disallow modification, if this test was changed.

Thanks.

	-- Dan

^ permalink raw reply

* Re: [PATCH 01/15] [POWERPC] TQM5200 DTS
From: Grant Likely @ 2007-10-07 17:36 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708BFDD.9020900@semihalf.com>

On 10/7/07, Marian Balakowicz <m8@semihalf.com> wrote:
>
> Add device tree source file for TQM5200 board.
>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
> Signed-off-by: Martin Krause <martin.krause@tqs.de>
> ---
>
>  tqm5200.dts |  217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 217 insertions(+)
>
> diff --git a/arch/powerpc/boot/dts/tqm5200.dts b/arch/powerpc/boot/dts/tqm5200.dts
> new file mode 100644
> index 0000000..e3e0ebf
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/tqm5200.dts
> @@ -0,0 +1,217 @@
> +/*
> + * TQM5200 board Device Tree Source
> + *
> + * Copyright (C) 2007 Semihalf
> + * Modified for TQM5200 by Marian Balakowicz <m8@semihalf.com>
> + *
> + * Copyright 2006-2007 Secret Lab Technologies Ltd.
> + * Grant Likely <grant.likely@secretlab.ca>

You don't really need to preserve my copyright here.  It will not
bother me if you remove it.

> + *
> + * 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.
> + */
> +
> +/*
> + * WARNING: Do not depend on this tree layout remaining static just yet.
> + * The MPC5200 device tree conventions are still in flux
> + * Keep an eye on the linuxppc-dev mailing list for more details
> + */
> +
> +/ {
> +       model = "fsl,tqm5200";

"fsl," is not appropriate as the TQM5200 is not a freescale product.
We need a new abbreviation for tq-components.

> +       compatible = "fsl,tqm5200\0generic-mpc5200";

Ditto

> +       #address-cells = <1>;
> +       #size-cells = <1>;
> +
> +       cpus {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               PowerPC,5200@0 {
> +                       device_type = "cpu";
> +                       reg = <0>;
> +                       d-cache-line-size = <20>;
> +                       i-cache-line-size = <20>;
> +                       d-cache-size = <4000>;          // L1, 16K
> +                       i-cache-size = <4000>;          // L1, 16K
> +                       timebase-frequency = <0>;       // from bootloader
> +                       bus-frequency = <0>;            // from bootloader
> +                       clock-frequency = <0>;          // from bootloader
> +                       32-bit;
> +               };
> +       };
> +
> +       memory {
> +               device_type = "memory";
> +               reg = <00000000 04000000>;      // 64MB
> +       };
> +
> +       soc5200@f0000000 {

I think we're moving to the convetion of naming these nodes
"soc@<addr>" now.  (You can drop the 5200 for the node name)

> +               model = "fsl,mpc5200";
> +               compatible = "mpc5200";
> +               revision = "";                  // from bootloader
> +               #interrupt-cells = <3>;
> +               device_type = "soc";
> +               ranges = <0 f0000000 f0010000>;
> +               reg = <f0000000 00010000>;
> +               bus-frequency = <0>;            // from bootloader
> +               system-frequency = <0>;         // from bootloader
> +
> +               cdm@200 {
> +                       compatible = "mpc5200b-cdm\0mpc5200-cdm";
> +                       reg = <200 38>;
> +               };
> +
> +               mpc5200_pic: pic@500 {
> +                       // 5200 interrupts are encoded into two levels;
> +                       interrupt-controller;
> +                       #interrupt-cells = <3>;
> +                       device_type = "interrupt-controller";
> +                       compatible = "mpc5200-pic";
> +                       reg = <500 80>;
> +                       built-in;
> +               };
> +
> +               gpt@600 {       // General Purpose Timer
> +                       compatible = "mpc5200-gpt";
> +                       device_type = "gpt";
> +                       cell-index = <0>;
> +                       reg = <600 10>;
> +                       interrupts = <1 9 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       has-wdt;
> +               };
> +
> +               gpio@b00 {
> +                       compatible = "mpc5200-gpio";
> +                       reg = <b00 40>;
> +                       interrupts = <1 7 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               usb@1000 {
> +                       device_type = "usb-ohci-be";
> +                       compatible = "mpc5200-ohci\0ohci-be";
> +                       reg = <1000 ff>;
> +                       interrupts = <2 6 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               pci@0d00 {
> +                       #interrupt-cells = <1>;
> +                       #size-cells = <2>;
> +                       #address-cells = <3>;
> +                       device_type = "pci";
> +                       compatible = "mpc5200-pci";
> +                       reg = <d00 100>;
> +                       interrupt-map-mask = <f800 0 0 7>;
> +                       interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3
> +                                        c000 0 0 2 &mpc5200_pic 0 0 3
> +                                        c000 0 0 3 &mpc5200_pic 0 0 3
> +                                        c000 0 0 4 &mpc5200_pic 0 0 3>;
> +                       clock-frequency = <0>; // From boot loader
> +                       interrupts = <2 8 0 2 9 0 2 a 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       bus-range = <0 0>;
> +                       ranges = <42000000 0 80000000 80000000 0 10000000
> +                                 02000000 0 90000000 90000000 0 10000000
> +                                 01000000 0 00000000 a0000000 0 01000000>;
> +               };
> +
> +               bestcomm@1200 {
> +                       device_type = "dma-controller";
> +                       compatible = "mpc5200-bestcomm";
> +                       reg = <1200 80>;
> +                       interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
> +                                     3 4 0  3 5 0  3 6 0  3 7 0
> +                                     3 8 0  3 9 0  3 a 0  3 b 0
> +                                     3 c 0  3 d 0  3 e 0  3 f 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               xlb@1f00 {
> +                       compatible = "mpc5200-xlb";
> +                       reg = <1f00 100>;
> +               };
> +
> +               serial@2000 {           // PSC1
> +                       device_type = "serial";
> +                       compatible = "mpc5200-psc-uart";
> +                       port-number = <0>;  // Logical port assignment
> +                       cell-index = <0>;
> +                       reg = <2000 100>;
> +                       interrupts = <2 1 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               serial@2200 {           // PSC2
> +                       device_type = "serial";
> +                       compatible = "mpc5200-psc-uart";
> +                       port-number = <1>;  // Logical port assignment
> +                       cell-index = <1>;
> +                       reg = <2200 100>;
> +                       interrupts = <2 2 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               serial@2400 {           // PSC3
> +                       device_type = "serial";
> +                       compatible = "mpc5200-psc-uart";
> +                       port-number = <2>;  // Logical port assignment
> +                       cell-index = <2>;
> +                       reg = <2400 100>;
> +                       interrupts = <2 3 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               ethernet@3000 {
> +                       device_type = "network";
> +                       compatible = "mpc5200-fec";
> +                       reg = <3000 800>;
> +                       interrupts = <2 5 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               ata@3a00 {
> +                       device_type = "ata";
> +                       compatible = "mpc5200b-ata\0mpc5200-ata";
> +                       reg = <3a00 100>;
> +                       interrupts = <2 7 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +               };
> +
> +               i2c@3d40 {
> +                       device_type = "i2c";
> +                       compatible = "mpc5200-i2c\0fsl-i2c";
> +                       cell-index = <1>;
> +                       reg = <3d40 40>;
> +                       interrupts = <2 10 0>;
> +                       interrupt-parent = <&mpc5200_pic>;
> +                       fsl5200-clocking;
> +               };
> +
> +               sram@8000 {
> +                       device_type = "sram";
> +                       compatible = "mpc5200-sram\0sram";
> +                       reg = <8000 4000>;
> +               };
> +
> +               flash@c000000 {
> +                       device_type = "rom";
> +                       compatible = "direct-mapped";
> +                       reg = <0c000000 02000000>;
> +                       probe-type = "CFI";
> +                       bank-width = <4>;
> +                       partitions = <00000000 000a0000
> +                                     000a0000 00020000
> +                                     000c0000 00240000
> +                                     00300000 00200000
> +                                     00500000 00400000
> +                                     00900000 00800000
> +                                     01100000 00f00000>;
> +                       partition-names = "firmware\0dtb\0kernel\0initrd\0small-fs\0misc\0big-fs";
> +               };
> +       };
> +};
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: TASK_SIZE default 0x80000000 ?
From: Kumar Gala @ 2007-10-07 15:02 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: PowerPC dev list, Benjamin Herrenschmidt
In-Reply-To: <18184.23379.478676.911097@cargo.ozlabs.ibm.com>


On Oct 6, 2007, at 11:06 PM, Paul Mackerras wrote:

> Kumar Gala writes:
>
>> In a discussion with Hollis over beer he raised the question why
>> TASK_SIZE is 0x80000000 on ppc32.
>>
>> I was wondering if anyone know why this was still the case?  Seems
>> like we have a 1Gb whole between TASK_SIZE & KERNELBASE.
>
> Two reasons: (a) PReP used to map PCI stuff with BATs in the
> 0x80000000 - 0xbfffffff region, and (b) some embedded ports with
> software-loaded TLBs test just the high bit of the address to
> determine whether to use the kernel or user page tables.

Can you explain (a) further -- I'm assuming the BAT mapping is 1:1  
for that region?

For (b) it looks like:
* 40x, 44x, fsl-booke compare against TASK_SIZE in their software  
handlers.
* 8xx still tests 0x80000000
* 6xx (603) compares against KERNELBASE

It would seem like we should set the default on 8xx & PReP to  
0x80000000 and not allow it to be modified since that will break the  
world and for everything else move it to match KERNELBASE.  Any  
issues with that?

- k

^ permalink raw reply

* Re: [PATCH] PPC: Remove redundant reference to non-existent CONFIG_BOOTIMG.
From: Dale Farnsworth @ 2007-10-07 13:50 UTC (permalink / raw)
  To: Robert P. J. Day; +Cc: Linux PPC Mailing List, Paul Mackerras
In-Reply-To: <Pine.LNX.4.64.0710070731410.32762@localhost.localdomain>

On Sun, Oct 07, 2007 at 07:34:57AM -0400, Robert P. J. Day wrote:
>   there is, AFAICT, no BOOTIMG Kconfig variable.  not to mention that
> there is no such include/linux/bootimg.h header file.
> 
>  arch/ppc/platforms/ev64360.c |    3 ---
>  arch/ppc/platforms/katana.c  |    3 ---
>  2 files changed, 6 deletions(-)

Ack.  Bootimg is long gone.

-Dale

^ permalink raw reply

* Re: [PATCH 09/15] [POWERPC] Promess Motion-PRO board support
From: Stephen Rothwell @ 2007-10-07 12:32 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C2F0.7010705@semihalf.com>

[-- Attachment #1: Type: text/plain, Size: 264 bytes --]

On Sun, 07 Oct 2007 13:28:48 +0200 Marian Balakowicz <m8@semihalf.com> wrote:
>
> +++ b/arch/powerpc/platforms/52xx/motionpro.c

Same comments again.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* Re: [PATCH 06/15] [POWERPC] CM5200 board support
From: Stephen Rothwell @ 2007-10-07 12:29 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C1E2.6020506@semihalf.com>

[-- Attachment #1: Type: text/plain, Size: 334 bytes --]

On Sun, 07 Oct 2007 13:24:18 +0200 Marian Balakowicz <m8@semihalf.com> wrote:
>
> +++ b/arch/powerpc/platforms/52xx/cm5200.c
>
> +#include <asm/prom.h>
> +#include <asm/of_platform.h>

Same comments as for tqm5200.c.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* Re: [POWERPC 03/15] [POWERPC] TQM5200 board support
From: Stephen Rothwell @ 2007-10-07 12:21 UTC (permalink / raw)
  To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <4708C0DA.2040606@semihalf.com>

[-- Attachment #1: Type: text/plain, Size: 754 bytes --]

On Sun, 07 Oct 2007 13:19:54 +0200 Marian Balakowicz <m8@semihalf.com> wrote:
>
> +++ b/arch/powerpc/platforms/52xx/tqm5200.c
>
> +#include <asm/prom.h>

You need this for the flattened device tree stuff, so good. However ...

> +#include <asm/of_platform.h>

You should not include this file.  And you actually don't use any of the
of_platform routines, but you do need linux/of.h for the of_find_ ...
routines.

> +void tqm5200_show_cpuinfo(struct seq_file *m)
> +{
> +	struct device_node* np = of_find_all_nodes(NULL);

Not sure about this - if you want to find the root node, then you should
probably do that explicitly.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* [PATCH] PPC: Remove redundant reference to non-existent CONFIG_BOOTIMG.
From: Robert P. J. Day @ 2007-10-07 11:34 UTC (permalink / raw)
  To: Linux PPC Mailing List; +Cc: Paul Mackerras


Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>

---

  there is, AFAICT, no BOOTIMG Kconfig variable.  not to mention that
there is no such include/linux/bootimg.h header file.


 arch/ppc/platforms/ev64360.c |    3 ---
 arch/ppc/platforms/katana.c  |    3 ---
 2 files changed, 6 deletions(-)

diff --git a/arch/ppc/platforms/ev64360.c b/arch/ppc/platforms/ev64360.c
index f8baf05..6765676 100644
--- a/arch/ppc/platforms/ev64360.c
+++ b/arch/ppc/platforms/ev64360.c
@@ -23,9 +23,6 @@
 #include <linux/mtd/physmap.h>
 #include <linux/mv643xx.h>
 #include <linux/platform_device.h>
-#ifdef CONFIG_BOOTIMG
-#include <linux/bootimg.h>
-#endif
 #include <asm/page.h>
 #include <asm/time.h>
 #include <asm/smp.h>
diff --git a/arch/ppc/platforms/katana.c b/arch/ppc/platforms/katana.c
index c289e9f..52f63e6 100644
--- a/arch/ppc/platforms/katana.c
+++ b/arch/ppc/platforms/katana.c
@@ -27,9 +27,6 @@
 #include <linux/mtd/physmap.h>
 #include <linux/mv643xx.h>
 #include <linux/platform_device.h>
-#ifdef CONFIG_BOOTIMG
-#include <linux/bootimg.h>
-#endif
 #include <asm/io.h>
 #include <asm/unistd.h>
 #include <asm/page.h>

-- 
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

^ permalink raw reply related

* [PATCH 15/15] [POWERPC] Init restart/halt/power_off machine hooks for Motion-PRO.
From: Marian Balakowicz @ 2007-10-07 11:36 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <47075FA7.3030108@semihalf.com>


Initialize restart/halt/power_off machine hooks in Promess
Motion-PRO board platform code.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 motionpro.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/powerpc/platforms/52xx/motionpro.c b/arch/powerpc/platforms/52xx/motionpro.c
index c1bcfd2..c6954c2 100644
--- a/arch/powerpc/platforms/52xx/motionpro.c
+++ b/arch/powerpc/platforms/52xx/motionpro.c
@@ -210,4 +210,7 @@ define_machine(motionpro) {
 	.get_irq	= mpc52xx_get_irq,
 	.show_cpuinfo	= motionpro_show_cpuinfo,
 	.calibrate_decr	= generic_calibrate_decr,
+	.restart	= mpc52xx_restart,
+	.halt		= mpc52xx_halt,
+	.power_off	= mpc52xx_power_off,
 };

^ permalink raw reply related

* [PATCH 14/15] [POWERPC] Init restart/halt/power_off machine hooks for CM5200.
From: Marian Balakowicz @ 2007-10-07 11:35 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <47075FA7.3030108@semihalf.com>


Initialize restart/halt/power_off machine hooks in CM5200 board
platform code.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 cm5200.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/powerpc/platforms/52xx/cm5200.c b/arch/powerpc/platforms/52xx/cm5200.c
index 9d3b1f2..9e18bfe 100644
--- a/arch/powerpc/platforms/52xx/cm5200.c
+++ b/arch/powerpc/platforms/52xx/cm5200.c
@@ -158,4 +158,7 @@ define_machine(cm5200) {
 	.get_irq	= mpc52xx_get_irq,
 	.show_cpuinfo	= cm5200_show_cpuinfo,
 	.calibrate_decr	= generic_calibrate_decr,
+	.restart	= mpc52xx_restart,
+	.halt		= mpc52xx_halt,
+	.power_off	= mpc52xx_power_off,
 };

^ permalink raw reply related

* [PATCH 13/15] [POWERPC] Init restart/halt/power_off machine hooks for TQM5200.
From: Marian Balakowicz @ 2007-10-07 11:32 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <47075FA7.3030108@semihalf.com>


Initialize restart/halt/power_off machine hooks in TQM5200 board
platform code.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 tqm5200.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/powerpc/platforms/52xx/tqm5200.c b/arch/powerpc/platforms/52xx/tqm5200.c
index 780b79f..09151d6 100644
--- a/arch/powerpc/platforms/52xx/tqm5200.c
+++ b/arch/powerpc/platforms/52xx/tqm5200.c
@@ -171,4 +171,7 @@ define_machine(tqm5200) {
 	.get_irq	= mpc52xx_get_irq,
 	.show_cpuinfo	= tqm5200_show_cpuinfo,
 	.calibrate_decr	= generic_calibrate_decr,
+	.restart	= mpc52xx_restart,
+	.halt		= mpc52xx_halt,
+	.power_off	= mpc52xx_power_off,
 };

^ permalink raw reply related

* [PATCH 12/15] [POWERPC] Add mpc52xx_restart(), mpc52xx_halt(), mpc52xx_power_off().
From: Marian Balakowicz @ 2007-10-07 11:32 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <47075FA7.3030108@semihalf.com>


Add common MPC5200 helper routines: mpc52xx_restart(), mpc52xx_halt(),
mpc52xx_power_off().

This patch relies on Sascha Hauer's patch published in:
http://patchwork.ozlabs.org/linuxppc/patch?id=8910.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---

 arch/powerpc/platforms/52xx/mpc52xx_common.c |   45 +++++++++++++++++++++++++++
 include/asm-powerpc/mpc52xx.h                |    7 ++++
 2 files changed, 52 insertions(+)

diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index b1cd7b0..e7087d7 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -88,6 +88,14 @@ mpc52xx_find_ipb_freq(struct device_node *node)
 }
 EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
 
+/*
+ * This variable is mapped in mpc52xx_setup_cpu() by a call to
+ * mpc52xx_find_and_map(), and used in mpc52xx_restart(). This is because
+ * mpc52xx_restart() can be called from interrupt context (e.g., watchdog
+ * interrupt handler), and mpc52xx_find_and_map() (ioremap() to be exact)
+ * can't be called from interrupt context.
+ */
+volatile struct mpc52xx_gpt *mpc52xx_gpt0 = NULL;
 
 void __init
 mpc52xx_setup_cpu(void)
@@ -95,6 +103,9 @@ mpc52xx_setup_cpu(void)
 	struct mpc52xx_cdm  __iomem *cdm;
 	struct mpc52xx_xlb  __iomem *xlb;
 
+	/* mpc52xx_gpt0 is mapped here and used in mpc52xx_restart */
+	mpc52xx_gpt0 = mpc52xx_find_and_map("mpc5200-gpt");
+
 	/* Map zones */
 	cdm = mpc52xx_find_and_map("mpc5200-cdm");
 	xlb = mpc52xx_find_and_map("mpc5200-xlb");
@@ -138,3 +149,37 @@ mpc52xx_declare_of_platform_devices(void)
 			"Error while probing of_platform bus\n");
 }
 
+void
+mpc52xx_restart(char *cmd)
+{
+	local_irq_disable();
+
+	/* Turn on the watchdog and wait for it to expire. It effectively
+	  does a reset */
+	if (mpc52xx_gpt0) {
+		out_be32(&mpc52xx_gpt0->mode, 0x00000000);
+		out_be32(&mpc52xx_gpt0->count, 0x000000ff);
+		out_be32(&mpc52xx_gpt0->mode, 0x00009004);
+	} else
+		printk("mpc52xx_restart: Can't access gpt. "
+			"Restart impossible, system halted\n");
+
+	while (1);
+}
+
+void
+mpc52xx_halt(void)
+{
+	local_irq_disable();
+
+	while (1);
+}
+
+void
+mpc52xx_power_off(void)
+{
+	/* By default we don't have any way of shut down.
+	   If a specific board wants to, it can set the power down
+	   code to any hardware implementation dependent code */
+	mpc52xx_halt();
+}
diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h
index a431798..8dfb4de 100644
--- a/include/asm-powerpc/mpc52xx.h
+++ b/include/asm-powerpc/mpc52xx.h
@@ -104,6 +104,9 @@ struct mpc52xx_gpt {
 	u32 status;		/* GPTx + 0X0c */
 };
 
+/* Static instance of GPT0 */
+extern volatile struct mpc52xx_gpt *mpc52xx_gpt0;
+
 /* GPIO */
 struct mpc52xx_gpio {
 	u32 port_config;	/* GPIO + 0x00 */
@@ -257,6 +260,10 @@ extern unsigned int mpc52xx_get_irq(void);
 
 extern int __init mpc52xx_add_bridge(struct device_node *node);
 
+extern void mpc52xx_restart(char *cmd);
+extern void mpc52xx_halt(void);
+extern void mpc52xx_power_off(void);
+
 #endif /* __ASSEMBLY__ */
 
 #ifdef CONFIG_PM

^ permalink raw reply related


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