[PATCH] net: e1000: do not attempt to set hwaddr for i210 without FLASH

Ramon Fried rfried.dev at gmail.com
Fri Apr 23 02:11:06 CEST 2021


On Fri, Apr 16, 2021 at 11:25 PM Tim Harvey <tharvey at gateworks.com> wrote:
>
> commit f1bcad22dd19 ("net: e1000: add support for writing to EEPROM")
> adds support for storing hwaddr in EEPROM however i210 devices do not
> support this and thus results in errors such as:
> Warning: e1000#0 failed to set MAC address'
>
> Check if a flash device is present and if not return -ENOSYS indicating
> this is not supported.
>
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
>  drivers/net/e1000.c | 4 ++++
>  drivers/net/e1000.h | 1 +
>  2 files changed, 5 insertions(+)
>
> diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
> index 694114eca7..60613b7df0 100644
> --- a/drivers/net/e1000.c
> +++ b/drivers/net/e1000.c
> @@ -5673,6 +5673,10 @@ static int e1000_write_hwaddr(struct eth_device *dev)
>
>         DEBUGOUT("%s: mac=%pM\n", __func__, mac);
>
> +       if ((hw->eeprom.type == e1000_eeprom_invm) &&
> +           !(E1000_READ_REG(hw, EECD) & E1000_EECD_FLASH_DETECTED_I210))
> +               return -ENOSYS;
> +
>         memset(current_mac, 0, 6);
>
>         /* Read from EEPROM, not from registers, to make sure
> diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
> index 072851ba31..082154a997 100644
> --- a/drivers/net/e1000.h
> +++ b/drivers/net/e1000.h
> @@ -1245,6 +1245,7 @@ struct e1000_hw {
>  #define E1000_EECD_FLUPD     0x00080000 /* Update FLASH */
>  #define E1000_EECD_FLUPD_I210       0x00800000 /* Update FLASH */
>  #define E1000_EECD_FLUDONE_I210     0x04000000 /* Update FLASH done*/
> +#define E1000_EECD_FLASH_DETECTED_I210 0x00080000 /* FLASH detected */
>  #define E1000_FLUDONE_ATTEMPTS      20000
>  #define E1000_EECD_AUPDEN    0x00100000 /* Enable Autonomous FLASH update */
>  #define E1000_EECD_SHADV     0x00200000 /* Shadow RAM Data Valid */
> --
> 2.17.1
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list