Re: [PATCH v1 2/2] net: designware: Add bitbang feature for designware driver

2023-07-21 Thread Ramon Fried
On Tue, Jun 13, 2023 at 9:29 AM Jim Liu wrote: > > Hi Ramon > > Thanks for your review. > The udelay timing is defined on our spec . > Does this need to use config to control it or use dts method to set the > timing? dts > > > Best regards, > Jim >

Re: [PATCH v1] net: sun8i-emac: Add support for fixed-link phy

2023-07-21 Thread Ramon Fried
uot;, > -1); > > pdata->phy_interface = dev_read_phy_mode(dev); > debug("phy interface %d\n", pdata->phy_interface); > -- > 2.39.2 > Reviewed-by: Ramon Fried

Re: [PATCH 1/2] net: phy: Factor out PHY GPIO reset code

2023-07-21 Thread Ramon Fried
properties are > missing. > > Signed-off-by: Marek Vasut > --- > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michal Simek > Cc: Nishanth Menon > Cc: Ramon Fried > --- > drivers/net/phy/ethernet_id.c | 37 -

Re: [PATCH 2/2] net: phy: Release PHY from GPIO reset if applicable

2023-07-21 Thread Ramon Fried
y better chance of successful PHY ID > readout. > > Signed-off-by: Marek Vasut > --- > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michal Simek > Cc: Nishanth Menon > Cc: Ramon Fried > --- > drivers/net/phy/phy.c | 2 +- > 1 file changed, 1 insertion(+), 1 d

Re: [PATCH v1 1/4] net: rtl8169: Fix compile warning in rtl8169 network adapter

2023-07-21 Thread Ramon Fried
+ (reg))) > > #define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)(unsigned long)dev->priv, \ > (pci_addr_t)(unsigned long)a) > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH v1 2/4] net: rtl8169: Fix DMA min aligned compile warning in riscv

2023-07-21 Thread Ramon Fried
p;& \ > - !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) && !defined(CONFIG_X86) > + !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) && !defined(CONFIG_X86) && > !defined(CONFIG_RISCV) > #warning cache-line size is larger than descriptor size > #endif > #endif > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH v1 3/4] net: rtl8169: Add one more device ID

2023-07-21 Thread Ramon Fried
t;device) { > - case 0x8168: > case 0x8125: > + case 0x8161: > + case 0x8168: > region = 2; > break; > default: > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH] net: ksz9477: add support for KSZ9893 GbE switch

2023-07-21 Thread Ramon Fried
_i2c_probe(struct udevice *dev) > case 0x00989700: > puts("KSZ9897S: "); > break; > + case 0x00989300: > + puts("KSZ9893R: "); > + break; > default: > dev_err(dev, "invalid chip id: 0x%08x\n", id); > return -EINVAL; > } > + if ((id & 0xf00) == 0x300) > + priv->features |= IS_9893; > + else > + priv->features |= NEW_XMII; > > /* probe mdio bus */ > ret = ksz_probe_mdio(dev); > @@ -503,6 +577,7 @@ static const struct udevice_id ksz_i2c_ids[] = { > { .compatible = "microchip,ksz9897" }, > { .compatible = "microchip,ksz9477" }, > { .compatible = "microchip,ksz9567" }, > + { .compatible = "microchip,ksz9893" }, > { } > }; > > -- > 2.25.1 > > Reviewed-by: Ramon Fried

Re: [PATCH 05/17] net: ipv6: Add string_to_ip6 converter

2022-09-11 Thread Ramon Fried
; + if (i == 6 && isdigit((int)*s)) { > + struct in_addr v4 = string_to_ip(s); > + > + if (memcmp(&zero_ip, &v4, > + sizeof(struct in_addr)) != 0) { > + /* Ending with :IPv4-address */ > + addr->s6_addr32[3] = v4.s_addr; > + break; > + } > + } > + > + val = simple_strtoul(s, &end, 16); > + if (end != e && *end != '\0' && *end != ':') > + goto out_err; > + addr->s6_addr16[i] = htons(val); > + s = end; > + } > + return 0; > + > +out_err: > + return -1; > +} > +#endif > + > void string_to_enetaddr(const char *addr, uint8_t *enetaddr) > { > char *end; > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 04/17] net: ipv6: Add Neighbor Discovery Protocol (NDP)

2022-09-11 Thread Ramon Fried
&ndisc->target); > + } > + break; > + > + case IPV6_NDISC_NEIGHBOUR_ADVERTISEMENT: > + /* are we waiting for a reply ? */ > + if (ip6_is_unspecified_addr(&net_nd_sol_packet_ip6)) > + break; > + > + if ((memcmp(&ndisc->target, &net_nd_rep_packet_ip6, > + sizeof(struct in6_addr)) == 0) && > + ndisc_has_option(ip6, ND_OPT_TARGET_LL_ADDR)) { > + ndisc_extract_enetaddr(ndisc, neigh_eth_addr); > + > + /* save address for later use */ > + if (!net_nd_packet_mac) > + memcpy(net_nd_packet_mac, neigh_eth_addr, 7); > + > + /* modify header, and transmit it */ > + memcpy(((struct ethernet_hdr > *)net_nd_tx_packet)->et_dest, > + neigh_eth_addr, 6); > + > + net_send_packet(net_nd_tx_packet, > + net_nd_tx_packet_size); > + > + /* no ND request pending now */ > + net_nd_sol_packet_ip6 = net_null_addr_ip6; > + net_nd_tx_packet_size = 0; > + net_nd_packet_mac = NULL; > + } > + break; > + default: > + debug("Unexpected ICMPv6 type 0x%x\n", icmp->icmp6_type); > + return -1; > + } > + > + return 0; > +} > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 07/17] net: ipv6: Add ip6addr, gatewayip6, serverip6 variables callbacks

2022-09-11 Thread Ramon Fried
turn string_to_ip6(value, strlen(value), &net_gateway6); > +} > + > +U_BOOT_ENV_CALLBACK(gatewayip6, on_gatewayip6); > + > +static int on_serverip6(const char *name, const char *value, enum env_op op, > + int flags) > +{ > + if (flags & H_PROGRAMMATIC) > + return 0; > + > + return string_to_ip6(value, strlen(value), &net_server_ip6); > +} > + > +U_BOOT_ENV_CALLBACK(serverip6, on_serverip6); > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 06/17] net: ipv6: Enable IPv6 typeconversion specifier

2022-09-11 Thread Ramon Fried
/* Fallthrough */ > case 'I': > - /* %pI6 currently unused */ > - if (0 && fmt[1] == '6') > + if (IS_ENABLED(CONFIG_IPV6) && fmt[1] == '6') > return ip6_addr_string(buf, end, ptr, field_width, >precision, flags); > if (fmt[1] == '4') > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 09/17] net: ipv6: Incorporate IPv6 support into u-boot net subsystem

2022-09-12 Thread Ramon Fried
The ethernet > * receive routine will process it. > @@ -1187,6 +1203,11 @@ void net_process_received_packet(uchar *in_packet, int > len) > case PROT_RARP: > rarp_receive(ip, len); > break; > +#endif > +#if IS_ENABLED(CONFI

Re: [PATCH 08/17] net: ipv6: Add implementation of main IPv6 functions

2022-09-12 Thread Ramon Fried
gt; + struct icmp6hdr *icmp; > + struct udp_hdr *udp; > + u16 csum; > + u16 csum_p; > + u16 hlen; > + > + if (len < IP6_HDR_SIZE) > + return -EINVAL; > + > + if (ip6->version != 6) > + return -EINVAL; > + > + switch (ip6->nexthdr) { > + case PROT_ICMPV6: > + icmp = (struct icmp6hdr *)(((uchar *)ip6) + IP6_HDR_SIZE); > + csum = icmp->icmp6_cksum; > + hlen = ntohs(ip6->payload_len); > + icmp->icmp6_cksum = 0; > + /* checksum */ > + csum_p = csum_partial((u8 *)icmp, hlen, 0); > + icmp->icmp6_cksum = csum_ipv6_magic(&ip6->saddr, &ip6->daddr, > + hlen, PROT_ICMPV6, > csum_p); > + > + if (icmp->icmp6_cksum != csum) > + return -EINVAL; > + > + switch (icmp->icmp6_type) { > + case IPV6_NDISC_NEIGHBOUR_SOLICITATION: > + case IPV6_NDISC_NEIGHBOUR_ADVERTISEMENT: > + ndisc_receive(et, ip6, len); > + break; > + default: > + break; > + } > + break; > + case IPPROTO_UDP: > + udp = (struct udp_hdr *)(((uchar *)ip6) + IP6_HDR_SIZE); > + csum = udp->udp_xsum; > + hlen = ntohs(ip6->payload_len); > + udp->udp_xsum = 0; > + /* checksum */ > + csum_p = csum_partial((u8 *)udp, hlen, 0); > + udp->udp_xsum = csum_ipv6_magic(&ip6->saddr, &ip6->daddr, > + hlen, IPPROTO_UDP, csum_p); > + > + if (csum != udp->udp_xsum) > + return -EINVAL; > + > + /* IP header OK. Pass the packet to the current handler. */ > + net_get_udp_handler()((uchar *)ip6 + IP6_HDR_SIZE + > + UDP_HDR_SIZE, > + ntohs(udp->udp_dst), > + zero_ip, > + ntohs(udp->udp_src), > + ntohs(udp->udp_len) - 8); > + break; > + default: > + return -EINVAL; > + } > + > + return 0; > +} > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 10/17] net: tftp: Add IPv6 support for tftpboot

