从最常见的修改mac address 说起:

section 1: 读mac address

/* Only the MAC addr is required to be present in the iNVM */

switch (offset) {

case NVM_MAC_ADDR:

ret_val = igb_read_invm_word_i210(hw, (u8)offset, &data[0]);

ret_val |= igb_read_invm_word_i210(hw, (u8)offset+1,

&data[1]);

ret_val |= igb_read_invm_word_i210(hw, (u8)offset+2,

&data[2]);

if (ret_val)

hw_dbg("MAC Addr not found in iNVM\n");

break;

mac address 是放在eeprom 最开始的位置:

/* NVM Word Offsets */

#define NVM_COMPAT 0x0003

#define NVM_ID_LED_SETTINGS 0x0004 /* SERDES output amplitude */

#define NVM_VERSION 0x0005

#define NVM_INIT_CONTROL2_REG 0x000F

#define NVM_INIT_CONTROL3_PORT_B 0x0014

#define NVM_INIT_CONTROL3_PORT_A 0x0024

#define NVM_ALT_MAC_ADDR_PTR 0x0037

#define NVM_CHECKSUM_REG 0x003F

#define NVM_COMPATIBILITY_REG_3 0x0003

#define NVM_COMPATIBILITY_BIT_MASK 0x8000

#define NVM_MAC_ADDR 0x0000

#define NVM_SUB_DEV_ID 0x000B

#define NVM_SUB_VEN_ID 0x000C

#define NVM_DEV_ID 0x000D

#define NVM_VEN_ID 0x000E

#define NVM_INIT_CTRL_2 0x000F

#define NVM_INIT_CTRL_4 0x0013

#define NVM_LED_1_CFG 0x001C

#define NVM_LED_0_2_CFG 0x001F

#define NVM_ETRACK_WORD 0x0042

#define NVM_ETRACK_HIWORD 0x0043

#define NVM_COMB_VER_OFF 0x0083

#define NVM_COMB_VER_PTR 0x003d

/**

* igb_set_mac - Change the Ethernet Address of the NIC

* @netdev: network interface device structure

* @p: pointer to an address structure

*

* Returns 0 on success, negative on failure

**/

static int igb_set_mac(struct net_device *netdev, void *p)

{

struct igb_adapter *adapter = netdev_priv(netdev);

struct e1000_hw *hw = &adapter->hw;

struct sockaddr *addr = p;

if (!is_valid_ether_addr(addr->sa_data))

return -EADDRNOTAVAIL;

memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);

memcpy(hw->mac.addr, addr->sa_data, netdev->addr_len);

/* set the correct pool for the new PF MAC address in entry 0 */

igb_rar_set_qsel(adapter, hw->mac.addr, 0,

adapter->vfs_allocated_count);

return 0;

}

I210网卡LINUX的mac,linux i210 网卡驱动解读相关推荐

  1. linux的网卡排序,linux 按mac排序分配网卡名称

    需求:设备有6个千电口,2个万兆光口. 需要按类型和接口顺序排列后为它们分配网卡名称(请注意不是mac顺序,而是busid号). 例如: 00-10-f3-ff-ff-80-d1-35  --eth0 ...

  2. linux输出mac,Linux(Mac)命令ll输出后各个字段的含义

    ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名 Mac下推荐iTerm2终端,并配合zsh使用.非常方便. ll命令结果字段说明 示例: 1 2 3 4 5 6 7 8 ...

  3. linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法

    1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...

  4. Linux以太网卡架构解析-MAC层和PHY层

    引子 最近,在调试基于Freescale IMX6UL板子的以太网口时,遇到了一个奇怪的问题:网口插拔时,系统检测不到Link Down.Link UP事件.并且,在使用ifconfig eth0 u ...

  5. Linux克隆Mac地址一样,详解Linux系统中网卡MAC地址克隆方法

    怎么临时性地改变 mac 地址? 你可以在 linux 运行的时候改变 mac 地址.需要注意的是当 mac 地址转换的那一会时间,你的网络会掉线.当电脑重启时 mac 地址又会变回原来的.下面介绍几 ...

  6. linux 网卡聚合mac,linux网卡与MAC地址绑定方法总结

    使用linux系统时会出现这样的情况,当你安装了某个网卡的驱动程序时,或者安装了与网卡相关的程序后. 网卡会出现所谓的漂移现象.(注意:不是飘逸 ).可能的表象为: (1):网卡顺序颠倒,比如之前你的 ...

  7. linux安卓mac修改,如何伪装或改变android智能手机wifi网卡的mac地址

    Android系统,wifi网卡的mac地址是硬件ID,是不能修改的,android 是Linux内核,linux中mac地址是保存在/etc/init.d/networ 文件中的,但是在androi ...

  8. linux网卡名字 mac,linux下编程如何获得所有网卡的信息-包括网卡名字,网卡MAC等等......

    linux下编程如何获得所有网卡的信息-包括网卡名字,网卡MAC等等... (2012-06-07 04:35:41) 标签: 的 linux 数据包 杂谈 linux下编程如何获得所有网卡的信息?包 ...

  9. mac linux网卡驱动下载官网下载,linux | 网卡驱动

    linux 1. 查看网卡信息 lspci | grep -i 'eth' 1a:00.0 Ethernet controller: Intel Corporation Ethernet Connec ...

最新文章

  1. R语言生成组合图并保存实战:实际上只保存了最后一个图问题、ggsave生成组合图并保存(保存完整组合图)
  2. 【Applet编写应用小程序】Applet类APIの基本知识和第一个程序
  3. JS:attachEvent和addEventListener方法
  4. 线性回归损失函数为什么要用平方形式
  5. CG CTF WEB /x00
  6. [网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
  7. python写接口函数_python接口自动化测试二十:函数写接口测试
  8. Hadoop_NameNode_代码分析_目录树(2)
  9. python代码编码成jni_python 设置文件编码格式的实现方法
  10. 【飞秋】做需求分析一点心得
  11. mysql怎么退出时保存导出_Mysql应用使用MySQL MySqldump命令导出数据时的注意事项...
  12. Delphi BLE 控件
  13. Laravel 5.x 启动过程分析 [转]
  14. hdfs 创建用户和用户组_HDFS原理 | 一文读懂HDFS架构与设计
  15. 017年美国大学生数学建模竞赛E题优秀论文解读
  16. Snake模型综合介绍
  17. 降噪耳机简介及降噪技术-ANC、ENC、DSP、CVC
  18. informatica tips_1
  19. 华为设备配置DNS客户端
  20. windows下GMT绘制等值线

热门文章

  1. raid卡组不同raid_乐扩IO-PCE9230-4IR阵列卡组阵列教程
  2. 太赫兹芯片是什么原理_太赫兹波养生鞋 芯片、鞋垫和材质的详细了解专利技术~太赫兹芯...
  3. micopython 18b20_Micropython开发板DIY智能温控小风扇
  4. springboot 自动装配_Java互联网架构-SpringBoot自动装配核心源码剖析
  5. java多线程总结图_Java多线程总结之Queue
  6. 算术表达式求解背景_1.8 C++算术运算符与表达式
  7. jieba分词_从语言模型原理分析如何jieba更细粒度的分词
  8. [原创]存储过程里面的递归
  9. 自定义Android注解Part2:代码自动生成
  10. etcd数据库备份与还原