LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] sysdev,mv64x60: early console fix
From: Dale Farnsworth @ 2008-04-21 21:32 UTC (permalink / raw)
  To: Remi Machet; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <1208811777.5789.86.camel@pcds-ts102.slac.stanford.edu>

On Mon, Apr 21, 2008 at 02:02:56PM -0700, Remi Machet wrote:
> The MPSC driver and prpmc2800.dts have been modified to
> use property 'cell-index' as the serial port number but 
> the early serial console driver for the mv64x60 has not 
> been modified to use this new property.
> 
> Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)

Acked-by: Dale Farnsworth <dale@farnsworth.org>

^ permalink raw reply

* Re: [PATCH] [PPC] Remove mpc8272 ads board from arch/ppc
From: Segher Boessenkool @ 2008-04-21 21:25 UTC (permalink / raw)
  To: Grant Likely; +Cc: Scott Wood, linuxppc-dev
In-Reply-To: <fa686aa40804211416l5a366f3dl3d91acbea00b539f@mail.gmail.com>

>>  The last time arch/ppc built for me (a few days ago), it got
>>  535 warnings.  I don't think anyone would notice one more.
>>  Also, whoever doesn't yet know arch/ppc will be going away
>>  has been living under a rock for the last two years.
>
> You say that as if it is an uncommon living condition.

Oh sorry.  "Under a rock without any connection to the intertubes".

:-)


Segher

^ permalink raw reply

* Re: [PATCH] [POWERPC] ppc32: Fix errata for 603 CPUs
From: Benjamin Herrenschmidt @ 2008-04-21 21:22 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <Pine.LNX.4.64.0804211457010.8003@blarg.am.freescale.net>


> 
>  _GLOBAL(__setup_cpu_603)
> -	b	setup_common_caches
> +	mflr	r4
> +BEGIN_FTR_SECTION
> +	bl	__init_fpu_registers
> +END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
> +	bl	__init_fpu_registers
> +	bl	setup_common_caches
> +	mtlr	r4
> +	blr
>  _GLOBAL(__setup_cpu_604)
>  	mflr	r4
>  	bl	setup_common_cache

Has the feature fixup been perform yet when __setup_* is called ?

Ben.

^ permalink raw reply

* Re: [PATCH v2] [POWERPC] 4xx: Add endpoint support to 4xx PCIe driver
From: Benjamin Herrenschmidt @ 2008-04-21 21:16 UTC (permalink / raw)
  To: Stefan Roese; +Cc: linuxppc-dev
In-Reply-To: <1208789670-28909-1-git-send-email-sr@denx.de>


On Mon, 2008-04-21 at 16:54 +0200, Stefan Roese wrote:

> --------------
> - As suggested by Benjamin Herrenschmidt, don't determine endpoint mode
>   by looking at the already configured PCIe port state, but evaluate
>   the device_type property instead. This makes it possible for boards
>   without a previously run PCIe configuration (e.g. U-Boot) to configure
>   a port as endpoint as well.
> 
> - Don't map the big external config space upon endpoint configuration.
> 
> - Introduce "vendor-id" and "device-id" properties to be written to
>   the host bridge.

and class-code too ?

Appart from that, I'll have a quick look at the patch later today but at
first it looks good.

Cheers,
Ben.

^ permalink raw reply

* Re: [PATCH] [PPC] Remove mpc8272 ads board from arch/ppc
From: Grant Likely @ 2008-04-21 21:16 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Scott Wood, linuxppc-dev
In-Reply-To: <00248a3c226d44aa352ebb69894183f4@kernel.crashing.org>

On Mon, Apr 21, 2008 at 3:10 PM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
>
> > Speaking of making it obvious, is it time to put a #warning in some
> > prominent arch/ppc header?
> >
>
>  The last time arch/ppc built for me (a few days ago), it got
>  535 warnings.  I don't think anyone would notice one more.
>  Also, whoever doesn't yet know arch/ppc will be going away
>  has been living under a rock for the last two years.

You say that as if it is an uncommon living condition.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply

* Re: [PATCH 4/5] [POWERPC] QE: implement support for the GPIO LIB API
From: Grant Likely @ 2008-04-21 21:15 UTC (permalink / raw)
  To: avorontsov; +Cc: David Brownell, linuxppc-dev
In-Reply-To: <20080421164128.GA28561@polina.dev.rtsoft.ru>

On Mon, Apr 21, 2008 at 10:41 AM, Anton Vorontsov
<avorontsov@ru.mvista.com> wrote:
> On Mon, Apr 21, 2008 at 08:58:09AM -0600, Grant Likely wrote:
>  > Its not great.  It has a boot time impact for every platform compiled
>  > into the kernel.  The problem gets worse every time another block of
>  > code uses this method.  Personally I prefer platform code calling it
>  > explicitly.
>  >
>  > Making it an of_platform device would also eliminate that problem, but
>  > you'd need a method to synchronize the driver with its users.
>  >
>  > I'm not going to raise a big stink about it, but the issue should not
>  > be ignored.
>
>  Heh.. how QE GPIO is different from FSL GTM then? Should I call
>  fsl_gtm_init() from the board file too? For the every board? I do
>  believe that years later someone will show up with something like this:
>
>
>   From: J. Random Hacker
>   Subject: [POWERPC] cleanup board initialization code
>
>   This patch removes vast amount of machine_arch_initcall()s that were
>   used to solely initialize some hardware, like this:
>
>   qe_add_gpio_chips();
>   fsl_gtm_init();
>   fsl_spi_init();

Or have a soc-level helper function for calling them for you; but yes.

And, no, we shouldn't have a vast array of individual initcalls
because the platform code shouldn't be that large.  As much as
possible, multiple boards should be supported by the same platform
code.  I argue that most boards using the same SoC should use the same
platform code. (see platforms/52xx/mpc5200_simple.c)

Individual calls has the added advantage that if a board port needs
those functions to *not* be called (for whatever reason) then it has
the ability to not call them.

It is for the same reason that the platform code is responsible for
calling of_platform_bus_probe() instead of it being an initcall; it
give the platform code control over the device registrations.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply

* Re: pci issue - wrong detection of pci ressources
From: Benjamin Herrenschmidt @ 2008-04-21 21:13 UTC (permalink / raw)
  To: Christian Ehrhardt; +Cc: Hollis Blanchard, linuxppc-dev
In-Reply-To: <480C80B6.30904@linux.vnet.ibm.com>


On Mon, 2008-04-21 at 13:55 +0200, Christian Ehrhardt wrote:
> Benjamin Herrenschmidt wrote:
> >> Yes you're right. Early at the pci initialization are errors of the allocation for pi ressources.
> >> And that are exactly the ressources failing later, so that pci initialization seem to be the reason for my problem.
> >> Was there any simple solution (e.g. just somehow increase memory reserved for pci) when you came across that issue Johan ?
> > 
> > Hrm... I was expecting to see a lot more output here, make sure you have
> > "debug" on your command line (or enable early debug output, same
> > effect).
> 
> There is nothing more even with debug in kernel command line.

Weird. pcibios_fixup_resources() should have printed things that I
didn't see in your log, which is why I asked...

I -think- your card is just asking too much, more than what we know how
to assign, but that doesn't explain why it used to work. I'll have to
dig a bit more.

You can assign more by changing the "ranges" property in the .dts, I
would expect the 44x PCI code I wrote to automatically adjust.

Cheers,
Ben.

^ permalink raw reply

* Re: [PATCH] [PPC] Remove mpc8272 ads board from arch/ppc
From: Segher Boessenkool @ 2008-04-21 21:10 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev
In-Reply-To: <20080421182953.GB6111@ld0162-tx32.am.freescale.net>

> Speaking of making it obvious, is it time to put a #warning in some
> prominent arch/ppc header?

The last time arch/ppc built for me (a few days ago), it got
535 warnings.  I don't think anyone would notice one more.
Also, whoever doesn't yet know arch/ppc will be going away
has been living under a rock for the last two years.


Segher

^ permalink raw reply

* Re: [PATCH 5/5] [POWERPC] 83xx: new board support: MPC8360E-RDK
From: Grant Likely @ 2008-04-21 21:05 UTC (permalink / raw)
  To: Anton Vorontsov; +Cc: linuxppc-dev
In-Reply-To: <20080418191009.GE4407@polina.dev.rtsoft.ru>

On Fri, Apr 18, 2008 at 1:10 PM, Anton Vorontsov
<avorontsov@ru.mvista.com> wrote:
> This is patch adds board file, device tree, and defconfig for the new
>  board, made by Freescale Semiconductor Inc. and Logic Product Development.

>   arch/powerpc/platforms/83xx/mpc836x_rdk.c       |  106 +++

I don't see anything exotic in here.  This can be merged with one of
the other non-exotic mpc83xx board files.  The dts parsing takes care
of the differences.

Cheers,
g.


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

