最近在看pcie,遇到了几个问题,请教一下各位大神关于PCIE数据传输方向的问题:
1、在文档中我看到下面这张图
在这张图的后面是
“With this configuration, when DSP0 core0 or EDMA accesses address 0x64900000, it actually accesses the LL2 memory of DSP1,starting from 0x11820000. When DSP0 core 0 or EDMA access address 0x64800000, it actually accesses the 0x0C100000 in share memory of DSP1;. When DSP0 core 0 or EDMA access address 0x60800000, it actually accesses the 0x80000000 in DDR3 memory of DSP1.”
我对这句话理解是DSP0通过访问自己的pcie缓存区来达到对DSP1的内存进行读取,那我就不明白到底DSP1数据是怎么传输到DSP0的pcie区,难道不是DSP1经过自己的outbound映射发送到DSP0 pcie里面,在经过inbound的地址翻译放到DSP0里面的吗??
2、我在看STK里面的pcie程序时候看到,在配置RC端时,没有对RC端的outbound参数进行赋值,如下;但是EP端的inbound和outbound都进行了配置
if(0==KeyStone_Get_DSP_Number())
{//first DSP is the RC
PCIE_cfg.PcieMode= PCIE_RC_MODE;
PCIE_cfg.rc_cfg= &rc_cfg;
/*for this test, two devices are connect directly,
the bus, device and function number are all 0*/
remote_cfg_setup.config_type= 0; //remote device is EP
remote_cfg_setup.config_bus= 0;
remote_cfg_setup.config_device= 0;
remote_cfg_setup.config_function= 0;
printf("PCIE normal and RC mode at %.1fGHz, should be running on core0.\n", PCIE_cfg.serdes_cfg.linkSpeed_GHz);
}
3、
还有一个问题是在对RC进行配置的时候有一个prefetch和nonprefetch的配置,这个跟inbound有什么关系呢?
希望各位大大帮忙回答
