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.

IUniversal Example Fails to Execute

Other Parts Discussed in Thread: OMAP3530

 

I’m trying to run the IUniversal FIR example on OMAP3 EVM.  It built with no problem at all.  I just included Rules.make from the DVSDK I’m using.  I get a run-time error.  It seems to be this message from dsplink:

 

/* The connection requested by the client already exists */

#define DSP_EALREADYEXISTS          (DSP_EBASE + 0x50l)

 

Ideas?  Here’s the complete dump if you’re interested.

 

root@omap3evm:/opt/dvsdk/omap3530# CE_DEBUG=2 ./remote_ti_platforms_evm3530_fir.xv5T

@0,128,571us: [+4 T:0x4001e620] OG - Global_init> This program was built with the following packages:

@0,128,876us: [+4 T:0x4001e620] OG -     package gnu.targets.arm.rtsv5T (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/gnu/targets/arm/rtsv5T/) [1, 0, 0, 0]

@0,128,937us: [+4 T:0x4001e620] OG -     package ti.sdo.algos.fir (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/iuniversal_examples_0_2/packages/ti/sdo/algos/fir/) [1, 0, 0]

@0,128,967us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.global (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/global/) [1, 0, 0]

@0,128,998us: [+4 T:0x4001e620] OG -     package dsplink.gpp (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/dsplink_linux_1_64_00_04/packages/dsplink/gpp/) [5, 0, 0]

@0,129,029us: [+4 T:0x4001e620] OG -     package ti.sdo.linuxutils.cmem (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/linuxutils_2_25_00_03/packages/ti/sdo/linuxutils/cmem/) [2, 2, 0]

@0,129,090us: [+4 T:0x4001e620] OG -     package ti.bios.power (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/local_power_manager_linux_1_24_01/packages/ti/bios/power/) [1, 1, 1]

@0,129,151us: [+4 T:0x4001e620] OG -     package gnu.targets (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/gnu/targets/) [1, 0, 1]

@0,129,151us: [+4 T:0x4001e620] OG -     package gnu.targets.arm (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/gnu/targets/arm/) [1, 0, 0, 0]

@0,129,181us: [+4 T:0x4001e620] OG -     package ti.sdo.utils.trace (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/utils/trace/) [1, 0, 0]

@0,129,242us: [+4 T:0x4001e620] OG -     package ti.xdais.dm (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/xdais_6_25_00_07/packages/ti/xdais/dm/) [1, 0, 5]

@0,129,273us: [+4 T:0x4001e620] OG -     package ti.xdais (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/xdais_6_25_00_07/packages/ti/xdais/) [1, 2.0, 1]

@0,129,303us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.node (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/node/) [1, 0, 0]

@0,129,334us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.utils.xdm (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/utils/xdm/) [1, 0, 2]

@0,129,364us: [+4 T:0x4001e620] OG -     package ti.sdo.fc.global (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/fc/global/) [1, 0, 0]

@0,129,395us: [+4 T:0x4001e620] OG -     package ti.sdo.fc.memutils (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/fc/memutils/) [1, 0, 0]

@0,129,425us: [+4 T:0x4001e620] OG -     package ti.sdo.fc.utils (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/fc/utils/) [1, 0, 2]

@0,129,456us: [+4 T:0x4001e620] OG -     package ti.sdo.fc.dman3 (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/fc/dman3/) [1, 0, 4]

@0,129,486us: [+4 T:0x4001e620] OG -     package ti.sdo.fc.acpy3 (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/framework_components_2_25_00_01/packages/ti/sdo/fc/acpy3/) [1, 0, 4]

@0,129,517us: [+4 T:0x4001e620] OG -     package ti.catalog.arm (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/ti/catalog/arm/) [1, 0, 1, 0]

@0,129,547us: [+4 T:0x4001e620] OG -     package ti.catalog (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/ti/catalog/) [1, 0, 0]

@0,129,578us: [+4 T:0x4001e620] OG -     package ti.catalog.c6000 (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/ti/catalog/c6000/) [1, 0, 0, 0]

@0,129,608us: [+4 T:0x4001e620] OG -     package ti.platforms.evm3530 (/mnt/sata2/opt/ti/xdctools_3_15_01_59/packages/ti/platforms/evm3530/) [1, 0, 0]

@0,129,639us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.osal (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/osal/) [2, 0, 2]

@0,464,722us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.osal.linux (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/osal/linux/) [2, 0, 1]

@0,464,752us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.ipc (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/ipc/) [2, 0, 1]

@0,464,813us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.ipc.dsplink (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/ipc/dsplink/) [2, 0, 1]

@0,464,844us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.alg (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/alg/) [1, 0, 1]

@0,464,874us: [+4 T:0x4001e620] OG -     package ti.sdo.ce (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/) [1, 0, 6]

