昇腾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 内核 根文件系统等 |
固件关系猜测
启动关键信息
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分配接口,而驱动分配或者保留内存之类的源作为拷贝时,直接异常。
昇腾在数据传输的功能实现场景实在太过单一,路途遥远。