Commit c633c3cf authored by Jean-Christop PLAGNIOL-VILLARD's avatar Jean-Christop PLAGNIOL-VILLARD Committed by Russell King

[ARM] 5412/1: XSCALE: add ice dcc support

SCALE: add ice dcc support

Tested on the ixp425 with the ice PEEDI
Ack-by: default avatarEric Miao <eric.miao@marvell.com>
Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 22b61a11
...@@ -77,7 +77,7 @@ config DEBUG_ICEDCC ...@@ -77,7 +77,7 @@ config DEBUG_ICEDCC
Say Y here if you want the debug print routines to direct their Say Y here if you want the debug print routines to direct their
output to the EmbeddedICE macrocell's DCC channel using output to the EmbeddedICE macrocell's DCC channel using
co-processor 14. This is known to work on the ARM9 style ICE co-processor 14. This is known to work on the ARM9 style ICE
channel. channel and on the XScale with the PEEDI.
It does include a timeout to ensure that the system does not It does include a timeout to ensure that the system does not
totally freeze when there is nothing connected to read. totally freeze when there is nothing connected to read.
......
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
.macro writeb, ch, rb .macro writeb, ch, rb
mcr p14, 0, \ch, c0, c5, 0 mcr p14, 0, \ch, c0, c5, 0
.endm .endm
#elif defined(CONFIG_CPU_XSCALE)
.macro loadsp, rb
.endm
.macro writeb, ch, rb
mcr p14, 0, \ch, c8, c0, 0
.endm
#else #else
.macro loadsp, rb .macro loadsp, rb
.endm .endm
......
...@@ -46,6 +46,21 @@ static void icedcc_putc(int ch) ...@@ -46,6 +46,21 @@ static void icedcc_putc(int ch)
asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch));
} }
#elif defined(CONFIG_CPU_XSCALE)
static void icedcc_putc(int ch)
{
int status, i = 0x4000000;
do {
if (--i < 0)
return;
asm volatile ("mrc p14, 0, %0, c14, c0, 0" : "=r" (status));
} while (status & (1 << 28));
asm("mcr p14, 0, %0, c8, c0, 0" : : "r" (ch));
}
#else #else
......
...@@ -49,6 +49,33 @@ ...@@ -49,6 +49,33 @@
1002: 1002:
.endm .endm
#elif defined(CONFIG_CPU_XSCALE)
.macro addruart, rx
.endm
.macro senduart, rd, rx
mcr p14, 0, \rd, c8, c0, 0
.endm
.macro busyuart, rd, rx
1001:
mrc p14, 0, \rx, c14, c0, 0
tst \rx, #0x10000000
beq 1001b
.endm
.macro waituart, rd, rx
mov \rd, #0x10000000
1001:
subs \rd, \rd, #1
bmi 1002f
mrc p14, 0, \rx, c14, c0, 0
tst \rx, #0x10000000
bne 1001b
1002:
.endm
#else #else
.macro addruart, rx .macro addruart, rx
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment