 f8c95fe6d9
			
		
	
	
	f8c95fe6d9
	
	
	
		
			
			Extend imx6q DEBUG_LL uart port selection support to cover all i.MX SoCs. The 'range' of the Kconfig option gets dropped, as users looking at the option must know the uart number on his board. The bottom line is that the build system will report an error if an invalid port number is picked for given SoC. The header arch/arm/include/debug/imx-uart.h is created to accommodate all the uart base addresses. And the header will also be used for other low-level debug facility later. Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* arch/arm/mach-imx/include/mach/debug-macro.S
 | |
|  *
 | |
|  * 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.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #include "imx-uart.h"
 | |
| 
 | |
| /*
 | |
|  * FIXME: This is a copy of IMX_IO_P2V in hardware.h, and needs to
 | |
|  * stay sync with that.  It's hard to maintain, and should be fixed
 | |
|  * globally for multi-platform build to use a fixed virtual address
 | |
|  * for low-level debug uart port across platforms.
 | |
|  */
 | |
| #define IMX_IO_P2V(x)	(						\
 | |
| 			(((x) & 0x80000000) >> 7) |			\
 | |
| 			(0xf4000000 +					\
 | |
| 			(((x) & 0x50000000) >> 6) +			\
 | |
| 			(((x) & 0x0b000000) >> 4) +			\
 | |
| 			(((x) & 0x000fffff))))
 | |
| 
 | |
| #define UART_VADDR	IMX_IO_P2V(UART_PADDR)
 | |
| 
 | |
| 		.macro	addruart, rp, rv, tmp
 | |
| 		ldr	\rp, =UART_PADDR	@ physical
 | |
| 		ldr	\rv, =UART_VADDR	@ virtual
 | |
| 		.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
 |