On Tue, Dec 19, 2023 at 6:04 PM Caleb Connolly
wrote:
>
> Introduce support for early debugging.
>
> Signed-off-by: Caleb Connolly
> ---
> drivers/serial/Kconfig | 8
> drivers/serial/serial_msm.c | 32
> 2 files changed, 40 insertions(+)
>
> diff
return -EINVAL;
> + }
> +
> + /* The clock is already enabled by the clk_bulk above */
> + ret = clk_set_rate(>clks.clks[i], clk_rate);
> + if (!ret) {
> + printf("Couldn't set core clock rate: %d\n", ret);
> + return -EINVAL;
> + }
>
> return 0;
> }
> @@ -188,6 +209,8 @@ static int msm_sdc_remove(struct udevice *dev)
> if (!var_info->mci_removed)
> writel(0, priv->base + SDCC_MCI_HC_MODE);
>
> + clk_release_bulk(>clks);
> +
> return 0;
> }
>
>
> --
> 2.42.1
>
Reviewed-by: Ramon Fried
ram.h
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Snapdragon DRAM
> - * Copyright (C) 2018 Ramon Fried
> - */
> -
> -#ifndef DRAM_H
> -#define DRAM_H
> -
> -int msm_fixup_memory(void *blob);
> -
> -#endif
> diff -
4 require a similar pinctrl change though.
> >>>
> >>> -Sumit
> >>>
> >>>>
> >>>> This series is based on the qcom-next branch [1] and depends on my PMIC
> >>>> fixes series [2], an integration branch for testing can be found at [3].
>
into U-Boot.
> >
> > Signed-off-by: Marek Vasut
>
> Reviewed-by: Tom Rini
>
> --
> Tom
Reviewed-by: Ramon Fried
map_sysmem(tftp_load_addr, 0),
> + net_boot_file_size);
> net_set_state(NETLOOP_SUCCESS);
> }
>
> --
> 2.34.1
>
Reviewed-by: Ramon Fried
See README.NetConsole for details.
> + See doc/usage/netconsole.rst for details.
>
> config IP_DEFRAG
> bool "Support IP datagram reassembly"
> --
> 2.43.0
>
Reviewed-by: Ramon Fried
NE
> 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
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
m, 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
nput = 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
_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(>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 = _rockchip_ops,
> +};
> --
> 2.42.0
>
Reviewed-by: 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
ruct udevice *dev)
>
> if (!eqos->phy->link) {
> pr_err("No link");
> + ret = -EAGAIN;
> goto err_shutdown_phy;
> }
>
> --
> 2.42.0
>
Reviewed-by: 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
t; mdio_unregister(priv->bus);
> mdio_free(priv->bus);
> + if (priv->reset_ctl)
> + reset_assert(priv->reset_ctl);
> clk_release_bulk(>clks);
>
> return 0;
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
dp83869->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
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
ne")
> +
> +# 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
ted_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
ts("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
t;device) {
> - case 0x8168:
> case 0x8125:
> + case 0x8161:
> + case 0x8168:
> region = 2;
> break;
> default:
> --
> 2.17.1
>
Reviewed-by: 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
+ (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
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
e DT 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 -
> -1);
>
> pdata->phy_interface = dev_read_phy_mode(dev);
> debug("phy interface %d\n", pdata->phy_interface);
> --
> 2.39.2
>
Reviewed-by: 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
>
On Tue, Feb 14, 2023 at 10:20 AM Jim Liu wrote:
>
> Add bb_miiphy_bus function for designware bitbang feature.
>
> Signed-off-by: Jim Liu
> ---
> drivers/net/designware.c | 109 ++-
> drivers/net/designware.h | 3 ++
> 2 files changed, 111 insertions(+), 1
On Wed, May 31, 2023 at 4:19 AM Peng Fan wrote:
>
> Hi Joe, Ramon
>
> I see this patchset is delegated to me, would you take care this
> patchset or let me handle?
>
> Thanks,
> Peng.
>
> On 5/23/2023 9:47 PM, Ioana Ciornei wrote:
>
> >
> >
> > This patch set extends the 'net' command so that it
or can be released
> and pushed back to the list. Also return the more appropriate
> -EAGAIN instead of -EINVAL if the descriptor is not ready yet.
>
> Signed-off-by: Valentine Barshak
> Reviewed-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal S
it/sh_eth_rx_desc_init callbacks
> when they are ready instead of flushing after allocation.
>
> Signed-off-by: Valentine Barshak
> Reviewed-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon F
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
> ---
> drivers/net/Kconfig | 1 +
> drivers/net/sh_eth.c | 17 -
> 2 files changed, 1 insertion(+), 17 deletions(-)
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 48f9e
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
> ---
> drivers/net/Kconfig | 1 +
> drivers/net/ravb.c | 22 --
> 2 files changed, 1 insertion(+), 22 deletions(-)
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 09039
ichal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
> ---
> drivers/net/eth-phy-uclass.c | 8
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/eth-phy-uclass.c b/drivers/net/eth-phy-uclass.c
> index 231bad66514..9d1e8d38ffa 100644
> --- a/drivers/net
Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
> ---
> drivers/net/phy/ethernet_id.c | 17 +
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/net/phy/ethernet_id.c b/drivers/net/phy/et
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
> ---
> drivers/net/phy/phy.c | 4 ++--
> include/phy.h | 9 -
> 2 files changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> index 0eeb0cb
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ram
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ram
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ramon Fried
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ram
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> Use new U-Boot phy_connect() API which also supports fixed PHYs.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nishanth Menon
> Cc: Ram
On Wed, May 31, 2023 at 1:51 AM Marek Vasut
wrote:
>
> The eth_phy_reset() is not used outside of this file, staticize it.
> No functional change.
>
> Signed-off-by: Marek Vasut
> ---
> Cc: Geert Uytterhoeven
> Cc: Joe Hershberger
> Cc: Michal Simek
> Cc: Nis
.start = ldpaa_eth_open,
> + .send = ldpaa_eth_tx,
> + .recv = ldpaa_eth_pull_dequeue_rx,
> + .stop = ldpaa_eth_stop,
> + .get_sset_count = ldpaa_eth_get_sset_count,
> + .get_strings = ldpaa_eth_get_strings,
> + .get_stats = ldpaa_eth_get_stats,
> };
>
> static const struct udevice_id ldpaa_eth_of_ids[] = {
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
+181,9 @@ struct eth_ops {
> int (*write_hwaddr)(struct udevice *dev);
> int (*read_rom_hwaddr)(struct udevice *dev);
> int (*set_promisc)(struct udevice *dev, bool enable);
> + int (*get_sset_count)(struct udevice *dev);
> + void (*get_strings)(struct udevice *dev, u8 *data);
> + void (*get_stats)(struct udevice *dev, u64 *data);
> };
>
> #define eth_get_ops(dev) ((struct eth_ops *)(dev)->driver->ops)
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
y;
> int phy_mode;
> @@ -159,6 +192,7 @@ struct ldpaa_eth_priv {
>
> /* SW kept statistics */
> u64 dpni_stats[LDPAA_ETH_DPNI_NUM_STATS];
> + u64 dpmac_stats[LDPAA_ETH_DPMAC_NUM_STATS];
> };
>
> struct dprc_endpoint dpmac_endpoint;
> diff --git a/include/fsl-mc/fsl_dpmac.h b/include/fsl-mc/fsl_dpmac.h
> index 8f5e17fe222a..1fa26ef3805a 100644
> --- a/include/fsl-mc/fsl_dpmac.h
> +++ b/include/fsl-mc/fsl_dpmac.h
> @@ -412,6 +412,8 @@ int dpmac_set_link_state(struct fsl_mc_io
> *mc_io,
> * @DPMAC_CNT_EGR_ERR_FRAME: counts frame transmitted with an error
> * @DPMAC_CNT_ING_GOOD_FRAME: counts frame received without error, including
> * pause frames.
> + * @DPMAC_CNT_EGR_GOOD_FRAME: counts frames transmitted without error,
> including
> + * pause frames.
> */
> enum dpmac_counter {
> DPMAC_CNT_ING_FRAME_64,
> @@ -440,7 +442,8 @@ enum dpmac_counter {
> DPMAC_CNT_EGR_BCAST_FRAME,
> DPMAC_CNT_EGR_UCAST_FRAME,
> DPMAC_CNT_EGR_ERR_FRAME,
> - DPMAC_CNT_ING_GOOD_FRAME
> + DPMAC_CNT_ING_GOOD_FRAME,
> + DPMAC_CNT_EGR_GOOD_FRAME,
> };
>
> /**
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
"[dpni ] tx bytes",
> + "[dpni ] tx mcast frames",
> + "[dpni ] tx mcast bytes",
> + "[dpni ] tx bcast frames",
> + "[dpni ] tx bcast bytes",
> + "[dpni ] rx filtered frames",
> + "[dpni ] rx discarded frames",
> + "[dpni ] rx nobuffer discards",
> + "[dpni ] tx discarded frames",
> + "[dpni ] tx confirmed frames",
> + "[dpni ] tx dequeued bytes",
> + "[dpni ] tx dequeued frames",
> + "[dpni ] tx rejected bytes",
> + "[dpni ] tx rejected frames",
> + "[dpni ] tx pending frames",
> +};
> +
> +#define LDPAA_ETH_DPNI_NUM_STATS
> ARRAY_SIZE(ldpaa_eth_dpni_stat_strings)
> +
> struct ldpaa_eth_priv {
> struct phy_device *phy;
> int phy_mode;
> @@ -129,6 +156,9 @@ struct ldpaa_eth_priv {
> uint16_t tx_flow_id;
>
> enum ldpaa_eth_type type; /* 1G or 10G ethernet */
> +
> + /* SW kept statistics */
> + u64 dpni_stats[LDPAA_ETH_DPNI_NUM_STATS];
> };
>
> struct dprc_endpoint dpmac_endpoint;
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
gt; + u64 policer_cnt_re_red;
> + u64 policer_cnt_re_yellow;
> + } page_5;
> + struct {
> + u64 tx_pending_frames;
> + } page_6;
> + struct {
> + u64 counter[DPNI_STATISTICS_CNT];
> + } raw;
> };
>
> /**
> @@ -1308,7 +1369,7 @@ int dpni_get_statistics(struct fsl_mc_io *mc_io,
> uint32_t cmd_flags,
> uint16_t token,
> uint8_t page,
> - struct dpni_statistics *stat);
> + union dpni_statistics *stat);
>
> /**
> * dpni_reset_statistics() - Clears DPNI statistics
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
pe)
> + MC_CMD_OP(cmd, 0, 0, 8, enum dpmac_counter, type)
>
> /*cmd, param, offset, width, type, arg_name */
> #define DPMAC_RSP_GET_COUNTER(cmd, counter) \
> --
> 2.25.1
>
Reviewed-by: Ramon Fried
ver.
> */
> struct in6_addr prefix;
> -};
> +} __packed;
>
> extern struct in6_addr const net_null_addr_ip6;/* NULL IPv6 address
> */
> extern struct in6_addr net_gateway6; /* Our gateways IPv6 address */
> --
> 1.8.3.1
>
Reviewed-by: Ramon Fried
Ignore the packet if router lifetime is 0. */
> if (!icmp->icmp6_rt_lifetime)
> return -EOPNOTSUPP;
> --
> 1.8.3.1
>
Reviewed-by: Ramon Fried
t; -#define DHCP6_VCI_STRING "U-boot"
> +#define DHCP6_VCI_STRING "U-Boot"
>
> #define DHCP6_MULTICAST_ADDR "ff02::1:2" /* DHCP multicast address */
>
> --
> 2.40.0
>
Reviewed-by: Ramon Fried
ned
> int len)
> option_ptr = ((uchar *)option_hdr) + sizeof(struct dhcp6_hdr);
> option_len = ntohs(option_hdr->option_len);
>
> + if (option_ptr + option_len > rx_pkt + len) {
> + debug("Invalid option length\n");
> + return;
> + }
> +
> switch (ntohs(option_hdr->option_id)) {
> case DHCP6_OPTION_CLIENTID:
> if (memcmp(option_ptr, sm_params.duid, option_len)
> --
> 2.40.0
>
Reviewed-by: Ramon Fried
nfig RTL8169
> bool "Realtek 8169 series Ethernet controller driver"
> + depends on PCI
> help
> This driver supports Realtek 8169 series gigabit ethernet family of
> PCI/PCIe chipsets/adapters.
> --
> 2.34.1
>
Reviewed-by: Ramon Fried
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 = _jh7110_ops
> +};
> --
> 2.17.1
>
Reviewed-by: Ramon Fried
or can 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
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
;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
se 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
_clk_en)
> phy_write_mmd(phydev, DP83867_DEVADDR,
> DP83867_SGMIICTL,
> DP83867_SGMII_TYPE);
> --
> 2.40.0
>
Reviewed-by: 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
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
6')
> +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
struct dhcp6_rx_pkt_status rx_status;
> + struct dhcp6_server_uid server_uid;
> + charduid[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
xe_utils.h
> +++ b/include/pxe_utils.h
> @@ -93,6 +93,7 @@ typedef int (*pxe_getfile_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
andbox_defconfig | 1 +
> > test/py/tests/test_net.py | 25 +
> > 2 files changed, 26 insertions(+)
>
> Reviewed-by: Simon Glass
Acked-by: 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
gt; 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.c
> in
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 = _probe,
> + .config= _config,
> + .startup = _startup,
> + .shutdown = _shutdown,
> +};
> +
> +int phy_motorcomm_init(void)
> +{
> + phy_register(_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, _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
ic 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(_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
> @@ -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
oater"
> 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: Nei
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
> ---
> drivers/n
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_inter
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 +
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
> Cc: R
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
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)
> return 1;
> }
> - /* Fall through */
> + fallthrough;
>
> #ifdef CONFIG_CMD_RARP
> case RARP:
> @@ -1534,7 +1533,7 @@ common:
> net_start_again();
>
r
> 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 +
>
-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: Vlad
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 Oltea
>
> 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: Stefan Ro
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 +++--
> inc
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 +++
>
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 files ch
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.io
>
dro"
> 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: Michal S
ky
> 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 Mendoza
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...
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...
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...
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..
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...@g
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
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:
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
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
>
On Fri, Feb 17, 2023 at 5:03 AM Marek Vasut wrote:
>
> On 2/16/23 17:45, Nicole Battenfeld wrote:
> >
> > Am 16.02.23 um 02:39 schrieb Marek Vasut:
> >> On 2/15/23 17:16, Elmar Psilog wrote:
> >>> Let the EQoS in imx8mp handle fixed-phy too.
> >>> Without that patch it lost track to the node to
1 - 100 of 1191 matches
Mail list logo