diff mbox

[v2] powerpc/85xx:Add BSC9131 RDB Support

Message ID 1331973588-29896-1-git-send-email-prabhakar@freescale.com (mailing list archive)
State Superseded
Delegated to: Kumar Gala
Headers show

Commit Message

Prabhakar Kushwaha March 17, 2012, 8:39 a.m. UTC
BSC9131RDB is a Freescale reference design board for BSC9131 SoC.The BSC9131 is
integrated SoC that targets Femto base station market. It combines Power
Architecture e500v2 and DSP StarCore SC3850 core technologies with MAPLE-B2F
baseband acceleration processing elements.

The BSC9131 SoC includes the following function and features:
    . Power Architecture subsystem including a e500 processor with 256-Kbyte shared
      L2 cache
    . StarCore SC3850 DSP subsystem with a 512-Kbyte private L2 cache
    . The Multi Accelerator Platform Engine for Femto BaseStation Baseband
      Processing (MAPLE-B2F)
    . A multi-standard baseband algorithm accelerator for Channel Decoding/Encoding,
      Fourier Transforms, UMTS chip rate processing, LTE UP/DL Channel processing,
      and CRC algorithms
    . Consists of accelerators for Convolution, Filtering, Turbo Encoding,
      Turbo Decoding, Viterbi decoding, Chiprate processing, and Matrix Inversion
      operations
    . DDR3/3L memory interface with 32-bit data width without ECC and 16-bit with
      ECC, up to 400-MHz clock/800 MHz data rate
    . Dedicated security engine featuring trusted boot
    . DMA controller
    . OCNDMA with four bidirectional channels
    . Interfaces
    . Two triple-speed Gigabit Ethernet controllers featuring network acceleration
      including IEEE 1588. v2 hardware support and virtualization (eTSEC)
    . eTSEC 1 supports RGMII/RMII
    . eTSEC 2 supports RGMII
    . High-speed USB 2.0 host and device controller with ULPI interface
    . Enhanced secure digital (SD/MMC) host controller (eSDHC)
    . Antenna interface controller (AIC), supporting three industry standard
      JESD207/three custom ADI RF interfaces (two dual port and one single port)
      and three MAXIM's MaxPHY serial interfaces
    . ADI lanes support both full duplex FDD support and half duplex TDD support
    . Universal Subscriber Identity Module (USIM) interface that facilitates
      communication to SIM cards or Eurochip pre-paid phone cards
    . TDM with one TDM port
    . Two DUART, four eSPI, and two I2C controllers
    . Integrated Flash memory controller (IFC)
    . TDM with 256 channels
    . GPIO
    . Sixteen 32-bit timers

The DSP portion of the SoC consists of DSP core (SC3850) and various
accelerators pertaining to DSP operations.

 BSC9131RDB Overview
 ----------------------
     BSC9131 SoC
     1Gbyte DDR3 (on board DDR)
     128Mbyte 2K page size NAND Flash
     256 Kbit M24256 I2C EEPROM
     128 Mbit SPI Flash memory
     USB-ULPI
     eTSEC1: Connected to RGMII PHY
     eTSEC2: Connected to RGMII PHY
     DUART interface: supports one UARTs up to 115200 bps for console display

 Linux runs on e500v2 core and access some DSP peripherals like AIC

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
Signed-off-by: Akhil Goyal <Akhil.Goyal@freescale.com>
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
Signed-off-by: Rajan Srivastava <rajan.srivastava@freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
---
 Note:   Name of PSC9131 has been changed to BSC9131 because of new nomenclature
	Please reject earlier patch"powerpc/85xx:Add PSC9131 RDB Support"
	  http://patchwork.ozlabs.org/patch/146349/

 Beased on http://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git
	    branch master

 Changes for v2: 
 	- Change board file name as bsc913x_rdb.c
	- Removed all I2C's board device. A separate patch will be send.
	- Combined SPI's 2 RFS partition into single RFS parition
	- Added SEC/crypto node in dts

 arch/powerpc/boot/dts/bsc9131rdb.dts          |   34 +++++
 arch/powerpc/boot/dts/bsc9131rdb.dtsi         |  142 ++++++++++++++++++
 arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi |  193 +++++++++++++++++++++++++
 arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi  |   59 ++++++++
 arch/powerpc/platforms/85xx/Kconfig           |    9 ++
 arch/powerpc/platforms/85xx/Makefile          |    1 +
 arch/powerpc/platforms/85xx/bsc913x_rdb.c     |   95 ++++++++++++
 7 files changed, 533 insertions(+), 0 deletions(-)
 create mode 100644 arch/powerpc/boot/dts/bsc9131rdb.dts
 create mode 100644 arch/powerpc/boot/dts/bsc9131rdb.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
 create mode 100644 arch/powerpc/platforms/85xx/bsc913x_rdb.c

Comments

Kumar Gala March 21, 2012, 5:20 p.m. UTC | #1
On Mar 17, 2012, at 3:39 AM, Prabhakar Kushwaha wrote:

