[U-Boot] [PATCH V3 5/5] edminiv2: add ethernet support

Prafulla Wadaskar prafulla at marvell.com
Mon Jul 12 08:00:17 CEST 2010


 

> -----Original Message-----
> From: u-boot-bounces at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Albert Aribaud
> Sent: Sunday, July 11, 2010 1:32 PM
> To: u-boot at lists.denx.de
> Subject: [U-Boot] [PATCH V3 5/5] edminiv2: add ethernet support
> 
> Add edminiv2 board support for mv_egiga.
> Add edminiv2 config to enable mv_egiga.
> 
> Signed-off-by: Albert Aribaud <albert.aribaud at free.fr>
> ---
>  board/LaCie/edminiv2/edminiv2.c |   36 
> ++++++++++++++++++++++++++++++++++
>  board/LaCie/edminiv2/edminiv2.h |   41 
> +++++++++++++++++++++++++++++++++++++++
>  include/configs/edminiv2.h      |   23 ++++++++++++++++-----
>  3 files changed, 94 insertions(+), 6 deletions(-)
>  create mode 100644 board/LaCie/edminiv2/edminiv2.h
> 
> diff --git a/board/LaCie/edminiv2/edminiv2.c 
> b/board/LaCie/edminiv2/edminiv2.c
> index 54c0ffe..d46ee4a 100644
> --- a/board/LaCie/edminiv2/edminiv2.c
> +++ b/board/LaCie/edminiv2/edminiv2.c
> @@ -27,6 +27,7 @@
>  #include <common.h>
>  #include <miiphy.h>
>  #include <asm/arch/orion5x.h>
> +#include "edminiv2.h"
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -90,3 +91,38 @@ int board_init(void)
>  
>  	return 0;
>  }
> +
> +#if defined (CONFIG_CMD_NET) && defined (CONFIG_RESET_PHY_R)
> +/* Configure and enable MV88E1116 PHY */
> +void reset_phy(void)
> +{
> +	u16 reg;
> +	u16 devadr;
> +	char *name = "egiga0";
> +
> +	if (miiphy_set_current_dev(name))
> +		return;
> +
> +	/* command to read PHY dev address */
> +	if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
> +		printf("Err..%s could not read PHY dev address\n",
> +			__FUNCTION__);
> +		return;
> +	}
> +
> +	/*
> +	 * Enable RGMII delay on Tx and Rx for CPU port
> +	 * Ref: sec 4.7.2 of chip datasheet
> +	 */
> +	miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
> +	miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, &reg);
> +	reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
> +	miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
> +	miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
> +
> +	/* reset the phy */
> +	miiphy_reset(name, devadr);
> +
> +	printf("88E1116 Initialized on %s\n", name);
> +}
> +#endif /* CONFIG_RESET_PHY_R */
> diff --git a/board/LaCie/edminiv2/edminiv2.h 
> b/board/LaCie/edminiv2/edminiv2.h
> new file mode 100644
> index 0000000..88e62b2
> --- /dev/null
> +++ b/board/LaCie/edminiv2/edminiv2.h
> @@ -0,0 +1,41 @@
> +/*
> + * (C) Copyright 2009
> + * Net Insight <www.netinsight.net>
> + * Written-by: Simon Kagstrom <simon.kagstrom at netinsight.net>
> + *
> + * Based on sheevaplug.h:
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Written-by: Prafulla Wadaskar <prafulla at marvell.com>
> + *
> + * 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., 51 Franklin Street, Fifth Floor, Boston,
> + * MA 02110-1301 USA
> + */
> +
> +#ifndef __EDMINIV2_BASE_H
> +#define __EDMINIV2_BASE_H
> +
> +/* PHY related */
> +#define MV88E1116_LED_FCTRL_REG		10
> +#define MV88E1116_CPRSP_CR3_REG		21
> +#define MV88E1116_MAC_CTRL_REG		21
> +#define MV88E1116_PGADR_REG		22
> +#define MV88E1116_RGMII_TXTM_CTRL	(1 << 4)
> +#define MV88E1116_RGMII_RXTM_CTRL	(1 << 5)
> +
> +#endif /* __EDMINIV2_BASE_H */
> diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h
> index c3d95a0..458e313 100644
> --- a/include/configs/edminiv2.h
> +++ b/include/configs/edminiv2.h
> @@ -110,6 +110,15 @@
>  #define CONFIG_SYS_FLASH_SECTSZ \
>  	{16384, 8192, 8192, 32768, \
>  	 65536, 65536, 65536, 65536, 65536, 65536, 65536}
> +/*
> + * Ethernet
> +  */

Pls remove additional space char here

> +
> +#define CONFIG_MV_EGIGA		/* Enable Marvell egiga 
> Controller Driver */
> +#define CONFIG_MV_EGIGA_PORTS	{1,0}	/* enable port 0 only */
> +#define CONFIG_SKIP_LOCAL_MAC_RANDOMIZATION	/* don't 
> randomize MAC */
> +#define CONFIG_PHY_BASE_ADR	0x8
> +#define CONFIG_RESET_PHY_R	/* use reset_phy() to init 
> mv8831116 PHY */

Shift above definition below (inside #ifdef CONFIG_CMD_NET), that makes more sense

>  
>  /* auto boot */
>  #define CONFIG_BOOTDELAY	3	/* default enable autoboot */
> @@ -131,12 +140,14 @@
>   * Commands configuration - using default command set for now
>   */
>  #include <config_cmd_default.h>
> -/*
> - * Disabling some default commands for staggered bring-up
> - */
> -#undef CONFIG_CMD_BOOTD	/* no bootd since no net */
> -#undef CONFIG_CMD_NET	/* no net since no eth */
> -#undef CONFIG_CMD_NFS	/* no NFS since no net */
> +
> +#ifdef CONFIG_CMD_NET
> +#define CONFIG_NETCONSOLE	/* include NetConsole support   */
> +#define CONFIG_NET_MULTI	/* specify more that one ports 
> available */
> +#define	CONFIG_MII		/* expose smi ove 
> miiphy interface */
> +#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN	/* detect link 
> using phy */
> +#define CONFIG_ENV_OVERWRITE	/* ethaddr can be reprogrammed */
> +#endif
>  
>  /*
>   *  Environment variables configurations
> -- 
> 1.6.4.4
> 
> _______________________________________________
> 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