From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramon Fried Date: Fri, 23 Apr 2021 03:11:06 +0300 Subject: [PATCH] net: e1000: do not attempt to set hwaddr for i210 without FLASH In-Reply-To: <20210416202509.3943-1-tharvey@gateworks.com> References: <20210416202509.3943-1-tharvey@gateworks.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Fri, Apr 16, 2021 at 11:25 PM Tim Harvey 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 > --- > 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