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.

TMS320C6657: 请教nvme读写支持

Part Number: TMS320C6657


您好,

请问TI的TMS320C6657 DSP开发包,能够支持NVME SSD硬盘读写吗,

目前在官方的SDK中没有发现;

如果没有提供,请教一下,我们自己开发是否可行,有没有相关的资料给我们提供一下?

谢谢。

  • 好的 ,感谢你的答复。

    我们目前是在用PCIE来开发,也在用TI自带的pcie的例子调试,例子如下图:

    那首先还是把keystone PCIE的问题搞清楚吧,后面再请教您pcie方面的问题。

  • 好的,有问题继续讨论。

  • 这段时间使用我上面用的pcie的例子工程,调试PCIE EP端的读写,碰到问题如下:

    c6657工作在rc模式下,连接1个EP设备;

    初始化时,可以看到EP有1个64位的bar空间,长度为16KB,使用bar0和bar1,然后软件给bar0 和bar1 分配了pcie空间地址;

    分配的地址空间从 #define PCIE_NONFETCH_BASE_ADDRESS 0x10000000 开始的地址分配;

    对应的region为 outbound region0,相关的3个寄存器也都做了配置,都是按照例子程序的流程走的,没有做改动。

    配置完成后,在最后的PCIE_Test函数中,将ep端的bar0 bar1通过remote 寄存器读出打印出来,region 0的3个寄存器值也读出来打印出来:

    ulData = *(volatile uint32_t *)(CSL_PCIE_CONFIG_REGS + 0x2010); // bar0
    uart_printf ("EP configuration register bar0 = %x\n\n",ulData);
    ulData = *(volatile uint32_t *)(CSL_PCIE_CONFIG_REGS + 0x2014); // bar1
    uart_printf ("EP configuration register bar1 = %x\n\n",ulData);

    //outbound region 相关寄存器
    ulData = gpPCIE_app_regs->OB_SIZE;
    uart_printf ("rc app register OB_SIZE = %x\n\n",ulData);

    ulData = gpPCIE_app_regs->OUTBOUND_TRANSLATION[0].OB_OFFSET_HI;
    uart_printf ("rc app register OB_OFFSET_HI 0 = %x\n\n",ulData);

    ulData = gpPCIE_app_regs->OUTBOUND_TRANSLATION[0].OB_OFFSET_INDEX;
    uart_printf ("rc app register OB_OFFSET_INDEX 0 = %x\n\n",ulData);

    打印结果如下,感觉值都是对的:

    EP configuration register bar0 = 10000004

    EP configuration register bar1 = 0

    rc app register OB_SIZE = 3

    rc app register OB_OFFSET_HI 0 = 0

    rc app register OB_OFFSET_INDEX 0 = 10000001

    此时,软件再通过访问0x60000000,测试是否可以读这个ep的bar空间,

    // 测试bar mem空间读写
    unsigned int value = *((volatile Uint32 *)0x60000008);

    执行到这一句时,软件会触发异常,执行到pcie_vector.asm中的 NMI/Exception 这一句,感觉是

    interrupt vector table
    .sect "vecs"
    .align 1024

    vectors:
    VEC_RESET _c_int00 ;RESET
    VEC_ENTRY NMI_ISR ;NMI/Exception
    VEC_DUMMY ;RSVD
    VEC_DUMMY ;RSVD
    VEC_ENTRY PCIE_MSI_ISR ;interrupt 4
    VEC_ENTRY PCIE_ERR_PMRST_ISR ;interrupt 5

    对端的EP设备,这一段bar空间,是nvme设备自身的配置寄存器,是可以读的,不知是不是我的方法有问题,请帮忙看一下,谢谢。

  • 您的问题需要升级到英文e2e论坛,麻烦再发个新帖,谢谢!