Logo

Linux 内核

6.13.0-rc6

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 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 是 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

  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. 刷写 Loadmap/Region 文件

$ 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 驱动 | 页面来源