异核通信(3):remoteproc(Qualcomm)

一. 作用

作用:现代soc通常是AMP架构,可能会运行不同的OS(Linux or rtos)。

remoteproc提供了一个upstream框架来管理协处理器的生命周期(加载固件、启动、关闭),同时抽象出硬件差异,因此不需要复制整个驱动程序。将core、platform、以及高通device的driver区分开来。

二. Remoteproc architecture

(见文档图2-1)

用户空间通过/sys/class/remoteproc/remoteroc*来访问设备,

1.remoteproc core为核心,和subdevices以及remoteproc platform之间交互

2. sysmon, glink, ssr作为remoteproc subdevices

三. 代码分析

这里依然是采用经典的结构,参考的是common/drivers/remoteproc/qcom_q6v5_pas.c: device ->platform -> core

(1)device:比如像adsp, 在每个开发板上可能都会有,这时我们在设备树写好,通过of_match_table和probe识别就行,这里还附加了data属性指向device特定的初始化数据或者函数

(2)platform: different soc, 比如Qualcomm和Mediatek, 再或者即使是Qualcomm, 相同的芯片也会搭载在不同的开发板上:platform_driver, 包括probe,remove,driver(name, of_match_table)

(3)core:代码就是内核提供的

比如adsp设备,通过adsp platform driver,再到remoteproc core;cdsp等同理

#Linux##内核#
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-19 11:02
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务