[PATCH 1/2] powerpc/fsl-booke: Add initial T104x_QDS board support

Kushwaha Prabhakar-B32579 B32579 at freescale.com
Fri Sep 13 17:35:59 EST 2013



> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Thursday, September 12, 2013 5:11 AM
> To: Kushwaha Prabhakar-B32579
> Cc: linuxppc-dev at lists.ozlabs.org; galak at kernel.crashing.org; Jain
> Priyanka-B32167; Aggrwal Poonam-B10812
> Subject: Re: [PATCH 1/2] powerpc/fsl-booke: Add initial T104x_QDS board
> support
> 
> On Wed, 2013-09-11 at 12:28 +0530, Prabhakar Kushwaha wrote:
> >  Add support for T104x board in board file t104x_qds.c, It is common
> > for  both T1040 and T1042 as they share same QDS board.
> >
> >  T1040QDS board Overview
> >  -----------------------
> >  - SERDES Connections, 8 lanes supporting:
> >       — PCI Express: supporting Gen 1 and Gen 2;
> >       — SGMII
> >       — QSGMII
> >       — SATA 2.0
> >       — Aurora debug with dedicated connectors (T1040 only)
> >  - DDR Controller
> >      - Supports rates of up to 1600 MHz data-rate
> >      - Supports one DDR3LP UDIMM/RDIMMs, of single-, dual- or quad-rank
> types.
> >  -IFC/Local Bus
> >      - NAND flash: 8-bit, async, up to 2GB.
> >      - NOR: 8-bit or 16-bit, non-multiplexed, up to 512MB
> >      - GASIC: Simple (minimal) target within Qixis FPGA
> >      - PromJET rapid memory download support
> >  - Ethernet
> >      - Two on-board RGMII 10/100/1G ethernet ports.
> >      - PHY #0 remains powered up during deep-sleep (T1040 only)
> >  - QIXIS System Logic FPGA
> >  - Clocks
> >      - System and DDR clock (SYSCLK, “DDRCLK”)
> >      - SERDES clocks
> >  - Power Supplies
> >  - Video
> >      - DIU supports video at up to 1280x1024x32bpp
> >  - USB
> >      - Supports two USB 2.0 ports with integrated PHYs
> >      — Two type A ports with 5V at 1.5A per port.
> >      — Second port can be converted to OTG mini-AB
> >  - SDHC
> >      - SDHC port connects directly to an adapter card slot, featuring:
> >      - Supporting SD slots for: SD, SDHC (1x, 4x, 8x) and/or MMC
> >      — Supporting eMMC memory devices
> >  - SPI
> >     -  On-board support of 3 different devices and sizes
> >  - Other IO
> >     - Two Serial ports
> >     - ProfiBus port
> >     - Four I2C ports
> >
> >  Add T104xQDS support in Kconfig and Makefile. Also create device tree.
> >
> > Signed-off-by: Priyanka Jain <Priyanka.Jain at freescale.com>
> > Signed-off-by: Poonam Aggrwal <poonam.aggrwal at freescale.com>
> > Signed-off-by: Prabhakar Kushwaha <prabhakar at freescale.com>
> > ---
> > Based upon
> > git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
> >
> > TODO: Add noded for ethernet and board stuff
> 
> "board stuff"?
> 
> Isn't "board stuff" the whole point of this patch? :-)
> 

:)

