@ -16,6 +16,8 @@
# include < a s m / p r o c e s s o r . h >
# include < a s m / c p u t a b l e . h >
# include < a s m / p p c _ a s m . h >
# include < a s m / m m u - b o o k 3 e . h >
# include < a s m / a s m - o f f s e t s . h >
_ GLOBAL( _ _ e 5 0 0 _ i c a c h e _ s e t u p )
mfspr r0 , S P R N _ L 1 C S R 1
@ -73,12 +75,33 @@ _GLOBAL(__setup_cpu_e500v2)
mtlr r4
blr
_ GLOBAL( _ _ s e t u p _ c p u _ e 5 0 0 m c )
mr r5 , r4
mflr r4
mflr r5
bl _ _ e 5 0 0 _ i c a c h e _ s e t u p
bl _ _ e 5 0 0 _ d c a c h e _ s e t u p
bl _ _ s e t u p _ e 5 0 0 m c _ i v o r s
mtlr r4
/ *
* We o n l y w a n t t o t o u c h I V O R 3 8 - 4 1 i f w e ' r e r u n n i n g o n h a r d w a r e
* that s u p p o r t s c a t e g o r y E . H V . T h e a r c h i t e c t u r a l w a y t o d e t e r m i n e
* this i s M M U C F G [ L P I D S I Z E ] .
* /
mfspr r3 , S P R N _ M M U C F G
rlwinm. r3 , r3 , 0 , M M U C F G _ L P I D S I Z E
beq 1 f
bl _ _ s e t u p _ e h v _ i v o r s
b 2 f
1 :
lwz r3 , C P U _ S P E C _ F E A T U R E S ( r4 )
/ * We n e e d t h i s c h e c k a s c p u _ s e t u p i s a l s o c a l l e d f o r
* the s e c o n d a r y c o r e s . S o , i f w e h a v e a l r e a d y c l e a r e d
* the f e a t u r e o n t h e p r i m a r y c o r e , a v o i d d o i n g i t o n t h e
* secondary c o r e .
* /
andis. r6 , r3 , C P U _ F T R _ E M B _ H V @h
beq 2 f
rlwinm r3 , r3 , 0 , ~ C P U _ F T R _ E M B _ H V
stw r3 , C P U _ S P E C _ F E A T U R E S ( r4 )
2 :
mtlr r5
blr
# endif
/* Right now, restore and setup are the same thing */