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/TDA2PXEVM: If it should not translation the address between virtual address & physical address when we enable 1G DDR

Part Number: TDA2PXEVM

Tool/software: Linux

According to the chapter 6.6 of VisionSDK_UserGuide_MemoryMap.pdf, if we use the 512M DDR, it should modify the vpsInitPrms.virtBaseAddr = 0x80000000U to vpsInitPrms.virtBaseAddr = 0xA0000000U. So, if we still use 1G DDR,   it does not modify the  vpsInitPrms.virtBaseAddr ? That is to say, if we use 1G DDR, do we need to enable the  translation between virtual address and  physical address? Below is the part of patch from the chapter 6.6 of VisionSDK_UserGuide_MemoryMap.pdf,

Thanks 

Terence

============================================================

diff --git a/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
b/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
index 97287ff..5a18372 100755
--- a/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
+++ b/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
@@ -251,8 +251,10 @@ Int32 System_bspInit(void)
#ifdef A15_TARGET_OS_LINUX
/* This one to one mapping is required for the 1GB Linux builds */
- vpsInitPrms.virtBaseAddr = 0x80000000U;
+ vpsInitPrms.virtBaseAddr = 0xA0000000U;
vpsInitPrms.physBaseAddr = 0x80000000U;
+ /* if Virtual address != Physical address then enable translation */
+ vpsInitPrms.isAddrTransReq = TRUE;
#else
vpsInitPrms.virtBaseAddr = 0xA0000000U;
vpsInitPrms.physBaseAddr = 0x80000000U;

  • Hi Terence,

    For 1 GB configuration you don't need to map 0xA000_0000 virtual address to 0x8000_0000 physical address. You should map the virtual address 0xA000_0000 to physical address 0xA000_0000.

    Regards,

    Rishabh

  • Hi Rishabh,

    So, How do we need to change? We recover it when we use 1G DDR, is it right?

    #ifdef DDR_MEM_1024M
        /* This one to one mapping is required for the 1GB builds */
       vpsInitPrms.virtBaseAddr = 0x80000000U;
       vpsInitPrms.physBaseAddr = 0x80000000U;
       vpsInitPrms.isAddrTransReq = FALSE;
    #else
       vpsInitPrms.virtBaseAddr = 0xA0000000U;
       vpsInitPrms.physBaseAddr = 0x80000000U;
       /* if Virtual address != Physical address then enable translation */
       vpsInitPrms.isAddrTransReq = TRUE;
    #endif

  • Hi,

    The code should be:

    #ifdef DDR_MEM_1024M
        /* This one to one mapping is required for the 1GB builds */
       vpsInitPrms.virtBaseAddr = 0xA0000000U;
       vpsInitPrms.physBaseAddr = 0xA0000000U;
       vpsInitPrms.isAddrTransReq = FALSE;
    #else
       vpsInitPrms.virtBaseAddr = 0xA0000000U;
       vpsInitPrms.physBaseAddr = 0x80000000U;
       /* if Virtual address != Physical address then enable translation */
       vpsInitPrms.isAddrTransReq = TRUE;
    #endif

    Regards,

    Rishabh

  • Hi Rishabh,
    It does not work,it can not boot normal, will stop at "reading u-boot.img". Is there the other files need to be modified? According to VisionSDK_UserGuide_MemoryMap.pdf, we modified some files for 1G DDR configuration.Please find the patches in the attachment.Could you help to have a look?

    Thanks

    Terence

    patch.txt