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.

C6638 ARM linux系统0x80000000搬移0xA0000000,dsp加载出现问题。

TI工程师你们好:

            工作一年辛苦了,新春快乐。

           在使用C6638ARM加载Linux系统时(版本为:K2_LINUX_03.10.10_14.07),linux系统加载地址为0x80000000,使用 mpmcl run dsp0-7可以正常加载dsp。

           参考如下地址:  http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring

中的How to run Linux kernel from a different physical address than default (0x80000000) ?

将系统搬移到了0xa0000000,系统起来后是用CCS重新编译.out将out的内存地址分配在0x80000000-0x9fffffff;

修改系统启动后的/etc/mpm/mpm_config.json

{
"parser-version": "1.0.0.0",
"_cmdfile": "/etc/mpm/slave_cmds.txt",
"outputif": "/var/log/mpmsrv.log",
"scratchaddr": "0x9FFFFC00",     之前是"scratchaddr": "0xBFFFFC00", 
"scratchlength": "0x400",
"socketperm": "0777",
"segments": [
{
"name": "local-core0-l2",
"localaddr": "0x00800000",
"globaladdr": "0x10800000",
"length": "0x100000",
"devicename": "/dev/dsp0"
},
{
"name": "local-core1-l2",
"localaddr": "0x00800000",
"globaladdr": "0x11800000",
"length": "0x100000",
"devicename": "/dev/dsp1"
},
{
"name": "local-core2-l2",
"localaddr": "0x00800000",
"globaladdr": "0x12800000",
"length": "0x100000",
"devicename": "/dev/dsp2"
},
{
"name": "local-core3-l2",
"localaddr": "0x00800000",
"globaladdr": "0x13800000",
"length": "0x100000",
"devicename": "/dev/dsp3"
},
{
"name": "local-core4-l2",
"localaddr": "0x00800000",
"globaladdr": "0x14800000",
"length": "0x100000",
"devicename": "/dev/dsp4"
},
{
"name": "local-core5-l2",
"localaddr": "0x00800000",
"globaladdr": "0x15800000",
"length": "0x100000",
"devicename": "/dev/dsp5"
},
{
"name": "local-core6-l2",
"localaddr": "0x00800000",
"globaladdr": "0x16800000",
"length": "0x100000",
"devicename": "/dev/dsp6"
},
{
"name": "local-core7-l2",
"localaddr": "0x00800000",
"globaladdr": "0x17800000",
"length": "0x100000",
"devicename": "/dev/dsp7"
},
{
"name": "local-msmc",
"globaladdr": "0x0c000000",
"length": "0x600000",
"devicename": "/dev/dspmem"
},
{
"name": "local-ddr",
"globaladdr": "0x80000000",之前是"globaladdr": "0xA0000000"
"length": "0x1FFFFC00",
"devicename": "/dev/dspmem"
},
{
"name": "local-msmc-hyplnk",
"globaladdr": "0x0C000000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core0-hyplnk",
"globaladdr": "0x10800000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core1-hyplnk",
"globaladdr": "0x11800000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core2-hyplnk",
"globaladdr": "0x12800000",
"length": "0x10000",
"devicename": "/dev/mem"
}
],
"slaves": [
{
"name": "dsp0-hyplnk",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core0-hyplnk", "local-msmc-hyplnk"],
"direction": "loopback",
"hyplnkinterface": "hyplnk0",
"txprivid": 12,
"rxprivid": 12,
"rxsegsel": 6,
"rxlenval": 21,
"refclkMHz": "312p5",
"serialrate": "6p25",
"lanerate": "half",
"numlanes": "4"
},
{
"name": "dsp1-hyplnk",
"coreid": 1,
"transport": "hyperlink",
"memorymap": ["local-core1-hyplnk"],
"hyplnkmaster": "dsp0-hyplnk"
},
{
"name": "dsp2-hyplnk",
"coreid": 2,
"transport": "hyperlink",
"memorymap": ["local-core2-hyplnk"],
"hyplnkmaster": "dsp0-hyplnk"
},
{
"name": "arm-remote-hyplnk-1",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core0-hyplnk", "local-msmc-hyplnk"],
"direction": "remote",
"hyplnkinterface": "hyplnk0",
"txprivid": 12,
"rxprivid": 12,
"rxsegsel": 6,
"rxlenval": 21,
"refclkMHz": "312p5",
"serialrate": "6p25",
"lanerate": "half",
"numlanes": "4"
},
{
"name": "arm-remote-hyplnk-2",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core1-hyplnk"],
"hyplnkmaster": "arm-remote-hyplnk-1"
},
{
"name": "dsp0",
"coreid": 0,
"transport": "sharedmemory",
"memorymap": ["local-core0-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp1",
"coreid": 1,
"transport": "sharedmemory",
"memorymap": ["local-core1-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp2",
"coreid": 2,
"transport": "sharedmemory",
"memorymap": ["local-core2-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp3",
"coreid": 3,
"transport": "sharedmemory",
"memorymap": ["local-core3-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp4",
"coreid": 4,
"transport": "sharedmemory",
"memorymap": ["local-core4-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp5",
"coreid": 5,
"transport": "sharedmemory",
"memorymap": ["local-core5-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp6",
"coreid": 6,
"transport": "sharedmemory",
"memorymap": ["local-core6-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp7",
"coreid": 7,
"transport": "sharedmemory",
"memorymap": ["local-core7-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
}
]
}

修改完成后重新启动运行加载DSP.out程序

root@keystone-evm:~# ./run_dsp.sh
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
[ 167.820864] remoteproc0: powering up 2620040.dsp0
[ 167.844457] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 167.849948] remoteproc0: registered virtio0 (type 7)
[ 167.885950] remoteproc0: stopped remote processor 2620040.dsp0
./run_dsp.sh: line 17: 1753 Segmentation fault mpmcl run dsp0

运行到此处卡死了ctrl+c也停止无非结束

此处不明白是不是那里还需要配置没有处理导致核0会挂死在这里,此处run dsp的时候为什么为会报如下错误,如何查找根源。

 

 

x 出现错误。请重试或与管理员联系。