> BSC9131RDB is a Freescale reference design board for BSC9131 SoC.The BSC9131 is
> integrated SoC that targets Femto base station market. It combines Power
> Architecture e500v2 and DSP StarCore SC3850 core technologies with MAPLE-B2F
> baseband acceleration processing elements.
> 
> The BSC9131 SoC includes the following function and features:
>    . Power Architecture subsystem including a e500 processor with 256-Kbyte shared
>      L2 cache
>    . StarCore SC3850 DSP subsystem with a 512-Kbyte private L2 cache
>    . The Multi Accelerator Platform Engine for Femto BaseStation Baseband
>      Processing (MAPLE-B2F)
>    . A multi-standard baseband algorithm accelerator for Channel Decoding/Encoding,
>      Fourier Transforms, UMTS chip rate processing, LTE UP/DL Channel processing,
>      and CRC algorithms
>    . Consists of accelerators for Convolution, Filtering, Turbo Encoding,
>      Turbo Decoding, Viterbi decoding, Chiprate processing, and Matrix Inversion
>      operations
>    . DDR3/3L memory interface with 32-bit data width without ECC and 16-bit with
>      ECC, up to 400-MHz clock/800 MHz data rate
>    . Dedicated security engine featuring trusted boot
>    . DMA controller
>    . OCNDMA with four bidirectional channels
>    . Interfaces
>    . Two triple-speed Gigabit Ethernet controllers featuring network acceleration
>      including IEEE 1588. v2 hardware support and virtualization (eTSEC)
>    . eTSEC 1 supports RGMII/RMII
>    . eTSEC 2 supports RGMII
>    . High-speed USB 2.0 host and device controller with ULPI interface
>    . Enhanced secure digital (SD/MMC) host controller (eSDHC)
>    . Antenna interface controller (AIC), supporting three industry standard
>      JESD207/three custom ADI RF interfaces (two dual port and one single port)
>      and three MAXIM's MaxPHY serial interfaces
>    . ADI lanes support both full duplex FDD support and half duplex TDD support
>    . Universal Subscriber Identity Module (USIM) interface that facilitates
>      communication to SIM cards or Eurochip pre-paid phone cards
>    . TDM with one TDM port
>    . Two DUART, four eSPI, and two I2C controllers
>    . Integrated Flash memory controller (IFC)
>    . TDM with 256 channels
>    . GPIO
>    . Sixteen 32-bit timers
> 
> The DSP portion of the SoC consists of DSP core (SC3850) and various
> accelerators pertaining to DSP operations.
> 
> BSC9131RDB Overview
> ----------------------
>     BSC9131 SoC
>     1Gbyte DDR3 (on board DDR)
>     128Mbyte 2K page size NAND Flash
>     256 Kbit M24256 I2C EEPROM
>     128 Mbit SPI Flash memory
>     USB-ULPI
>     eTSEC1: Connected to RGMII PHY
>     eTSEC2: Connected to RGMII PHY
>     DUART interface: supports one UARTs up to 115200 bps for console display
> 
> Linux runs on e500v2 core and access some DSP peripherals like AIC
> 
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
> Signed-off-by: Akhil Goyal <Akhil.Goyal@freescale.com>
> Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
> Signed-off-by: Rajan Srivastava <rajan.srivastava@freescale.com>
> Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
> ---
> Note:   Name of PSC9131 has been changed to BSC9131 because of new nomenclature
> 	Please reject earlier patch"powerpc/85xx:Add PSC9131 RDB Support"
> 	  http://patchwork.ozlabs.org/patch/146349/
> 
> Beased on http://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git
> 	    branch master
> 
> Changes for v2: 
> 	- Change board file name as bsc913x_rdb.c
> 	- Removed all I2C's board device. A separate patch will be send.
> 	- Combined SPI's 2 RFS partition into single RFS parition
> 	- Added SEC/crypto node in dts
> 
> arch/powerpc/boot/dts/bsc9131rdb.dts          |   34 +++++
> arch/powerpc/boot/dts/bsc9131rdb.dtsi         |  142 ++++++++++++++++++
> arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi |  193 +++++++++++++++++++++++++
> arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi  |   59 ++++++++
> arch/powerpc/platforms/85xx/Kconfig           |    9 ++
> arch/powerpc/platforms/85xx/Makefile          |    1 +
> arch/powerpc/platforms/85xx/bsc913x_rdb.c     |   95 ++++++++++++
> 7 files changed, 533 insertions(+), 0 deletions(-)
> create mode 100644 arch/powerpc/boot/dts/bsc9131rdb.dts
> create mode 100644 arch/powerpc/boot/dts/bsc9131rdb.dtsi
> create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
> create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
> create mode 100644 arch/powerpc/platforms/85xx/bsc913x_rdb.c

[ Fix commit message so it wraps at 76 char columns 


> diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dtsi b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> new file mode 100644
> index 0000000..8906562
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> @@ -0,0 +1,142 @@
> +/*
> + * BSC9131 RDB Device Tree Source stub (no addresses or top-level ranges)
> + *
> + * Copyright 2011-2012 Freescale Semiconductor Inc.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are met:
> + *     * Redistributions of source code must retain the above copyright
> + *       notice, this list of conditions and the following disclaimer.
> + *     * Redistributions in binary form must reproduce the above copyright
> + *       notice, this list of conditions and the following disclaimer in the
> + *       documentation and/or other materials provided with the distribution.
> + *     * Neither the name of Freescale Semiconductor nor the
> + *       names of its contributors may be used to endorse or promote products
> + *       derived from this software without specific prior written permission.
> + *
> + *
> + * ALTERNATIVELY, this software may be distributed under the terms of the
> + * GNU General Public License ("GPL") as published by the Free Software
> + * Foundation, either version 2 of that License or (at your option) any
> + * later version.
> + *
> + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
> + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
> + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +&board_ifc {
> +
> +	nand@0,0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "fsl,ifc-nand";
> +		reg = <0x0 0x0 0x4000>;
> +
> +		partition@0 {
> +			/* This location must not be altered  */
> +			/* 3MB for u-boot Bootloader Image */
> +			reg = <0x0 0x00300000>;
> +			label = "NAND U-Boot Image";
> +			read-only;
> +		};
> +
> +		partition@300000 {
> +			/* 1MB for DTB Image */
> +			reg = <0x00300000 0x00100000>;
> +			label = "NAND DTB Image";
> +		};
> +
> +		partition@400000 {
> +			/* 8MB for Linux Kernel Image */
> +			reg = <0x00400000 0x00800000>;
> +			label = "NAND Linux Kernel Image";
> +		};
> +
> +		partition@c00000 {
> +			/* Rest space for Root file System Image */
> +			reg = <0x00c00000 0x07400000>;
> +			label = " NAND RFS Image";

extra white space on label string

> +		};
> +	};
> +};
> +
> +&board_soc {
> +	/* BSC9131RDB does not have any device on i2c@3100 */
> +	i2c@3100 {
> +		status = "disabled";
> +	};
> +
> +	spi@7000 {
> +		flash@0 {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			compatible = "spansion,s25sl12801";
> +			reg = <0>;
> +			spi-max-frequency = <50000000>;
> +
> +			/* 512KB for u-boot Bootloader Image */
> +			partition@0 {
> +				reg = <0x0 0x00080000>;
> +				label = "SPI Flash U-Boot Image";
> +				read-only;
> +			};
> +
> +			/* 512KB for DTB Image */
> +			partition@80000 {
> +				reg = <0x00080000 0x00080000>;
> +				label = "SPI Flash DTB Image";
> +			};
> +
> +			/* 4MB for Linux Kernel Image */
> +			partition@100000 {
> +				reg = <0x00100000 0x00400000>;
> +				label = "SPI Flash Kernel Image";
> +			};
> +
> +			/*11MB for RFS Image */
> +			partition@500000 {
> +				reg = <0x00500000 0x00B00000>;
> +				label = "SPI Flash RFS Image";
> +			};
> +
> +		};
> +	};
> +
> +	usb@22000 {
> +		phy_type = "ulpi";
> +	};
> +
> +	mdio@24000 {
> +		phy0: ethernet-phy@0 {
> +			interrupts = <3 1 0 0>;
> +			reg = <0x0>;
> +		};
> +
> +		phy1: ethernet-phy@1 {
> +			interrupts = <2 1 0 0>;
> +			reg = <0x3>;
> +		};
> +	};
> +
> +	sdhci@2e000 {
> +		status = "disabled";
> +	};
> +
> +	enet0: ethernet@b0000 {
> +		phy-handle = <&phy0>;
> +		phy-connection-type = "rgmii-id";
> +	};
> +
> +	enet1: ethernet@b1000 {
> +		phy-handle = <&phy1>;
> +		phy-connection-type = "rgmii-id";
> +	};
> +};

