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