linux/arch/arm/mach-bcm
Hauke Mehrtens fdf4850cb5 ARM: BCM5301X: workaround suppress fault
Without this patch I am getting a unhandled fault exception like this
one after "Freeing unused kernel memory":

Freeing unused kernel memory: 1260K (c02c1000 - c03fc000)
Unhandled fault: imprecise external abort (0x1c06) at 0xb6f89005
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007

The address which is here 0xb6f89005 changes from boot to boot, with a
new build the changes are bigger. With kernel 3.10 I have also seen
this fault at different places in the boot process, but starting with
3.11 they are always occurring after the "Freeing unused kernel memory"
message. I never was able to completely boot to userspace without this
handler. The abort code is constant 0x1c06. This fault just happens
once in the boot process I have never seen it happing twice or more.

I also tried changing the CPSR.A bit to 0 in init_early, with this code
like Afzal suggested, but that did not change anything:
asm volatile("mrs r12, cpsr\n"
	"bic r12, r12, #0x00000100\n"
	"msr cpsr_c, r12" ::: "r12", "cc", "memory");

Disabling the L2 cache by building with CONFIG_CACHE_L2X0 unset did not
help.

This workaround was copied from the vendor code including most of the
comments. It says it they think this is caused by the CFE boot loader
used on this device. I do not have any access to any datasheet or
errata document to check this.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Christian Daudt <bcm@fixthebug.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 00:36:04 -05:00
..
bcm_5301x.c ARM: BCM5301X: workaround suppress fault 2014-03-06 00:36:04 -05:00
bcm_kona_smc_asm.S ARM: bcm281xx: Add L2 cache enable code 2013-04-09 09:18:13 -07:00
bcm_kona_smc.c ARM: bcm: Make secure API call optional 2013-08-20 10:51:39 -07:00
bcm_kona_smc.h ARM: bcm: Make secure API call optional 2013-08-20 10:51:39 -07:00
board_bcm281xx.c BCM changes for 3.13/soc. A number of cleanup related changes. 2013-10-30 14:03:39 -07:00
Kconfig ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU 2014-03-06 00:36:02 -05:00
kona.c ARM: bcm281xx: Board specific reboot code 2013-08-08 15:19:19 -07:00
kona.h ARM: bcm281xx: Board specific reboot code 2013-08-08 15:19:19 -07:00
Makefile ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU 2014-03-06 00:36:02 -05:00