ARM: 7694/1: ARM, TCM: initialize TCM in paging_init(), instead of setup_arch()
tcm_init() call iotable_init() and it use early_alloc variants which do memblock allocation. Directly using memblock allocation after initializing bootmem should not permitted, because bootmem can't know where are additinally reserved. So move tcm_init() to a safe place before initalizing bootmem. (On the U300) Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
f5d6a1441a
commit
de40614e92
@ -56,7 +56,6 @@
|
|||||||
#include <asm/virt.h>
|
#include <asm/virt.h>
|
||||||
|
|
||||||
#include "atags.h"
|
#include "atags.h"
|
||||||
#include "tcm.h"
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
|
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
|
||||||
@ -798,8 +797,6 @@ void __init setup_arch(char **cmdline_p)
|
|||||||
|
|
||||||
reserve_crashkernel();
|
reserve_crashkernel();
|
||||||
|
|
||||||
tcm_init();
|
|
||||||
|
|
||||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||||
handle_arch_irq = mdesc->handle_irq;
|
handle_arch_irq = mdesc->handle_irq;
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
#include <asm/system_info.h>
|
#include <asm/system_info.h>
|
||||||
#include "tcm.h"
|
|
||||||
|
|
||||||
static struct gen_pool *tcm_pool;
|
static struct gen_pool *tcm_pool;
|
||||||
static bool dtcm_present;
|
static bool dtcm_present;
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include <asm/mach/pci.h>
|
#include <asm/mach/pci.h>
|
||||||
|
|
||||||
#include "mm.h"
|
#include "mm.h"
|
||||||
|
#include "tcm.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* empty_zero_page is a special page that is used for
|
* empty_zero_page is a special page that is used for
|
||||||
@ -1277,6 +1278,7 @@ void __init paging_init(struct machine_desc *mdesc)
|
|||||||
dma_contiguous_remap();
|
dma_contiguous_remap();
|
||||||
devicemaps_init(mdesc);
|
devicemaps_init(mdesc);
|
||||||
kmap_init();
|
kmap_init();
|
||||||
|
tcm_init();
|
||||||
|
|
||||||
top_pmd = pmd_off_k(0xffff0000);
|
top_pmd = pmd_off_k(0xffff0000);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user