[PATCH] serial: DCC(JTAG) serial and console emulation support

Tony Lindgren tony at atomide.com
Thu Oct 7 17:27:07 EDT 2010


Hi,

* Daniel Walker <dwalker at codeaurora.org> [101005 11:59]:
> +#if !defined(CONFIG_CPU_V7)
> +static inline char
> +__dcc_getchar(void)
> +{
> +	char __c;
> +
> +	asm("mrc p14, 0, %0, c0, c5, 0	@ read comms data reg"
> +		: "=r" (__c) : : "cc");
> +
> +	return __c;
> +}
> +#else
> +static inline char
> +__dcc_getchar(void)
> +{
> +	char __c;
> +
> +	asm(
> +	"get_wait:	mrc p14, 0, pc, c0, c1, 0                   \n\
> +			bne get_wait                                    \n\
> +			mrc p14, 0, %0, c0, c5, 0	@ read comms data reg"
> +		: "=r" (__c) : : "cc");
> +
> +	return __c;
> +}
> +#endif
> +
> +#if !defined(CONFIG_CPU_V7)
> +static inline void
> +__dcc_putchar(char c)
> +{
> +	asm("mcr p14, 0, %0, c0, c5, 0	@ write a char"
> +		: /* no output register */
> +		: "r" (c) : "cc");
> +}
> +#else
> +static inline void
> +__dcc_putchar(char c)
> +{
> +	asm(
> +	"put_wait:	mrc p14, 0, pc, c0, c1, 0                   \n\
> +			bcs put_wait                                \n\
> +			mcr p14, 0, %0, c0, c5, 0                   "
> +	: : "r" (c) : "cc");
> +}
> +#endif

Can you please pass the read and write functions to the driver
in platform_data? We are already booting kernels with both
ARMv6 and 7 compiled in.

Also, as it's a driver, other architectures may want to use it too.

Regards,

Tony



More information about the linux-arm-kernel mailing list