[U-Boot] [PATCH 1/4] udoo: Add Ethernet support.

Stefano Babic sbabic at denx.de
Thu Nov 7 09:38:12 CET 2013


Hi Giuseppe,

On 06/11/2013 21:33, Giuseppe Pagano wrote:
> Add Ethernet and networking support on uDoo board (FEC + phy Micrel)
> 
> 
> Signed-off-by: Giuseppe Pagano <giuseppe.pagano at seco.com>
> Cc: sbabic at denx.de
> 
> ---
> 
> diff -uNr a/board/udoo/udoo.c b/board/udoo/udoo.c
> --- a/board/udoo/udoo.c
> +++ b/board/udoo/udoo.c
> @@ -9,6 +9,7 @@
>  #include <asm/arch/clock.h>
>  #include <asm/arch/imx-regs.h>
>  #include <asm/arch/iomux.h>
> +#include <malloc.h>
>  #include <asm/arch/mx6-pins.h>
>  #include <asm/errno.h>
>  #include <asm/gpio.h>
> @@ -18,6 +19,9 @@
>  #include <asm/arch/crm_regs.h>
>  #include <asm/io.h>
>  #include <asm/arch/sys_proto.h>
> +#include <micrel.h>
> +#include <miiphy.h>
> +#include <netdev.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -25,6 +29,9 @@
>         PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |                 \
>         PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
>  
> +#define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                   \
> +	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
> +
>  #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |                   \
>         PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |                 \
>         PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
> @@ -58,6 +65,99 @@
>         MX6_PAD_EIM_D19__GPIO_3_19,
>  };
>  
> +int mx6_rgmii_rework(struct phy_device *phydev)
> +{
> +	/* To advertise only 10 Mbs */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x4, 0x61);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x9, 0x0c00);
> +

Why only 10 Mb/s ? I think the Micrel 9031 allows 1Gb/s.

Generally, use defines instead of hard coded values.

> +	/* enable master mode, force phy to 100Mbps */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x9, 0x1c00);
> +
> +	/* min rx data delay */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x0b, 0x8105);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x0c, 0x0000);
> +
> +	/* max rx/tx clock delay, min rx/tx control delay */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x0b, 0x8104);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x0c, 0xf0f0);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x0b, 0x104);
> +
> +	/* min rx data delay */
> +	ksz9021_phy_extended_write(phydev,
> +				   MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW, 0x0);

Is is 9021 or 9031 ?

> +
> +static void setup_iomux_enet(void)
> +{
> +	imx_iomux_v3_setup_multiple_pads(enet_pads1, ARRAY_SIZE(enet_pads1));
> +	udelay(20);
> +	gpio_direction_output(IMX_GPIO_NR(2, 31), 1); /* Power on of enet */
> +
> +	gpio_direction_output(IMX_GPIO_NR(3, 23), 0); /* SABRE Lite PHY rst */
> +
> +	gpio_direction_output(IMX_GPIO_NR(6, 24), 1);
> +	gpio_direction_output(IMX_GPIO_NR(6, 25), 1);
> +	gpio_direction_output(IMX_GPIO_NR(6, 27), 1);
> +	gpio_direction_output(IMX_GPIO_NR(6, 28), 1);
> +	gpio_direction_output(IMX_GPIO_NR(6, 29), 1);
> +	udelay(1000 * 10);
> +
> +	gpio_set_value(IMX_GPIO_NR(3, 23), 1); /* SABRE Lite PHY rst */

SABRE as comment is maybe wrong

> +#define CONFIG_PHY_MICREL_KSZ9021

Ok, it is 9021 - please be consistent with the comments avoiding mixing
9031 and 9021.

Best regards,
Stefano Babic


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list