there is a bug in "populate_dram_regions_info()"

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

there is a bug in "populate_dram_regions_info()"

544 Views
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 Kudos
4 Replies

543 Views
muaxi8
Contributor V

By the way, how to submit code bugs

0 Kudos

530 Views
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 Kudos

516 Views
muaxi8
Contributor V

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

0 Kudos

462 Views
Pavel
NXP Employee
NXP Employee

What is the reason for changing DRAM1 to DRAM2?

The LS1043ARDB correctly works for this setting.

0 Kudos