资源简介
新增功能
在较新的内核(4.19 +)上修复构建
Backport 到上游: e1f65b0d70 (e1000e:允许非单调 SYSTIM 读数)
初始支持以下设备:
以太网连接(11) I219-LM
以太网连接(11) I219-V
以太网连接(12) I219-LM
以太网连接(12) I219-V
添加了对 PCIm 功能状态的支持:
由于提交:5d8682588605 ("[misc] mei: me:允许运行时
面向 D0i3 的平台的 pm ")
当拔下电缆并重新连接时,网卡进入 DMoff 状态。这导致了错误的链路指示和双工不匹配。此错误 decribed 在: https://bugzilla.redhat.com/show_bug.cgi?id=1689436
在监测任务中检查 PCIm 功能状态和执行 PHY 重置后,解决了这一问题。
旨在
该驱动程序包括对基于英特尔®安腾®2的支持,以及英特尔® EM64T 系统。此版本支持最新的2.4 系列内核以及2.6、x.x.x.x 和版本。
e1000e 的 gz 设计为在 Linux * 下与 Intel®82563/82566/82567 千兆位以太网 PHY、英特尔®82571/82572/82573/82574/82577/82578/82579/82583 千兆位 Ethernet 控制器和 I217/I218 控制器搭配使用。SourceForge * 提供了该驱动程序的最新版本和更早版本。
如果您的适配器/连接不是82563、82566、82567、82571、82572、82573、82574、82577、82578、82579或基于82583的设备,则应使用以下驱动程序之一:
igb-x * gz 驱动程序支持所有英特尔®82575、82576、82580、I350、I210 或基于 I211 的千兆位网络适配器/连接
e1000-x * gz 驱动程序支持所有基于8254x 的所有®英特尔架构 PCI 和 PCI-X 千兆位网络适配器/连接
代码片段和文件信息
// SPDX-License-Identifier: GPL-2.0
/* Copyright(c) 1999 - 2019 Intel Corporation. */
/* 80003ES2LAN Gigabit Ethernet Controller (Copper)
* 80003ES2LAN Gigabit Ethernet Controller (Serdes)
*/
#include “e1000.h“
/* A table for the GG82563 cable length where the range is defined
* with a lower bound at “index“ and the upper bound at
* “index + 5“.
*/
static const u16 e1000_gg82563_cable_length_table[] = {
0 60 115 150 150 60 115 150 180 180 0xFF
};
#define GG82563_CABLE_LENGTH_TABLE_SIZE \
(sizeof(e1000_gg82563_cable_length_table) / \
sizeof(e1000_gg82563_cable_length_table[0]))
static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw);
static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw u16 mask);
static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw u16 mask);
static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw);
static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw);
static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw);
static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw u16 duplex);
static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw u32 offset
u16 *data);
static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw u32 offset
u16 data);
static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw);
/**
* e1000_init_phy_params_80003es2lan - Init ESB2 PHY func ptrs.
* @hw: pointer to the HW structure
**/
static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw)
{
struct e1000_phy_info *phy = &hw->phy;
s32 ret_val;
if (hw->phy.media_type != e1000_media_type_copper) {
phy->type = e1000_phy_none;
return 0;
} else {
phy->ops.power_up = e1000_power_up_phy_copper;
phy->ops.power_down = e1000_power_down_phy_copper_80003es2lan;
}
phy->addr = 1;
phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
phy->reset_delay_us = 100;
phy->type = e1000_phy_gg82563;
/* This can only be done after all function pointers are setup. */
ret_val = e1000e_get_phy_id(hw);
/* Verify phy id */
if (phy->id != GG82563_E_PHY_ID)
return -E1000_ERR_PHY;
return ret_val;
}
/**
* e1000_init_nvm_params_80003es2lan - Init ESB2 NVM func ptrs.
* @hw: pointer to the HW structure
**/
static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw)
{
struct e1000_nvm_info *nvm = &hw->nvm;
u32 eecd = er32(EECD);
u16 size;
nvm->opcode_bits = 8;
nvm->delay_usec = 1;
switch (nvm->override) {
case e1000_nvm_override_spi_large:
nvm->page_size = 32;
nvm->address_bits = 16;
break;
case e1000_nvm_override_spi_small:
nvm->page_size = 8;
nvm->address_bits = 8;
break;
default:
nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8;
nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8;
break;
}
nvm->type = e1000_nvm_eeprom_spi;
size = (u16)((eecd & E1000_EECD_SIZE_EX_MASK) >>
E1000_EECD_SIZE_EX_SHIFT);
/* Added to a constant “size“ becomes the le
相关资源
- 联想y470无线网卡驱动 for 32位64位
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- 2440 cs8900a 网卡驱动程序
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- wireless系列工具源码,附iwpriviwlistiw
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- Linux系统教材
- vmware虚拟win7网卡驱动
评论
共有 条评论