[U-Boot] [PATCH 6/8] arm: ls1021atwr: Convert to use driver model TSEC driver
Vladimir Oltean
olteanv at gmail.com
Sat Jul 13 09:39:30 UTC 2019
Hi Joe,
On Fri, 12 Jul 2019 at 23:46, Joe Hershberger <joe.hershberger at ni.com> wrote:
>
> On Sun, Jun 23, 2019 at 12:53 PM Vladimir Oltean <olteanv at gmail.com> wrote:
> >
> > From: Bin Meng <bmeng.cn at gmail.com>
> >
> > Now that we have added driver model support to the TSEC driver,
> > convert ls1021atwr board to use it.
> >
> > This depends on previous DM series for ls1021atwr:
> > http://patchwork.ozlabs.org/patch/561855/
> >
> > Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>
> Generally looks good, but a few nits below...
>
> Acked-by: Joe Hershberger <joe.hershberger at ni.com>
>
> > [Vladimir] Made the following changes:
> > - Added 'status = "disabled";' for all Ethernet ports in ls1021a.dtsi
> > - Fixed the confusion between the SGMII/TBI PCS for enet0 and enet1 -
> > a mistake ported over from Linux. Each SGMII PCS lies on the private
> > MDIO bus of the interface (and the RGMII enet2 has no SGMII PCS).
> >
> > Signed-off-by: Vladimir Oltean <olteanv at gmail.com>
> > ---
> > arch/arm/cpu/armv7/ls102xa/cpu.c | 2 +-
> > arch/arm/cpu/armv7/ls102xa/fdt.c | 10 ++++++++
> > arch/arm/dts/ls1021a-twr.dtsi | 32 +++++++++++++++++++++++++
> > arch/arm/dts/ls1021a.dtsi | 28 ++++++++++++++++++++--
> > board/freescale/ls1021atwr/ls1021atwr.c | 2 +-
> > configs/ls1021atwr_nor_defconfig | 1 +
> > configs/ls1021atwr_nor_lpuart_defconfig | 1 +
> > include/configs/ls1021atwr.h | 4 ++++
> > 8 files changed, 76 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
> > index ecf9e869855e..9ccfe1042ce5 100644
> > --- a/arch/arm/cpu/armv7/ls102xa/cpu.c
> > +++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
> > @@ -296,7 +296,7 @@ int cpu_mmc_init(bd_t *bis)
> >
> > int cpu_eth_init(bd_t *bis)
> > {
> > -#ifdef CONFIG_TSEC_ENET
> > +#if defined(CONFIG_TSEC_ENET) && !defined(CONFIG_DM_ETH)
> > tsec_standard_init(bis);
> > #endif
> >
> > diff --git a/arch/arm/cpu/armv7/ls102xa/fdt.c b/arch/arm/cpu/armv7/ls102xa/fdt.c
> > index 8bf9c42b2260..90cf7958f257 100644
> > --- a/arch/arm/cpu/armv7/ls102xa/fdt.c
> > +++ b/arch/arm/cpu/armv7/ls102xa/fdt.c
> > @@ -16,12 +16,17 @@
> > #include <tsec.h>
> > #include <asm/arch/immap_ls102xa.h>
> > #include <fsl_sec.h>
> > +#include <dm.h>
> >
> > DECLARE_GLOBAL_DATA_PTR;
> >
> > void ft_fixup_enet_phy_connect_type(void *fdt)
> > {
> > +#ifndef CONFIG_DM_ETH
>
> Please use positive logic where convenient. I.e. #ifdef CONFIG_DM_ETH
> and swap cases.
>
To be honest I don't know why keep compatibility with non-DM ETH at
all for the TWR board. On the LS1021A-TSN I'm not doing that.
Bin, is there any particular reason? If not, I'll just completely
remove your #ifdef's for v2.
> > struct eth_device *dev;
> > +#else
> > + struct udevice *dev;
> > +#endif
> > struct tsec_private *priv;
> > const char *enet_path, *phy_path;
> > char enet[16];
> > @@ -29,7 +34,12 @@ void ft_fixup_enet_phy_connect_type(void *fdt)
> > int phy_node;
> > int i = 0;
> > uint32_t ph;
> > +#ifndef CONFIG_DM_ETH
>
> Use positive logic.
>
> > char *name[3] = { "eTSEC1", "eTSEC2", "eTSEC3" };
> > +#else
> > + char *name[3] = { "ethernet at 2d10000", "ethernet at 2d50000",
> > + "ethernet at 2d90000" };
> > +#endif
> >
> > for (; i < ARRAY_SIZE(name); i++) {
> > dev = eth_get_dev_by_name(name[i]);
> > diff --git a/arch/arm/dts/ls1021a-twr.dtsi b/arch/arm/dts/ls1021a-twr.dtsi
> > index 5d3275ced913..27c96f95400a 100644
> > --- a/arch/arm/dts/ls1021a-twr.dtsi
> > +++ b/arch/arm/dts/ls1021a-twr.dtsi
> > @@ -51,6 +51,26 @@
> > };
> > };
> >
> > +&enet0 {
> > + tbi-handle = <&tbi0>;
> > + phy-handle = <&sgmii_phy2>;
> > + phy-connection-type = "sgmii";
> > + status = "okay";
> > +};
> > +
> > +&enet1 {
> > + tbi-handle = <&tbi1>;
> > + phy-handle = <&sgmii_phy0>;
> > + phy-connection-type = "sgmii";
> > + status = "okay";
> > +};
> > +
> > +&enet2 {
> > + phy-handle = <&rgmii_phy1>;
> > + phy-connection-type = "rgmii-id";
> > + status = "okay";
> > +};
> > +
> > &i2c0 {
> > status = "okay";
> > };
> > @@ -84,12 +104,24 @@
> > sgmii_phy0: ethernet-phy at 0 {
> > reg = <0x0>;
> > };
> > +
> > rgmii_phy1: ethernet-phy at 1 {
> > reg = <0x1>;
> > };
> > +
> > sgmii_phy2: ethernet-phy at 2 {
> > reg = <0x2>;
> > };
> > +
> > + /* SGMII PCS for enet0 */
> > + tbi0: tbi-phy at 1f {
> > + reg = <0x1f>;
> > + device_type = "tbi-phy";
> > + };
> > +};
> > +
> > +&mdio1 {
> > + /* SGMII PCS for enet1 */
> > tbi1: tbi-phy at 1f {
> > reg = <0x1f>;
> > device_type = "tbi-phy";
> > diff --git a/arch/arm/dts/ls1021a.dtsi b/arch/arm/dts/ls1021a.dtsi
> > index 8a0f473e25ca..c274a302d358 100644
> > --- a/arch/arm/dts/ls1021a.dtsi
> > +++ b/arch/arm/dts/ls1021a.dtsi
> > @@ -350,14 +350,38 @@
> > <&platform_clk 1>;
> > };
> >
> > + enet0: ethernet at 2d10000 {
> > + compatible = "fsl,tsec";
> > + reg = <0x2d10000 0x1000>;
> > + status = "disabled";
> > + };
> > +
> > + enet1: ethernet at 2d50000 {
> > + compatible = "fsl,tsec";
> > + reg = <0x2d50000 0x1000>;
> > + status = "disabled";
> > + };
> > +
> > + enet2: ethernet at 2d90000 {
> > + compatible = "fsl,tsec";
> > + reg = <0x2d90000 0x1000>;
> > + status = "disabled";
> > + };
> > +
> > mdio0: mdio at 2d24000 {
> > - compatible = "gianfar";
> > - device_type = "mdio";
> > + compatible = "fsl,tsec-mdio";
> > #address-cells = <1>;
> > #size-cells = <0>;
> > reg = <0x2d24000 0x4000>;
> > };
> >
> > + mdio1: mdio at 2d64000 {
> > + compatible = "fsl,tsec-mdio";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + reg = <0x2d64000 0x4000>;
> > + };
> > +
> > usb at 8600000 {
> > compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
> > reg = <0x8600000 0x1000>;
> > diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c
> > index 01ba1bc96213..a4ff0b7bc7eb 100644
> > --- a/board/freescale/ls1021atwr/ls1021atwr.c
> > +++ b/board/freescale/ls1021atwr/ls1021atwr.c
> > @@ -248,7 +248,7 @@ int board_mmc_init(bd_t *bis)
> >
> > int board_eth_init(bd_t *bis)
> > {
> > -#ifdef CONFIG_TSEC_ENET
> > +#if defined(CONFIG_TSEC_ENET) && !defined(CONFIG_DM_ETH)
> > struct fsl_pq_mdio_info mdio_info;
> > struct tsec_info_struct tsec_info[4];
> > int num = 0;
> > diff --git a/configs/ls1021atwr_nor_defconfig b/configs/ls1021atwr_nor_defconfig
> > index 9d8c2024c04e..3c9cf9a8c909 100644
> > --- a/configs/ls1021atwr_nor_defconfig
> > +++ b/configs/ls1021atwr_nor_defconfig
> > @@ -40,6 +40,7 @@ CONFIG_SYS_FLASH_CFI=y
> > CONFIG_PHY_GIGE=y
> > CONFIG_E1000=y
> > CONFIG_MII=y
> > +CONFIG_DM_ETH=y
> > CONFIG_TSEC_ENET=y
> > CONFIG_PCI=y
> > CONFIG_DM_PCI=y
> > diff --git a/configs/ls1021atwr_nor_lpuart_defconfig b/configs/ls1021atwr_nor_lpuart_defconfig
> > index b9cfdb6fd69e..762af87b0dd3 100644
> > --- a/configs/ls1021atwr_nor_lpuart_defconfig
> > +++ b/configs/ls1021atwr_nor_lpuart_defconfig
> > @@ -42,6 +42,7 @@ CONFIG_SYS_FLASH_CFI=y
> > CONFIG_PHY_GIGE=y
> > CONFIG_E1000=y
> > CONFIG_MII=y
> > +CONFIG_DM_ETH=y
> > CONFIG_TSEC_ENET=y
> > CONFIG_PCI=y
> > CONFIG_DM_PCI=y
> > diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
> > index de0c9c7f26af..c967be3a6fce 100644
> > --- a/include/configs/ls1021atwr.h
> > +++ b/include/configs/ls1021atwr.h
> > @@ -260,6 +260,7 @@
> > */
> >
> > #ifdef CONFIG_TSEC_ENET
> > +#ifndef CONFIG_DM_ETH
>
> Use positive logic
>
> > #define CONFIG_MII_DEFAULT_TSEC 1
> > #define CONFIG_TSEC1 1
> > #define CONFIG_TSEC1_NAME "eTSEC1"
> > @@ -287,6 +288,9 @@
> > #define CONFIG_HAS_ETH0
> > #define CONFIG_HAS_ETH1
> > #define CONFIG_HAS_ETH2
> > +#else
> > +#define CONFIG_ETHPRIME "ethernet at 2d10000"
> > +#endif
> > #endif
> >
> > /* PCIe */
> > --
> > 2.17.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot
Thanks,
-Vladimir
More information about the U-Boot
mailing list