@ -647,13 +647,14 @@ phys_size_t get_effective_memsize(void)
/*
* For ARMv8 SoCs , DDR memory is split into two or three regions . The
* first region is 2 GB space at 0x8000 _0000 . If the memory extends to
* the second region ( or the third region if applicable ) , the secure
* memory and Management Complex ( MC ) memory should be put into the
* highest region , i . e . the end of DDR memory . CONFIG_MAX_MEM_MAPPED
* is set to the size of first region so U - Boot doesn ' t relocate itself
* into higher address . Should DDR be configured to skip the first
* region , this function needs to be adjusted .
* first region is 2 GB space at 0x8000 _0000 . Secure memory needs to
* allocated from first region . If the memory extends to the second
* region ( or the third region if applicable ) , Management Complex ( MC )
* memory should be put into the highest region , i . e . the end of DDR
* memory . CONFIG_MAX_MEM_MAPPED is set to the size of first region so
* U - Boot doesn ' t relocate itself into higher address . Should DDR be
* configured to skip the first region , this function needs to be
* adjusted .
*/
if ( gd - > ram_size > CONFIG_MAX_MEM_MAPPED ) {
ea_size = CONFIG_MAX_MEM_MAPPED ;
@ -664,16 +665,10 @@ phys_size_t get_effective_memsize(void)
# ifdef CONFIG_SYS_MEM_RESERVE_SECURE
/* Check if we have enough space for secure memory */
if ( rem > CONFIG_SYS_MEM_RESERVE_SECURE ) {
rem - = CONFIG_SYS_MEM_RESERVE_SECURE ;
} else {
if ( ea_size > CONFIG_SYS_MEM_RESERVE_SECURE ) {
ea_size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
rem = 0 ; /* Presume MC requires more memory */
} else {
printf ( " Error: No enough space for secure memory. \n " ) ;
}
}
if ( ea_size > CONFIG_SYS_MEM_RESERVE_SECURE )
ea_size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
else
printf ( " Error: No enough space for secure memory. \n " ) ;
# endif
/* Check if we have enough memory for MC */
if ( rem < board_reserve_ram_top ( rem ) ) {
@ -718,32 +713,14 @@ int dram_init_banksize(void)
gd - > bd - > bi_dram [ 0 ] . size = gd - > ram_size ;
}
# ifdef CONFIG_SYS_MEM_RESERVE_SECURE
# ifdef CONFIG_SYS_DDR_BLOCK3_BASE
if ( gd - > bd - > bi_dram [ 2 ] . size > = CONFIG_SYS_MEM_RESERVE_SECURE ) {
gd - > bd - > bi_dram [ 2 ] . size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
gd - > arch . secure_ram = gd - > bd - > bi_dram [ 2 ] . start +
gd - > bd - > bi_dram [ 2 ] . size ;
if ( gd - > bd - > bi_dram [ 0 ] . size >
CONFIG_SYS_MEM_RESERVE_SECURE ) {
gd - > bd - > bi_dram [ 0 ] . size - =
CONFIG_SYS_MEM_RESERVE_SECURE ;
gd - > arch . secure_ram = gd - > bd - > bi_dram [ 0 ] . start +
gd - > bd - > bi_dram [ 0 ] . size ;
gd - > arch . secure_ram | = MEM_RESERVE_SECURE_MAINTAINED ;
gd - > ram_size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
} else
# endif
{
if ( gd - > bd - > bi_dram [ 1 ] . size > = CONFIG_SYS_MEM_RESERVE_SECURE ) {
gd - > bd - > bi_dram [ 1 ] . size - =
CONFIG_SYS_MEM_RESERVE_SECURE ;
gd - > arch . secure_ram = gd - > bd - > bi_dram [ 1 ] . start +
gd - > bd - > bi_dram [ 1 ] . size ;
gd - > arch . secure_ram | = MEM_RESERVE_SECURE_MAINTAINED ;
gd - > ram_size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
} else if ( gd - > bd - > bi_dram [ 0 ] . size >
CONFIG_SYS_MEM_RESERVE_SECURE ) {
gd - > bd - > bi_dram [ 0 ] . size - =
CONFIG_SYS_MEM_RESERVE_SECURE ;
gd - > arch . secure_ram = gd - > bd - > bi_dram [ 0 ] . start +
gd - > bd - > bi_dram [ 0 ] . size ;
gd - > arch . secure_ram | = MEM_RESERVE_SECURE_MAINTAINED ;
gd - > ram_size - = CONFIG_SYS_MEM_RESERVE_SECURE ;
}
}
# endif /* CONFIG_SYS_MEM_RESERVE_SECURE */