Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[wrt350n-kernel.git] / arch / ppc / boot / simple / clear.S
blob95c5647a0f51180db74b34eacf6580e5587c52eb
1 /*
2  * Code to call _setup_L2CR to flus, invalidate and disable the L2,
3  * and if present, do the same to the L3.
4  */
6 #define CLEAR_CACHES                                            \
7         bl      _setup_L2CR;                                    \
8                                                                 \
9         /* If 745x, turn off L3CR as well */                    \
10         mfspr   r8,SPRN_PVR;                                    \
11         srwi    r8,r8,16;                                       \
12                                                                 \
13         cmpli   cr0,r8,0x8000;                  /* 7450 */      \
14         cmpli   cr1,r8,0x8001;                  /* 7455 */      \
15         cmpli   cr2,r8,0x8002;                  /* 7457 */      \
16         /* Now test if any are true. */                         \
17         cror    4*cr0+eq,4*cr0+eq,4*cr1+eq;                     \
18         cror    4*cr0+eq,4*cr0+eq,4*cr2+eq;                     \
19         beql    _setup_L3CR