Skip to content
Snippets Groups Projects
Commit 58e4ad1d authored by Shaohui Xie's avatar Shaohui Xie Committed by York Sun
Browse files

armv8/ls1043aqds: Add support for >2GB memory


This patch also exposes the complete DDR region(s) to Linux.

Signed-off-by: default avatarShaohui Xie <Shaohui.Xie@freescale.com>
Reviewed-by: default avatarYork Sun <york.sun@nxp.com>
parent 0d3972cf
No related branches found
No related tags found
No related merge requests found
...@@ -132,9 +132,22 @@ void dram_init_banksize(void) ...@@ -132,9 +132,22 @@ void dram_init_banksize(void)
* The address needs to add the offset of its bank. * The address needs to add the offset of its bank.
*/ */
gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
gd->bd->bi_dram[0].size = gd->ram_size; if (gd->ram_size > CONFIG_SYS_DDR_BLOCK1_SIZE) {
gd->bd->bi_dram[0].size = CONFIG_SYS_DDR_BLOCK1_SIZE;
gd->bd->bi_dram[1].start = CONFIG_SYS_DDR_BLOCK2_BASE;
gd->bd->bi_dram[1].size = gd->ram_size -
CONFIG_SYS_DDR_BLOCK1_SIZE;
#ifdef CONFIG_SYS_MEM_RESERVE_SECURE #ifdef CONFIG_SYS_MEM_RESERVE_SECURE
gd->secure_ram = gd->bd->bi_dram[0].start + gd->secure_ram; gd->secure_ram = gd->bd->bi_dram[1].start +
gd->secure_ram |= MEM_RESERVE_SECURE_MAINTAINED; gd->secure_ram -
CONFIG_SYS_DDR_BLOCK1_SIZE;
gd->secure_ram |= MEM_RESERVE_SECURE_MAINTAINED;
#endif #endif
} else {
gd->bd->bi_dram[0].size = gd->ram_size;
#ifdef CONFIG_SYS_MEM_RESERVE_SECURE
gd->secure_ram = gd->bd->bi_dram[0].start + gd->secure_ram;
gd->secure_ram |= MEM_RESERVE_SECURE_MAINTAINED;
#endif
}
} }
...@@ -303,6 +303,16 @@ int board_init(void) ...@@ -303,6 +303,16 @@ int board_init(void)
#ifdef CONFIG_OF_BOARD_SETUP #ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, bd_t *bd) int ft_board_setup(void *blob, bd_t *bd)
{ {
u64 base[CONFIG_NR_DRAM_BANKS];
u64 size[CONFIG_NR_DRAM_BANKS];
/* fixup DT for the two DDR banks */
base[0] = gd->bd->bi_dram[0].start;
size[0] = gd->bd->bi_dram[0].size;
base[1] = gd->bd->bi_dram[1].start;
size[1] = gd->bd->bi_dram[1].size;
fdt_fixup_memory_banks(blob, base, size, 2);
ft_cpu_setup(blob, bd); ft_cpu_setup(blob, bd);
#ifdef CONFIG_SYS_DPAA_FMAN #ifdef CONFIG_SYS_DPAA_FMAN
......
...@@ -33,7 +33,7 @@ unsigned long get_board_ddr_clk(void); ...@@ -33,7 +33,7 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_DIMM_SLOTS_PER_CTLR 1 #define CONFIG_DIMM_SLOTS_PER_CTLR 1
/* Physical Memory Map */ /* Physical Memory Map */
#define CONFIG_CHIP_SELECTS_PER_CTRL 4 #define CONFIG_CHIP_SELECTS_PER_CTRL 4
#define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_NR_DRAM_BANKS 2
#define CONFIG_DDR_SPD #define CONFIG_DDR_SPD
#define SPD_EEPROM_ADDRESS 0x51 #define SPD_EEPROM_ADDRESS 0x51
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment