Print this page
Update i40e for new devices, prototype changes

*** 13,22 **** --- 13,23 ---- * Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved. * Copyright (c) 2018, Joyent, Inc. * Copyright 2017 Tegile Systems, Inc. All rights reserved. * Copyright 2020 Ryan Zezeski * Copyright 2020 RackTop Systems, Inc. + * Copyright 2021 Oxide Computer Company */ /* * For more information, please see the big theory statement in i40e_main.c. */
*** 668,678 **** for (i = 0; i < nbytes; i++, offset++) { enum i40e_status_code status; uint32_t val; status = i40e_aq_get_phy_register(hw, ! I40E_AQ_PHY_REG_ACCESS_EXTERNAL_MODULE, page, offset, &val, NULL); if (status != I40E_SUCCESS) { mutex_exit(&i40e->i40e_general_lock); return (EIO); } --- 669,679 ---- for (i = 0; i < nbytes; i++, offset++) { enum i40e_status_code status; uint32_t val; status = i40e_aq_get_phy_register(hw, ! I40E_AQ_PHY_REG_ACCESS_EXTERNAL_MODULE, page, TRUE, offset, &val, NULL); if (status != I40E_SUCCESS) { mutex_exit(&i40e->i40e_general_lock); return (EIO); }
*** 1055,1064 **** --- 1056,1067 ---- case MAC_PROP_DUPLEX: case MAC_PROP_SPEED: case MAC_PROP_STATUS: case MAC_PROP_ADV_100FDX_CAP: case MAC_PROP_ADV_1000FDX_CAP: + case MAC_PROP_ADV_2500FDX_CAP: + case MAC_PROP_ADV_5000FDX_CAP: case MAC_PROP_ADV_10GFDX_CAP: case MAC_PROP_ADV_25GFDX_CAP: case MAC_PROP_ADV_40GFDX_CAP: ret = ENOTSUP; break;
*** 1066,1075 **** --- 1069,1080 ---- * These are read-only at this time as we don't support configuring * auto-negotiation. See the theory statement in i40e_main.c. */ case MAC_PROP_EN_100FDX_CAP: case MAC_PROP_EN_1000FDX_CAP: + case MAC_PROP_EN_2500FDX_CAP: + case MAC_PROP_EN_5000FDX_CAP: case MAC_PROP_EN_10GFDX_CAP: case MAC_PROP_EN_25GFDX_CAP: case MAC_PROP_EN_40GFDX_CAP: case MAC_PROP_AUTONEG: case MAC_PROP_FLOWCTRL:
*** 1229,1238 **** --- 1234,1261 ---- break; } u8 = pr_val; *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0; break; + case MAC_PROP_ADV_2500FDX_CAP: + case MAC_PROP_EN_2500FDX_CAP: + if (pr_valsize < sizeof (uint8_t)) { + ret = EOVERFLOW; + break; + } + u8 = pr_val; + *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_2_5GB) != 0; + break; + case MAC_PROP_ADV_5000FDX_CAP: + case MAC_PROP_EN_5000FDX_CAP: + if (pr_valsize < sizeof (uint8_t)) { + ret = EOVERFLOW; + break; + } + u8 = pr_val; + *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_5GB) != 0; + break; case MAC_PROP_ADV_10GFDX_CAP: case MAC_PROP_EN_10GFDX_CAP: if (pr_valsize < sizeof (uint8_t)) { ret = EOVERFLOW; break;