2008-08-05 16:14:15 +01:00
/ * arch/ a r m / m a c h - i m x / i n c l u d e / m a c h / d e b u g - m a c r o . S
2008-07-05 10:02:51 +02:00
*
* Debugging m a c r o i n c l u d e h e a d e r
*
* Copyright ( C ) 1 9 9 4 - 1 9 9 9 R u s s e l l K i n g
* Moved f r o m l i n u x / a r c h / a r m / k e r n e l / d e b u g . S b y B e n D o o k s
*
* This p r o g r a m i s f r e e s o f t w a r e ; you can redistribute it and/or modify
* it u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e v e r s i o n 2 a s
* published b y t h e F r e e S o f t w a r e F o u n d a t i o n .
*
* /
2010-10-26 09:42:54 +02:00
# include < m a c h / h a r d w a r e . h >
2008-07-05 10:02:51 +02:00
2011-08-19 05:56:59 +01:00
# ifdef C O N F I G _ D E B U G _ I M X 1 _ U A R T
2010-10-26 09:42:54 +02:00
# define U A R T _ P A D D R M X 1 _ U A R T 1 _ B A S E _ A D D R
2011-08-19 05:56:59 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 2 5 _ U A R T )
2010-07-16 15:09:06 +02:00
# define U A R T _ P A D D R M X 2 5 _ U A R T 1 _ B A S E _ A D D R
2011-08-19 05:56:59 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 2 1 _ I M X 2 7 _ U A R T )
2010-10-26 09:42:54 +02:00
# define U A R T _ P A D D R M X 2 x _ U A R T 1 _ B A S E _ A D D R
2011-08-19 05:56:59 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 3 1 _ I M X 3 5 _ U A R T )
2010-10-26 09:42:54 +02:00
# define U A R T _ P A D D R M X 3 x _ U A R T 1 _ B A S E _ A D D R
2011-08-19 05:56:59 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 5 1 _ U A R T )
2010-02-04 12:09:40 -08:00
# define U A R T _ P A D D R M X 5 1 _ U A R T 1 _ B A S E _ A D D R
2011-08-19 05:56:59 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 5 0 _ I M X 5 3 _ U A R T )
2011-08-05 09:32:41 +02:00
# define U A R T _ P A D D R M X 5 3 _ U A R T 1 _ B A S E _ A D D R
2012-04-27 10:15:45 +02:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 6 Q _ U A R T 2 )
# define U A R T _ P A D D R M X 6 Q _ U A R T 2 _ B A S E _ A D D R
2012-02-06 13:19:19 +01:00
# elif d e f i n e d ( C O N F I G _ D E B U G _ I M X 6 Q _ U A R T 4 )
2011-10-02 15:09:11 +08:00
# define U A R T _ P A D D R M X 6 Q _ U A R T 4 _ B A S E _ A D D R
2011-08-05 09:32:41 +02:00
# endif
2010-10-26 09:42:54 +02:00
# define U A R T _ V A D D R I M X _ I O _ A D D R E S S ( U A R T _ P A D D R )
2011-08-31 22:55:46 -04:00
.macro addruart, r p , r v , t m p
2010-07-06 18:30:06 +08:00
ldr \ r p , =UART_PADDR @ physical
ldr \ r v , =UART_VADDR @ virtual
2008-07-05 10:02:51 +02:00
.endm
.macro senduart,r d ,r x
str \ r d , [ \ r x , #0x40 ] @ TXDATA
.endm
.macro waituart,r d ,r x
.endm
.macro busyuart,r d ,r x
1002 : ldr \ r d , [ \ r x , #0x98 ] @ SR2
tst \ r d , #1 < < 3 @ TXDC
beq 1 0 0 2 b @ wait until transmit done
.endm