The branch stable/13 has been updated by kbowling:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=25b788e4978255dad726ff3d264473ce01527f09

commit 25b788e4978255dad726ff3d264473ce01527f09
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2023-02-09 01:14:41 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2023-02-23 00:26:05 +0000

    e1000: Add support for future client platforms
    
    Sponsored by:   BBOX.io
    
    (cherry picked from commit 905ae5881bdc1b9742e08d660d787204c08d6022)
---
 sys/dev/e1000/e1000_api.c     | 11 +++++++++++
 sys/dev/e1000/e1000_hw.h      | 17 +++++++++++++++++
 sys/dev/e1000/e1000_ich8lan.c |  7 +++++++
 sys/dev/e1000/if_em.c         | 19 +++++++++++++++++++
 4 files changed, 54 insertions(+)

diff --git a/sys/dev/e1000/e1000_api.c b/sys/dev/e1000/e1000_api.c
index 5c778a48bba0..19ba4f1cf377 100644
--- a/sys/dev/e1000/e1000_api.c
+++ b/sys/dev/e1000/e1000_api.c
@@ -347,6 +347,16 @@ s32 e1000_set_mac_type(struct e1000_hw *hw)
        case E1000_DEV_ID_PCH_MTP_I219_V19:
                mac->type = e1000_pch_mtp;
                break;
+       case E1000_DEV_ID_PCH_ARL_I219_LM24:
+       case E1000_DEV_ID_PCH_ARL_I219_V24:
+       case E1000_DEV_ID_PCH_PTP_I219_LM25:
+       case E1000_DEV_ID_PCH_PTP_I219_V25:
+       case E1000_DEV_ID_PCH_PTP_I219_LM26:
+       case E1000_DEV_ID_PCH_PTP_I219_V26:
+       case E1000_DEV_ID_PCH_PTP_I219_LM27:
+       case E1000_DEV_ID_PCH_PTP_I219_V27:
+               mac->type = e1000_pch_ptp;
+               break;
        case E1000_DEV_ID_82575EB_COPPER:
        case E1000_DEV_ID_82575EB_FIBER_SERDES:
        case E1000_DEV_ID_82575GB_QUAD_COPPER:
@@ -503,6 +513,7 @@ s32 e1000_setup_init_funcs(struct e1000_hw *hw, bool 
init_device)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                e1000_init_function_pointers_ich8lan(hw);
                break;
        case e1000_82575:
diff --git a/sys/dev/e1000/e1000_hw.h b/sys/dev/e1000/e1000_hw.h
index 6ee252e147a4..463bd6bd8a5b 100644
--- a/sys/dev/e1000/e1000_hw.h
+++ b/sys/dev/e1000/e1000_hw.h
@@ -175,6 +175,22 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_MTP_I219_V18          0x550B
 #define E1000_DEV_ID_PCH_MTP_I219_LM19         0x550C
 #define E1000_DEV_ID_PCH_MTP_I219_V19          0x550D
+#define E1000_DEV_ID_PCH_LNL_I219_LM20         0x550E
+#define E1000_DEV_ID_PCH_LNL_I219_V20          0x550F
+#define E1000_DEV_ID_PCH_LNL_I219_LM21         0x5510
+#define E1000_DEV_ID_PCH_LNL_I219_V21          0x5511
+#define E1000_DEV_ID_PCH_RPL_I219_LM22         0x0DC7
+#define E1000_DEV_ID_PCH_RPL_I219_V22          0x0DC8
+#define E1000_DEV_ID_PCH_RPL_I219_LM23         0x0DC5
+#define E1000_DEV_ID_PCH_RPL_I219_V23          0x0DC6
+#define E1000_DEV_ID_PCH_ARL_I219_LM24         0x57A0
+#define E1000_DEV_ID_PCH_ARL_I219_V24          0x57A1
+#define E1000_DEV_ID_PCH_PTP_I219_LM25         0x57B3
+#define E1000_DEV_ID_PCH_PTP_I219_V25          0x57B4
+#define E1000_DEV_ID_PCH_PTP_I219_LM26         0x57B5
+#define E1000_DEV_ID_PCH_PTP_I219_V26          0x57B6
+#define E1000_DEV_ID_PCH_PTP_I219_LM27         0x57B7
+#define E1000_DEV_ID_PCH_PTP_I219_V27          0x57B8
 #define E1000_DEV_ID_82576                     0x10C9
 #define E1000_DEV_ID_82576_FIBER               0x10E6
 #define E1000_DEV_ID_82576_SERDES              0x10E7
@@ -266,6 +282,7 @@ enum e1000_mac_type {
        e1000_pch_tgp,
        e1000_pch_adp,
        e1000_pch_mtp,
+       e1000_pch_ptp,
        e1000_82575,
        e1000_82576,
        e1000_82580,
diff --git a/sys/dev/e1000/e1000_ich8lan.c b/sys/dev/e1000/e1000_ich8lan.c
index 9c640e7b9667..f74ef5f9c7b3 100644
--- a/sys/dev/e1000/e1000_ich8lan.c
+++ b/sys/dev/e1000/e1000_ich8lan.c
@@ -352,6 +352,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct 
e1000_hw *hw)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                if (e1000_phy_is_accessible_pchlan(hw))
                        break;
 
@@ -504,6 +505,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
                case e1000_pch_tgp:
                case e1000_pch_adp:
                case e1000_pch_mtp:
+               case e1000_pch_ptp:
                        /* In case the PHY needs to be in mdio slow mode,
                         * set slow mode and try to get the PHY id again.
                         */
@@ -806,6 +808,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw 
*hw)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                /* multicast address update for pch2 */
                mac->ops.update_mc_addr_list =
                        e1000_update_mc_addr_list_pch2lan;
@@ -1851,6 +1854,7 @@ void e1000_init_function_pointers_ich8lan(struct e1000_hw 
*hw)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                hw->phy.ops.init_params = e1000_init_phy_params_pchlan;
                break;
        default:
@@ -2310,6 +2314,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw 
*hw)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M;
                break;
        default:
@@ -3435,6 +3440,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct 
e1000_hw *hw, u32 *bank)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                bank1_offset = nvm->flash_bank_size;
                act_offset = E1000_ICH_NVM_SIG_WORD;
 
@@ -4409,6 +4415,7 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct 
e1000_hw *hw)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                word = NVM_COMPAT;
                valid_csum_mask = NVM_COMPAT_VALID_CSUM;
                break;
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 25f0c533094a..527789622169 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -195,6 +195,22 @@ static pci_vendor_info_t em_vendor_info_array[] =
        PVID(0x8086, E1000_DEV_ID_PCH_MTP_I219_V18, "Intel(R) I219-V MTP(18)"),
        PVID(0x8086, E1000_DEV_ID_PCH_MTP_I219_LM19, "Intel(R) I219-LM 
MTP(19)"),
        PVID(0x8086, E1000_DEV_ID_PCH_MTP_I219_V19, "Intel(R) I219-V MTP(19)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_LNL_I219_LM20, "Intel(R) I219-LM 
LNL(20)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_LNL_I219_V20, "Intel(R) I219-V LNL(20)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_LNL_I219_LM21, "Intel(R) I219-LM 
LNL(21)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_LNL_I219_V21, "Intel(R) I219-V LNL(21)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_RPL_I219_LM22, "Intel(R) I219-LM 
RPL(22)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_RPL_I219_V22, "Intel(R) I219-V RPL(22)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_RPL_I219_LM23, "Intel(R) I219-LM 
RPL(23)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_RPL_I219_V23, "Intel(R) I219-V RPL(23)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_ARL_I219_LM24, "Intel(R) I219-LM 
ARL(24)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_ARL_I219_V24, "Intel(R) I219-V ARL(24)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_LM25, "Intel(R) I219-LM 
PTP(25)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_V25, "Intel(R) I219-V PTP(25)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_LM26, "Intel(R) I219-LM 
PTP(26)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_V26, "Intel(R) I219-V PTP(26)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_LM27, "Intel(R) I219-LM 
PTP(27)"),
+       PVID(0x8086, E1000_DEV_ID_PCH_PTP_I219_V27, "Intel(R) I219-V PTP(27)"),
        /* required last entry */
        PVID_END
 };
@@ -1250,6 +1266,7 @@ em_if_mtu_set(if_ctx_t ctx, uint32_t mtu)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
        case e1000_82574:
        case e1000_82583:
        case e1000_80003es2lan:
@@ -2649,6 +2666,7 @@ em_reset(if_ctx_t ctx)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                pba = E1000_PBA_26K;
                break;
        case e1000_82575:
@@ -2762,6 +2780,7 @@ em_reset(if_ctx_t ctx)
        case e1000_pch_tgp:
        case e1000_pch_adp:
        case e1000_pch_mtp:
+       case e1000_pch_ptp:
                hw->fc.high_water = 0x5C20;
                hw->fc.low_water = 0x5048;
                hw->fc.pause_time = 0x0650;

Reply via email to