iosm devlink 支持¶
本文档描述了 iosm
设备驱动程序实现的 devlink 功能。
参数¶
iosm
驱动程序实现了以下特定于驱动程序的参数。
名称 |
类型 |
模式 |
描述 |
|
u8 |
运行时 |
erase_full_flash 参数用于检查在固件刷写期间是否需要对设备进行完全擦除。如果设置,将向设备发送完全 NAND 擦除命令。默认情况下,仅启用条件擦除支持。 |
闪存更新¶
iosm
驱动程序使用 devlink-flash
接口实现对闪存更新的支持。
它支持使用包含引导加载程序映像和其他调制解调器软件映像的组合闪存映像更新设备闪存。
驱动程序使用 DEVLINK_SUPPORT_FLASH_UPDATE_COMPONENT 来识别用户空间应用程序请求刷写的固件映像类型。支持的固件映像类型。
名称 |
描述 |
|
主签名映像 |
|
外部引导加载程序 |
|
调制解调器软件映像 |
PSI RAM 和 EBL 是 RAM 映像,当设备处于 BOOT ROM 阶段时,会将其注入到设备中。一旦成功,实际的调制解调器固件映像将被刷写到设备中。调制解调器软件映像包含多个文件,每个文件都包含一个安全 bin 文件和至少一个 Loadmap/Region 文件。为了刷写这些文件,适当的命令会与刷写所需的数据一起发送到调制解调器设备。诸如区域计数和每个区域的地址之类的数据必须使用 devlink param 命令传递给驱动程序。
如果设备在固件刷写之前必须完全擦除,则用户应用程序需要使用 devlink param 命令设置 erase_full_flash 参数。默认情况下,支持条件擦除功能。
闪存命令:¶
1) 当调制解调器处于 Boot 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>
刷写 Loadmap/Region 文件
$ 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