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

Commit d0a9001d authored by Afzal Mohammed's avatar Afzal Mohammed Committed by Tony Lindgren
Browse files

ARM: OMAP2+: am33xx: Add low level debugging support



Add support for low level debugging on AM335X EVM (AM33XX family).
Currently only support for UART1 console, which is used on AM335X EVM
is added.

Signed-off-by: default avatarAfzal Mohammed <afzal@ti.com>
Signed-off-by: default avatarVaibhav Hiremath <hvaibhav@ti.com>
Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent f8f5701b
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -72,6 +72,8 @@ omap_uart_lsr: .word 0
		beq	82f			@ configure UART2
		cmp	\rp, #TI81XXUART3	@ ti81Xx UART offsets different
		beq	83f			@ configure UART3
		cmp	\rp, #AM33XXUART1	@ AM33XX UART offsets different
		beq	84f			@ configure UART1
		cmp	\rp, #ZOOM_UART		@ only on zoom2/3
		beq	95f			@ configure ZOOM_UART

@@ -100,7 +102,9 @@ omap_uart_lsr: .word 0
		b	98f
83:		mov	\rp, #UART_OFFSET(TI81XX_UART3_BASE)
		b	98f

84:		ldr	\rp, =AM33XX_UART1_BASE
		and	\rp, \rp, #0x00ffffff
		b	97f
95:		ldr	\rp, =ZOOM_UART_BASE
		str	\rp, [\tmp, #0]		@ omap_uart_phys
		ldr	\rp, =ZOOM_UART_VIRT
@@ -109,6 +113,17 @@ omap_uart_lsr: .word 0
		str	\rp, [\tmp, #8]		@ omap_uart_lsr
		b	10b

		/* AM33XX: Store both phys and virt address for the uart */
97:		add	\rp, \rp, #0x44000000	@ phys base
		str	\rp, [\tmp, #0]		@ omap_uart_phys
		sub	\rp, \rp, #0x44000000	@ phys base
		add	\rp, \rp, #0xf9000000	@ virt base
		str	\rp, [\tmp, #4]		@ omap_uart_virt
		mov	\rp, #(UART_LSR << OMAP_PORT_SHIFT)
		str	\rp, [\tmp, #8]		@ omap_uart_lsr

		b	10b

		/* Store both phys and virt address for the uart */
98:		add	\rp, \rp, #0x48000000	@ phys base
		str	\rp, [\tmp, #0]		@ omap_uart_phys
+4 −0
Original line number Diff line number Diff line
@@ -60,6 +60,9 @@
/* AM3505/3517 UART4 */
#define AM35XX_UART4_BASE	0x4809E000	/* Only on AM3505/3517 */

/* AM33XX serial port */
#define AM33XX_UART1_BASE	0x44E09000

/* External port on Zoom2/3 */
#define ZOOM_UART_BASE		0x10000000
#define ZOOM_UART_VIRT		0xfa400000
@@ -93,6 +96,7 @@
#define TI81XXUART1		81
#define TI81XXUART2		82
#define TI81XXUART3		83
#define AM33XXUART1		84
#define ZOOM_UART		95		/* Only on zoom2/3 */

/* This is only used by 8250.c for omap1510 */
+6 −0
Original line number Diff line number Diff line
@@ -103,6 +103,10 @@ static inline void flush(void)
	_DEBUG_LL_ENTRY(mach, TI81XX_UART##p##_BASE, OMAP_PORT_SHIFT,	\
		TI81XXUART##p)

#define DEBUG_LL_AM33XX(p, mach)					\
	_DEBUG_LL_ENTRY(mach, AM33XX_UART##p##_BASE, OMAP_PORT_SHIFT,	\
		AM33XXUART##p)

static inline void __arch_decomp_setup(unsigned long arch_id)
{
	int port = 0;
@@ -183,6 +187,8 @@ static inline void __arch_decomp_setup(unsigned long arch_id)
		/* TI8148 base boards using UART1 */
		DEBUG_LL_TI81XX(1, ti8148evm);

		/* AM33XX base boards using UART1 */
		DEBUG_LL_AM33XX(1, am335xevm);
	} while (0);
}