ARC: mm: Decouple RAM base address from kernel link address
[Needed for HSDK] Currently the first page of system (hence RAM base) is assumed to be @ CONFIG_LINUX_LINK_BASE, where kernel itself is linked. However is case of HSDK platform, for reasons explained in that patch, this is not true. kernel needs to be linked @ 0x9000_0000 while DDR is still wired at 0x8000_0000. To properly account for this 256M of RAM, we need to introduce a new option and base page frame accountiing off of it. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> [vgupta: renamed CONFIG_KERNEL_RAM_BASE_ADDRESS => CONFIG_LINUX_RAM_BASE : simplified changelog]
This commit is contained in:

committed by
Vineet Gupta

parent
bee91c3a3c
commit
9ed68785f7
@@ -26,7 +26,7 @@ pgd_t swapper_pg_dir[PTRS_PER_PGD] __aligned(PAGE_SIZE);
|
||||
char empty_zero_page[PAGE_SIZE] __aligned(PAGE_SIZE);
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
|
||||
static const unsigned long low_mem_start = CONFIG_LINUX_LINK_BASE;
|
||||
static const unsigned long low_mem_start = CONFIG_LINUX_RAM_BASE;
|
||||
static unsigned long low_mem_sz;
|
||||
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
@@ -63,7 +63,7 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
|
||||
if (!low_mem_sz) {
|
||||
if (base != low_mem_start)
|
||||
panic("CONFIG_LINUX_LINK_BASE != DT memory { }");
|
||||
panic("CONFIG_LINUX_RAM_BASE != DT memory { }");
|
||||
|
||||
low_mem_sz = size;
|
||||
in_use = 1;
|
||||
@@ -161,7 +161,7 @@ void __init setup_arch_memory(void)
|
||||
* We can't use the helper free_area_init(zones[]) because it uses
|
||||
* PAGE_OFFSET to compute the @min_low_pfn which would be wrong
|
||||
* when our kernel doesn't start at PAGE_OFFSET, i.e.
|
||||
* PAGE_OFFSET != CONFIG_LINUX_LINK_BASE
|
||||
* PAGE_OFFSET != CONFIG_LINUX_RAM_BASE
|
||||
*/
|
||||
free_area_init_node(0, /* node-id */
|
||||
zones_size, /* num pages per zone */
|
||||
|
Reference in New Issue
Block a user