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.mehr...@freescale.com> > Signed-off-by: Priyanka Jain <priyanka.j...@freescale.com> > Signed-off-by: Akhil Goyal <akhil.go...@freescale.com> > Signed-off-by: Poonam Aggrwal <poonam.aggr...@freescale.com> > Signed-off-by: Rajan Srivastava <rajan.srivast...@freescale.com> > Signed-off-by: Prabhakar Kushwaha <prabha...@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.j...@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 _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss