[U-Boot] [Patch 2/3] Revert "e1000: fix sw fw sync on igb i210/i211"

Bin Meng bmeng.cn at gmail.com
Wed May 20 12:06:51 CEST 2015


On Wed, May 20, 2015 at 1:01 AM, Tim Harvey <tharvey at gateworks.com> wrote:
> This reverts commit 17da7120249bfdef877f46be5bbcb3cc01212eb9.
>
> The i210/i211 do have the SW_FW_SYNC (0x5b5c) register and this is what should
> be used when acquiring the semaphore.
>
> I believe the issue that this patch was trying to resolve is now resolved
> by properly releasing the semaphore once no longer needed.
>
> Cc: Marcel Ziswiler <marcel at ziswiler.com>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Aneesh Bansal <aneesh.bansal at freescale.com>
> Cc: Naveen Burmi <NaveenBurmi at freescale.com>
> Cc: Po Liu <po.liu at freescale.com>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Cc: Alison Wang <alison.wang at freescale.com>
> Cc: Reinhard Arlt <reinhard.arlt at esd-electronics.com>
> Cc: Shengzhou Liu  <Shengzhou.Liu at freescale.com>
> Cc: York Sun <yorksun at freescale.com>
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
>  drivers/net/e1000.c | 6 ++----
>  drivers/net/e1000.h | 1 -
>  2 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
> index a64bc7b..f960024 100644
> --- a/drivers/net/e1000.c
> +++ b/drivers/net/e1000.c
> @@ -1120,10 +1120,7 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, uint16_t mask)
>                 if (e1000_get_hw_eeprom_semaphore(hw))
>                         return -E1000_ERR_SWFW_SYNC;
>
> -               if (hw->mac_type == e1000_igb)
> -                       swfw_sync = E1000_READ_REG(hw, I210_SW_FW_SYNC);
> -               else
> -                       swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC);
> +               swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC);
>                 if (!(swfw_sync & (fwmask | swmask)))
>                         break;
>
> @@ -4458,6 +4455,7 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
>
>                 if (hw->mac_type >= e1000_82571)
>                         mdelay(10);
> +
>         } else {
>                 /* Read the Extended Device Control Register, assert the PHY_RESET_DIR
>                  * bit to put the PHY into reset. Then, take it out of reset.
> diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
> index f3b77b1..232c95d 100644
> --- a/drivers/net/e1000.h
> +++ b/drivers/net/e1000.h
> @@ -2496,7 +2496,6 @@ struct e1000_hw {
>  #define ICH_GFPREG_BASE_MASK       0x1FFF
>  #define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF
>
> -#define E1000_I210_SW_FW_SYNC 0x5B50 /* Software-Firmware Synchronization - RW */
>  #define E1000_SW_FW_SYNC 0x05B5C /* Software-Firmware Synchronization - RW */
>
>  /* SPI EEPROM Status Register */
> --

Tested on QEMU v2.3.0

Tested-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list