linux/arch/arm/mach-mvebu
Thomas Petazzoni 3e0a8f2396 arm: mvebu: move cache and mvebu-mbus initialization later
Current, the L2 cache and the mvebu-mbus drivers are initialized at
->init_early() time. However, at ->init_early() time, ioremap() only
works if a static I/O mapping has already been put in place. If it's
not the case, it tries to do a memory allocation with kmalloc() which
is not possible so early at this stage of the initialization.

Since we want to get rid of the static I/O mapping, we cannot
initialize the L2 cache driver and the mvebu-mbus driver so early. So,
we move their initialization to the ->init_time() level, which is
slightly later (so ioremap() works properly), but sufficiently early
to be before the call of the ->smp_prepare_cpus() hook, which creates
an address decoding window for the BootROM, which requires the
mvebu-mbus driver to be properly initialized.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13 17:48:26 +00:00
..
include/mach Merge branch 'kirkwood/drivers' of git://git.infradead.org/users/jcooper/linux into late/kirkwood 2012-09-22 14:23:11 -07:00
armada-370-xp.c arm: mvebu: move cache and mvebu-mbus initialization later 2013-06-13 17:48:26 +00:00
armada-370-xp.h ARM: mvebu: Align the internal registers virtual base to support LPAE 2013-04-15 14:06:59 +00:00
coherency_ll.S arm: mvebu: Add support for coherency fabric in mach-mvebu 2012-11-21 16:49:06 +01:00
coherency.c arm: mvebu: avoid hardcoded virtual address in coherency code 2013-06-13 17:48:20 +00:00
coherency.h arm: mvebu: remove dependency of SMP init on static I/O mapping 2013-06-13 17:48:13 +00:00
common.h arm: mvebu: remove dependency of SMP init on static I/O mapping 2013-06-13 17:48:13 +00:00
headsmp.S arm: mvebu: Add SMP support for Armada XP 2012-11-21 16:49:38 +01:00
hotplug.c arm: mvebu: Add SMP support for Armada XP 2012-11-21 16:49:38 +01:00
Kconfig ARM: mvebu: select ARCH_REQUIRE_GPIOLIB for mvebu platform 2013-05-19 19:38:59 +00:00
Makefile ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
platsmp.c arm: mvebu: remove dependency of SMP init on static I/O mapping 2013-06-13 17:48:13 +00:00
pmsu.c arm: mvebu: Add initial support for power managmement service unit 2012-11-21 16:49:36 +01:00
pmsu.h arm: mvebu: Add initial support for power managmement service unit 2012-11-21 16:49:36 +01:00
system-controller.c arm: mach-mvebu: add source files 2012-07-10 15:47:48 +02:00