u-boot-brain/net
Rasmus Villemoes bdf319273b mdio-uclass.c: support fixed-link subnodes
When trying to port our mpc8309-based board to DM_ETH, on top of
Heiko's patches, I found that nothing in mdio-uclass.c seems to
support the use of a fixed-link subnode of the ethernet DT node. That
is, the ethernet node looks like

		enet0: ethernet@2000 {
			device_type = "network";
			compatible = "ucc_geth";
			...
			fixed-link {
				reg = <0xffffffff>;
				speed = <100>;
				full-duplex;
			};

but the current code expects there to be phy-handle property. Adding
that, i.e.

			phy-handle = <&enet0phy>;
			enet0phy: fixed-link {

just makes the code break a few lines later since a fixed-link node
doesn't have a reg property. Ignoring the dtc complaint and adding a
dummy reg property, we of course hit "can't find MDIO bus for node
ethernet@2000" since indeed, the parent node of the phy node does not
represent an MDIO bus. So that's obviously the wrong path.

Now, in linux, it seems that the fixed link case is treated specially;
in the of_phy_get_and_connect() which roughly corresponds to
dm_eth_connect_phy_handle() we have

    if (of_phy_is_fixed_link(np)) {
        ret = of_phy_register_fixed_link(np);
        ...
    } else {
        phy_np = of_parse_phandle(np, "phy-handle", 0);
	...
    }

    phy = of_phy_connect(dev, phy_np, hndlr, 0, iface);

And U-Boot's phy_connect() does have support for fixed-link
subnodes. Calling phy_connect() directly with NULL bus and a dummy
address does seem to make the ethernet work.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Heiko Schocher <hs@denx.de>
2021-02-21 18:46:41 -05:00
..
Kconfig Adds basic support for ProxyDHCP 2020-12-01 10:33:37 -05:00
Makefile net: Introduce DSA class for Ethernet switches 2021-02-16 11:48:20 -05:00
arp.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
arp.h net: Don't overwrite waiting packets with asynchronous replies 2018-10-10 12:29:01 -05:00
bootp.c Adds basic support for ProxyDHCP 2020-12-01 10:33:37 -05:00
bootp.h net: Use packed structures for networking 2017-08-07 15:18:31 -05:00
cdp.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
cdp.h SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
dns.c net: move random_port() to dns 2020-06-12 13:17:23 -04:00
dns.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dsa-uclass.c net: Introduce DSA class for Ethernet switches 2021-02-16 11:48:20 -05:00
eth-uclass.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
eth_common.c common: Drop bootstage.h from common header 2020-05-18 17:33:33 -04:00
eth_internal.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eth_legacy.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
fastboot.c fastboot: Add support for 'reboot fastboot' command 2020-09-01 14:47:43 +02:00
link_local.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
link_local.h net: Add link-local addressing support 2012-05-23 17:53:08 -05:00
mdio-mux-uclass.c dm: core: Access device ofnode through functions 2021-01-05 12:24:41 -07:00
mdio-uclass.c mdio-uclass.c: support fixed-link subnodes 2021-02-21 18:46:41 -05:00
net.c net: fix ping in netconsole 2021-01-27 08:25:31 -05:00
net_rand.h net: Use NDRNG device in srand_mac() 2021-01-19 09:15:02 -05:00
nfs.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
nfs.h net: nfs: remove superfluous packed attribute 2019-09-04 11:37:19 -05:00
pcap.c net: introduce packet capture support 2019-09-04 11:37:19 -05:00
ping.c net: Do not respond to ICMP_ECHO_REQUEST if we do not have an IP address 2021-01-19 09:15:02 -05:00
ping.h SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
rarp.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
rarp.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sntp.c net: sntp: remove CONFIG_TIMESTAMP constraint 2020-12-01 14:12:28 -05:00
tftp.c net: tftp: Avoid sending extra ack on completion 2021-02-18 08:20:34 -05:00
udp.c net: add a generic udp protocol 2020-09-30 16:55:03 -04:00
wol.c env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
wol.h net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00