[snip]

> diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> new file mode 100644
> index 0000000..611c289
> --- /dev/null
> +++ b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> @@ -0,0 +1,95 @@
> +/*
> + * BSC913xRDB Board Setup
> + *
> + * Author: Priyanka Jain <Priyanka.Jain@freescale.com>
> + *
> + * Copyright 2011-2012 Freescale Semiconductor Inc.
> + *
> + * This program is free software; you can redistribute  it and/or modify it
> + * under  the terms of  the GNU General  Public License as published by the
> + * Free Software Foundation;  either version 2 of the  License, or (at your
> + * option) any later version.
> + */
> +
> +#include <linux/of_platform.h>
> +#include <linux/pci.h>
> +#include <asm/mpic.h>
> +#include <sysdev/fsl_soc.h>
> +#include <asm/udbg.h>
> +
> +void __init bsc913x_rdb_pic_init(void)
> +{
> +	struct mpic *mpic;
> +	struct resource r;
> +	struct device_node *np;
> +
> +	np = of_find_node_by_type(NULL, "open-pic");
> +	if (!np) {
> +		pr_err("bsc913x: Could not find open-pic node\n");
> +		return;
> +	}
> +
> +	if (of_address_to_resource(np, 0, &r)) {
> +		pr_err("bsc913x: Failed to map mpic register space\n");
> +		of_node_put(np);
> +		return;
> +	}
> +
> +	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
> +	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
> +	  0, 256, " OpenPIC  ");
> +
> +	of_node_put(np);
> +
> +	if (!mpic)
> +		pr_err("bsc913x: Failed to allocate MPIC structure\n");
> +	else
> +		mpic_init(mpic);
> +}
> +

This code is still out of date w/other board ports.  Have you tried building this against upstream??

> +/*
> + * Setup the architecture
> + */
> +static void __init bsc913x_rdb_setup_arch(void)
> +{
> +	if (ppc_md.progress)
> +		ppc_md.progress("bsc913x_rdb_setup_arch()", 0);
> +
> +	pr_info("bsc913x board from Freescale Semiconductor\n");
> +}
> +
> +static struct of_device_id __initdata bsc913x_rdb_ids[] = {
> +	{ .type = "soc", },
> +	{ .compatible = "soc", },
> +	{ .compatible = "simple-bus", },
> +	{ .compatible = "gianfar", },
> +	{},
> +};
> +
> +static int __init bsc913x_rdb_publish_devices(void)
> +{
> +	return of_platform_bus_probe(NULL, bsc913x_rdb_ids, NULL);
> +}
> +machine_device_initcall(bsc9131_rdb, bsc913x_rdb_publish_devices);
> +
> +/*
> + * Called very early, device-tree isn't unflattened
> + */
> +
> +static int __init bsc9131_rdb_probe(void)
> +{
> +	unsigned long root = of_get_flat_dt_root();
> +
> +	return of_flat_dt_is_compatible(root, "fsl,bsc9131rdb");
> +}
> +
> +define_machine(bsc9131_rdb) {
> +	.name			= "BSC9131 RDB",
> +	.probe			= bsc9131_rdb_probe,
> +	.setup_arch		= bsc913x_rdb_setup_arch,
> +	.init_IRQ		= bsc913x_rdb_pic_init,
> +	.get_irq		= mpic_get_irq,
> +	.restart		= fsl_rstcr_restart,
> +	.calibrate_decr		= generic_calibrate_decr,
> +	.progress		= udbg_progress,
> +};
> -- 
> 1.7.5.4
> 
> 
> 
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
Prabhakar Kushwaha March 21, 2012, 5:29 p.m. UTC | #2
Hi Kumar,

Thanks for reviewing it.
Please find my response in-lined.

> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Wednesday, March 21, 2012 10:51 PM
> To: Kushwaha Prabhakar-B32579
> Cc: linuxppc-dev@lists.ozlabs.org; devicetree-discuss@lists.ozlabs.org;
> Jain Priyanka-B32167; Mehresh Ramneek-B31383; Srivastava Rajan-B34330;
> Goyal Akhil-B35197
> Subject: Re: [PATCH][v2] powerpc/85xx:Add BSC9131 RDB Support
> 
> 
> On Mar 17, 2012, at 3:39 AM, Prabhakar Kushwaha wrote:
> 
> > BSC9131RDB is a Freescale reference design board for BSC9131 SoC.The
> > BSC9131 is integrated SoC that targets Femto base station market. It
> > combines Power Architecture e500v2 and DSP StarCore SC3850 core
> > technologies with MAPLE-B2F baseband acceleration processing elements.
> >
> > The BSC9131 SoC includes the following function and features:
> >    . Power Architecture subsystem including a e500 processor with 256-
> Kbyte shared
> >      L2 cache
> >    . StarCore SC3850 DSP subsystem with a 512-Kbyte private L2 cache
> >    . The Multi Accelerator Platform Engine for Femto BaseStation
> Baseband
> >      Processing (MAPLE-B2F)
> >    . A multi-standard baseband algorithm accelerator for Channel
> Decoding/Encoding,
> >      Fourier Transforms, UMTS chip rate processing, LTE UP/DL Channel
> processing,
> >      and CRC algorithms
> >    . Consists of accelerators for Convolution, Filtering, Turbo
> Encoding,
> >      Turbo Decoding, Viterbi decoding, Chiprate processing, and Matrix
> Inversion
> >      operations
> >    . DDR3/3L memory interface with 32-bit data width without ECC and
> 16-bit with
> >      ECC, up to 400-MHz clock/800 MHz data rate
> >    . Dedicated security engine featuring trusted boot
> >    . DMA controller
> >    . OCNDMA with four bidirectional channels
> >    . Interfaces
> >    . Two triple-speed Gigabit Ethernet controllers featuring network
> acceleration
> >      including IEEE 1588. v2 hardware support and virtualization
> (eTSEC)
> >    . eTSEC 1 supports RGMII/RMII
> >    . eTSEC 2 supports RGMII
> >    . High-speed USB 2.0 host and device controller with ULPI interface
> >    . Enhanced secure digital (SD/MMC) host controller (eSDHC)
> >    . Antenna interface controller (AIC), supporting three industry
> standard
> >      JESD207/three custom ADI RF interfaces (two dual port and one
> single port)
> >      and three MAXIM's MaxPHY serial interfaces
> >    . ADI lanes support both full duplex FDD support and half duplex TDD
> support
> >    . Universal Subscriber Identity Module (USIM) interface that
> facilitates
> >      communication to SIM cards or Eurochip pre-paid phone cards
> >    . TDM with one TDM port
> >    . Two DUART, four eSPI, and two I2C controllers
> >    . Integrated Flash memory controller (IFC)
> >    . TDM with 256 channels
> >    . GPIO
> >    . Sixteen 32-bit timers
> >
> > The DSP portion of the SoC consists of DSP core (SC3850) and various
> > accelerators pertaining to DSP operations.
> >
> > BSC9131RDB Overview
> > ----------------------
> >     BSC9131 SoC
> >     1Gbyte DDR3 (on board DDR)
> >     128Mbyte 2K page size NAND Flash
> >     256 Kbit M24256 I2C EEPROM
> >     128 Mbit SPI Flash memory
> >     USB-ULPI
> >     eTSEC1: Connected to RGMII PHY
> >     eTSEC2: Connected to RGMII PHY
> >     DUART interface: supports one UARTs up to 115200 bps for console
> > display
> >
> > Linux runs on e500v2 core and access some DSP peripherals like AIC
> >
> > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> > Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
> > Signed-off-by: Akhil Goyal <Akhil.Goyal@freescale.com>
> > Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
> > Signed-off-by: Rajan Srivastava <rajan.srivastava@freescale.com>
> > Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
> > ---
> > Note:   Name of PSC9131 has been changed to BSC9131 because of new
> nomenclature
> > 	Please reject earlier patch"powerpc/85xx:Add PSC9131 RDB Support"
> > 	  http://patchwork.ozlabs.org/patch/146349/
> >
> > Beased on
> http://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git
> > 	    branch master
> >
> > Changes for v2:
> > 	- Change board file name as bsc913x_rdb.c
> > 	- Removed all I2C's board device. A separate patch will be send.
> > 	- Combined SPI's 2 RFS partition into single RFS parition
> > 	- Added SEC/crypto node in dts
> >
> > arch/powerpc/boot/dts/bsc9131rdb.dts          |   34 +++++
> > arch/powerpc/boot/dts/bsc9131rdb.dtsi         |  142 ++++++++++++++++++
> > arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi |  193
> +++++++++++++++++++++++++
> > arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi  |   59 ++++++++
> > arch/powerpc/platforms/85xx/Kconfig           |    9 ++
> > arch/powerpc/platforms/85xx/Makefile          |    1 +
> > arch/powerpc/platforms/85xx/bsc913x_rdb.c     |   95 ++++++++++++
> > 7 files changed, 533 insertions(+), 0 deletions(-) create mode 100644
> > arch/powerpc/boot/dts/bsc9131rdb.dts
> > create mode 100644 arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
> > create mode 100644 arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
> > create mode 100644 arch/powerpc/platforms/85xx/bsc913x_rdb.c
> 
> [ Fix commit message so it wraps at 76 char columns
> 

I am not getting. Can you please tell more

> 
> > diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > new file mode 100644
> > index 0000000..8906562
> > --- /dev/null
> > +++ b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > @@ -0,0 +1,142 @@
> > +/*
> > + * BSC9131 RDB Device Tree Source stub (no addresses or top-level
> > +ranges)
> > + *
> > + * Copyright 2011-2012 Freescale Semiconductor Inc.
> > + *
> > + * Redistribution and use in source and binary forms, with or without
> > + * modification, are permitted provided that the following conditions
> are met:
> > + *     * Redistributions of source code must retain the above
> copyright
> > + *       notice, this list of conditions and the following disclaimer.
> > + *     * Redistributions in binary form must reproduce the above
> copyright
> > + *       notice, this list of conditions and the following disclaimer
> in the
> > + *       documentation and/or other materials provided with the
> distribution.
> > + *     * Neither the name of Freescale Semiconductor nor the
> > + *       names of its contributors may be used to endorse or promote
> products
> > + *       derived from this software without specific prior written
> permission.
> > + *
> > + *
> > + * ALTERNATIVELY, this software may be distributed under the terms of
> > +the
> > + * GNU General Public License ("GPL") as published by the Free
> > +Software
> > + * Foundation, either version 2 of that License or (at your option)
> > +any
> > + * later version.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND
> > +ANY
> > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> > +IMPLIED
> > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> > +ARE
> > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE
> > +FOR ANY
> > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> > +DAMAGES
> > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> > +SERVICES;
> > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
> > +CAUSED AND
> > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> > +OR TORT
> > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
> > +USE OF THIS
> > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > + */
> > +
> > +&board_ifc {
> > +
> > +	nand@0,0 {
> > +		#address-cells = <1>;
> > +		#size-cells = <1>;
> > +		compatible = "fsl,ifc-nand";
> > +		reg = <0x0 0x0 0x4000>;
> > +
> > +		partition@0 {
> > +			/* This location must not be altered  */
> > +			/* 3MB for u-boot Bootloader Image */
> > +			reg = <0x0 0x00300000>;
> > +			label = "NAND U-Boot Image";
> > +			read-only;
> > +		};
> > +
> > +		partition@300000 {
> > +			/* 1MB for DTB Image */
> > +			reg = <0x00300000 0x00100000>;
> > +			label = "NAND DTB Image";
> > +		};
> > +
> > +		partition@400000 {
> > +			/* 8MB for Linux Kernel Image */
> > +			reg = <0x00400000 0x00800000>;
> > +			label = "NAND Linux Kernel Image";
> > +		};
> > +
> > +		partition@c00000 {
> > +			/* Rest space for Root file System Image */
> > +			reg = <0x00c00000 0x07400000>;
> > +			label = " NAND RFS Image";
> 
> extra white space on label string
> 

Sure. I will change

> > +		};
> > +	};
> > +};
> > +
> > +&board_soc {
> > +	/* BSC9131RDB does not have any device on i2c@3100 */
> > +	i2c@3100 {
> > +		status = "disabled";
> > +	};
> > +
> > +	spi@7000 {
> > +		flash@0 {
> > +			#address-cells = <1>;
> > +			#size-cells = <1>;
> > +			compatible = "spansion,s25sl12801";
> > +			reg = <0>;
> > +			spi-max-frequency = <50000000>;
> > +
> > +			/* 512KB for u-boot Bootloader Image */
> > +			partition@0 {
> > +				reg = <0x0 0x00080000>;
> > +				label = "SPI Flash U-Boot Image";
> > +				read-only;
> > +			};
> > +
> > +			/* 512KB for DTB Image */
> > +			partition@80000 {
> > +				reg = <0x00080000 0x00080000>;
> > +				label = "SPI Flash DTB Image";
> > +			};
> > +
> > +			/* 4MB for Linux Kernel Image */
> > +			partition@100000 {
> > +				reg = <0x00100000 0x00400000>;
> > +				label = "SPI Flash Kernel Image";
> > +			};
> > +
> > +			/*11MB for RFS Image */
> > +			partition@500000 {
> > +				reg = <0x00500000 0x00B00000>;
> > +				label = "SPI Flash RFS Image";
> > +			};
> > +
> > +		};
> > +	};
> > +
> > +	usb@22000 {
> > +		phy_type = "ulpi";
> > +	};
> > +
> > +	mdio@24000 {
> > +		phy0: ethernet-phy@0 {
> > +			interrupts = <3 1 0 0>;
> > +			reg = <0x0>;
> > +		};
> > +
> > +		phy1: ethernet-phy@1 {
> > +			interrupts = <2 1 0 0>;
> > +			reg = <0x3>;
> > +		};
> > +	};
> > +
> > +	sdhci@2e000 {
> > +		status = "disabled";
> > +	};
> > +
> > +	enet0: ethernet@b0000 {
> > +		phy-handle = <&phy0>;
> > +		phy-connection-type = "rgmii-id";
> > +	};
> > +
> > +	enet1: ethernet@b1000 {
> > +		phy-handle = <&phy1>;
> > +		phy-connection-type = "rgmii-id";
> > +	};
> > +};
> 
> [snip]
> 

??
Not getting you..

> > diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> > b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> > new file mode 100644
> > index 0000000..611c289
> > --- /dev/null
> > +++ b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> > @@ -0,0 +1,95 @@
> > +/*
> > + * BSC913xRDB Board Setup
> > + *
> > + * Author: Priyanka Jain <Priyanka.Jain@freescale.com>
> > + *
> > + * Copyright 2011-2012 Freescale Semiconductor Inc.
> > + *
> > + * This program is free software; you can redistribute  it and/or
> > +modify it
> > + * under  the terms of  the GNU General  Public License as published
> > +by the
> > + * Free Software Foundation;  either version 2 of the  License, or
> > +(at your
> > + * option) any later version.
> > + */
> > +
> > +#include <linux/of_platform.h>
> > +#include <linux/pci.h>
> > +#include <asm/mpic.h>
> > +#include <sysdev/fsl_soc.h>
> > +#include <asm/udbg.h>
> > +
> > +void __init bsc913x_rdb_pic_init(void) {
> > +	struct mpic *mpic;
> > +	struct resource r;
> > +	struct device_node *np;
> > +
> > +	np = of_find_node_by_type(NULL, "open-pic");
> > +	if (!np) {
> > +		pr_err("bsc913x: Could not find open-pic node\n");
> > +		return;
> > +	}
> > +
> > +	if (of_address_to_resource(np, 0, &r)) {
> > +		pr_err("bsc913x: Failed to map mpic register space\n");
> > +		of_node_put(np);
> > +		return;
> > +	}
> > +
> > +	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
> > +	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
> > +	  0, 256, " OpenPIC  ");
> > +
> > +	of_node_put(np);
> > +
> > +	if (!mpic)
> > +		pr_err("bsc913x: Failed to allocate MPIC structure\n");
> > +	else
> > +		mpic_init(mpic);
> > +}
> > +
> 
> This code is still out of date w/other board ports.  Have you tried
> building this against upstream??
> 