2022-09-12 Thread Ramon Fried
e_ip6) { > + printf("TFTP from server %pI6c; our IP address is %pI6c", > + &tftp_remote_ip6, &net_ip6); > + > + if (tftp_block_size_option > TFTP_MTU_BLOCKSIZE6) > + tftp_block_size_option = TFTP_MTU_BLOCKSIZE6; > + } else { > + printf("TFTP %s server %pI4; our IP address is %pI4", > #ifdef CONFIG_CMD_TFTPPUT > - protocol == TFTPPUT ? "to" : "from", > + protocol == TFTPPUT ? "to" : "from", > #else > - "from", > + "from", > #endif > - &tftp_remote_ip, &net_ip); > + &tftp_remote_ip, &net_ip); > + } > > /* Check if we need to send across this subnet */ > - if (net_gateway.s_addr && net_netmask.s_addr) { > + if (IS_ENABLED(CONFIG_IPV6) && use_ip6) { > + if (!ip6_addr_in_subnet(&net_ip6, &tftp_remote_ip6, > + net_prefix_length)) > + printf("; sending through gateway %pI6c", > + &net_gateway6); > + } else if (net_gateway.s_addr && net_netmask.s_addr) { > struct in_addr our_net; > struct in_addr remote_net; > > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 11/17] net: ping6: Add ping6 command

2022-09-12 Thread Ramon Fried
aiting */ > +} > + > +static void ping6_timeout(void) > +{ > + eth_halt(); > + net_set_state(NETLOOP_FAIL);/* we did not get the reply */ > +} > + > +void ping6_start(void) > +{ > + printf("Using %s device\n", eth_get_name()); > + net_set_timeout_handler(1UL, ping6_timeout); > + > + ping6_send(); > +} > + > +int ping6_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len) > +{ > + struct icmp6hdr *icmp = > + (struct icmp6hdr *)(((uchar *)ip6) + IP6_HDR_SIZE); > + struct in6_addr src_ip; > + > + switch (icmp->icmp6_type) { > + case IPV6_ICMP_ECHO_REPLY: > + src_ip = ip6->saddr; > + if (memcmp(&net_ping_ip6, &src_ip, sizeof(struct in6_addr))) > + return -EINVAL; > + net_set_state(NETLOOP_SUCCESS); > + break; > + case IPV6_ICMP_ECHO_REQUEST: > + /* ignore for now */ > + debug("Got ICMPv6 ECHO REQUEST from %pI6c\n", &ip6->saddr); > + return -EINVAL; > + default: > + debug("Unexpected ICMPv6 type 0x%x\n", icmp->icmp6_type); > + return -EINVAL; > + } > + > + return 0; > +} > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 01/17] net: ipv6: Add IPv6 basic primitives

2022-09-12 Thread Ramon Fried
+static inline int > +net_ip6_handler(struct ethernet_hdr *et, struct ip6_hdr *ip6, > + int len) > +{ > + return -EINVAL; > +} > + > +/** > + * Copy IPv6 addr > + * > + * @param to destination IPv6 addr > + * @param from source IPv6 addr > + */ > +static inline void net_copy_ip6(void *to, const void *from) > +{ > +} > + > +#endif /* __NET6_H__ */ > diff --git a/net/net6.c b/net/net6.c > new file mode 100644 > index 00..7cd442e6e2 > --- /dev/null > +++ b/net/net6.c > @@ -0,0 +1,31 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2013 Allied Telesis Labs NZ > + * Chris Packham, > + * > + * Copyright (C) 2022 YADRO > + * Viacheslav Mitrofanov > + */ > + > +/* Simple IPv6 network layer implementation */ > + > +#include > +#include > +#include > +#include > +#include > + > +/* NULL IPv6 address */ > +struct in6_addr const net_null_addr_ip6 = ZERO_IPV6_ADDR; > +/* Our gateway's IPv6 address */ > +struct in6_addr net_gateway6 = ZERO_IPV6_ADDR; > +/* Our IPv6 addr (0 = unknown) */ > +struct in6_addr net_ip6 = ZERO_IPV6_ADDR; > +/* Our link local IPv6 addr (0 = unknown) */ > +struct in6_addr net_link_local_ip6 = ZERO_IPV6_ADDR; > +/* set server IPv6 addr (0 = unknown) */ > +struct in6_addr net_server_ip6 = ZERO_IPV6_ADDR; > +/* The prefix length of our network */ > +u32 net_prefix_length; > + > +bool use_ip6; > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 03/17] net: ipv6: Add callbacks declarations to get access to IPv6 variables

2022-09-12 Thread Ramon Fried
#define NET6_FLAGS > +#endif > + > #ifndef CONFIG_ENV_OVERWRITE > #define SERIAL_FLAGS "serial#:so," > #else > @@ -76,6 +85,7 @@ enum env_flags_varaccess { > #define ENV_FLAGS_LIST_STATIC \ > ETHADDR_FLAGS \ > NET_FLAGS \ > + NET6_FLAGS \ > SERIAL_FLAGS \ > CONFIG_ENV_FLAGS_LIST_STATIC > > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 02/17] net: ipv6: Add IPv6 build options

2022-09-12 Thread Ramon Fried
X) += mdio-mux-uclass.o > obj-$(CONFIG_NET) += eth_common.o > obj-$(CONFIG_CMD_LINK_LOCAL) += link_local.o > obj-$(CONFIG_NET) += net.o > +obj-$(CONFIG_IPV6) += net6.o > obj-$(CONFIG_CMD_NFS) += nfs.o > obj-$(CONFIG_CMD_PING) += ping.o > obj-$(CONFIG_CMD_PCAP) += pcap.o > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH 03/17] net: ipv6: Add callbacks declarations to get access to IPv6 variables

2022-09-12 Thread Ramon Fried
s" > +#else > +#define NET6_FLAGS > +#endif > + > #ifndef CONFIG_ENV_OVERWRITE > #define SERIAL_FLAGS "serial#:so," > #else > @@ -76,6 +85,7 @@ enum env_flags_varaccess { > #define ENV_FLAGS_LIST_STATIC \ > ETHADDR_FLAGS \ > NET_FLAGS \ > + NET6_FLAGS \ > SERIAL_FLAGS \ > CONFIG_ENV_FLAGS_LIST_STATIC > > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH v3 06/32] net: mediatek: use a struct to cover variations of all SoCs

2022-09-12 Thread Ramon Fried
e MTK_TRGMII BIT(MTK_TRGMII_BIT) > +#define MTK_TRGMII_MT7621_CLK BIT(MTK_TRGMII_MT7621_CLK_BIT) > + > +/* Supported path present on SoCs */ > +#define MTK_ETH_PATH_GMAC1_TRGMII BIT(MTK_ETH_PATH_GMAC1_TRGMII_BIT) > + > +#define MTK_GMAC1_TRGMII (MTK_ETH_PATH_GMAC1_TRGMII | MTK_TRGMII) > + > +#define MTK_HAS_CAPS(caps, _x) (((caps) & (_x)) == (_x)) > + > +#define MT7621_CAPS (MTK_GMAC1_TRGMII | MTK_TRGMII_MT7621_CLK) > + > +#define MT7623_CAPS (MTK_GMAC1_TRGMII) > + > +/* Frame Engine Register Bases */ > #define PDMA_BASE 0x0800 > #define GDMA1_BASE 0x0500 > #define GDMA2_BASE 0x1500 > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH v3 07/32] net: mediatek: stop using bitfileds for DMA descriptors

