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.

关于下载66AK 新版本,arm下不能加载DSP程序



1)下载新66AK版本,DSP 程序无法加载

(1) 运行mpmcl reset dsp0 如下错误
root@keystone-evm:/# mpmcl reset dsp0
reset failed (error: -105)

(2) 查看KERNEL代码和DTS配置改动太大,DTS关于DSP 配置如下: keystone.dtsi

gpio0: gpio@260bf00 {
compatible = "ti,keystone-gpio";
reg = <0x0260bf00 0x38>;
gpio-controller;
#gpio-cells = <2>;
/* HW Interrupts mapped to GPIO pins */
interrupts = <0 120 0xf01>,
<0 121 0xf01>,
<0 122 0xf01>,
<0 123 0xf01>,
<0 124 0xf01>,
<0 125 0xf01>,
<0 126 0xf01>,
<0 127 0xf01>,
<0 128 0xf01>,
<0 129 0xf01>,
<0 130 0xf01>,
<0 131 0xf01>,
<0 132 0xf01>,
<0 133 0xf01>,
<0 134 0xf01>,
<0 135 0xf01>,
<0 136 0xf01>,
<0 137 0xf01>,
<0 138 0xf01>,
<0 139 0xf01>,
<0 140 0xf01>,
<0 141 0xf01>,
<0 142 0xf01>,
<0 143 0xf01>,
<0 144 0xf01>,
<0 145 0xf01>,
<0 146 0xf01>,
<0 147 0xf01>,
<0 148 0xf01>,
<0 149 0xf01>,
<0 150 0xf01>,
<0 151 0xf01>;
interrupt-controller;
#interrupt-cells = <2>;
clocks = <&clkgpio>;
clock-names = "gpio";
};

ipcgpio0: gpio@2620240 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620240 4>;
gpio-controller;
#gpio-cells = <2>;
};

uio_mpax: mpax {
compatible = "ti,uio-module-drv";
mem = <0x00bc00000 0x00000a00>;
label = "mpax";
};

uio_edma3: edma3 {
compatible = "ti,uio-module-drv";
mem = <0x02700000 0x000C0000>;
label = "edma3";
};
uio_secmgr: secmgr {
compatible = "ti,uio-module-drv";
mem = <0x002500100 0x00000004>;
label = "secmgr";
};
uio_qmss: qmss {
compatible = "ti,uio-module-drv";
mem = <0x02a00000 0x00100000
0x23a00000 0x00200000>;
label = "qmss";
};

uio_qpend0: qpend0 {
compatible = "ti,uio-module-drv";
label = "qpend0";
interrupts = <0 44 0xf04>;
interrupt-mode = <1>; /* Interrupt mode oneshot */
cfg-params
{
ti,qm-queue = <662>;
};
};

uio_qpend1: qpend1 {
compatible = "ti,uio-module-drv";
label = "qpend1";
interrupts = <0 45 0xf04>;
interrupt-mode = <1>; /* Interrupt mode oneshot */
cfg-params
{
ti,qm-queue = <663>;
};
};

uio_qpend2: qpend2 {
compatible = "ti,uio-module-drv";
label = "qpend2";
interrupts = <0 46 0xf04>;
interrupt-mode = <1>; /* Interrupt mode oneshot */
cfg-params
{
ti,qm-queue = <664>;
};
};

uio_qpend3: qpend3 {
compatible = "ti,uio-module-drv";
label = "qpend3";
interrupts = <0 47 0xf04>;
interrupt-mode = <1>; /* Interrupt mode oneshot */
cfg-params
{
ti,qm-queue = <665>;
};
};

k2hk.dtsi 配置如下

