[U-Boot-Users] [PATCH] add MPC8343 based board mvBlueLYNX-M7 aka mvblm7

Kim Phillips kim.phillips at freescale.com
Thu Apr 10 18:11:58 CEST 2008


On Wed, 09 Apr 2008 16:16:28 +0200
Andre Schwarz <andre.schwarz at matrix-vision.de> wrote:

> MPC8343 based stereo camera system with Cyclone-II FPGA and miniPCI Slot.
> CPU utilizes dual 10/100/1000 Ethernet using Vitesse VSC8601 RGMII Phys 
> and USB over ULPI.
> 512MB Micron DDR-II memory, 8MB Flash on LocalBus, SD over SPU and 32MB 
> NAND @ FPGA.
> 
> Signed-off-by: Andre Schwarz <andre.schwarz at matrix-vision.de>
> --

Wolfgang, I believe the window for new board support is closed; would
you rather I maintain this on a "next" branch on mpc83xx, or are you
willing to let this in for 1.3.3?

Andre, thanks for the new board contribution - please include diffstats
in your patches.

> diff --git a/CREDITS b/CREDITS
> index e84ef38..713f58a 100644
> --- a/CREDITS
> +++ b/CREDITS
> @@ -424,6 +424,11 @@ N: Paolo Scaffardi
>  E: arsenio at tin.it
>  D: FADS823 configuration, MPC823 video support, I2C, wireless keyboard, lots more
>  
> +N: Andre Schwarz
> +E: andre.schwarz at matrix-vision.de
> +D: Support for BlueLYNX and BlueCOUGAR series
> +W: www.matrix-vision.com
> +
>  N: Robert Schwebel
>  E: r.schwebel at pengutronix.de
>  D: Support for csb226, logodl and innokom boards (PXA2xx)
> diff --git a/MAKEALL b/MAKEALL
> index 2a872ac..f21c34e 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -327,6 +327,7 @@ LIST_83xx="		\
>  	MPC8360ERDK_66	\
>  	MPC837XEMDS	\
>  	MPC837XERDB	\
> +	MVBLM7		\
>  	sbc8349		\
>  	TQM834x		\
>  "
> diff --git a/Makefile b/Makefile
> index a7f886b..3f217fe 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2084,6 +2084,9 @@ sbc8349_config:		unconfig
>  TQM834x_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc mpc83xx tqm834x
>  
> +MVBLM7_config: unconfig
> +	@$(MKCONFIG) $(@:_config=) ppc mpc83xx mvblm7
> +

I believe intra-family targets are kept in alpha order in the Makefile
(as you did in MAKEALL).

please add a MAINTAINERS entry. A doc/README.mvblm7 would be nice.

<snip>
> diff --git a/board/mvblm7/config.mk b/board/mvblm7/config.mk
> new file mode 100644
> index 0000000..a659203
> --- /dev/null
> +++ b/board/mvblm7/config.mk
<snip>
> +#
> +# MPC8349E-mITX and MPC8349E-mITX-GP
> +#

I'd leave this out :)

> +
> +sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
> +
> +TEXT_BASE  = 0xFFF00000
> diff --git a/board/mvblm7/fpga.c b/board/mvblm7/fpga.c
> new file mode 100644
> index 0000000..d286ef1
> --- /dev/null
> +++ b/board/mvblm7/fpga.c
<snip>
> +#if (CONFIG_FPGA)

#if defined?

<snip>
> +int mvblm7_init_fpga (void)

we don't put spaces between function name and open parenthesis, do we?

All your functions are like this.

> +{
> +	DECLARE_GLOBAL_DATA_PTR;

this needs to be put somewhere global.

> +
> +	fpga_debug("%s:%d: Initialize FPGA interface (relocation offset = 0x%.8lx)\n",
> +		__FUNCTION__, __LINE__, gd->reloc_off);
> +	fpga_init (gd->reloc_off);
> +
> +	fpga_debug("%s:%d: Adding fpga 0\n", __FUNCTION__, __LINE__);
> +	fpga_add (fpga_altera, &cyclone2);
> +	return 1;
> +}
> +
> +int fpga_null_fn (int cookie)
> +{
> +        return 0;
> +}
> +
> +int fpga_config_fn (int assert, int flush, int cookie)
> +{
> +        volatile immap_t        *im = (volatile immap_t *)CFG_IMMR;
> +        volatile gpio83xx_t	*gpio = (volatile gpio83xx_t *)&im->gpio[0];

fix indentation; use tabs, not spaces.

> +
> +	u32 dvo = gpio->dat;

keep declarations together, leave blank space between declarations and
code - i.e, mv above blank line to before this line:

> +	fpga_debug("SET config : %s\n", assert ? "low" : "high");
> +	if ( assert ) 

no spaces around assert

> +		dvo |= FPGA_CONFIG;
> +	else 
> +		dvo &= ~FPGA_CONFIG;
> +	
> +	if ( flush )
> +		gpio->dat = dvo;
> +	return assert;

can you also get in the habit of leaving blank lines before return
statements?  thanks.

<snipped more code that gets above comments also>

> +	for ( i=0; i<8; i++ ) {

please read CodingStyle!  this should look like:

for (i = 0; i < 8; i++) {

<snip similar cases>

> diff --git a/board/mvblm7/mvblm7.c b/board/mvblm7/mvblm7.c
<snip>
> +        im->ddr.sdram_interval = CFG_DDR_INTERVAL;
> +        im->ddr.sdram_clk_cntl = CFG_DDR_CLK_CNTL;

use tabs, not spaces.

<snip>
> +u8 *dhcp_vendorex_prep (u8 * e)

u8 *dhcp_vendorex_prep(u8 *e)

> +{
> +    char *ptr;
> +
> +/* DHCP vendor-class-identifier = 60 */
> +    if ((ptr = getenv ("dhcp_vendor-class-identifier"))) {

fix indentation.  Use tabs, not spaces.

> +        *e++ = 60;
> +        *e++ = strlen (ptr);

strlen(ptr);

> +        while (*ptr)
> +            *e++ = *ptr++;
> +    }
> +/* DHCP_CLIENT_IDENTIFIER = 61 */
> +    if ((ptr = getenv ("dhcp_client_id"))) {

..

<snip>
> diff --git a/board/mvblm7/pci.c b/board/mvblm7/pci.c
<sniiiiip>
> +			tmp[0] = cpu_to_be32(gd->pci_clk);
> +			do_fixup_by_path(blob, path, "clock-frequency",
> +				&tmp, sizeof(tmp[0]), 1);
> +		}
> +	}
> +}
> +#endif
 
please use generic 83xx pci code (cpu/mpc83xx/pci.c).  See the
mpc8313erdb board implementation for an example use-case.

Again, thanks for your contribution!

Kim




More information about the U-Boot mailing list