>   5 files changed, 1601 insertions(+), 0 deletions(-)
>   create mode 100644 arch/powerpc/boot/dts/mpc836x_rdk.dts
>   create mode 100644 arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
>   create mode 100644 arch/powerpc/platforms/83xx/mpc836x_rdk.c
>
>  diff --git a/arch/powerpc/boot/dts/mpc836x_rdk.dts b/arch/powerpc/boot/dts/mpc836x_rdk.dts
>  new file mode 100644
>  index 0000000..39a7dcb
>  --- /dev/null
>  +++ b/arch/powerpc/boot/dts/mpc836x_rdk.dts
>  @@ -0,0 +1,394 @@
>  +/*
>  + * MPC8360E RDK Device Tree Source
>  + *
>  + * Copyright 2006 Freescale Semiconductor Inc.
>  + * Copyright 2007-2008 MontaVista Software, Inc.
>  + *
>  + * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
>  + *
>  + * 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.
>  + */
>  +
>  +/dts-v1/;
>  +
>  +/ {
>  +       #address-cells = <1>;
>  +       #size-cells = <1>;
>  +       compatible = "fsl,mpc8360rdk";
>  +
>  +       aliases {
>  +               serial0 = &serial0;
>  +               serial1 = &serial1;
>  +               serial2 = &serial2;
>  +               serial3 = &serial3;
>  +               ethernet0 = &enet0;
>  +               ethernet1 = &enet1;
>  +               ethernet2 = &enet2;
>  +               ethernet3 = &enet3;
>  +               pci0 = &pci0;
>  +       };
>  +
>  +       cpus {
>  +               #address-cells = <1>;
>  +               #size-cells = <0>;
>  +
>  +               PowerPC,8360@0 {
>  +                       device_type = "cpu";
>  +                       reg = <0>;
>  +                       d-cache-line-size = <32>;
>  +                       i-cache-line-size = <32>;
>  +                       d-cache-size = <32768>;
>  +                       i-cache-size = <32768>;
>  +                       /* filled by u-boot */
>  +                       timebase-frequency = <0>;
>  +                       bus-frequency = <0>;
>  +                       clock-frequency = <0>;
>  +               };
>  +       };
>  +
>  +       memory {
>  +               device_type = "memory";
>  +               /* filled by u-boot */
>  +               reg = <0 0>;
>  +       };
>  +
>  +       soc@e0000000 {
>  +               #address-cells = <1>;
>  +               #size-cells = <1>;
>  +               device_type = "soc";
>  +               compatible = "fsl,mpc8360-immr", "fsl,immr", "fsl,soc",
>  +                            "simple-bus";
>  +               ranges = <0 0xe0000000 0x200000>;
>  +               reg = <0xe0000000 0x200>;
>  +               /* filled by u-boot */
>  +               bus-frequency = <0>;
>  +
>  +               wdt@200 {
>  +                       compatible = "mpc83xx_wdt";
>  +                       reg = <0x200 0x100>;
>  +               };
>  +
>  +               i2c@3000 {
>  +                       #address-cells = <1>;
>  +                       #size-cells = <0>;
>  +                       cell-index = <0>;
>  +                       compatible = "fsl-i2c";
>  +                       reg = <0x3000 0x100>;
>  +                       interrupts = <14 8>;
>  +                       interrupt-parent = <&ipic>;
>  +                       dfsrr;
>  +               };
>  +
>  +               i2c@3100 {
>  +                       #address-cells = <1>;
>  +                       #size-cells = <0>;
>  +                       cell-index = <1>;
>  +                       compatible = "fsl-i2c";
>  +                       reg = <0x3100 0x100>;
>  +                       interrupts = <16 8>;
>  +                       interrupt-parent = <&ipic>;
>  +                       dfsrr;
>  +               };
>  +
>  +               serial0: serial@4500 {
>  +                       device_type = "serial";
>  +                       compatible = "ns16550";
>  +                       reg = <0x4500 0x100>;
>  +                       interrupts = <9 8>;
>  +                       interrupt-parent = <&ipic>;
>  +                       /* filled by u-boot */
>  +                       clock-frequency = <0>;
>  +               };
>  +
>  +               serial1: serial@4600 {
>  +                       device_type = "serial";
>  +                       compatible = "ns16550";
>  +                       reg = <0x4600 0x100>;
>  +                       interrupts = <10 8>;
>  +                       interrupt-parent = <&ipic>;
>  +                       /* filled by u-boot */
>  +                       clock-frequency = <0>;
>  +               };
>  +
>  +               crypto@30000 {
>  +                       compatible = "fsl,sec2-crypto";
>  +                       reg = <0x30000 0x10000>;
>  +                       interrupts = <11 8>;
>  +                       interrupt-parent = <&ipic>;
>  +                       num-channels = <4>;
>  +                       channel-fifo-len = <24>;
>  +                       exec-units-mask = <0x7e>;
>  +                       /*
>  +                        * desc mask is for rev1.x, we need runtime fixup
>  +                        * for >=2.x
>  +                        */
>  +                       descriptor-types-mask = <0x1010ebf>;
>  +               };
>  +
>  +               ipic: interrupt-controller@700 {
>  +                       #address-cells = <0>;
>  +                       #interrupt-cells = <2>;
>  +                       compatible = "fsl,pq2pro-pic", "fsl,ipic";
>  +                       interrupt-controller;
>  +                       reg = <0x700 0x100>;
>  +               };
>  +
>  +               qe_pio_b: gpio-controller@1418 {
>  +                       #gpio-cells = <2>;
>  +                       compatible = "fsl,qe-pario-bank";
>  +                       reg = <0x1418 0x18>;
>  +                       gpio-controller;
>  +               };
>  +
>  +               qe_pio_e: gpio-controller@1460 {
>  +                       #gpio-cells = <2>;
>  +                       compatible = "fsl,qe-pario-bank";
>  +                       reg = <0x1460 0x18>;
>  +                       gpio-controller;
>  +               };
>  +
>  +               qe@100000 {
>  +                       #address-cells = <1>;
>  +                       #size-cells = <1>;
>  +                       device_type = "qe";
>  +                       compatible = "fsl,qe", "simple-bus";
>  +                       ranges = <0 0x100000 0x100000>;
>  +                       reg = <0x100000 0x480>;
>  +                       /* filled by u-boot */
>  +                       clock-frequency = <0>;
>  +                       bus-frequency = <0>;
>  +                       brg-frequency = <0>;
>  +
>  +                       muram@10000 {
>  +                               #address-cells = <1>;
>  +                               #size-cells = <1>;
>  +                               compatible = "fsl,qe-muram", "fsl,cpm-muram";
>  +                               ranges = <0 0x10000 0xc000>;
>  +
>  +                               data-only@0 {
>  +                                       compatible = "fsl,qe-muram-data",
>  +                                                    "fsl,cpm-muram-data";
>  +                                       reg = <0 0xc000>;
>  +                               };
>  +                       };
>  +
>  +                       timer@440 {
>  +                               compatible = "fsl,qe-gtm", "fsl,gtm";
>  +                               reg = <0x440 0x40>;
>  +                               interrupts = <12 13 14 15>;
>  +                               interrupt-parent = <&qeic>;
>  +                               /* filled by u-boot */
>  +                               clock-frequency = <0>;
>  +                       };
>  +
>  +                       spi@4c0 {
>  +                               cell-index = <0>;
>  +                               compatible = "fsl,spi";
>  +                               reg = <0x4c0 0x40>;
>  +                               interrupts = <2>;
>  +                               interrupt-parent = <&qeic>;
>  +                               mode = "cpu-qe";
>  +                       };
>  +
>  +                       spi@500 {
>  +                               cell-index = <1>;
>  +                               compatible = "fsl,spi";
>  +                               reg = <0x500 0x40>;
>  +                               interrupts = <1>;
>  +                               interrupt-parent = <&qeic>;
>  +                               mode = "cpu-qe";
>  +                       };
>  +
>  +                       enet0: ucc@2000 {
>  +                               device_type = "network";
>  +                               compatible = "ucc_geth";
>  +                               cell-index = <1>;
>  +                               reg = <0x2000 0x200>;
>  +                               interrupts = <32>;
>  +                               interrupt-parent = <&qeic>;
>  +                               rx-clock-name = "none";
>  +                               tx-clock-name = "clk9";
>  +                               phy-handle = <&phy2>;
>  +                               phy-connection-type = "rgmii-rxid";
>  +                               /* filled by u-boot */
>  +                               local-mac-address = [ 00 00 00 00 00 00 ];
>  +                       };
>  +
>  +                       enet1: ucc@3000 {
>  +                               device_type = "network";
>  +                               compatible = "ucc_geth";
>  +                               cell-index = <2>;
>  +                               reg = <0x3000 0x200>;
>  +                               interrupts = <33>;
>  +                               interrupt-parent = <&qeic>;
>  +                               rx-clock-name = "none";
>  +                               tx-clock-name = "clk4";
>  +                               phy-handle = <&phy4>;
>  +                               phy-connection-type = "rgmii-rxid";
>  +                               /* filled by u-boot */
>  +                               local-mac-address = [ 00 00 00 00 00 00 ];
>  +                       };
>  +
>  +                       enet2: ucc@2600 {
>  +                               device_type = "network";
>  +                               compatible = "ucc_geth";
>  +                               cell-index = <7>;
>  +                               reg = <0x2600 0x200>;
>  +                               interrupts = <42>;
>  +                               interrupt-parent = <&qeic>;
>  +                               rx-clock-name = "clk20";
>  +                               tx-clock-name = "clk19";
>  +                               phy-handle = <&phy1>;
>  +                               phy-connection-type = "mii";
>  +                               /* filled by u-boot */
>  +                               local-mac-address = [ 00 00 00 00 00 00 ];
>  +                       };
>  +
>  +                       enet3: ucc@3200 {
>  +                               device_type = "network";
>  +                               compatible = "ucc_geth";
>  +                               cell-index = <4>;
>  +                               reg = <0x3200 0x200>;
>  +                               interrupts = <35>;
>  +                               interrupt-parent = <&qeic>;
>  +                               rx-clock-name = "clk8";
>  +                               tx-clock-name = "clk7";
>  +                               phy-handle = <&phy3>;
>  +                               phy-connection-type = "mii";
>  +                               /* filled by u-boot */
>  +                               local-mac-address = [ 00 00 00 00 00 00 ];
>  +                       };
>  +
>  +                       mdio@2120 {
>  +                               #address-cells = <1>;
>  +                               #size-cells = <0>;
>  +                               compatible = "fsl,ucc-mdio";
>  +                               reg = <0x2120 0x18>;
>  +
>  +                               phy1: ethernet-phy@1 {
>  +                                       device_type = "ethernet-phy";
>  +                                       compatible = "national,DP83848VV";
>  +                                       reg = <1>;
>  +                               };
>  +
>  +                               phy2: ethernet-phy@2 {
>  +                                       device_type = "ethernet-phy";
>  +                                       compatible = "broadcom,BCM5481UA2KMLG";
>  +                                       reg = <2>;
>  +                               };
>  +
>  +                               phy3: ethernet-phy@3 {
>  +                                       device_type = "ethernet-phy";
>  +                                       compatible = "national,DP83848VV";
>  +                                       reg = <3>;
>  +                               };
>  +
>  +                               phy4: ethernet-phy@4 {
>  +                                       device_type = "ethernet-phy";
>  +                                       compatible = "broadcom,BCM5481UA2KMLG";
>  +                                       reg = <4>;
>  +                               };
>  +                       };
>  +
>  +                       serial2: ucc@2400 {
>  +                               device_type = "serial";
>  +                               compatible = "ucc_uart";
>  +                               reg = <0x2400 0x200>;
>  +                               cell-index = <5>;
>  +                               port-number = <0>;
>  +                               rx-clock-name = "brg7";
>  +                               tx-clock-name = "brg8";
>  +                               interrupts = <40>;
>  +                               interrupt-parent = <&qeic>;
>  +                               soft-uart;
>  +                       };
>  +
>  +                       serial3: ucc@3400 {
>  +                               device_type = "serial";
>  +                               compatible = "ucc_uart";
>  +                               reg = <0x3400 0x200>;
>  +                               cell-index = <6>;
>  +                               port-number = <1>;
>  +                               rx-clock-name = "brg13";
>  +                               tx-clock-name = "brg14";
>  +                               interrupts = <41>;
>  +                               interrupt-parent = <&qeic>;
>  +                               soft-uart;
>  +                       };
>  +
>  +                       qeic: interrupt-controller@80 {
>  +                               #address-cells = <0>;
>  +                               #interrupt-cells = <1>;
>  +                               compatible = "fsl,qe-ic";
>  +                               interrupt-controller;
>  +                               reg = <0x80 0x80>;
>  +                               big-endian;
>  +                               interrupts = <32 8 33 8>;
>  +                               interrupt-parent = <&ipic>;
>  +                       };
>  +               };
>  +       };
>  +
>  +       localbus@e0005000 {
>  +               #address-cells = <2>;
>  +               #size-cells = <1>;
>  +               compatible = "fsl,mpc8360-localbus", "fsl,pq2pro-localbus",
>  +                            "simple-bus";
>  +               reg = <0xe0005000 0xd8>;
>  +               ranges = <0 0 0xff800000 0x0800000
>  +                         1 0 0x60000000 0x0001000
>  +                         2 0 0x70000000 0x4000000>;
>  +
>  +               flash@0,0 {
>  +                       compatible = "intel,PC28F640P30T85", "cfi-flash";
>  +                       reg = <0 0 0x800000>;
>  +                       bank-width = <2>;
>  +                       device-width = <1>;
>  +               };
>  +
>  +               display@2,0 {
>  +                       device_type = "display";
>  +                       compatible = "fujitsu,MB86277", "fujitsu,mint";
>  +                       reg = <2 0 0x4000000>;
>  +                       fujitsu,sh3;
>  +                       little-endian;
>  +                       /* filled by u-boot */
>  +                       address = <0>;
>  +                       depth = <0>;
>  +                       width = <0>;
>  +                       height = <0>;
>  +                       linebytes = <0>;
>  +                       /* linux,opened; - added by uboot */
>  +               };
>  +       };
>  +
>  +       pci0: pci@e0008500 {
>  +               #address-cells = <3>;
>  +               #size-cells = <2>;
>  +               #interrupt-cells = <1>;
>  +               device_type = "pci";
>  +               compatible = "fsl,mpc8360-pci", "fsl,mpc8349-pci";
>  +               reg = <0xe0008500 0x100>;
>  +               ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000
>  +                         0x42000000 0 0x80000000 0x80000000 0 0x10000000
>  +                         0x01000000 0 0xe0300000 0xe0300000 0 0x00100000>;
>  +               interrupts = <66 8>;
>  +               interrupt-parent = <&ipic>;
>  +               interrupt-map-mask = <0xf800 0 0 7>;
>  +               interrupt-map = </* miniPCI0 IDSEL 0x14 AD20 */
>  +                                0xa000 0 0 1 &ipic 18 8
>  +                                0xa000 0 0 2 &ipic 19 8
>  +
>  +                                /* PCI1 IDSEL 0x15 AD21 */
>  +                                0xa800 0 0 1 &ipic 19 8
>  +                                0xa800 0 0 2 &ipic 20 8
>  +                                0xa800 0 0 3 &ipic 21 8
>  +                                0xa800 0 0 4 &ipic 18 8>;
>  +               /* filled by u-boot */
>  +               bus-range = <0 0>;
>  +               clock-frequency = <0>;
>  +       };
>  +};
>  diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
>  new file mode 100644
>  index 0000000..f8bde7b
>  --- /dev/null
>  +++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
>  @@ -0,0 +1,1092 @@
>  +#
>  +# Automatically generated make config: don't edit
>  +# Linux kernel version: 2.6.25-rc9
>  +# Fri Apr 18 22:25:18 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_FSL_EMB_PERFMON is not set
>  +CONFIG_PPC_STD_MMU=y
>  +CONFIG_PPC_STD_MMU_32=y
>  +# CONFIG_PPC_MM_SLICES is not set
>  +# CONFIG_SMP is not set
>  +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_RWSEM_XCHGADD_ALGORITHM=y
>  +CONFIG_ARCH_HAS_ILOG2_U32=y
>  +CONFIG_GENERIC_HWEIGHT=y
>  +CONFIG_GENERIC_CALIBRATE_DELAY=y
>  +CONFIG_GENERIC_FIND_NEXT_BIT=y
>  +CONFIG_GENERIC_GPIO=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 is not set
>  +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_BROKEN_ON_SMP=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 is not set
>  +# CONFIG_BSD_PROCESS_ACCT is not set
>  +# CONFIG_TASKSTATS is not set
>  +# CONFIG_AUDIT is not set
>  +# CONFIG_IKCONFIG is not set
>  +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 is not set
>  +# 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_KALLSYMS 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 is not set
>  +CONFIG_SIGNALFD=y
>  +CONFIG_TIMERFD=y
>  +CONFIG_EVENTFD=y
>  +CONFIG_SHMEM=y
>  +CONFIG_VM_EVENT_COUNTERS=y
>  +CONFIG_SLUB_DEBUG=y
>  +# CONFIG_SLAB is not set
>  +CONFIG_SLUB=y
>  +# CONFIG_SLOB is not set
>  +# CONFIG_PROFILING is not set
>  +# CONFIG_MARKERS is not set
>  +CONFIG_HAVE_OPROFILE=y
>  +CONFIG_HAVE_KPROBES=y
>  +CONFIG_HAVE_KRETPROBES=y
>  +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_UNLOAD=y
>  +# CONFIG_MODULE_FORCE_UNLOAD is not set
>  +# CONFIG_MODVERSIONS is not set
>  +# CONFIG_MODULE_SRCVERSION_ALL is not set
>  +# CONFIG_KMOD is not set
>  +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=y
>  +# CONFIG_DEFAULT_DEADLINE is not set
>  +# CONFIG_DEFAULT_CFQ is not set
>  +# CONFIG_DEFAULT_NOOP is not set
>  +CONFIG_DEFAULT_IOSCHED="anticipatory"
>  +CONFIG_CLASSIC_RCU=y
>  +
>  +#
>  +# Platform support
>  +#
>  +# CONFIG_PPC_MULTIPLATFORM is not set
>  +# CONFIG_PPC_82xx is not set
>  +CONFIG_PPC_83xx=y
>  +# CONFIG_PPC_86xx is not set
>  +# 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_MPC83xx=y
>  +# CONFIG_MPC831x_RDB is not set
>  +# CONFIG_MPC832x_MDS is not set
>  +# CONFIG_MPC832x_RDB is not set
>  +# CONFIG_MPC834x_MDS is not set
>  +# CONFIG_MPC834x_ITX is not set
>  +# CONFIG_MPC836x_MDS is not set
>  +CONFIG_MPC836x_RDK=y
>  +# CONFIG_MPC837x_MDS is not set
>  +# CONFIG_MPC837x_RDB is not set
>  +# CONFIG_SBC834x is not set
>  +CONFIG_IPIC=y
>  +# CONFIG_MPIC is not set
>  +# 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_PPC_970_NAP is not set
>  +# CONFIG_PPC_INDIRECT_IO is not set
>  +# CONFIG_GENERIC_IOMAP is not set
>  +# CONFIG_CPU_FREQ is not set
>  +CONFIG_QUICC_ENGINE=y
>  +# CONFIG_FSL_ULI1575 is not set
>  +
>  +#
>  +# Kernel options
>  +#
>  +# CONFIG_HIGHMEM is not set
>  +# CONFIG_TICK_ONESHOT is not set
>  +# CONFIG_NO_HZ is not set
>  +# CONFIG_HIGH_RES_TIMERS is not set
>  +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
>  +# CONFIG_HZ_100 is not set
>  +CONFIG_HZ_250=y
>  +# CONFIG_HZ_300 is not set
>  +# CONFIG_HZ_1000 is not set
>  +CONFIG_HZ=250
>  +# CONFIG_SCHED_HRTICK is not set
>  +CONFIG_PREEMPT_NONE=y
>  +# CONFIG_PREEMPT_VOLUNTARY is not set
>  +# CONFIG_PREEMPT is not set
>  +CONFIG_BINFMT_ELF=y
>  +# CONFIG_BINFMT_MISC is not set
>  +# CONFIG_IOMMU_HELPER is not set
>  +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
>  +CONFIG_ARCH_HAS_WALK_MEMORY=y
>  +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
>  +CONFIG_ARCH_FLATMEM_ENABLE=y
>  +CONFIG_ARCH_POPULATES_NODE_MAP=y
>  +CONFIG_SELECT_MEMORY_MODEL=y
>  +CONFIG_FLATMEM_MANUAL=y
>  +# CONFIG_DISCONTIGMEM_MANUAL is not set
>  +# CONFIG_SPARSEMEM_MANUAL is not set
>  +CONFIG_FLATMEM=y
>  +CONFIG_FLAT_NODE_MEM_MAP=y
>  +# CONFIG_SPARSEMEM_STATIC is not set
>  +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
>  +CONFIG_SPLIT_PTLOCK_CPUS=4
>  +# CONFIG_RESOURCES_64BIT is not set
>  +CONFIG_ZONE_DMA_FLAG=1
>  +CONFIG_BOUNCE=y
>  +CONFIG_VIRT_TO_BUS=y
>  +CONFIG_FORCE_MAX_ZONEORDER=11
>  +CONFIG_PROC_DEVICETREE=y
>  +# CONFIG_CMDLINE_BOOL is not set
>  +# CONFIG_PM is not set
>  +CONFIG_SECCOMP=y
>  +CONFIG_ISA_DMA_API=y
>  +
>  +#
>  +# Bus options
>  +#
>  +CONFIG_ZONE_DMA=y
>  +CONFIG_GENERIC_ISA_DMA=y
>  +CONFIG_PPC_INDIRECT_PCI=y
>  +CONFIG_FSL_SOC=y
>  +CONFIG_PCI=y
>  +CONFIG_PCI_DOMAINS=y
>  +CONFIG_PCI_SYSCALL=y
>  +# CONFIG_PCIEPORTBUS is not set
>  +CONFIG_ARCH_SUPPORTS_MSI=y
>  +# CONFIG_PCI_MSI is not set
>  +CONFIG_PCI_LEGACY=y
>  +# CONFIG_PCCARD is not set
>  +# CONFIG_HOTPLUG_PCI is not set
>  +
>  +#
>  +# Advanced setup
>  +#
>  +# CONFIG_ADVANCED_OPTIONS is not set
>  +
>  +#
>  +# Default settings for advanced configuration options are used
>  +#
>  +CONFIG_HIGHMEM_START=0xfe000000
>  +CONFIG_LOWMEM_SIZE=0x30000000
>  +CONFIG_KERNEL_START=0xc0000000
>  +CONFIG_TASK_SIZE=0xc0000000
>  +
>  +#
>  +# Networking
>  +#
>  +CONFIG_NET=y
>  +
>  +#
>  +# Networking options
>  +#
>  +CONFIG_PACKET=y
>  +# CONFIG_PACKET_MMAP is not set
>  +CONFIG_UNIX=y
>  +CONFIG_XFRM=y
>  +# CONFIG_XFRM_USER is not set
>  +# CONFIG_XFRM_SUB_POLICY is not set
>  +# CONFIG_XFRM_MIGRATE is not set
>  +# CONFIG_XFRM_STATISTICS is not set
>  +# CONFIG_NET_KEY is not set
>  +CONFIG_INET=y
>  +CONFIG_IP_MULTICAST=y
>  +# CONFIG_IP_ADVANCED_ROUTER is not set
>  +CONFIG_IP_FIB_HASH=y
>  +CONFIG_IP_PNP=y
>  +CONFIG_IP_PNP_DHCP=y
>  +CONFIG_IP_PNP_BOOTP=y
>  +# CONFIG_IP_PNP_RARP is not set
>  +# CONFIG_NET_IPIP is not set
>  +# CONFIG_NET_IPGRE is not set
>  +# CONFIG_IP_MROUTE is not set
>  +# CONFIG_ARPD is not set
>  +CONFIG_SYN_COOKIES=y
>  +# CONFIG_INET_AH is not set
>  +# CONFIG_INET_ESP is not set
>  +# CONFIG_INET_IPCOMP is not set
>  +# CONFIG_INET_XFRM_TUNNEL is not set
>  +# CONFIG_INET_TUNNEL is not set
>  +CONFIG_INET_XFRM_MODE_TRANSPORT=y
>  +CONFIG_INET_XFRM_MODE_TUNNEL=y
>  +CONFIG_INET_XFRM_MODE_BEET=y
>  +# CONFIG_INET_LRO is not set
>  +CONFIG_INET_DIAG=y
>  +CONFIG_INET_TCP_DIAG=y
>  +# CONFIG_TCP_CONG_ADVANCED is not set
>  +CONFIG_TCP_CONG_CUBIC=y
>  +CONFIG_DEFAULT_TCP_CONG="cubic"
>  +# CONFIG_TCP_MD5SIG is not set
>  +# CONFIG_IPV6 is not set
>  +# CONFIG_INET6_XFRM_TUNNEL is not set
>  +# CONFIG_INET6_TUNNEL is not set
>  +# CONFIG_NETWORK_SECMARK is not set
>  +# CONFIG_NETFILTER is not set
>  +# CONFIG_IP_DCCP is not set
>  +# CONFIG_IP_SCTP is not set
>  +# CONFIG_TIPC is not set
>  +# CONFIG_ATM is not set
>  +# CONFIG_BRIDGE is not set
>  +# CONFIG_VLAN_8021Q is not set
>  +# CONFIG_DECNET is not set
>  +# CONFIG_LLC2 is not set
>  +# CONFIG_IPX is not set
>  +# CONFIG_ATALK is not set
>  +# CONFIG_X25 is not set
>  +# CONFIG_LAPB is not set
>  +# CONFIG_ECONET is not set
>  +# CONFIG_WAN_ROUTER is not set
>  +# CONFIG_NET_SCHED is not set
>  +
>  +#
>  +# Network testing
>  +#
>  +# CONFIG_NET_PKTGEN is not set
>  +# CONFIG_HAMRADIO is not set
>  +# CONFIG_CAN is not set
>  +# CONFIG_IRDA is not set
>  +# CONFIG_BT is not set
>  +# CONFIG_AF_RXRPC is not set
>  +
>  +#
>  +# Wireless
>  +#
>  +# CONFIG_CFG80211 is not set
>  +# CONFIG_WIRELESS_EXT is not set
>  +# CONFIG_MAC80211 is not set
>  +# CONFIG_IEEE80211 is not set
>  +# CONFIG_RFKILL is not set
>  +# CONFIG_NET_9P is not set
>  +
>  +#
>  +# Device Drivers
>  +#
>  +
>  +#
>  +# Generic Driver Options
>  +#
>  +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
>  +CONFIG_STANDALONE=y
>  +CONFIG_PREVENT_FIRMWARE_BUILD=y
>  +CONFIG_FW_LOADER=y
>  +# CONFIG_SYS_HYPERVISOR is not set
>  +# CONFIG_CONNECTOR is not set
>  +CONFIG_MTD=y
>  +# CONFIG_MTD_DEBUG is not set
>  +# CONFIG_MTD_CONCAT is not set
>  +CONFIG_MTD_PARTITIONS=y
>  +# CONFIG_MTD_REDBOOT_PARTS is not set
>  +CONFIG_MTD_CMDLINE_PARTS=y
>  +# CONFIG_MTD_OF_PARTS is not set
>  +
>  +#
>  +# User Modules And Translation Layers
>  +#
>  +CONFIG_MTD_CHAR=y
>  +CONFIG_MTD_BLKDEVS=y
>  +CONFIG_MTD_BLOCK=y
>  +# CONFIG_FTL is not set
>  +# CONFIG_NFTL is not set
>  +# CONFIG_INFTL is not set
>  +# CONFIG_RFD_FTL is not set
>  +# CONFIG_SSFDC is not set
>  +# CONFIG_MTD_OOPS is not set
>  +
>  +#
>  +# RAM/ROM/Flash chip drivers
>  +#
>  +CONFIG_MTD_CFI=y
>  +# CONFIG_MTD_JEDECPROBE is not set
>  +CONFIG_MTD_GEN_PROBE=y
>  +CONFIG_MTD_CFI_ADV_OPTIONS=y
>  +CONFIG_MTD_CFI_NOSWAP=y
>  +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
>  +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
>  +# CONFIG_MTD_CFI_GEOMETRY is not set
>  +CONFIG_MTD_MAP_BANK_WIDTH_1=y
>  +CONFIG_MTD_MAP_BANK_WIDTH_2=y
>  +CONFIG_MTD_MAP_BANK_WIDTH_4=y
>  +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
>  +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
>  +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
>  +CONFIG_MTD_CFI_I1=y
>  +CONFIG_MTD_CFI_I2=y
>  +# CONFIG_MTD_CFI_I4 is not set
>  +# CONFIG_MTD_CFI_I8 is not set
>  +# CONFIG_MTD_OTP is not set
>  +CONFIG_MTD_CFI_INTELEXT=y
>  +# CONFIG_MTD_CFI_AMDSTD is not set
>  +# CONFIG_MTD_CFI_STAA is not set
>  +CONFIG_MTD_CFI_UTIL=y
>  +# CONFIG_MTD_RAM is not set
>  +# CONFIG_MTD_ROM is not set
>  +# CONFIG_MTD_ABSENT is not set
>  +
>  +#
>  +# Mapping drivers for chip access
>  +#
>  +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
>  +# CONFIG_MTD_PHYSMAP is not set
>  +CONFIG_MTD_PHYSMAP_OF=y
>  +# CONFIG_MTD_INTEL_VR_NOR is not set
>  +# CONFIG_MTD_PLATRAM is not set
>  +
>  +#
>  +# Self-contained MTD device drivers
>  +#
>  +# CONFIG_MTD_PMC551 is not set
>  +# CONFIG_MTD_DATAFLASH is not set
>  +# CONFIG_MTD_M25P80 is not set
>  +# CONFIG_MTD_SLRAM is not set
>  +# CONFIG_MTD_PHRAM is not set
>  +# CONFIG_MTD_MTDRAM is not set
>  +# CONFIG_MTD_BLOCK2MTD is not set
>  +
>  +#
>  +# Disk-On-Chip Device Drivers
>  +#
>  +# CONFIG_MTD_DOC2000 is not set
>  +# CONFIG_MTD_DOC2001 is not set
>  +# CONFIG_MTD_DOC2001PLUS is not set
>  +# CONFIG_MTD_NAND is not set
>  +# CONFIG_MTD_ONENAND is not set
>  +
>  +#
>  +# UBI - Unsorted block images
>  +#
>  +# CONFIG_MTD_UBI is not set
>  +CONFIG_OF_DEVICE=y
>  +CONFIG_OF_GPIO=y
>  +CONFIG_OF_I2C=y
>  +# CONFIG_PARPORT is not set
>  +CONFIG_BLK_DEV=y
>  +# CONFIG_BLK_DEV_FD is not set
>  +# CONFIG_BLK_CPQ_DA is not set
>  +# CONFIG_BLK_CPQ_CISS_DA is not set
>  +# CONFIG_BLK_DEV_DAC960 is not set
>  +# CONFIG_BLK_DEV_UMEM is not set
>  +# CONFIG_BLK_DEV_COW_COMMON is not set
>  +CONFIG_BLK_DEV_LOOP=y
>  +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
>  +# CONFIG_BLK_DEV_NBD is not set
>  +# CONFIG_BLK_DEV_SX8 is not set
>  +CONFIG_BLK_DEV_RAM=y
>  +CONFIG_BLK_DEV_RAM_COUNT=16
>  +CONFIG_BLK_DEV_RAM_SIZE=32768
>  +# CONFIG_BLK_DEV_XIP is not set
>  +# CONFIG_CDROM_PKTCDVD is not set
>  +# CONFIG_ATA_OVER_ETH is not set
>  +CONFIG_MISC_DEVICES=y
>  +# CONFIG_PHANTOM is not set
>  +# CONFIG_EEPROM_93CX6 is not set
>  +# CONFIG_SGI_IOC4 is not set
>  +# CONFIG_TIFM_CORE is not set
>  +# CONFIG_ENCLOSURE_SERVICES is not set
>  +CONFIG_HAVE_IDE=y
>  +# CONFIG_IDE is not set
>  +
>  +#
>  +# SCSI device support
>  +#
>  +# CONFIG_RAID_ATTRS is not set
>  +# CONFIG_SCSI is not set
>  +# CONFIG_SCSI_DMA is not set
>  +# CONFIG_SCSI_NETLINK is not set
>  +# CONFIG_ATA is not set
>  +# CONFIG_MD is not set
>  +# CONFIG_FUSION is not set
>  +
>  +#
>  +# IEEE 1394 (FireWire) support
>  +#
>  +# CONFIG_FIREWIRE is not set
>  +# CONFIG_IEEE1394 is not set
>  +# CONFIG_I2O is not set
>  +# CONFIG_MACINTOSH_DRIVERS is not set
>  +CONFIG_NETDEVICES=y
>  +# CONFIG_NETDEVICES_MULTIQUEUE is not set
>  +# CONFIG_DUMMY is not set
>  +# CONFIG_BONDING is not set
>  +# CONFIG_MACVLAN is not set
>  +# CONFIG_EQUALIZER is not set
>  +# CONFIG_TUN is not set
>  +# CONFIG_VETH is not set
>  +# CONFIG_ARCNET is not set
>  +CONFIG_PHYLIB=y
>  +
>  +#
>  +# MII PHY device drivers
>  +#
>  +# CONFIG_MARVELL_PHY is not set
>  +# CONFIG_DAVICOM_PHY is not set
>  +# CONFIG_QSEMI_PHY is not set
>  +# CONFIG_LXT_PHY is not set
>  +# CONFIG_CICADA_PHY is not set
>  +# CONFIG_VITESSE_PHY is not set
>  +# CONFIG_SMSC_PHY is not set
>  +CONFIG_BROADCOM_PHY=y
>  +# CONFIG_ICPLUS_PHY is not set
>  +# CONFIG_REALTEK_PHY is not set
>  +# CONFIG_FIXED_PHY is not set
>  +# CONFIG_MDIO_BITBANG is not set
>  +# CONFIG_NET_ETHERNET is not set
>  +CONFIG_NETDEV_1000=y
>  +# CONFIG_ACENIC is not set
>  +# CONFIG_DL2K is not set
>  +# CONFIG_E1000 is not set
>  +# CONFIG_E1000E is not set
>  +# CONFIG_E1000E_ENABLED is not set
>  +# CONFIG_IP1000 is not set
>  +# CONFIG_IGB is not set
>  +# CONFIG_NS83820 is not set
>  +# CONFIG_HAMACHI is not set
>  +# CONFIG_YELLOWFIN is not set
>  +# CONFIG_R8169 is not set
>  +# CONFIG_SIS190 is not set
>  +# CONFIG_SKGE is not set
>  +# CONFIG_SKY2 is not set
>  +# CONFIG_SK98LIN is not set
>  +# CONFIG_VIA_VELOCITY is not set
>  +# CONFIG_TIGON3 is not set
>  +# CONFIG_BNX2 is not set
>  +# CONFIG_GIANFAR is not set
>  +CONFIG_UCC_GETH=y
>  +CONFIG_UGETH_NAPI=y
>  +# CONFIG_UGETH_MAGIC_PACKET is not set
>  +# CONFIG_UGETH_FILTERING is not set
>  +# CONFIG_UGETH_TX_ON_DEMAND is not set
>  +# CONFIG_QLA3XXX is not set
>  +# CONFIG_ATL1 is not set
>  +# CONFIG_NETDEV_10000 is not set
>  +# CONFIG_TR is not set
>  +
>  +#
>  +# Wireless LAN
>  +#
>  +# CONFIG_WLAN_PRE80211 is not set
>  +# CONFIG_WLAN_80211 is not set
>  +# CONFIG_WAN is not set
>  +# CONFIG_FDDI is not set
>  +# CONFIG_HIPPI is not set
>  +# CONFIG_PPP is not set
>  +# CONFIG_SLIP is not set
>  +# CONFIG_NETCONSOLE is not set
>  +# CONFIG_NETPOLL is not set
>  +# CONFIG_NET_POLL_CONTROLLER is not set
>  +# CONFIG_ISDN is not set
>  +# CONFIG_PHONE is not set
>  +
>  +#
>  +# Input device support
>  +#
>  +CONFIG_INPUT=y
>  +# CONFIG_INPUT_FF_MEMLESS is not set
>  +# CONFIG_INPUT_POLLDEV is not set
>  +
>  +#
>  +# Userland interfaces
>  +#
>  +# CONFIG_INPUT_MOUSEDEV is not set
>  +# CONFIG_INPUT_JOYDEV is not set
>  +# CONFIG_INPUT_EVDEV is not set
>  +# CONFIG_INPUT_EVBUG is not set
>  +
>  +#
>  +# Input Device Drivers
>  +#
>  +# CONFIG_INPUT_KEYBOARD is not set
>  +# CONFIG_INPUT_MOUSE is not set
>  +# CONFIG_INPUT_JOYSTICK is not set
>  +# CONFIG_INPUT_TABLET is not set
>  +# CONFIG_INPUT_TOUCHSCREEN is not set
>  +# CONFIG_INPUT_MISC is not set
>  +
>  +#
>  +# Hardware I/O ports
>  +#
>  +# CONFIG_SERIO is not set
>  +# CONFIG_GAMEPORT is not set
>  +
>  +#
>  +# Character devices
>  +#
>  +CONFIG_VT=y
>  +CONFIG_VT_CONSOLE=y
>  +CONFIG_HW_CONSOLE=y
>  +# CONFIG_VT_HW_CONSOLE_BINDING is not set
>  +# CONFIG_SERIAL_NONSTANDARD is not set
>  +# CONFIG_NOZOMI is not set
>  +
>  +#
>  +# Serial drivers
>  +#
>  +CONFIG_SERIAL_8250=y
>  +CONFIG_SERIAL_8250_CONSOLE=y
>  +CONFIG_SERIAL_8250_PCI=y
>  +CONFIG_SERIAL_8250_NR_UARTS=4
>  +CONFIG_SERIAL_8250_RUNTIME_UARTS=4
>  +# CONFIG_SERIAL_8250_EXTENDED is not set
>  +
>  +#
>  +# Non-8250 serial port support
>  +#
>  +# CONFIG_SERIAL_UARTLITE is not set
>  +CONFIG_SERIAL_CORE=y
>  +CONFIG_SERIAL_CORE_CONSOLE=y
>  +# CONFIG_SERIAL_JSM is not set
>  +# CONFIG_SERIAL_OF_PLATFORM is not set
>  +CONFIG_SERIAL_QE=y
>  +CONFIG_UNIX98_PTYS=y
>  +CONFIG_LEGACY_PTYS=y
>  +CONFIG_LEGACY_PTY_COUNT=256
>  +# CONFIG_IPMI_HANDLER is not set
>  +CONFIG_HW_RANDOM=y
>  +# CONFIG_NVRAM is not set
>  +# CONFIG_GEN_RTC is not set
>  +# CONFIG_R3964 is not set
>  +# CONFIG_APPLICOM is not set
>  +# CONFIG_RAW_DRIVER is not set
>  +# CONFIG_TCG_TPM is not set
>  +CONFIG_DEVPORT=y
>  +CONFIG_I2C=y
>  +CONFIG_I2C_BOARDINFO=y
>  +CONFIG_I2C_CHARDEV=y
>  +
>  +#
>  +# I2C Algorithms
>  +#
>  +# CONFIG_I2C_ALGOBIT is not set
>  +# CONFIG_I2C_ALGOPCF is not set
>  +# CONFIG_I2C_ALGOPCA is not set
>  +
>  +#
>  +# I2C Hardware Bus support
>  +#
>  +# CONFIG_I2C_ALI1535 is not set
>  +# CONFIG_I2C_ALI1563 is not set
>  +# CONFIG_I2C_ALI15X3 is not set
>  +# CONFIG_I2C_AMD756 is not set
>  +# CONFIG_I2C_AMD8111 is not set
>  +# CONFIG_I2C_GPIO is not set
>  +# CONFIG_I2C_I801 is not set
>  +# CONFIG_I2C_I810 is not set
>  +# CONFIG_I2C_PIIX4 is not set
>  +CONFIG_I2C_MPC=y
>  +# CONFIG_I2C_NFORCE2 is not set
>  +# CONFIG_I2C_OCORES is not set
>  +# CONFIG_I2C_PARPORT_LIGHT is not set
>  +# CONFIG_I2C_PROSAVAGE is not set
>  +# CONFIG_I2C_SAVAGE4 is not set
>  +# CONFIG_I2C_SIMTEC is not set
>  +# CONFIG_I2C_SIS5595 is not set
>  +# CONFIG_I2C_SIS630 is not set
>  +# CONFIG_I2C_SIS96X is not set
>  +# CONFIG_I2C_TAOS_EVM is not set
>  +# CONFIG_I2C_STUB is not set
>  +# CONFIG_I2C_VIA is not set
>  +# CONFIG_I2C_VIAPRO is not set
>  +# CONFIG_I2C_VOODOO3 is not set
>  +
>  +#
>  +# Miscellaneous I2C Chip support
>  +#
>  +# CONFIG_DS1682 is not set
>  +# CONFIG_SENSORS_EEPROM is not set
>  +# CONFIG_SENSORS_PCF8574 is not set
>  +# CONFIG_PCF8575 is not set
>  +# CONFIG_SENSORS_PCF8591 is not set
>  +# CONFIG_TPS65010 is not set
>  +# CONFIG_SENSORS_MAX6875 is not set
>  +# CONFIG_SENSORS_TSL2550 is not set
>  +# CONFIG_I2C_DEBUG_CORE is not set
>  +# CONFIG_I2C_DEBUG_ALGO is not set
>  +# CONFIG_I2C_DEBUG_BUS is not set
>  +# CONFIG_I2C_DEBUG_CHIP is not set
>  +
>  +#
>  +# SPI support
>  +#
>  +CONFIG_SPI=y
>  +CONFIG_SPI_MASTER=y
>  +
>  +#
>  +# SPI Master Controller Drivers
>  +#
>  +CONFIG_SPI_BITBANG=y
>  +CONFIG_SPI_MPC83xx=y
>  +
>  +#
>  +# SPI Protocol Masters
>  +#
>  +# CONFIG_SPI_AT25 is not set
>  +CONFIG_SPI_SPIDEV=y
>  +# CONFIG_SPI_TLE62X0 is not set
>  +CONFIG_HAVE_GPIO_LIB=y
>  +
>  +#
>  +# GPIO Support
>  +#
>  +
>  +#
>  +# On-chip GPIOs:
>  +#
>  +CONFIG_GPIO_QE=y
>  +
>  +#
>  +# I2C GPIO expanders:
>  +#
>  +# CONFIG_GPIO_PCA953X is not set
>  +# CONFIG_GPIO_PCF857X is not set
>  +
>  +#
>  +# SPI GPIO expanders:
>  +#
>  +# CONFIG_GPIO_MCP23S08 is not set
>  +# CONFIG_W1 is not set
>  +# CONFIG_POWER_SUPPLY is not set
>  +# CONFIG_HWMON is not set
>  +# CONFIG_THERMAL is not set
>  +CONFIG_WATCHDOG=y
>  +# CONFIG_WATCHDOG_NOWAYOUT is not set
>  +
>  +#
>  +# Watchdog Device Drivers
>  +#
>  +# CONFIG_SOFT_WATCHDOG is not set
>  +CONFIG_83xx_WDT=y
>  +
>  +#
>  +# PCI-based Watchdog Cards
>  +#
>  +# CONFIG_PCIPCWATCHDOG is not set
>  +# CONFIG_WDTPCI is not set
>  +
>  +#
>  +# Sonics Silicon Backplane
>  +#
>  +CONFIG_SSB_POSSIBLE=y
>  +# CONFIG_SSB is not set
>  +
>  +#
>  +# Multifunction device drivers
>  +#
>  +# CONFIG_MFD_SM501 is not set
>  +
>  +#
>  +# Multimedia devices
>  +#
>  +# CONFIG_VIDEO_DEV is not set
>  +# CONFIG_DVB_CORE is not set
>  +CONFIG_DAB=y
>  +
>  +#
>  +# Graphics support
>  +#
>  +# CONFIG_AGP is not set
>  +# CONFIG_DRM is not set
>  +# CONFIG_VGASTATE is not set
>  +# CONFIG_VIDEO_OUTPUT_CONTROL is not set
>  +CONFIG_FB=y
>  +# CONFIG_FIRMWARE_EDID is not set
>  +# CONFIG_FB_DDC is not set
>  +CONFIG_FB_CFB_FILLRECT=y
>  +CONFIG_FB_CFB_COPYAREA=y
>  +CONFIG_FB_CFB_IMAGEBLIT=y
>  +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
>  +# CONFIG_FB_SYS_FILLRECT is not set
>  +# CONFIG_FB_SYS_COPYAREA is not set
>  +# CONFIG_FB_SYS_IMAGEBLIT is not set
>  +# CONFIG_FB_SYS_FOPS is not set
>  +CONFIG_FB_DEFERRED_IO=y
>  +# CONFIG_FB_SVGALIB is not set
>  +CONFIG_FB_MACMODES=y
>  +# CONFIG_FB_BACKLIGHT is not set
>  +# CONFIG_FB_MODE_HELPERS is not set
>  +# CONFIG_FB_TILEBLITTING is not set
>  +
>  +#
>  +# Frame buffer hardware drivers
>  +#
>  +# CONFIG_FB_CIRRUS is not set
>  +# CONFIG_FB_PM2 is not set
>  +# CONFIG_FB_CYBER2000 is not set
>  +CONFIG_FB_OF=y
>  +# CONFIG_FB_CT65550 is not set
>  +# CONFIG_FB_ASILIANT is not set
>  +# CONFIG_FB_IMSTT is not set
>  +# CONFIG_FB_VGA16 is not set
>  +# CONFIG_FB_S1D13XXX is not set
>  +# CONFIG_FB_NVIDIA is not set
>  +# CONFIG_FB_RIVA is not set
>  +# CONFIG_FB_MATROX is not set
>  +# CONFIG_FB_RADEON is not set
>  +# CONFIG_FB_ATY128 is not set
>  +# CONFIG_FB_ATY is not set
>  +# CONFIG_FB_S3 is not set
>  +# CONFIG_FB_SAVAGE is not set
>  +# CONFIG_FB_SIS is not set
>  +# CONFIG_FB_NEOMAGIC is not set
>  +# CONFIG_FB_KYRO is not set
>  +# CONFIG_FB_3DFX is not set
>  +# CONFIG_FB_VOODOO1 is not set
>  +# CONFIG_FB_VT8623 is not set
>  +# CONFIG_FB_TRIDENT is not set
>  +# CONFIG_FB_ARK is not set
>  +# CONFIG_FB_PM3 is not set
>  +# CONFIG_FB_IBM_GXT4500 is not set
>  +# CONFIG_FB_VIRTUAL is not set
>  +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
>  +
>  +#
>  +# Display device support
>  +#
>  +# CONFIG_DISPLAY_SUPPORT is not set
>  +
>  +#
>  +# Console display driver support
>  +#
>  +# CONFIG_VGA_CONSOLE is not set
>  +CONFIG_DUMMY_CONSOLE=y
>  +CONFIG_FRAMEBUFFER_CONSOLE=y
>  +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
>  +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
>  +# CONFIG_FONTS is not set
>  +CONFIG_FONT_8x8=y
>  +CONFIG_FONT_8x16=y
>  +CONFIG_LOGO=y
>  +# CONFIG_LOGO_LINUX_MONO is not set
>  +CONFIG_LOGO_LINUX_VGA16=y
>  +CONFIG_LOGO_LINUX_CLUT224=y
>  +
>  +#
>  +# Sound
>  +#
>  +# CONFIG_SOUND is not set
>  +CONFIG_HID_SUPPORT=y
>  +CONFIG_HID=y
>  +# CONFIG_HID_DEBUG is not set
>  +# CONFIG_HIDRAW is not set
>  +# CONFIG_USB_SUPPORT is not set
>  +# CONFIG_MMC is not set
>  +# CONFIG_MEMSTICK is not set
>  +# CONFIG_NEW_LEDS is not set
>  +# CONFIG_INFINIBAND is not set
>  +# CONFIG_EDAC is not set
>  +# CONFIG_RTC_CLASS is not set
>  +# CONFIG_DMADEVICES is not set
>  +
>  +#
>  +# Userspace I/O
>  +#
>  +# CONFIG_UIO is not set
>  +
>  +#
>  +# File systems
>  +#
>  +CONFIG_EXT2_FS=y
>  +# CONFIG_EXT2_FS_XATTR is not set
>  +# CONFIG_EXT2_FS_XIP is not set
>  +CONFIG_EXT3_FS=y
>  +CONFIG_EXT3_FS_XATTR=y
>  +# CONFIG_EXT3_FS_POSIX_ACL is not set
>  +# CONFIG_EXT3_FS_SECURITY is not set
>  +# CONFIG_EXT4DEV_FS is not set
>  +CONFIG_JBD=y
>  +CONFIG_FS_MBCACHE=y
>  +# CONFIG_REISERFS_FS is not set
>  +# CONFIG_JFS_FS is not set
>  +# CONFIG_FS_POSIX_ACL is not set
>  +# CONFIG_XFS_FS is not set
>  +# CONFIG_GFS2_FS is not set
>  +# CONFIG_OCFS2_FS is not set
>  +CONFIG_DNOTIFY=y
>  +CONFIG_INOTIFY=y
>  +CONFIG_INOTIFY_USER=y
>  +# CONFIG_QUOTA is not set
>  +# CONFIG_AUTOFS_FS is not set
>  +# CONFIG_AUTOFS4_FS is not set
>  +# CONFIG_FUSE_FS is not set
>  +
>  +#
>  +# CD-ROM/DVD Filesystems
>  +#
>  +# CONFIG_ISO9660_FS is not set
>  +# CONFIG_UDF_FS is not set
>  +
>  +#
>  +# DOS/FAT/NT Filesystems
>  +#
>  +# CONFIG_MSDOS_FS is not set
>  +# CONFIG_VFAT_FS is not set
>  +# CONFIG_NTFS_FS is not set
>  +
>  +#
>  +# Pseudo filesystems
>  +#
>  +CONFIG_PROC_FS=y
>  +CONFIG_PROC_KCORE=y
>  +CONFIG_PROC_SYSCTL=y
>  +CONFIG_SYSFS=y
>  +CONFIG_TMPFS=y
>  +# CONFIG_TMPFS_POSIX_ACL is not set
>  +# CONFIG_HUGETLB_PAGE is not set
>  +# CONFIG_CONFIGFS_FS is not set
>  +
>  +#
>  +# Miscellaneous filesystems
>  +#
>  +# CONFIG_ADFS_FS is not set
>  +# CONFIG_AFFS_FS is not set
>  +# CONFIG_HFS_FS is not set
>  +# CONFIG_HFSPLUS_FS is not set
>  +# CONFIG_BEFS_FS is not set
>  +# CONFIG_BFS_FS is not set
>  +# CONFIG_EFS_FS is not set
>  +CONFIG_JFFS2_FS=y
>  +CONFIG_JFFS2_FS_DEBUG=0
>  +CONFIG_JFFS2_FS_WRITEBUFFER=y
>  +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
>  +# CONFIG_JFFS2_SUMMARY is not set
>  +# CONFIG_JFFS2_FS_XATTR is not set
>  +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
>  +CONFIG_JFFS2_ZLIB=y
>  +# CONFIG_JFFS2_LZO is not set
>  +CONFIG_JFFS2_RTIME=y
>  +# CONFIG_JFFS2_RUBIN is not set
>  +# CONFIG_CRAMFS is not set
>  +# CONFIG_VXFS_FS is not set
>  +# CONFIG_MINIX_FS is not set
>  +# CONFIG_HPFS_FS is not set
>  +# CONFIG_QNX4FS_FS is not set
>  +# CONFIG_ROMFS_FS is not set
>  +# CONFIG_SYSV_FS is not set
>  +# CONFIG_UFS_FS is not set
>  +CONFIG_NETWORK_FILESYSTEMS=y
>  +CONFIG_NFS_FS=y
>  +CONFIG_NFS_V3=y
>  +# CONFIG_NFS_V3_ACL is not set
>  +CONFIG_NFS_V4=y
>  +# CONFIG_NFS_DIRECTIO is not set
>  +# CONFIG_NFSD is not set
>  +CONFIG_ROOT_NFS=y
>  +CONFIG_LOCKD=y
>  +CONFIG_LOCKD_V4=y
>  +CONFIG_NFS_COMMON=y
>  +CONFIG_SUNRPC=y
>  +CONFIG_SUNRPC_GSS=y
>  +# CONFIG_SUNRPC_BIND34 is not set
>  +CONFIG_RPCSEC_GSS_KRB5=y
>  +# CONFIG_RPCSEC_GSS_SPKM3 is not set
>  +# CONFIG_SMB_FS is not set
>  +# CONFIG_CIFS is not set
>  +# CONFIG_NCP_FS is not set
>  +# CONFIG_CODA_FS is not set
>  +# CONFIG_AFS_FS is not set
>  +
>  +#
>  +# Partition Types
>  +#
>  +CONFIG_PARTITION_ADVANCED=y
>  +# CONFIG_ACORN_PARTITION is not set
>  +# CONFIG_OSF_PARTITION is not set
>  +# CONFIG_AMIGA_PARTITION is not set
>  +# CONFIG_ATARI_PARTITION is not set
>  +# CONFIG_MAC_PARTITION is not set
>  +# CONFIG_MSDOS_PARTITION is not set
>  +# CONFIG_LDM_PARTITION is not set
>  +# CONFIG_SGI_PARTITION is not set
>  +# CONFIG_ULTRIX_PARTITION is not set
>  +# CONFIG_SUN_PARTITION is not set
>  +# CONFIG_KARMA_PARTITION is not set
>  +# CONFIG_EFI_PARTITION is not set
>  +# CONFIG_SYSV68_PARTITION is not set
>  +# CONFIG_NLS is not set
>  +# CONFIG_DLM is not set
>  +CONFIG_UCC_SLOW=y
>  +CONFIG_UCC_FAST=y
>  +CONFIG_UCC=y
>  +
>  +#
>  +# Library routines
>  +#
>  +CONFIG_BITREVERSE=y
>  +# CONFIG_CRC_CCITT is not set
>  +# CONFIG_CRC16 is not set
>  +# CONFIG_CRC_ITU_T is not set
>  +CONFIG_CRC32=y
>  +# CONFIG_CRC7 is not set
>  +# CONFIG_LIBCRC32C is not set
>  +CONFIG_ZLIB_INFLATE=y
>  +CONFIG_ZLIB_DEFLATE=y
>  +CONFIG_PLIST=y
>  +CONFIG_HAS_IOMEM=y
>  +CONFIG_HAS_IOPORT=y
>  +CONFIG_HAS_DMA=y
>  +CONFIG_HAVE_LMB=y
>  +
>  +#
>  +# Kernel hacking
>  +#
>  +# CONFIG_PRINTK_TIME is not set
>  +CONFIG_ENABLE_WARN_DEPRECATED=y
>  +CONFIG_ENABLE_MUST_CHECK=y
>  +# CONFIG_MAGIC_SYSRQ is not set
>  +# CONFIG_UNUSED_SYMBOLS is not set
>  +# CONFIG_DEBUG_FS is not set
>  +# CONFIG_HEADERS_CHECK is not set
>  +# CONFIG_DEBUG_KERNEL is not set
>  +# CONFIG_SLUB_DEBUG_ON is not set
>  +# CONFIG_SLUB_STATS is not set
>  +# CONFIG_DEBUG_BUGVERBOSE is not set
>  +# CONFIG_SAMPLES is not set
>  +CONFIG_PPC_EARLY_DEBUG=y
>  +# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
>  +# CONFIG_PPC_EARLY_DEBUG_G5 is not set
>  +# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
>  +# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
>  +# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
>  +# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
>  +# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
>  +# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
>  +# CONFIG_PPC_EARLY_DEBUG_44x is not set
>  +# CONFIG_PPC_EARLY_DEBUG_40x is not set
>  +# CONFIG_PPC_EARLY_DEBUG_CPM is not set
>  +
>  +#
>  +# Security options
>  +#
>  +# CONFIG_KEYS is not set
>  +# CONFIG_SECURITY is not set
>  +# CONFIG_SECURITY_FILE_CAPABILITIES is not set
>  +CONFIG_CRYPTO=y
>  +CONFIG_CRYPTO_ALGAPI=y
>  +CONFIG_CRYPTO_BLKCIPHER=y
>  +# CONFIG_CRYPTO_SEQIV is not set
>  +CONFIG_CRYPTO_MANAGER=y
>  +# CONFIG_CRYPTO_HMAC is not set
>  +# CONFIG_CRYPTO_XCBC is not set
>  +# CONFIG_CRYPTO_NULL is not set
>  +# CONFIG_CRYPTO_MD4 is not set
>  +CONFIG_CRYPTO_MD5=y
>  +# CONFIG_CRYPTO_SHA1 is not set
>  +# CONFIG_CRYPTO_SHA256 is not set
>  +# CONFIG_CRYPTO_SHA512 is not set
>  +# CONFIG_CRYPTO_WP512 is not set
>  +# CONFIG_CRYPTO_TGR192 is not set
>  +# CONFIG_CRYPTO_GF128MUL is not set
>  +# CONFIG_CRYPTO_ECB is not set
>  +CONFIG_CRYPTO_CBC=y
>  +# CONFIG_CRYPTO_PCBC is not set
>  +# CONFIG_CRYPTO_LRW is not set
>  +# CONFIG_CRYPTO_XTS is not set
>  +# CONFIG_CRYPTO_CTR is not set
>  +# CONFIG_CRYPTO_GCM is not set
>  +# CONFIG_CRYPTO_CCM is not set
>  +# CONFIG_CRYPTO_CRYPTD is not set
>  +CONFIG_CRYPTO_DES=y
>  +# CONFIG_CRYPTO_FCRYPT is not set
>  +# CONFIG_CRYPTO_BLOWFISH is not set
>  +# CONFIG_CRYPTO_TWOFISH is not set
>  +# CONFIG_CRYPTO_SERPENT is not set
>  +# CONFIG_CRYPTO_AES is not set
>  +# CONFIG_CRYPTO_CAST5 is not set
>  +# CONFIG_CRYPTO_CAST6 is not set
>  +# CONFIG_CRYPTO_TEA is not set
>  +# CONFIG_CRYPTO_ARC4 is not set
>  +# CONFIG_CRYPTO_KHAZAD is not set
>  +# CONFIG_CRYPTO_ANUBIS is not set
>  +# CONFIG_CRYPTO_SEED is not set
>  +# CONFIG_CRYPTO_SALSA20 is not set
>  +# CONFIG_CRYPTO_DEFLATE is not set
>  +# CONFIG_CRYPTO_MICHAEL_MIC is not set
>  +# CONFIG_CRYPTO_CRC32C is not set
>  +# CONFIG_CRYPTO_CAMELLIA is not set
>  +# CONFIG_CRYPTO_TEST is not set
>  +# CONFIG_CRYPTO_AUTHENC is not set
>  +# CONFIG_CRYPTO_LZO is not set
>  +CONFIG_CRYPTO_HW=y
>  +# CONFIG_CRYPTO_DEV_HIFN_795X is not set
>  +# CONFIG_PPC_CLOCK is not set
>  +CONFIG_PPC_LIB_RHEAP=y
>  diff --git a/arch/powerpc/platforms/83xx/Kconfig b/arch/powerpc/platforms/83xx/Kconfig
>  index 13587e2..a5f72bb 100644
>  --- a/arch/powerpc/platforms/83xx/Kconfig
>  +++ b/arch/powerpc/platforms/83xx/Kconfig
>  @@ -58,6 +58,14 @@ config MPC836x_MDS
>         help
>           This option enables support for the MPC836x MDS Processor Board.
>
>  +config MPC836x_RDK
>  +       bool "Freescale/Logic MPC836x RDK"
>  +       select DEFAULT_UIMAGE
>  +       select QUICC_ENGINE
>  +       help
>  +         This option enables support for the MPC836x RDK Processor Board,
>  +         also known as ZOOM PowerQUICC Kit.
>  +
>   config MPC837x_MDS
>         bool "Freescale MPC837x MDS"
>         select DEFAULT_UIMAGE
>  diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile
>  index 7e6dd3e..1fcda8e 100644
>  --- a/arch/powerpc/platforms/83xx/Makefile
>  +++ b/arch/powerpc/platforms/83xx/Makefile
>  @@ -8,6 +8,7 @@ obj-$(CONFIG_MPC832x_RDB)       += mpc832x_rdb.o
>   obj-$(CONFIG_MPC834x_MDS)      += mpc834x_mds.o
>   obj-$(CONFIG_MPC834x_ITX)      += mpc834x_itx.o
>   obj-$(CONFIG_MPC836x_MDS)      += mpc836x_mds.o
>  +obj-$(CONFIG_MPC836x_RDK)      += mpc836x_rdk.o
>   obj-$(CONFIG_MPC832x_MDS)      += mpc832x_mds.o
>   obj-$(CONFIG_MPC837x_MDS)      += mpc837x_mds.o
>   obj-$(CONFIG_SBC834x)          += sbc834x.o
>  diff --git a/arch/powerpc/platforms/83xx/mpc836x_rdk.c b/arch/powerpc/platforms/83xx/mpc836x_rdk.c
>  new file mode 100644
>  index 0000000..b6c4b38
>  --- /dev/null
>  +++ b/arch/powerpc/platforms/83xx/mpc836x_rdk.c
>  @@ -0,0 +1,106 @@
>  +/*
>  + * MPC8360E-RDK board file.
>  + *
>  + * Copyright (c) 2006  Freescale Semicondutor, Inc.
>  + * Copyright (c) 2007-2008  MontaVista Software, Inc.
>  + *
>  + * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
>  + *
>  + * This program is free software; you can redistribute it and/or modify it
>  + * under  the terms of  the GNU General  Public License as published by the
>  + * Free Software Foundation;  either version 2 of the  License, or (at your
>  + * option) any later version.
>  + */
>  +
>  +#include <linux/kernel.h>
>  +#include <linux/pci.h>
>  +#include <linux/of_platform.h>
>  +#include <linux/io.h>
>  +#include <asm/prom.h>
>  +#include <asm/time.h>
>  +#include <asm/ipic.h>
>  +#include <asm/udbg.h>
>  +#include <asm/qe.h>
>  +#include <asm/qe_ic.h>
>  +#include <sysdev/fsl_soc.h>
>  +
>  +#include "mpc83xx.h"
>  +
>  +static struct of_device_id __initdata mpc836x_rdk_ids[] = {
>  +       { .compatible = "simple-bus", },
>  +       {},
>  +};
>  +
>  +static int __init mpc836x_rdk_declare_of_platform_devices(void)
>  +{
>  +       return of_platform_bus_probe(NULL, mpc836x_rdk_ids, NULL);
>  +}
>  +machine_device_initcall(mpc836x_rdk, mpc836x_rdk_declare_of_platform_devices);
>  +
>  +static void __init mpc836x_rdk_setup_arch(void)
>  +{
>  +#ifdef CONFIG_PCI
>  +       struct device_node *np;
>  +#endif
>  +
>  +       if (ppc_md.progress)
>  +               ppc_md.progress("mpc836x_rdk_setup_arch()", 0);
>  +
>  +#ifdef CONFIG_PCI
>  +       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
>  +               mpc83xx_add_bridge(np);
>  +#endif
>  +
>  +#ifdef CONFIG_QUICC_ENGINE
>  +       qe_reset();
>  +#endif
>  +}
>  +
>  +static void __init mpc836x_rdk_init_IRQ(void)
>  +{
>  +       struct device_node *np;
>  +
>  +       np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
>  +       if (!np)
>  +               return;
>  +
>  +       ipic_init(np, 0);
>  +
>  +       /*
>  +        * Initialize the default interrupt mapping priorities,
>  +        * in case the boot rom changed something on us.
>  +        */
>  +       ipic_set_default_priority();
>  +       of_node_put(np);
>  +
>  +#ifdef CONFIG_QUICC_ENGINE
>  +       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
>  +       if (!np)
>  +               return;
>  +
>  +       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
>  +       of_node_put(np);
>  +#endif
>  +}
>  +
>  +/*
>  + * Called very early, MMU is off, device-tree isn't unflattened.
>  + */
>  +static int __init mpc836x_rdk_probe(void)
>  +{
>  +       unsigned long root = of_get_flat_dt_root();
>  +
>  +       return of_flat_dt_is_compatible(root, "fsl,mpc8360rdk");
>  +}
>  +
>  +define_machine(mpc836x_rdk) {
>  +       .name           = "MPC836x RDK",
>  +       .probe          = mpc836x_rdk_probe,
>  +       .setup_arch     = mpc836x_rdk_setup_arch,
>  +       .init_IRQ       = mpc836x_rdk_init_IRQ,
>  +       .get_irq        = ipic_get_irq,
>  +       .restart        = mpc83xx_restart,
>  +       .time_init      = mpc83xx_time_init,
>  +       .calibrate_decr = generic_calibrate_decr,
>  +       .progress       = udbg_progress,
>  +};
>  --
>  1.5.5
>  _______________________________________________
>  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.

