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.

Linux/AM5728: CMEM address range

Part Number: AM5728

Tool/software: Linux

CPU  : DRA752-GP ES2.0
Model: TI AM572x EVM Rev A3
DRAM:  1 GiB

Processor SDK version : 04.03
[    0.000000] Linux version 4.9.65-rt23-06391-gcb3fba3 (cy@ubuntu) (gcc version 6.2.1 20161016)

I can get the following info by the shell command that is "cat /proc/iomem".My question is : why the physical address range of CMEM is inside the physical address range of System RAM?

80000000-9fffffff : System RAM                                                  

       80008000-80dfffff : Kernel code                                               

       81000000-810ade57 : Kernel data                                               

a0000000-abffffff : CMEM                                                        

ac000000-bfbfffff : System RAM     

  • I am not sure I understand your question. If our CMEM documentation does not clarify things for you, please reword your question for me.

    Regards,

    Nick

  • Thanks. I see the "CMEM documentation", but I can not clear the following question.

        I get the following info for different size of DDR.

                  DRAM is 1 GiB .                                                                DRAM is 512MB

    ----------------------------------------                                            ----------------------------------------

    80000000-9fffffff : System RAM                                       80000000-9fcfffff : System RAM

           80008000-80dfffff : Kernel code                                  80008000-80dfffff : Kernel code               

           81000000-810ade57 : Kernel data                               81000000-810aded7 : Kernel data

    a0000000-abffffff : CMEM                                                 a0000000-abffffff : CMEM       

    ac000000-bfbfffff : System RAM                                   ------------------------------------------------

    --------------------------------------------------

    From the left column info when the size of DRAM is 1 GiB, CMEM's physical address is a part of DDR's physical address.

    But from the right column info when the size of DRAM is 512MB, the physical address of CMEM  is not a part of the physical address DDR.

    Why for this? When the size of DRAM is 512MB, the physical address range is from 0x80000000 to 0xa0000000 - 1, But the start physical address of CMEM is 0xa0000000.

                                                

                                                                                                                                                                                 

                                                                                                                                                                                   

  • Hello,

    If you want to allocate CMEM within DDR, then the CMEM physical address should be within the DDR’s physical address. Our AM572x EVM RevA3 was designed with 1GiB of DDR, so a CMEM physical address range of 0xa000_0000 – 0xabff_ffff fits within DRAM. If your board has less DRAM, then you need to adjust your CMEM address range to fit.

    For example, if you only have 512MB DRAM, you could start the CMEM at 0x9000_0000 instead of 0xa000_0000. Keep in mind that your DSP code should also be modified to reflect the changes you make in your Linux dts files.

     

    Regards,

    Nick