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.

CMEM providing two buffers with the same phyiscal address but different virtual address

Occasionally when I request a series of CMEM buffers from DMAI using the Buffer_Create function one of the buffers will have the same physical address as one of the other six. However It will have a unique  virtual address. Has anyone ever seen this?

  • Below is a trace which provides more information on this issue. It appears the problem may reside in DMAI module and not the CMEM module. For the first buffer the CMEM module and the DMAI are conflicting on the physical address of the buffer. The physical address reported by DMAI is used again in the third buffer.

     

    @0x074a4032:[T:0x40889210] ti.sdo.dmai - [BufTab] Allocating BufTab for 6 buffers

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 6
    CMEM Debug: allocPool: allocated phys buffer 0x8dc80000, size 0xcb000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x41d60000
    CMEM Debug: getPhys: entered w/ addr 0x41d60000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8dc80000
    @0x074a4294:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x41d60000 (0x8de16000 phys)

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 6
    CMEM Debug: allocPool: allocated phys buffer 0x8dd4b000, size 0xcb000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x41e2b000
    CMEM Debug: getPhys: entered w/ addr 0x41e2b000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8dd4b000
    @0x074a43a7:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x41e2b000 (0x8dd4b000 phys)

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 6
    CMEM Debug: allocPool: allocated phys buffer 0x8de16000, size 0xcb000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x41ef6000
    CMEM Debug: getPhys: entered w/ addr 0x41ef6000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8de16000
    @0x074a449b:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x41ef6000 (0x8de16000 phys)

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 2
    CMEM Debug: allocPool: allocated phys buffer 0x8e9ec000, size 0x100000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x41fc1000
    CMEM Debug: getPhys: entered w/ addr 0x41fc1000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8e9ec000
    @0x074a45ad:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x41fc1000 (0x8e9ec000 phys)

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 2
    CMEM Debug: allocPool: allocated phys buffer 0x8e6ec000, size 0x100000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x420c1000
    CMEM Debug: getPhys: entered w/ addr 0x420c1000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8e6ec000
    @0x074a46c0:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x420c1000 (0x8e6ec000 phys)

    CMEM Debug: alloc: entered w/ size 0xa9000, params - type POOL, flags NONCACHED, align 0xffffffff
    CMEM Debug: getPool2: entered w/ size 0xa9000
    CMEM Debug: getPool: exiting, ioctl CMEM_IOCGETPOOL succeeded, returning 2
    CMEM Debug: allocPool: allocated phys buffer 0x8e7ec000, size 0x100000
    CMEM Debug: allocPool: mmap succeeded, returning virt buffer 0x43291000
    CMEM Debug: getPhys: entered w/ addr 0x43291000
    CMEM Debug: getPhys: exiting, ioctl CMEM_IOCGETPHYS succeeded, returning 0x8e7ec000
    @0x074a47b4:[T:0x40889210] ti.sdo.dmai - [Buffer] Alloc Buffer of size 692224 at 0x43291000 (0x8e7ec000 phys)