^ permalink raw reply

* [PATCH] sysdev,mv64x60: early console fix
From: Remi Machet @ 2008-04-21 21:02 UTC (permalink / raw)
  To: Paul Mackerras, Dale Farnsworth; +Cc: linuxppc-dev

The MPSC driver and prpmc2800.dts have been modified to
use property 'cell-index' as the serial port number but 
the early serial console driver for the mv64x60 has not 
been modified to use this new property.

Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)
---

 arch/powerpc/sysdev/mv64x60_udbg.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/sysdev/mv64x60_udbg.c b/arch/powerpc/sysdev/mv64x60_udbg.c
index ccdb3b0..2792dc8 100644
--- a/arch/powerpc/sysdev/mv64x60_udbg.c
+++ b/arch/powerpc/sysdev/mv64x60_udbg.c
@@ -94,7 +94,7 @@ static void mv64x60_udbg_init(void)
 	if (!np)
 		return;
 
-	block_index = of_get_property(np, "block-index", NULL);
+	block_index = of_get_property(np, "cell-index", NULL);
 	if (!block_index)
 		goto error;
 

^ permalink raw reply related

* Re: [PATCH] [POWERPC] ppc32: Fix errata for 603 CPUs
From: Kumar Gala @ 2008-04-21 20:25 UTC (permalink / raw)
  To: Gabriel Paubert; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <20080421201959.GA2281@iram.es>


