如何申请并使用 eepromARMtool 工具
由于種種原因,歷時多個工作日,終于拿到了eepromARMtool工具的源代碼,并且順利在產品上使用上了,特此記錄一下吧。
eepromARMtool 是什么
簡單來說,eepromARMtool 是 Intel 的一個針對 ARM 平臺的基于 libc 庫的可獨立運行于 Linux 命令行的工具,該工具提供了一種操作 LAN 控制器(可以是I210、I211、82574)的 NVM(非易失性存儲器)的途徑,包括 iNVM 和 Flash。其功能類似于 x86 平臺的 EEUpdate 和 LANConf 工具。
因為我們 ARM 平臺的項目中使用了 PCIe 接口的 LAN 控制器 i210,所以自然需要用到 eepromARMtool 工具,用于寫入 MAC 地址等參數到外部 Flash 上。
當然,即便目標平臺是 ARM,但我們仍然可以通過 EEUpdate 等工具在 x86 上寫好 Flash,或者是通過額外的燒寫器操作來完成這一步驟。只不過考慮成本以及操作的簡便性等因素,在 ARM Linux 平臺使用 eepromARMtool 來操作應該是比較合適的一種方案了。不幸的是,eepromARMtool 工具并不像 EEUpdate 那樣隨便獲得,所以我們就得向 Intel 申請啦 ~
如何申請 eepromARMtool
首先我們要注冊 Intel 的嵌入式社區(也常稱為 Resource & Design Center)賬號:
https://embedded.communities.intel.com/community/en
但是我們這樣注冊的話,得到的是 basic account,也就是基本用戶賬號,而要申請 eepromARMtool 的話,需要的是 privilege account,也就是特權用戶賬號。
因此強烈建議使用企業郵箱進行注冊,否則的話,可能會像我第一次申請那樣被無情地拒絕!然后,按照套路將 basic 賬號 upgrade 為 privilege 賬號。在這個升級過程需要填寫企業信息,如果您用的是企業郵箱,剛好您所在的企業已經在 Intel 中備案,那么恭喜您應該可以順利拿到想要的工具或資料,比如 eepromARMtool。剛好我們公司頭一次使用 i210 系列控制器 [捂臉],所以需要與 Intel 簽訂一份公司層面的 CNDA 保密協議,也即 Corporate Non-Disclosure Agreement。
由于我們是中國的企業,所以后續的操作會由相應的 Intel 中國銷售跟進,這里必須表揚一下 Intel 的效率真的很高,服務也十分專業!
好啦,這部分就說這么多,如果有什么不懂的千萬別找我,直接找 Intel 吧!
如何使用 eepromARMtool
編譯
使用交叉編譯環境(或者 ARM Linux 上有 gcc 也可以),解壓之后,進入 eepromARMtool 目錄,可以看到已經提供了 Makefile 文件,所以直接執行:
make 執行該命令可能會出現如下類似的警告:
make: warning: Clock skew detected. Your build may be incomplete
要消除該警告,可能需要運行類似如下的命令:
主要功能
eepromARMtool 提供如下功能:
(需要注意的是,執行 eepromARMtool 需要 root 權限。)
(1)顯示支持的LAN控制器
顯示當前系統上支持的 LAN 控制器列表,并且會以 PCI 總線的順序進行枚舉。顯示的信息包括 LAN 控制器的 bus、device 和 function,同時也會顯示 LAN 控制器的類型,以及是否包含 iNVM 和 NVM。
命令格式:
(2)讀NVM
讀取用戶指定的NVM中的內容,并將其寫到當前目錄的一個文件中。
命令格式:
字母x代表你要查詢的NIC編號。在執行命令的目錄下,會生成一個output文件,文件名的格式為<silicon>NIC<x>.otp。其中<silicon>是芯片類型(可以是I210、I211、82574),<x>是上面命令中用戶指定的NIC編號,如果當前系統只有一個,則<x>會忽略。
(3)寫NVM。
將一個指定的image文件編寫到一個指定的LAN控制器,NIC編號和image文件名又用戶通過命令來提供。
命令格式:
我這里用的文件是上一步導出來的文件,也就是 I210NIC.otp,其部分內容如下圖所示,其中前面 3 個字表示的是 MAC 地址。
(4)測試NVM
未實現。
總結
以上是生活随笔為你收集整理的如何申请并使用 eepromARMtool 工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python tkinter库之Canv
- 下一篇: 乐高ev3python教程_入门篇丨使用