Commit 59e46688 authored by Sasha Neftin's avatar Sasha Neftin Committed by Jeff Kirsher

e1000e: Add support for Alder Lake

Add devices ID's for the next LOM generations that will be
available on the next Intel Client platform (Alder Lake)
This patch provides the initial support for these devices
Signed-off-by: default avatarSasha Neftin <sasha.neftin@intel.com>
Reviewed-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 9c384ee3
...@@ -897,6 +897,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) ...@@ -897,6 +897,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)
case e1000_pch_cnp: case e1000_pch_cnp:
/* fall through */ /* fall through */
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
mask |= BIT(18); mask |= BIT(18);
break; break;
default: default:
...@@ -1561,6 +1562,7 @@ static void e1000_loopback_cleanup(struct e1000_adapter *adapter) ...@@ -1561,6 +1562,7 @@ static void e1000_loopback_cleanup(struct e1000_adapter *adapter)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
fext_nvm11 = er32(FEXTNVM11); fext_nvm11 = er32(FEXTNVM11);
fext_nvm11 &= ~E1000_FEXTNVM11_DISABLE_MULR_FIX; fext_nvm11 &= ~E1000_FEXTNVM11_DISABLE_MULR_FIX;
ew32(FEXTNVM11, fext_nvm11); ew32(FEXTNVM11, fext_nvm11);
......
...@@ -97,6 +97,10 @@ struct e1000_hw; ...@@ -97,6 +97,10 @@ struct e1000_hw;
#define E1000_DEV_ID_PCH_TGP_I219_LM14 0x15F9 #define E1000_DEV_ID_PCH_TGP_I219_LM14 0x15F9
#define E1000_DEV_ID_PCH_TGP_I219_V14 0x15FA #define E1000_DEV_ID_PCH_TGP_I219_V14 0x15FA
#define E1000_DEV_ID_PCH_TGP_I219_LM15 0x15F4 #define E1000_DEV_ID_PCH_TGP_I219_LM15 0x15F4
#define E1000_DEV_ID_PCH_ADP_I219_LM16 0x1A1E
#define E1000_DEV_ID_PCH_ADP_I219_V16 0x1A1F
#define E1000_DEV_ID_PCH_ADP_I219_LM17 0x1A1C
#define E1000_DEV_ID_PCH_ADP_I219_V17 0x1A1D
#define E1000_REVISION_4 4 #define E1000_REVISION_4 4
...@@ -121,6 +125,7 @@ enum e1000_mac_type { ...@@ -121,6 +125,7 @@ enum e1000_mac_type {
e1000_pch_spt, e1000_pch_spt,
e1000_pch_cnp, e1000_pch_cnp,
e1000_pch_tgp, e1000_pch_tgp,
e1000_pch_adp,
}; };
enum e1000_media_type { enum e1000_media_type {
......
...@@ -317,6 +317,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw) ...@@ -317,6 +317,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
if (e1000_phy_is_accessible_pchlan(hw)) if (e1000_phy_is_accessible_pchlan(hw))
break; break;
...@@ -460,6 +461,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) ...@@ -460,6 +461,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
/* In case the PHY needs to be in mdio slow mode, /* In case the PHY needs to be in mdio slow mode,
* set slow mode and try to get the PHY id again. * set slow mode and try to get the PHY id again.
*/ */
...@@ -703,6 +705,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw) ...@@ -703,6 +705,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
case e1000_pchlan: case e1000_pchlan:
/* check management mode */ /* check management mode */
mac->ops.check_mng_mode = e1000_check_mng_mode_pchlan; mac->ops.check_mng_mode = e1000_check_mng_mode_pchlan;
...@@ -1642,6 +1645,7 @@ static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter) ...@@ -1642,6 +1645,7 @@ static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
rc = e1000_init_phy_params_pchlan(hw); rc = e1000_init_phy_params_pchlan(hw);
break; break;
default: default:
...@@ -2095,6 +2099,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) ...@@ -2095,6 +2099,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M; sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M;
break; break;
default: default:
...@@ -3133,6 +3138,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) ...@@ -3133,6 +3138,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
bank1_offset = nvm->flash_bank_size; bank1_offset = nvm->flash_bank_size;
act_offset = E1000_ICH_NVM_SIG_WORD; act_offset = E1000_ICH_NVM_SIG_WORD;
...@@ -4077,6 +4083,7 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw) ...@@ -4077,6 +4083,7 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
case e1000_pch_spt: case e1000_pch_spt:
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
word = NVM_COMPAT; word = NVM_COMPAT;
valid_csum_mask = NVM_COMPAT_VALID_CSUM; valid_csum_mask = NVM_COMPAT_VALID_CSUM;
break; break;
......
...@@ -3536,6 +3536,7 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca) ...@@ -3536,6 +3536,7 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca)
break; break;
case e1000_pch_cnp: case e1000_pch_cnp:
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
if (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI) { if (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI) {
/* Stable 24MHz frequency */ /* Stable 24MHz frequency */
incperiod = INCPERIOD_24MHZ; incperiod = INCPERIOD_24MHZ;
...@@ -4049,6 +4050,7 @@ void e1000e_reset(struct e1000_adapter *adapter) ...@@ -4049,6 +4050,7 @@ void e1000e_reset(struct e1000_adapter *adapter)
case e1000_pch_cnp: case e1000_pch_cnp:
/* fall-through */ /* fall-through */
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
fc->refresh_time = 0xFFFF; fc->refresh_time = 0xFFFF;
fc->pause_time = 0xFFFF; fc->pause_time = 0xFFFF;
...@@ -7760,6 +7762,10 @@ static const struct pci_device_id e1000_pci_tbl[] = { ...@@ -7760,6 +7762,10 @@ static const struct pci_device_id e1000_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_cnp }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_cnp }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_cnp }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM16), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V16), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM17), board_pch_cnp },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V17), board_pch_cnp },
{ 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
}; };
......
...@@ -297,6 +297,7 @@ void e1000e_ptp_init(struct e1000_adapter *adapter) ...@@ -297,6 +297,7 @@ void e1000e_ptp_init(struct e1000_adapter *adapter)
case e1000_pch_cnp: case e1000_pch_cnp:
/* fall-through */ /* fall-through */
case e1000_pch_tgp: case e1000_pch_tgp:
case e1000_pch_adp:
if ((hw->mac.type < e1000_pch_lpt) || if ((hw->mac.type < e1000_pch_lpt) ||
(er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)) { (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)) {
adapter->ptp_clock_info.max_adj = 24000000 - 1; adapter->ptp_clock_info.max_adj = 24000000 - 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment