适用于openAmp mailbox ipi id对应的ipi message地址计算方式
官方openamp硬件配置解析 OpenAMP Base Hardware Configurations - Xilinx Wiki - Confluence
openamp官方设备树 meta-openamp/meta-xilinx-tools/recipes-bsp/device-tree/files/zynqmp-openamp.dtsi at rel-v2022.1 · Xilinx/meta-openamp · GitHub
一 推导versal ipi地址换算方式
versal系列文档 AMD Technical Information Portal
可以从上面得知,ipi1基地址是0xff3f0600 并通过这个地址划分了512字节大小。从上面知道每一个通道会划分每一个32字节给其他通道通信,并依顺序排序为psm,pmc,IPi0, ipi1, .....
因此在ipi1要跟ipi3交互的地址为: 0xff3f0600+140, 0xff3f0600+160, 得到上述ipimessage地址 0xff3f0740,0xff3f0760
以此类推,ipi3 基地址是0xff3f0a00, 其跟ipi1通信的地址为 0xff3f0a00+0c0, 0xff3f0a00+0e0,
得到上述设备树中的0xff3f0ac0,0xff3f0ae0
二 推导zynqmp ipi地址换算方式
ug1085最新文档 AMD Technical Information Portal
根据上述versal文档和zynqmp文档(上述图片知道)ipi meassge地址划分:实际上从上述图片看,ch7地址为0xff990600,指向的ch1:0xff990640,0xff990660,
ch1地址为0xff990000 , 指向的ch7:0xff9900c0 ,0xff9900e0
但是从官方以下图片设备树看,ch7→ch1通信地址为0xff990600 0xff990620 因此判断ch1应该是每一组通道排在第一组的,类似versal中的psm,而非ch0为第一组。其他地址划分以此类推
但是上述明显写着ch0 为 Si agent number = 1。因此个人觉得是下面设备树ch7→ch1地址写的有问题
三 openAmp 搭建双核异构通信参考链接:linux 2021版本
非petallinux操作的xilinx zynqmp openamp核间通信框架搭建核测试(APU :linux2021 + rpu1(裸机))-CSDN博客