> >  arch/powerpc/boot/dts/t1040qds.dts      |  201
> +++++++++++++++++++++++++++++++
> >  arch/powerpc/boot/dts/t1042qds.dts      |  201
> +++++++++++++++++++++++++++++++
> >  arch/powerpc/platforms/85xx/Kconfig     |   20 +++
> >  arch/powerpc/platforms/85xx/Makefile    |    1 +
> >  arch/powerpc/platforms/85xx/t104x_qds.c |  102 ++++++++++++++++
> >  5 files changed, 525 insertions(+)
> >  create mode 100644 arch/powerpc/boot/dts/t1040qds.dts
> >  create mode 100644 arch/powerpc/boot/dts/t1042qds.dts
> >  create mode 100644 arch/powerpc/platforms/85xx/t104x_qds.c
> >
> > diff --git a/arch/powerpc/boot/dts/t1040qds.dts
> > b/arch/powerpc/boot/dts/t1040qds.dts
> > new file mode 100644
> > index 0000000..cea5632
> > --- /dev/null
> > +++ b/arch/powerpc/boot/dts/t1040qds.dts
> > @@ -0,0 +1,201 @@
> > +/*
> > + * T1040QDS Device Tree Source
> > + *
> > + * Copyright 2013 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.
> > + */
> > +
> > +/include/ "fsl/t104xsi-pre.dtsi"
> > +
> > +/ {
> > +	model = "fsl,T1040QDS";
> > +	compatible = "fsl,T1040QDS";
> > +	#address-cells = <2>;
> > +	#size-cells = <2>;
> > +	interrupt-parent = <&mpic>;
> > +
> > +	aliases {
> > +		 /* TODO */
> > +		};
> 
> TODO?  Did you mean this patch as an RFC?
> 


actually, this patch is not adding in dpaa related node(fman,bman etc).
I am keeping place holder for alias of Ethernet nodes. 

> Also, whitespace.
> 

does whitespace is not captured in checkpatch?

> > +		i2c at 118000 {
> > +                        pca9547 at 77 {
> > +                                compatible = "philips,pca9547";
> > +                                reg = <0x77>;
> > +                        };
> > +                       rtc at 68 {
> > +                                compatible = "dallas,ds3232";
> > +                                reg = <0x68>;
> > +                                interrupts = <0x1 0x1 0 0>;
> > +                        };
> > +		};
> > +
> > +	};
> 
> Whitespace
> 
> > +
> > +	pci0: pcie at ffe240000 {
> > +		reg = <0xf 0xfe240000 0 0x10000>;
> > +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0
> 0x10000000
> > +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0
> 0x00010000>;
> > +		pcie at 0 {
> > +			ranges = <0x02000000 0 0xe0000000
> > +				  0x02000000 0 0xe0000000
> > +				  0 0x10000000
> > +
> > +				  0x01000000 0 0x00000000
> > +				  0x01000000 0 0x00000000
> > +				  0 0x00010000>;
> > +		};
> > +	};
> > +
> > +	pci1: pcie at ffe250000 {
> > +		reg = <0xf 0xfe250000 0 0x10000>;
> > +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0
> 0x10000000
> > +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0
> 0x00010000>;
> > +		pcie at 0 {
> > +			ranges = <0x02000000 0 0xe0000000
> > +				  0x02000000 0 0xe0000000
> > +				  0 0x10000000
> > +
> > +				  0x01000000 0 0x00000000
> > +				  0x01000000 0 0x00000000
> > +				  0 0x00010000>;
> > +		};
> > +	};
> > +
> > +	pci2: pcie at ffe260000 {
> > +		reg = <0xf 0xfe260000 0 0x1000>;
> > +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x10000000
> > +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
> > +		pcie at 0 {
> > +			ranges = <0x02000000 0 0xe0000000
> > +				  0x02000000 0 0xe0000000
> > +				  0 0x10000000
> > +
> > +				  0x01000000 0 0x00000000
> > +				  0x01000000 0 0x00000000
> > +				  0 0x00010000>;
> > +		};
> > +	};
> > +
> > +	pci3: pcie at ffe270000 {
> > +		reg = <0xf 0xfe270000 0 0x10000>;
> > +		ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x10000000
> > +			  0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>;
> > +		pcie at 0 {
> > +			ranges = <0x02000000 0 0xe0000000
> > +				  0x02000000 0 0xe0000000
> > +				  0 0x10000000
> > +
> > +				  0x01000000 0 0x00000000
> > +				  0x01000000 0 0x00000000
> > +				  0 0x00010000>;
> > +		};
> > +	};
> > +};
> 
> Maybe some of this stuff could be put in a common dtsi between t1040 and
> t1042?
> 
> Ideally for t1042 you'd just take the entire t1040 tree as an include,
> and add the switch
> 

means, I just create T1042qds.dts and for T1040.dts include t1042dts + switch


> > diff --git a/arch/powerpc/platforms/85xx/t104x_qds.c
> > b/arch/powerpc/platforms/85xx/t104x_qds.c
> > new file mode 100644
> > index 0000000..d28da14
> > --- /dev/null
> > +++ b/arch/powerpc/platforms/85xx/t104x_qds.c
> > @@ -0,0 +1,102 @@
> > +/*
> > + * T104x QDS Setup
> > + * Should apply for QDS platform of T1040 and it's personalities.
> > + * viz T1040/T1042
> > + *
> > + * Copyright 2013 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/kernel.h>
> > +#include <linux/pci.h>
> > +#include <linux/kdev_t.h>
> > +#include <linux/delay.h>
> > +#include <linux/interrupt.h>
> > +#include <linux/phy.h>
> > +
> > +#include <asm/time.h>
> > +#include <asm/machdep.h>
> > +#include <asm/pci-bridge.h>
> > +#include <mm/mmu_decl.h>
> > +#include <asm/prom.h>
> > +#include <asm/udbg.h>
> > +#include <asm/mpic.h>
> > +
> > +#include <linux/of_platform.h>
> > +#include <sysdev/fsl_soc.h>
> > +#include <sysdev/fsl_pci.h>
> > +#include <asm/ehv_pic.h>
> > +
> > +#include "corenet_ds.h"
> 
> You don't need all of these includes.
> 
> > +define_machine(t104x_qds) {
> > +	.name			= "T104x QDS",
> > +	.probe			= t104x_qds_probe,
> 
> Should we have two machine descriptions, so that the proper chip name
> shows up (e.g. in /proc/cpuinfo)?
> 
> > +/* coreint doesn't play nice with lazy EE, use legacy mpic for now */
> > +#ifdef CONFIG_PPC64
> > +	.get_irq		= mpic_get_irq,
> > +#else
> > +	.get_irq		= mpic_get_coreint_irq,
> > +#endif
> 
> This isn't true any more.  When submitting code that was copied from
> elsewhere, please check whether there were any updates in the code that
> you copied from (unless you copied from b4qds, which the update missed
> -- I just sent a patch to fix that).
> 

I will check on latest code base.

Regards,
Prabhakar



More information about the Linuxppc-dev mailing list