[RFC PATCH] net, qe: add DM support for QE UEC ethernet

Heiko Schocher hs at denx.de
Wed Apr 15 06:57:44 CEST 2020


Hello Qiang Zhao,

Am 09.04.2020 um 10:00 schrieb Qiang Zhao:
> On 2020/4/9 13:20, Heiko Schocher <hs at denx.de> wrote:
> 
> 
>> -----Original Message-----
>> From: Heiko Schocher <hs at denx.de>
>> Sent: 2020年4月9日 13:19
>> To: Priyanka Jain <priyanka.jain at nxp.com>
>> Cc: U-Boot Mailing List <u-boot at lists.denx.de>; Holger Brunck
>> <holger.brunck at ch.abb.com>; Joe Hershberger <joe.hershberger at ni.com>;
>> Mario Six <mario.six at gdsys.cc>; Qiang Zhao <qiang.zhao at nxp.com>
>> Subject: Re: [RFC PATCH] net, qe: add DM support for QE UEC ethernet
>>
>> Hello Priyanka,
>>
>> Am 18.02.2020 um 10:05 schrieb Heiko Schocher:
>>> add DM/DTS suppor for the UEC ethernet on QUICC Engine Block.
>>>
>>> Signed-off-by: Heiko Schocher <hs at denx.de>
>>> ---
>>> Travis build:
>>>
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftrav
>>>
>> is-ci.org%2Fhsdenx%2Fu-boot-test%2Fbuilds%2F651400509&data=02%7C
>> 01
>>> %7Cqiang.zhao%40nxp.com%7C51477945d03e4b72383708d7dc458e7e%7C
>> 686ea1d3b
>>>
>> c2b4c6fa92cd99c5c301635%7C0%7C0%7C637220063612830833&sdata
>> =MALxWjN
>>> kO0lgq1b0gmk646eEI8HWZUXRqTHt6zaOQPk%3D&reserved=0
>>>
>>> - I let the old none DM based implementation in code
>>>     so boards should work with old implementation.
>>>     This Code should be removed if all boards are converted
>>>     to DM/DTS.
>>>
>>> - add the DM based qe uec driver under drivers/net/qe
>>>
>>> - Therefore copied the files uccf.c uccf.h uec.h from
>>>     drivers/qe. So there are a lot of Codingstyle problems
>>>     currently. I fix them in next version if this RFC
>>>     patch is OK or it needs some changes.
>>>
>>> - The dm based driver code is now under drivers/net/qe/dm_qe_uec.c
>>>     Used a lot of functions from drivers/qe/uec.c
>>>
>>> - seperated the PHY specific code into seperate file
>>>     drivers/net/qe/dm_qe_uec_phy.c
> 
> There are so much duplicated codes.

Yes, as I do not want to break other boards, as I said in comment.

If all boards are moved to this new driver, we can remove the old code.

> And what the dts node looks like?
> Could you please give an example?

Uh, indeed, I did not add an entry in "doc/device-tree-bindings/"

I add this in next version.

Same as in linux:

MDIO:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/boot/dts/kmeter1.dts#n426


			mdio at 3320 {
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0x3320 0x18>;
				compatible = "fsl,ucc-mdio";

				/* Piggy2 (UCC4, MDIO 0x00, RMII) */
				phy_piggy2: ethernet-phy at 0 {
					reg = <0x0>;
				};
			[...]

Ethernet:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/boot/dts/kmeter1.dts#n395

			/* Eth-3 (UCC7, MDIO 0x0a, RMII) */
			enet_eth3: ucc at 2600 {
				device_type = "network";
				compatible = "ucc_geth";
				cell-index = <7>;
				reg = <0x2600 0x200>;
				interrupts = <42>;
				interrupt-parent = <&qeic>;
				local-mac-address = [ 00 00 00 00 00 00 ];
				rx-clock-name = "none";
				tx-clock-name = "clk16";
				phy-handle = <&phy_eth3>;
				phy-connection-type = "rmii";
				pio-handle = <&pio_ucc7>;
			};

(And yes, compatible entry is ancient...)
> 
>>>
>>>
>>>    drivers/net/Kconfig            |    2 +
>>>    drivers/net/Makefile           |    1 +
>>>    drivers/net/qe/Kconfig         |    9 +
>>>    drivers/net/qe/Makefile        |    5 +
>>>    drivers/net/qe/dm_qe_uec.c     | 1161
>> ++++++++++++++++++++++++++++++++
>>>    drivers/net/qe/dm_qe_uec.h     |   22 +
>>>    drivers/net/qe/dm_qe_uec_phy.c |  161 +++++
>>>    drivers/net/qe/uccf.c          |  388 +++++++++++
>>>    drivers/net/qe/uccf.h          |  117 ++++
>>>    drivers/net/qe/uec.h           |  742 ++++++++++++++++++++
>>>    drivers/qe/uccf.c              |    2 +
>>>    drivers/qe/uec.c               |    2 +
>>>    drivers/qe/uec_phy.c           |    3 +
>>>    13 files changed, 2615 insertions(+)
>>>    create mode 100644 drivers/net/qe/Kconfig
>>>    create mode 100644 drivers/net/qe/Makefile
>>>    create mode 100644 drivers/net/qe/dm_qe_uec.c
>>>    create mode 100644 drivers/net/qe/dm_qe_uec.h
>>>    create mode 100644 drivers/net/qe/dm_qe_uec_phy.c
>>>    create mode 100644 drivers/net/qe/uccf.c
>>>    create mode 100644 drivers/net/qe/uccf.h
>>>    create mode 100644 drivers/net/qe/uec.h
>>
>> Any comments?
>>
>> Thanks!
>>
>> bye,
>> Heiko
>> --
>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de
> Best Regards
> Qiang Zhao
> 

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list