天天看點

如何申請并使用 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

  要消除該警告,可能需要運作類似如下的指令:

make clean
touch -r *
make      

主要功能

  eepromARMtool 提供如下功能:

  (需要注意的是,執行 eepromARMtool 需要 root 權限。)

(1)顯示支援的LAN控制器

  顯示目前系統上支援的 LAN 控制器清單,并且會以 PCI 總線的順序進行枚舉。顯示的資訊包括 LAN 控制器的 bus、device 和 function,同時也會顯示 LAN 控制器的類型,以及是否包含 iNVM 和 NVM。

  指令格式:

# ./eepromARMtool      
如何申請并使用 eepromARMtool 工具

(2)讀NVM

  讀取使用者指定的NVM中的内容,并将其寫到目前目錄的一個檔案中。

  指令格式:

# ./eepromARMtool –dump –NIC=x      

  字母x代表你要查詢的NIC編号。在執行指令的目錄下,會生成一個output檔案,檔案名的格式為​

​<silicon>NIC<x>.otp​

​​。其中​

​<silicon>​

​​是晶片類型(可以是I210、I211、82574),​

​<x>​

​​是上面指令中使用者指定的NIC編号,如果目前系統隻有一個,則​

​<x>​

​會忽略。

如何申請并使用 eepromARMtool 工具

(3)寫NVM。

  将一個指定的image檔案編寫到一個指定的LAN控制器,NIC編号和image檔案名又使用者通過指令來提供。

  指令格式:

# ./eepromARMtool –write –NIC=x –f=<filename>      
如何申請并使用 eepromARMtool 工具

  我這裡用的檔案是上一步導出來的檔案,也就是 I210NIC.otp,其部分内容如下圖所示,其中前面 3 個字表示的是 MAC 位址。

(4)測試NVM

繼續閱讀