Other Parts Discussed in Thread: SYSBIOS
Tool/software: TI-RTOS
Hi,
I made custom board. So, I changed DDR3 2GiB.(1GiB + 1GiB)
I changed the code by referring to the Memory Map for vision SDK application report(Draft v0.3)
so, I try the option Dual_emif_2X512MB and Dual_emif_1GB_512MB. Both of these options will boot normally.
but, I change 2GiB memory map.It stops like the following log.
------------------------------------------------------------------------------------
TDA2Px SBL Boot
DPLL Configuration Completed
Clock Domain Configuration Completed
Module Enable Configuration Completed
TI EVM PAD Config Completed
TDA2Px DDR Configuration
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
App Image Download Completed
Putting MPU CPU1 in Off mode
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 - 116295 (9.92 ms)
SOC Init Cycles - 171037 (14.59 ms)
DDR Config Clock Cycles - 89904 (7.67 ms)
App Image Load Cycles - 153145209 (13068.39 ms)
Slave Core Bootup Cycles - 130271 (11.11 ms)
SBL Boot-up Cycles - 153653773 (13111.78 ms)
Time at which SBL started IPU1_0 - 551351 (47.4 ms)
*****************************************************************
Jumping to MPU CPU0 App
------------------------------------------------------------------------------------
And 2GiB was modified as shown below.
------------------------------------------------------------------------------------
diff --git a/ti_components/drivers/pdk_01_10_02_07/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2px_ddr_config.c b/ti_components/drivers/pdk_01_10_02_07/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2px_ddr_config.c
index 6151b14..1620eb1 100644
--- a/ti_components/drivers/pdk_01_10_02_07/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2px_ddr_config.c
+++ b/ti_components/drivers/pdk_01_10_02_07/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2px_ddr_config.c
@@ -484,11 +484,11 @@ static void TDA2Px_set_lisa_maps(void)
SBLLibPrintf(SBLLIB_TRACE_LEVEL_DEBUG,
" Two EMIFs in non interleaved mode (2GB total)\n");
/* MA_LISA_MAP_i */
- HW_WR_REG32(SOC_MA_MPU_CONF_REGS_BASE + LISA_MAP_0, 0x80740300U);
- HW_WR_REG32(SOC_MA_MPU_CONF_REGS_BASE + LISA_MAP_1, 0xFF020100U);
+ HW_WR_REG32(SOC_MA_MPU_CONF_REGS_BASE + LISA_MAP_0, 0x80700200U);
+ HW_WR_REG32(SOC_MA_MPU_CONF_REGS_BASE + LISA_MAP_1, 0xC0700100U);
/* DMM_LISA_MAP_i */
- HW_WR_REG32(SOC_DMM_CONF_REGS_BASE + LISA_MAP_0, 0x80740300U);
- HW_WR_REG32(SOC_DMM_CONF_REGS_BASE + LISA_MAP_1, 0xFF020100U);
+ HW_WR_REG32(SOC_DMM_CONF_REGS_BASE + LISA_MAP_0, 0x80700200U);
+ HW_WR_REG32(SOC_DMM_CONF_REGS_BASE + LISA_MAP_1, 0xC0700100U);
}
#endif
diff --git a/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs b/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs
index 9a19da1..5e3b7be 100755
--- a/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs
+++ b/vision_sdk/apps/build/tda2px/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 = 2048*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 = 508*MB;
+ DDR3_BASE_SIZE_0 = 1024*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;
diff --git a/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk b/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
index 9bc797c..479221a 100755
--- a/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
+++ b/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
@@ -31,7 +31,7 @@ VSDK_BOARD_TYPE=TDA2PX_EVM
DUAL_A15_SMP_BIOS=no
# Supported values: DDR_MEM_512M
-DDR_MEM=DDR_MEM_512M
+DDR_MEM=DDR_MEM_1024M
EMIFMODE=DUAL_EMIF_1GB_1GB
# Supported values: ipu1_0 ipu1_1 a15_0 none
diff --git a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg
index efa9900..e287d61 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg
@@ -146,7 +146,7 @@ attrs1.shareable = 2; // sharerable
attrs1.attrIndx = 2; // Cached, normal memory
// Set the descriptor for each entry in the address range
-for (var i=0x80000000; i < 0xA0000000; i = i + 0x00200000) {
+for (var i=0x80000000; i < 0xC0000000; i = i + 0x00200000) {
// Each 'BLOCK' descriptor entry spans a 2MB address range
Mmu.setSecondLevelDescMeta(i, i, attrs1);
}
@@ -160,9 +160,9 @@ attrs2.shareable = 2; // sharerable
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) {
+for (var i=0xC0000000; i <= 0xFFFFFFFF; 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/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
index a5b6652..46da588 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
@@ -204,13 +204,14 @@ 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 +222,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/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg
index f7ca5f8..60aa355 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/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/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs b/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs
index 9a19da1..139434e 100755
--- a/vision_sdk/apps/build/tda2px/mem_segment_definition_bios.xs
+++ b/vision_sdk/apps/build/tda2px/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+512)*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 = 508*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;
diff --git a/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk b/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
index 9bc797c..479221a 100755
--- a/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
+++ b/vision_sdk/apps/configs/tda2px_evm_bios_all/cfg.mk
@@ -31,7 +31,7 @@ VSDK_BOARD_TYPE=TDA2PX_EVM
DUAL_A15_SMP_BIOS=no
# Supported values: DDR_MEM_512M
-DDR_MEM=DDR_MEM_512M
+DDR_MEM=DDR_MEM_1024M
EMIFMODE=DUAL_EMIF_1GB_1GB
# Supported values: ipu1_0 ipu1_1 a15_0 none
diff --git a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg
index efa9900..4dd1e55 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/a15_0/a15_0.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/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/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
index a5b6652..46da588 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu1_0/Ammu1_bios.cfg
@@ -204,13 +204,14 @@ 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 +222,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/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg
index f7ca5f8..60aa355 100755
--- a/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/ipu2/Ammu2_bios.cfg
+++ b/vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/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
+
+}
------------------------------------------------------------------------------------
Thanks.