ARM: 7949/1: feroceon: Log a FW_BUG if the L2 cache is turned on at boot
authorJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Fri, 31 Jan 2014 18:49:24 +0000 (19:49 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 10 Feb 2014 11:48:08 +0000 (11:48 +0000)
commit0f054e3ceab33a7fd3b41a9708286bce420d570d
treeb7f019678c6daca55d3a5b7611f0de4c3f1c276b
parent5b61d4a5d6676b5bb4c3c101683d3c7fd0df2a38
ARM: 7949/1: feroceon: Log a FW_BUG if the L2 cache is turned on at boot

Booting on feroceon CPUS requires the L2 cache to be turned off. With
some kernel configurations (notably CONFIG_ARM_PATCH_PHYS_VIRT
disabled) the kernel will boot even if the L2 is turned on.

However there may be subtle breakage, and when PATCH_PHYS_VIRT is
enabled it is very likely that booting with L2 will crash at early
boot before any kernel diagnostic output.

The diagnostic message is intended to discourage people from shipping
bootloaders that leave the L2 turned on.

The issue on feroceon is that the L2 is bypassed when the L1 caches
are disabled. So the decompressor will place parts of the kernel image
into the L2 and the early cache-off boot code in head.S will write to
parts of the kernel image, bypassing the L2 and creating inconsistency.

Tested on ARM Kirkwood.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/cache-feroceon-l2.c