On Apr 21, 2008, at 3:19 PM, Gabriel Paubert wrote:
> On Mon, Apr 21, 2008 at 02:57:47PM -0500, Kumar Gala wrote:
>> 603 CPUs have the same issue that some 750 CPUs have in that they  
>> can crash
>> in funny ways if a store from an FPU register instruction is  
>> executed on a
>> register that has never been initialized since power on.  This  
>> patch fixes
>> it by making sure all FP registers have been properly initialized  
>> at kernel
>> boot.
>>
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
>> ---
>>
>> Paul, I've put this into my powerpc-next tree since its a pretty  
>> trivial
>> patch.
>>
>> - k
>>
>> arch/powerpc/kernel/cpu_setup_6xx.S |    9 ++++++++-
>> 1 files changed, 8 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/ 
>> kernel/cpu_setup_6xx.S
>> index f1ee0b3..4a1c3cd 100644
>> --- a/arch/powerpc/kernel/cpu_setup_6xx.S
>> +++ b/arch/powerpc/kernel/cpu_setup_6xx.S
>> @@ -17,7 +17,14 @@
>> #include <asm/cache.h>
>>
>> _GLOBAL(__setup_cpu_603)
>> -	b	setup_common_caches
>> +	mflr	r4
>> +BEGIN_FTR_SECTION
>> +	bl	__init_fpu_registers
>> +END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
>> +	bl	__init_fpu_registers
>
> I don't understand that code.
>
> What does the second bl __init_fpu_regiters do?