I build with powerpc.git. 
do you mean build with upstream code base ??
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


--Prabhakar
Kumar Gala March 21, 2012, 5:38 p.m. UTC | #3
On Mar 21, 2012, at 12:29 PM, Kushwaha Prabhakar-B32579 wrote:

>> 
>> 
>> [snip]
>> 
> 
> ??
> Not getting you..

Just meant, I was removing parts of the patch in the email to reduce things.

> 
>>> diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c
>>> b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
>>> new file mode 100644
>>> index 0000000..611c289
>>> --- /dev/null
>>> +++ b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
>>> @@ -0,0 +1,95 @@
>>> +/*
>>> + * BSC913xRDB Board Setup
>>> + *
>>> + * Author: Priyanka Jain <Priyanka.Jain@freescale.com>
>>> + *
>>> + * Copyright 2011-2012 Freescale Semiconductor Inc.
>>> + *
>>> + * This program is free software; you can redistribute  it and/or
>>> +modify it
>>> + * under  the terms of  the GNU General  Public License as published
>>> +by the
>>> + * Free Software Foundation;  either version 2 of the  License, or
>>> +(at your
>>> + * option) any later version.
>>> + */
>>> +
>>> +#include <linux/of_platform.h>
>>> +#include <linux/pci.h>
>>> +#include <asm/mpic.h>
>>> +#include <sysdev/fsl_soc.h>
>>> +#include <asm/udbg.h>
>>> +
>>> +void __init bsc913x_rdb_pic_init(void) {
>>> +	struct mpic *mpic;
>>> +	struct resource r;
>>> +	struct device_node *np;
>>> +
>>> +	np = of_find_node_by_type(NULL, "open-pic");
>>> +	if (!np) {
>>> +		pr_err("bsc913x: Could not find open-pic node\n");
>>> +		return;
>>> +	}
>>> +
>>> +	if (of_address_to_resource(np, 0, &r)) {
>>> +		pr_err("bsc913x: Failed to map mpic register space\n");
>>> +		of_node_put(np);
>>> +		return;
>>> +	}
>>> +
>>> +	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
>>> +	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
>>> +	  0, 256, " OpenPIC  ");
>>> +
>>> +	of_node_put(np);
>>> +
>>> +	if (!mpic)
>>> +		pr_err("bsc913x: Failed to allocate MPIC structure\n");
>>> +	else
>>> +		mpic_init(mpic);
>>> +}
>>> +
>> 
>> This code is still out of date w/other board ports.  Have you tried
>> building this against upstream??
>> 
> 
> I build with powerpc.git. 
> do you mean build with upstream code base ??
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
> 

