Hello,
I am now trying to execute a syslink example on dm8168. The example is the ex01_helloworld.
When I run run.sh, it pended and timed out. Specifically, the line ‘status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_STARTCALLBACK, NULL);’ in ex01_helloworld/host/main_host.c is timed out.
What is problem and how can I solve it?
More specific situation is explained below,
Thank you.
1. Environment variables of my boot loader.
TI8168_EVM#printenv bootdelay=3 baudrate=115200 autoload=no verify=yes bootfile=uImage ramdisk_file=ramdisk.gz loadaddr=0x81000000 script_addr=0x80900000 loadbootscript=fatload mmc 0 ${script_addr} boot.scr bootscript= echo Running bootscript from MMC/SD to set the ENV...; source ${script_addr} ethaddr=84:7e:40:f6:13:c8 ethact=DaVinci EMAC uboot=mmc rescan 0;mw.b 0x81000000 0xFF 0x00260000;fatload mmc 0 0x81000000 u-boot.noxip.bin;nand erase 0x0 0x00260000;nand write.i 0x81000000 0x0 0x00260000 kernel=mmc rescan 0;mw.b 0x81000000 0xFF 0x00300000;fatload mmc 0 0x81000000 uImage;nand erase 0x00280000 0x00300000;nand write.i 0x81000000 0x00280000 0x00300000 bootargs=console=ttyO2,115200n8 rootwait root=ubi0:rootfs init=/init, nolock rw ubi.mtd=3,2048 rootfstype=ubifs earlyprintk mem=364M@0x80000000 mem=320M@0x9FC00000 vmalloc=500M notifyk.vpssm3_sva=0xBF900000 ip=off noinitrd botcmd=mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm c0700000; bootcmd=if mmc rescan 0; then if run loadbootscript; then run bootscript; else echo In case ENV on MMC/SD is required; echo Please put a valid script named boot.scr on the card; echo Refer to the User Guide on how to generate the image; fi; else echo Please set bootargs and bootcmd before booting the kernel; echo If that has already been done please ignore this message; fi ver=U-Boot 2010.06 (Dec 24 2012 - 20:11:30) |
2. setting in ex01_helloworld/shared/config.bld
var SR_0 = { name: "SR_0", space: "data", access: "RWX", base: 0x9f700000, len: 0x200000, comment: "SR#0 Memory (2 MB)" };
Build.platformTable["ti.platforms.evmTI816X:dsp"] = { externalMemoryMap: [ [ SR_0.name, SR_0 ], [ "DSP_PROG", { name: "DSP_PROG", space: "code/data", access: "RWX", base: 0x99500000, len: 0xc00000, comment: "DSP Program Memory (12 MB)" }] ], codeMemory: "DSP_PROG", dataMemory: "DSP_PROG", stackMemory: "DSP_PROG", l1DMode: "32k", l1PMode: "32k", l2Mode: "256k" };
|
3. cf: shared region setting in ex01_helloworld/dsp/Dsp.cfg
SharedRegion.setEntryMeta(0, new SharedRegion.Entry({ name: "SR0", base: SR0Mem.base, len: SR0Mem.len, ownerProcId: MultiProc.getIdMeta("HOST"), cacheEnable: false, isValid: true }) );
|
4. execute run.sh at the target board
4-1. After booting, I stoped pvr-init, matrix-gui-e, load-hd-firmware.sh. And I executed 'modprobe syslink'. And I execute run.sh in ex01_helloworld.
Starting Matrix GUI application.
_____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___|
Arago Project http://arago-project.org dm816x-evm ttyO2
Arago 2011.09 dm816x-evm ttyO2
dm816x-evm login: root root@dm816x-evm:~# cd /etc/init.d root@dm816x-evm:/etc/init.d# ./pvr-init stop Stopping PVR root@dm816x-evm:/etc/init.d# ./matrix-gui-e stop Stopping Matrix GUI application. root@dm816x-evm:/etc/init.d# ./load-hd-firmware.sh stop Unloading HDVICP2 Firmware FIRMWARE: I2cInit will be done by M3 FIRMWARE: Memory map bin file not passed Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>] ===Mandatory arguments=== <Processor Id> 0: DSP, 1: Video-M3, 2: Vpss-M3 <Location of Firmware> firmware binary file <start|stop> to start/stop the firmware ===Optional arguments=== -mmap input memory map bin file name -i2c 0: i2c init not done by M3, 1(default): i2c init done by M3 FIRMWARE: isI2cInitRequiredOnM3: 1 FIRMWARE: Default memory configuration is used Firmware Loader debugging not configured Default FL_DEBUG: warning Allowed FL_DEBUG levels: error, warning, info, debug, log MemCfg: DCMM (Dynamically Configurable Memory Map) Version : 2.1.2.1 FIRMWARE: 1 stop Successful Unloading HDVPSS Firmware FIRMWARE: I2cInit will be done by M3 FIRMWARE: Memory map bin file not passed Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>] ===Mandatory arguments=== <Processor Id> 0: DSP, 1: Video-M3, 2: Vpss-M3 <Location of Firmware> firmware binary file <start|stop> to start/stop the firmware ===Optional arguments=== -mmap input memory map bin file name -i2c 0: i2c init not done by M3, 1(default): i2c init done by M3 FIRMWARE: isI2cInitRequiredOnM3: 1 FIRMWARE: Default memory configuration is used Firmware Loader debugging not configured Default FL_DEBUG: warning Allowed FL_DEBUG levels: error, warning, info, debug, log MemCfg: DCMM (Dynamically Configurable Memory Map) Version : 2.1.2.1 FIRMWARE: 2 stop Successful Removed syslink kernel module root@dm816x-evm:/etc/init.d# modprobe syslink SysLink version : 2.20.02.20 SysLink module created on Date:Dec 1 2015 Time:16:48:18 root@dm816x-evm:/etc/init.d# lsmod Module Size Used by syslink 1127187 0 ipv6 209855 12 root@dm816x-evm:/etc/init.d# cd /media/mmcblk0p1/ex01_helloworld/debug_1gbmap/ root@dm816x-evm:/media/mmcblk0p1/ex01_helloworld/debug_1gbmap# ls app_host run.sh server_dsp.xe674 slaveloader root@dm816x-evm:/media/mmcblk0p1/ex01_helloworld/debug_1gbmap# ./run.sh + ./slaveloader startup DSP server_dsp.xe674 Attached to slave procId 0. Loading procId 0. Loaded file server_dsp.xe674 on slave procId 0. Started slave procId 0. + ./app_host DSP remoteProcId = 0 3-1 3-3 <-- here, timed out! 4-1 4-2 2 (status:-1) + ./slaveloader shutdown DSP Stopped slave procId 0. Unloaded slave procId 0. Detached from slave procId 0. |
4-2.Problem: This run.sh is timed out at the line ‘status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_STARTCALLBACK, NULL);’ in ex01_helloworld/host/main_host.c.
Int Main_main(Void) { UInt16 remoteProcId; Int status = 0;
/* invoke the SysLink load callback */ remoteProcId = MultiProc_getId(Main_remoteProcName); printf("remoteProcId = %d\n", remoteProcId); status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_LOADCALLBACK, NULL); printf("3-1\n");
if (status < 0) { printf("3-2\n"); goto leave; } printf("3-3\n");
/* invoke the SysLink start callback */ status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_STARTCALLBACK, NULL); printf("4-1\n");
if (status < 0) { printf("4-2(status:%d)\n",status); goto leave; } printf("4-3\n");
|