2022-09-12 Thread Ramon Fried
0x300 > #define PHY_POWER_SAVING_TX0x0 > > +/* PDMA descriptors */ > +struct mtk_rx_dma { > + unsigned int rxd1; > + unsigned int rxd2; > + unsigned int rxd3; > + unsigned int rxd4; > +} __packed __aligned(4); > + > +struct mtk_tx_dma { > + unsigned int txd1; > + unsigned int txd2; > + unsigned int txd3; > + unsigned int txd4; > +} __packed __aligned(4); > + > +/* PDMA TXD fields */ > +#define PDMA_TXD2_DDONEBIT(31) > +#define PDMA_TXD2_LS0 BIT(30) > +#define PDMA_TXD2_SDL0_M GENMASK(29, 16) > +#define PDMA_TXD2_SDL0_SET(_v) FIELD_PREP(PDMA_TXD2_SDL0_M, (_v)) > + > +#define PDMA_TXD4_FPORT_M GENMASK(27, 25) > +#define PDMA_TXD4_FPORT_SET(_v)FIELD_PREP(PDMA_TXD4_FPORT_M, (_v)) > + > +/* PDMA RXD fields */ > +#define PDMA_RXD2_DDONEBIT(31) > +#define PDMA_RXD2_LS0 BIT(30) > +#define PDMA_RXD2_PLEN0_M GENMASK(29, 16) > +#define PDMA_RXD2_PLEN0_GET(_v)FIELD_GET(PDMA_RXD2_PLEN0_M, (_v)) > +#define PDMA_RXD2_PLEN0_SET(_v)FIELD_PREP(PDMA_RXD2_PLEN0_M, (_v)) > + > #endif /* _MTK_ETH_H_ */ > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH v1] net: nuvoton: fix build broken for use phy_get_interface_by_name

2022-09-17 Thread Ramon Fried
E_MODE_NA) > return -EINVAL; > - } > > pdata->max_speed = 0; > cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "max-speed", > NULL); > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH] liteeth: LiteX Ethernet device

2022-09-17 Thread Ramon Fried
.of_match = liteeth_ids, > + .of_to_plat = liteeth_of_to_plat, > + .plat_auto = sizeof(struct eth_pdata), > + .remove = liteeth_remove, > + .ops = &liteeth_ops, > + .priv_auto = sizeof(struct liteeth), > +}; > diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig > index 52dc9e4f0f6d..95420bd4a140 100644 > --- a/drivers/net/Kconfig > +++ b/drivers/net/Kconfig > @@ -460,6 +460,11 @@ config LPC32XX_ETH > depends on ARCH_LPC32XX > default y > > +config LITEETH > + bool "LiteX LiteEth Ethernet MAC" > + help > +Driver for the LiteEth Ethernet MAC from LiteX. > + > config MVGBE > bool "Marvell Orion5x/Kirkwood network interface support" > depends on ARCH_KIRKWOOD || ARCH_ORION5X > diff --git a/drivers/net/Makefile b/drivers/net/Makefile > index 054ec68470db..770107296c62 100644 > --- a/drivers/net/Makefile > +++ b/drivers/net/Makefile > @@ -47,6 +47,7 @@ obj-$(CONFIG_GMAC_ROCKCHIP) += gmac_rockchip.o > obj-$(CONFIG_HIGMACV300_ETH) += higmacv300.o > obj-$(CONFIG_KS8851_MLL) += ks8851_mll.o > obj-$(CONFIG_KSZ9477) += ksz9477.o > +obj-$(CONFIG_LITEETH) += liteeth.o > obj-$(CONFIG_LPC32XX_ETH) += lpc32xx_eth.o > obj-$(CONFIG_MACB) += macb.o > obj-$(CONFIG_MCFFEC) += mcffec.o mcfmii.o > -- > 2.35.1 > Reviewed-by: Ramon Fried

Re: [PATCH] phy: add of_set_phy_supported() helper, call from phy_config()

2022-09-17 Thread Ramon Fried
> { > + int ret; > + > + ret = of_set_phy_supported(phydev); > + if (ret) > + return ret; > + > /* Invoke an optional board-specific helper */ > return board_phy_config(phydev); > } > -- > 2.31.1 > Reviewed-by: Ramon Fried

Re: [PATCH v3 1/6] net: mvneta: Add support for AlleyCat5

2022-10-04 Thread Ramon Fried
v_read_phandle_with_args(dev, "sfp", NULL, 0, 0, &sfp_args) && > ofnode_is_enabled(sfp_args.node)) > @@ -1620,6 +1660,7 @@ static const struct eth_ops mvneta_ops = { > > static const struct udevice_id mvneta_ids[] = { > { .compatible = "marvell,armada-370-neta" }, > + { .compatible = "marvell,armada-ac5-neta" }, > { .compatible = "marvell,armada-xp-neta" }, > { .compatible = "marvell,armada-3700-neta" }, > { } > -- > 2.37.3 > Reviewed-by: Ramon Fried

Re: [PATCH v1] verdin-imx8mm: verdin-imx8mp: drop obsolete net/phy configs

2022-10-04 Thread Ramon Fried
/* CONFIG_SPL_BUILD */ > > -/* ENET Config */ > -/* ENET1 */ > -#if defined(CONFIG_CMD_NET) > -#define CONFIG_FEC_MXC_PHYADDR 7 > - > -#define PHY_ANEG_TIMEOUT 2 > -#endif /* CONFIG_CMD_NET */ > - > #define MEM_LAYOUT_ENV_SETTINGS \ > "fdt_addr_r=0x5020\0" \ > "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > -- > 2.35.1 > Reviewed-by: Ramon Fried

Re: [PATCH 1/2] net: ti: cpsw-mdio: Add workaround for errata i2329

2022-10-04 Thread Ramon Fried
cpsw_mdio->bus->write = cpsw_mdio_write; > + } > + > cpsw_mdio->bus->priv = cpsw_mdio; > snprintf(cpsw_mdio->bus->name, sizeof(cpsw_mdio->bus->name), name); > > diff --git a/drivers/net/ti/cpsw_mdio.h b/drivers/net/ti/cpsw_mdio.h > index dbf4a2dcac..9b98763656 100644 > --- a/drivers/net/ti/cpsw_mdio.h > +++ b/drivers/net/ti/cpsw_mdio.h > @@ -11,7 +11,7 @@ > struct cpsw_mdio; > > struct mii_dev *cpsw_mdio_init(const char *name, phys_addr_t mdio_base, > - u32 bus_freq, int fck_freq); > + u32 bus_freq, int fck_freq, bool manual_mode); > void cpsw_mdio_free(struct mii_dev *bus); > u32 cpsw_mdio_get_alive(struct mii_dev *bus); > > diff --git a/drivers/net/ti/keystone_net.c b/drivers/net/ti/keystone_net.c > index fbec69f571..1bdbd599d7 100644 > --- a/drivers/net/ti/keystone_net.c > +++ b/drivers/net/ti/keystone_net.c > @@ -571,7 +571,8 @@ static int ks2_eth_probe(struct udevice *dev) > mdio_bus = cpsw_mdio_init("ethernet-mdio", > priv->mdio_base, > EMAC_MDIO_CLOCK_FREQ, > - EMAC_MDIO_BUS_FREQ); > + EMAC_MDIO_BUS_FREQ, > + false); > if (!mdio_bus) { > pr_err("MDIO alloc failed\n"); > return -ENOMEM; > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH 2/2] net: ti: am65-cpsw-nuss: Enable MDIO manual mode

2022-10-04 Thread Ramon Fried
w_common->fclk), > - false); > + priv->mdio_manual_mode); > if (!cpsw_common->bus) > return -EFAULT; > > @@ -658,6 +675,10 @@ static int am65_cpsw_port_probe(struct udevice *dev) > sprintf(portname, "%s%s", dev->parent->name, dev->name); > device_set_name(dev, portname); > > + priv->mdio_manual_mode = false; > + if (soc_device_match(k3_mdio_soc_data)) > + priv->mdio_manual_mode = true; > + > ret = am65_cpsw_ofdata_parse_phy(dev); > if (ret) > goto out; > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH 2/3] net: emaclite: fix xemaclite_alignedread/write functions

2022-10-04 Thread Ramon Fried
On Fri, Sep 23, 2022 at 12:36 PM Michal Simek wrote: > > Hi, > > On 9/23/22 11:17, Samuel Obuch wrote: > > Hi, I tested both versions to be sure, but the results are as can be > > expected: > > > > 1. both __raw_readl/__raw_writel and readl/writel functions work ok on > > riscv - > > only the or

