专利名称:一种一键式烧录网卡固件的方法
技术领域:
本发明涉及一种烧录网卡固件的方法,具体涉及一种一键式烧录网卡固件的方法。
背景技术:
网卡固件的主要功能介绍首先网卡固件由boot code和config配置选项组成,boot code用来初始化网卡进入到一个初始工作状态,然后可以修改config配置选项来达 到对网卡的一些可配置选择的多种功能进行配置选择达到我们的需求,另外,配置选项中包含有网卡的一个非常重要的配置选项(MAC地址)。基于以上情况,通常网卡厂商都会提供一个烧录tool (如dos操作系统下的可执行文件作为烧录工具),通过键入命令来烧录网卡的firmware (包括boot code和config配置选项)。但是这些工具往往需要键入很多复杂的命令及参数,对于生产工人来说很繁杂、效率低下,而且容易出错,尤其是MAC地址涉及到要输入的数较多而且每次输入的MAC地址不能重复,但是往往生产工人容易输错MAC地址,而采用本发明的方法则可以避免这些问题。目前有些技术人员也会写一些批处理来包含那些更新固件的命令,但是对于MAC地址则依然需要人工手动键入,由于MAC地址较长,为六段,每段又是两个十六进制数,中间还有冒号隔开如00:10:18:D3:01:01,键入效率低,而且容易引起误操作。现在编写烧录MAC地址通常有三种方法第一,生成随机数作为MAC地址的方法,第二,人工键入我们编写好的MAC地址方案,第三,有电子扫描枪扫描MAC地址条形码方案,第一种方案,虽然产生随机数出现重复的MAC地址的概率非常小,但是依然还是有可能产生重复的MAC地址,一旦MAC地址重复,发生冲突,将导致网卡无法正常使用,第二种方法人工键入MAC地址容易由于误操作引起MAC地址重复,导致网卡无法正常使用,第三种方法,如果需要烧录的MAC地址特别多,对应的条形码也就特别多,操作耗时多,而且容易误操作,来回重工浪费很多时间,效率低下。
发明内容
针对现有技术的不足,本发明提供一种一键式烧录网卡固件的方法,该方法只要敲一个键,则整个固件的更新都将自动完成,方便快捷利于生产效率的提高,避免生产工人的误操作。本发明的方案是采用下述技术方案实现的一种一键式烧录网卡固件的方法,其改进之处在于,所述方法包括下述步骤第一步制作DOS启动盘;第二步将烧录工具tool放到所述DOS启动盘中;第三步新建批处理文件;
第四步新建存放MAC地址变量需要改变字段的文本文件、新建存放执行命令步骤的文本文件、新建存放烧录过MAC地址的文本文件并新建存放烧录过EEPROM的个数的文本文件;第五步赋初值给存放MAC地址变量字段的文本文件;第六步从存放MAC地址变量需要改变字段的文本文件中读取MAC地址变量的值并组成完整的MAC地址,赋值给配置选项,将配置选项和更新网卡固件的命令写到存放执行命令步骤的文本文件中;第七步将MAC地址变量字段每次烧录完后自动加I并保存到存放MAC地址变量需要改变字段的文本文件中,将已经烧录过的MAC地址保存到存放烧录过MAC地址的文本文件中,将烧录的总的EEPROM数保存到存放烧录过EEPROM的个数的文本文件中;第八步在DOS操作系统下执行批处理文件;第九步更换新的EEPROM后,在DOS提示符下键入I后回车则开始烧录另一个网 卡EEPROM的固件;如此循环烧录不同网卡EEPROM的固件。其中,所述第三步,所述批处理文件用I. bat表示。其中,所述第四步中,MAC地址由可变字段和固定字段组成,所述存放MAC地址变量需要改变字段的文本文件用temp, txt表示;所述存放执行命令步骤的文本文件用config. txt表示;所述存放烧录过MAC地址的文本文件用BCM5709S_MAC_ALL. TXT表示;所述存放烧录过EEPROM的个数的文本文件用EEPR0M_count. txt表示。其中,所述第六步中,完整的MAC地址包括可变字段和固定字段;所述可变字段即MAC地址变量字段。所述存放执行命令步骤的文本文件供固件烧录程序调用。其中,所述第七步中,所述存放烧录过EEPROM的个数的文本文件供查询使用。对MAC固定字段的说明一个MAC地址由六段组成,X0X1:X2X3 X4X5 X6X7 X8X9 X10X11,比如如果需要不同的MAC地址数量只是16个,则只需选择Χ(ΓΧ11 (共12个16进制数)其中任何一个标示符做变量去改变它,则可以有16种MAC地址(MAC地址的字段全是16进制的),而其他的11个十六进制数不做改变,如果需要编写256个MAC地址,则只要变化两个十六进制数即可,其余10个16进制数不做改变的就是所说的固定字段,这个固定字段不是不允许改变,只是在实际中不需要编写那么多的MAC地址,为了程序的编写方便以及MAC地址的有规律性考虑,固定住这些十六进制数。与现有技术比,本发明达到的有益效果是本发明提供的一种一键式的烧录网卡固件(firmware )的方法,方便快捷利于生产效率的提高,而且可以避免生产工人的误操作。本发明的方法由于MAC地址是通过本发明自动有规律变化,而且是自动烧录的,因而避免了很多可能出现的误操作,能大大提高生产效率,从而能带来很多经济效益。
图I是本发明提供的一键式烧录网卡固件方法的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式
作进一步的详细说明。本发明的方法是利用网卡芯片的提供商提供的烧录工具tool,将烧录boot code和配置选项的命令,包括MAC地址写到一个批处理文件里,同时每执行一次这个批处理文件,MAC地址就加I,从而实现网卡的boot code和配置选项相同,而每个网卡的MAC地址不同。本发明的难点在于实现每次烧录完一个网卡芯片的固件后,需要将MAC地址加1,给下一个网卡芯片使用,因为DOS下操作文本文件是比较困难的。以Broadcom公司的BCM5709S为例说明此发明的具体实施步骤,其他网卡的具体实现方法和代码虽然不会完全相同,但是基本上借鉴本发明的思想和部分代码,都应该在该发明的保护范围内。·
以Broadcom公司的BCM5709S为例,本发明提供的一键式烧录网卡固件方法的流程如图I所示,具体步骤如下第一步制作DOS启动盘;因为大多数网卡芯片的提供商提供的烧录固件的烧录·工具tool都是基于DOS操作系统的。第二步将烧录工具tool放到所述DOS启动盘中比如说Broadcom的BCM5709S型号网卡提供的烧录tool为一个“diag”文件夹,则把此文件夹放到DOS启动盘中。第三步新建批处理文件,如I. bat。第四步新建文本文件temp, txt存放MAC地址变量需要改变的字段,temp, txt的个数依照需要改变的MAC地址位数而定;再新建一个文本文件config. txt存放所有的需要执行的命令步骤;新建一个文本文件BCM5709S_MAC_ALL. TXT存放烧录过的MAC地址以备查询,新建一个文本文件才存放烧录过的EEPROM的个数;MAC地址由六段十六进制的数组成XX:XX:XX:XX:XX:XX。实际上可以看成是12个十六进制数。我们现在以三个十六进制数可变为例,来说明本发明的思想。3个十六进制数共可产生16*16*16=4096个不同的MAC地址,对于双网口的网卡,同一个网卡可选一段十六进制数标示端口号,用01,02来区分同一个网卡的两个端口,这样就总共有8192个MAC地址。本发明采用采用MAC地址的可变和固定字段如下00:10:18: DX: OI: XX (标示一个网卡的ethO),最左边的X用D02,中间的X用DOI,最右边的X用D00变量标示,通过每次D00的值自动加I来达到MAC地址自动加I,逢16进
Io00:10:18:DX:02:XX(标示一个网卡的ethl),其中X跟ethO的相同。则两个端口的网卡的MAC地址为Eth0:00:10:18:D% D02% :01: % DOl % % D00% ;Eth0 指的是第 O 号网卡,有些网卡有两路网口,ethO则表示第O路网口;Ethl:00:10:18:D% D02% :02: % DOl % % D00 % ;Ethl 指的是第 I 号网卡,有些网卡有两路网口,ethO则表示第I路网口;第五步赋初值给存放MAC地址变量字段的文本文件,如第四步所说,按照3位十六进制数可变来说明本发明,新建3个temp, txt文档,tempi, txt, temp2. txt, temp3. txt分别存放 D00, DO I, D02 变量的值,如 tempi, txt, temp2. txt, temp3. txt 都存放 0。第六步从存放MAC地址变量需要改变字段的文本文件temp, txt中读取MAC地址变量的值并组成完整的MAC地址,赋值给配置选项,将配置选项和更新网卡固件的命令写到存放执行命令步骤的文本文件config. txt中,供固件烧录程序调用执行。具体说明如下将tempi, txt存放的数赋值给DOO变量;将temp2. txt存放的数赋值给DOl变量;将temp3. txt存放的数赋值给D02变量;将旧的config. txt文件删除以便写入新的内容;
写EEPROM的FW更新的填充地址,Fff即固件Firmware的简写;写FWboot Code 更新命令;管理网NCSI Fff更新命令;MACO变量的表示,nvm cfg是网卡配置的命令,I代表第一个选项配置;/
权利要求
1.一种一键式烧录网卡固件的方法,其特征在于,所述方法包括下述步骤 第一步制作DOS启动盘; 第二步将烧录工具tool放到所述DOS启动盘中; 第三步新建批处理文件; 第四步新建存放MAC地址变量需要改变字段的文本文件、新建存放执行命令步骤的文本文件、新建存放烧录过MAC地址的文本文件并新建存放烧录过EEPROM的个数的文本文件; 第五步赋初值给存放MAC地址变量字段的文本文件; 第六步从存放MAC地址变量需要改变字段的文本文件中读取MAC地址变量的值并组成完整的MAC地址,赋值给配置选项,将配置选项和更新网卡固件的命令写到存放执行命令步骤的文本文件中; 第七步将MAC地址变量字段每次烧录完后自动加I并保存到存放MAC地址变量需要改变字段的文本文件中,将已经烧录过的MAC地址保存到存放烧录过MAC地址的文本文件中,将烧录的总的EEPROM数保存到存放烧录过EEPROM的个数的文本文件中; 第八步在DOS操作系统下执行批处理文件; 第九步更换新的EEPROM后,在DOS提示符下键入I后回车则开始烧录另一个网卡EEPROM的固件;如此循环烧录不同网卡EEPROM的固件。
2.如权利要求I所述的一键式烧录网卡固件的方法,其特征在于,所述第三步,所述批处理文件用I. bat表示。
3.如权利要求I所述的一键式烧录网卡固件的方法,其特征在于,所述第四步中,MAC地址由可变字段和固定字段组成,所述存放MAC地址变量需要改变字段的文本文件用temp, txt表示;所述存放执行命令步骤的文本文件用config. txt表示;所述存放烧录过MAC地址的文本文件用BCM5709S_MAC_ALL. TXT表示;所述存放烧录过EEPROM的个数的文本文件用EEPR0M_count. txt表不。
4.如权利要求I所述的一键式烧录网卡固件的方法,其特征在于,所述第六步中,完整的MAC地址包括可变字段和固定字段;所述可变字段即MAC地址变量字段。
所述存放执行命令步骤的文本文件供固件烧录程序调用。
5.如权利要求I所述的一键式烧录网卡固件的方法,其特征在于,所述第七步中,所述存放烧录过EEPROM的个数的文本文件供查询使用。
全文摘要
本发明涉及一种一键式烧录网卡固件的方法,利用厂商提供的烧录tool,将烧录boot code和配置选项的命令,包括MAC地址写到一个批处理文件里,同时每执行一次这个批处理文件,MAC地址就加1,从而实现网卡的boot code和配置选项相同,而每个网卡的MAC地址不同。该方法只要敲一个键,则整个固件的更新都将自动完成,方便快捷利于生产效率的提高,避免生产工人的误操作。
文档编号G06F9/445GK102880487SQ20121033345
公开日2013年1月16日 申请日期2012年9月10日 优先权日2012年9月10日
发明者柳胜杰, 邵宗有, 沙超群, 郑臣明, 王卫钢, 胡远明, 王晖, 王英 申请人:曙光信息产业(北京)有限公司