ARM: 7881/1: __fixup_smp read of SCU config should do byteswap in BE case
authorVictor Kamensky <victor.kamensky@linaro.org>
Thu, 7 Nov 2013 07:42:40 +0000 (08:42 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 14 Nov 2013 11:03:01 +0000 (11:03 +0000)
Commit "bc41b8724f24b9a27d1dcc6c974b8f686b38d554 ARM: 7846/1:
Update SMP_ON_UP code to detect A9MPCore with 1 CPU devices"
added read of SCU config register into __fixup_smp function.
Such read should be followed by byteswap, if kernel runs in
BE mode.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/head.S

index 7801866e626a2a1a4631d9e3e3fbd3c27ddda429..cd788d5b668225b899560cdc102c7fe3aafbcb4c 100644 (file)
@@ -508,6 +508,7 @@ __fixup_smp:
        teq     r0, #0x0                @ '0' on actual UP A9 hardware
        beq     __fixup_smp_on_up       @ So its an A9 UP
        ldr     r0, [r0, #4]            @ read SCU Config
+ARM_BE8(rev    r0, r0)                 @ byteswap if big endian
        and     r0, r0, #0x3            @ number of CPUs
        teq     r0, #0x0                @ is 1?
        movne   pc, lr