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.

TDA4VM: The way to access DDR 32GB area

Part Number: TDA4VM
Other Parts Discussed in Thread: DRA829,

Hi

Access to DDR memory is limited by 2GB.

We want to be able to access 32GB area for this.

Please let me know how to do this.

 

■Remarks

\ti\ccs1011\ccs\ccs_base\emulation\gel\J721E_DRA829_TDA4VM\gel\J721E_DDR32SS

The file above only supports 32 bits.

 →Requires a 64bit-compatible gel file.

Currently, NAVSS0_DDR1_MEM is used in the GEL file, but please provide a GEL file to use a 32GB map.

 

  • Hi,

    If you have a 4GB DRAM, you can access the upper 2GB memory at 0x880000000 - 0x8FFFFFFFF.

    Thanks,
    Kevin

  • Hi Kevin

    As far as I confirm by using Memory Window on CCS after executing GEL I mentioned my first thread,

    Within that 2GB area you mentioned, some were accessible and some weren't.

    Could you please share the information about the environment/procedure?

    Thanks and Best regards,

    HaTa

  • Hi HaTa,

    >>Within that 2GB area you mentioned, some were accessible and some weren't.

    Can you give more information on the above? Is this observation on EVM or custom board? Which address can you not read / write to? Which CPU is trying to access the memory region?

    >>Could you please share the information about the environment/procedure?

    I am using the J721E EVM with the on-board XDS110 emulator, and CCS version 10.1.0.00010.

    I connect to the M3 core using the GELs included with the CCS installation. ccs\ccs_base\emulation\gel\J721E_DRA829_TDA4VM\gel\J721E.gel

    I run the GEL LPDDR4 init script (from CCS, select "Scripts" -> "J7ES DDR Memory config" -> "J7ES_LPDDR4_Config".

    I connect to the A72_0_0 core. I view the memory from the Memory Browser window within CCS.

    Thanks,
    Kevin

  • Hi Kevin

    Thanks for sharing the information which you can access to there.

    I'll share it to customer.

    I'm very sorry, but I'd like to know how to access there from C7x.

    We have prepared an evidence for this case, please examine it.

    We are in a situation where we are unable to access a possible area.

     

    In the table below, we are trying to use the range 0x08 00000000 - 0x0F FFFFFFFFFFFF in the bottom two groups.

    We'll call them 64-bit addresses.

     

    UTLB is not initially mapped to a 64-bit address.

    Therefore, the MMU needs to be configured, but even if it is configured, it will not work correctly.

    Page Fault exception occurs when attempting to read.

     

    Our prediction: DDR initialization in launch.js does not support 64bit addresses.

     

    ■Test case

    c7x_mmu_0208.zip

     

     

    The above environment is for the MMU sample program, with a section for 64-bit addresses added.

    The TCR register have been changed to the latest recommended values.

     

    The DSP execution freezes when the sample program is executed.

    From the following register results, it can be confirmed that a Page Fault exception has occurred.

     

     

     

  • HaTa,

    >>>In the table below, we are trying to use the range 0x08 00000000 - 0x0F FFFFFFFFFFFF in the bottom two groups.

    As I previously stated, you should be able to access the upper 2GB memory at 0x880000000 - 0x8FFFFFFFF. I do not think the range you have mentioned above is valid.

    pbyPtr = (uint8_t*)0x0800000000ULL;       <-- Not valid
    assert(1 == *pbyPtr); // Page Fault

  • HaTa,

    I confirmed with the design team that the SOC address space 0x800000000 - 0x87FFFFFFF is permanently disabled on TDA4VM. 

    Thus as previously mentioned, you need to use 0x880000000 - 0x8FFFFFFFF.

    Thanks,
    Kevin

  • Hi Kevin

    Thank you for your answer. I can now access it.

    However, it is a very strange limitation that the access to DDR4 is fragmented.

    The lack of continuous access is also an inconvenience in practical use.

    Is it possible to change this in the settings?

    Or is it just a convenience in the implementation of EVM, and does not cause any problems under normal circumstances?

    Please let me know the reason for this strange address space, how you plan to fix it in the future, and how it will be handled in TDA4AL.

  • HaTa,

    1. The SOC address space 0x800000000 - 0x87FFFFFFF is permanently disabled on TDA4VM. There is no software configuration to change this.
    2. If you are using a 4GB memory, I believe the lower 2GB which is accessible at 0x8000 0000 - 0xFFFF FFFF should also be mirrored at 0x9 0000 0000 - 0x9 7FFF FFFF. So you would have continuous memory from 0x8 8000 0000 - 0x9 7FFF FFFF. I would need to follow up with design team to better understand how this would work for larger memories. Please check to see if this resolves the issue.

    Regards,
    Kevin

  • Hi Kevin

    Thank you for your answer. I would like to formally adopt that approach.

    Please let me know if there is anything I should be aware of in doing so.

    Also, if you know how this specification will work in TDA4AL, please let me know.

  • Hi,

    I am not sure what you mean by formally adopt that approach. I am not aware of anything that you should be aware of. This may be a good question to ask on the software forums.

    I do not know the SOC level address mapping of future SOCs.

    Kevin