I mean if you use my 'next' branch of galak/powerpc.git and apply this patch, and enable it.  For example MPIC_BROKEN_FRR_NIRQS doesn't exist anymore

- k
Prabhakar Kushwaha March 21, 2012, 5:45 p.m. UTC | #4
Thanks Kumar for clarifying my doubts.

> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Wednesday, March 21, 2012 11:08 PM
> To: Kushwaha Prabhakar-B32579
> Cc: linuxppc-dev@lists.ozlabs.org; devicetree-discuss@lists.ozlabs.org;
> Jain Priyanka-B32167; Mehresh Ramneek-B31383; Srivastava Rajan-B34330;
> Goyal Akhil-B35197
> Subject: Re: [PATCH][v2] powerpc/85xx:Add BSC9131 RDB Support
> 
> 
> On Mar 21, 2012, at 12:29 PM, Kushwaha Prabhakar-B32579 wrote:
> 
> >>
> >>
> >> [snip]
> >>
> >
> > ??
> > Not getting you..
> 
> Just meant, I was removing parts of the patch in the email to reduce
> things.
> 

Oh :)


> >
> >>> diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> >>> b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> >>> new file mode 100644
> >>> index 0000000..611c289
> >>> --- /dev/null
> >>> +++ b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
> >>> @@ -0,0 +1,95 @@
> >>> +/*
> >>> + * BSC913xRDB Board Setup
> >>> + *
> >>> + * Author: Priyanka Jain <Priyanka.Jain@freescale.com>
> >>> + *
> >>> + * Copyright 2011-2012 Freescale Semiconductor Inc.
> >>> + *
> >>> + * This program is free software; you can redistribute  it and/or
> >>> +modify it
> >>> + * under  the terms of  the GNU General  Public License as
> >>> +published by the
> >>> + * Free Software Foundation;  either version 2 of the  License, or
> >>> +(at your
> >>> + * option) any later version.
> >>> + */
> >>> +
> >>> +#include <linux/of_platform.h>
> >>> +#include <linux/pci.h>
> >>> +#include <asm/mpic.h>
> >>> +#include <sysdev/fsl_soc.h>
> >>> +#include <asm/udbg.h>
> >>> +
> >>> +void __init bsc913x_rdb_pic_init(void) {
> >>> +	struct mpic *mpic;
> >>> +	struct resource r;
> >>> +	struct device_node *np;
> >>> +
> >>> +	np = of_find_node_by_type(NULL, "open-pic");
> >>> +	if (!np) {
> >>> +		pr_err("bsc913x: Could not find open-pic node\n");
> >>> +		return;
> >>> +	}
> >>> +
> >>> +	if (of_address_to_resource(np, 0, &r)) {
> >>> +		pr_err("bsc913x: Failed to map mpic register space\n");
> >>> +		of_node_put(np);
> >>> +		return;
> >>> +	}
> >>> +
> >>> +	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
> >>> +	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
> >>> +	  0, 256, " OpenPIC  ");
> >>> +
> >>> +	of_node_put(np);
> >>> +
> >>> +	if (!mpic)
> >>> +		pr_err("bsc913x: Failed to allocate MPIC structure\n");
> >>> +	else
> >>> +		mpic_init(mpic);
> >>> +}
> >>> +
> >>
> >> This code is still out of date w/other board ports.  Have you tried
> >> building this against upstream??
> >>
> >
> > I build with powerpc.git.
> > do you mean build with upstream code base ??
> > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
> >
> 
> I mean if you use my 'next' branch of galak/powerpc.git and apply this
> patch, and enable it.  For example MPIC_BROKEN_FRR_NIRQS doesn't exist
> anymore
> 


I did on master branch. I will check on "next" branch and if required send new patch version.

--Prabhakar
diff mbox

Patch

diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dts b/arch/powerpc/boot/dts/bsc9131rdb.dts
new file mode 100644
index 0000000..e13d2d4
--- /dev/null
+++ b/arch/powerpc/boot/dts/bsc9131rdb.dts
@@ -0,0 +1,34 @@ 
+/*
+ * BSC9131 RDB Device Tree Source
+ *
+ * Copyright 2011-2012 Freescale Semiconductor Inc.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+/include/ "fsl/bsc9131si-pre.dtsi"
+
+/ {
+	model = "fsl,bsc9131rdb";
+	compatible = "fsl,bsc9131rdb";
+
+	memory {
+		device_type = "memory";
+	};
+
+	board_ifc: ifc: ifc@ff71e000 {
+		/* NAND Flash on board */
+		ranges = <0x0 0x0 0x0 0xff800000 0x00004000>;
+		reg = <0x0 0xff71e000 0x0 0x2000>;
+	};
+
+	board_soc: soc: soc@ff700000 {
+		ranges = <0x0 0x0 0xff700000 0x100000>;
+	};
+};
+
+/include/ "bsc9131rdb.dtsi"
+/include/ "fsl/bsc9131si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dtsi b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
new file mode 100644
index 0000000..8906562
--- /dev/null
+++ b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
@@ -0,0 +1,142 @@ 
+/*
+ * BSC9131 RDB Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011-2012 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_ifc {
+
+	nand@0,0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,ifc-nand";
+		reg = <0x0 0x0 0x4000>;
+
+		partition@0 {
+			/* This location must not be altered  */
+			/* 3MB for u-boot Bootloader Image */
+			reg = <0x0 0x00300000>;
+			label = "NAND U-Boot Image";
+			read-only;
+		};
+
+		partition@300000 {
+			/* 1MB for DTB Image */
+			reg = <0x00300000 0x00100000>;
+			label = "NAND DTB Image";
+		};
+
+		partition@400000 {
+			/* 8MB for Linux Kernel Image */
+			reg = <0x00400000 0x00800000>;
+			label = "NAND Linux Kernel Image";
+		};
+
+		partition@c00000 {
+			/* Rest space for Root file System Image */
+			reg = <0x00c00000 0x07400000>;
+			label = " NAND RFS Image";
+		};
+	};
+};
+
+&board_soc {
+	/* BSC9131RDB does not have any device on i2c@3100 */
+	i2c@3100 {
+		status = "disabled";
+	};
+
+	spi@7000 {
+		flash@0 {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "spansion,s25sl12801";
+			reg = <0>;
+			spi-max-frequency = <50000000>;
+
+			/* 512KB for u-boot Bootloader Image */
+			partition@0 {
+				reg = <0x0 0x00080000>;
+				label = "SPI Flash U-Boot Image";
+				read-only;
+			};
+
+			/* 512KB for DTB Image */
+			partition@80000 {
+				reg = <0x00080000 0x00080000>;
+				label = "SPI Flash DTB Image";
+			};
+
+			/* 4MB for Linux Kernel Image */
+			partition@100000 {
+				reg = <0x00100000 0x00400000>;
+				label = "SPI Flash Kernel Image";
+			};
+
+			/*11MB for RFS Image */
+			partition@500000 {
+				reg = <0x00500000 0x00B00000>;
+				label = "SPI Flash RFS Image";
+			};
+
+		};
+	};
+
+	usb@22000 {
+		phy_type = "ulpi";
+	};
+
+	mdio@24000 {
+		phy0: ethernet-phy@0 {
+			interrupts = <3 1 0 0>;
+			reg = <0x0>;
+		};
+
+		phy1: ethernet-phy@1 {
+			interrupts = <2 1 0 0>;
+			reg = <0x3>;
+		};
+	};
+
+	sdhci@2e000 {
+		status = "disabled";
+	};
+
+	enet0: ethernet@b0000 {
+		phy-handle = <&phy0>;
+		phy-connection-type = "rgmii-id";
+	};
+
+	enet1: ethernet@b1000 {
+		phy-handle = <&phy1>;
+		phy-connection-type = "rgmii-id";
+	};
+};
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
new file mode 100644
index 0000000..5180d9d
--- /dev/null
+++ b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
@@ -0,0 +1,193 @@ 
+/*
+ * BSC9131 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011-2012 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&ifc {
+	#address-cells = <2>;
+	#size-cells = <1>;
+	compatible = "fsl,ifc", "simple-bus";
+	interrupts = <16 2 0 0 20 2 0 0>;
+};
+
+&soc {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	device_type = "soc";
+	compatible = "fsl,bsc9131-immr", "simple-bus";
+	bus-frequency = <0>;		// Filled out by uboot.
+
+	ecm-law@0 {
+		compatible = "fsl,ecm-law";
+		reg = <0x0 0x1000>;
+		fsl,num-laws = <12>;
+	};
+
+	ecm@1000 {
+		compatible = "fsl,bsc9131-ecm", "fsl,ecm";
+		reg = <0x1000 0x1000>;
+		interrupts = <16 2 0 0>;
+	};
+
+	memory-controller@2000 {
+		compatible = "fsl,bsc9131-memory-controller";
+		reg = <0x2000 0x1000>;
+		interrupts = <16 2 0 0>;
+	};
+
+/include/ "pq3-i2c-0.dtsi"
+	i2c@3000 {
+		interrupts = <17 2 0 0>;
+	};
+
+/include/ "pq3-i2c-1.dtsi"
+	i2c@3100 {
+		interrupts = <17 2 0 0>;
+	};
+
+/include/ "pq3-duart-0.dtsi"
+	serial0: serial@4500 {
+		interrupts = <18 2 0 0>;
+	};
+
+	serial1: serial@4600 {
+		interrupts = <18 2 0 0 >;
+	};
+/include/ "pq3-espi-0.dtsi"
+	spi0: spi@7000 {
+		fsl,espi-num-chipselects = <1>;
+		interrupts = <22 0x2 0 0>;
+	};
+
+/include/ "pq3-gpio-0.dtsi"
+	gpio-controller@f000 {
+		interrupts = <19 0x2 0 0>;
+		};
+
+	L2: l2-cache-controller@20000 {
+		compatible = "fsl,bsc9131-l2-cache-controller";
+		reg = <0x20000 0x1000>;
+		cache-line-size = <32>;	// 32 bytes
+		cache-size = <0x40000>; // L2,256K
+		interrupts = <16 2 0 0>;
+	};
+
+/include/ "pq3-dma-0.dtsi"
+
+dma@21300 {
+
+	dma-channel@0 {
+		interrupts = <62 2 0 0>;
+	};
+
+	dma-channel@80 {
+		interrupts = <63 2 0 0>;
+	};
+
+	dma-channel@100 {
+		interrupts = <64 2 0 0>;
+	};
+
+	dma-channel@180 {
+		interrupts = <65 2 0 0>;
+	};
+};
+
+/include/ "pq3-usb2-dr-0.dtsi"
+usb@22000 {
+	compatible = "fsl-usb2-dr","fsl-usb2-dr-v2.2";
+	interrupts = <40 0x2 0 0>;
+};
+
+/include/ "pq3-esdhc-0.dtsi"
+	sdhc@2e000 {
+		fsl,sdhci-auto-cmd12;
+		interrupts = <41 0x2 0 0>;
+	};
+
+/include/ "pq3-sec4.4-0.dtsi"
+crypto@30000 {
+	interrupts	 = <57 2 0 0>;
+
+	sec_jr0: jr@1000 {
+		interrupts	 = <58 2 0 0>;
+	};
+
+	sec_jr1: jr@2000 {
+		interrupts	 = <59 2 0 0>;
+	};
+
+	sec_jr2: jr@3000 {
+		interrupts	 = <60 2 0 0>;
+	};
+
+	sec_jr3: jr@4000 {
+		interrupts	 = <61 2 0 0>;
+	};
+};
+
+/include/ "pq3-mpic.dtsi"
+
+timer@41100 {
+	compatible = "fsl,mpic-v1.2-msgr", "fsl,mpic-msg";
+	reg = <0x41400 0x200>;
+	interrupts = <
+		0xb0 2
+		0xb1 2
+		0xb2 2
+		0xb3 2>;
+};
+
+/include/ "pq3-etsec2-0.dtsi"
+enet0: ethernet@b0000 {
+	queue-group@b0000 {
+		fsl,rx-bit-map = <0xff>;
+		fsl,tx-bit-map = <0xff>;
+		interrupts = <26 2 0 0 27 2 0 0 28 2 0 0>;
+	};
+};
+
+/include/ "pq3-etsec2-1.dtsi"
+enet1: ethernet@b1000 {
+	queue-group@b1000 {
+		fsl,rx-bit-map = <0xff>;
+		fsl,tx-bit-map = <0xff>;
+		interrupts = <33 2 0 0 34 2 0 0 35 2 0 0>;
+	};
+};
+
+global-utilities@e0000 {
+		compatible = "fsl,bsc9131-guts";
+		reg = <0xe0000 0x1000>;
+		fsl,has-rstcr;
+	};
+};
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
new file mode 100644
index 0000000..743e4ae
--- /dev/null
+++ b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
@@ -0,0 +1,59 @@ 
+/*
+ * BSC9131 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011-2012 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+	compatible = "fsl,BSC9131";
+	#address-cells = <2>;
+	#size-cells = <2>;
+	interrupt-parent = <&mpic>;
+
+	aliases {
+		serial0 = &serial0;
+		ethernet0 = &enet0;
+		ethernet1 = &enet1;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		PowerPC,BSC9131@0 {
+			device_type = "cpu";
+			compatible = "fsl,e500v2";
+			reg = <0x0>;
+			next-level-cache = <&L2>;
+		};
+	};
+};
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index d7946be..9fb5b03 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -91,6 +91,15 @@  config P1023_RDS
 	help
 	  This option enables support for the P1023 RDS board
 
+config BSC9131_RDB
+	bool "Freescale BSC9131RDB"
+	select DEFAULT_UIMAGE
+	help
+	  This option enables support for the Freescale BSC9131RDB board.
+	  The BSC9131 is a heterogeneous SoC containing an e500v2 powerpc and a
+	  StarCore SC3850 DSP
+	  Manufacturer : Freescale Semiconductor, Inc
+
 config SOCRATES
 	bool "Socrates"
 	select DEFAULT_UIMAGE
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 9cb2d43..25b376c 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -20,6 +20,7 @@  obj-$(CONFIG_P3041_DS)    += p3041_ds.o corenet_ds.o
 obj-$(CONFIG_P3060_QDS)   += p3060_qds.o corenet_ds.o
 obj-$(CONFIG_P4080_DS)    += p4080_ds.o corenet_ds.o
 obj-$(CONFIG_P5020_DS)    += p5020_ds.o corenet_ds.o
+obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
 obj-$(CONFIG_STX_GP3)	  += stx_gp3.o
 obj-$(CONFIG_TQM85xx)	  += tqm85xx.o
 obj-$(CONFIG_SBC8560)     += sbc8560.o
diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
new file mode 100644
index 0000000..611c289
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
@@ -0,0 +1,95 @@ 
+/*
+ * BSC913xRDB Board Setup
+ *
+ * Author: Priyanka Jain <Priyanka.Jain@freescale.com>
+ *
+ * Copyright 2011-2012 Freescale Semiconductor Inc.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/of_platform.h>
+#include <linux/pci.h>
+#include <asm/mpic.h>
+#include <sysdev/fsl_soc.h>
+#include <asm/udbg.h>
+
+void __init bsc913x_rdb_pic_init(void)
+{
+	struct mpic *mpic;
+	struct resource r;
+	struct device_node *np;
+
+	np = of_find_node_by_type(NULL, "open-pic");
+	if (!np) {
+		pr_err("bsc913x: Could not find open-pic node\n");
+		return;
+	}
+
+	if (of_address_to_resource(np, 0, &r)) {
+		pr_err("bsc913x: Failed to map mpic register space\n");
+		of_node_put(np);
+		return;
+	}
+
+	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
+	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
+	  0, 256, " OpenPIC  ");
+
+	of_node_put(np);
+
+	if (!mpic)
+		pr_err("bsc913x: Failed to allocate MPIC structure\n");
+	else
+		mpic_init(mpic);
+}
+
+/*
+ * Setup the architecture
+ */
+static void __init bsc913x_rdb_setup_arch(void)
+{
+	if (ppc_md.progress)
+		ppc_md.progress("bsc913x_rdb_setup_arch()", 0);
+
+	pr_info("bsc913x board from Freescale Semiconductor\n");
+}
+
+static struct of_device_id __initdata bsc913x_rdb_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{ .compatible = "gianfar", },
+	{},
+};
+
+static int __init bsc913x_rdb_publish_devices(void)
+{
+	return of_platform_bus_probe(NULL, bsc913x_rdb_ids, NULL);
+}
+machine_device_initcall(bsc9131_rdb, bsc913x_rdb_publish_devices);
+
+/*
+ * Called very early, device-tree isn't unflattened
+ */
+
+static int __init bsc9131_rdb_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	return of_flat_dt_is_compatible(root, "fsl,bsc9131rdb");
+}
+
+define_machine(bsc9131_rdb) {
+	.name			= "BSC9131 RDB",
+	.probe			= bsc9131_rdb_probe,
+	.setup_arch		= bsc913x_rdb_setup_arch,
+	.init_IRQ		= bsc913x_rdb_pic_init,
+	.get_irq		= mpic_get_irq,
+	.restart		= fsl_rstcr_restart,
+	.calibrate_decr		= generic_calibrate_decr,
+	.progress		= udbg_progress,
+};