请问DM8168、EZSDK开发,其M3(VPSS模块)的初始化工作是放在什么地方初始化的?是dm816x_hdvpss.xem3固件吗?还是放在A8中的linux驱动来初始化?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
请问DM8168、EZSDK开发,其M3(VPSS模块)的初始化工作是放在什么地方初始化的?是dm816x_hdvpss.xem3固件吗?还是放在A8中的linux驱动来初始化?
我遇到个问题,我们公司购买了一块DVRRDK的8168开发板,但购买后,公司觉得EZSDK开发包更适合我们的需求,所以转而利用购买的这块DVRRDK8168开发板开发EZSDK,遇到加载vpss.ko驱动失败,具体打印语句如下:
root@dm816x-evm:/home/driver# insmod vpss.ko sbufaddr=0xA0200000
notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0
notify_shm_drv_sendevent failed! status = 0xfffffff0
我看了内核源代码,问题是出在下面:
/* Remote notification is not initialized */
#define NOTIFY_E_NOTINITIALIZED -16
/* Stamp indicating that the Notify Shared Memory driver on the
* processor has been initialized. */
#define NOTIFYSHMDRIVER_INIT_STAMP 0xA9C8B7D6
/* Send a notification event to the registered users for this
* notification on the specified processor. */
int notify_shm_drv_send_event(struct notify_driver_object *handle,
u32 event_id, u32 payload, bool wait_clear)
{
.............
/* Check whether driver on other processor is initialized */
if (obj->other_proc_ctrl->recv_init_status != \
NOTIFYSHMDRIVER_INIT_STAMP) {
/* This may be used for polling till other-side driver is ready,
* so do not set failure reason. */
status = NOTIFY_E_NOTINITIALIZED;
goto exit;
}
...........
}
给我的感觉应该是问题出在了共享内存初始化失败上。
我在想是不是因为我们这个板子和标准的evm开发板存在板级上的差异,导致了*.xem3固件初始化M3出现了点小问题,导致了这个vpss.ko驱动加载失败,您觉得这种可能性存在吗?
检查一下bootargs里的notifyk.vpssm3_sva值,是否和env.sh里面的notifyk.vpssm3_sva一致。
The kernel bootargs notifyk.vpssm3_sva= parameter should match this value.
我们使用的是ezsdk开发包,里面没有env.sh这个脚本吧? 我只在DVRRDK中看到过有这个env.sh脚本,ezsdk中没有看到过这个脚本,请问在什么位置?