Re: [PATCH v2 2/3] net: emaclite: fix xemaclite_alignedread/write functions

2022-10-04 Thread Ramon Fried
*to8ptr++ = *from8ptr++; > > - *to32ptr++ = alignbuffer; > + __raw_writel(alignbuffer, to32ptr++); > } > > static int wait_for_bit(const char *func, u32 *reg, const u32 mask, > -- > 2.31.1 > Reviewed-by: Ramon Fried

Re: [PATCH v2 3/3] net: emaclite: fix handling for IP packets with specific lengths

2022-10-04 Thread Ramon Fried
if (length != first_read) > + if (length > first_read) > xemaclite_alignedread(addr + first_read, > etherrxbuff + first_read, > length - first_read); > -- > 2.31.1 > Reviewed-by: Ramon Fried

Re: [PATCH v2] cmd: pxe: add alias devicetree-overlay for fdtoverlays

2022-10-04 Thread Ramon Fried
the espressobin v5 board the value is "marvell/armada-3720-espressobin.dtb" > @@ -408,7 +434,7 @@ way in future u-boot versions. In particular the type>_boot > variables (e.g. mmc_boot, usb_boot) are a strictly internal implementation > detail and must not be used as a public interface. > > -.. _BootLoaderSpec: > http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ > +.. _`Boot Loader Specification`: > https://systemd.io/BOOT_LOADER_SPECIFICATION/ > > .. sectionauthor:: (C) Copyright 2014 Red Hat Inc. > .. sectionauthor:: Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights > reserved. > -- > 2.37.3 > Reviewed-by: Ramon Fried

Re: [RESEND PATCH v2 2/3] net: fm: Add firmware name parameter

2022-08-14 Thread Ramon Fried
> struct ccsr_fman *reg; > > reg = (void *)CONFIG_SYS_FSL_FM1_ADDR; > - if (fm_init_common(0, reg)) > + if (fm_init_common(0, reg, NULL)) > return 0; > > for (i = 0; i < ARRAY_SIZE(fm_info); i++) { > @@ -103,7 +103,7 @@ int fm_standard_init(struct bd_info *bis) > > #if (CONFIG_SYS_NUM_FMAN == 2) > reg = (void *)CONFIG_SYS_FSL_FM2_ADDR; > - if (fm_init_common(1, reg)) > + if (fm_init_common(1, reg, NULL)) > return 0; > > for (i = 0; i < ARRAY_SIZE(fm_info); i++) { > -- > 2.35.1.1320.gc452695387.dirty > Reviewed-by: Ramon Fried

Re: [RESEND PATCH v2 3/3] net: fm: Support loading firmware from a filesystem

2022-08-14 Thread Ramon Fried
H; > diff --git a/drivers/qe/Kconfig b/drivers/qe/Kconfig > index c44a81f69a..89a75c175b 100644 > --- a/drivers/qe/Kconfig > +++ b/drivers/qe/Kconfig > @@ -27,6 +27,10 @@ choice > depends on FMAN_ENET || QE > default SYS_QE_FMAN_FW_IN_ROM > > +config SYS_QE_FMAN_FW_IN_FS > + depends on FS_LOADER && FMAN_ENET > + bool "Filesystem" > + > config SYS_QE_FMAN_FW_IN_NOR > bool "NOR flash" > > -- > 2.35.1.1320.gc452695387.dirty > Reviewed-by: Ramon Fried

Re: [RESEND PATCH v2 1/3] misc: fs_loader: Add function to get the chosen loader

2022-08-14 Thread Ramon Fried
; @@ -52,4 +52,16 @@ struct device_plat { > int request_firmware_into_buf(struct udevice *dev, > const char *name, > void *buf, size_t size, u32 offset); > + > +/** > + * get_fs_loader() - Get the chosen filesystem loader > + * @dev: Where to store the device > + * > + * This gets a filesystem loader device based on the value of > + * /chosen/firmware-loader. If no such property exists, it returns a > + * firmware loader which is configured by environmental variables. > + * > + * Return: 0 on success, negative value on error > + */ > +int get_fs_loader(struct udevice **dev); > #endif > -- > 2.35.1.1320.gc452695387.dirty > Reviewed-by: Ramon Fried

Re: [RESEND PATCH v2 0/3] net: fm: Add support for loading firmware from filesystem

2022-08-14 Thread Ramon Fried
On Sat, Aug 13, 2022 at 9:15 AM Sean Anderson wrote: > > On 4/22/22 1:30 PM, Sean Anderson wrote: > > This adds support for loading Fman firmware from a filesystem using the > > firmware loader subsystem. It was originally part of [1], but has been > > split off because it is conceptually separate

Re: [PATCH 1/5] net: ipv6: Add basic IPv6 implementation

2022-08-19 Thread Ramon Fried
On Fri, Aug 19, 2022 at 11:10 AM Viacheslav Mitrofanov wrote: > > That is quite a big patch that includes such things as Neighbour > Discovery Protocol, string parsers, converters and basic IPv6 > implementation. It consists of all necessary parts to add upper layer > protocols. > > Due to code de

Re: [PATCH 3/5] net: tftp: add IPv6 support for tftpboot

2022-08-19 Thread Ramon Fried
On Fri, Aug 19, 2022 at 11:10 AM Viacheslav Mitrofanov wrote: > > The command tftpboot uses IPv4 by default, to use IPv6 instead add -ipv6 > as the last argument. All other tftpboot features and parameters are left > the same. > In my opinion, we should be able to detect if a user has provided or

Re: [PATCH 3/5] net: tftp: add IPv6 support for tftpboot

2022-08-19 Thread Ramon Fried
On Fri, Aug 19, 2022 at 2:30 PM Vyacheslav Mitrofanov V wrote: > > On Fri, 2022-08-19 at 14:00 +0300, Ramon Fried wrote: > > On Fri, Aug 19, 2022 at 11:10 AM Viacheslav Mitrofanov > > wrote: > > > The command tftpboot uses IPv4 by default, to use IPv6 instead add &g

Re: [PATCH 3/5] net: tftp: add IPv6 support for tftpboot

2022-09-02 Thread Ramon Fried
On Mon, Aug 22, 2022 at 9:36 AM Vyacheslav Mitrofanov V wrote: > > On Fri, 2022-08-19 at 21:01 +0300, Ramon Fried wrote: > > > > On Fri, Aug 19, 2022 at 2:30 PM Vyacheslav Mitrofanov V > > wrote: > > > On Fri, 2022-08-19 at 14:00 +0300, Ramon Fried wrote: > &g

Re: [PATCH] net: enetc: Fix use after free issue in fsl_enetc.c

2022-09-02 Thread Ramon Fried
{ > > struct enetc_priv *priv = dev_get_priv(dev); > > + int res; > > > > if (ofnode_valid(dev_ofnode(dev)) && > > !ofnode_is_available(dev_ofnode(dev))) { > > enetc_dbg(dev, "interface disabled\n"); > > @@ -350,7 +353,10 @@ static int enetc_probe(struct udevice *dev) > > > > enetc_start_pcs(dev); > > > > - return enetc_config_phy(dev); > > + res = enetc_config_phy(dev); > > + if(res) > > + enetc_remove(dev); > > + return res; > > } > > > > /* Reviewed-by: Ramon Fried

Re: [PATCH v2] net: enetc: Fix use after free issue in fsl_enetc.c

2022-09-02 Thread Ramon Fried
On Fri, Sep 2, 2022 at 9:35 AM Siarhei Yasinski wrote: > > If ethernet connected to SFP, like this: > > &enetc_port0 { > phy-connection-type = "sgmii"; > sfp = <&sfp0>; > managed = "in-band-status"; > status = "okay"; > }; > > Then enetc_config_phy returns -ENODEV a

Re: [PATCH 29/41] net: phy: vitesse: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey

Re: [PATCH 30/41] net: phy: xilinx: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc

Re: [PATCH 31/41] net: phy: intel-xway: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean >

Re: [PATCH 32/41] net: phy: mscc: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-b

Re: [PATCH 33/41] net: phy: fixed: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-amlo

Re: [PATCH 34/41] net: phy: ncsi: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-a

Re: [PATCH 35/41] net: phy: xilinx-gmii2rgmii: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-am

Re: [PATCH 37/41] net: phy: gen10g: Convert to U_BOOT_PHY_DRIVER()

2023-04-01 Thread Ramon Fried
Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-am

Re: [PATCH 38/41] net: phy: Drop static phy_drivers list

2023-04-01 Thread Ramon Fried
; Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-am

Re: [PATCH 39/41] net: phy: Drop unused phy_register()

2023-04-01 Thread Ramon Fried
irovsky > Cc: Haolin Li > Cc: Heinrich Schuchardt > Cc: Joe Hershberger > Cc: Joel Stanley > Cc: Josua Mayer > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Me

Re: [PATCH 40/41] net: phy: Re-inline phy_drv_reloc()

2023-04-01 Thread Ramon Fried
essandro" > Cc: "Cédric Le Goater" > Cc: "Marek Behún" > Cc: Alex Nemirovsky > Cc: Haolin Li > Cc: Heinrich Schuchardt > Cc: Joe Hershberger > Cc: Joel Stanley > Cc: Josua Mayer > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Mic

Re: [PATCH 41/41] net: phy: Only call phy_init() on systems needing manual relocation

2023-04-01 Thread Ramon Fried
; Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc: Neil Armstrong > Cc: Radu Pirea > Cc: Ramon Fried > Cc: Samuel Mendoza-Jonas > Cc: Stefan Roese > Cc: T Karthik Reddy > Cc: Tim Harvey > Cc: Vladimir Oltean > Cc: u-boot-amlo...@groups.i

Re: [PATCH 2/3] net: mvpp2: Replace PHY_INTERFACE_MODE_SFI with 5GBASER/10GBASER/XAUI

2023-04-01 Thread Ramon Fried
l D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Ramon Fried > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > drivers/net/mvpp2.c | 8 ++-- > include/phy_interface.h | 2 ++ > 2 fil

Re: [PATCH 3/3] net: phy: Synchronize PHY interface modes with Linux

2023-04-01 Thread Ramon Fried
t; Signed-off-by: Marek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Ramon Fried > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > drivers/net/phy/phy.c | 4 +++

Re: [PATCH 1/5] net: phy: marvell: Import and use marvell_phy.h from Linux

2023-04-01 Thread Ramon Fried
> Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Nate Drude > Cc: Ramon Fried > Cc: Simon Glass > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > drivers/net/phy/marvell.c | 45 +++-- >

Re: [PATCH 2/5] net: phy: Add phy_modify_mmd() and phy_modify_mmd_changed() from Linux

2023-04-01 Thread Ramon Fried
> > Signed-off-by: Marek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Nate Drude > Cc: Ramon Fried > Cc: Simon Glass > Cc: Stef

Re: [PATCH 3/5] net: phy: Add phy_read_mmd_poll_timeout() from Linux

2023-04-01 Thread Ramon Fried
ek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Nate Drude > Cc: Ramon Fried > Cc: Simon Glass > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir

Re: [PATCH 4/5] net: phy: Add MDIO PCS 2.5G and 5G speed macros from Linux

2023-04-01 Thread Ramon Fried
-by: Marek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Nate Drude > Cc: Ramon Fried > Cc: Simon Glass > Cc: Stefan Roese > Cc: Tim Harvey > Cc:

Re: [PATCH 5/5] net: phy: marvell10g: Adapt Marvell 10G PHY driver from Linux

2023-04-01 Thread Ramon Fried
berger > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Nate Drude > Cc: Ramon Fried > Cc: Simon Glass > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > drivers/net/phy/Kconfig | 5 + > drivers/net/phy/Makefile | 1 + &

Re: [PATCH 1/1] net: replace /* Fall through */

2023-04-01 Thread Ramon Fried
\n"); > return 1; > } > - /* Fall through */ > + fallthrough; > > #ifdef CONFIG_CMD_RARP > case RARP: > @@ -1534,7 +1533,7 @@ common: > net_start_again(); >

Re: [PATCH 1/3] net: support being a TCP server to unblock TCP fastboot

2023-04-01 Thread Ramon Fried
ic handler (get rid of UDP signature) > > 3. Ensure seq_num and ack_num are respected in net_send_tcp_packet > > function (make sure existing wget_cmd code is reflected with the fix) > > > > Signed-off-by: Dmitrii Merkurev > > Cc: Ying-Chun Liu (PaulLiu)

Re: [PATCH 3/3] net: share fastboot boot handle logic between transports

2023-04-01 Thread Ramon Fried
ng-Chun Liu (PaulLiu) > > Cc: Simon Glass > > Сс: Joe Hershberger > > Сс: Ramon Fried > > Signed-off-by: Dmitrii Merkurev > > --- > > > > drivers/fastboot/fb_common.c | 32 > > include/fastboot.h

Re: [PATCH v2 1/3] net: mvpp2: Drop PHY_INTERFACE_MODE_SGMII_2500 support

2023-04-01 Thread Ramon Fried
peated > 10x/100x > - 2500baseX does not do AN, or does very different c73 AN > - SGMII 2500 behavior is unclear > > Signed-off-by: Marek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut >

Re: [PATCH] net: rswitch: Add Renesas Ethernet Switch

2023-04-01 Thread Ramon Fried
Generic code clean ups.] > --- > Cc: Hai Pham > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Peng Fan > Cc: Ramon Fried > Cc: Simon Glass > --- > drivers/net/Kconfig |8 + > drivers/net/Makefile |1 + > drivers/net/rswitch.c | 1139 +

Re: [PATCH v2 2/3] net: mvpp2: Replace PHY_INTERFACE_MODE_SFI with 5GBASER/10GBASER/XAUI

2023-04-01 Thread Ramon Fried
l D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Ramon Fried > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > V2: No change > --- > drivers/net/mvpp2.c | 8 ++-- > include/phy_in

Re: [PATCH v2 3/3] net: phy: Synchronize PHY interface modes with Linux

2023-04-01 Thread Ramon Fried
t; Signed-off-by: Marek Vasut > --- > Cc: "Ariel D'Alessandro" > Cc: "Marek Behún" > Cc: Joe Hershberger > Cc: Marek Vasut > Cc: Ramon Fried > Cc: Stefan Roese > Cc: Tim Harvey > Cc: Vladimir Oltean > --- > V2: No change > --- > driv

Re: [PATCH 01/41] net: phy: aquantia: Staticize PHY driver entries

2023-04-01 Thread Ramon Fried
Le Goater" > Cc: "Marek Behún" > Cc: Alex Nemirovsky > Cc: Haolin Li > Cc: Heinrich Schuchardt > Cc: Joe Hershberger > Cc: Joel Stanley > Cc: Josua Mayer > Cc: Marek Vasut > Cc: Michael Trimarchi > Cc: Michal Simek > Cc: Nate Drude > Cc

Re: [PATCH 1/4] net: e1000: add and make use of NUM_RX_DESC macro

2023-04-01 Thread Ramon Fried
> @@ -42,6 +42,8 @@ > #define DEBUGOUT(fmt, args...) do { } while (0) > #endif > > +#define NUM_RX_DESC8 > + > /* I/O wrapper functions */ > #define E1000_WRITE_REG(a, reg, value) \ > writel((value), ((a)->hw_addr + E1000_##reg)) > -- > 2.39.2 > Reviewed-by: Ramon Fried

Re: [PATCH] net: ipv6: Add support for default gateway discovery.

2023-04-01 Thread Ramon Fried
+ static bool first_call = true; > + > if (eth_get_dev()) { > memcpy(net_ethaddr, eth_get_ethaddr(), 6); > > @@ -365,6 +368,12 @@ static int net_init_loop(void) > */ > return -ENONET; > > + if (IS_ENABLED(CONFIG_IPV6_ROUTER_DISCOVERY)) > + if (first_call && use_ip6) { > + first_call = false; > + srand_mac(); /* This is for rand used in ip6_send_rs. > */ > + net_loop(RS); > + } > return 0; > } > > @@ -574,6 +583,10 @@ restart: > ncsi_probe_packages(); > break; > #endif > + case RS: > + if (IS_ENABLED(CONFIG_IPV6_ROUTER_DISCOVERY)) > + ip6_send_rs(); > + break; > default: > break; > } > @@ -671,7 +684,13 @@ restart: > x = time_handler; > time_handler = (thand_f *)0; > (*x)(); > - } > + } else if (IS_ENABLED(CONFIG_IPV6_ROUTER_DISCOVERY)) > + if (time_handler && protocol == RS) > + if (!ip6_is_unspecified_addr(&net_gateway6) && > + net_prefix_length != 0) { > + net_set_state(NETLOOP_SUCCESS); > + net_set_timeout_handler(0, 0); > + } > > if (net_state == NETLOOP_FAIL) > ret = net_start_again(); > diff --git a/net/net6.c b/net/net6.c > index 75577bc..2dd64c0 100644 > --- a/net/net6.c > +++ b/net/net6.c > @@ -413,6 +413,7 @@ int net_ip6_handler(struct ethernet_hdr *et, struct > ip6_hdr *ip6, int len) > break; > case IPV6_NDISC_NEIGHBOUR_SOLICITATION: > case IPV6_NDISC_NEIGHBOUR_ADVERTISEMENT: > + case IPV6_NDISC_ROUTER_ADVERTISEMENT: > ndisc_receive(et, ip6, len); > break; > default: > -- > 1.8.3.1 > Reviewed-by: Ramon Fried

Re: [PATCH v2 1/5] net: phy: Add driver for Motorcomm yt8531 gigabit ethernet phy

2023-04-02 Thread Ramon Fried
t; + struct ytphy_plat_priv *priv; > + > + priv = calloc(1, sizeof(struct ytphy_plat_priv)); > + if (!priv) > + return -ENOMEM; > + > + phydev->priv = priv; > + > + return 0; > +} > + > +static struct phy_driver motorcomm8531_driver = { > + .name = "YT8531 Gigabit Ethernet", > + .uid = PHY_ID_YT8531, > + .mask = PHY_ID_MASK, > + .features = PHY_GBIT_FEATURES, > + .probe = &yt8531_probe, > + .config= &yt8531_config, > + .startup = &yt8531_startup, > + .shutdown = &genphy_shutdown, > +}; > + > +int phy_motorcomm_init(void) > +{ > + phy_register(&motorcomm8531_driver); > + > + return 0; > +} > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index 80230b907c..78bde61798 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -570,6 +570,9 @@ int phy_init(void) > #endif > #ifdef CONFIG_PHY_XILINX_GMII2RGMII > phy_xilinx_gmii2rgmii_init(); > +#endif > +#ifdef CONFIG_PHY_MOTORCOMM > + phy_motorcomm_init(); > #endif > genphy_init(); > > @@ -755,7 +758,6 @@ static struct phy_device *create_phy_by_mask(struct > mii_dev *bus, > while (phy_mask) { > int addr = ffs(phy_mask) - 1; > int r = get_phy_id(bus, addr, devad, &phy_id); > - > /* > * If the PHY ID is flat 0 we ignore it. There are C45 PHYs > * that return all 0s for C22 reads (like Aquantia AQR112) and > diff --git a/include/phy.h b/include/phy.h > index 87aa86c2e7..f7bb2fe0af 100644 > --- a/include/phy.h > +++ b/include/phy.h > @@ -344,6 +344,7 @@ int phy_mscc_init(void); > int phy_fixed_init(void); > int phy_ncsi_init(void); > int phy_xilinx_gmii2rgmii_init(void); > +int phy_motorcomm_init(void); > > int board_phy_config(struct phy_device *phydev); > int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id); > -- > 2.17.1 > Reviewed-by: Ramon Fried

Re: [PATCH] net: ravb: Support fixed PHY in R-Car

2023-04-02 Thread Ramon Fried
behavior > over all PHY addresses. Add Fixes tag, sort the tag list.] > --- > Cc: Joe Hershberger > Cc: Ramon Fried > --- > drivers/net/ravb.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ravb.c b/drivers/net/ravb

Re: [PATCH] test/py: net: Add a TFTP put test

2023-10-06 Thread Ramon Fried
es transferred = " > +if sz: > +expected_text += "%d" % sz > +addr = addr + sz > +assert "TIMEOUT" not in output > +assert "Access violation" not in output > +assert expected_text in output > + > +with u_boot_console.temporary_timeout(timeout): > +output = u_boot_console.run_command("tftpboot %x %s" % (addr, fnu)) > + > +expected_text = "Bytes transferred = " > +if sz: > +expected_text += "%d" % sz > +assert "TIMEOUT" not in output > +assert expected_text in output > + > +expected_tftpp_crc = expected_tftpb_crc > + > +output = u_boot_console.run_command("crc32 $fileaddr $filesize") > +assert expected_tftpp_crc in output > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH] test/py: net: Add dhcp abort test

2023-10-06 Thread Ramon Fried
r("done") > + > +# Sending Ctrl-C > +output = u_boot_console.run_command( > +chr(3), wait_for_echo=False, send_nl=False > +) > + > +assert "TIMEOUT" not in output > +assert "DHCP client bound to address " not in output > +assert "Abort" in output > + > +# Provide a time to recover from Abort - if it is not performed > +# There is message like: ethernet@ff0e: No link. > +u_boot_console.run_command("sleep 1") > + > @pytest.mark.buildconfigspec('cmd_dhcp6') > def test_net_dhcp6(u_boot_console): > """Test the dhcp6 command. > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH] test/py: net: Add a test for 'pxe get' command

2023-10-06 Thread Ramon Fried
le.temporary_timeout(timeout): > +output = u_boot_console.run_command("pxe get") > + > +assert "TIMEOUT" not in output > +assert expected_text_uuid in output > +assert expected_text_ethaddr in output > +assert expected_text_ipaddr in output > + > +i = 1 > +for i in range(0, len(ipaddr_file) - 1): > +expected_text_ip = f"Retrieving file: > pxelinux.cfg/{ipaddr_file[:-i]}" > +assert expected_text_ip in output > +i += 1 > + > +assert expected_text_default in output > +assert "Config file 'default.boot' found" in output > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH] net: phy: TI DP83869 fix invalid clock delay configuration