@0,464,905us: [+4 T:0x4001e620] OG -     package ti.sdo.ce.universal (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/codec_engine_2_25_00_01/packages/ti/sdo/ce/universal/) [1, 0, 0]

@0,464,936us: [+4 T:0x4001e620] OG -     package ti.sdo.algos.fir.ce (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/iuniversal_examples_0_2/packages/ti/sdo/algos/fir/ce/) [1, 0, 0]

@0,464,966us: [+4 T:0x4001e620] OG -     package remote_ti_platforms_evm3530 (/mnt/sata0/WorkArea/Brad/omap3_dvsdk_3_01_00_03/dvsdk_3_01_00_03/iuniversal_examples_0_2/packages/ti/sdo/apps/fir/cfg/linux/remote_ti_platforms_evm3530/) []

@0,465,241us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Sem_create> count: 0

@0,465,302us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x431c0]

@0,465,332us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Sem_create> count: 0

@0,465,363us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x431d8]

@0,465,393us: [+0 T:0x4001e620] OT - Thread_create> Enter (fxn=0x13f6c, attrs=0x0)

@0,465,668us: [+0 T:0x4001e620] OT - Thread_create> Exit (task=0x43210)

@0,465,759us: [+0 T:0x4001e620] ti.sdo.ce.alg - ALG_init> Enter

@0,465,790us: [+0 T:0x4001e620] ti.sdo.ce.alg - ALG_init> Exit

@0,465,851us: [+6 T:0x4001e620] CE - Engine_init> CE debugging on (CE_DEBUG=2; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)

@0,465,912us: [+0 T:0x4001e620] CS - Server_init()

@0,465,943us: [+0 T:0x4001e620] CS - Server_init> Global_useLinkArbiter = 0

@0,465,973us: [+2 T:0x4001e620] ZZ - main> Welcome to app's main().

@0,466,065us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_alloc(14) = 0x40021000.

@0,466,126us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_getPhys(0x40021000) = 0x8642a000.

@0,466,187us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_alloc(32) = 0x40022000.

@0,466,217us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_getPhys(0x40022000) = 0x86429000.

@0,466,248us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_alloc(46) = 0x40023000.

@0,466,309us: [+4 T:0x4001e620] OM - Memory_contigAlloc> CMEM_getPhys(0x40023000) = 0x86428000.

App-> Application started.

@0,466,370us: [+0 T:0x4001e620] CE - Engine_open> Enter('firEngine', 0x0, 0xbed27c04)

@0,466,431us: [+0 T:0x4001e620] CE - rserverOpen('fir_unitserver_evm3530.x64P'), count = 0

@0,466,461us: [+0 T:0x4001e620] OP - Processor_create> Enter(imageName='fir_unitserver_evm3530.x64P', linkCfg='(null)', attrs=0xbed27be8)

@0,466,767us: [+1 T:0x40a31490] OP - daemon> thread created.

@0,466,828us: [+0 T:0x40a31490] OP - getCmd_d> Enter (proc=0x40a30dd8)

@0,467,102us: [+0 T:0x4001e620] OP - doCmd> Enter (cmdId=1, proc=0x43590)

@0,467,133us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x431c0]

@0,800,476us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x431c0]

@0,800,537us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x431d8] timeout[0xffffffff]

@0,800,598us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x431c0] timeout[0xffffffff]

@0,800,629us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x431c0] status[0]

@0,800,659us: [+0 T:0x40a31490] OP - getCmd_d> Exit (result=1)

@0,800,690us: [+0 T:0x40a31490] OP - Processor_create_d> Enter(proc=0x43590)

