]> git.sur5r.net Git - freertos/blob
e47160be9b448c6383f086fec58c16f0a9ffeac8
[freertos] /
1 /******************************************************************************
2 * Copyright (c) 2008-2013 Xilinx, Inc.  All rights reserved. 
3
4 * Xilinx, Inc. 
5 * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A 
6 * COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS 
7 * ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR 
8 * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION 
9 * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE 
10 * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. 
11 * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO 
12 * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO 
13 * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE 
14 * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY 
15 * AND FITNESS FOR A PARTICULAR PURPOSE. 
16
17 * File   : microblaze_disable_dcache.s
18 * Date   : 2002, March 20.
19 * Company: Xilinx
20 * Group  : Emerging Software Technologies
21 *
22 * Summary:
23 * Disable the L1 dcache on the microblaze.
24 *
25 *******************************************************************************/
26
27 #include "xparameters.h"
28         
29         .text
30         .globl  microblaze_disable_dcache
31         .ent    microblaze_disable_dcache
32         .align  2
33 microblaze_disable_dcache:
34 #if XPAR_MICROBLAZE_USE_MSR_INSTR == 1
35
36 #if XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0
37     addik   r1, r1, -4
38     swi     r15, r1, 0
39     brlid   r15, microblaze_flush_dcache /* microblaze_flush_dcache does not use r1*/
40     nop
41     lwi     r15, r1, 0
42     addi    r1, r1, 4
43 #endif /* XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0 */
44         rtsd    r15, 8
45         msrclr r0, 0x80
46
47 #else /* XPAR_MICROBLAZE_USE_MSR_INSTR == 1 */
48
49     addik   r1, r1, -4
50
51 #if XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0
52     swi     r15, r1, 0
53     brlid   r15, microblaze_flush_dcache
54     nop
55 #endif /* XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0 */
56     mfs r11, rmsr
57         andi    r11, r11, ~(0x80)
58         mts     rmsr, r11
59
60 #if XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0   
61     lwi     r15, r1, 0
62 #endif /* XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK != 0 */
63
64         rtsd    r15, 8
65         addi    r1, r1, 4
66
67 #endif /*XPAR_MICROBLAZE_USE_MSR_INSTR == 1*/
68         .end    microblaze_disable_dcache