2023-10-06 Thread Ramon Fried
p83869->tx_int_delay = DP83869_CLK_DELAY_DEFAULT; > + pr_warn("tx-internal-delay-ps not set/invalid, > default" > + " to %ups\n", DP83869_CLK_DELAY_DEFAULT); > } > > - dp83869->tx_int_delay = > dp83869_internal_delay[dp83869->tx_int_delay]; > + dp83869->tx_int_delay = > + (dp83869->tx_int_delay - DP83869_CLK_DELAY_STEP) > + / DP83869_CLK_DELAY_STEP; > } > > return 0; > -- > 2.30.2 > Reviewed-by: Ramon Fried

Re: [PATCH] net: ftgmac100: Add reset control

2023-10-06 Thread Ramon Fried
hydev); > mdio_unregister(priv->bus); > mdio_free(priv->bus); > + if (priv->reset_ctl) > + reset_assert(priv->reset_ctl); > clk_release_bulk(&priv->clks); > > return 0; > -- > 2.25.1 > Reviewed-by: Ramon Fried

Re: [PATCH v2 1/7] net: dwc_eth_qos: Drop unused rx_pkt from eqos_priv

2023-10-06 Thread Ramon Fried
eqos_free_descs(eqos->rx_descs); > diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h > index a6b719af809f..06a082da72ef 100644 > --- a/drivers/net/dwc_eth_qos.h > +++ b/drivers/net/dwc_eth_qos.h > @@ -273,7 +273,6 @@ struct eqos_priv { > unsigned int desc_per_cacheline; > void *tx_dma_buf; > void *rx_dma_buf; > - void *rx_pkt; > bool started; > bool reg_access_ok; > bool clk_ck_enabled; > -- > 2.42.0 > Reviewed-by: Ramon Fried

Re: [PATCH v2 2/7] net: dwc_eth_qos: Return error code when start fails

2023-10-06 Thread Ramon Fried
ruct udevice *dev) > > if (!eqos->phy->link) { > pr_err("No link"); > + ret = -EAGAIN; > goto err_shutdown_phy; > } > > -- > 2.42.0 > Reviewed-by: Ramon Fried

