Explorar o código

ARM: pl01x debug code endian fix

The PL01X debug code needs to take into account which endian mode the
processor is running in. If it is big-endian, ensure the data is swapped
appropriately.

Note, we could do this slightly more efficiently if we have an macro to
do the necessary swap for the bits used by test.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Ben Dooks %!s(int64=12) %!d(string=hai) anos
pai
achega
76e3faf156
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      arch/arm/include/debug/pl01x.S

+ 2 - 0
arch/arm/include/debug/pl01x.S

@@ -25,12 +25,14 @@
 
 
 		.macro	waituart,rd,rx
 		.macro	waituart,rd,rx
 1001:		ldr	\rd, [\rx, #UART01x_FR]
 1001:		ldr	\rd, [\rx, #UART01x_FR]
+ ARM_BE8(	rev	\rd, \rd )
 		tst	\rd, #UART01x_FR_TXFF
 		tst	\rd, #UART01x_FR_TXFF
 		bne	1001b
 		bne	1001b
 		.endm
 		.endm
 
 
 		.macro	busyuart,rd,rx
 		.macro	busyuart,rd,rx
 1001:		ldr	\rd, [\rx, #UART01x_FR]
 1001:		ldr	\rd, [\rx, #UART01x_FR]
+ ARM_BE8(	rev	\rd, \rd )
 		tst	\rd, #UART01x_FR_BUSY
 		tst	\rd, #UART01x_FR_BUSY
 		bne	1001b
 		bne	1001b
 		.endm
 		.endm