目錄
?驅動和固件
驅動固件文件
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分配接口,而驅動分配或者保留內存之類的源作為拷貝時,直接異常。
? 昇騰在數據傳輸的功能實現場景實在太過單一,路途遙遠。