Re: [PATCH v2 3/7] net: dwc_eth_qos: Stop spam of RX packet not available message

2023-10-06 Thread Ramon Fried
eturn -EAGAIN; > - } > + > + debug("%s(dev=%p, flags=%x):\n", __func__, dev, flags); > > *packetp = eqos->rx_dma_buf + > (eqos->rx_desc_idx * EQOS_MAX_PACKET_SIZE); > -- > 2.42.0 > Reviewed-by: Ramon Fried

Re: [PATCH v2 4/7] net: dwc_eth_qos: Add glue driver for GMAC on Rockchip RK3568

2023-10-06 Thread Ramon Fried
); > + case PHY_INTERFACE_MODE_RMII: > + return data->ops->set_to_rmii(dev); > + } > + > + return -EINVAL; > +} > + > +static int eqos_set_tx_clk_speed_rk(struct udevice *dev) > +{ > + struct eth_pdata *pdata = dev_get_plat(dev); > + struct rockchip_platform_data *data = pdata->priv_pdata; > + > + return data->ops->set_gmac_speed(dev); > +} > + > +static ulong eqos_get_tick_clk_rate_rk(struct udevice *dev) > +{ > + struct eqos_priv *eqos = dev_get_priv(dev); > + > + return clk_get_rate(&eqos->clk_master_bus); > +} > + > +static struct eqos_ops eqos_rockchip_ops = { > + .eqos_inval_desc = eqos_inval_desc_generic, > + .eqos_flush_desc = eqos_flush_desc_generic, > + .eqos_inval_buffer = eqos_inval_buffer_generic, > + .eqos_flush_buffer = eqos_flush_buffer_generic, > + .eqos_probe_resources = eqos_probe_resources_rk, > + .eqos_remove_resources = eqos_remove_resources_rk, > + .eqos_stop_resets = eqos_stop_resets_rk, > + .eqos_start_resets = eqos_start_resets_rk, > + .eqos_stop_clks = eqos_stop_clks_rk, > + .eqos_start_clks = eqos_start_clks_rk, > + .eqos_calibrate_pads = eqos_null_ops, > + .eqos_disable_calibration = eqos_null_ops, > + .eqos_set_tx_clk_speed = eqos_set_tx_clk_speed_rk, > + .eqos_get_enetaddr = eqos_null_ops, > + .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_rk, > +}; > + > +struct eqos_config eqos_rockchip_config = { > + .reg_access_always_ok = false, > + .mdio_wait = 10, > + .swr_wait = 50, > + .config_mac = EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB, > + .config_mac_mdio = EQOS_MAC_MDIO_ADDRESS_CR_100_150, > + .axi_bus_width = EQOS_AXI_WIDTH_64, > + .interface = dev_read_phy_mode, > + .ops = &eqos_rockchip_ops, > +}; > -- > 2.42.0 > Reviewed-by: Ramon Fried

