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 = ®->memac[num].fm_memac;
> phyregs = ®->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
next prev parent 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.