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 .
*
* /
2012-10-08 13:44:29 +08:00
2016-01-27 17:59:36 +01:00
# include < a s m / a s s e m b l e r . h >
2012-12-12 19:03:53 +08:00
# include " i m x - u a r t . h "
2011-08-05 09:32:41 +02:00
2012-09-16 20:50:45 +08:00
/ *
* FIXME : This i s a c o p y o f I M X _ I O _ P 2 V i n h a r d w a r e . h , a n d n e e d s t o
* stay s y n c w i t h t h a t . I t ' s h a r d t o m a i n t a i n , a n d s h o u l d b e f i x e d
* globally f o r m u l t i - p l a t f o r m b u i l d t o u s e a f i x e d v i r t u a l a d d r e s s
* for l o w - l e v e l d e b u g u a r t p o r t a c r o s s p l a t f o r m s .
* /
# define I M X _ I O _ P 2 V ( x ) ( \
( ( ( x) & 0 x80 0 0 0 0 0 0 ) > > 7 ) | \
( 0 xf4 0 0 0 0 0 0 + \
( ( ( x) & 0 x50 0 0 0 0 0 0 ) > > 6 ) + \
( ( ( x) & 0 x0 b00 0 0 0 0 ) > > 4 ) + \
( ( ( x) & 0 x00 0 f f f f f ) ) ) )
# define U A R T _ V A D D R I M X _ I O _ P 2 V ( U A R T _ P A D D R )
2010-10-26 09:42:54 +02:00
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
2016-01-27 17:59:36 +01:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2008-07-05 10:02:51 +02:00
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
2016-01-27 17:59:36 +01:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2008-07-05 10:02:51 +02:00
tst \ r d , #1 < < 3 @ TXDC
beq 1 0 0 2 b @ wait until transmit done
.endm