[U-Boot] [PATCH 2/2] P2020RDB Platform Support Added

Aggrwal Poonam-B10812 Poonam.Aggrwal at freescale.com
Wed Jul 22 12:40:57 CEST 2009


 

> -----Original Message-----
> From: u-boot-bounces at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Wolfgang Denk
> Sent: Tuesday, July 21, 2009 6:56 PM
> To: Aggrwal Poonam-B10812
> Cc: u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH 2/2] P2020RDB Platform Support Added
> 
> Dear Poonam Aggrwal,
> 
> In message 
> <1248173285-30560-1-git-send-email-poonam.aggrwal at freescale.co
> m> you wrote:
> > The code base is generic to add more P1_P2 RDB platforms 
> support as and when required.
> > The folder and file names are such that they can cater to 
> future SOCs of P1/P2 family.
> > 
> > Tested the following on P2020RDB:
> > 1. eTSECs(1/2/3)
> > 2. DDR, NAND, NOR, I2C etc
> > 
> > Signed-off-by: Poonam Aggrwal <poonam.aggrwal at freescale.com>
> > ---
> >  MAINTAINERS                           |    4 +
> >  MAKEALL                               |    1 +
> >  Makefile                              |    8 +
> >  board/freescale/p1_p2_rdb/Makefile    |   53 +++
> >  board/freescale/p1_p2_rdb/config.mk   |   32 ++
> >  board/freescale/p1_p2_rdb/ddr.c       |  188 ++++++++++
> >  board/freescale/p1_p2_rdb/law.c       |   37 ++
> >  board/freescale/p1_p2_rdb/p1_p2_rdb.c |  234 ++++++++++++
> >  board/freescale/p1_p2_rdb/pci.c       |  174 +++++++++
> >  board/freescale/p1_p2_rdb/tlb.c       |   79 +++++
> >  board/freescale/p1_p2_rdb/u-boot.lds  |  143 ++++++++
> >  doc/README.p2020rdb                   |  143 ++++++++
> >  include/configs/P1_P2_RDB.h           |  625 
> +++++++++++++++++++++++++++++++++
> >  13 files changed, 1721 insertions(+), 0 deletions(-)  create mode 
> > 100644 board/freescale/p1_p2_rdb/Makefile
> >  create mode 100644 board/freescale/p1_p2_rdb/config.mk
> >  create mode 100644 board/freescale/p1_p2_rdb/ddr.c  create mode 
> > 100644 board/freescale/p1_p2_rdb/law.c  create mode 100644 
> > board/freescale/p1_p2_rdb/p1_p2_rdb.c
> >  create mode 100644 board/freescale/p1_p2_rdb/pci.c  create mode 
> > 100644 board/freescale/p1_p2_rdb/tlb.c  create mode 100644 
> > board/freescale/p1_p2_rdb/u-boot.lds
> >  create mode 100644 doc/README.p2020rdb  create mode 100644 
> > include/configs/P1_P2_RDB.h
> > 
> > diff --git a/MAINTAINERS b/MAINTAINERS index 705bac5..814912c 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -436,6 +436,10 @@ Peter Tyser <ptyser at xes-inc.com>
> >  	XPEDITE5200	MPC8548
> >  	XPEDITE5370	MPC8572
> >  
> > +Poonam Aggrwal <poonam.aggrwal at freescale.com>
> > +
> > +	P2020RDB	P2020
> > +
> >  David Updegraff <dave at cray.com>
> 
> Please keep list sorted by names.
> 
> > diff --git a/Makefile b/Makefile
> > index 2a06440..dc3e987 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1,4 +1,5 @@
> >  #
> > +# Copyright (C) 2009 Freescale Semiconductor, Inc. All 
> rights reserved.
> 
> Please note that
> 
> 1) I don't think that you have any real right to add a (C) note to
>    this file for just adding anothe rboard entry.
> 
> 2) Your copyright note, especially the phrase "All rights reserved."
>    is incompatible with the GPL.
> 
>    We cannot accept any such code. Plase make sure never to 
> use that in
>    any submissions to this project, as we can then only relect your
>    code.

