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.

c6accel on beagleboard (cmem error)

Other Parts Discussed in Thread: OMAP3530

Hi,

I'm trying to utilize DSP inside OMAP3530 on beagleboard for general signal processing tasks.I download DVSDK (4.00.00.22). First compile dsplink module and sample codes, and be able to run on beagleboard (loopapp). Then I compile c6accel modules and sample codes (using the Makefile under the root directory of DVSDK), and loading them using following instructions:

# insmod cmemk.ko

# modprobe cmemk phys_start=0x86300000 phys_end=0x87200000 pools=20x4096 allowOverlap=1

# insmod dsplinkk.ko

# insmod lpm_omap3530.ko

# mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0

 

Then when I execute "./c6accel_app" on beagleboard, I got the following error:

******************************************************************************
Sample application for testing kernels in C6Accel started.
******************************************************************************
CMEM Error: getBlock: Failed to retrieve memory block bounds for block 0 from driver: -1.
CMEM Error: allocHeap: ioctl CMEM_IOCALLOCHEAPCACHED failed: -1
******************************************************************************
All tests done.
******************************************************************************

 

I'm new to beagleboard and TI DSP tools, and have no idea how to proceed. Can anyone tell me what's wrong inside?

 

Thanks,

chuu

  • It seems that "" are required for cmem to get the correct memory address setting. (reference from http://e2e.ti.com/support/embedded/f/356/p/83873/290647.aspx)

    Now I use the command

    insmod cmemk.ko "phys_start=0x8c900000 phys_end=0x8d900000 pools=20x4096 allowOverlap=1"

    and the demesg shows

    <4>CMEM Range Overlaps Kernel Physical - allowing overlap
    <4>CMEM phys_start (0x8c900000) overlaps kernel (0x80000000 -> 0x90000000)
    <3>CMEMK Error: Failed to request_mem_region(0x8c900000, 16777216)

    How should I know the correct address (available memory range) to use?

     

  • I change to

    insmod cmemk.ko "phys_start=0x90000000 phys_end=0x99000000 pools=20x4096"

    Now there is no error.

    cat /proc/cmem:

    Block 0: Pool 0: 20 bufs size 4096 (4096 requested)

    Pool 0 busy bufs:

    Pool 0 free bufs:
    id 0: phys addr 0x98fff000
    id 1: phys addr 0x98ffe000
    id 2: phys addr 0x98ffd000
    id 3: phys addr 0x98ffc000
    id 4: phys addr 0x98ffb000
    id 5: phys addr 0x98ffa000
    id 6: phys addr 0x98ff9000
    id 7: phys addr 0x98ff8000
    id 8: phys addr 0x98ff7000
    id 9: phys addr 0x98ff6000
    id 10: phys addr 0x98ff5000
    id 11: phys addr 0x98ff4000
    id 12: phys addr 0x98ff3000
    id 13: phys addr 0x98ff2000
    id 14: phys addr 0x98ff1000
    id 15: phys addr 0x98ff0000
    id 16: phys addr 0x98fef000
    id 17: phys addr 0x98fee000
    id 18: phys addr 0x98fed000
    id 19: phys addr 0x98fec000

     

    But when execute c6accel_app (sample code from DVSDK), the program just hang and nothing generated......(i.e. no benchmarking.txt)
    am I setting correctly??

  • Chuu,

    If you are using any other memory map for a OMAP3530 device than specified in the C6accel unit server you need to rebuild the server with your memory map before you run the code. The memory map inside C6Accel can be found in the server.tcf file under $(C6ACCEL_INSTALL_DIR)/soc/packages/ti/unit_servers/omap3530. Please check if you are allocating your CMEM accordingly. Also can you export CE_DEBUG =2 and send us the error log for further debugging.

    Regards,

    Rahul

     

  • How can I export CE_DEBUG=2? Do I need to recompile the code??

  •  

    You need to export CE_DEBUG=2 on the command prompt on the target before you run the C6Accel app.

    Rahul

  • Thanks, Rahul. The error log is as attached.

    6153.debug.log