armv8/ls2085a: Expose all DDR region(s) to Linux
This patch allows u-boot to expose the complete DDR region(s) to Linux (after subtracting the memory hidden via MEM_TOP_HIDE mechanism). This allows the u-boot to support the 48-bit VA support provided by ARM64 Linux in flavors 3.18 and above, by passing the appropriate 'memory' DTS nodes. Signed-off-by: Bhupesh Sharma <bhupesh.sharma at freescale.com> Signed-off-by: Prabhakar Kushwaha <prabhakar at freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
This commit is contained in:
parent
fc7b3855e1
commit
a2dc818f21
|
@ -14,3 +14,14 @@ Memory map from core's view
|
|||
|
||||
Other addresses are either reserved, or not used directly by u-boot.
|
||||
This list should be updated when more addresses are used.
|
||||
|
||||
Booting Linux flavors which do not support 48-bit VA (< Linux 3.18)
|
||||
-------------------------------------------------------------------
|
||||
One needs to use appropriate bootargs to boot Linux flavors which do
|
||||
not support 48-bit VA (for e.g. < Linux 3.18) by appending mem=2048M, as shown
|
||||
below:
|
||||
|
||||
=> setenv bootargs 'console=ttyS1,115200 root=/dev/ram
|
||||
earlycon=uart8250,mmio,0x21c0600,115200 default_hugepagesz=2m hugepagesz=2m
|
||||
hugepages=16 mem=2048M'
|
||||
|
||||
|
|
|
@ -127,15 +127,18 @@ void fdt_fixup_board_enet(void *fdt)
|
|||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
phys_addr_t base;
|
||||
phys_size_t size;
|
||||
u64 base[CONFIG_NR_DRAM_BANKS];
|
||||
u64 size[CONFIG_NR_DRAM_BANKS];
|
||||
|
||||
ft_cpu_setup(blob, bd);
|
||||
|
||||
/* limit the memory size to bank 1 until Linux can handle 40-bit PA */
|
||||
base = getenv_bootm_low();
|
||||
size = getenv_bootm_size();
|
||||
fdt_fixup_memory(blob, (u64)base, (u64)size);
|
||||
/* fixup DT for the two GPP 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);
|
||||
|
||||
#ifdef CONFIG_FSL_MC_ENET
|
||||
fdt_fixup_board_enet(blob);
|
||||
|
|
|
@ -127,3 +127,22 @@ b) NOR boot
|
|||
c) NAND boot
|
||||
d) SD boot
|
||||
e) QSPI boot
|
||||
|
||||
Environment Variables
|
||||
---------------------
|
||||
- mcboottimeout: MC boot timeout in milliseconds. If this variable is not defined
|
||||
the value CONFIG_SYS_LS_MC_BOOT_TIMEOUT_MS will be assumed.
|
||||
|
||||
- mcmemsize: MC DRAM block size. If this variable is not defined
|
||||
the value CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE will be assumed.
|
||||
|
||||
Booting Linux flavors which do not support 48-bit VA (< Linux 3.18)
|
||||
-------------------------------------------------------------------
|
||||
One needs to use appropriate bootargs to boot Linux flavors which do
|
||||
not support 48-bit VA (for e.g. < Linux 3.18) by appending mem=2048M, as shown
|
||||
below:
|
||||
|
||||
=> setenv bootargs 'console=ttyS1,115200 root=/dev/ram
|
||||
earlycon=uart8250,mmio,0x21c0600,115200 default_hugepagesz=2m hugepagesz=2m
|
||||
hugepages=16 mem=2048M'
|
||||
|
||||
|
|
|
@ -244,15 +244,18 @@ void fdt_fixup_board_enet(void *fdt)
|
|||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
phys_addr_t base;
|
||||
phys_size_t size;
|
||||
u64 base[CONFIG_NR_DRAM_BANKS];
|
||||
u64 size[CONFIG_NR_DRAM_BANKS];
|
||||
|
||||
ft_cpu_setup(blob, bd);
|
||||
|
||||
/* limit the memory size to bank 1 until Linux can handle 40-bit PA */
|
||||
base = getenv_bootm_low();
|
||||
size = getenv_bootm_size();
|
||||
fdt_fixup_memory(blob, (u64)base, (u64)size);
|
||||
/* fixup DT for the two GPP 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);
|
||||
|
||||
#ifdef CONFIG_FSL_MC_ENET
|
||||
fdt_fixup_board_enet(blob);
|
||||
|
|
|
@ -107,3 +107,14 @@ Booting Options
|
|||
---------------
|
||||
a) NOR boot
|
||||
b) NAND boot
|
||||
|
||||
Booting Linux flavors which do not support 48-bit VA (< Linux 3.18)
|
||||
-------------------------------------------------------------------
|
||||
One needs to use appropriate bootargs to boot Linux flavors which do
|
||||
not support 48-bit VA (for e.g. < Linux 3.18) by appending mem=2048M, as shown
|
||||
below:
|
||||
|
||||
=> setenv bootargs 'console=ttyS1,115200 root=/dev/ram
|
||||
earlycon=uart8250,mmio,0x21c0600,115200 default_hugepagesz=2m hugepagesz=2m
|
||||
hugepages=16 mem=2048M'
|
||||
|
||||
|
|
|
@ -241,15 +241,18 @@ void fdt_fixup_board_enet(void *fdt)
|
|||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
phys_addr_t base;
|
||||
phys_size_t size;
|
||||
u64 base[CONFIG_NR_DRAM_BANKS];
|
||||
u64 size[CONFIG_NR_DRAM_BANKS];
|
||||
|
||||
ft_cpu_setup(blob, bd);
|
||||
|
||||
/* limit the memory size to bank 1 until Linux can handle 40-bit PA */
|
||||
base = getenv_bootm_low();
|
||||
size = getenv_bootm_size();
|
||||
fdt_fixup_memory(blob, (u64)base, (u64)size);
|
||||
/* fixup DT for the two GPP 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);
|
||||
|
||||
#ifdef CONFIG_FSL_MC_ENET
|
||||
fdt_fixup_board_enet(blob);
|
||||
|
|
Loading…
Reference in New Issue