there is a bug in "populate_dram_regions_info()"

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

there is a bug in "populate_dram_regions_info()"

557 次查看
muaxi8
Contributor V

With two place in common, the second macro definition "NXP_DRAM1_ADDR"  "NXP_DRAM1_MAX_SIZE ",should be modified as follows

NXP_DRAM1_ADDR--->NXP_DRAM2_ADDR

NXP_DRAM1_MAX_SIZE ->NXP_DRAM2_MAX_SIZE

 

static void populate_dram_regions_info(void)
{
long long dram_remain_size = dram_regions_info.total_dram_size;
uint8_t reg_id = 0;

dram_regions_info.region[reg_id].addr = NXP_DRAM0_ADDR;
dram_regions_info.region[reg_id].size =
dram_remain_size > NXP_DRAM0_MAX_SIZE ?
NXP_DRAM0_MAX_SIZE : dram_remain_size;

if (dram_regions_info.region[reg_id].size != NXP_DRAM0_SIZE)
NOTICE("Incorrect DRAM0 size is defined in platform_def.h\n");

dram_remain_size -= dram_regions_info.region[reg_id].size;
dram_regions_info.region[reg_id].size -= (NXP_SECURE_DRAM_SIZE
+ NXP_SP_SHRD_DRAM_SIZE);

assert(dram_regions_info.region[reg_id].size > 0);

/* Reducing total dram size by 66MB */
dram_regions_info.total_dram_size -= (NXP_SECURE_DRAM_SIZE
+ NXP_SP_SHRD_DRAM_SIZE);

#if defined(NXP_DRAM1_ADDR) && defined(NXP_DRAM1_MAX_SIZE)
if (dram_remain_size > 0) {
reg_id++;
dram_regions_info.region[reg_id].addr = NXP_DRAM1_ADDR;
dram_regions_info.region[reg_id].size =
dram_remain_size > NXP_DRAM1_MAX_SIZE ?
NXP_DRAM1_MAX_SIZE : dram_remain_size;
dram_remain_size -= dram_regions_info.region[reg_id].size;
}
#endif
#if defined(NXP_DRAM1_ADDR) && defined(NXP_DRAM1_MAX_SIZE) //             
if (dram_remain_size > 0) {
reg_id++;
dram_regions_info.region[reg_id].addr = NXP_DRAM1_ADDR;
dram_regions_info.region[reg_id].size =
dram_remain_size > NXP_DRAM1_MAX_SIZE ?
NXP_DRAM1_MAX_SIZE : dram_remain_size;
dram_remain_size -= dram_regions_info.region[reg_id].size;
}
#endif
reg_id++;
dram_regions_info.num_dram_regions = reg_id;
}

0 项奖励
4 回复数

556 次查看
muaxi8
Contributor V

By the way, how to submit code bugs

0 项奖励

543 次查看
Pavel
NXP Employee
NXP Employee

There is no this function in LSDK 2012 Linux BSP.

It is latest Linux BSP for tLayescape processor. Use this version of LSDK.

0 项奖励

529 次查看
muaxi8
Contributor V

the function of  "populate_dram_regions_info"  path is   ../package/firmware/atf/plat/nxp/common/ls_bl2_el3_setup.c

0 项奖励

475 次查看
Pavel
NXP Employee
NXP Employee

What is the reason for changing DRAM1 to DRAM2?

The LS1043ARDB correctly works for this setting.

0 项奖励