Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97bd1a48 authored by Russell King's avatar Russell King
Browse files

ARM: debug: move davinci debug to generic 8250 code



Davinci's debugging is just a copy of the old 8250_32 code with a
different base address.  Incorporate this into the generic 8250
debug code.

Acked-by: default avatarSekhar Nori <nsekhar@ti.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent f2acf003
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -119,6 +119,7 @@ choice
	config DEBUG_DAVINCI_DA8XX_UART1
	config DEBUG_DAVINCI_DA8XX_UART1
		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
		depends on ARCH_DAVINCI_DA8XX
		depends on ARCH_DAVINCI_DA8XX
		select DEBUG_UART_8250
		help
		help
		  Say Y here if you want the debug print routines to direct
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 serial port on DaVinci DA8XX devices.
		  their output to UART1 serial port on DaVinci DA8XX devices.
@@ -126,6 +127,7 @@ choice
	config DEBUG_DAVINCI_DA8XX_UART2
	config DEBUG_DAVINCI_DA8XX_UART2
		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
		depends on ARCH_DAVINCI_DA8XX
		depends on ARCH_DAVINCI_DA8XX
		select DEBUG_UART_8250
		help
		help
		  Say Y here if you want the debug print routines to direct
		  Say Y here if you want the debug print routines to direct
		  their output to UART2 serial port on DaVinci DA8XX devices.
		  their output to UART2 serial port on DaVinci DA8XX devices.
@@ -133,6 +135,7 @@ choice
	config DEBUG_DAVINCI_DMx_UART0
	config DEBUG_DAVINCI_DMx_UART0
		bool "Kernel low-level debugging on DaVinci DMx using UART0"
		bool "Kernel low-level debugging on DaVinci DMx using UART0"
		depends on ARCH_DAVINCI_DMx
		depends on ARCH_DAVINCI_DMx
		select DEBUG_UART_8250
		help
		help
		  Say Y here if you want the debug print routines to direct
		  Say Y here if you want the debug print routines to direct
		  their output to UART0 serial port on DaVinci DMx devices.
		  their output to UART0 serial port on DaVinci DMx devices.
@@ -140,6 +143,7 @@ choice
	config DEBUG_DAVINCI_TNETV107X_UART1
	config DEBUG_DAVINCI_TNETV107X_UART1
		bool "Kernel low-level debugging on DaVinci TNETV107x using UART1"
		bool "Kernel low-level debugging on DaVinci TNETV107x using UART1"
		depends on ARCH_DAVINCI_TNETV107X
		depends on ARCH_DAVINCI_TNETV107X
		select DEBUG_UART_8250
		help
		help
		  Say Y here if you want the debug print routines to direct
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 serial port on DaVinci TNETV107X
		  their output to UART1 serial port on DaVinci TNETV107X
@@ -901,11 +905,15 @@ config DEBUG_UART_8250


config DEBUG_UART_PHYS
config DEBUG_UART_PHYS
	hex "Physical base address of debug UART"
	hex "Physical base address of debug UART"
	default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
	default 0x01c28000 if DEBUG_SUNXI_UART0
	default 0x01c28000 if DEBUG_SUNXI_UART0
	default 0x01c28400 if DEBUG_SUNXI_UART1
	default 0x01c28400 if DEBUG_SUNXI_UART1
	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
	default 0x02530c00 if DEBUG_KEYSTONE_UART0
	default 0x02530c00 if DEBUG_KEYSTONE_UART0
	default 0x02531000 if DEBUG_KEYSTONE_UART1
	default 0x02531000 if DEBUG_KEYSTONE_UART1
	default 0x03010fe0 if ARCH_RPC
	default 0x03010fe0 if ARCH_RPC
	default 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1
	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \
	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \
				DEBUG_VEXPRESS_UART0_CA9
				DEBUG_VEXPRESS_UART0_CA9
	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
@@ -982,9 +990,13 @@ config DEBUG_UART_VIRT
	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
	default 0xfec02000 if DEBUG_SOCFPGA_UART
	default 0xfec02000 if DEBUG_SOCFPGA_UART
	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
	default 0xfed12000 if ARCH_KIRKWOOD
	default 0xfed12000 if ARCH_KIRKWOOD
	default 0xfedc0000 if ARCH_EP93XX
	default 0xfedc0000 if ARCH_EP93XX
	default 0xfee003f8 if FOOTBRIDGE
	default 0xfee003f8 if FOOTBRIDGE
	default 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1
	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
	default 0xfee36000 if DEBUG_HIGHBANK_UART
	default 0xfee36000 if DEBUG_HIGHBANK_UART
	default 0xfee82340 if ARCH_IOP13XX
	default 0xfee82340 if ARCH_IOP13XX
@@ -1007,7 +1019,9 @@ config DEBUG_UART_8250_WORD
	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
	depends on DEBUG_UART_8250_SHIFT >= 2
	depends on DEBUG_UART_8250_SHIFT >= 2
	default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
	default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
		ARCH_KEYSTONE
		ARCH_KEYSTONE || \
		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
		DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1


config DEBUG_UART_8250_FLOW_CONTROL
config DEBUG_UART_8250_FLOW_CONTROL
	bool "Enable flow control for 8250 UART"
	bool "Enable flow control for 8250 UART"
+0 −65
Original line number Original line Diff line number Diff line
/*
 * Debugging macro for DaVinci
 *
 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
 *
 * 2007 (c) MontaVista Software, Inc. This file is licensed under
 * the terms of the GNU General Public License version 2. This program
 * is licensed "as is" without any warranty of any kind, whether express
 * or implied.
 */

/* Modifications
 * Jan 2009	Chaithrika U S	Added senduart, busyuart, waituart
 *				macros, based on debug-8250.S file
 *				but using 32-bit accesses required for
 *                              some davinci devices.
 */

#include <linux/serial_reg.h>

#include <mach/serial.h>

#define UART_SHIFT	2

#if defined(CONFIG_DEBUG_DAVINCI_DMx_UART0)
#define UART_BASE	DAVINCI_UART0_BASE
#elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART1)
#define UART_BASE	DA8XX_UART1_BASE
#elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART2)
#define UART_BASE	DA8XX_UART2_BASE
#elif defined(CONFIG_DEBUG_DAVINCI_TNETV107X_UART1)
#define UART_BASE	TNETV107X_UART2_BASE
#define UART_VIRTBASE	TNETV107X_UART2_VIRT
#else
#error "Select a specifc port for DEBUG_LL"
#endif

#ifndef UART_VIRTBASE
#define UART_VIRTBASE	IO_ADDRESS(UART_BASE)
#endif

		.macro addruart, rp, rv, tmp
		ldr	\rp, =UART_BASE
		ldr	\rv, =UART_VIRTBASE
		.endm

		.macro	senduart,rd,rx
		str	\rd, [\rx, #UART_TX << UART_SHIFT]
		.endm

		.macro	busyuart,rd,rx
1002:		ldr	\rd, [\rx, #UART_LSR << UART_SHIFT]
		and	\rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
		teq	\rd, #UART_LSR_TEMT | UART_LSR_THRE
		bne	1002b
		.endm

		.macro	waituart,rd,rx
#ifdef FLOW_CONTROL
1001:		ldr	\rd, [\rx, #UART_MSR << UART_SHIFT]
		tst	\rd, #UART_MSR_CTS
		beq	1001b
#endif
		.endm