All of lore.kernel.org
 help / color / mirror / Atom feed
From: York Sun <yorksun@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/4] net/fman: Add support for 10GEC3 and 10GEC4
Date: Thu, 21 Nov 2013 09:51:17 -0800	[thread overview]
Message-ID: <528E4815.1040202@freescale.com> (raw)
In-Reply-To: <1384428714-31229-1-git-send-email-Shengzhou.Liu@freescale.com>

On 11/14/2013 03:31 AM, Shengzhou Liu wrote:
> There are more than two 10GEC in single FMAN in some SoCs(e.g. T2080).
> This patch adds support for 10GEC3 and 10GEC4.
> 
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
> Against master branch of upstream.
> 
>  arch/powerpc/include/asm/fsl_serdes.h |  2 ++
>  arch/powerpc/include/asm/immap_85xx.h |  2 ++
>  drivers/net/fm/eth.c                  |  8 ++++++--
>  drivers/net/fm/fm.h                   |  2 ++
>  drivers/net/fm/init.c                 | 18 ++++++++++++++----
>  include/fm_eth.h                      | 18 ++++++++++++++++++
>  6 files changed, 44 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/fsl_serdes.h b/arch/powerpc/include/asm/fsl_serdes.h
> index cce892c..404ded4 100644
> --- a/arch/powerpc/include/asm/fsl_serdes.h
> +++ b/arch/powerpc/include/asm/fsl_serdes.h
> @@ -62,6 +62,8 @@ enum srds_prtcl {
>  	QSGMII_FM1_B,		/* B indicates MACs 5,6,9,10 */
>  	QSGMII_FM2_A,
>  	QSGMII_FM2_B,
> +	XFI_FM1_MAC1,
> +	XFI_FM1_MAC2,
>  	XFI_FM1_MAC9,
>  	XFI_FM1_MAC10,
>  	XFI_FM2_MAC9,
> diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h
> index 060e0d7..e47da1d 100644
> --- a/arch/powerpc/include/asm/immap_85xx.h
> +++ b/arch/powerpc/include/asm/immap_85xx.h
> @@ -1717,6 +1717,8 @@ typedef struct ccsr_gur {
>  #define FSL_CORENET_DEVDISR2_DTSEC1_10	0x00400000
>  #define FSL_CORENET_DEVDISR2_10GEC1_1	0x00800000
>  #define FSL_CORENET_DEVDISR2_10GEC1_2	0x00400000
> +#define FSL_CORENET_DEVDISR2_10GEC1_3	0x80000000
> +#define FSL_CORENET_DEVDISR2_10GEC1_4	0x40000000
>  #define FSL_CORENET_DEVDISR2_DTSEC2_1	0x00080000
>  #define FSL_CORENET_DEVDISR2_DTSEC2_2	0x00040000
>  #define FSL_CORENET_DEVDISR2_DTSEC2_3	0x00020000
> diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
> index cb099cd..e346cd2 100644
> --- a/drivers/net/fm/eth.c
> +++ b/drivers/net/fm/eth.c
> @@ -557,8 +557,12 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg)
>  	num = fm_eth->num;
>  
>  #ifdef CONFIG_SYS_FMAN_V3
> -	if (fm_eth->type == FM_ETH_10G_E)
> -		num += 8;
> +	if (fm_eth->type == FM_ETH_10G_E) {
> +		if (fm_eth->num >= 2)
> +			num -= 2;
> +		else
> +			num += 8;
> +	}

It would be nice if you can add some comments here.


>  	base = &reg->memac[num].fm_memac;
>  	phyregs = &reg->memac[num].fm_memac_mdio;
>  #else
> diff --git a/drivers/net/fm/fm.h b/drivers/net/fm/fm.h
> index 3ec49a4..43de114 100644
> --- a/drivers/net/fm/fm.h
> +++ b/drivers/net/fm/fm.h
> @@ -18,9 +18,11 @@
>  #define RX_PORT_1G_BASE		0x08
>  #define MAX_NUM_RX_PORT_1G	CONFIG_SYS_NUM_FM1_DTSEC
>  #define RX_PORT_10G_BASE	0x10
> +#define RX_PORT_10G_BASE2	0x08
>  #define TX_PORT_1G_BASE		0x28
>  #define MAX_NUM_TX_PORT_1G	CONFIG_SYS_NUM_FM1_DTSEC
>  #define TX_PORT_10G_BASE	0x30
> +#define TX_PORT_10G_BASE2	0x28
>  #define MIIM_TIMEOUT    0xFFFF
>  
>  struct fm_muram {
> diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c
> index 35edd7a..cd787f4 100644
> --- a/drivers/net/fm/init.c
> +++ b/drivers/net/fm/init.c
> @@ -64,6 +64,12 @@ struct fm_eth_info fm_info[] = {
>  #if (CONFIG_SYS_NUM_FM1_10GEC >= 2)
>  	FM_TGEC_INFO_INITIALIZER(1, 2),
>  #endif
> +#if (CONFIG_SYS_NUM_FM1_10GEC >= 3)
> +	FM_TGEC_INFO_INITIALIZER2(1, 3),
> +#endif
> +#if (CONFIG_SYS_NUM_FM1_10GEC >= 4)
> +	FM_TGEC_INFO_INITIALIZER2(1, 4),
> +#endif
>  #if (CONFIG_SYS_NUM_FM2_10GEC >= 1)
>  	FM_TGEC_INFO_INITIALIZER(2, 1),
>  #endif
> @@ -239,10 +245,14 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
>  	 * FM1_10GEC1 is enabled and  FM1_DTSEC9 is disabled, ensure that the
>  	 * dual-role MAC is not disabled, ditto for other dual-role MACs.
>  	 */

Revise this comment to match your change.


> -	if (((info->port == FM1_DTSEC9) && (PORT_IS_ENABLED(FM1_10GEC1)))	||
> -	    ((info->port == FM1_DTSEC10) && (PORT_IS_ENABLED(FM1_10GEC2)))	||
> -	    ((info->port == FM1_10GEC1) && (PORT_IS_ENABLED(FM1_DTSEC9)))	||
> -	    ((info->port == FM1_10GEC2) && (PORT_IS_ENABLED(FM1_DTSEC10)))
> +	if (((info->port == FM1_DTSEC9) && (PORT_IS_ENABLED(FM1_10GEC1)))  ||
> +	    ((info->port == FM1_DTSEC10) && (PORT_IS_ENABLED(FM1_10GEC2))) ||
> +	    ((info->port == FM1_DTSEC1) && (PORT_IS_ENABLED(FM1_10GEC3)))  ||
> +	    ((info->port == FM1_DTSEC2) && (PORT_IS_ENABLED(FM1_10GEC4)))  ||
> +	    ((info->port == FM1_10GEC1) && (PORT_IS_ENABLED(FM1_DTSEC9)))  ||
> +	    ((info->port == FM1_10GEC2) && (PORT_IS_ENABLED(FM1_DTSEC10))) ||
> +	    ((info->port == FM1_10GEC3) && (PORT_IS_ENABLED(FM1_DTSEC1)))  ||
> +	    ((info->port == FM1_10GEC4) && (PORT_IS_ENABLED(FM1_DTSEC2)))

York

  reply	other threads:[~2013-11-21 17:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-14 11:31 [U-Boot] [PATCH 1/4] net/fman: Add support for 10GEC3 and 10GEC4 Shengzhou Liu
2013-11-21 17:51 ` York Sun [this message]
2013-11-22  3:19   ` Shengzhou Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=528E4815.1040202@freescale.com \
    --to=yorksun@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.