| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  | /* arch/arm/mach-imx/include/mach/debug-macro.S | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:51 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Debugging macro include header | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (C) 1994-1999 Russell King | 
					
						
							|  |  |  |  *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify
 | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2010-01-25 18:23:04 +01:00
										 |  |  | #define IMX_NEEDS_DEPRECATED_SYMBOLS | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | #ifdef CONFIG_ARCH_MX1 | 
					
						
							|  |  |  | #include <mach/mx1.h> | 
					
						
							|  |  |  | #define UART_PADDR	UART1_BASE_ADDR | 
					
						
							|  |  |  | #define UART_VADDR	IO_ADDRESS(UART1_BASE_ADDR) | 
					
						
							| 
									
										
										
										
											2008-11-12 15:38:39 +01:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-04 11:32:12 +02:00
										 |  |  | #ifdef CONFIG_ARCH_MX25 | 
					
						
							|  |  |  | #ifdef UART_PADDR | 
					
						
							|  |  |  | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | #include <mach/mx25.h> | 
					
						
							|  |  |  | #define UART_PADDR	UART1_BASE_ADDR | 
					
						
							|  |  |  | #define UART_VADDR	MX25_AIPS1_IO_ADDRESS(UART1_BASE_ADDR) | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | #ifdef CONFIG_ARCH_MX2 | 
					
						
							|  |  |  | #ifdef UART_PADDR | 
					
						
							|  |  |  | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | 
					
						
							| 
									
										
										
										
											2009-05-19 10:01:03 +02:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | #include <mach/mx2x.h> | 
					
						
							|  |  |  | #define UART_PADDR	UART1_BASE_ADDR | 
					
						
							|  |  |  | #define UART_VADDR	AIPI_IO_ADDRESS(UART1_BASE_ADDR) | 
					
						
							| 
									
										
										
										
											2009-06-02 17:24:16 -07:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_ARCH_MX3 | 
					
						
							|  |  |  | #ifdef UART_PADDR | 
					
						
							|  |  |  | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | 
					
						
							| 
									
										
										
										
											2009-06-03 17:23:54 -04:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | #include <mach/mx3x.h> | 
					
						
							|  |  |  | #define UART_PADDR	UART1_BASE_ADDR | 
					
						
							|  |  |  | #define UART_VADDR	AIPS1_IO_ADDRESS(UART1_BASE_ADDR) | 
					
						
							| 
									
										
										
										
											2008-07-05 10:03:00 +02:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:09:40 -08:00
										 |  |  | #ifdef CONFIG_ARCH_MX5 | 
					
						
							|  |  |  | #ifdef UART_PADDR | 
					
						
							|  |  |  | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | #include <mach/mx51.h> | 
					
						
							|  |  |  | #define UART_PADDR	MX51_UART1_BASE_ADDR | 
					
						
							|  |  |  | #define UART_VADDR	MX51_AIPS1_IO_ADDRESS(MX51_UART1_BASE_ADDR) | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-31 20:29:22 +09:00
										 |  |  | #ifdef CONFIG_ARCH_MXC91231 | 
					
						
							|  |  |  | #ifdef UART_PADDR | 
					
						
							|  |  |  | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | #include <mach/mxc91231.h> | 
					
						
							|  |  |  | #define UART_PADDR	MXC91231_UART2_BASE_ADDR | 
					
						
							| 
									
										
										
										
											2010-01-13 18:07:11 +01:00
										 |  |  | #define UART_VADDR	MXC91231_IO_ADDRESS(MXC91231_UART2_BASE_ADDR) | 
					
						
							| 
									
										
										
										
											2009-07-31 20:29:22 +09:00
										 |  |  | #endif | 
					
						
							| 
									
										
										
										
											2010-02-01 23:26:53 +01:00
										 |  |  | 		.macro	addruart, rx, tmp | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:51 +02:00
										 |  |  | 		mrc	p15, 0, \rx, c1, c0 | 
					
						
							|  |  |  | 		tst	\rx, #1			@ MMU enabled?
 | 
					
						
							| 
									
										
										
										
											2009-06-04 13:45:37 +02:00
										 |  |  | 		ldreq	\rx, =UART_PADDR	@ physical
 | 
					
						
							|  |  |  | 		ldrne	\rx, =UART_VADDR	@ virtual
 | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:51 +02:00
										 |  |  | 		.endm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.macro	senduart,rd,rx | 
					
						
							|  |  |  | 		str	\rd, [\rx, #0x40]	@ TXDATA
 | 
					
						
							|  |  |  | 		.endm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.macro	waituart,rd,rx | 
					
						
							|  |  |  | 		.endm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.macro	busyuart,rd,rx | 
					
						
							|  |  |  | 1002:		ldr	\rd, [\rx, #0x98]	@ SR2
 | 
					
						
							|  |  |  | 		tst	\rd, #1 << 3		@ TXDC
 | 
					
						
							|  |  |  | 		beq	1002b			@ wait until transmit done
 | 
					
						
							|  |  |  | 		.endm |