Re: [PATCH v2 5/7] net: dwc_eth_qos_rockchip: Add support for RK3588

2023-10-06 Thread Ramon Fried
put")) > + data->clock_input = true; > + else > + data->clock_input = false; > + > /* snps,reset props are deprecated, do bare minimum to support them */ > if (dev_read_bool(dev, "snps,reset-active-low")) > reset_flags |= GPIOD_ACTIVE_LOW; > @@ -273,6 +438,12 @@ static int eqos_start_resets_rk(struct udevice *dev) > > static int eqos_stop_clks_rk(struct udevice *dev) > { > + struct eth_pdata *pdata = dev_get_plat(dev); > + struct rockchip_platform_data *data = pdata->priv_pdata; > + > + if (data->ops->set_clock_selection) > + data->ops->set_clock_selection(dev, false); > + > return 0; > } > > @@ -293,6 +464,9 @@ static int eqos_start_clks_rk(struct udevice *dev) > udelay(eqos->reset_delays[2]); > } > > + if (data->ops->set_clock_selection) > + data->ops->set_clock_selection(dev, true); > + > tx_delay = dev_read_u32_default(dev, "tx_delay", 0x30); > rx_delay = dev_read_u32_default(dev, "rx_delay", 0x10); > > -- > 2.42.0 > Reviewed-by: Ramon Fried

Re: [PATCH v5 1/7] net: wget: prevent overwriting reserved memory

2023-10-06 Thread Ramon Fried
p_seq_num, tcp_ack_num, action); > + net_set_state(NETLOOP_FAIL); > return; > } > > @@ -420,6 +477,15 @@ void wget_start(void) > debug_cond(DEBUG_WGET, >"\nwget:Load address: 0x%lx\nLoading: *\b", > image_load_addr); > > + if (IS_ENABLED(CONFIG_LMB)) { > + if (wget_init_load_size()) { > + printf("\nwget error: "); > + printf("trying to overwrite reserved memory...\n"); > + net_set_state(NETLOOP_FAIL); > + return; > + } > + } > + > net_set_timeout_handler(wget_timeout, wget_timeout_handler); > tcp_set_tcp_handler(wget_handler); > > -- > 2.34.1 > Reviewed-by: Ramon Fried

Re: [PATCH v5 2/7] net: wget: add wget with dns utility function

2023-10-06 Thread Ramon Fried
goto out; > + } > + s = env_get("httpserverip"); > + if (!s) { > + ret = -EINVAL; > + goto out; > + } > + > + strlcpy(net_boot_file_name, s, sizeof(net_boot_file_name)); > + strlcat(net_boot_file_name, ":/", sizeof(net_boot_file_name)); /* > append '/' which is removed by strsep() */ > + strlcat(net_boot_file_name, file_name, sizeof(net_boot_file_name)); > + image_load_addr = dst_addr; > + ret = net_loop(WGET); > + > +out: > + free(str_copy); > + > + return ret; > +} > +#endif > -- > 2.34.1 > Reviewed-by: Ramon Fried

Re: [PATCH 18/25] net: Depend on CONFIG_CMDLINE

2023-10-06 Thread Ramon Fried
CMDLINE > default y > imply NETDEVICES > > diff --git a/net/Kconfig b/net/Kconfig > index 4215889127c9..25d494e1db46 100644 > --- a/net/Kconfig > +++ b/net/Kconfig > @@ -4,6 +4,7 @@ > > menuconfig NET > bool "Networking support" > + depends on CMDLINE > default y > > if NET > -- > 2.42.0.515.g380fc7ccd1-goog > Reviewed-by: Ramon Fried

Re: [PATCH v2 1/3] net: dhcp6: Add DHCPv6 (DHCP for IPv6)

2023-04-25 Thread Ramon Fried
On Fri, Apr 7, 2023 at 9:55 PM Simon Glass wrote: > > Hi, > > On Fri, 7 Apr 2023 at 18:56, wrote: > > > > From: Sean Edmond > > > > Adds DHCPv6 protocol to u-boot. > > > > Allows for address assignement with DHCPv6 4-message exchange > > (SOLICIT->ADVERTISE->REQUEST->REPLY). Includes DHCPv6 opt

Re: [PATCH v2 3/3] net: dhcp6: Add a sandbox test for dhcp6

2023-04-25 Thread Ramon Fried
andbox_defconfig | 1 + > > test/py/tests/test_net.py | 25 + > > 2 files changed, 26 insertions(+) > > Reviewed-by: Simon Glass Acked-by: Ramon Fried

Re: [PATCH v3 2/3] net: dhcp6: pxe: Add DHCP/PXE commands for IPv6

