/* * Early serial debug output macro for Keystone SOCs * * Copyright 2013 Texas Instruments, Inc. * Santosh Shilimkar * * Based on RMKs low level debug code. * Copyright (C) 1994-1999 Russell King * * 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 #define UART_SHIFT 2 #if defined(CONFIG_DEBUG_KEYSTONE_UART0) #define UART_PHYS 0x02530c00 #define UART_VIRT 0xfeb30c00 #elif defined(CONFIG_DEBUG_KEYSTONE_UART1) #define UART_PHYS 0x02531000 #define UART_VIRT 0xfeb31000 #endif .macro addruart, rp, rv, tmp ldr \rv, =UART_VIRT @ physical base address ldr \rp, =UART_PHYS @ virtual base address .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 .endm