that was a copy/paste error.  (see v2 of the patch).

> As I understand it, the first one is conditional on the presence
> of an FPU (reasonable). But the secone one makes no sense.
>
> Finally wouldn't it be simpler to initialize the FPU on all CPU
> that have it?

that would require a change to the entry point of all these  
functions.  Its not worth the savings.

>> +	bl	setup_common_caches
>> +	mtlr	r4
>> +	blr
>
> You can use tail call elimination and save one instruction there :-)

I think we can find better places to save code size. :)

- k

^ permalink raw reply

* Re: [PATCH] [POWERPC] ppc32: Fix errata for 603 CPUs
From: Gabriel Paubert @ 2008-04-21 20:19 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <Pine.LNX.4.64.0804211457010.8003@blarg.am.freescale.net>

On Mon, Apr 21, 2008 at 02:57:47PM -0500, Kumar Gala wrote:
> 603 CPUs have the same issue that some 750 CPUs have in that they can crash
> in funny ways if a store from an FPU register instruction is executed on a
> register that has never been initialized since power on.  This patch fixes
> it by making sure all FP registers have been properly initialized at kernel
> boot.
> 
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> ---
> 
> Paul, I've put this into my powerpc-next tree since its a pretty trivial
> patch.
> 
> - k
> 
>  arch/powerpc/kernel/cpu_setup_6xx.S |    9 ++++++++-
>  1 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/kernel/cpu_setup_6xx.S
> index f1ee0b3..4a1c3cd 100644
> --- a/arch/powerpc/kernel/cpu_setup_6xx.S
> +++ b/arch/powerpc/kernel/cpu_setup_6xx.S
> @@ -17,7 +17,14 @@
>  #include <asm/cache.h>
> 
>  _GLOBAL(__setup_cpu_603)
> -	b	setup_common_caches
> +	mflr	r4
> +BEGIN_FTR_SECTION
> +	bl	__init_fpu_registers
> +END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
> +	bl	__init_fpu_registers