soc {
/include/ "k2hk-clocks.dtsi"

ipcgpio1: gpio@2620244 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620244 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio2: gpio@2620248 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620248 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio3: gpio@262024c {
compatible = "ti,keystone-ipc-gpio";
reg = <0x0262024c 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio4: gpio@2620250 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620250 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio5: gpio@2620254 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620254 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio6: gpio@2620258 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620258 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio7: gpio@262025C {
compatible = "ti,keystone-ipc-gpio";
reg = <0x0262025C 4>;
gpio-controller;
#gpio-cells = <2>;
};

dsp0: dsp0 {
compatible = "linux,rproc-user";
mem = <0x10e00000 0x00008000
0x10f00000 0x00008000
0x10800000 0x00100000>;
reg = <0x02620040 4
0x0235083c 4
0x02350a3c 4
0x02620240 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl",
"ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <8 0 0 0>;
kick-gpio = <&ipcgpio0 27 0>;
clocks = <&clkgem0>;
label = "dsp0";
};

dsp1: dsp1 {
compatible = "linux,rproc-user";
mem = <0x11e00000 0x00008000
0x11f00000 0x00008000
0x11800000 0x00100000>;
reg = <0x02620044 4
0x02350840 4
0x02350a40 4
0x02620244 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <9 0 1 0>;
kick-gpio = <&ipcgpio1 27 0>;
clocks = <&clkgem1>;
label = "dsp1";
};

dsp2: dsp2 {
compatible = "linux,rproc-user";
mem = <0x12e00000 0x00008000
0x12f00000 0x00008000
0x12800000 0x00100000>;
reg = <0x02620048 4
0x02350844 4
0x02350a44 4
0x02620248 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <10 0 2 0>;
kick-gpio = <&ipcgpio2 27 0>;
clocks = <&clkgem2>;
label = "dsp2";
};

dsp3: dsp3 {
compatible = "linux,rproc-user";
mem = <0x13e00000 0x00008000
0x13f00000 0x00008000
0x13800000 0x00100000>;
reg = <0x0262004c 4
0x02350848 4
0x02350a48 4
0x0262024c 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <11 0 3 0>;
kick-gpio = <&ipcgpio3 27 0>;
clocks = <&clkgem3>;
label = "dsp3";
};

dsp4: dsp4 {
compatible = "linux,rproc-user";
mem = <0x14e00000 0x00008000
0x14f00000 0x00008000
0x14800000 0x00100000>;
reg = <0x02620050 4
0x0235084C 4
0x02350a4C 4
0x02620250 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <12 0 4 0>;
kick-gpio = <&ipcgpio4 27 0>;
clocks = <&clkgem4>;
label = "dsp4";
};

dsp5: dsp5 {
compatible = "linux,rproc-user";
mem = <0x15e00000 0x00008000
0x15f00000 0x00008000
0x15800000 0x00100000>;
reg = <0x02620054 4
0x02350850 4
0x02350a50 4
0x02620254 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <13 0 5 0>;
kick-gpio = <&ipcgpio5 27 0>;
clocks = <&clkgem5>;
label = "dsp5";
};

dsp6: dsp6 {
compatible = "linux,rproc-user";
mem = <0x16e00000 0x00008000
0x16f00000 0x00008000
0x16800000 0x00100000>;
reg = <0x02620058 4
0x02350854 4
0x02350a54 4
0x02620258 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <14 0 6 0>;
kick-gpio = <&ipcgpio6 27 0>;
clocks = <&clkgem6>;
label = "dsp6";
};

dsp7: dsp7 {
compatible = "linux,rproc-user";
mem = <0x17e00000 0x00008000
0x17f00000 0x00008000
0x17800000 0x00100000>;
reg = <0x0262005C 4
0x02350858 4
0x02350a58 4
0x0262025C 4>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr";
interrupt-parent = <&ipcirq0>;
interrupts = <15 0 7 0>;
kick-gpio = <&ipcgpio7 27 0>;
clocks = <&clkgem7>;
label = "dsp7";
};

dspmem: dspmem {
compatible = "linux,rproc-user";
mem = <0x0c000000 0x000600000
0xa0000000 0x20000000>;
label = "dspmem";
};


上述配置和老版本差别很大, 用开发版原始版本配置mpmcl reset,load, run 都正常,但无法输出dsp LOG,

查看/sys/kernel/debug/remoteproc/remoteproc0/trace0为空。 

2)66AK开发版原始版本

DTS配置

gpio0: gpio@260bf00 {
compatible = "ti,keystone-gpio";
reg = <0x0260bf00 0x10
0x0260bf10 0x28>;
gpio-controller;
#gpio-cells = <2>;
/* HW Interrupts mapped to GPIO pins */
interrupts = <0 120 0xf01 0 121 0xf01 0 122 0xf01 0 123 0xf01 0 124 0xf01
0 125 0xf01 0 126 0xf01 0 127 0xf01 0 128 0xf01 0 129 0xf01
0 130 0xf01 0 131 0xf01 0 132 0xf01 0 133 0xf01 0 134 0xf01
0 135 0xf01 0 136 0xf01 0 137 0xf01 0 138 0xf01 0 139 0xf01
0 140 0xf01 0 141 0xf01 0 142 0xf01 0 143 0xf01 0 144 0xf01
0 145 0xf01 0 146 0xf01 0 147 0xf01 0 148 0xf01 0 149 0xf01
0 150 0xf01 0 151 0xf01>;
interrupt-controller;
#interrupt-cells = <2>;
clocks = <&clkgpio>;
clock-names = "gpio";
};

ipcgpio0: gpio@2620240 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620240 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio1: gpio@2620244 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620244 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio2: gpio@2620248 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620248 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio3: gpio@262024c {
compatible = "ti,keystone-ipc-gpio";
reg = <0x0262024c 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio4: gpio@2620250 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620250 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio5: gpio@2620254 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620254 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio6: gpio@2620258 {
compatible = "ti,keystone-ipc-gpio";
reg = <0x02620258 4>;
gpio-controller;
#gpio-cells = <2>;
};

ipcgpio7: gpio@262025C {
compatible = "ti,keystone-ipc-gpio";
reg = <0x0262025C 4>;
gpio-controller;
#gpio-cells = <2>;
};

dsp0: dsp0 {
compatible = "linux,rproc-user";
reg = <0x02620040 4
0x0235083c 4
0x02350a3c 4
0x02620240 4
0x10e00000 0x00008000
0x10f00000 0x00008000
0x10800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <8 0 0 0>;
kick-gpio = <&ipcgpio0 27 0>;
clocks = <&clkgem0>;
};

dsp1: dsp1 {
compatible = "linux,rproc-user";
reg = <0x02620044 4
0x02350840 4
0x02350a40 4
0x02620244 4
0x11e00000 0x00008000
0x11f00000 0x00008000
0x11800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <9 0 1 0>;
kick-gpio = <&ipcgpio1 27 0>;
clocks = <&clkgem1>;
};

dsp2: dsp2 {
compatible = "linux,rproc-user";
reg = <0x02620048 4
0x02350844 4
0x02350a44 4
0x02620248 4
0x12e00000 0x00008000
0x12f00000 0x00008000
0x12800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <10 0 2 0>;
kick-gpio = <&ipcgpio2 27 0>;
clocks = <&clkgem2>;
};

dsp3: dsp3 {
compatible = "linux,rproc-user";
reg = <0x0262004c 4
0x02350848 4
0x02350a48 4
0x0262024c 4
0x13e00000 0x00008000
0x13f00000 0x00008000
0x13800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <11 0 3 0>;
kick-gpio = <&ipcgpio3 27 0>;
clocks = <&clkgem3>;
};

dsp4: dsp4 {
compatible = "linux,rproc-user";
reg = <0x02620050 4
0x0235084C 4
0x02350a4C 4
0x02620250 4
0x14e00000 0x00008000
0x14f00000 0x00008000
0x14800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <12 0 4 0>;
kick-gpio = <&ipcgpio4 27 0>;
clocks = <&clkgem4>;
};

dsp5: dsp5 {
compatible = "linux,rproc-user";
reg = <0x02620054 4
0x02350850 4
0x02350a50 4
0x02620254 4
0x15e00000 0x00008000
0x15f00000 0x00008000
0x15800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <13 0 5 0>;
kick-gpio = <&ipcgpio5 27 0>;
clocks = <&clkgem5>;
};

dsp6: dsp6 {
compatible = "linux,rproc-user";
reg = <0x02620058 4
0x02350854 4
0x02350a54 4
0x02620258 4
0x16e00000 0x00008000
0x16f00000 0x00008000
0x16800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <14 0 6 0>;
kick-gpio = <&ipcgpio6 27 0>;
clocks = <&clkgem6>;
};

dsp7: dsp7 {
compatible = "linux,rproc-user";
reg = <0x0262005C 4
0x02350858 4
0x02350a58 4
0x0262025C 4
0x17e00000 0x00008000
0x17f00000 0x00008000
0x17800000 0x00100000>;
reg-names = "boot-address", "psc-mdstat", "psc-mdctl", "ipcgr", "l1pram", "l1dram", "l2ram";
interrupt-parent = <&ipcirq0>;
interrupts = <15 0 7 0>;
kick-gpio = <&ipcgpio7 27 0>;
clocks = <&clkgem7>;
};

dspmem: dspmem {
compatible = "linux,uio";
reg = <0x0c000000 0x00600000 /* msmc ram */
0xa0000000 0x20000000>; /* corepac's ddr3 */
reg-names = "msmcram", "ddr3";
};

加载kernel后运行MPMCL 命令

root@keystone-evm:/# mpmcl reset dsp0
[ 181.448109] ==== rproc_disable_iommu
[ 181.451861] remoteproc0: stopped remote processor 2620040.dsp0
reset succeded
t.outkeystone-evm:/# mpmcl load dsp0 /dspTest/rmK2HArmv7LinuxDspClientTestProjec
load succeded
root@keystone-evm:/# mpmcl run dsp0
run succeded

查看TRACE0信息如下:


root@keystone-evm:/# cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
3 Resource entries at 0x800000
*********************************************************
************ RM DSP+ARM DSP Client Testing **************
*********************************************************
RM Version : 0x02000004
Version String: RM Revision: 02.00.00.04:May 30 2013:22:07:35


Initialized RM_Client

Core 0 : ---------------------------------------------------------
Core 0 : ---------------- Static Init Allocation -----------------
Core 0 : - Instance Name: RM_Client -
Core 0 : - Resource Name: qos-cluster -
Core 0 : - Start: 0 -
Core 0 : - End: 0 -
Core 0 : - Alignment: 0 -
Core 0 : - -
Core 0 : - PASSED -
Core 0 : ---------------------------------------------------------

Core 0 : ---------------------------------------------------------
Core 0 : ---------------- Static Init Allocation -----------------
Core 0 : - Instance Name: RM_Client -
Core 0 : - Resource Name: qos-cluster -
Core 0 : - Start: 2 -
Core 0 : - End: 2 -
Core 0 : - Alignment: 0 -
Core 0 : - -
Core 0 : - PASSED -
Core 0 : ---------------------------------------------------------

Core 0 : ---------------------------------------------------------
Core 0 : ---------------- Static Init Allocation -----------------
Core 0 : - Instance Name: RM_Client -
Core 0 : - Resource Name: qos-cluster -
Core 0 : - Start: 1 -
Core 0 : - End: 1 -
Core 0 : - Alignment: 0 -
Core 0 : - -
Core 0 : - PASSED - Denial: 79 -
Core 0 : ---------------------------------------------------------

Core 0 : ---------------------------------------------------------
Core 0 : ---------------- Static Init Allocation -----------------
Core 0 : - Instance Name: RM_Client -
Core 0 : - Resource Name: aif-queue -
Core 0 : - Start: 525 -
Core 0 : - End: 525 -
Core 0 : - Alignment: 0 -
Core 0 : - -
Core 0 : - PASSED -
Core 0 : ---------------------------------------------------------

Core 0 : ---------------------------------------------------------
Core 0 : ---------------- Static Init Allocation -----------------
Core 0 : - Instance Name: RM_Client -
Core 0 : - Resource Name: aif-queue -
Core 0 : - Start: 525 -
Core 0 : - End: 525 -
Core 0 : - Alignment: 0 -
Core 0 : - -
Core 0 : - PASSED -
Core 0 : ---------------------------------------------------------

Core 0 : Creating RM startup task...
Core 0 : Starting BIOS...
registering rpmsg-proto service on 61 with HOST
Awaiting sync message from host...

  • 请问新版本需要修改那些配置?才能正常加载DSP程序?

  • 是在EVM使用MPM进行加载测试么,使用的什么版本,我之前使用K2_LINUX_03.10.72_15.08版本是ok的。

    MPM wiki: http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Developing_System_Mgmt#Multiple_Processor_Manager

  • 当前版本为:  Linux keystone-evm 3.10.61

    请问下载的地址是git clone git://arago-project.org/git/projects/linux-keystone.git 这个网址吗? 版本有更新啦?

  • hi Andy yin1

    当前版本: Linux keystone-evm 3.10.61

    我下载地址为: git clone git://arago-project.org/git/projects/linux-keystone.git

    你是否用上面命令下载,是否有新的版本? 如果不是能否提供你的下载网址?thanks!

     

  • 建议直接到66AK的产品页面去下载SDK

  • 在下面链接可以单独下载到最新版本的linux,及u-boot、boot-monitor等。

    http://git.ti.com/cgit/cgit.cgi/keystone-linux/linux.git/

    http://git.ti.com/keystone-linux

  • hi Andy Yin1

     我下载3.10.72,3.10.72-rt两个版本,编译测试如下:

    mpmcl reset dsp0 就出错 ,如果用3.8.4版本是可以的。是否你下载后有修改过DTS?

    3.8.4版本由于交换网络只支持两路,所以下载新的版本(可以支持4路),新的版本出现下列问题,

    一直没有解决。

     

     

     

  • VERSION: 3.8.4 版本是正常的,LOG 如下:

    root@keystone-evm:/# mpmcl run dsp0

     [   54.228164]  remoteproc0: powering up 2620040.dsp0

    [   54.232960]  remoteproc0: Booting unspecified firmware

    [   54.239915] virtio_rpmsg_bus virtio0: rpmsg host is online

    [   54.245429]  remoteproc0: registered virtio0 (type 7)

    [   54.250508]  remoteproc0: remote processor 2620040.dsp0 is now up

    [   54.256619] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d

    [   54.263766] rpmsg_proto rpmsg0: inserting rpmsg src: 1024, dst: 61 run succeded

     

    VERSION: 3.10.72

    1) 用原版本运行 MPMCL  RESET DSP0  出错

    2) 修改 dts的dsp配置与3.8.4一样后,mpmcl reset ,load 都正常,但是mpmcl  run dsp0 是

        LOG 如下:  rpmsg-proto 没有收到信息,请问谁知道哪里需要修改?谢谢!

    root@keystone-evm:/# mpmcl run dsp0

     [ 4750.243140]  remoteproc0: powering up 2620040.dsp0

    [ 4750.259499] virtio_rpmsg_bus virtio0: rpmsg host is online run succeded

    [ 4750.259524]  remoteproc0: registered virtio0 (type 7)

  • hi Andy Yin1

    能否把文件/etc/mpm/mpm_config.json 配置发给我,谢谢!

    可能是这个文件用的原来开发板的文件系统配置