ARM: zynq: Enable big-endian
Enable ARCH_SUPPORTS_BIG_ENDIAN in Kconfig. zynq_secondary_trampoline is the first function that is called on secondary CPU. Reference: "ARM: mcpm: fix big endian issue in mcpm startup code" (sha1:519ceb9fd1
) Fix early printk support. Based on: "ARM: pl01x debug code endian fix" (sha1:76e3faf156
) Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
90a6695a2a
commit
eb28d0bb85
|
@ -43,12 +43,14 @@
|
|||
|
||||
.macro waituart,rd,rx
|
||||
1001: ldr \rd, [\rx, #UART_SR_OFFSET]
|
||||
ARM_BE8( rev \rd, \rd )
|
||||
tst \rd, #UART_SR_TXEMPTY
|
||||
beq 1001b
|
||||
.endm
|
||||
|
||||
.macro busyuart,rd,rx
|
||||
1002: ldr \rd, [\rx, #UART_SR_OFFSET] @ get status register
|
||||
ARM_BE8( rev \rd, \rd )
|
||||
tst \rd, #UART_SR_TXFULL @
|
||||
bne 1002b @ wait if FIFO is full
|
||||
.endm
|
||||
|
|
|
@ -2,6 +2,7 @@ config ARCH_ZYNQ
|
|||
bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select ARCH_HAS_OPP
|
||||
select ARCH_SUPPORTS_BIG_ENDIAN
|
||||
select ARM_AMBA
|
||||
select ARM_GIC
|
||||
select ARM_GLOBAL_TIMER if !CPU_FREQ
|
||||
|
|
|
@ -8,9 +8,12 @@
|
|||
*/
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
#include <asm/assembler.h>
|
||||
|
||||
ENTRY(zynq_secondary_trampoline)
|
||||
ldr r0, [pc]
|
||||
ARM_BE8(setend be) @ ensure we are in BE8 mode
|
||||
ldr r0, zynq_secondary_trampoline_jump
|
||||
ARM_BE8(rev r0, r0)
|
||||
bx r0
|
||||
.globl zynq_secondary_trampoline_jump
|
||||
zynq_secondary_trampoline_jump:
|
||||
|
|
Loading…
Reference in New Issue