I don't understand that code. 

What does the second bl __init_fpu_regiters do?

As I understand it, the first one is conditional on the presence 
of an FPU (reasonable). But the secone one makes no sense.

Finally wouldn't it be simpler to initialize the FPU on all CPU
that have it? 

> +	bl	setup_common_caches
> +	mtlr	r4
> +	blr

You can use tail call elimination and save one instruction there :-)


	Regards,
	Gabriel

^ permalink raw reply

* [PATCH v2] [POWERPC] ppc32: Fix errata for 603 CPUs
From: Kumar Gala @ 2008-04-21 20:03 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Paul Mackerras

603 CPUs have the same issue that some 750 CPUs have in that they can crash
in funny ways if a store from an FPU register instruction is executed on a
register that has never been initialized since power on.  This patch fixes
it by making sure all FP registers have been properly initialized at kernel
boot.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---

Becky pointed out that I had a copy/paste issue (duplicated the call to
__init_fpu_registers).  Going to find the brown paper bag now.

Paul, (the update) is also in my powerpc-tree since its a pretty trivial patch.

- k

 arch/powerpc/kernel/cpu_setup_6xx.S |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/kernel/cpu_setup_6xx.S
index f1ee0b3..72d1d73 100644
--- a/arch/powerpc/kernel/cpu_setup_6xx.S
+++ b/arch/powerpc/kernel/cpu_setup_6xx.S
@@ -17,7 +17,13 @@
 #include <asm/cache.h>

 _GLOBAL(__setup_cpu_603)
-	b	setup_common_caches
+	mflr	r4
+BEGIN_FTR_SECTION
+	bl	__init_fpu_registers
+END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
+	bl	setup_common_caches
+	mtlr	r4
+	blr
 _GLOBAL(__setup_cpu_604)
 	mflr	r4
 	bl	setup_common_caches
-- 
1.5.4.1

^ permalink raw reply related

* Re: [PATCH 4/5] [POWERPC] QE: implement support for the GPIO LIB API
From: David Brownell @ 2008-04-21 20:01 UTC (permalink / raw)
  To: avorontsov; +Cc: linuxppc-dev
In-Reply-To: <20080421164128.GA28561@polina.dev.rtsoft.ru>

On Monday 21 April 2008, Anton Vorontsov wrote:
>  From: J. Random Hacker
>  Subject: [POWERPC] cleanup board initialization code
> 
>  This patch removes vast amount of machine_arch_initcall()s that were
>  used to solely initialize some hardware, like this:
> 
>  qe_add_gpio_chips();
>  fsl_gtm_init();
>  fsl_spi_init();
>  ...
> 
>  So, instead of calling this stuff from the board files, we implement
>  own arch_initcalls for these functions.

The way other platforms do this is to hav SOC-specific
init code, and have board-specific initcalls call the
relevant SOC-specific setup.

Among other things that facilitates kernels that handle
multiple SOCs (if they're closely-enough related).  That
may not be used by many distros (handhelds.org being at
least a partial exception), but it certainly helps cut
the number of configurations that need build-testing.

- Dave

^ permalink raw reply

* [PATCH] [POWERPC] ppc32: Fix errata for 603 CPUs
From: Kumar Gala @ 2008-04-21 19:57 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Paul Mackerras

603 CPUs have the same issue that some 750 CPUs have in that they can crash
in funny ways if a store from an FPU register instruction is executed on a
register that has never been initialized since power on.  This patch fixes
it by making sure all FP registers have been properly initialized at kernel
boot.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---

Paul, I've put this into my powerpc-next tree since its a pretty trivial
patch.

- k

 arch/powerpc/kernel/cpu_setup_6xx.S |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/kernel/cpu_setup_6xx.S
index f1ee0b3..4a1c3cd 100644
--- a/arch/powerpc/kernel/cpu_setup_6xx.S
+++ b/arch/powerpc/kernel/cpu_setup_6xx.S
@@ -17,7 +17,14 @@
 #include <asm/cache.h>

 _GLOBAL(__setup_cpu_603)
-	b	setup_common_caches
+	mflr	r4
+BEGIN_FTR_SECTION
+	bl	__init_fpu_registers
+END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
+	bl	__init_fpu_registers
+	bl	setup_common_caches
+	mtlr	r4
+	blr
 _GLOBAL(__setup_cpu_604)
 	mflr	r4
 	bl	setup_common_caches
-- 
1.5.4.1

^ permalink raw reply related

* Re: [PATCH 2/2 v3] sysdev,mv64x60: initialization of mv64x60 ethernet, serial and I2C
From: Dale Farnsworth @ 2008-04-21 18:56 UTC (permalink / raw)
  To: Remi Machet; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <1208803572.5789.78.camel@pcds-ts102.slac.stanford.edu>

On Mon, Apr 21, 2008 at 11:46:12AM -0700, Remi Machet wrote:
> If one of the devices of the mv64x60 init fails, the remaining 
> devices are not initialized => This patch changes the code to 
> display an error and continue the initialization.
> 
> Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)

Acked by: Dale Farnsworth <dale@farnsworth.org>

^ permalink raw reply

* [PATCH 2/2 v3] sysdev,mv64x60: initialization of mv64x60 ethernet, serial and I2C
From: Remi Machet @ 2008-04-21 18:46 UTC (permalink / raw)
  To: Dale Farnsworth, Paul Mackerras; +Cc: linuxppc-dev

If one of the devices of the mv64x60 init fails, the remaining 
devices are not initialized => This patch changes the code to 
display an error and continue the initialization.

Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)
---
Integrated the few format changes requested by Dale in the 
previous version of this patch.