2023-04-25 Thread Ramon Fried
ile_func)(struct pxe_context *ctx, > const char *file_path, > * @bootdir: Directory that files are loaded from ("" if no directory). This > is > * allocated > * @pxe_file_size: Size of the PXE file > + * @use_ipv6: TRUE : use IPv6 addressing, FALSE : use IPv4 addressing > */ > struct pxe_context { > struct cmd_tbl *cmdtp; > @@ -112,6 +113,7 @@ struct pxe_context { > bool allow_abs_path; > char *bootdir; > ulong pxe_file_size; > + bool use_ipv6; > }; > > /** > @@ -209,12 +211,14 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len); > * @allow_abs_path: true to allow absolute paths > * @bootfile: Bootfile whose directory loaded files are relative to, NULL if > * none > + * @use_ipv6: TRUE : use IPv6 addressing > + *FALSE : use IPv4 addressing > * Return: 0 if OK, -ENOMEM if out of memory, -E2BIG if bootfile is larger > than > * MAX_TFTP_PATH_LEN bytes > */ > int pxe_setup_ctx(struct pxe_context *ctx, struct cmd_tbl *cmdtp, > pxe_getfile_func getfile, void *userdata, > - bool allow_abs_path, const char *bootfile); > + bool allow_abs_path, const char *bootfile, bool use_ipv6); > > /** > * pxe_destroy_ctx() - Destroy a PXE context > @@ -251,7 +255,9 @@ int pxe_get_file_size(ulong *sizep); > * "rpi/info", which indicates that all files should be fetched from the > * "rpi/" subdirectory > * @sizep: Size of the PXE file (not bootfile) > + * @use_ipv6: TRUE : use IPv6 addressing > + *FALSE : use IPv4 addressing > */ > -int pxe_get(ulong pxefile_addr_r, char **bootdirp, ulong *sizep); > +int pxe_get(ulong pxefile_addr_r, char **bootdirp, ulong *sizep, bool > use_ipv6); > > #endif /* __PXE_UTILS_H */ > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH v3 1/3] net: dhcp6: Add DHCPv6 (DHCP for IPv6)

2023-04-25 Thread Ramon Fried
rt_ms; > + int rt_prev_ms; > + struct dhcp6_rx_pkt_status rx_status; > + struct dhcp6_server_uid server_uid; > + char duid[DUID_MAX_SIZE]; > +}; > + > +/* Starts a DHCPv6 4-message exchange as a DHCPv6 client. On successful > exchange, > + * the DHCPv6 state machine will transition from internal states: > + * DHCP6_INIT->DHCP6_SOLICIT->DHCP6_REQUEST->DHCP6_DONE > + * > + * Transmitted SOLICIT and REQUEST packets will set/request the minimum > required > + * DHCPv6 options to PXE boot. > + * > + * After a successful exchange, the DHCPv6 assigned address will be set in > net_ip6 > + * > + * Additionally, the following will be set after receiving these options: > + * DHCP6_OPTION_OPT_BOOTFILE_URL (option 59) -> net_server_ip6, > net_boot_file_name > + * DHCP6_OPTION_OPT_BOOTFILE_PARAM (option 60) - > pxelinux_configfile > + * > + * Illustration of a 4-message exchange with 2 servers (copied from > + * https://www.rfc-editor.org/rfc/rfc8415): > + * > + * Server Server > + * (not selected) Client(selected) > + * > + * v v v > + * | | | > + * | Begins initialization | > + * | | | > + *start of | _/|\_ | > + *4-message|/ Solicit | Solicit \| > + *exchange | | | > + * Determines | Determines > + *configuration| configuration > + * | | | > + * |\ | /| > + * | \ | /Advertise| > + * | Advertise\|/ | > + * | \ | | > + * | Collects Advertises | > + * | \ | | > + * | Selects configuration | > + * | | | > + * | _/|\_ | > + * |/ Request | Request \| > + * | | | > + * | | Commits configuration > + * | | | > + *end of | | _/| > + *4-message| |/ Reply| > + *exchange | | | > + * |Initialization complete| > + * | | | > + */ > +void dhcp6_start(void); > + > +#endif /* __DHCP6_H__ */ > diff --git a/net/net.c b/net/net.c > index c9a749f6cc..8cb8b4b9f3 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -107,6 +107,8 @@ > #include > #include > #include > +#include > +#include > #include "arp.h" > #include "bootp.h" > #include "cdp.h" > @@ -120,8 +122,7 @@ > #if defined(CONFIG_CMD_WOL) > #include "wol.h" > #endif > -#include > -#include > +#include "dhcpv6.h" > > /** BOOTP EXTENTIONS **/ > > @@ -135,6 +136,8 @@ struct in_addr net_dns_server; > /* Our 2nd DNS IP address */ > struct in_addr net_dns_server2; > #endif > +/* Indicates whether the pxe path prefix / config file was specified in dhcp > option */ > +char *pxelinux_configfile; > > /** END OF BOOTP EXTENTIONS **/ > > @@ -510,6 +513,10 @@ restart: > dhcp_request(); /* Basically same as BOOTP */ > break; > #endif > + case DHCP6: > + if (IS_ENABLED(CONFIG_CMD_DHCP6)) > + dhcp6_start(); > + break; > #if defined(CONFIG_CMD_BOOTP) > case BOOTP: > bootp_reset(); > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH v3 3/3] net: dhcp6: Add a sandbox test for dhcp6

2023-04-25 Thread Ramon Fried
utput = u_boot_console.run_command('dhcp6') > +assert 'DHCP6 client bound to ' in output > + > +global net6_set_up > +net6_set_up = True > + > @pytest.mark.buildconfigspec('net') > def test_net_setup_static(u_boot_console): > """Set up a static IP configuration. > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH 2/2] net: phy: Make phy_interface_is_rgmii a switch statement

2023-04-25 Thread Ramon Fried
: > + case PHY_INTERFACE_MODE_RGMII_RXID: > + case PHY_INTERFACE_MODE_RGMII_TXID: > + return 1; > + default: > + fallthrough; > + } > + return 0; > } > > /** > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH 1/2] net: rtl8169: add minimal support for 8125B variant

2023-04-25 Thread Ramon Fried
On Tue, Apr 25, 2023 at 4:17 PM Eugen Hristev wrote: > > On 4/25/23 16:06, Eugen Hristev wrote: > > Add minimal support for 8125B version. > > Changes are based on the Linux driver. > > Tested on Radxa Rock 5B Rk3588 board. > > > > Connection to a laptop worked fine in 100 Mbps mode. > > 1000 Mbps

Re: [PATCH V3 1/3] net: phy: dp83867: Explicitly check against sgmii

2023-04-30 Thread Ramon Fried
_clk_en) > phy_write_mmd(phydev, DP83867_DEVADDR, > DP83867_SGMIICTL, > DP83867_SGMII_TYPE); > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH V3 3/3] net: phy: Make phy_interface_is_rgmii a switch statement

2023-04-30 Thread Ramon Fried
> + case PHY_INTERFACE_MODE_RGMII_RXID: > + case PHY_INTERFACE_MODE_RGMII_TXID: > + return 1; > + default: > + return 0; > + } > } > > bool phy_interface_is_ncsi(void); > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH V3 2/3] net: phy: Drop phy_interface_is_sgmii

2023-04-30 Thread Ramon Fried
phydev->interface >= PHY_INTERFACE_MODE_SGMII && > - phydev->interface <= PHY_INTERFACE_MODE_QSGMII; > -} > - > bool phy_interface_is_ncsi(void); > > /* PHY UIDs for various PHYs that are referenced in external code */ > -- > 2.40.0 > Reviewed-by: Ramon Fried

Re: [PATCH 1/2] net: rtl8169: add minimal support for 8125B variant

2023-04-30 Thread Ramon Fried
On Tue, Apr 25, 2023 at 10:47 PM Eugen Hristev wrote: > > On 4/25/23 22:22, Ramon Fried wrote: > > On Tue, Apr 25, 2023 at 4:17 PM Eugen Hristev > > wrote: > >> > >> On 4/25/23 16:06, Eugen Hristev wrote: > >>> Add minimal support for 8125B vers

Re: [PATCH] net: sh_eth: Fix RX error handling

2023-04-30 Thread Ramon Fried
be released > and pushed back to the list. Also return the more appropriate > -EAGAIN instead of -EINVAL if the descriptor is not ready yet. > > Reviewed-by: Marek Vasut > Signed-off-by: Valentine Barshak > --- > Cc: Joe Hershberger > Cc: Ramon Fried > --- > driv

Re: [PATCH v3 02/11] net: dwc_eth_qos: Add StarFive ethernet driver glue layer

2023-04-30 Thread Ramon Fried
urces = eqos_probe_resources_jh7110, > + .eqos_remove_resources = eqos_remove_resources_jh7110, > + .eqos_stop_resets = eqos_stop_resets_jh7110, > + .eqos_start_resets = eqos_start_resets_jh7110, > + .eqos_stop_clks = eqos_stop_clks_jh7110, > + .eqos_start_clks = eqos_start_clks_jh7110, > + .eqos_calibrate_pads = eqos_null_ops, > + .eqos_disable_calibration = eqos_null_ops, > + .eqos_set_tx_clk_speed = eqos_set_tx_clk_speed_jh7110, > + .eqos_get_enetaddr = eqos_null_ops, > + .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_jh7110 > +}; > + > +/* mdio_wait: There is no need to wait after setting the MAC_MDIO_Address > register > + * swr_wait: Software reset bit must be read at least 4 CSR clock cycles > + * after it is written to 1. > + * config_mac: Enable rx queue to DCB mode. > + * config_mac_mdio: CSR clock range is 250-300 Mhz. > + * axi_bus_width: The width of the data bus is 64 bit. > + */ > +struct eqos_config __maybe_unused eqos_jh7110_config = { > + .reg_access_always_ok = false, > + .mdio_wait = 0, > + .swr_wait = 4, > + .config_mac = EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB, > + .config_mac_mdio = EQOS_MAC_MDIO_ADDRESS_CR_250_300, > + .axi_bus_width = EQOS_AXI_WIDTH_64, > + .interface = dev_read_phy_mode, > + .ops = &eqos_jh7110_ops > +}; > -- > 2.17.1 > Reviewed-by: Ramon Fried

  1   2   3   4   5   6   7   8   9   10   >