[U-Boot] [Patch v2 07/16] net/fm: fix MDIO controller base on FMAN2

Shaohui Xie Shaohui.Xie at freescale.com
Fri Sep 18 05:49:59 CEST 2015


> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Friday, September 18, 2015 2:05 AM
> To: Gong Qianyu-B52263
> Cc: u-boot at lists.denx.de; Hu Mingkai-B21284; Sun York-R58495; Hou
> Zhiqiang-B48286; Song Wenbin-B53747; Xie Shaohui-B21989; Wood Scott-
> B07421
> Subject: Re: [Patch v2 07/16] net/fm: fix MDIO controller base on FMAN2
> 
> On Thu, 2015-09-17 at 15:06 +0800, Gong Qianyu wrote:
> > From: Shaohui Xie <Shaohui.Xie at freescale.com>
> >
> > MDIO controller base on FMAN2 was defined as CONFIG_SYS_FSL_FM2_ADDR
> > plus offset, but CONFIG_SYS_FSL_FM2_ADDR only defined when there are
> > two FMANs, so we should only define MDIO controller base on FMAN2 when
> > there is FMAN2.
> >
> > Signed-off-by: Shaohui Xie <Shaohui.Xie at freescale.com>
> > Signed-off-by: Mingkai Hu <Mingkai.Hu at freescale.com>
> > Signed-off-by: Gong Qianyu <Qianyu.Gong at freescale.com>
> > ---
> >  include/fm_eth.h | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> >
> > diff --git a/include/fm_eth.h b/include/fm_eth.h index
> > 3e1b9f4..d43f801 100644
> > --- a/include/fm_eth.h
> > +++ b/include/fm_eth.h
> > @@ -45,8 +45,10 @@ enum fm_eth_type {
> >  #ifdef CONFIG_SYS_FMAN_V3
> >  #define CONFIG_SYS_FM1_DTSEC_MDIO_ADDR       (CONFIG_SYS_FSL_FM1_ADDR
> + 0xfc000)
> >  #define CONFIG_SYS_FM1_TGEC_MDIO_ADDR        (CONFIG_SYS_FSL_FM1_ADDR
> + 0xfd000)
> > +#if (CONFIG_SYS_NUM_FMAN == 2)
> >  #define CONFIG_SYS_FM2_DTSEC_MDIO_ADDR       (CONFIG_SYS_FSL_FM2_ADDR
> + 0xfc000)
> >  #define CONFIG_SYS_FM2_TGEC_MDIO_ADDR        (CONFIG_SYS_FSL_FM2_ADDR
> + 0xfd000)
> > +#endif
> >  #else
> >  #define CONFIG_SYS_FM1_DTSEC1_MDIO_ADDR      (CONFIG_SYS_FSL_FM1_ADDR
> + 0xe1120)
> >  #define CONFIG_SYS_FM1_TGEC_MDIO_ADDR        (CONFIG_SYS_FSL_FM1_ADDR
> + 0xf1000)
> > @@ -89,6 +91,7 @@ enum fm_eth_type {
> >                                offsetof(struct ccsr_fman,
> > memac[n-1]),\  }  #else
> > +#if (CONFIG_SYS_NUM_FMAN == 2)
> > #define FM_TGEC_INFO_INITIALIZER(idx, n) \
> >  {                                                                    \
> >       FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM2_TGEC_MDIO_ADDR)     \
> > @@ -101,6 +104,20 @@ enum fm_eth_type {
> >       .compat_offset  = CONFIG_SYS_FSL_FM##idx##_OFFSET +             \
> >                               offsetof(struct ccsr_fman,
> > memac[n-1+8]),\  }
> > +#else
> > +#define FM_TGEC_INFO_INITIALIZER(idx, n) \
> > +{                                                                    \
> > +     FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_TGEC_MDIO_ADDR)     \
> > +     .index          = idx,                                          \
> > +     .num            = n - 1,                                        \
> > +     .type           = FM_ETH_10G_E,                                 \
> > +     .port           = FM##idx##_10GEC##n,                           \
> > +     .rx_port_id     = RX_PORT_10G_BASE + n - 1,                     \
> > +     .tx_port_id     = TX_PORT_10G_BASE + n - 1,                     \
> > +     .compat_offset  = CONFIG_SYS_FSL_FM##idx##_OFFSET +             \
> > +                             offsetof(struct ccsr_fman,
> > +memac[n-1+8]),\ } #endif
> >  #endif
> 
> doc/README.fsl-dpaa says that CONFIG_FSL_FM_10GEC_REGULAR_NOTATION is for
> newer SoCs.  Presumably this patch is for ls1043a -- is that not
> considered a newer SoC?  Or does the README need to be fixed?
[S.H] Yes, this is for LS1043A. LS1043A has one FMAN same as T2080. 
A new SoC but has an old DPAA.

The issue this patch intends to fix is there is only one FMAN on LS1043A,
So CONFIG_SYS_FSL_FM2_ADDR is not defined on LS1043A, the define of MDIO controller base
On FMAN2 uses CONFIG_SYS_FSL_FM2_ADDR caused error on LS1043A.

Thanks!
Shaohui




More information about the U-Boot mailing list