--- a/arch/powerpc/sysdev/mv64x60_dev.c
+++ b/arch/powerpc/sysdev/mv64x60_dev.c
@@ -431,9 +431,13 @@ static int __init mv64x60_device_setup(v
 	int err;
 
 	id = 0;
-	for_each_compatible_node(np, "serial", "marvell,mv64360-mpsc")
-		if ((err = mv64x60_mpsc_device_setup(np, id++)))
-			goto error;
+	for_each_compatible_node(np, "serial", "marvell,mv64360-mpsc") {
+		err = mv64x60_mpsc_device_setup(np, id++);
+		if (err)
+			printk(KERN_ERR "Failed to initialize MV64x60 "
+					"serial device %s: error %d.\n",
+					np->full_name, err);
+	}
 
 	id = 0;
 	id2 = 0;
@@ -441,38 +445,44 @@ static int __init mv64x60_device_setup(v
 		pdev = mv64x60_eth_register_shared_pdev(np, id++);
 		if (IS_ERR(pdev)) {
 			err = PTR_ERR(pdev);
-			goto error;
+			printk(KERN_ERR "Failed to initialize MV64x60 "
+					"network block %s: error %d.\n",
+					np->full_name, err);
+			continue;
 		}
 		for_each_child_of_node(np, np2) {
 			if (!of_device_is_compatible(np2,
 					"marvell,mv64360-eth"))
 				continue;
 			err = mv64x60_eth_device_setup(np2, id2++, pdev);
-			if (err) {
-				of_node_put(np2);
-				goto error;
-			}
+			if (err)
+				printk(KERN_ERR "Failed to initialize "
+						"MV64x60 network device %s: "
+						"error %d.\n",
+						np2->full_name, err);
 		}
 	}
 
 	id = 0;
-	for_each_compatible_node(np, "i2c", "marvell,mv64360-i2c")
-		if ((err = mv64x60_i2c_device_setup(np, id++)))
-			goto error;
+	for_each_compatible_node(np, "i2c", "marvell,mv64360-i2c") {
+		err = mv64x60_i2c_device_setup(np, id++);
+		if (err)
+			printk(KERN_ERR "Failed to initialize MV64x60 I2C "
+					"bus %s: error %d.\n",
+					np->full_name, err);
+	}
 
 	/* support up to one watchdog timer */
 	np = of_find_compatible_node(np, NULL, "marvell,mv64360-wdt");
 	if (np) {
 		if ((err = mv64x60_wdt_device_setup(np, id)))
-			goto error;
+			printk(KERN_ERR "Failed to initialize MV64x60 "
+					"Watchdog %s: error %d.\n",
+					np->full_name, err);
 		of_node_put(np);
 	}
 
 	return 0;
-
-error:
-	of_node_put(np);
-	return err;
 }
 arch_initcall(mv64x60_device_setup);
 

^ permalink raw reply

* Re: [PATCH 1/5] [POWERPC] sysdev: implement FSL GTM support
From: Scott Wood @ 2008-04-21 18:39 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-dev
In-Reply-To: <fa686aa40804210703iaa8251ctc125313a8e52f4ef@mail.gmail.com>

On Mon, Apr 21, 2008 at 08:03:31AM -0600, Grant Likely wrote:
> >  +    r) Freescale General-purpose Timers Module
> >  +
> >  +    Required properties:
> >  +      - compatible : should be "fsl,gtm" ("fsl,qe-gtm" in addition for QE
> >  +                     GTMs or "fsl,cpm2-gtm" for CPM2 GTMs).
> 
> I don't think this is specific enough.  It is a very real possibility
> for Freescale to produce another part with a "general purpose timers
> module" that isn't register level compatible (and fsl,i2c is an
> example of what not to do).

If that happens, we'll make up "fsl,gtm2". :-)

>  The compatible string should include the
> exact chip version.  Newer parts can also claim compatibility with
> older ones.
> 
> Defining a 'generic' compatible value is also known as "making stuff up".  :-)

Nothing wrong with making stuff up as long as we do it sanely.

How about something like fsl,gtm-1.0?

> >  +/**
> >  + * gtm_ack_timer16 - acknowledge timer event (free-run timers only)
> >  + * @tmr:       pointer to the gtm_timer structure obtained from gtm_get_timer
> >  + * @events:    events mask to ack
> >  + *
> >  + * Thus function used to acknowledge timer interrupt event, use it inside the
> >  + * interrupt handler.
> >  + */
> >  +static inline void gtm_ack_timer16(struct gtm_timer *tmr, u16 events)
> >  +{
> >  +       out_be16(tmr->gtevr, events);
> >  +}
> 
> Drop 'inline' and expect gcc to do the right thing.

Not in a header...

-Scott

^ permalink raw reply

* Re: [PATCH] [PPC] Remove mpc8272 ads board from arch/ppc
From: Scott Wood @ 2008-04-21 18:29 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <5422E8EE-4AFA-491B-8920-BDEBF596FF00@kernel.crashing.org>

On Mon, Apr 21, 2008 at 10:25:09AM -0500, Kumar Gala wrote:
> 
> On Apr 19, 2008, at 1:14 PM, Grant Likely wrote:
> >On Sat, Apr 19, 2008 at 9:52 AM, Kumar Gala  
> ><galak@kernel.crashing.org> wrote:
> >>We have a board port in arch/powerpc so we dont need this one  
> >>anymore.
> >>
> >>Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> >
> >Personally, I'd rather not do the piecemeal removal of board ports
> >from arch/ppc.  We've only got one release left anyway.  Removing them
> >just generates more churn and has the risk of causing other side
> >effects.
> 
> I can understand it, but I think removing them makes it obvious to  
> anyone that's lurking.  Call in maintainer prerogative :)

Speaking of making it obvious, is it time to put a #warning in some
prominent arch/ppc header?

-Scott

^ permalink raw reply

* [PATCH v7] [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero)
From: Kumar Gala @ 2008-04-21 18:22 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev

Added support to allow an 85xx kernel to be run from a non-zero physical
address (useful for cooperative asymmetric multiprocessing situations and
kdump).  The support can be configured at compile time by setting
CONFIG_PAGE_OFFSET, CONFIG_KERNEL_START, and CONFIG_PHYSICAL_START as
desired.

Alternatively, the kernel build can set CONFIG_RELOCATABLE.  Setting this
config option causes the kernel to determine at runtime the physical
addresses of CONFIG_PAGE_OFFSET and CONFIG_KERNEL_START.  If
CONFIG_RELOCATABLE is set, then CONFIG_PHYSICAL_START has no meaning.
However, CONFIG_PHYSICAL_START will always be used to set the LOAD program
header physical address field in the resulting ELF image.

Currently we are limited to running at a physical address that is modulo
256M.  This is due to how we map TLBs to cover lowmem. This should be
fixed to allow 64M or maybe even 16M alignment in the future.  It is
considered an error to try and run a kernel at a non-aligned physical
address.

All the magic for this support is accomplished by proper initialization
of the kernel memory subsystem and use of ARCH_PFN_OFFSET.

The use of ARCH_PFN_OFFSET only affects normal memory and not IO mappings.
ioremap uses map_page and isn't affected by ARCH_PFN_OFFSET.

/dev/mem continues to allow access to any physical address in the system
regardless of how CONFIG_PHYSICAL_START is set.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---

Improved the grammar of the commit message.

- k

 arch/powerpc/Kconfig                 |   69 ++++++++++++++++++++++++++++++++-
 arch/powerpc/kernel/head_fsl_booke.S |   11 +++++
 arch/powerpc/kernel/prom.c           |    4 ++
 arch/powerpc/kernel/setup_64.c       |    2 +-
 arch/powerpc/mm/fsl_booke_mmu.c      |    2 +-
 arch/powerpc/mm/init_32.c            |    5 ++-
 arch/powerpc/mm/init_64.c            |    3 +-
 arch/powerpc/mm/mem.c                |    5 +-
 include/asm-powerpc/kdump.h          |    5 --
 include/asm-powerpc/page.h           |   45 ++++++++++++++++++----
 include/asm-powerpc/page_32.h        |    6 +++
 11 files changed, 135 insertions(+), 22 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 4bb2e93..fdc755a 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -656,21 +656,76 @@ config LOWMEM_SIZE
 	hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
 	default "0x30000000"

+config RELOCATABLE
+	bool "Build a relocatable kernel (EXPERIMENTAL)"
+	depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
+	help
+	  This builds a kernel image that is capable of running at the
+	  location the kernel is loaded at (some alignment restrictions may
+	  exist).
+
+	  One use is for the kexec on panic case where the recovery kernel
+	  must live at a different physical address than the primary
+	  kernel.
+
+	  Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
+	  it has been loaded at and the compile time physical addresses
+	  CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
+	  setting can still be useful to bootwrappers that need to know the
+	  load location of the kernel (eg. u-boot/mkimage).
+
+config PAGE_OFFSET_BOOL
+	bool "Set custom page offset address"
+	depends on ADVANCED_OPTIONS
+	help
+	  This option allows you to set the kernel virtual address at which
+	  the kernel will map low memory.  This can be useful in optimizing
+	  the virtual memory layout of the system.
+
+	  Say N here unless you know what you are doing.
+
+config PAGE_OFFSET
+	hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
+	default "0xc0000000"
+
 config KERNEL_START_BOOL
 	bool "Set custom kernel base address"
 	depends on ADVANCED_OPTIONS
 	help
 	  This option allows you to set the kernel virtual address at which
-	  the kernel will map low memory (the kernel image will be linked at
-	  this address).  This can be useful in optimizing the virtual memory
-	  layout of the system.
+	  the kernel will be loaded.  Normally this should match PAGE_OFFSET
+	  however there are times (like kdump) that one might not want them
+	  to be the same.

 	  Say N here unless you know what you are doing.

 config KERNEL_START
 	hex "Virtual address of kernel base" if KERNEL_START_BOOL
+	default PAGE_OFFSET if PAGE_OFFSET_BOOL
+	default "0xc2000000" if CRASH_DUMP
 	default "0xc0000000"

+config PHYSICAL_START_BOOL
+	bool "Set physical address where the kernel is loaded"
+	depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
+	help
+	  This gives the physical address where the kernel is loaded.
+
+	  Say N here unless you know what you are doing.
+
+config PHYSICAL_START
+	hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
+	default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
+	default "0x00000000"
+
+config PHYSICAL_ALIGN
+	hex
+	default "0x10000000" if FSL_BOOKE
+	help
+	  This value puts the alignment restrictions on physical address
+	  where kernel is loaded and run from. Kernel is compiled for an
+	  address which meets above alignment restriction.
+
 config TASK_SIZE_BOOL
 	bool "Set custom user task size"
 	depends on ADVANCED_OPTIONS
@@ -717,9 +772,17 @@ config PIN_TLB
 endmenu

 if PPC64
+config PAGE_OFFSET
+	hex
+	default "0xc000000000000000"
 config KERNEL_START
 	hex
+	default "0xc000000002000000" if CRASH_DUMP
 	default "0xc000000000000000"
+config PHYSICAL_START
+	hex
+	default "0x02000000" if CRASH_DUMP
+	default "0x00000000"
 endif

 source "net/Kconfig"
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 4ff7441..e581524 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -371,6 +371,17 @@ skpinv:	addi	r6,r6,1				/* Increment */

 	bl	early_init

+#ifdef CONFIG_RELOCATABLE
+	lis	r3,kernstart_addr@ha
+	la	r3,kernstart_addr@l(r3)
+#ifdef CONFIG_PHYS_64BIT
+	stw	r23,0(r3)
+	stw	r25,4(r3)
+#else
+	stw	r25,0(r3)
+#endif
+#endif
+
 	mfspr	r3,SPRN_TLB1CFG
 	andi.	r3,r3,0xfff
 	lis	r4,num_tlbcam_entries@ha
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 3bfe783..2aefe2a 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -53,6 +53,7 @@
 #include <asm/pci-bridge.h>
 #include <asm/phyp_dump.h>
 #include <asm/kexec.h>
+#include <mm/mmu_decl.h>

 #ifdef DEBUG
 #define DBG(fmt...) printk(KERN_ERR fmt)
@@ -978,7 +979,10 @@ static int __init early_init_dt_scan_memory(unsigned long node,
 		}
 #endif
 		lmb_add(base, size);
+
+		memstart_addr = min((u64)memstart_addr, base);
 	}
+
 	return 0;
 }

diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 31ada9f..153a48d 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -435,7 +435,7 @@ void __init setup_system(void)
 		printk("htab_address                  = 0x%p\n", htab_address);
 	printk("htab_hash_mask                = 0x%lx\n", htab_hash_mask);
 #if PHYSICAL_START > 0
-	printk("physical_start                = 0x%x\n", PHYSICAL_START);
+	printk("physical_start                = 0x%lx\n", PHYSICAL_START);
 #endif
 	printk("-----------------------------------------------------\n");

diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index ada249b..ce10e2b 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -202,7 +202,7 @@ adjust_total_lowmem(void)
 		cam_max_size = max_lowmem_size;

 	/* adjust lowmem size to max_lowmem_size */
-	ram = min(max_lowmem_size, total_lowmem);
+	ram = min(max_lowmem_size, (phys_addr_t)total_lowmem);

 	/* Calculate CAM values */
 	__cam0 = 1UL << 2 * (__ilog2(ram) / 2);
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index 47325f2..578750e 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -59,7 +59,10 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
 unsigned long total_memory;
 unsigned long total_lowmem;

-phys_addr_t memstart_addr;
+phys_addr_t memstart_addr = (phys_addr_t)~0ull;
+EXPORT_SYMBOL(memstart_addr);
+phys_addr_t kernstart_addr;
+EXPORT_SYMBOL(kernstart_addr);
 phys_addr_t lowmem_end_addr;

 int boot_mapsize;
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index 698bd00..c5ac532 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -72,7 +72,8 @@
 #warning TASK_SIZE is smaller than it needs to be.
 #endif

