forked from mirrors/linux
		
	 0b37e9e8dc
			
		
	
	
		0b37e9e8dc
		
	
	
	
	
		
			
			AT91 still uses an offset (0x0100 0000) from the physical address to map the debug UART. This is unfortunate as for some platforms (sama5d3 and earlier), it ends up in the PCI zone and PCI is enabled in multi_v7. Switch to DEBUG_UART_VIRT to solve that. Tested on sama5d3 and 9g20. Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  *  Copyright (C) 2003-2005 SAN People
 | |
|  *
 | |
|  * Debugging macro include header
 | |
|  *
 | |
|  * 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.
 | |
|  *
 | |
| */
 | |
| 
 | |
| #define AT91_DBGU_SR		(0x14)	/* Status Register */
 | |
| #define AT91_DBGU_THR		(0x1c)	/* Transmitter Holding Register */
 | |
| #define AT91_DBGU_TXRDY		(1 << 1)	/* Transmitter Ready */
 | |
| #define AT91_DBGU_TXEMPTY	(1 << 9)	/* Transmitter Empty */
 | |
| 
 | |
| 	.macro	addruart, rp, rv, tmp
 | |
| 	ldr	\rp, =CONFIG_DEBUG_UART_PHYS		@ System peripherals (phys address)
 | |
| 	ldr	\rv, =CONFIG_DEBUG_UART_VIRT		@ System peripherals (virt address)
 | |
| 	.endm
 | |
| 
 | |
| 	.macro	senduart,rd,rx
 | |
| 	strb	\rd, [\rx, #(AT91_DBGU_THR)]		@ Write to Transmitter Holding Register
 | |
| 	.endm
 | |
| 
 | |
| 	.macro	waituart,rd,rx
 | |
| 1001:	ldr	\rd, [\rx, #(AT91_DBGU_SR)]		@ Read Status Register
 | |
| 	tst	\rd, #AT91_DBGU_TXRDY			@ DBGU_TXRDY = 1 when ready to transmit
 | |
| 	beq	1001b
 | |
| 	.endm
 | |
| 
 | |
| 	.macro	busyuart,rd,rx
 | |
| 1001:	ldr	\rd, [\rx, #(AT91_DBGU_SR)]		@ Read Status Register
 | |
| 	tst	\rd, #AT91_DBGU_TXEMPTY			@ DBGU_TXEMPTY = 1 when transmission complete
 | |
| 	beq	1001b
 | |
| 	.endm
 | |
| 
 |