iosm devlink 支援¶
本文件描述了由 iosm 裝置驅動程式實現的 devlink 功能。
引數¶
iosm 驅動程式實現了以下驅動程式特定引數。
名稱 |
型別 |
模式 |
描述 |
|
u8 |
執行時 |
erase_full_flash 引數用於檢查在韌體刷寫過程中裝置是否需要完全擦除。如果設定,將向裝置傳送完整的 NAND 擦除命令。預設情況下,僅啟用條件擦除支援。 |
快閃記憶體更新¶
iosm 驅動程式透過使用 devlink-flash 介面實現快閃記憶體更新支援。
它支援使用包含引導載入程式映像和其他調變解調器軟體映像的組合快閃記憶體映像來更新裝置快閃記憶體。
驅動程式使用 DEVLINK_SUPPORT_FLASH_UPDATE_COMPONENT 來識別使用者空間應用程式請求的需要刷寫的韌體映像型別。支援的韌體映像型別:
名稱 |
描述 |
|
主簽名映像 |
|
外部引導載入程式 |
|
調變解調器軟體映像 |
PSI RAM 和 EBL 是在裝置處於引導 ROM 階段時注入裝置的 RAM 映像。成功注入後,實際的調變解調器韌體映像將被刷寫到裝置中。調變解調器軟體映像包含多個檔案,每個檔案包含一個安全 bin 檔案和至少一個載入對映/區域檔案。為了刷寫這些檔案,需要將適當的命令連同刷寫所需的資料傳送到調變解調器裝置。區域數量和每個區域地址等資料必須使用 devlink param 命令傳遞給驅動程式。
如果在韌體刷寫之前裝置需要完全擦除,使用者應用程式需要使用 devlink param 命令設定 erase_full_flash 引數。預設情況下,支援條件擦除功能。
快閃記憶體命令:¶
1) 當調變解調器處於引導 ROM 階段時,使用者可以使用以下命令透過 devlink flash 命令注入 PSI RAM 映像。
$ devlink dev flash pci/0000:02:00.0 file <PSI_RAM_File_name>
2) 如果使用者需要進行完全擦除,需要執行以下命令來設定完全快閃記憶體擦除引數(僅在需要完全擦除時設定)。
$ devlink dev param set pci/0000:02:00.0 name erase_full_flash value true cmode runtime
在調變解調器處於 PSI 階段後注入 EBL。
$ devlink dev flash pci/0000:02:00.0 file <EBL_File_name>
4) EBL 成功注入後,將進行實際的韌體刷寫。以下是用於每個韌體映像的命令序列。
刷寫安全 bin 檔案。
$ devlink dev flash pci/0000:02:00.0 file <Secure_bin_file_name>
刷寫載入對映/區域檔案
$ devlink dev flash pci/0000:02:00.0 file <Load_map_file_name>
區域¶
iosm 驅動程式支援轉儲核心轉儲日誌。
如果韌體遇到異常,驅動程式將建立一個快照。以下區域用於訪問裝置內部資料。
名稱 |
描述 |
|
作為此區域一部分記錄的異常詳細資訊摘要。 |
|
此區域包含裝置中發生的異常詳細資訊(RAM 轉儲)。 |
|
此區域包含與調變解調器 CDD 驅動程式相關的日誌。 |
|
此區域包含 eeprom 日誌。 |
|
此區域包含當前引導載入程式日誌例項。 |
|
此區域包含先前的引導載入程式日誌例項。 |
區域命令¶
$ devlink region show
$ devlink region new pci/0000:02:00.0/report.json
$ devlink region dump pci/0000:02:00.0/report.json snapshot 0
$ devlink region del pci/0000:02:00.0/report.json snapshot 0
$ devlink region new pci/0000:02:00.0/coredump.fcd
$ devlink region dump pci/0000:02:00.0/coredump.fcd snapshot 1
$ devlink region del pci/0000:02:00.0/coredump.fcd snapshot 1
$ devlink region new pci/0000:02:00.0/cdd.log
$ devlink region dump pci/0000:02:00.0/cdd.log snapshot 2
$ devlink region del pci/0000:02:00.0/cdd.log snapshot 2
$ devlink region new pci/0000:02:00.0/eeprom.bin
$ devlink region dump pci/0000:02:00.0/eeprom.bin snapshot 3
$ devlink region del pci/0000:02:00.0/eeprom.bin snapshot 3
$ devlink region new pci/0000:02:00.0/bootcore_trace.bin
$ devlink region dump pci/0000:02:00.0/bootcore_trace.bin snapshot 4
$ devlink region del pci/0000:02:00.0/bootcore_trace.bin snapshot 4
$ devlink region new pci/0000:02:00.0/bootcore_prev_trace.bin
$ devlink region dump pci/0000:02:00.0/bootcore_prev_trace.bin snapshot 5
$ devlink region del pci/0000:02:00.0/bootcore_prev_trace.bin snapshot 5