powerpc/85xx: Add BSC9131 RDB Support
authorPrabhakar Kushwaha <prabhakar@freescale.com>
Thu, 22 Mar 2012 04:54:15 +0000 (10:24 +0530)
committerKumar Gala <galak@kernel.crashing.org>
Tue, 10 Jul 2012 12:07:22 +0000 (07:07 -0500)
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>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/boot/dts/bsc9131rdb.dts [new file with mode: 0644]
arch/powerpc/boot/dts/bsc9131rdb.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi [new file with mode: 0644]
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/Makefile
arch/powerpc/platforms/85xx/bsc913x_rdb.c [new file with mode: 0644]

diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dts b/arch/powerpc/boot/dts/bsc9131rdb.dts
new file mode 100644 (file)
index 0000000..e13d2d4
--- /dev/null
@@ -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 (file)
index 0000000..638adda
--- /dev/null
@@ -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 (file)
index 0000000..5180d9d
--- /dev/null
@@ -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 (file)
index 0000000..743e4ae
--- /dev/null
@@ -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>;
+               };
+       };
+};
index 0e77f5f3ae247cbc1fe6754043fbc4125b951735..dddb3e51b91ce05968d0fc6472a80254c517b8fd 100644 (file)
@@ -23,6 +23,15 @@ config FSL_85XX_CACHE_SRAM
          cache-sram-size and cache-sram-offset kernel boot
          parameters should be passed when this option is enabled.
 
+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 MPC8540_ADS
        bool "Freescale MPC8540 ADS"
        select DEFAULT_UIMAGE
index 3fee687115c79612eeb1405ee17ddff0eca27186..30652e0bfb7fc9991ff4deac66d71f9d2b7d005e 100644 (file)
@@ -5,6 +5,7 @@ obj-$(CONFIG_SMP) += smp.o
 
 obj-y += common.o
 
+obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
 obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
 obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
 obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
diff --git a/arch/powerpc/platforms/85xx/bsc913x_rdb.c b/arch/powerpc/platforms/85xx/bsc913x_rdb.c
new file mode 100644 (file)
index 0000000..9d57bed
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * 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>
+
+#include "mpc85xx.h"
+
+void __init bsc913x_rdb_pic_init(void)
+{
+       struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
+         MPIC_SINGLE_DEST_CPU,
+         0, 256, " OpenPIC  ");
+
+       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");
+}
+
+machine_device_initcall(bsc9131_rdb, mpc85xx_common_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,
+};