CN111831306A - 一种基于网卡NVM的串号和ProjectName读写方法 - Google Patents

一种基于网卡NVM的串号和ProjectName读写方法 Download PDF

Info

Publication number
CN111831306A
CN111831306A CN202010225634.2A CN202010225634A CN111831306A CN 111831306 A CN111831306 A CN 111831306A CN 202010225634 A CN202010225634 A CN 202010225634A CN 111831306 A CN111831306 A CN 111831306A
Authority
CN
China
Prior art keywords
serial number
network card
projectname
project name
writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010225634.2A
Other languages
English (en)
Other versions
CN111831306B (zh
Inventor
魏波
付洪纲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VANTRON TECHNOLOGY Inc
Original Assignee
VANTRON TECHNOLOGY Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VANTRON TECHNOLOGY Inc filed Critical VANTRON TECHNOLOGY Inc
Priority to CN202010225634.2A priority Critical patent/CN111831306B/zh
Publication of CN111831306A publication Critical patent/CN111831306A/zh
Application granted granted Critical
Publication of CN111831306B publication Critical patent/CN111831306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/365Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name

Abstract

本发明公开了计算机设计领域的一种基于网卡NVM的串号和ProjectName读写方法。方法步骤包括a、采用应用层串号/ProjectName写入工具将电脑主板的串号和ProjectName写入网卡的NVM地址中;b、在开机自检过程中,BIOS从网卡NVM地址中获取串号和ProjectName,并将串号和ProjectName合并到SMBIOS表中;c、通过DMI接口读取SMBIOS表,获取串号和ProjectName。本发明由于采用串号/ProjectName写入工具将串号和ProjectName存储在网卡中,不需要额外的EEPROM芯片存储串号和ProjectName,使主板的成本更低,也不会出现BIOS更新过程中串号和ProjectName被覆盖的问题。

Description

一种基于网卡NVM的串号和ProjectName读写方法
技术领域
本发明涉及电气化铁路相关技术领域,特别是一种基于网卡NVM的串号和ProjectName读写方法。
背景技术
串号和ProjectName被主板厂商广泛使用,串号用于按照厂家自己的格式唯一标识设备,ProjectName可根据需求定制用于区分厂商。现有技术中,通常将串号和ProjectName单独存储在EEPROM芯片或者存储在BIOSFlash中。串号和ProjectName的长度很小,大概几十个字节的长度,将其存储在单独的EEPROM芯片将造成资源和成本上的浪费,而如果存储在BIOSFlash中,很容易造成BIOS更新过程中串号和ProjectName被覆盖的问题。
发明内容
为了克服上述不足,本发明提出了一种基于网卡NVM的串号和ProjectName读写方法。
为了实现上述发明目的,本发明提供了以下技术方案:
一种基于网卡NVM的串号和ProjectName读写方法,步骤包括:
a、采用应用层串号/ProjectName写入工具将电脑主板的串号和ProjectName写入网卡的NVM地址中;
b、在开机自检过程中,BIOS从网卡NVM地址中获取串号和ProjectName,并将串号和ProjectName合并到SMBIOS表中;
c、通过DMI接口读取SMBIOS表,获取串号和ProjectName。
作为本发明的优选方案,应用层串号/ProjectName写入工具包括Windows工具和UEFI Shell工具。
作为本发明的优选方案,Windows工具的编写过程包括:
通过NalReadEeprom16和NalWriteEeprom16封装WriteMn以及WriteSn;
编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
作为本发明的优选方案,UEFI Shell工具的编写过程包括:
S11,获取网卡的内存映射地址;
S12,通过芯片规格书获取网卡的NVM地址的读写函数;
S13,通过网卡的NVM地址的读写函数封装WriteMn以及WriteSn;
S14,编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
作为本发明的优选方案,串号写入网卡的NVM地址为0x70~0x7A,ProjectName写入网卡的NVM地址为0x80~0x9F。
作为本发明的优选方案,步骤b包括以下步骤:
S21,BIOS开机自检过程中,当BIOS运行到DXE驱动加载阶段时,通过ReadMnSn获取到串号和ProjectName,串号和ProjectName由应用层串号/ProjectName写入工具写入;
S22,调用BIOS的SMBIOS库接口,将获取的串号和ProjectName写入SMBIOS表格的存储区域。
作为本发明的优选方案,步骤c包括以下步骤:
S31,BIOS启动自检过程中,BIOS在BDS阶段读取SMBIOS表格,并从SMBIOS表格中读取串号和ProjectName,并在BIOS配置页面显示串号和ProjectName;
S32,电脑进入操作系统后,电脑操作系统通过DMI接口获取串号和ProjectName。
与现有技术相比,本发明的有益效果:
1、本发明提出了一种基于网卡NVM的串号和ProjectName读写方法,由于采用串号/ProjectName写入工具将串号和ProjectName存储在网卡中,不需要额外的EEPROM芯片存储串号和ProjectName,使主板的成本更低,也不会出现BIOS更新过程中串号和ProjectName被覆盖的问题。
2、本发明的方法采用Windows工具或UEFI Shell工具将串号和ProjectName写入网卡,并且使得开机自检过程中,BIOS可以完成从网卡NVM内获取串号和ProjectName并合并到SMBIOS表,因此系统能够通过DMI接口访问串号和ProjectName。降低了系统层的应用软件编写难度,并且降低了系统层的应用软件的维护消耗,以及跨平台支持的软件消耗。
3、本发明的方法从DMI接口获取串号和ProjectName的信息,充分利用了系统集成的内部功能,实现过程遵守了行业标准,该方法在windows,linux和OSX等系统都能够支持,具有普适性,利于商业推广。
附图说明:
图1为本发明实施例1中一种基于网卡NVM的串号和ProjectName读写方法的流程图;
图2为本发明实施例1中一种具体的基于网卡NVM的串号和ProjectName读写方法的流程图;
图3为本发明实施例1中一种基于网卡NVM的串号和ProjectName读写的系统图。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
一种基于网卡NVM的串号和ProjectName读写方法的流程图如图1所示,包括以下步骤:
第一步,采用应用层串号/ProjectName写入工具将电脑主板的串号和ProjectName写入网卡的NVM地址中。
网卡的NVM是用来配置网卡的,但不是所有的存储空间都被利用起来了,很多都是保留使用。因此在不影响网卡功能的情况下,可以将部分空间用来存储串号和ProjectName。通过验证和查询,网卡的NVM地址0x70~0x7A可用作串号的存储地址,0x80~0x9F用作ProjectName的存储地址。因为这两个范围的地址并没有被网卡占用,对它们写入数据并不会影响网卡的功能。
首先,需要编写应用层串号/ProjectName写入工具。
串号和ProjectName是用于标识主板的,所以面向的使用群体主要是客户。客户不用关心具体实现细节,但是需要一个入口能够将串号或ProjectName写入或更新,这里提供两种方式实现:
第一种,采用Windows工具编写应用层串号/ProjectName的写入工具,
需要windows系统提供基础的驱动框架,结合Intel提供的iqvw64e驱动和API编写实现,因为有Intel的支持,这部分的实现相对于EFI更简单。首先通过NalReadEeprom16和NalWriteEeprom16封装WriteMn以及WriteSn,然后编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
第二种,采用UEFI Shell工具编写应用层串号/ProjectName的写入工具,
采用UEFI Shell工具编写应用层串号/ProjectName的写入工具,需要EFI环境提供库环境和运行环境,实现步骤包括:
S11,获取网卡的内存映射地址,根据硬件上的网卡布局我们可以知道网卡的[总线号=0,设备号=0x1C,功能号=0],基于以上信息结合PCIE标准我们可以获取到网卡的内存映射地址,获取网卡的内存映射地址函数为:
MmioBase=PCI.read(总线号,设备号,功能号,寄存器偏移0x10)。
S12,阅读Intel I210规格书,获取NVM的读写接口函数:
MmioWrite32(mmioBase+0x102c,configValue);
MmioRead32(mmioBase+0x14);
S13,基于S12的接口函数,封装WriteMnSn以及ReadMnSn。
S14,编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
第二步,在开机自检过程中,BIOS从网卡NVM地址中获取串号和ProjectName,并将串号和ProjectName合并到SMBIOS表中。
BIOS部分主要完成开机自检过程中从网卡NVM内获取串号和ProjectName并合并到SMBIOS表,使得系统能够通过DMI接口访问串号和ProjectName,具体包括以下步骤:
S21,预先完成WriteMnSn和ReadMnSn的封装,因为EFI shell是继承自UEFI BIOS的框架,所以两者这部分实现是通用的,不再赘述。
S22,更新SMBIOS表,SMBIOS表已经存储有串号和ProjectName。当BIOS运行到DXE驱动加载阶段时,通过ReadMnSn获取到应用端写入的串号和ProjectName,解析后通过调用BIOS的SMBIOS库接口将串号和ProjectName保存到SMBIOS表格的存储区域。
第三步,电脑操作系统通过DMI接口读取所述SMBIOS表,获取串号和ProjectName。具体包括以下步骤:
S31,在BIOS开机自检过程中,BIOS在BDS阶段读取SMBIOS表格,解析出串号字段和ProjectName字段并显示在BIOS配置页面;
S32,进入电脑操作系统后,操作系统可以通过标准的DMI接口获取串号和ProjectName。
上述第二步和第三步的步骤流程详见图2,一种具体的基于网卡NVM读写串号和ProjectName的设计方法的流程图。
一种基于网卡NVM管理串号和ProjectName的系统如图3所示,系统包括CPU、网卡芯片、BIOS Flash和内存卡,
CPU用于将电脑主板的串号和ProjectName写入的网卡的NVM地址中;CPU还用于运行电脑操作系统,使得电脑操作系统通过DMI接口读取SMBIOS表,获取SMBIOS表中的串号和ProjectName。
网卡用于存储所述电脑主板的串号和ProjectName。BIOS Flash用于实现ProjectName和串号的管理。内存卡包括网卡的内存映射寄存器,用于存储网卡的NVM地址。
作为一种具体的实施例,一种基于网卡NVM管理串号和ProjectName的系统可以采取以下配置:
CPU采用X86架构,具体采用的Intel E3900系列CPU实现。
网卡芯片采用Intel网卡芯片,具体采用Intel I210系列,对存储提供硬件支持。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点,对于本领域技术人员而言,显然本发明限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (7)

1.一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,步骤包括:
a、采用应用层串号/ProjectName写入工具将电脑主板的串号和ProjectName写入网卡的NVM地址中;
b、在开机自检过程中,BIOS从所述网卡NVM地址中获取所述串号和ProjectName,并将所述串号和ProjectName合并到SMBIOS表中;
c、通过DMI接口读取所述SMBIOS表,获取串号和ProjectName。
2.如权利要求1所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述应用层串号/ProjectName写入工具包括Windows工具和UEFI Shell工具。
3.如权利要求2所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述Windows工具的编写过程包括:
通过NalReadEeprom16和NalWriteEeprom16封装WriteMn以及WriteSn;
编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
4.如权利要求2所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述UEFI Shell工具的编写过程包括:
S11,获取网卡的内存映射地址;
S12,通过芯片规格书获取所述网卡的NVM地址的读写函数;
S13,通过所述网卡的NVM地址的读写函数封装WriteMn以及WriteSn;
S14,编写用户UI交互逻辑,通过用户UI交互逻辑将串号和ProjectName写入的网卡的NVM地址中。
5.如权利要求1所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述串号写入网卡的NVM地址为0x70~0x7A,所述ProjectName写入网卡的NVM地址为0x80~0x9F。
6.如权利要求1所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述步骤b包括以下步骤:
S21,BIOS开机自检过程中,当BIOS运行到DXE驱动加载阶段时,通过ReadMnSn获取到所述串号和ProjectName,所述串号和ProjectName由所述应用层串号/ProjectName写入工具写入;
S22,调用BIOS的SMBIOS库接口,将获取的所述串号和ProjectName写入SMBIOS表格的存储区域。
7.如权利要求1所述的一种基于网卡NVM的串号和ProjectName读写方法,其特征在于,所述步骤c包括以下步骤:
S31,BIOS启动自检过程中,BIOS在BDS阶段读取SMBIOS表格,并从所述SMBIOS表格中读取所述串号和ProjectName,并在BIOS配置页面显示所述串号和ProjectName;
S32,电脑进入操作系统后,所述电脑操作系统通过DMI接口获取所述串号和ProjectName。
CN202010225634.2A 2020-03-26 2020-03-26 一种基于网卡NVM的串号和ProjectName读写方法 Active CN111831306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010225634.2A CN111831306B (zh) 2020-03-26 2020-03-26 一种基于网卡NVM的串号和ProjectName读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010225634.2A CN111831306B (zh) 2020-03-26 2020-03-26 一种基于网卡NVM的串号和ProjectName读写方法

Publications (2)

Publication Number Publication Date
CN111831306A true CN111831306A (zh) 2020-10-27
CN111831306B CN111831306B (zh) 2021-07-20

Family

ID=72913950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010225634.2A Active CN111831306B (zh) 2020-03-26 2020-03-26 一种基于网卡NVM的串号和ProjectName读写方法

Country Status (1)

Country Link
CN (1) CN111831306B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050249235A1 (en) * 2004-05-07 2005-11-10 Lian-Chun Lee Method of accessing a mac address for a nic device
CN1696926A (zh) * 2004-05-15 2005-11-16 鸿富锦精密工业(深圳)有限公司 Mac地址自动分配系统及方法
CN103116621A (zh) * 2013-01-29 2013-05-22 北京奇虎科技有限公司 检测计算机硬件温度的方法、系统及识别硬件型号的方法
US20140173154A1 (en) * 2012-12-17 2014-06-19 Adesto Technologies Corporation Network interface with logging
CN104679535A (zh) * 2013-11-28 2015-06-03 英业达科技有限公司 伺服器以及识别码同步方法
CN105653398A (zh) * 2015-11-05 2016-06-08 沈阳通用软件有限公司 一种智能分配操作系统镜像方法
CN106937275A (zh) * 2017-02-13 2017-07-07 深圳盈达信息科技有限公司 一种在安卓系统下保存系统唯一标识及硬件id的设备
CN107194264A (zh) * 2017-05-24 2017-09-22 济南浪潮高新科技投资发展有限公司 一种基于uefi的带有安全认证功能的网卡
CN108228470A (zh) * 2016-12-21 2018-06-29 北京忆恒创源科技有限公司 一种处理向nvm写入数据的写命令的方法和设备
CN108710803A (zh) * 2018-04-09 2018-10-26 南京百敖软件有限公司 一种主板和bios绑定的方法
CN109564502A (zh) * 2016-08-19 2019-04-02 华为技术有限公司 应用于存储设备中的访问请求的处理方法和装置
CN110109852A (zh) * 2019-04-03 2019-08-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 硬件实现tcp_ip协议的系统及方法
CN110471676A (zh) * 2019-08-22 2019-11-19 深圳市讯盾科技有限公司 Mac地址烧录方法及系统
CN110515663A (zh) * 2019-07-26 2019-11-29 苏州浪潮智能科技有限公司 一种配置dmi信息的方法及装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050249235A1 (en) * 2004-05-07 2005-11-10 Lian-Chun Lee Method of accessing a mac address for a nic device
CN1696926A (zh) * 2004-05-15 2005-11-16 鸿富锦精密工业(深圳)有限公司 Mac地址自动分配系统及方法
US20140173154A1 (en) * 2012-12-17 2014-06-19 Adesto Technologies Corporation Network interface with logging
CN103116621A (zh) * 2013-01-29 2013-05-22 北京奇虎科技有限公司 检测计算机硬件温度的方法、系统及识别硬件型号的方法
CN104679535A (zh) * 2013-11-28 2015-06-03 英业达科技有限公司 伺服器以及识别码同步方法
CN105653398A (zh) * 2015-11-05 2016-06-08 沈阳通用软件有限公司 一种智能分配操作系统镜像方法
CN109564502A (zh) * 2016-08-19 2019-04-02 华为技术有限公司 应用于存储设备中的访问请求的处理方法和装置
CN108228470A (zh) * 2016-12-21 2018-06-29 北京忆恒创源科技有限公司 一种处理向nvm写入数据的写命令的方法和设备
CN106937275A (zh) * 2017-02-13 2017-07-07 深圳盈达信息科技有限公司 一种在安卓系统下保存系统唯一标识及硬件id的设备
CN107194264A (zh) * 2017-05-24 2017-09-22 济南浪潮高新科技投资发展有限公司 一种基于uefi的带有安全认证功能的网卡
CN108710803A (zh) * 2018-04-09 2018-10-26 南京百敖软件有限公司 一种主板和bios绑定的方法
CN110109852A (zh) * 2019-04-03 2019-08-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 硬件实现tcp_ip协议的系统及方法
CN110515663A (zh) * 2019-07-26 2019-11-29 苏州浪潮智能科技有限公司 一种配置dmi信息的方法及装置
CN110471676A (zh) * 2019-08-22 2019-11-19 深圳市讯盾科技有限公司 Mac地址烧录方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ASKMEBLOGGER: "Serial Number of Motherboard: Uniqueness You Should Know", 《HTTPS://WWW.ASKMEBLOGGER.COM/SERIAL-NUMBER-MOTHERBOARD-UNIQUENESS-KNOW/》 *
EDEN: "i210-ethernet-controller-datasheet", 《HTTP://WWW.DOC88.COM/P-7774985296283.HTML》 *
JIM W: "linux和efi下更新网卡NVM操作(XL710)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_42414349/ARTICLE/DETAILS/101759345》 *
周刚: "基于PCI总线的MVB网卡设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
CN111831306B (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
US8549271B1 (en) Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device
US20060282653A1 (en) Method for updating frimware of memory card
JP2002278781A (ja) 記憶装置、記憶装置制御方法及びプログラム
US9047186B2 (en) Allocation method and apparatus of moderate memory
US20140156913A1 (en) Data processing method, memory controller and memory storage apparatus
US20100199081A1 (en) Apparatus and method for downloading contents using an interior mass storage in a portable terminal
JPH07306922A (ja) Icメモリカードおよびそのicメモリカードの検査方法
CN114706533B (zh) 一种基于gpt分区表的多文件多级启动加载方法及装置
CN110297726B (zh) 具有串行存在检测数据的计算机系统及内存模块控制方法
JP2010515128A (ja) 不揮発性メモリにおけるデータを管理する方法
US20060129520A1 (en) System and method for automatically updating a program in a computer
US20110004719A1 (en) Memory Element
CN111831306B (zh) 一种基于网卡NVM的串号和ProjectName读写方法
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
CN112181275A (zh) 一种数据处理器及数据处理方法
CN113327639B (zh) 一种基于lvgl的固件存储读取方法及装置
CN115359828A (zh) 一种服务器固件刷新方法、装置、终端及存储介质
US7162568B2 (en) Apparatus and method for flash ROM management
CN110327626B (zh) 虚拟服务器创建方法及装置
CN107977282B (zh) 一种SPI-Nand读取数据页的方法及装置
US20200151119A1 (en) Method and apparatus for performing access control between host device and memory device
US10236066B2 (en) Method of managing semiconductor memories, corresponding interface, memory and device
CN111831224B (zh) 一种擦除exFAT分区文件剩余空间的方法,系统及设备
CN108776577A (zh) 磁盘管理方法、装置、电子设备及存储介质
TWI788252B (zh) 壞塊表繼承方法及其儲存裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 610041 doctor Pioneer Park, Chengdu, China, No.5 Gaopeng Avenue, high tech Zone, Chengdu, Sichuan Province

Applicant after: Chengdu wanchuang Technology Co.,Ltd.

Address before: 610041 doctor Pioneer Park, Chengdu, China, No.5 Gaopeng Avenue, high tech Zone, Chengdu, Sichuan Province

Applicant before: VANTRON TECHNOLOGY, Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant