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.
工具/软件:TI-RTOS
大家好、
我尝试将 Vision SDK 3.03 DDR 测试示例配置为在 TDA2p 上使用3GB RAM 运行。 2GB 连接到 EMIF1、1GB 连接到 EMIF2。 我所做的更改包括:
-(vision_path)/vision_sdk/links_fw/src/rtos/BIOS_app_common/tda2px/a15_0/a15_0.cfg (第165行。 Mmu.setSecondLevelDescMeta(i、i、attrs2))
-(vision_path)/vision_sdk/links_fw/src/rtos/BIOS_app_common/tda2px/ipu1_0/Ammu1_bios.cfg (第207行。 entry.translatedAddress = 0xA0000000)
-(vision_path)/vision_sdk/links_fw/src/rtos/BIOS_app_common/tda2px/ipu2/Ammu2_bios.cfg (第207行。 entry.translatedAddress = 0xA0000000)
-(vision_path)/vision_sdk/links_fw/src/rtos/BIOS_app_common/tda2px/eve_common/tlb_config_eve_common.c (第100行。 #define Size_3G (0xC0000000U)、第134行。 请将 size_1GB 设置为 size_3GB)
-(vision_path)/vision_sdk/apps/configs/build_makeconfig (第106行)。 $(echo)\# DDR_MEM=$(DDR_MEM)[选项:DDR_MEM_128M DDR_MEM_512M DDR_MEM_1024M DDR_MEM_3G])
-(vision_path)/vision_sdk/apps/configs/defaults.mk (第16行。 DDR_MEM=DDR_MEM_3G)
-(vision_path)/vision_sdk/apps/configs/tda2px evm_BIOS_all/cfg.mk (DDR_MEM=DDR_MEM_3G)
-(vision_path)/vision_sdk/build/rtos/makerules/component.mk (在 ifeq ($(DDR_MEM)、DDR_MEM_512MB 之后)
VISION_SDK_CFLAGS +=-DTDA2XX_512MB_DDR
字节序
添加了 ifeq ($(DDR_MEM)、DDR_MEM_3G)
VISION_SDK_CFLAGS +=-DTDA2XX_3GB_DDR
字节序
-(vision_path)/vision_sdk/links_fw/src/rtos/utils_common/include/utils_mem_cfg.h (添加了#ifdef TDA2XX_512MB_DDR 块之后)
#ifdef TDA2XX_3GB_DDR
#ifdef ECC_FFI 包含
#define UTILS_MEM_HEALL_DDR_Cached_size (309*1024*1024)
其他
#ifdef OpenCL_include
#define UTILS_MEM_HEALL_DDR_Cached_size (249*1024*1024)
其他
#define UTILS_MEM_HEALL_DDR_Cached_size (700*1024*1024)
#endif
#endif
#endif
所有这些之后、我基于 mem_segure_define_3GB_BIOS.xs 文件创建了 mem_segure_define_BIOS.xs 文件、并将其放置在(Vision_path)/vision_sdk/apps/build/tda2px/中。 我所做的更改是 DDR3_size =(1024+2048)*MB 和 DDR3_base_size_0 = 1008*MB。
稍后、我在 CONFIG_a15.bld、CONFIG_ARp32.bld、CONFIG_C66.bld、CONFIG_M4.bld 文件中包含了 mem_segure_3GB_BIOS.xs。 添加
if (platformMem ="DDR_MEM_3G")
{
VAR MemSegDefine = XDC.loadCapsule ("mem_segure_define_1_5gb_BIOS.xs");
}
之后
if (platformMem ="DDR_MEM_512M")
{
VAR MemSegDefine = XDC.loadCapsule ("mem_segure_define_BIOS.xs");
}
之后、我按如下方式设置 SBL:
-(vision_path)/vision_sdk/build/rtos/makerules (第127行。 pdk_SBL_build_options =$(pdk_build_options) EMIFMODE = DUAL_EMIF_3GB)
-(Vision_path)/ti_compons/drivers/pdk_01_09_00_17/packages/ti/boot/sbl_auto/sbl_lib/src/tda2xx/sbl_lib_config_tda2xx.h (第63行。 TDA2XX_EMIF_MODE 设置为(SBLLIB_DUAL_EMIF_3GB)
-(Vision_path)/ti_compons/drivers/pdk_01_09_00_17/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2px_DDR_config.c 位于#if (TDA2XX_EMIF_MODE = SBLLIB_single_mif_mif_mif_mif_mif_mif_mif_mif_mif_mif_mif_mid)之后
#if (TDA2XX_EMIF_MODE = SBLLIB_DUAL_EMIF_3GB)
{
SBLLibPrintf (SBLLIB_TRACE_DEBUG、
" 非交错模式下的两个 EMIF (总共3GB)\n");
/* ma_lisa_map_i */
HW_WR_REG32 (SOC_MA_MPU_CONF_REGS_BASE + LSA_MAP_0、0x80700100U);
HW_WR_REG32 (SOC_MA_MPU_CONF_REGS_BASE + LSA_MAP_1、0xC0600200U);
/* DMM_LISA_MAP_I */
HW_WR_REG32 (SOC_DMM_CONF_REGS_BASE + LSA_MAP_0、0x80700100U);
HW_WR_REG32 (SOC_DMM_CONF_REGS_BASE + LSA_MAP_1、0xC0600100U);
}
#endif。
我在 main.c 中稍微更改了 DDR 测试、将 DDR_SIZE EMIF1定义为0x7FFFFFFF、将 DDR_SIZE EMIF2定义为0x3FFFFFFF、还将 EMIF1_DDR_BASE_ADDRESS 定义为0x8000000和 EMIF2_DDR_BASE_ADDRESS
设置为0xC0000000。
问题是当我运行测试并尝试运行全内存读/写测试时、消息 I get on terminal is size of DDR is 0x0 (我在终端上获得的消息是 DDR 的大小为0x0)。 您是否可能知道为什么会发生这种情况?
此致、
Bosko
您好 Rishabh、
很抱歉耽误你的回答。 我将 LSA_MAP_1更改为0xC0600200U、但仍具有相同的输出。 跳过第一个 DDR 测试用例。 我在 UART 上得到的唯一结果是 DDR 的大小为0x0。
此致、
Bosko
您好 Rishabh、
我更改了起始地址、但这没有帮助。 我还尝试将 EMIF1上的存储器大小从2GB 降低到1GB、但没有进展。
此致、
Bosko
您好 Rishabh
在进行任何更改之前、我运行512 MB 测试、工作正常。 我想先尝试将测试配置为在 EMIF1上使用2GB、然后再添加 EMIF2。
此致、
Bosko
您好、Rishabh、
问题是我们的系统具有3GB 的 RAM。 EMIF1为2GB、EMIF2为1GB。 它们可以单独工作、此时我们可以看到 EMIF1上为2GB、EMIF2上为1GB、但当我们将两个 EMIF 配置为协同工作时、在 Linux 下只能看到2GB。 您可能对这是什么原因有什么看法吗?
此致、
Bosko
您好、Rishabh、
是否可以再次向我发送链接? 我无法打开这个。
此致、
Bosko
您好 Rishabh、
是否有任何有关如何更改 MMU 以进行 DDR 测试以测试完整的3GB 或更大容量的文档?
此致、
Bosko