昇腾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.bin | **Ascend310P_ddr.image 内存配置** | | lperika.bin | **Ascend310P_lowpwr.image 电源 功率检测** | | hisserika.bin | **Ascend310P_hsm.image 安全启动** | | AS610_HBOOT2_UEFI.fd | **Ascend310P.fd UEFI** | | 其他 | dts 内核 根文件系统等 | ### 固件关系猜测 ![](https://i-blog.csdnimg.cn/direct/4ff9682076aa48d69775f4478e736102.png) ## 启动关键信息 ### 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显存中的不同区域**。 ![](https://i-blog.csdnimg.cn/direct/1086ba3a23cb49e68f3a6d42463457a9.png) ## 总结 1) 虽然看起来 BAR可以配置,但其映射到NPU的内存的动态变化没有暴露出寄存器或者软件接口 2)了解其固件关系,利于硬件设计。 3)目前 将数据拷贝到NPU的源,只能是用户态分配接口或者acl分配接口,而驱动分配或者保留内存之类的源作为拷贝时,直接异常。 昇腾在数据传输的功能实现场景实在太过单一,路途遥远。

相关推荐
tedcloud1231 小时前
hello-agents部署教程:从零学习AI Agent开发
服务器·人工智能·学习·自动化·powerpoint
qq_265153371 小时前
Redis在游戏服务器中怎么实现开合服数据同步?
服务器·redis·游戏·游戏服务器
szxinmai主板定制专家1 小时前
电力设备RK3568/RK3576+FPGA,多系统混合部署Linux+RTOS RT-THREAD,强实时性
linux·运维·服务器·人工智能·嵌入式硬件·fpga开发
枕星而眠2 小时前
Linux 四大进程/线程同步锁详解:互斥锁、读写锁、条件变量、文件锁
linux·c语言·后端·ubuntu·学习方法
我是坑货2 小时前
Jenkins 构建失败排查记录:mvn -U 把新版依赖被远程旧版覆盖
运维·jenkins
L、2182 小时前
CANN调优工具链全景:从profiler到tensorboard的完整观测体系
linux·运维·服务器·深度学习
码点滴3 小时前
Workload 自动化进化论:从手动运维到 AI 驱动的 Kubernetes 智能管控
运维·人工智能·kubernetes·自动化·workload
darkdragonking3 小时前
Docker(五)OpenEuler22.03 安装docker ce、排坑
运维·docker·容器
j_xxx404_3 小时前
Linux进程信号捕捉与操作系统运行本质深度解析
linux·运维·服务器·开发语言·c++·人工智能·ai
eggrall3 小时前
Linux信号——保存信号
linux·运维·服务器