Logo

Linux 内核

6.16.0-rc4

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 API
  • 驱动 API
  • 子系统
    • 核心子系统
    • 人机接口
    • 网络接口
      • 网络
      • NetLabel
      • InfiniBand
      • ISDN
      • MHI
    • 存储接口
    • 其他子系统
  • 锁定
  • 许可规则
  • 编写文档
  • 开发工具
  • 测试指南
  • 开发指南
  • 跟踪
  • 故障注入
  • 热补丁
  • Rust
  • 管理
  • 构建系统
  • 报告问题
  • 用户空间工具
  • 用户空间 API
  • 固件
  • 固件和设备树
  • CPU 架构
  • 未分类文档
  • 翻译

本页

  • 显示源文件

iosm devlink 支持¶

本文档描述了由 iosm 设备驱动程序实现的 devlink 功能。

参数¶

iosm 驱动程序实现了以下驱动程序特定参数。

已实现的驱动程序特定参数¶

名称

类型

模式

描述

erase_full_flash

u8

运行时

erase_full_flash 参数用于检查在固件刷写过程中设备是否需要完全擦除。如果设置,将向设备发送完整的 NAND 擦除命令。默认情况下,仅启用条件擦除支持。

闪存更新¶

iosm 驱动程序通过使用 devlink-flash 接口实现闪存更新支持。

它支持使用包含引导加载程序映像和其他调制解调器软件映像的组合闪存映像来更新设备闪存。

驱动程序使用 DEVLINK_SUPPORT_FLASH_UPDATE_COMPONENT 来识别用户空间应用程序请求的需要刷写的固件映像类型。支持的固件映像类型:

固件映像类型¶

名称

描述

PSI RAM

主签名映像

EBL

外部引导加载程序

FLS

调制解调器软件映像

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

  1. 在调制解调器处于 PSI 阶段后注入 EBL。

$ devlink dev flash pci/0000:02:00.0 file <EBL_File_name>

4) EBL 成功注入后,将进行实际的固件刷写。以下是用于每个固件映像的命令序列。

  1. 刷写安全 bin 文件。

$ devlink dev flash pci/0000:02:00.0 file <Secure_bin_file_name>

  1. 刷写加载映射/区域文件

$ devlink dev flash pci/0000:02:00.0 file <Load_map_file_name>

区域¶

iosm 驱动程序支持转储核心转储日志。

如果固件遇到异常,驱动程序将创建一个快照。以下区域用于访问设备内部数据。

已实现的区域¶

名称

描述

report.json

作为此区域一部分记录的异常详细信息摘要。

coredump.fcd

此区域包含设备中发生的异常详细信息(RAM 转储)。

cdd.log

此区域包含与调制解调器 CDD 驱动程序相关的日志。

eeprom.bin

此区域包含 eeprom 日志。

bootcore_trace.bin

此区域包含当前引导加载程序日志实例。

bootcore_prev_trace.bin

此区域包含先前的引导加载程序日志实例。

区域命令¶

$ 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

©内核开发社区。 | 由 Sphinx 5.3.0 & Alabaster 0.7.16 提供技术支持 | 页面源文件