Hello,
Kindly help me is fixing the syslink examples problem:
Problem: I am seeing stack traces when I run syslink messageq example in DM8148 board.
Description: I compile linux-omap3 kernel with GCC 4.6.3 toolchain. When I load this kernel, kernel panic occurs.
The stack indicates "omap_mbox_get" function "strcmp": "if (!strcmp(mbox->name, name))" ==> mbox->name has null and kernel panic occurs.
To overcome the kernel panic, I did not include CONFIG_SYSLINK_NOTIFY during kernel compilation.
Then I built syslink. Following is the products.mak and it indicates the various version of tools used in syslink compilation.
DEPOT = _your_depot_folder_
DEVICE = TI814X
GPPOS = Linux
SDK = NONE
TI81XXDSP_DMTIMER_FREQ = 20000000
SYSLINK_BUILD_DEBUG = 1
SYSLINK_BUILD_OPTIMIZE = 0
SYSLINK_TRACE_ENABLE = 1
LOADER = ELF
SYSLINK_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/syslink_2_10_06_28
IPC_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/install/ipc_1_24_03_32
BIOS_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/install/bios_6_33_05_46
XDC_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/install/xdctools_3_23_03_53
LINUXKERNEL = /home/anbarasan/build/dm8148_syslink/linux-omap3_latest/
QNX_INSTALL_DIR = _your_depot_folder_/_your_qnx_install_
CGT_ARM_PREFIX = /home/anbarasan/build/dm8148_syslink/toolchain/bin/armv7l-timesys-linux-gnueabi-
CGT_C64P_INSTALL_DIR =
CGT_C64P_ELF_INSTALL_DIR =
CGT_C674_INSTALL_DIR =
CGT_C674_ELF_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/install/cgt
CGT_M3_ELF_INSTALL_DIR = /home/anbarasan/build/dm8148_syslink/install/ccsv5/tools/compiler/tms470_4.9.1
CGT_A8_ELF_INSTALL_DIR =
EXEC_DIR = /home/anbarasan/build/dm8148_syslink/rfs
After booting linux kernel, I did:
# insmod /lib/modules/2.6.37+/kernel/drivers/dsp/syslink.ko
SysLink version : 2.10.06.28
SysLink module created on Date:Jul 3 2012 Time:15:58:10
Then export TRACE=1, export TRACEFAILURE=1
Then cd /ti/syslink-examples/TI814X/messageq/
# ./run_messageqapp_debug.sh
======== Running app using slaveloader ========
Attached to slave procId 0.
Loading procId 0.
BUG: Your driver calls ioremap() on system memory. This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release. Please fix your driver.
------------[ cut here ]------------
WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x194()
Modules linked in: syslink
Backtrace:
[<c004edc8>] (dump_backtrace+0x0/0x110) from [<c03c6cf0>] (dump_stack+0x18/0x1c)
r6:c0493c2a r5:000000d3 r4:00000000 r3:60000013
[<c03c6cd8>] (dump_stack+0x0/0x1c) from [<c0073a40>] (warn_slowpath_common+0x54/0x6c)
[<c00739ec>] (warn_slowpath_common+0x0/0x6c) from [<c0073a7c>] (warn_slowpath_null+0x24/0x2c)
r8:00029e20 r7:00000000 r6:00000000 r5:0008b000 r4:00029e20
r3:00000009
[<c0073a58>] (warn_slowpath_null+0x0/0x2c) from [<c00529d4>] (__arm_ioremap_pfn_caller+0x58/0x194)
[<c005297c>] (__arm_ioremap_pfn_caller+0x0/0x194) from [<c0052b8c>] (__arm_ioremap_caller+0x5c/0x64)
[<c0052b30>] (__arm_ioremap_caller+0x0/0x64) from [<c0065004>] (omap_ioremap+0x60/0x64)
r4:8b000000
[<c0064fa4>] (omap_ioremap+0x0/0x64) from [<bf036168>] (MemoryOS_map+0x1f4/0x3a4 [syslink])
r7:00000002 r6:d4df9000 r5:00000000 r4:cc1adc60
[<bf035f74>] (MemoryOS_map+0x0/0x3a4 [syslink]) from [<bf005d34>] (_ProcMgr_map+0x1f0/0x4d4 [syslink])
r7:00000002 r6:d4df9000 r5:cc1adcc8 r4:00000001
[<bf005b44>] (_ProcMgr_map+0x0/0x4d4 [syslink]) from [<bf011278>] (ElfLoaderTrgWrite_copy+0x114/0x384 [syslink])
[<bf011164>] (ElfLoaderTrgWrite_copy+0x0/0x384 [syslink]) from [<bf015c48>] (DLIF_copy+0x10/0x1c [syslink])
[<bf015c38>] (DLIF_copy+0x0/0x1c [syslink]) from [<bf014450>] (DLOAD_load+0x740/0xa60 [syslink])
[<bf013d10>] (DLOAD_load+0x0/0xa60 [syslink]) from [<bf010960>] (ElfLoader_load+0x268/0x374 [syslink])
[<bf0106f8>] (ElfLoader_load+0x0/0x374 [syslink]) from [<bf001bb4>] (Loader_load+0xe4/0x160 [syslink])
[<bf001ad0>] (Loader_load+0x0/0x160 [syslink]) from [<bf0041e0>] (ProcMgr_load+0x224/0x304 [syslink])
[<bf003fbc>] (ProcMgr_load+0x0/0x304 [syslink]) from [<bf008928>] (ProcMgrDrv_ioctl+0xa84/0x19f8 [syslink])
[<bf007ea4>] (ProcMgrDrv_ioctl+0x0/0x19f8 [syslink]) from [<c00d833c>] (do_vfs_ioctl+0x4d4/0x548)
r8:00000000 r7:00000007 r6:c020e0a2 r5:cc18dd00 r4:befdbc18
[<c00d7e68>] (do_vfs_ioctl+0x0/0x548) from [<c00d8408>] (sys_ioctl+0x58/0x7c)
r9:cc1ac000 r8:00000000 r7:00000007 r6:c020e0a2 r5:befdbc18
r4:cc18dd00
[<c00d83b0>] (sys_ioctl+0x0/0x7c) from [<c004b280>] (ret_fast_syscall+0x0/0x30)
r8:c004b428 r7:00000036 r6:befdbc5c r5:00000000 r4:befdbf08
---[ end trace 7d82e7345d7e0d85 ]---
BUG: Your driver calls ioremap() on system memory. This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release. Please fix your driver.
------------[ cut here ]------------
WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x194()
Modules linked in: syslink
Backtrace:
[<c004edc8>] (dump_backtrace+0x0/0x110) from [<c03c6cf0>] (dump_stack+0x18/0x1c)
r6:c0493c2a r5:000000d3 r4:00000000 r3:60000013
and the trace continues....