CN111078237B - 同步方法 - Google Patents
同步方法 Download PDFInfo
- Publication number
- CN111078237B CN111078237B CN201811220752.3A CN201811220752A CN111078237B CN 111078237 B CN111078237 B CN 111078237B CN 201811220752 A CN201811220752 A CN 201811220752A CN 111078237 B CN111078237 B CN 111078237B
- Authority
- CN
- China
- Prior art keywords
- parameter data
- bios
- data stored
- storage unit
- equal
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种同步方法,藉由一基本输入输出系统根据所储存的一参数数据是否被还原成一默认值、所储存的一特定旗标的逻辑值、及与一储存单元所储存的一参数数据是否一致,判断该基本输入输出系统及该储存单元所分别储存的该参数数据何者为较新的版本,并决定将该基本输入输出系统所储存的该参数数据更新储存至该储存单元,或将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,而能达到更具生产或使用弹性地双向更新该参数数据的目的。
Description
【技术领域】
本发明是有关于一种同步方法,特别是指一种双向更新机板信息与产品信息的同步方法。
【背景技术】
在计算机服务器的产品中,普遍都包含一基本输入输出系统(Basic Input andOutput System;BIOS)。该基本输入输出系统储存有相关于该计算机服务器的产品信息及机板信息,且该等信息支持SMBIOS(System Management BIOS)规范。此外,该计算机服务器的主板上,通常有设置一储存单元,例如是一个电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory;EEPROM),也就是一个现场可更换单元(BMC field-replaceable unit, BMC FRU),该储存单元也储存有相关于该计算机服务器的产品信息及机板信息。为了保持该基本输入输出系统及该储存单元所分别储存的产品信息及机板信息的一致与同步,以避免发生信息冲突,才能够让该计算机服务器顺利地运作。因此,在习知的技术中所采用的同步方法是先藉由一现场可更换单元工具(BMCFRU tool)将更新的产品信息及机板信息写入该储存单元,再藉由开机过程中将该储存单元所储存的产品信息及机板信息更新至该基本输入输出系统,也就是属于一种单向的更新方法。因此,是否具有其他更具弹性的信息更新方式便成为一个待解决的问题。
【发明内容】
本发明要解决的技术问题是提供一种可以藉由基本输入输出系统或储存单元更新机板与产品信息的同步方法。
为解决上述技术问题,本发明同步方法,适用于一基本输入输出系统、一基板管理控制器、及一储存单元,该基板管理控制器电连接该基本输入输出系统及该储存单元,该基本输入输出系统经由该基板管理控制器存取该储存单元。该同步方法包含下列步骤(a)~(d)。
于步骤(a),藉由该基本输入输出系统判断该基本输入输出系统所储存的一参数数据是否等于该储存单元所储存的一参数数据。
于步骤(b),藉由该基本输入输出系统判断该基本输入输出系统所储存的该参数数据是否等于一默认值。
于步骤(c),藉由该基本输入输出系统判断该基本输入输出系统所储存的一特定旗标是否等于一第一逻辑值。
于步骤(d),藉由该基本输入输出系统根据步骤(a)、(b)、(c)的结果,决定将该基本输入输出系统所储存的该参数数据更新储存至该储存单元,或将该储存单元所储存的该参数数据更新储存至该基本输入输出系统。
优选地,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据等于该默认值时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为一第二逻辑值。
优选地,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标等于该第一逻辑值时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为该第二逻辑值。
优选地,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标不等于该第一逻辑值时,该基本输入输出系统将该基本输入输出系统所储存的该参数数据更新储存至该储存单元。
优选地,在步骤(a)中,该基本输入输出系统所储存的该参数数据支持SMBIOS(System Management BIOS)规范,该基本输入输出系统所储存的该参数数据及该储存单元所储存的该参数数据都包括一产品制造商名称、一产品名称、一产品序号、一机板制造商名称、一机板名称、及一机板序号。
优选地,在步骤(b)中,该默认值相关于该基本输入输出系统在出厂时所作的设定,当该基本输入输出系统被重置清空时,该基本输入输出系统所储存的该参数数据等于该默认值。
优选地,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据等于该默认值时,或者,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标等于该第一逻辑值时,该基板管理控制器判断由该储存单元所读取的该参数数据是否正确。
当该基板管理控制器判断该参数数据正确时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为该第二逻辑值。当该基板管理控制器判断该参数数据不正确时,该基本输入输出系统不会将该储存单元所储存的该参数数据更新储存至该基本输入输出系统。
相较于现有技术,本发明藉由该基本输入输出系统根据所储存的该参数数据是否被还原成该默认值、该特定旗标的逻辑值、及与该储存单元的该参数数据是否一致,判断该基本输入输出系统及该储存单元所分别储存的该参数数据何者为较新的版本,并将储存较新版本之一者的内容更新至另外一者,而能达成更具生产或使用弹性地双向更新该参数数据。
【附图说明】
本发明的其他的特征及功效,将于参照图式的实施方式中清楚地呈现,其中:
图1是一方块图,说明本发明同步方法所适用的一基本输入输出系统、一基板管理控制器、及一储存单元;及
图2是一流程图,说明本发明同步方法的一实施例。
【具体实施方式】
在本发明被详细描述之前,应当注意在以下的说明内容中,类似的组件是以相同的编号来表示。
参阅图1,本发明同步方法适用于一计算机系统,该计算机系统例如是一种计算机服务器,并包含一基本输入输出系统(Basic Input and Output System;BIOS)1、一基板管理控制器(Baseboard Management Controller;BMC)2、及一储存单元3。该储存单元3例如是一个电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory;EEPROM),也就是一个与该基板管理控制器2电连接的现场可更换单元(BMC field-replaceable unit, BMC FRU)。该基板管理控制器2电连接该基本输入输出系统1及该储存单元3,也就是说,该基本输入输出系统1是藉由该基板管理控制器2存取该储存单元3,而能获知或修改该储存单元3所储存的内容。
该基本输入输出系统1储存一参数数据,该参数数据支持SMBIOS(SystemManagement BIOS)规范。该储存单元3也储存另一参数数据。该基本输入输出系统1所储存的该参数数据及该储存单元3所储存的该参数数据都包括一产品制造商名称(ProductManufacture Name)、一产品名称(Product Name)、一产品序号(Product Serial Number)、一机板制造商名称(Board Manufacture Name)、一机板名称(Board Name)、及一机板序号(Board Serial Number)。
该基本输入输出系统1可以藉由一种桌面管理接口(Desktop ManagementInterface; DMI)工具(DMI Tool)修改或更新其所储存的该参数数据。此外,当该基本输入输出系统1在出厂时,也就是芯片被制造完成且尚未组装于该计算机系统的一机板时,该基本输入输出系统1所储存的该参数数据会等于一默认值,而当该基本输入输出系统1被重置清空(Flash)时,该参数数据也会被还原或回复至该默认值,也就是出厂时所作的设定。另外要补充说明的是:这里所指的一默认值,是表示一组默认值,并不一定要是单一个数值。
再参阅图2,本发明同步方法的一实施例,包含步骤S1~S7。具体地说,该同步方法是该基本输入输出系统1所执行的一程序代码(BIOS code),该基本输入输出系统1在该计算机系统每次开机执行时,执行该程序代码而实施该同步方法。
于步骤S1,开始。
于步骤S2,藉由该基本输入输出系统1判断该基本输入输出系统1所储存的该参数数据是否等于该储存单元3所储存的该参数数据。当该二个参数数据相等时,则执行步骤S7,而当该二个参数数据不相等时,执行步骤SS3。
于步骤S3,藉由该基本输入输出系统1判断该基本输入输出系统1所储存的该参数数据是否等于该默认值。当判断相等时,则执行步骤S6,而当判断不相等时,则执行步骤S4。
于步骤S4,藉由该基本输入输出系统1判断该基本输入输出系统1所储存的一特定旗标(Flag)是否等于一第一逻辑值。当该特定旗标的逻辑值等于该第一逻辑值时,则执行步骤S6,而当该特定旗标的逻辑值等于一第二逻辑值时,则执行步骤S5。该第一逻辑值及该第二逻辑值例如是等于逻辑0及逻辑1之其中一者与其中另一者。
于步骤S5,藉由该基本输入输出系统1将该基本输入输出系统1所储存的该参数数据更新储存至该储存单元3,再执行步骤S7。
于步骤S6,藉由该基本输入输出系统1将该储存单元3所储存的该参数数据更新储存至该基本输入输出系统1,并将该特定旗标的逻辑值改为该第二逻辑值,再执行步骤S7。
于步骤S7,结束。
由步骤S2~S4可知,该基本输入输出系统1是根据所储存的该参数数据是否被还原成该默认值、该特定旗标的逻辑值、及与该储存单元3的该参数数据是否一致,决定将该基本输入输出系统1所储存的该参数数据更新储存至该储存单元3,或将该储存单元3所储存的该参数数据更新储存至该基本输入输出系统1。
当该基本输入输出系统1所储存的该参数数据被清空,而等于该默认值时,藉由步骤S2、S3、S6的实施,该基本输入输出系统1判断其所储存的该参数数据不等于该储存单元3所储存的该参数数据,且其所储存的该参数数据等于该默认值,则该基本输入输出系统1获知其本身所储存的该参数数据的版本较旧(因为已被重置清空),且获知该储存单元3所储存的该参数数据的版本较新,因而将该参数数据更新储存至该基本输入输出系统1中,并更改该特定旗标的逻辑值,以标记由该储存单元3至该基本输入输出系统1的更新行为已经执行。
当该储存单元3所储存的该参数数据的版本较新时,该特定旗标的逻辑值也会被用户预先设定为该第一逻辑值,以指示该基本输入输出系统1所储存的该参数数据的版本较旧,并藉由步骤S2、S3、S4、S6的实施,该基本输入输出系统1判断其所储存的该参数数据不等于该储存单元3所储存的该参数数据,且其所储存的该参数数据不等于该默认值,且其所储存的该特定旗标等于该第一逻辑值,则该基本输入输出系统1获知该储存单元3所储存的该参数数据的版本较新,同样地,由该储存单元3作更新并更改该特定旗标的逻辑值。
当该储存单元3所储存的该参数数据的版本较旧时,该特定旗标的逻辑值也会被用户预先设定为该第二逻辑值,以指示该基本输入输出系统1所储存的该参数数据的版本较新,并藉由步骤S2、S3、S4、S5的实施,该基本输入输出系统1判断其所储存的该参数数据不等于该储存单元3所储存的该参数数据,且其所储存的该参数数据不等于该默认值,且其所储存的该特定旗标不等于该第一逻辑值,则该基本输入输出系统1获知其所储存的该参数数据的版本较新,因而将其所储存的该参数数据更新储存至该储存单元3中。
另外要补充说明的是:在本实施例中,当步骤S3在该基本输入输出系统1判断相等时,或者,当步骤S4在该基本输入输出系统1判断该特定旗标的逻辑值等于该第一逻辑值时,则执行步骤S6。而在其他实施例中,当步骤S3在该基本输入输出系统1判断相等时,或者,当步骤S4在该基本输入输出系统1判断该特定旗标的逻辑值等于该第一逻辑值时,该基板管理控制器2判断由该储存单元3所读取的该参数数据是否正确。当该基板管理控制器2判断该参数数据正确时,才执行步骤S6。而当该基板管理控制器2判断该参数数据不正确时,则不执行步骤S6。也就是说,该基本输入输出系统1还会参考该基本管理控制器2所回复的数据正确性,来决定是否更新所储存的该参数数据。
综上所述,藉由该基本输入输出系统1根据所储存的该参数数据是否被还原成该默认值、该特定旗标的逻辑值、及与该储存单元3的该参数数据是否一致,判断该基本输入输出系统1及该储存单元3所分别储存的该参数数据何者为较新的版本,并作对应的更新储存。更详细地说,使用者可以先藉由桌面管理接口工具(DMI tool)在操作系统(OS)内更新该基本输入输出系统1所储存的该参数数据,再藉由本发明的实施,在开机过程中同步更新该储存单元3(如BMC FRU)所储存的该参数数据。或者,也可以先利用现场可更换单元工具(BMC FRU tool)更新该储存单元3(如BMC FRU)所储存的该参数数据,再藉由本发明的实施,在开机过程中同步更新该基本输入输出系统1所储存的该参数数据。因此,本发明提供一种弹性的同步方法,让使用者不论使用哪一种工具,即不论选择更新BIOS或BMC FRU之其中任一者,都能达到两者同步更新的目的。藉此,不但使得在该计算机系统于制造过程中,工厂可以在生产机板时就先设计新版的参数数据,或者,在计算机系统于使用过程中,因为损坏或更新的缘故,而置换该储存单元3或修改其所储存的该参数数据,都能利用本发明同步方法达到正确地双向同步更新,而更具有生产或使用上的弹性,故确实能达成本发明的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种同步方法,适用于一基本输入输出系统、一基板管理控制器、及一储存单元,该基板管理控制器电连接该基本输入输出系统及该储存单元,该基本输入输出系统经由该基板管理控制器存取该储存单元,其特征在于,该同步方法包含下列步骤:
(a)藉由该基本输入输出系统判断该基本输入输出系统所储存的一参数数据是否等于该储存单元所储存的一参数数据;
(b)藉由该基本输入输出系统判断该基本输入输出系统所储存的该参数数据是否等于一默认值;
(c)藉由该基本输入输出系统判断该基本输入输出系统所储存的一特定旗标是否等于一第一逻辑值;及
(d)藉由该基本输入输出系统根据步骤(a)、(b)、(c)的结果,决定将该基本输入输出系统所储存的该参数数据更新储存至该储存单元,或将该储存单元所储存的该参数数据更新储存至该基本输入输出系统。
2.如权利要求1所述的同步方法,其特征在于,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据等于该默认值时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为一第二逻辑值。
3.如权利要求2所述的同步方法,其特征在于,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标等于该第一逻辑值时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为该第二逻辑值。
4.如权利要求3所述的同步方法,其特征在于,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标不等于该第一逻辑值时,该基本输入输出系统将该基本输入输出系统所储存的该参数数据更新储存至该储存单元。
5.如权利要求4所述的同步方法,其特征在于,在步骤(a)中,该基本输入输出系统所储存的该参数数据支持SMBIOS(System Management BIOS)规范,该基本输入输出系统所储存的该参数数据及该储存单元所储存的该参数数据都包括一产品制造商名称、一产品名称、一产品序号、一机板制造商名称、一机板名称、及一机板序号。
6.如权利要求4所述的同步方法,其特征在于,在步骤(b)中,该默认值相关于该基本输入输出系统在出厂时所作的设定,当该基本输入输出系统被重置清空时,该基本输入输出系统所储存的该参数数据等于该默认值。
7.如权利要求4所述的同步方法,其特征在于,在步骤(d)中,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据等于该默认值时,或者,当该基本输入输出系统判断该基本输入输出系统所储存的该参数数据不等于该储存单元所储存的该参数数据,且该基本输入输出系统所储存的该参数数据不等于该默认值,且该基本输入输出系统所储存的该特定旗标等于该第一逻辑值时,该基板管理控制器判断由该储存单元所读取的该参数数据是否正确,
当该基板管理控制器判断该参数数据正确时,该基本输入输出系统将该储存单元所储存的该参数数据更新储存至该基本输入输出系统,并将该特定旗标的逻辑值改为该第二逻辑值,
当该基板管理控制器判断该参数数据不正确时,该基本输入输出系统不会将该储存单元所储存的该参数数据更新储存至该基本输入输出系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811220752.3A CN111078237B (zh) | 2018-10-19 | 2018-10-19 | 同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811220752.3A CN111078237B (zh) | 2018-10-19 | 2018-10-19 | 同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078237A CN111078237A (zh) | 2020-04-28 |
CN111078237B true CN111078237B (zh) | 2023-05-09 |
Family
ID=70309039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811220752.3A Active CN111078237B (zh) | 2018-10-19 | 2018-10-19 | 同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078237B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201021014A (en) * | 2008-11-25 | 2010-06-01 | Tatung Co | System and method for fully automatically aligning quality of image |
CN103793238A (zh) * | 2012-10-31 | 2014-05-14 | 英业达科技有限公司 | 机柜与其同时更新多个基本输入输出系统的方法 |
CN105786462A (zh) * | 2014-12-24 | 2016-07-20 | 昆达电脑科技(昆山)有限公司 | 开机方法 |
CN107491322A (zh) * | 2017-07-04 | 2017-12-19 | 上海斐讯数据通信技术有限公司 | 一种参数储存的控制方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060224874A1 (en) * | 2005-03-30 | 2006-10-05 | Inventec Corporation | Method for updating system management basic input output system (SMBIOS) data |
-
2018
- 2018-10-19 CN CN201811220752.3A patent/CN111078237B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201021014A (en) * | 2008-11-25 | 2010-06-01 | Tatung Co | System and method for fully automatically aligning quality of image |
CN103793238A (zh) * | 2012-10-31 | 2014-05-14 | 英业达科技有限公司 | 机柜与其同时更新多个基本输入输出系统的方法 |
CN105786462A (zh) * | 2014-12-24 | 2016-07-20 | 昆达电脑科技(昆山)有限公司 | 开机方法 |
CN107491322A (zh) * | 2017-07-04 | 2017-12-19 | 上海斐讯数据通信技术有限公司 | 一种参数储存的控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
控制器可变参数默认值的初始化方法;杨丽珍;王礼建;;轻型汽车技术(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111078237A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10162646B2 (en) | System for programmably configuring a motherboard | |
US9298470B2 (en) | Method and apparatus for selecting bios program for a processor | |
US10642623B1 (en) | Preserving firmware settings during firmware updates | |
CN105808270A (zh) | 固件变量更新方法 | |
US20110320794A1 (en) | Flash System And Method For Updating The Flash System | |
TW201913369A (zh) | 具有雙韌體儲存空間之伺服器及其韌體更新方法 | |
TWI685793B (zh) | 同步方法 | |
US9189351B2 (en) | Method of obtaining instruction for triggering function | |
CN102880478B (zh) | 软件更新方法 | |
US10691465B2 (en) | Method for synchronization of system management data | |
US11403113B2 (en) | Server with system setting data synchronization function | |
CN106484442B (zh) | 服务器系统及更新开机映像档的方法 | |
CN111078237B (zh) | 同步方法 | |
JP6582438B2 (ja) | 情報処理装置、システム設定方法、及び、コンピュータ・プログラム | |
US20080201572A1 (en) | Method and system for uniformizing product data embedded in a computer platform | |
CN108958823B (zh) | 修改基本输入输出系统设定值的方法 | |
CN117215656A (zh) | 基于Linux系统自适配车机芯片方法、装置、电子设备及车辆 | |
CN109684153B (zh) | 具有双韧体储存空间的服务器及其韧体更新方法 | |
US20050240830A1 (en) | Multiprocessor system, processor device | |
CN109684134B (zh) | 用于在多个设备间快速部署固件设定的方法及服务器 | |
CN113377425A (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN106548311B (zh) | 库存管理设定系统 | |
CN114879995B (zh) | 固件更新的方法和装置 | |
TWI530800B (zh) | 伺服器及查詢其部署狀態的方法 | |
TW201303728A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |