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.

TDA2EVM5777: Modify 512MB Bios Memory map to 1GB Bios Memory map

Part Number: TDA2EVM5777

Hi,

I follow the VisionSDK_UserGuide_MemoryMap.pdf try to Modify 512MB Bios Memory map to 1GB Bios Memory map. My evm board is VAYU EVM XC5777X , my vision SDK version is PROCESSOR_SDK_VISION_03_07_00_00_setuplinux.

I rebuild the Appimage and MLO and update to sd card.But it cannot boot up.Here's the boot log.

 TDA2xx SBL Boot 

 DPLL Configuration Completed 

 Clock Domain Configuration Completed 

 Module Enable Configuration Completed 

 TI EVM PAD Config Completed 

 DDR Config Completed 

 App Image Download Begins 

 SD Boot - file open completed successfully 

 MPU CPU0 Image Load Completed 

 IPU1 CPU0 Image Load Completed 

 IPU1 CPU1 Image Load Completed 

 IPU2 CPU0 and CPU1 Image Load Completed 

 DSP1 Image Load Completed 

 DSP2 Image Load Completed 

 EVE1 Image Load Completed 

 EVE2 Image Load Completed 

 EVE3 Image Load Completed 

 EVE4 Image Load Completed 

 App Image Download Completed 

 Putting MPU CPU1 in Off mode 

 EVE MMU configuration completed 

 EVE MMU configuration completed 

 EVE MMU configuration completed 

 EVE MMU configuration completed 

*****************************************************************

 PMCCNTR counts once every 64 clock cycles, multiple by 64 to get actual CPU cycles 

 SBL Initial Config Cycles - 144545  (12.33 ms)
 SOC Init Cycles - 170703  (14.56 ms)
 DDR Config Clock Cycles - 43425  (3.70 ms)
 App Image Load Cycles - 50179923  (4282.2 ms)
 Slave Core Bootup Cycles - 208031  (17.75 ms)
 SBL Boot-up Cycles - 50747687  (4330.46 ms)
 Time at which SBL started IPU1_0 - 150587  (4595.55 ms)
*****************************************************************

 Jumping to MPU CPU0 App

It just stop here.............

Here is my git diff

diff --git a/apps/build/tda2xx/mem_segment_definition_bios.xs b/apps/build/tda2xx/mem_segment_definition_bios.xs
index 9dda063..bf3b5ae 100755
--- a/apps/build/tda2xx/mem_segment_definition_bios.xs
+++ b/apps/build/tda2xx/mem_segment_definition_bios.xs
@@ -18,7 +18,7 @@ function getMemSegmentDefinition_external(core)
     MB=KB*KB;
 
     DDR3_ADDR                   = 0x80000000;
-    DDR3_SIZE                   = 512*MB;
+    DDR3_SIZE                   = 1024*MB;
 
     /*
      * In case of ECC_FFI_INCLUDE, DDR3_BASE_ADDR_1 and DDR3_BASE_SIZE_1
@@ -27,7 +27,7 @@ function getMemSegmentDefinition_external(core)
      * If this DDR3_BASE_SIZE_0 is changed, update  Ipu1_0.cfg
      */
     DDR3_BASE_ADDR_0            = DDR3_ADDR;
-    DDR3_BASE_SIZE_0            = 507*MB;
+    DDR3_BASE_SIZE_0            = 512*MB;
 
     /* The start address of the second mem section should be 16MB aligned.
      * This alignment is a must as a single 16MB mapping is used for EVE
@@ -42,7 +42,7 @@ function getMemSegmentDefinition_external(core)
          *  in non-cached virtual address of
          *  DDR3_BASE_ADDR_1 + 512*MB
          */
-        DDR3_BASE_ADDR_1        = DDR3_BASE_ADDR_1+512*MB;
+        /*DDR3_BASE_ADDR_1        = DDR3_BASE_ADDR_1+512*MB;*/
     }
 
     DSP1_L2_SRAM_ADDR           = 0x40800000;
@@ -189,35 +189,18 @@ function getMemSegmentDefinition_external(core)
      * be kept constant across all platforms and should match the increment
      * to heapStats.heapSize in utils_xmc_mpu.c
      */
