[U-Boot] [PATCH] DaVinci Network Driver Updates
Paulraj, Sandeep
s-paulraj at ti.com
Mon May 18 14:33:20 CEST 2009
Ben,
Any comments on this patch?
Thanks,
Sandeep
> -----Original Message-----
> From: Paulraj, Sandeep
> Sent: Tuesday, May 12, 2009 11:46 AM
> To: u-boot at lists.denx.de
> Cc: Paulraj, Sandeep
> Subject: [PATCH] DaVinci Network Driver Updates
>
> Different flavours of DaVinci SOC's have differences in their EMAC IP
> This patch does the following
> 1) Updates base addresses for DM365
> 2) Updates MDIO frequencies for DM365 and DM646x
> 3) Update EMAC wrapper registers for DM365 and DM646x
>
> Patch applies to u-boot-net git. the EMAC driver itself
> will be updated shortly to add support for DM365 and DM646x
>
> Signed-off-by: Sandeep Paulraj <s-paulraj at ti.com>
> ---
> include/asm-arm/arch-davinci/emac_defs.h | 32
> +++++++++++++++++++++++++++++-
> 1 files changed, 31 insertions(+), 1 deletions(-)
>
> diff --git a/include/asm-arm/arch-davinci/emac_defs.h
> b/include/asm-arm/arch-davinci/emac_defs.h
> index c11161f..ae75f84 100644
> --- a/include/asm-arm/arch-davinci/emac_defs.h
> +++ b/include/asm-arm/arch-davinci/emac_defs.h
> @@ -38,15 +38,38 @@
>
> #include <asm/arch/hardware.h>
>
> +#ifdef CONFIG_SOC_DM365
> +#define EMAC_BASE_ADDR (0x01d07000)
> +#define EMAC_WRAPPER_BASE_ADDR (0x01d0a000)
> +#define EMAC_WRAPPER_RAM_ADDR (0x01d08000)
> +#define EMAC_MDIO_BASE_ADDR (0x01d0b000)
> +#else
> #define EMAC_BASE_ADDR (0x01c80000)
> #define EMAC_WRAPPER_BASE_ADDR (0x01c81000)
> #define EMAC_WRAPPER_RAM_ADDR (0x01c82000)
> #define EMAC_MDIO_BASE_ADDR (0x01c84000)
> +#endif
>
> +#ifdef CONFIG_SOC_DM646x
> +/* MDIO module input frequency */
> +#define EMAC_MDIO_BUS_FREQ 76500000
> +/* MDIO clock output frequency */
> +#define EMAC_MDIO_CLOCK_FREQ 2500000 /* 2.5 MHz */
> +#elif defined(CONFIG_SOC_DM365)
> +/* MDIO module input frequency */
> +#define EMAC_MDIO_BUS_FREQ 121500000
> +/* MDIO clock output frequency */
> +#define EMAC_MDIO_CLOCK_FREQ 2200000 /* 2.2 MHz */
> +#else
> /* MDIO module input frequency */
> #define EMAC_MDIO_BUS_FREQ 99000000 /*
> PLL/6 - 99 MHz */
> /* MDIO clock output frequency */
> #define EMAC_MDIO_CLOCK_FREQ 2000000 /* 2.0 MHz */
> +#endif
> +
> +/* PHY mask - set only those phy number bits where phy
> is/can be connected */
> +#define EMAC_MDIO_PHY_NUM 1
> +#define EMAC_MDIO_PHY_MASK (1 << EMAC_MDIO_PHY_NUM)
>
> /* Ethernet Min/Max packet size */
> #define EMAC_MIN_ETHERNET_PKT_SIZE 60
> @@ -103,6 +126,8 @@ typedef volatile struct _emac_desc
>
> #define EMAC_MACCONTROL_MIIEN_ENABLE (0x20)
> #define EMAC_MACCONTROL_FULLDUPLEX_ENABLE (0x1)
> +#define EMAC_MACCONTROL_GIGABIT_ENABLE (1 << 7)
> +#define EMAC_MACCONTROL_GIGFORCE (1 << 17)
>
> #define EMAC_RXMBPENABLE_RXCAFEN_ENABLE (0x200000)
> #define EMAC_RXMBPENABLE_RXBROADEN (0x2000)
> @@ -258,12 +283,17 @@ typedef struct {
>
> /* EMAC Wrapper Registers Structure */
> typedef struct {
> +#if defined(CONFIG_SOC_DM646x) || defined(CONFIG_SOC_DM365)
> + dv_reg IDVER;
> + dv_reg SOFTRST;
> + dv_reg EMCTRL;
> +#else
> u_int8_t RSVD0[4100];
> dv_reg EWCTL;
> dv_reg EWINTTCNT;
> +#endif
> } ewrap_regs;
>
> -
> /* EMAC MDIO Registers Structure */
> typedef struct {
> dv_reg VERSION;
> --
> 1.6.0.4
>
>
More information about the U-Boot
mailing list