Hi all,
I have a problem with CMEM which hang/freeze my board based on a dm3730 soc + 512Mb of ram.
I set my mem=430M@80000000
And CMEM params :
modprobe cmemk phys_start=0x9AE00000 phys_end=0x9CE00000 pools=20x4096,4x131072,2x5250000,6x1843200,2x691200
And launch apitestd apps result :
CMEM Debug: init: successfully opened /dev/cmem, matching driver version...
CMEM Debug: getVersion: entered
CMEM Debug: getVersion: exiting, ioctl CMEM_IOCGETVERSION returned 0x3000100
CMEM Debug: init: ... match good (0x3000100)
CMEM Debug: init: exiting, returning success
CMEM initialized.
CMEM Debug: getVersion: entered
CMEM Debug: getVersion: exiting, ioctl CMEM_IOCGETVERSION returned 0x3000100
CMEM version = 0x3000100
CMEM Debug: getBlock: entered
CMEM Debug: getBlock: exiting, ioctl CMEM_IOCGETBLOCK succeeded, returning *pphys_base=0x9ae00000, *psize=0x2000000
CMEM memory block 0: phys start = 0x9ae00000, size = 0x2000000
CMEM Debug: getBlock: entered
CMEM Error: getBlock: Failed to retrieve memory block bounds for block 1 from driver: -1.
Failed to retrieve CMEM memory block 1 bounds
CMEM memory block 1: phys start = 0x9ae00000, size = 0x2000000
allocating heap buffers from CMEM memory block 0...
CMEM Debug: alloc: entered w/ size 0x4c4b40, params - type HEAP, flags NONCACHED, align 0
CMEM Debug: allocHeap: allocated phys buffer 0x9ae00000
CMEM Debug: allocHeap: mmap succeeded, returning virt buffer 0x4023f000
CMEM Debug: alloc: entered w/ size 0x4c4b40, params - type HEAP, flags NONCACHED, align 0
CMEM Debug: allocHeap: allocated phys buffer 0x9b2c5000
CMEM Debug: allocHeap: mmap succeeded, returning virt buffer 0x40797000
CMEM Debug: alloc: entered w/ size 0x4c4b40, params - type HEAP, flags NONCACHED, align 0
CMEM Error: allocHeap: ioctl CMEM_IOCALLOCHEAP failed: -1
...done, 2 allocated
Press ENTER to continue (after 'cat /proc/cmem' if desired).
freeing heap blocks...
CMEM Debug: free: entered w/ ptr 0x4023f000, params - type HEAP
My 1st problem was freezing when used TIViddec2 or TIauddec gst pluggins which make a call cmem_getphys() freezing my board, after i tested only cmem and had this problem.
The board freeze here, after some investigation i suspect this call to freeze/hang my board :
ioctl(cmem_fd, cmd | CMEM_IOCMAGIC, &freeDesc)
I'm a little lost, because when i use CMEM with this parameters everything work :
modprobe cmemk allowOverlap=1 phys_start=0x86300000 phys_end=0x87300000 \
pools=1x5250000,6x829440,1x345600,1x691200,1x1
+ mem=99M@0x80000000 mem=384M@0x88000000 (which is the default config for omap3530 soc)
Any advice will be appreciate ?
Mika