On Fri, 8 Oct 2010, Tony Lindgren wrote:

> Thanks for the info. Hmm, there seems to a section for XScale
> in arch/arm/kernel/debug.S for elif defined(CONFIG_CPU_XSCALE) for
> CONFIG_DEBUG_ICEDCC:
> 
> #elif defined(CONFIG_CPU_XSCALE)
> 
>               .macro  addruart, rx, tmp
>               .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
> 
> Is that broken for XScale then?

Probably not broken, but simplistic.  In a fully debug enabled setup, 
this channel is used to multiplex messages used by the special software 
on the target and the external debugger.  In this case it is used for 
raw string output only.

For example, here's the code for the debugging stubs that gets injected 
into the target by OpenOCD:

http://openocd.git.sourceforge.net/git/gitweb.cgi?p=openocd/openocd;a=blob;f=src/target/xscale/debug_handler.S;h=73f3a9d5e44a87


Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to