-    EVE1_VECS_ADDR             = DDR3_BASE_ADDR_0;
-    EVE1_CODE_ADDR             = EVE1_VECS_ADDR             + EVE1_VECS_SIZE;
-    EVE1_DATA_ADDR             = EVE1_CODE_ADDR             + EVE1_CODE_SIZE;
-    EVE2_VECS_ADDR             = EVE1_DATA_ADDR             + EVE1_DATA_SIZE;
-    EVE2_CODE_ADDR             = EVE2_VECS_ADDR             + EVE2_VECS_SIZE;
-    EVE2_DATA_ADDR             = EVE2_CODE_ADDR             + EVE2_CODE_SIZE;
-    EVE3_VECS_ADDR             = EVE2_DATA_ADDR             + EVE2_DATA_SIZE;
-    EVE3_CODE_ADDR             = EVE3_VECS_ADDR             + EVE3_VECS_SIZE;
-    EVE3_DATA_ADDR             = EVE3_CODE_ADDR             + EVE3_CODE_SIZE;
-    EVE4_VECS_ADDR             = EVE3_DATA_ADDR             + EVE3_DATA_SIZE;
-    EVE4_CODE_ADDR             = EVE4_VECS_ADDR             + EVE4_VECS_SIZE;
-    EVE4_DATA_ADDR             = EVE4_CODE_ADDR             + EVE4_CODE_SIZE;
-    NDK_DATA_ADDR              = EVE4_DATA_ADDR             + EVE4_DATA_SIZE;
+
+    NDK_DATA_ADDR    		   = DDR3_BASE_ADDR_0           + 16*MB;
     IPU1_1_CODE_ADDR           = NDK_DATA_ADDR              + NDK_DATA_SIZE;
     IPU1_0_CODE_ADDR           = IPU1_1_CODE_ADDR           + IPU1_1_CODE_SIZE;
     IPU2_CODE_ADDR             = IPU1_0_CODE_ADDR           + IPU1_0_CODE_SIZE;
-    DSP1_CODE_ADDR             = IPU2_CODE_ADDR             + IPU2_CODE_SIZE;
-    DSP2_CODE_ADDR             = DSP1_CODE_ADDR             + DSP1_CODE_SIZE;
-    IPU1_1_DATA_ADDR           = DSP2_CODE_ADDR             + DSP2_CODE_SIZE;
+	IPU1_1_DATA_ADDR           = IPU2_CODE_ADDR             + IPU2_CODE_SIZE;
     IPU1_0_DATA_ADDR           = IPU1_1_DATA_ADDR           + IPU1_1_DATA_SIZE;
     IPU2_DATA_ADDR             = IPU1_0_DATA_ADDR           + IPU1_0_DATA_SIZE;
-    DSP1_DATA_ADDR             = IPU2_DATA_ADDR             + IPU2_DATA_SIZE;
-    DSP2_DATA_ADDR             = DSP1_DATA_ADDR             + DSP1_DATA_SIZE;
-    A15_0_DATA_ADDR            = DSP2_DATA_ADDR             + DSP2_DATA_SIZE;
+	A15_0_DATA_ADDR 		   = IPU2_DATA_ADDR             + IPU2_DATA_SIZE;
     SR1_BUFF_ECC_ASIL_ADDR     = A15_0_DATA_ADDR            + A15_0_DATA_SIZE;
     SR1_BUFF_ECC_QM_ADDR       = SR1_BUFF_ECC_ASIL_ADDR     + SR1_BUFF_ECC_ASIL_SIZE;
-    DSP1_DATA_ADDR_2           = SR1_BUFF_ECC_QM_ADDR       + SR1_BUFF_ECC_QM_SIZE;
-    DSP2_DATA_ADDR_2           = DSP1_DATA_ADDR_2           + DSP1_DATA_SIZE_2;
-    SR1_BUFF_NON_ECC_ASIL_ADDR = DSP2_DATA_ADDR_2           + DSP2_DATA_SIZE_2;
+    SR1_BUFF_NON_ECC_ASIL_ADDR = SR1_BUFF_ECC_QM_ADDR       + SR1_BUFF_ECC_QM_SIZE;
     SR1_FRAME_BUFFER_ADDR      = SR1_BUFF_NON_ECC_ASIL_ADDR + SR1_BUFF_NON_ECC_ASIL_SIZE;
 
     /* Non Cached Section */
@@ -234,6 +217,26 @@ function getMemSegmentDefinition_external(core)
     HDVPSS_DESC_ADDR                = SYSTEM_AUTOSAR_IPC_SHM_ADDR   + SYSTEM_AUTOSAR_IPC_SHM_SIZE;
     OPENVX_SHM_ADDR                 = HDVPSS_DESC_ADDR              + HDVPSS_DESC_SIZE;
 
+	EVE1_VECS_ADDR             = DDR3_BASE_ADDR_1           + 16*MB;
+	EVE1_CODE_ADDR             = EVE1_VECS_ADDR             + EVE1_VECS_SIZE;
+	EVE1_DATA_ADDR             = EVE1_CODE_ADDR             + EVE1_CODE_SIZE;
+	EVE2_VECS_ADDR             = EVE1_DATA_ADDR             + EVE1_DATA_SIZE;
+	EVE2_CODE_ADDR             = EVE2_VECS_ADDR				+ EVE2_VECS_SIZE;
+	EVE2_DATA_ADDR             = EVE2_CODE_ADDR             + EVE2_CODE_SIZE;
+	EVE3_VECS_ADDR             = EVE2_DATA_ADDR             + EVE2_DATA_SIZE;
+	EVE3_CODE_ADDR             = EVE3_VECS_ADDR             + EVE3_VECS_SIZE;
+	EVE3_DATA_ADDR             = EVE3_CODE_ADDR             + EVE3_CODE_SIZE;
+	EVE4_VECS_ADDR             = EVE3_DATA_ADDR             + EVE3_DATA_SIZE;
+	EVE4_CODE_ADDR             = EVE4_VECS_ADDR             + EVE4_VECS_SIZE;
+	EVE4_DATA_ADDR             = EVE4_CODE_ADDR             + EVE4_CODE_SIZE;
+	DSP1_CODE_ADDR             = EVE4_DATA_ADDR             + EVE4_DATA_SIZE;
+	DSP2_CODE_ADDR             = DSP1_CODE_ADDR             + DSP1_CODE_SIZE;
+	DSP1_DATA_ADDR        	   = DSP2_CODE_ADDR             + DSP2_CODE_SIZE;
+	DSP2_DATA_ADDR             = DSP1_DATA_ADDR             + DSP1_DATA_SIZE;
+	DSP1_DATA_ADDR_2           = DSP2_DATA_ADDR             + DSP2_DATA_SIZE;
+	DSP2_DATA_ADDR_2           = DSP1_DATA_ADDR_2           + DSP1_DATA_SIZE_2;
+
+
     if ((SR1_FRAME_BUFFER_ADDR + SR1_FRAME_BUFFER_SIZE) > (DDR3_BASE_ADDR_0 + DDR3_BASE_SIZE_0))
     {
       throw xdc.$$XDCException("MEMORY_MAP OVERFLOW ERROR ",
diff --git a/links_fw/src/rtos/bios_app_common/tda2xx/a15_0/a15_0.cfg b/links_fw/src/rtos/bios_app_common/tda2xx/a15_0/a15_0.cfg
index f54833e..988a9e0 100755
--- a/links_fw/src/rtos/bios_app_common/tda2xx/a15_0/a15_0.cfg
+++ b/links_fw/src/rtos/bios_app_common/tda2xx/a15_0/a15_0.cfg
@@ -162,7 +162,7 @@ attrs2.attrIndx = 0;                       // Non-cache, normal memory
 // Set the descriptor for each entry in the address range
 for (var i=0xA0000000; i < 0xC0000000; i = i + 0x00200000) {
     // Each 'BLOCK' descriptor entry spans a 2MB address range
-    Mmu.setSecondLevelDescMeta(i, i-0x20000000, attrs2);
+    Mmu.setSecondLevelDescMeta(i, i, attrs2);
 }
 
 // Region for NDK packet data buffers.
diff --git a/links_fw/src/rtos/bios_app_common/tda2xx/ipu1_0/Ammu1_bios.cfg b/links_fw/src/rtos/bios_app_common/tda2xx/ipu1_0/Ammu1_bios.cfg
index 7809abc..685a934 100644
--- a/links_fw/src/rtos/bios_app_common/tda2xx/ipu1_0/Ammu1_bios.cfg
+++ b/links_fw/src/rtos/bios_app_common/tda2xx/ipu1_0/Ammu1_bios.cfg
@@ -204,13 +204,13 @@ function init()
     entry.pageEnabled = AMMU.Enable_YES;
     entry.translationEnabled = AMMU.Enable_YES;
     entry.logicalAddress = 0xA0000000;
-    entry.translatedAddress = 0x80000000;
+    entry.translatedAddress = 0xA0000000;
     entry.size = AMMU.Large_512M;
     entry.L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L1_posted = AMMU.PostedPolicy_NON_POSTED;
     entry.L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L2_posted = AMMU.PostedPolicy_NON_POSTED;
-/*
+
     var entry = AMMU.largePages[3];
     entry.pageEnabled = AMMU.Enable_YES;
     entry.translationEnabled = AMMU.Enable_YES;
@@ -221,6 +221,6 @@ function init()
     entry.L1_posted = AMMU.PostedPolicy_NON_POSTED;
     entry.L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L2_posted = AMMU.PostedPolicy_NON_POSTED;
-*/
+
 }
 
diff --git a/links_fw/src/rtos/bios_app_common/tda2xx/ipu2/Ammu2_bios.cfg b/links_fw/src/rtos/bios_app_common/tda2xx/ipu2/Ammu2_bios.cfg
index 21d55cc..f44a488 100644
--- a/links_fw/src/rtos/bios_app_common/tda2xx/ipu2/Ammu2_bios.cfg
+++ b/links_fw/src/rtos/bios_app_common/tda2xx/ipu2/Ammu2_bios.cfg
@@ -204,13 +204,13 @@ function init()
     entry.pageEnabled = AMMU.Enable_YES;
     entry.translationEnabled = AMMU.Enable_YES;
     entry.logicalAddress = 0xA0000000;
-    entry.translatedAddress = 0x80000000;
+    entry.translatedAddress = 0xA0000000;
     entry.size = AMMU.Large_512M;
     entry.L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L1_posted = AMMU.PostedPolicy_NON_POSTED;
     entry.L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L2_posted = AMMU.PostedPolicy_NON_POSTED;
-/*
+
     var entry = AMMU.largePages[3];
     entry.pageEnabled = AMMU.Enable_YES;
     entry.translationEnabled = AMMU.Enable_YES;
@@ -221,5 +221,5 @@ function init()
     entry.L1_posted = AMMU.PostedPolicy_NON_POSTED;
     entry.L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
     entry.L2_posted = AMMU.PostedPolicy_NON_POSTED;
-*/
+
 }
\ No newline at end of file
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 55eb2b8..083ba64 100644
--- a/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
+++ b/links_fw/src/rtos/links_ipu/system/system_bsp_init.c
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY TI AND TI�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL TI AND TI’S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL TI AND TI�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -292,10 +292,10 @@ Int32 System_bspInit(void)
         vpsInitPrms.physBaseAddr = 0x80000000U;
         vpsInitPrms.isAddrTransReq = FALSE;
 #else
-        vpsInitPrms.virtBaseAddr = 0xA0000000U;
+        vpsInitPrms.virtBaseAddr = 0x80000000U;
         vpsInitPrms.physBaseAddr = 0x80000000U;
         /* if Virtual address != Physical address then enable translation */
-        vpsInitPrms.isAddrTransReq = TRUE;
+        vpsInitPrms.isAddrTransReq = FALSE;
 #endif
         Vps_printf(" SYSTEM: VPDMA Descriptor Memory Address translation"
                     " ENABLED [0x%08x -> 0x%08x]\n",

It 's same as the user guide expect build/rtos/makerules/build_sbl.mk.My sources has no this file.

So,is my step right? why the board cannot boot up?

Regards