微知-Mellanox网卡如何查看flash分区?使用的flash厂商?如何读取固定地址内容?flint -d 06:00.0 hw query,flint -d 06:00.0 v)

背景

flint是Mellanox网卡的flash管理软件,全称就是flash interface。本文主要介绍与他相关的2个查看全局flash信息的功能。尤其是查看类似flash分区,可以看到平时比如mlxconfig mstdump等这些信息采集的源头。

命令

# 查看flash大小等信息
flint -d 06:00.0 hw query

# 检验flash版本等信息,可以看到image烧录到flash的情况和分区
flint -d 06:00.0 v

# 读取某个flash 指定起始地址和size
flint -d 6:00.0 rb 0x01f70000 0x000200 1.log

命令说明:
在这里插入图片描述

在这里插入图片描述

部分信息

  • 可以通过hw query看到大小是0x2000000,也就是32M
  • 可以通过v的verify看到地址空间从/0x00000000 到 0x01ffffff
  • 部分关键分区
    • /0x00001000-0x00004b8f (0x003b90)/ (BOOT2) - OK
    • /0x00633780-0x0063427f (0x000b00)/ (FW_MAIN_CFG) - OK FW主要配置,估计mlxconfig配置的信息就是存储在这里的
    • /0x00634280-0x006347bf (0x000540)/ (FW_BOOT_CFG) - OK FW启动配置
    • /0x00635a00-0x00635fff (0x000600)/ (HW_BOOT_CFG) - OK 硬件启动配置
    • /0x00719380-0x00719dd7 (0x000a58)/ (DBG_FW_INI) - OK
    • /0x00719e00-0x00719e07 (0x000008)/ (DBG_FW_PARAMS) - OK
    • /0x01f00000-0x01f1ffff (0x020000)/ (FW_NV_LOG) - CRC NV的日志信息,这里估计有很大帮助
    • /0x01f70000-0x01f701ff (0x000200)/ (DEV_INFO) - OK 设备信息

实战数据

[root@one ~]# flint -d 06:00.0 hw query
HW Info:
  HwDevId                 532
  HwRevId                 0x1
Flash Info:
  Type                    MX25Lxxx
  TotalSize               0x2000000
  Banks                   0x1
  SectorSize              0x1000
  WriteBlockSize          0x80
  CmdSet                  0x80
  JEDEC_ID                0x1920c2
可以看到是按照4K的sector管理,写入block的大小是 128bits。
管理这里的4K可以在mflash的开源代码看到:
typedef enum
{
   
   
    FSS_4KB = 0x1000,
    FSS_64KB = 0x10000
} Flash_Sector_Size_t;
https://github.com/Mellanox/mstflint/blob/master/mflash/mflash_types.h


[root@one ~]# flint -d 06:00.0 v

FS4 failsafe image

     /0x00000018-0x0000001f (0x000008)/ (HW_POINTERS) - OK
     /0x00000020-0x00000027 (0x000008)/ (HW_POINTERS) - OK
     /0x00000028-0x0000002f (0x000008)/ (HW_POINTERS) - OK
     /0x00000030-0x00000037 (0x000008)/ (HW_POINTERS) - OK
     /0x00000038-0x0000003f (0x000008)/ (HW_POINTERS) - OK
     /0x00000040-0x00000047 (0x000008)/ (HW_POINTERS) - OK
     /0x00000048-0x0000004f (0x000008)/ (HW_POINTERS) - OK
     /0x00000050-0x00000057 (0x000008)/ (HW_POINTERS) - OK
     /0x00000058-0x0000005f (0x000008)/ (HW_POINTERS) - OK
     /0x00000060-0x00000067 (0x000008)/ (HW_POINTERS) - OK
     /0x00000068-0x0000006f (0x000008)/ (HW_POINTERS) - OK
     /0x00000070-0x00000077 (0x000008)/ (HW_POINTERS) - OK
     /0x00000078-0x0000007f (0x000008)/ (HW_POINTERS) - OK
     /0x00000080-0x00000087 (0x000008)/ (HW_POINTERS) - OK
     /0x00000088-0x0000008f (0x000008)/ 
### 修改 Mellanox 网卡链路类型 Mellanox 网卡支持通过 `mlxconfig` 工具修改链路类型,例如从以太网切换为 InfiniBand 或 RoCE 模式。此操作通常需要访问设备的配置参数并进行适当的更改。 在执行此操作前,确保系统中已安装 Mellanox OFED(MLNX_OFED),并且 `mlxconfig` 工具可用。Mellanox 网卡的链路类型可以通过访问设备的 PCI 配置空间进行修改,通常涉及的设备路径为 `/dev/mst/` 下的某个条目,例如 `mt4115_pciconf0` [^1]。 要修改链路类型,请使用以下命令: ```bash mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE=<new_link_type> ``` 其中 `<new_link_type>` 应替换为所需的链路类型值。链路类型的具体数值取决于硬件规格和支持的功能。例如,设置链路类型为 RoCE 可能需要特定的数值代码。 在进行此类更改之前,建议备份当前的配置信息,以便在需要时恢复。可以通过以下命令获取当前的配置详情: ```bash mlxconfig -d /dev/mst/mt4115_pciconf0 q ``` 此命令将显示当前网卡的固件配置信息,包括当前的链路类型设置。 需要注意的是,在修改链路类型之前,应确保所使用Mellanox 网卡支持目标链路类型,并且所有相关的硬件和软件环境都兼容新的配置。此外,某些配置更改可能需要重启系统才能生效,并且在生产环境中进行此类更改时应当格外小心,以免影响网络连接和服务稳定性 [^1]。 ### 示例脚本 以下脚本可用于查询当前的链路类型并尝试更改它: ```bash #!/bin/bash # 查询当前链路类型 echo "当前链路类型信息:" mlxconfig -d /dev/mst/mt4115_pciconf0 q | grep "LINK_TYPE" # 修改链路类型(示例值,实际使用时请替换为正确的值) NEW_LINK_TYPE=2 # 假设2代表RoCE模式 echo "尝试修改链路类型为 RoCE..." mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE=$NEW_LINK_TYPE ``` ### 注意事项 - 修改链路类型可能需要特定的权限,确保执行命令的用户具有足够的权限。 - 某些更改可能需要重新启动系统才能生效。 - 在执行任何更改之前,确保了解更改链路类型对现有网络配置的影响。 - 固件更新操作需谨慎,避免导致网卡无法正常工作 [^1]。 ---
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值