@0,800,720us: [+0 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_on> Enter(handle=0x435ac)

@0,800,751us: [+2 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_on> Opening Local Power Manager for the DSP on /dev/lpm0...

@0,800,843us: [+2 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_on> Turning on DSP power...

@0,800,995us: [+2 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_on> return (0)

@0,801,026us: [+2 T:0x40a31490] OP - Processor_create_d> Initializing DSP PROC...

@0,801,056us: [+2 T:0x40a31490] OP - Processor_create_d> Using DspLink config data for entry #0 [server 'fir_unitserver_evm3530.x64P']

@0,801,117us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #0 to Link configuration: name='DDR2', startAddress=0x87a00000, sizeInBytes=0x400000, shared=1, syncd=0

@0,801,178us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #1 to Link configuration: name='DSPLINKMEM', startAddress=0x87e00000, sizeInBytes=0x100000, shared=1, syncd=0

@0,801,209us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #2 to Link configuration: name='RESET_VECTOR', startAddress=0x87f00000, sizeInBytes=0x1000, shared=1, syncd=0

@0,801,239us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #3 to Link configuration: name='L4PER', startAddress=0x49000000, sizeInBytes=0x100000, shared=0, syncd=0

@0,801,300us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #4 to Link configuration: name='IRAM', startAddress=0x5c7f8000, sizeInBytes=0x8000,

shared=1, syncd=0

@0,801,331us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #5 to Link configuration: name='L1DSRAM', startAddress=0x5cf04000, sizeInBytes=0x10000, shared=1, syncd=0

@0,801,361us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #6 to Link configuration: name='DDRALGHEAP', startAddress=0x86800000, sizeInBytes=0x1200000, shared=0, syncd=0

@0,801,392us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #7 to Link configuration: name='L4CORE', startAddress=0x48000000, sizeInBytes=0x1000000, shared=0, syncd=0

@0,801,453us: [+2 T:0x40a31490] OP - Processor_create_d> Found 'CMEM' entry, adjusting base and size according to CMEM_getBlock()

@0,801,483us: [+0 T:0x40a31490] OP - Processor_create_d> Setting CMEM base to 0x86400000, size to 0xf00000

@0,801,514us: [+2 T:0x40a31490] OP - Processor_create_d> Adding DSP segment #8 to Link configuration: name='CMEM', startAddress=0x86400000, sizeInBytes=0xf00000, shared=0, syncd=0

@0,801,544us: [+2 T:0x40a31490] OP - Processor_create_d> DODSPCTRL was=0; now=0

@0,801,605us: [+3 T:0x40a31490] OP - LINKCFG_Object generated for PROC_setup(0x41a74) ...

@0,801,636us: [+3 T:0x40a31490] OP - linkCfg->gppObject->

@0,801,666us: [+3 T:0x40a31490] OP -   name = "ARM9"

@0,801,697us: [+3 T:0x40a31490] OP -   maxMsgqs = 0x82

@0,801,728us: [+3 T:0x40a31490] OP -   maxChnlQueue = 0x10

@0,801,758us: [+3 T:0x40a31490] OP -   poolTableId = 0xffffffff

@0,801,758us: [+3 T:0x40a31490] OP -   numPools = 0x0

@0,801,789us: [+3 T:0x40a31490] OP -

@0,801,819us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->dspObject->

@0,801,850us: [+3 T:0x40a31490] OP -   name = "OMAP3530"

@0,801,880us: [+3 T:0x40a31490] OP -   dspArch = 0x2

@0,801,911us: [+3 T:0x40a31490] OP -   loaderName = "COFF"

@0,801,941us: [+3 T:0x40a31490] OP -   autoStart = FALSE

@1,136,292us: [+3 T:0x40a31490] OP -   execName = "DEFAULT.OUT"

@1,136,322us: [+3 T:0x40a31490] OP -   doDspCtrl = DSP_BootMode_Boot_NoPwr

@1,136,353us: [+3 T:0x40a31490] OP -   resumeAddr = 0x87f00020

@1,136,383us: [+3 T:0x40a31490] OP -   resetVector = 0x87f00000

@1,136,414us: [+3 T:0x40a31490] OP -   resetCodeSize = 0x1000

@1,136,444us: [+3 T:0x40a31490] OP -   maduSize = 0x1

@1,136,475us: [+3 T:0x40a31490] OP -   cpuFreq = 0x6ddd0

@1,136,505us: [+3 T:0x40a31490] OP -   endian = 0x3

@1,136,536us: [+3 T:0x40a31490] OP -   wordSwap = 0x0

@1,136,536us: [+3 T:0x40a31490] OP -   memTableId = 0x0

@1,136,566us: [+3 T:0x40a31490] OP -   memEntries = 0x9

@1,136,597us: [+3 T:0x40a31490] OP -   linkDrvId = 0x0

@1,136,627us: [+3 T:0x40a31490] OP -   arg1 = 0xffffffff

@1,136,658us: [+3 T:0x40a31490] OP -   arg2 = 0xffffffff

@1,136,688us: [+3 T:0x40a31490] OP -   arg3 = 0x0

@1,136,719us: [+3 T:0x40a31490] OP -   arg4 = 0x0

@1,136,719us: [+3 T:0x40a31490] OP -   arg5 = 0xffffffff

@1,136,749us: [+3 T:0x40a31490] OP -

@1,136,780us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->linkDrvObjects->

@1,136,811us: [+3 T:0x40a31490] OP -   name = "SHMDRV"

@1,136,841us: [+3 T:0x40a31490] OP -   hshkPollCount = 0x989680

@1,136,872us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,136,902us: [+3 T:0x40a31490] OP -   ipsTableId = 0x0

@1,136,902us: [+3 T:0x40a31490] OP -   numIpsEntries = 0x1

@1,136,933us: [+3 T:0x40a31490] OP -   poolTableId = 0x0

@1,136,963us: [+3 T:0x40a31490] OP -   numPools = 0x1

@1,136,994us: [+3 T:0x40a31490] OP -   dataTableId = 0x0

@1,137,024us: [+3 T:0x40a31490] OP -   numDataDrivers = 0x1

@1,137,055us: [+3 T:0x40a31490] OP -   mqtId = 0x0

@1,137,085us: [+3 T:0x40a31490] OP -   ringIoTableId = 0x0

@1,137,116us: [+3 T:0x40a31490] OP -   mplistTableId = 0x0

@1,137,116us: [+3 T:0x40a31490] OP -   mpcsTableId = 0x0

@1,137,146us: [+3 T:0x40a31490] OP -

@1,137,177us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->memTables[0][i].

@1,137,207us: [+3 T:0x40a31490] OP - entry #0:

@1,137,238us: [+3 T:0x40a31490] OP -   entry = 0x0

@1,137,268us: [+3 T:0x40a31490] OP -   name = "DDR2"

@1,137,299us: [+3 T:0x40a31490] OP -   physAddr = 0x87a00000

@1,137,299us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x87a00000

@1,137,329us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,137,360us: [+3 T:0x40a31490] OP -   size = 0x400000

@1,137,390us: [+3 T:0x40a31490] OP -   shared = TRUE

@1,137,421us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,137,451us: [+3 T:0x40a31490] OP - entry #1:

@1,137,482us: [+3 T:0x40a31490] OP -   entry = 0x1

@1,137,482us: [+3 T:0x40a31490] OP -   name = "DSPLINKMEM"

@1,137,512us: [+3 T:0x40a31490] OP -   physAddr = 0x87e00000

@1,137,543us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x87e00000

@1,137,573us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,137,604us: [+3 T:0x40a31490] OP -   size = 0x100000

@1,137,634us: [+3 T:0x40a31490] OP -   shared = TRUE

@1,137,665us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,137,696us: [+3 T:0x40a31490] OP - entry #2:

@1,137,696us: [+3 T:0x40a31490] OP -   entry = 0x2

@1,137,726us: [+3 T:0x40a31490] OP -   name = "RESET_VECTOR"

@1,137,757us: [+3 T:0x40a31490] OP -   physAddr = 0x87f00000

@1,137,787us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x87f00000

@1,137,818us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,137,848us: [+3 T:0x40a31490] OP -   size = 0x1000

@1,137,879us: [+3 T:0x40a31490] OP -   shared = TRUE

@1,137,879us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,137,909us: [+3 T:0x40a31490] OP - entry #3:

@1,137,940us: [+3 T:0x40a31490] OP -   entry = 0x3

@1,137,970us: [+3 T:0x40a31490] OP -   name = "L4PER"

@1,138,001us: [+3 T:0x40a31490] OP -   physAddr = 0x49000000

@1,138,031us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x49000000

@1,472,016us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,472,046us: [+3 T:0x40a31490] OP -   size = 0x100000

@1,472,077us: [+3 T:0x40a31490] OP -   shared = FALSE

@1,472,107us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,472,138us: [+3 T:0x40a31490] OP - entry #4:

@1,472,138us: [+3 T:0x40a31490] OP -   entry = 0x4

@1,472,168us: [+3 T:0x40a31490] OP -   name = "IRAM"

@1,472,199us: [+3 T:0x40a31490] OP -   physAddr = 0x5c7f8000

@1,472,229us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x107f8000

@1,472,260us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,472,290us: [+3 T:0x40a31490] OP -   size = 0x8000

@1,472,290us: [+3 T:0x40a31490] OP -   shared = TRUE

@1,472,321us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,472,351us: [+3 T:0x40a31490] OP - entry #5:

@1,472,382us: [+3 T:0x40a31490] OP -   entry = 0x5

@1,472,412us: [+3 T:0x40a31490] OP -   name = "L1DSRAM"

@1,472,443us: [+3 T:0x40a31490] OP -   physAddr = 0x5cf04000

@1,472,443us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x10f04000

@1,472,473us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,472,504us: [+3 T:0x40a31490] OP -   size = 0x10000

@1,472,534us: [+3 T:0x40a31490] OP -   shared = TRUE

@1,472,565us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,472,595us: [+3 T:0x40a31490] OP - entry #6:

@1,472,595us: [+3 T:0x40a31490] OP -   entry = 0x6

@1,472,626us: [+3 T:0x40a31490] OP -   name = "DDRALGHEAP"

@1,472,656us: [+3 T:0x40a31490] OP -   physAddr = 0x86800000

@1,472,687us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x86800000

@1,472,717us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,472,748us: [+3 T:0x40a31490] OP -   size = 0x1200000

@1,472,748us: [+3 T:0x40a31490] OP -   shared = FALSE

@1,472,779us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,472,809us: [+3 T:0x40a31490] OP - entry #7:

@1,472,840us: [+3 T:0x40a31490] OP -   entry = 0x7

@1,472,870us: [+3 T:0x40a31490] OP -   name = "L4CORE"

@1,472,901us: [+3 T:0x40a31490] OP -   physAddr = 0x48000000

@1,472,901us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x48000000

@1,472,931us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,472,962us: [+3 T:0x40a31490] OP -   size = 0x1000000

@1,472,992us: [+3 T:0x40a31490] OP -   shared = FALSE

@1,473,023us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,473,053us: [+3 T:0x40a31490] OP - entry #8:

@1,473,084us: [+3 T:0x40a31490] OP -   entry = 0x8

@1,473,084us: [+3 T:0x40a31490] OP -   name = "CMEM"

@1,473,114us: [+3 T:0x40a31490] OP -   physAddr = 0x86400000

@1,473,145us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x86400000

@1,473,175us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff

@1,473,206us: [+3 T:0x40a31490] OP -   size = 0xf00000

@1,473,236us: [+3 T:0x40a31490] OP -   shared = FALSE

@1,473,236us: [+3 T:0x40a31490] OP -   syncd = FALSE

@1,473,267us: [+3 T:0x40a31490] OP -

@1,473,297us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->ipsTables[0][i].

@1,473,328us: [+3 T:0x40a31490] OP - entry #0:

@1,473,358us: [+3 T:0x40a31490] OP -   name = "IPS"

@1,473,389us: [+3 T:0x40a31490] OP -   numIpsEvents = 0x20

@1,473,419us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,473,419us: [+3 T:0x40a31490] OP -   gppIntId = 0x1a

@1,473,450us: [+3 T:0x40a31490] OP -   dspIntId = 0x37

@1,473,480us: [+3 T:0x40a31490] OP -   dspIntVectorId = 0x5

@1,473,511us: [+3 T:0x40a31490] OP -   arg1 = 0x2faf080

@1,473,541us: [+3 T:0x40a31490] OP -   arg2 = 0x0

@1,473,572us: [+3 T:0x40a31490] OP -

@1,473,602us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->poolTables[0][i].

@1,473,633us: [+3 T:0x40a3149Entry exists for address: [0x86800000] size: [0x100000]

0] OP -

@1,473,633us: [+3 T:0x DSP_init status [0x80008050]

40a31490] OP - linkCfg->dspConfigs[0]->dataTables[0][i].

@1,473,664us: [+3 T:0x40a31490] OP - entry #0:

@1,473,694us: [+3 T:0x40a31490] OP -   name = "ZCPYDATA"

@1,473,725us: [+3 T:0x40a31490] OP -   baseChnlId = 0x0

@1,473,755us: [+3 T:0x40a31490] OP -   numChannels = 0x10

@1,807,801us: [+3 T:0x40a31490] OP -   maxBufSize = 0x4000

@1,807,831us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,807,862us: [+3 T:0x40a31490] OP -   poolId = 0x0

@1,807,892us: [+3 T:0x40a31490] OP -   queuePerChnl = 0x1

@1,807,923us: [+3 T:0x40a31490] OP -   ipsId = 0x0

@1,807,923us: [+3 T:0x40a31490] OP -   ipsEventNo = 0x1

@1,807,953us: [+3 T:0x40a31490] OP -   arg1 = 0x0

@1,807,984us: [+3 T:0x40a31490] OP -   arg2 = 0x0

@1,808,014us: [+3 T:0x40a31490] OP -

@1,808,045us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->mqtObjects->

@1,808,075us: [+3 T:0x40a31490] OP -   name = "ZCPYMQT"

@1,808,106us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,808,136us: [+3 T:0x40a31490] OP -   maxMsgSize = 0xffffffff

@1,808,136us: [+3 T:0x40a31490] OP -   ipsId = 0x0

@1,808,167us: [+3 T:0x40a31490] OP -   ipsEventNo = 0x0

@1,808,197us: [+3 T:0x40a31490] OP -   arg1 = 0x0

@1,808,228us: [+3 T:0x40a31490] OP -   arg2 = 0x0

@1,808,258us: [+3 T:0x40a31490] OP -

@1,808,289us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->ringIoObjects->

@1,808,319us: [+3 T:0x40a31490] OP -   name = "RINGIOTABLE"

@1,808,350us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,808,350us: [+3 T:0x40a31490] OP -   maxEntries = 0x40

@1,808,380us: [+3 T:0x40a31490] OP -   ipsId = 0x0

@1,808,411us: [+3 T:0x40a31490] OP -   ipsEventNo = 0x2

@1,808,441us: [+3 T:0x40a31490] OP -

@1,808,472us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->mplistObjects->

@1,808,502us: [+3 T:0x40a31490] OP -   name = "MPLISTTABLE"

@1,808,533us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,808,533us: [+3 T:0x40a31490] OP -   maxEntries = 0x40

@1,808,563us: [+3 T:0x40a31490] OP -   ipsId = 0xffffffff

@1,808,594us: [+3 T:0x40a31490] OP -   ipsEventNo = 0xffffffff

@1,808,624us: [+3 T:0x40a31490] OP -

@1,808,655us: [+3 T:0x40a31490] OP - linkCfg->dspConfigs[0]->mpcsObjects->

@1,808,686us: [+3 T:0x40a31490] OP -   name = "MPCS"

@1,808,716us: [+3 T:0x40a31490] OP -   memEntry = 0x1

@1,808,716us: [+3 T:0x40a31490] OP -   maxEntries = 0x100

@1,808,747us: [+3 T:0x40a31490] OP -   ipsId = 0xffffffff

@1,808,777us: [+3 T:0x40a31490] OP -   ipsEventNo = 0xffffffff

@1,809,754us: [+2 T:0x40a31490] OP - Processor_create_d> Attaching to DSP PROC...

@1,821,625us: [+7 T:0x40a31490] OP - Processor_create_d> Loading and starting DSP server 'fir_unitserver_evm3530.x64P' FAILED, status=[0x80008050] (look for error code 'DSP_EBASE + 0x50' in dsplink*/packages/dsplink/gpp/inc/usr/errbase.h)

@1,821,686us: [+0 T:0x40a31490] OP - Processor_delete_d> Enter (proc=0x43590)

@1,821,991us: [+2 T:0x40a31490] OP - Processor_delete_d> Closing remote transport...

@1,822,235us: [+6 T:0x40a31490] OP - Processor_delete_d> Closing remote transport FAILED, status=0x80008002.

@1,822,296us: [+2 T:0x40a31490] OP - Processor_delete_d> Stopping DSP...

@1,822,846us: [+6 T:0x40a31490] OP - Processor_delete_d> Stopping DSP FAILED, status=0x80008002

@1,822,907us: [+2 T:0x40a31490] OP - Processor_delete_d> Closing pool...

@1,822,937us: [+6 T:0x40a31490] OP - Processor_delete_d> Closing pool FAILED, status=0x80008000

@1,822,998us: [+2 T:0x40a31490] OP - Processor_delete_d> Detaching from DSP...

@1,823,029us: [+6 T:0x40a31490] OP - Processor_delete_d> Detaching from DSP FAILED, status=0x80008000

@1,823,059us: [+2 T:0x40a31490] OP - Processor_delete_d> Destroying DSP... (object, that is)

@1,823,334us: [+0 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_off> Enter (handle=0x435b8)

@1,823,395us: [+2 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_off> Turning off DSP power...

@1,823,487us: [+2 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_off> Closing Local Power Manager object...

@1,823,578us: [+0 T:0x40a31490] ti.sdo.ce.ipc.Power - Power_off> return (0)

@1,823,609us: [+0 T:0x40a31490] OP - Processor_delete_d> return

@1,823,639us: [+2 T:0x40a31490] OP - Processor_create_d> return (0)

@2,156,983us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x431d8]

@2,157,044us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x431d8] status[0]

@2,157,105us: [+0 T:0x4001e620] OP - doCmd> Exit (result=2)

@2,157,135us: [+0 T:0x4001e620] OP - Processor_delete> Enter(proc=0x43590)

@2,157,166us: [+1 T:0x4001e620] OP - Processor_delete(0x43590) freeing object ...

@2,157,196us: [+0 T:0x4001e620] OP - Processor_delete> return.

@2,157,227us: [+6 T:0x4001e620] CE - rserverOpen: can't start 'fir_unitserver_evm3530.x64P'; Processor_create failed

@2,157,257us: [+0 T:0x4001e620] CE - rserverOpen('fir_unitserver_evm3530.x64P'): 0x0 done.

@2,157,288us: [+0 T:0x4001e620] CE - Engine_close(0x43560)

@2,157,318us: [+0 T:0x4001e620] CS - Server_disconnectTrace('0x43560', 0x0)

@2,157,349us: [+0 T:0x4001e620] CS - Server_connectTrace> return(0)

@2,157,379us: [+0 T:0x4001e620] CE - Engine_open> return(0)

app: error: can't open engine firEngine

app ended.

@2,157,532us: [+0 T:0x4001e620] OP - doCmd> Enter (cmdId=3, proc=0x0)

@2,157,562us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x431c0]

@2,157,593us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x431c0]

@2,157,623us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x431d8] timeout[0xffffffff]

@2,157,685us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x431d8]

@2,157,715us: [+0 T:0x40a31490] OP - getCmd_d> Enter (proc=0x40a30dd8)

@2,157,746us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x431c0] timeout[0xffffffff]

