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.

dsplink error: DSP-side configuration mismatch/failure on dm6467

      I upgrate the kernel of dm6467 from kernel-2.6.18 to kernel-2.6.32 and install the new sdk dvsdk_3_10_00_19. Rebuid the dvsdk with default dsplink and cmem files and run the app.out on dm6467,it gives the follwing error.
# ./app.out
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ALLOC: invalid pool (49) passed.
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ALLOC: invalid pool (52) passed.
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ALLOC: invalid pool (50) passed.
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ALLOC: invalid pool (51) passed.
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 26368, must be < 2
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 536873475, must be < 2
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ALLOC: invalid pool (5) passed.
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 768, must be < 2
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 256, must be < 2
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 218106880, must be < 2
CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
CMEMK Error: ioctl: invalid block id 201329920, must be < 2
DSP-side configuration mismatch/failure
0              -> success
Positive value -> DSP-side failure code.
(Uint32) -1    -> DSP-side component was not initialized.

    ProcId received : -677773827, Expected : 0
    DRV configuration status       [0x3]
    IPS configuration status         [0xffffffff]
    POOL configuration status    [0xffffffff]
    MPCS configuration status    [0xffffffff]
    MPLIST configuration status [0xffffffff]
    MQT configuration status       [0xffffffff]
    RINGIO configuration status [0xffffffff]

My configuration is as follows:

1.
Rules.make (/home/dm6467/dvsdk_3_10_00_19/Rules.make)

PLATFORM=dm6467

DVSDK_INSTALL_DIR=/home/dm6467/dvsdk_3_10_00_19
CODEGEN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cgt6x_6_1_12
LINUXKERNEL_INSTALL_DIR=/home/dm6467/workdir/kernel-2.6.32
LINUXLIBS_INSTALL_DIR=/home/dm6467/dvsdk_3_10_00_19/opt/arago-2009.11/arm-none-linux-gnueabi/usr
CSTOOL_DIR=/opt/arm-2009q1
CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-none-linux-gnueabi-

2.
xdcpaths.mak(/home/dm6467/dvsdk_3_10_00_19/codec_engine_2_25_05_16/examples/ti/sdo/ce/examples/xdcpaths.mak)
HOMEE=/home/dm6467/dvsdk_3_10_00_19
CE_INSTALL_DIR        := $(HOMEE)/codec_engine_2_25_05_16
XDC_INSTALL_DIR       := $(HOMEE)/xdctools_3_16_01_27
BIOS_INSTALL_DIR      := $(HOMEE)/bios_5_41_00_06
DSPLINK_INSTALL_DIR   := $(HOMEE)/dsplink_linux_1_64
XDAIS_INSTALL_DIR     := $(HOMEE)/xdais_6_25_02_11
FC_INSTALL_DIR        := $(HOMEE)/framework_components_2_25_02_06
CMEM_INSTALL_DIR      := $(HOMEE)/linuxutils_2_25_04_10
WINCEUTILS_INSTALL_DIR:= $(HOMEE)/winceutils_1_00_03_13
BIOSUTILS_INSTALL_DIR := $(HOMEE)/biosutils_1_02_02
EDMA3_LLD_INSTALL_DIR := $(HOMEE)/edma3_lld_01_11_00_03
LPM_INSTALL_DIR       := $(HOMEE)/local_power_manager_1_23_01

CGTOOLS_V5T := /opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le
CC_V5T := bin/arm_v5t_le-gcc
CGTARGET := gnu.targets.arm.GCArmv5T

CGTOOLS_UCARM9 := /opt/arm-2009q1
CC_UCARM9 :=/bin/arm-none-linux-gnueabi-gcc

CGTOOLS_C64P = /home/dm6467/dvsdk_3_10_00_19/cgt6x_6_1_12
CC_C64P      = bin/cl6x

3.
/home/dm6467/dvsdk_3_10_00_19/codec_engine_2_25_05_16/examples/ti/sdo/ce/examples/servers/all_codecs/
var mem_ext = [// will use for cmem: base: 0x87800000 (120MB offset), size: 0x04200000 (66MB)
 {   comment:    "DDRALGHEAP: off-chip memory for dynamic algmem allocation",
     name:       "DDRALGHEAP",
     base:       0x8BA00000,
     len:          0x3000000,   // 48MB
     space:      "code/data" },

 {   comment:    "DDR2: off-chip memory for code and data",
     name:       "DDR2",
     base:        0x8EA00000,   // 250MB offset
     len:           0x01400000,   // 4MB size
     space:      "code/data" },

 {   comment:    "DSPLINK: off-chip memory for DSPLINK code and data",
     name:       "DSPLINKMEM",
     base:        0x8FE00000,   // 254MB
     len:           0x00100000,   // 1MB
     space:      "code/data" },

 {   comment:    "RESET_VECTOR: off-chip memory for the reset vector table",
     name:       "RESET_VECTOR",
     base:       0x8FF00000,
     len:           0x00000080,
     space:      "code/data" },
 ];  /* Specify the L2 memory setting */

4.
loadmodules.sh
insmod cmemk.ko phys_start=0x87800000 phys_end=0x8ba00000 pools=11x414720,13x1200,13x3841600,30x207360,1x1049000,3x1468800
insmod dsplinkk.ko
mknod /dev/dsplink c 230 0

5.setenv bootcmd=nand read 80700000 160000 200000;bootm 80700000

Who can tell me what caused the DSP-side configuration mismatch/failure error?
Thanks!

  • Mary Green said:
    CMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)

    Have you rebuilt your app after building the new SDK?

    It appears that your app was built with a Linux Utils release that is older than the one from which the cmemk.ko kernel module came.  The application is issuing ioctl() commands that are not understood by the newer cmemk.ko module.  Please ensure that you link you application with the cmem.a* libraries that are in the same Linux Utils release as the cmemk.ko that you're insmod'ing with loadmodules.sh.

    Regards,

    - Rob