当前位置: 首页 > news >正文

昇腾310i Pro固件说明

目录

 驱动和固件

驱动固件文件

firware固件

24.2版本对应的固件

驱动和固件共同文件

烧结到flash中的固件

总结

启动流程

固件关系猜测

启动关键信息

efuse

atu大小

GPU的bar

总结


 驱动和固件

以最新的25.2 对应的驱动和固件为例说明: 

驱动固件文件

firware固件

24.2版本对应的固件

驱动和固件共同文件

共同的文件,通过PCIE加载。

1) lpddr_mcu.bin Ascend310P_ddr.image"; size=202432 MCU  内存配置

2) lperika.bin Ascend310P_lowpwr.image"; size=132728 low power R52  电源管理

3) hisserika.bin Ascend310P_hsm.image"; size=128480 安全启动 R52

4) AS610_HBOOT2_UEFI.fd Ascend310P.fd"; size=1712400

Hboot2程序主要负责通过PCIe DMA从Host侧环境依次获取DTB、 kernel、initramfs、 TEE组件,并跳转kernel启动OS

烧结到flash中的固件

HBOOT1_a.bin

HBOOT1_b.bin

HiLinkFirmware.bin (这个固件在几个firmware.run中没啥变化)

Hboot1程序包括Hboot1a与Hboot1b, Hboot1a主要负责从Flash加载启动Hboot1b; Hboot1b程序主要负责通过PCIe DMA从Host侧环境加载启动HSM、 Hboot2等组件

配置 HISS 子系统 DMA 将 sram 中 Hilink FW 搬运到 3 个 macro 的 Hilink 的 sram 中;(DC 场景才有);

总结

1)很奇怪,昇腾打包的固件和驱动包里有一半是雷同的,内部组织混乱的很。

2)hislink这个固件基本不需要维护,我们走读了历史版本,没发现这个固件大小的变化。

3) 主要维护hboot1  、lp boot、 hboot2 以及内核部分。

启动流程

[1970-01-01-00:00:04.471950] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P_ddr.image"; size=1; flag=0x6666666666666666)

[1970-01-01-00:00:04.496680] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P_lowpwr.image"; size=1; flag=0x6666666666666666)

[2025-08-27-22:54:05.272155] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P_hsm.image"; size=1; flag=0x6666666666666666)

[2025-08-27-22:54:05.310835] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P.fd"; size=2; flag=0x6666666666666666)

[2025-08-27-22:54:05.358843] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P_dt.img"; size=2; flag=0x6666666666666666)

[2025-08-27-22:54:05.731665] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P.image"; size=27; flag=0x6666666666666666)

[2025-08-27-22:54:05.864849] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P.cpio.gz"; size=48; flag=0x7777777777777777)

[2025-08-27-22:54:05.969942] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P.cpio.gz"; size=43; flag=0x6666666666666666)

[2025-08-27-22:54:06.005214] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P_tee.bin"; size=2; flag=0x6666666666666666)

[2025-08-27-22:54:06.035371] [ascend] [drv_pcie] [INFO] [devdrv_load_file_copy 634] Notice BIOS to Load file. (dev_id=0; file_name="/usr/local/Ascend/driver/device/Ascend310P.crl"; size=1; flag=0x6666666666666666)

以下记录涉及到的镜像文件。有些镜像文件是在单独的MCU上运行的,表格顺序即为启动顺序。

run包文件安装后文件

HBOOT1_a.bin

HBOOT1_b.bin

烧结到flash中
lpddr_mcu.binAscend310P_ddr.image     内存配置
lperika.binAscend310P_lowpwr.image   电源 功率检测
hisserika.binAscend310P_hsm.image    安全启动
AS610_HBOOT2_UEFI.fdAscend310P.fd    UEFI
其他dts 内核 根文件系统等

固件关系猜测

启动关键信息

efuse

efuse0:0x0 efuse1:0x1800 aic:0x0 aiv:0x0 l3d:0x0 cluster:0x0

atu大小

flashFlag:0x0 barSizeFlag:0x5a barVersion:0x0 pcieVersion:0x0

BarSize:2.0GB

atuSize:2.0GB

通过前面3403 ATU的说明,我们可以看到3403 ATPU支持到4G+512M空间。

而310i pro默认只暴露出512M,而具体映射到哪块内存也没有接口可以获取。

GPU的bar

系统可以通过这个256MB的“窗口”,看到GPU显存的一小部分。而这个“窗口”可以动态地映射到GPU显存中的不同区域

总结

1) 虽然看起来 BAR可以配置,但其映射到NPU的内存的动态变化没有暴露出寄存器或者软件接口

2)了解其固件关系,利于硬件设计。

3)目前 将数据拷贝到NPU的源,只能是用户态分配接口或者acl分配接口,而驱动分配或者保留内存之类的源作为拷贝时,直接异常。

  昇腾在数据传输的功能实现场景实在太过单一,路途遥远。

http://www.xdnf.cn/news/1482625.html

相关文章:

  • Vue3中SCSS的使用指南
  • 数据结构与算法1 第一章 绪论
  • AI工具深度测评与选型指南 - AI工具测评框架及方法论
  • Gitea:轻量级的自托管Git服务
  • 【左程云算法06】链表入门练习合集
  • GDAL 读取影像元数据
  • SQL-窗口函数
  • 单词分析与助记之数据建表(以production为例)
  • 鸡兔同笼问题求解
  • 手撕C++ list容器:从节点到完整双向链表实现
  • Ubuntu 22.04.1上安装MySQL 8.0及设置root密码
  • 贪心算法应用:柔性制造系统(FMS)刀具分配问题详解
  • 深度拆解OpenHarmony NFC服务:从开关到卡模拟掌握近场通信技术
  • 雷卯针对米尔MYC-YF13X开发板防雷防静电方案
  • vspere 服务的部署介绍
  • panther X2 armbian24 安装宝塔(bt)面板注意事项
  • 【完整源码+数据集+部署教程】苹果实例分割检测系统源码和数据集:改进yolo11-AggregatedAtt
  • 004-Dephi数据类型
  • c++之基础B(双重循环)(第五课)
  • idf-esp32 | 打印task列表
  • [水果目标检测5]AppleYOLO:基于深度OC-SORT的改进YOLOv8苹果产量估计方法
  • 深入解析达梦数据库核心技术:检查点、redo、undo、MVCC与内存缓存刷盘
  • ​抢占AI搜索新入口:2025年五大专业GEO优化服务商解析
  • Kafka面试精讲 Day 9:零拷贝技术与高性能IO
  • Python+DRVT 从外部调用 Revit:批量创建梁(2)
  • 【PCIe EP 设备入门学习专栏 -- 8.1.1 PCIe EP 接口总结】
  • 解决 Git Push 失败:处理“非快进”与“非相关历史”问题
  • 从零到一构建企业级AI向量服务:AntSK-PyApi深度技术解析
  • 超文本的定义
  • 专项智能练习(教育科学研究的基本方法)