2019-06-04 11:11:33 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2006-09-26 12:38:05 +04:00
/ *
* linux/ a r c h / a r m / m m / p r o c - a r m 9 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 9 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 >
2020-06-09 07:32:42 +03:00
# include < l i n u x / p g t a b l e . h >
2006-09-26 12:38:05 +04:00
# 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 22:15:31 +04:00
# include < a s m / h w c a p . h >
2006-09-26 12:38:05 +04:00
# include < a s m / p g t a b l e - h w d e f . h >
# include < a s m / p t r a c e . h >
2011-06-23 20:21:28 +04:00
# include " p r o c - m a c r o s . S "
2006-09-26 12:38:05 +04:00
.text
/ *
* cpu_ a r m 9 t d m i _ p r o c _ i n i t ( )
* cpu_ a r m 9 t d m i _ d o _ i d l e ( )
* cpu_ a r m 9 t d m i _ d c a c h e _ c l e a n _ a r e a ( )
* cpu_ a r m 9 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 9 t d m i _ p r o c _ i n i t )
ENTRY( c p u _ a r m 9 t d m i _ d o _ i d l e )
ENTRY( c p u _ a r m 9 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 9 t d m i _ s w i t c h _ m m )
2014-06-30 19:29:12 +04:00
ret l r
2006-09-26 12:38:05 +04:00
/ *
* cpu_ a r m 9 t d m i _ p r o c _ f i n ( )
* /
ENTRY( c p u _ a r m 9 t d m i _ p r o c _ f i n )
2014-06-30 19:29:12 +04:00
ret l r
2006-09-26 12:38:05 +04:00
/ *
* Function : cpu_ a r m 9 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 17:25:04 +04:00
.pushsection .idmap .text , " ax"
2006-09-26 12:38:05 +04:00
ENTRY( c p u _ a r m 9 t d m i _ r e s e t )
2014-06-30 19:29:12 +04:00
ret r0
2011-11-15 17:25:04 +04:00
ENDPROC( c p u _ a r m 9 t d m i _ r e s e t )
.popsection
2006-09-26 12:38:05 +04:00
.type _ _ arm9 t d m i _ s e t u p , #f u n c t i o n
__arm9tdmi_setup :
2014-06-30 19:29:12 +04:00
ret l r
2006-09-26 12:38:05 +04:00
.size _ _ arm9 t d m i _ s e t u p , . - _ _ a r m 9 t d m i _ s e t u p
_ _ INITDATA
2011-06-23 20:21:28 +04: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 9 t d m i , d a b o r t =nommu_early_abort , p a b o r t =legacy_pabort , n o m m u =1
2006-09-26 12:38:05 +04:00
.section " .rodata "
2011-06-23 20:21:28 +04: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 9 t d m i _ n a m e , " A R M 9 T D M I "
string c p u _ p20 0 1 _ n a m e , " P 2 0 0 1 "
2006-09-26 12:38:05 +04:00
.align
2019-11-04 21:31:45 +03:00
.section " .proc .info .init " , " a"
2006-09-26 12:38:05 +04:00
2011-06-23 20:21:28 +04:00
.macro arm9tdmi_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
.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 12:38:05 +04:00
.long 0
.long 0
2015-03-18 09:29:32 +03:00
initfn _ _ a r m 9 t d m i _ s e t u p , _ _ \ n a m e \ ( ) _ p r o c _ i n f o
2006-09-26 12:38:05 +04:00
.long cpu_arch_name
.long cpu_elf_name
.long HWCAP_SWP | HWCAP_ T H U M B | H W C A P _ 2 6 B I T
2011-06-23 20:21:28 +04:00
.long \ cpu_ n a m e
2006-09-26 12:38:05 +04:00
.long arm9tdmi_processor_functions
.long 0
.long 0
.long v4_cache_fns
2011-06-23 20:21:28 +04:00
.size _ _ \ name\ ( ) _ p r o c _ i n f o , . - _ _ \ n a m e \ ( ) _ p r o c _ i n f o
.endm
2006-09-26 12:38:05 +04:00
2011-06-23 20:21:28 +04:00
arm9 t d m i _ p r o c _ i n f o a r m 9 t d m i , 0 x41 0 0 9 9 0 0 , 0 x f f f8 f f00 , c p u _ a r m 9 t d m i _ n a m e
arm9 t d m i _ p r o c _ i n f o p20 0 1 , 0 x41 0 2 9 0 0 0 , 0 x f f f f f f f f , c p u _ p20 0 1 _ n a m e