@2,157,776us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x431c0] status[0]

@2,157,807us: [+0 T:0x40a31490] OP - getCmd_d> Exit (result=3)

@2,157,837us: [+0 T:0x40a31490] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x431d8]

@2,157,868us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x431d8] status[0]

@2,157,898us: [+0 T:0x4001e620] OP - doCmd> Exit (result=1)

@2,157,929us: [+0 T:0x4001e620] OT - Thread_delete> Enter (task=0x43210)

@2,158,112us: [+4 T:0x4001e620] OT - Thread_delete> pthread_cancel (0x0)

@2,158,631us: [+4 T:0x4001e620] OT - Thread_delete> pthread_join (0x0)

@2,158,692us: [+0 T:0x4001e620] OT - Thread_delete> Exit (task=0x43210)

@2,158,722us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_delete> sem[0x431c0]

@2,158,753us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_delete>

@2,158,783us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Entered Sem_delete> sem[0x431d8]

@2,158,814us: [+0 T:0x4001e620] ti.sdo.ce.osal.Sem - Leaving Sem_delete>

 

 

  • CMEM is overlapping DDRALGHEAP.  DSP_EALREADYEXISTS is probably coming from the MMU mapping in Link - when it tries to map the CMEM entry, the map [incorrectly] "already exists".

    Brad Griffis said:
    @1,472,626us: [+3 T:0x40a31490] OP -   name = "DDRALGHEAP"
    @1,472,656us: [+3 T:0x40a31490] OP -   physAddr = 0x86800000
    @1,472,687us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x86800000
    @1,472,717us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff
    @1,472,748us: [+3 T:0x40a31490] OP -   size = 0x1200000
    @1,472,748us: [+3 T:0x40a31490] OP -   shared = FALSE
    @1,472,779us: [+3 T:0x40a31490] OP -   syncd = FALSE
    ...

    @1,473,053us: [+3 T:0x40a31490] OP - entry #8:

    @1,473,084us: [+3 T:0x40a31490] OP -   entry = 0x8
    @1,473,084us: [+3 T:0x40a31490] OP -   name = "CMEM"
    @1,473,114us: [+3 T:0x40a31490] OP -   physAddr = 0x86400000
    @1,473,145us: [+3 T:0x40a31490] OP -   dspVirtAddr = 0x86400000
    @1,473,175us: [+3 T:0x40a31490] OP -   gppVirtAddr = 0xffffffff
    @1,473,206us: [+3 T:0x40a31490] OP -   size = 0xf00000
    @1,473,236us: [+3 T:0x40a31490] OP -   shared = FALSE
    @1,473,236us: [+3 T:0x40a31490] OP -   syncd = FALSE

    Chris

  • [Kicking self...]

    Thanks, Chris.  Should have seen that one coming!  I didn't pay much attention to the memory map because I thought it was all setup properly.  I forgot about the fact that I'm mixing the memory map from the IUniversal examples with the memory map from the DVSDK.

    Enhancement request:  Can you have Codec Engine check specifically for this issue at run-time?  Perhaps inside the CE_DEBUG if you're concerned at all about performance?  Since CE "knows" about all the memory specified in server.tcf it can verify it doesn't overlap any of those sections.  This is a really common mistake which doubly bugs me that I made it!  :)  It would be nice if CMEM could check if it overlaps the Linux memory (i.e. the mem= specified in u-boot bootargs) though I have no idea if that's technically feasible or not.  That's another common mistake...

  • PS. Here's the short output from that same example:

    root@omap3evm:/opt/dvsdk/omap3530# ./remote_ti_platforms_evm3530_fir.xv5T
    @0x000c828e:[T:0x4001e620] ZZ - Entry exists for address: [0x86800000] size: [0x100000]
    main> Welcome to app's main().
     DSP_init status [0x80008050]
    App-> Application started.
    app: error: can't open engine firEngine
    app ended.

    Do you know if the line in red is intended to warn me that I've overlapped sections?  If so, it needs to be a lot more explicit!  I couldn't even tell if that was a status message of some sort or an error!  If it's an error it should say the word "error".  Also, I have no clue what ZZ means.  Is there a wiki page with a CE_DEBUG decoder for all those 2-letter abbreviations?  I didn't see it on the wiki.

  • A few things:

       * "ZZ" isn't one of CE's masks, but is often used in examples as an "example" trace mask.  Look through your example app's code (app.c's main() fxn?) for a GT_create() call that uses "ZZ".  If you find it, you'll probably also find a call from your app that's printing "main> Welcome to app's main()".

       * The "Entry exists" error msg above is [confusingly] not coming from the "ZZ" module.  It's an error that's coming out the console (maybe from Link in kernel mode?) - you're just running your app from the console so you're seeing both your app trace and kernel trace in the same window.  Even more confusingly [and coincidentally!], it happens to be coming after the "ZZ - " trace prefix, so it looks like it's coming from the "ZZ" module(!) - but it's not.  You can see this error msg coming out the console in your original [big] trace dump, too - it was hidden among the Link config trace there.  If you telnet into your board and run your app from that shell, I think it will be clear that this "Entry exists for address" msg is coming out the console (serial port), not from the app.

       * CE's 2 letter abbreviations (and newer 'full package' prefixes) are documented here:  http://tiexpressdsp.com/index.php/Codec_Engine_Application_Developers_Guide#Trace_Mask_Values

       * CMEM has reported an error when it's overlapping kernel memory for "a long time" - at least 2 years.  In Linux Utils 2.10 (March 2008) we added the 'allowOverlap' flag to enable you to bypass this warning for those that know what they're doing... so I know the warning at least pre-dates that.

    Chris

  • Brad Griffis said:
    It would be nice if CMEM could check if it overlaps the Linux memory (i.e. the mem= specified in u-boot bootargs) though I have no idea if that's technically feasible or not.  That's another common mistake...

    In changing up the memory map I managed to screw this one up a moment ago too!  Time to go home I think.  :)  The good news is that CMEM has already implemented this check so it immediately TOLD me that I had screwed up.

    Chris, looks like your product is the last piece of the puzzle to add the check (i.e. to check if CMEM overlaps the server)!  I think you can save yourself a lot of work by adding it.  :)

  • FWIW, we don't know until runtime where CMEM will be in the memory map (good!  It's flexible and isn't bound into the Server!), so a build-time check isn't possible.  Any other segment overlaps should be caught by the linker when building the Server - it's just the CMEM overlap check that happens late at runtime.

    The CMEM segment overlapping check is already being done in Link and an error is [correctly] being returned; it would be redundant for CE to do this check.  Since 1) it's complex, and 2) redundancy != good, CE shouldn't add this check.

    Perhaps the error from Link could be clearer(?), but thanks to Google, this thread is archived forever and should help future generations.  Look, it's already there!  http://lmgtfy.com/?q=DSP_EALREADYEXISTS&l=1

    Chris

  • Chris Ring said:
    FWIW, we don't know until runtime where CMEM will be in the memory map (good!  It's flexible and isn't bound into the Server!), so a build-time check isn't possible.

    Sorry if I wasn't clear -- the request is for a run-time check.

    Chris Ring said:
    The CMEM segment overlapping check is already being done in Link and an error is [correctly] being returned; it would be redundant for CE to do this check.  Since 1) it's complex, and 2) redundancy != good, CE shouldn't add this check.

    The check being performed by dsplink is to see if an MMU entry already exists for the entry specified.  Since OMAP3530 is the only processor with an MMU on the DSP, that means this check is ONLY being performed in the context of OMAP3530.  Further, the error DSP_EALREADYEXISTS is used in multiple contexts.  In other words, DSP_EALREADYEXISTS does not always equate to overlapping memory sections.

    Chris Ring said:
    Perhaps the error from Link could be clearer(?), but thanks to Google, this thread is archived forever and should help future generations.  Look, it's already there!  http://lmgtfy.com/?q=DSP_EALREADYEXISTS&l=1

    I don't think Google should be used as a band-aid for unclear error messages.  I'm amazed at how fast Google was able to index this thread, but I'd much rather be amazed at how quickly TI can make a small change to prevent common and nasty errors made by the users.

    I'm not asking for an API change, just a sanity check of the memory map.  As you already indicated, overlaps within the server itself would be caught at build time by the linker.  So the only check I'm asking is for you to see if CMEM overlaps the server memory.  Can you elaborate on your hesitation?  I would guess that a significant percentage (half?) of errors, at least for beginners, is caused by inconsistent memory map.  Even experienced users can bungle it...

  • Brad Griffis said:
    The check being performed by dsplink is to see if an MMU entry already exists for the entry specified.  Since OMAP3530 is the only processor with an MMU on the DSP, that means this check is ONLY being performed in the context of OMAP3530.

    I buy this.  I'll file an enhancement request.

    Doing runtime "sanity checks" is a slippery slope and causes code bloat.  Given that this check would only be done in large memory systems where DSP Link and a HLOS are running, and that they're only done at Engine_open() time, I think I'm ok with this one.

    Chris

  • Chris Ring said:
    I buy this.  I'll file an enhancement request.

    Great!  This is going to save everyone a LOT of time chasing down these types of issues.

    Chris Ring said:
    Doing runtime "sanity checks" is a slippery slope and causes code bloat.

    Agreed.  This is very similar to a lot of the instrumentation in the code.  It serves the purpose of helping you diagnose issues but comes at the expense of code bloat.  I imagine you have a switch to throw to remove all that instrumentation.  This code could/should be controlled by that same switch.