-phys_addr_t memstart_addr;
+phys_addr_t memstart_addr = ~0;
+phys_addr_t kernstart_addr;

 void free_initmem(void)
 {
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 16def4d..0062e6b 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -216,7 +216,7 @@ void __init do_init_bootmem(void)
 	unsigned long total_pages;
 	int boot_mapsize;

-	max_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
+	max_low_pfn = max_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
 	total_pages = (lmb_end_of_DRAM() - memstart_addr) >> PAGE_SHIFT;
 #ifdef CONFIG_HIGHMEM
 	total_pages = total_lowmem >> PAGE_SHIFT;
@@ -232,7 +232,8 @@ void __init do_init_bootmem(void)

 	start = lmb_alloc(bootmap_pages << PAGE_SHIFT, PAGE_SIZE);

-	boot_mapsize = init_bootmem(start >> PAGE_SHIFT, total_pages);
+	min_low_pfn = MEMORY_START >> PAGE_SHIFT;
+	boot_mapsize = init_bootmem_node(NODE_DATA(0), start >> PAGE_SHIFT, min_low_pfn, max_low_pfn);

 	/* Add active regions with valid PFNs */
 	for (i = 0; i < lmb.memory.cnt; i++) {
diff --git a/include/asm-powerpc/kdump.h b/include/asm-powerpc/kdump.h
index 10e8eb1..f6c93c7 100644
--- a/include/asm-powerpc/kdump.h
+++ b/include/asm-powerpc/kdump.h
@@ -11,16 +11,11 @@

 #ifdef CONFIG_CRASH_DUMP

-#define PHYSICAL_START	KDUMP_KERNELBASE
 #define KDUMP_TRAMPOLINE_START	0x0100
 #define KDUMP_TRAMPOLINE_END	0x3000

 #define KDUMP_MIN_TCE_ENTRIES	2048

-#else /* !CONFIG_CRASH_DUMP */
-
-#define PHYSICAL_START	0x0
-
 #endif /* CONFIG_CRASH_DUMP */

 #ifndef __ASSEMBLY__
diff --git a/include/asm-powerpc/page.h b/include/asm-powerpc/page.h
index 6c85060..cffdf0e 100644
--- a/include/asm-powerpc/page.h
+++ b/include/asm-powerpc/page.h
@@ -12,6 +12,7 @@

 #include <asm/asm-compat.h>
 #include <asm/kdump.h>
+#include <asm/types.h>

 /*
  * On PPC32 page size is 4K. For PPC64 we support either 4K or 64K software
@@ -42,8 +43,23 @@
  *
  * The kdump dump kernel is one example where KERNELBASE != PAGE_OFFSET.
  *
- * To get a physical address from a virtual one you subtract PAGE_OFFSET,
- * _not_ KERNELBASE.
+ * PAGE_OFFSET is the virtual address of the start of lowmem.
+ *
+ * PHYSICAL_START is the physical address of the start of the kernel.
+ *
+ * MEMORY_START is the physical address of the start of lowmem.
+ *
+ * KERNELBASE, PAGE_OFFSET, and PHYSICAL_START are all configurable on
+ * ppc32 and based on how they are set we determine MEMORY_START.
+ *
+ * For the linear mapping the following equation should be true:
+ * KERNELBASE - PAGE_OFFSET = PHYSICAL_START - MEMORY_START
+ *
+ * Also, KERNELBASE >= PAGE_OFFSET and PHYSICAL_START >= MEMORY_START
+ *
+ * There are two was to determine a physical address from a virtual one:
+ * va = pa + PAGE_OFFSET - MEMORY_START
+ * va = pa + KERNELBASE - PHYSICAL_START
  *
  * If you want to know something's offset from the start of the kernel you
  * should subtract KERNELBASE.
@@ -51,20 +67,33 @@
  * If you want to test if something's a kernel address, use is_kernel_addr().
  */

-#define PAGE_OFFSET     ASM_CONST(CONFIG_KERNEL_START)
-#define KERNELBASE      (PAGE_OFFSET + PHYSICAL_START)
-#define LOAD_OFFSET	PAGE_OFFSET
+#define KERNELBASE      ASM_CONST(CONFIG_KERNEL_START)
+#define PAGE_OFFSET	ASM_CONST(CONFIG_PAGE_OFFSET)
+#define LOAD_OFFSET	ASM_CONST((CONFIG_KERNEL_START-CONFIG_PHYSICAL_START))
+
+#if defined(CONFIG_RELOCATABLE) && defined(CONFIG_FLATMEM)
+#ifndef __ASSEMBLY__
+extern phys_addr_t memstart_addr;
+extern phys_addr_t kernstart_addr;
+#endif
+#define PHYSICAL_START	kernstart_addr
+#define MEMORY_START	memstart_addr
+#else
+#define PHYSICAL_START	ASM_CONST(CONFIG_PHYSICAL_START)
+#define MEMORY_START	(PHYSICAL_START + PAGE_OFFSET - KERNELBASE)
+#endif

 #ifdef CONFIG_FLATMEM
-#define pfn_valid(pfn)		((pfn) < max_mapnr)
+#define ARCH_PFN_OFFSET		(MEMORY_START >> PAGE_SHIFT)
+#define pfn_valid(pfn)		((pfn) >= ARCH_PFN_OFFSET && (pfn) < (ARCH_PFN_OFFSET + max_mapnr))
 #endif

 #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
 #define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)
 #define virt_addr_valid(kaddr)	pfn_valid(__pa(kaddr) >> PAGE_SHIFT)

-#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET))
-#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
+#define __va(x) ((void *)((unsigned long)(x) - PHYSICAL_START + KERNELBASE))
+#define __pa(x) ((unsigned long)(x) + PHYSICAL_START - KERNELBASE)

 /*
  * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,
diff --git a/include/asm-powerpc/page_32.h b/include/asm-powerpc/page_32.h
index 51f8134..ebfae53 100644
--- a/include/asm-powerpc/page_32.h
+++ b/include/asm-powerpc/page_32.h
@@ -1,6 +1,12 @@
 #ifndef _ASM_POWERPC_PAGE_32_H
 #define _ASM_POWERPC_PAGE_32_H

+#if defined(CONFIG_PHYSICAL_ALIGN) && (CONFIG_PHYSICAL_START != 0)
+#if (CONFIG_PHYSICAL_START % CONFIG_PHYSICAL_ALIGN) != 0
+#error "CONFIG_PHYSICAL_START must be a multiple of CONFIG_PHYSICAL_ALIGN"
+#endif
+#endif
+
 #define VM_DATA_DEFAULT_FLAGS	VM_DATA_DEFAULT_FLAGS32

 #ifdef CONFIG_NOT_COHERENT_CACHE
-- 
1.5.4.1

^ permalink raw reply related

* Re: [PATCH 2/2 v2] sysdev,mv64x60: initialization of mv64x60 ethernet, serial and I2C
From: Dale Farnsworth @ 2008-04-21 18:23 UTC (permalink / raw)
  To: Remi Machet; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <1208799434.5789.53.camel@pcds-ts102.slac.stanford.edu>

On Mon, Apr 21, 2008 at 10:37:14AM -0700, Remi Machet wrote:
> If one of the devices of the mv64x60 init fails, the remaining 
> devices are not initialized => This patch change the code to 
> display an error and continue the initialization.
> 
> Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)
> ---
> This is the second part of the re-submission of my patch of 4/17/2008
> titled "[PATCH] sysdev,mv64x60: initialization of mv64x60 ethernet, 
> serial and I2C"
> 
> --- a/arch/powerpc/sysdev/mv64x60_dev.c
> +++ b/arch/powerpc/sysdev/mv64x60_dev.c
> @@ -431,9 +431,14 @@ static int __init mv64x60_device_setup(void)
>  	int err;
>  
>  	id = 0;
> -	for_each_compatible_node(np, "serial", "marvell,mv64360-mpsc")
> -		if ((err = mv64x60_mpsc_device_setup(np, id++)))
> -			goto error;
> +	for_each_compatible_node(np, "serial", "marvell,mv64360-mpsc") {
> +		err = mv64x60_mpsc_device_setup(np, id++);
> +		if (err) {
> +			printk(KERN_ERR "Failed to initialize MV64x60 " \

No need for the backslash continuation above.  Also below.

> +					"serial device %s: error %d.\n",
> +					np->full_name, err);
> +		};

You don't need the braces around the single printk statement.

> +	};

No need for the semi-colon following closing brace, also below.

>  
>  	id = 0;
>  	id2 = 0;
> @@ -441,38 +446,46 @@ static int __init mv64x60_device_setup(void)
>  		pdev = mv64x60_eth_register_shared_pdev(np, id++);
>  		if (IS_ERR(pdev)) {
>  			err = PTR_ERR(pdev);
> -			goto error;
> -		}
> +			printk(KERN_ERR "Failed to initialize MV64x60 " \
> +					"network block %s: error %d.\n",
> +					np->full_name, err);
> +			continue;
> +		};
>  		for_each_child_of_node(np, np2) {
>  			if (!of_device_is_compatible(np2,
>  					"marvell,mv64360-eth"))
>  				continue;
>  			err = mv64x60_eth_device_setup(np2, id2++, pdev);
>  			if (err) {
> -				of_node_put(np2);
> -				goto error;
> +				printk(KERN_ERR "Failed to initialize " \
> +						"MV64x60 network device %s: " \
> +						"error %d.\n",
> +						np2->full_name, err);
>  			}
>  		}
>  	}
>  
>  	id = 0;
> -	for_each_compatible_node(np, "i2c", "marvell,mv64360-i2c")
> -		if ((err = mv64x60_i2c_device_setup(np, id++)))
> -			goto error;
> +	for_each_compatible_node(np, "i2c", "marvell,mv64360-i2c") {
> +		err = mv64x60_i2c_device_setup(np, id++);
> +		if (err) {
> +			printk(KERN_ERR "Failed to initialize MV64x60 I2C " \
> +					"bus %s: error %d.\n",
> +					np->full_name, err);
> +		};
> +	};
>  
>  	/* support up to one watchdog timer */
>  	np = of_find_compatible_node(np, NULL, "marvell,mv64360-wdt");
>  	if (np) {
>  		if ((err = mv64x60_wdt_device_setup(np, id)))
> -			goto error;
> +			printk(KERN_ERR "Failed to initialize MV64x60 " \
> +					"Watchdog %s: error %d.\n",
> +					np->full_name, err);
>  		of_node_put(np);
>  	}
>  
>  	return 0;
> -
> -error:
> -	of_node_put(np);
> -	return err;
>  }
>  arch_initcall(mv64x60_device_setup);

^ permalink raw reply

* Re: SecretLab 2.6.24 with USB
From: Grant Likely @ 2008-04-21 18:09 UTC (permalink / raw)
  To: Sam Karp; +Cc: linuxppc-embedded
In-Reply-To: <800687fe0804141927y1f6ea75cv7ad0ba68b4fa637a@mail.gmail.com>

On Mon, Apr 14, 2008 at 8:27 PM, Sam Karp <sam.d.karp@gmail.com> wrote:
> Hi all,
>
> I've downloaded the SecretLab Xilinx Linux 2.6.24 Kernel and I'm trying to
> use a thumbdrive with the kernel.  I'm booting from a ramdisk and insert the
> thumbdrive but I have no /dev/sd* or /dev/hd* blocks.  Is there anything I
> need to add to the kernel or design to ensure that the thumbdrive is working
> or getting power?

Sorry I didn't get back to you earlier.  Your best bet is to use
Xilinx's git tree and manually patch in the c67x00 driver from Peter
Korsgaard's driver.

http://www.mail-archive.com/linux-usb@vger.kernel.org/msg01907.html
http://www.mail-archive.com/linux-usb@vger.kernel.org/msg01908.html
http://www.mail-archive.com/linux-usb@vger.kernel.org/msg01906.html
http://www.mail-archive.com/linux-usb@vger.kernel.org/msg01907.html

I haven't been keeping my tree up to date lately.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply

* Re: [PATCH 1/2 v2] sysdev,mv64x60: I2C defaults
From: Dale Farnsworth @ 2008-04-21 17:55 UTC (permalink / raw)
  To: Remi Machet; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <1208799408.5789.52.camel@pcds-ts102.slac.stanford.edu>

On Mon, Apr 21, 2008 at 10:36:48AM -0700, Remi Machet wrote:
> I2C parameters freq_m and freq_n are assigned default in the code
> but if those properties are not found in the open firmware description 
> the init returns an error => the code now uses the default
> values if the properties are not found.
> 
> Signed-off-by: Remi Machet (rmachet@slac.stanford.edu)

Acked-by: Dale Farnsworth <dale@farnsworth.org>

^ permalink raw reply

* Re: [RFC fs_enet: Convert MII bitbang driver to use GPIO lib
From: Scott Wood @ 2008-04-21 17:56 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linuxppc-dev, netdev
In-Reply-To: <200804181334.34229.laurentp@cse-semaphore.com>

On Fri, Apr 18, 2008 at 01:34:29PM +0200, Laurent Pinchart wrote:
> Scott Wood was concerned in 
> http://patchwork.ozlabs.org/linuxppc/patch?id=17490 that the gpio lib might 
> be an unnecessary burden for memory-constraint platforms. Should we keep two 
> mdio bitbang drivers, one with direct access to the ports and one using gpio 
> lib ? The later solves the concurrent access issues present in the current 
> fs_enet mdio bitbang driber.

The memory-constrained platform I had in mind was 8xx, which doesn't use
bitbanged MDIO.  It might nice to keep the gpiolib bit separate to avoid
situations such as ep8248e where mdiobb would be the only thing requiring
a gpiolib binding, though -- but it shouldn't be two separate bitbang
drivers, just the existing bitbang driver plus some glue code that binds
it to gpiolib.

-Scott

^ permalink raw reply

* Re: Patches added to powerpc.git master and powerpc-next branches
From: Kumar Gala @ 2008-04-21 17:51 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev
In-Reply-To: <18441.58154.608911.337978@cargo.ozlabs.ibm.com>


On Apr 19, 2008, at 7:18 AM, Paul Mackerras wrote:
> Kumar Gala writes:
>
>> [POWERPC] 85xx: Add support for relocatble kernel (and booting at  
>> non-
>> zero)
>
> Should be OK to go though probably not in the first batch.  I want to
> look through it carefully again since it's touching code that is
> common to a lot of platforms.  The patch description looks reasonable
> as to what it explains but the english could use a touch-up here or
> there (e.g. "a physical address that is module 256M" doesn't actually
> mean anything; "a physical address that is 0 modulo 256M" would be
> correct).

Ok.  I'll have my grammar police review it and repost.

>> [POWERPC] Port fixmap from x86 and use for kmap_atomic
>
> Once again I want to go through it carefully and understand how it all
> works, and in particular understand things like the way it ensures
> that the base address for the kmap region is aligned to a 4M boundary
> so all the kmap ptes are in a single page (assuming it does :).

I'm not clear on why this is needed.  I can see value in having the  
PGD entry in place but the pte PAs would be changing all the time so I  
don't see what benefit there is in keeping them in one page.

For normal kmap ptes we cover things in one PGD via:

#define PKMAP_BASE      ((FIXADDR_BOOT_START - PAGE_SIZE*(LAST_PKMAP +  
1)) & PMD_MASK)

The kmap_atomic ptes do NOT have a similar guarantee as they are  
controlled via fixmap.  However we do "pre-allocate" the PGD via  
calling map_page() on all fixmap addresses.

- k

^ permalink raw reply


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