2019-06-04 10:11:33 +02:00
/* SPDX-License-Identifier: GPL-2.0-only */
2006-09-26 17:37:36 +09:00
/ *
* linux/ a r c h / a r m / m m / p r o c - a r m 7 t d m i . S : u t i l i t y f u n c t i o n s f o r A R M 7 T D M I
*
* Copyright ( C ) 2 0 0 3 - 2 0 0 6 H y o k S . C h o i < h y o k . c h o i @samsung.com>
* /
# include < l i n u x / l i n k a g e . h >
# include < l i n u x / i n i t . h >
# include < a s m / a s s e m b l e r . h >
# include < a s m / a s m - o f f s e t s . h >
2008-09-07 19:15:31 +01:00
# include < a s m / h w c a p . h >
2006-09-26 17:37:36 +09:00
# include < a s m / p g t a b l e - h w d e f . h >
2020-06-08 21:32:38 -07:00
# include < l i n u x / p g t a b l e . h >
2006-09-26 17:37:36 +09:00
# include < a s m / p t r a c e . h >
2011-06-23 17:19:26 +01:00
# include " p r o c - m a c r o s . S "
2006-09-26 17:37:36 +09:00
.text
/ *
* cpu_ a r m 7 t d m i _ p r o c _ i n i t ( )
* cpu_ a r m 7 t d m i _ d o _ i d l e ( )
* cpu_ a r m 7 t d m i _ d c a c h e _ c l e a n _ a r e a ( )
* cpu_ a r m 7 t d m i _ s w i t c h _ m m ( )
*
* These a r e n o t r e q u i r e d .
* /
ENTRY( c p u _ a r m 7 t d m i _ p r o c _ i n i t )
ENTRY( c p u _ a r m 7 t d m i _ d o _ i d l e )
ENTRY( c p u _ a r m 7 t d m i _ d c a c h e _ c l e a n _ a r e a )
ENTRY( c p u _ a r m 7 t d m i _ s w i t c h _ m m )
2014-06-30 16:29:12 +01:00
ret l r
2006-09-26 17:37:36 +09:00
/ *
* cpu_ a r m 7 t d m i _ p r o c _ f i n ( )
* /
ENTRY( c p u _ a r m 7 t d m i _ p r o c _ f i n )
2014-06-30 16:29:12 +01:00
ret l r
2006-09-26 17:37:36 +09:00
/ *
* Function : cpu_ a r m 7 t d m i _ r e s e t ( l o c )
* Params : l o c ( r0 ) a d d r e s s t o j u m p t o
* Purpose : S e t s u p e v e r y t h i n g f o r a r e s e t a n d j u m p t o t h e l o c a t i o n f o r s o f t r e s e t .
* /
2011-11-15 13:25:04 +00:00
.pushsection .idmap .text , " ax"
2006-09-26 17:37:36 +09:00
ENTRY( c p u _ a r m 7 t d m i _ r e s e t )
2014-06-30 16:29:12 +01:00
ret r0
2011-11-15 13:25:04 +00:00
ENDPROC( c p u _ a r m 7 t d m i _ r e s e t )
.popsection
2006-09-26 17:37:36 +09:00
.type _ _ arm7 t d m i _ s e t u p , #f u n c t i o n
__arm7tdmi_setup :
2014-06-30 16:29:12 +01:00
ret l r
2006-09-26 17:37:36 +09:00
.size _ _ arm7 t d m i _ s e t u p , . - _ _ a r m 7 t d m i _ s e t u p
_ _ INITDATA
2011-06-23 17:19:26 +01:00
@ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
define_ p r o c e s s o r _ f u n c t i o n s a r m 7 t d m i , d a b o r t =v4t_late_abort , p a b o r t =legacy_pabort , n o m m u =1
2006-09-26 17:37:36 +09:00
.section " .rodata "
2011-06-23 17:19:26 +01:00
string c p u _ a r c h _ n a m e , " a r m v4 t "
string c p u _ e l f _ n a m e , " v4 "
string c p u _ a r m 7 t d m i _ n a m e , " A R M 7 T D M I "
string c p u _ t r i s c e n d a7 _ n a m e , " T r i s c e n d - A 7 x "
string c p u _ a t 9 1 _ n a m e , " A t m e l - A T 9 1 M 4 0 x x x "
string c p u _ s3 c34 1 0 _ n a m e , " S a m s u n g - S 3 C 3 4 1 0 "
string c p u _ s3 c44 b0 x _ n a m e , " S a m s u n g - S 3 C 4 4 B 0 x "
string c p u _ s3 c45 1 0 b _ n a m e , " S a m s u n g - S 3 C 4 5 1 0 B "
string c p u _ s3 c45 3 0 _ n a m e , " S a m s u n g - S 3 C 4 5 3 0 "
string c p u _ n e t a r m _ n a m e , " N E T A R M "
2006-09-26 17:37:36 +09:00
.align
2019-11-04 19:31:45 +01:00
.section " .proc .info .init " , " a"
2006-09-26 17:37:36 +09:00
2011-06-23 17:19:26 +01:00
.macro arm7tdmi_proc_info name : req, c p u _ v a l : r e q , c p u _ m a s k : r e q , c p u _ n a m e : r e q , \
extra_ h w c a p s =0
.type _ _ \ name\ ( ) _ p r o c _ i n f o , #o b j e c t
_ _ \ name\ ( ) _ p r o c _ i n f o :
.long \ cpu_ v a l
.long \ cpu_ m a s k
2006-09-26 17:37:36 +09:00
.long 0
.long 0
2015-03-18 07:29:32 +01:00
initfn _ _ a r m 7 t d m i _ s e t u p , _ _ \ n a m e \ ( ) _ p r o c _ i n f o
2006-09-26 17:37:36 +09:00
.long cpu_arch_name
.long cpu_elf_name
2011-06-23 17:19:26 +01:00
.long HWCAP_SWP | HWCAP_ 2 6 B I T | ( \ e x t r a _ h w c a p s )
.long \ cpu_ n a m e
2006-09-26 17:37:36 +09:00
.long arm7tdmi_processor_functions
.long 0
.long 0
.long v4_cache_fns
2011-06-23 17:19:26 +01:00
.size _ _ \ name\ ( ) _ p r o c _ i n f o , . - _ _ \ n a m e \ ( ) _ p r o c _ i n f o
.endm
arm7 t d m i _ p r o c _ i n f o a r m 7 t d m i , 0 x41 0 0 7 7 0 0 , 0 x f f f8 f f00 , \
cpu_ a r m 7 t d m i _ n a m e
arm7 t d m i _ p r o c _ i n f o t r i s c e n d a7 , 0 x00 0 1 d2 f f , 0 x00 0 1 f f f f , \
cpu_ t r i s c e n d a7 _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB
arm7 t d m i _ p r o c _ i n f o a t 9 1 , 0 x14 0 0 0 0 4 0 , 0 x f f f00 0 e 0 , \
cpu_ a t 9 1 _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB
arm7 t d m i _ p r o c _ i n f o s3 c45 1 0 b , 0 x36 3 6 5 0 0 0 , 0 x f f f f f00 0 , \
cpu_ s3 c45 1 0 b _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB
arm7 t d m i _ p r o c _ i n f o s3 c45 3 0 , 0 x4 c00 0 0 0 0 , 0 x f f f00 0 e 0 , \
cpu_ s3 c45 3 0 _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB
arm7 t d m i _ p r o c _ i n f o s3 c34 1 0 , 0 x34 1 0 0 0 0 0 , 0 x f f f f00 0 0 , \
cpu_ s3 c34 1 0 _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB
arm7 t d m i _ p r o c _ i n f o s3 c44 b0 x , 0 x44 b00 0 0 0 , 0 x f f f f00 0 0 , \
cpu_ s3 c44 b0 x _ n a m e , e x t r a _ h w c a p s =HWCAP_THUMB