目前在调试两块DM8168板通过PCIE接口来通信传输视频数据,在EP测的DM8168加载EP驱动ti81xx_pcie_epdrv.ko时出现地址的非法操作。驱动用的是RDK4.0的内核所带的,PCI总线驱动已禁止,加载时通过添加打印信息,找到问题出现在模块初始化函数所调用的ti81xx_setup_msi()函数中,在对STATUS_COMMAND寄存器操作时报错,这之前初始化函数已经调用ioremap_nocache()来映射这段寄存器空间,为何还出错,而且这个是官方的驱动,是不是我的哪个地方配置有误?TI的工程师或知道的大神们能否帮解答下,谢谢!
(注:EP测不是以PCIE启动模式启动的)
驱动加载报错信息在附件中!
static int ti81xx_setup_msi() {
__raw_writel(0x0, reg_vir + 0x18c);
__raw_writel(__raw_readl(reg_vir + STATUS_COMMAND + LOCAL_CONFIG_OFFSET) | (1 << 10), reg_vir + STATUS_COMMAND + LOCAL_CONFIG_OFFSET);
__raw_writel(__raw_readl(reg_vir + LOCAL_CONFIG_OFFSET + MSI_CAP + MSI_OFF) | (1 << 16), reg_vir + LOCAL_CONFIG_OFFSET + MSI_CAP + MSI_OFF);
__raw_writel(0xFFFFFFFF, reg_vir + MSI0_IRQ_ENABLE_SET);
pr_debug(DRIVER_NAME ":msi capability setup done");
return 0;
}
hailang zeng:
EP侧我改用PCIE模式启动是正常的,如果EP侧以FLASH启动是否可行?