协处理器M4的固件有两种方式来加载和运行:

  • boot loader: 在SSBL阶段来加载和运行固件程序

  • Linux kernel:Linux系统下通过sysfs下的remoteproc功能来加载和运行固件程序

 

U-Boot加载运行固件

# ext4load mmc 0:4 ${kernel_addr_r} rproc-m4-fw.elf -> SDCARD is mmc 0, bootfs is ext4 partition number 4)
# rproc init                                        -> initializes all coprocessors
# rproc load 0 ${kernel_addr_r} ${filesize}         -> loads firmware for coprocessor 0 (code part found in .elf)
# rproc load_rsc 0 ${kernel_addr_r} ${filesize}     -> loads resource table for coprocessor 0 (found in .elf)
# rproc start 0                                     -> starts coprocessor 0

 

Linux kernel加载运行固件

# echo -n <firmware_name.elf> > /sys/class/remoteproc/remoteprocX/firmware
# echo start >/sys/class/remoteproc/remoteprocX/state
作者:SteveChen  创建时间:2024-09-18 14:29
最后编辑:SteveChen  更新时间:2024-09-18 14:29