I will rework the copyright stuff.
> 
> > diff --git a/board/freescale/p1_p2_rdb/ddr.c 
> > b/board/freescale/p1_p2_rdb/ddr.c new file mode 100644 index 
> > 0000000..2b880ab
> > --- /dev/null
> > +++ b/board/freescale/p1_p2_rdb/ddr.c
> > @@ -0,0 +1,188 @@
> > +/*
> > + * Copyright (C) 2009 Freescale Semiconductor, Inc. All 
> rights reserved.
> > + *
> > + * See file CREDITS for list of people who contributed to this
> > + * project.
> > + *
> > + * 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.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General 
> Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> > + * MA 02111-1307 USA
> > + */
> > +
> > +#include <common.h>
> > +#include <asm/mmu.h>
> > +#include <asm/immap_85xx.h>
> > +#include <asm/fsl_ddr_sdram.h>
> > +#include <asm/io.h>
> > +#include <asm/fsl_law.h>
> > +
> > +
> > +#if defined(CONFIG_DDR_ECC) && 
> > +!defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
> > +extern void ddr_enable_ecc(unsigned int dram_size); #endif
> > +
> > +phys_size_t  fixed_sdram(void);
> > +
> > +unsigned long get_board_ddr_size(ulong dummy) {
> > +	return 1024;
> > +}
> 
> Please use auto-detection of the memory size (using get_ram_size()).
Thanks for the suggestion, I was not aware of this function.
> 
> > +	u32 val, temp;
> > +	volatile ccsr_gpio_t *pgpio = (void 
> *)(CONFIG_SYS_MPC85xx_GPIO_ADDR);
> > +	char board_rev = 0;
> > +	struct cpu_type *cpu;
> > +
> > +	val = pgpio->gpdat;
> > +	temp = val & BOARDREV_MASK;
> > +	if (temp == BOARDREV_C)
> > +		board_rev = 'C';
> > +	else if (temp == BOARDREV_B)
> > +		board_rev = 'B';
> 
> What happens if it's neither BOARDREV_B nore BOARDREV_C ?
It has to be rev b or revC , may be we can spin  here. 
> 
> > > +}
> > +#endif
> > +
> > +/*
> > + * Miscellaneous late-boot configurations
> > + *
> > + * If a VSC7385 microcode image is present, then upload it.
> > +*/
> > +int misc_init_r(void)
> > +{
> > +	int rc = 0;
> > +
> > +
> > +#ifdef CONFIG_VSC7385_IMAGE
> > +	printf(" uploading VSC7385 microcode.from %x\n", 
> > +CONFIG_VSC7385_IMAGE);
> 
> Please check alignment of the output.
> 
> Why don't you use an environment variable for the image address?
Thanks for the sugggestion, I will do that.
> 
> > diff --git a/include/configs/P1_P2_RDB.h 
> b/include/configs/P1_P2_RDB.h 
> > new file mode 100644 index 0000000..99f62f6
> > --- /dev/null
> > +++ b/include/configs/P1_P2_RDB.h
> ...
> > +/*
> > +/* These are used when DDR doesn't use SPD.  */
> > +/* DDR2 at 533MHz, 512MB */
> > +#define CONFIG_SYS_DDR_CS0_BNDS		0x0000003F
> > +#define CONFIG_SYS_DDR_CS0_CONFIG	0x80014202	/* 
> Enable, no interleaving */
> > +#define CONFIG_SYS_DDR_CS0_CONFIG_2	0x00000000
> > +
> > +#define CONFIG_SYS_DDR_TIMING_3_533		0x00020000
> > +#define CONFIG_SYS_DDR_TIMING_0_533		0x00260802
> > +#define CONFIG_SYS_DDR_TIMING_1_533		0x4c47c432
> > +#define CONFIG_SYS_DDR_TIMING_2_533		0x0f9848ce
> > +#define CONFIG_SYS_DDR_TIMING_4_533		0x00000000
> > +#define CONFIG_SYS_DDR_TIMING_5_533		0x00000000
> > +#define CONFIG_SYS_DDR_CLK_CTRL_533		0x02800000
> > +#define CONFIG_SYS_DDR_MODE_1_533		0x00040642
> > +#define CONFIG_SYS_DDR_MODE_2_533		0x00000000
> > +#define CONFIG_SYS_DDR_INTERVAL_533		0x08200100
> > +#define CONFIG_SYS_DDR_CONTROL_533		0x43000000	
> /* Type = DDR2 */
> > +#define CONFIG_SYS_DDR_CONTROL2_533		0x24401000
> > +
> > +
> > +#define CONFIG_SYS_DDR_TIMING_3_400		0x00010000
> > +#define CONFIG_SYS_DDR_TIMING_0_400		0x00260802
> > +#define CONFIG_SYS_DDR_TIMING_1_400		0x39355322
> > +#define CONFIG_SYS_DDR_TIMING_2_400		0x1f9048ca
> > +#define CONFIG_SYS_DDR_TIMING_4_400		0x00000000
> > +#define CONFIG_SYS_DDR_TIMING_5_400		0x00000000
> > +#define CONFIG_SYS_DDR_CLK_CTRL_400		0x02800000
> > +#define CONFIG_SYS_DDR_MODE_1_400		0x00480432
> > +#define CONFIG_SYS_DDR_MODE_2_400		0x00000000
> > +#define CONFIG_SYS_DDR_INTERVAL_400		0x06180100
> > +#define CONFIG_SYS_DDR_CONTROL_400		0x43000000	
> /* Type = DDR2 */
> > +#define CONFIG_SYS_DDR_CONTROL2_400		0x24401000
> 
> How about defining a structure with these parameters, and 
> then initializing an array of structs?
> 
> That would significantly improve readability.
Will make the changes.
> 
Regards
Poonam
> -- 
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: 
> wd at denx.de I am more bored than you could ever possibly be.  
> Go back to work.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 


More information about the U-Boot mailing list