aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/mach-bf527/head.S19
-rw-r--r--arch/blackfin/mach-bf533/head.S18
-rw-r--r--arch/blackfin/mach-bf537/head.S39
-rw-r--r--arch/blackfin/mach-bf561/head.S17
-rw-r--r--arch/blackfin/mach-common/Makefile2
-rw-r--r--arch/blackfin/mach-common/cacheinit.S77
6 files changed, 2 insertions, 170 deletions
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S
index fe05cc1ef174..a16a26575280 100644
--- a/arch/blackfin/mach-bf527/head.S
+++ b/arch/blackfin/mach-bf527/head.S
@@ -105,17 +105,8 @@ ENTRY(__start)
105 R1 = [p0]; 105 R1 = [p0];
106 R0 = ~ENICPLB; 106 R0 = ~ENICPLB;
107 R0 = R0 & R1; 107 R0 = R0 & R1;
108
109 /* Anomaly 05000125 */
110#if ANOMALY_05000125
111 CLI R2;
112 SSYNC;
113#endif
114 [p0] = R0; 108 [p0] = R0;
115 SSYNC; 109 SSYNC;
116#if ANOMALY_05000125
117 STI R2;
118#endif
119 110
120 /* Turn off the dcache */ 111 /* Turn off the dcache */
121 p0.l = LO(DMEM_CONTROL); 112 p0.l = LO(DMEM_CONTROL);
@@ -123,18 +114,8 @@ ENTRY(__start)
123 R1 = [p0]; 114 R1 = [p0];
124 R0 = ~ENDCPLB; 115 R0 = ~ENDCPLB;
125 R0 = R0 & R1; 116 R0 = R0 & R1;
126
127 /* Anomaly 05000125 */
128#if ANOMALY_05000125
129 CLI R2;
130 SSYNC;
131#endif
132 [p0] = R0; 117 [p0] = R0;
133 SSYNC; 118 SSYNC;
134#if ANOMALY_05000125
135 STI R2;
136#endif
137
138 119
139#if defined(CONFIG_BF527) 120#if defined(CONFIG_BF527)
140 p0.h = hi(EMAC_SYSTAT); 121 p0.h = hi(EMAC_SYSTAT);
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index c671e8549b17..fb49169c0e7b 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -116,17 +116,8 @@ ENTRY(__start)
116 R1 = [p0]; 116 R1 = [p0];
117 R0 = ~ENICPLB; 117 R0 = ~ENICPLB;
118 R0 = R0 & R1; 118 R0 = R0 & R1;
119
120 /* Anomaly 05000125 */
121#if ANOMALY_05000125
122 CLI R2;
123 SSYNC;
124#endif
125 [p0] = R0; 119 [p0] = R0;
126 SSYNC; 120 SSYNC;
127#if ANOMALY_05000125
128 STI R2;
129#endif
130 121
131 /* Turn off the dcache */ 122 /* Turn off the dcache */
132 p0.l = LO(DMEM_CONTROL); 123 p0.l = LO(DMEM_CONTROL);
@@ -134,17 +125,8 @@ ENTRY(__start)
134 R1 = [p0]; 125 R1 = [p0];
135 R0 = ~ENDCPLB; 126 R0 = ~ENDCPLB;
136 R0 = R0 & R1; 127 R0 = R0 & R1;
137
138 /* Anomaly 05000125 */
139#if ANOMALY_05000125
140 CLI R2;
141 SSYNC;
142#endif
143 [p0] = R0; 128 [p0] = R0;
144 SSYNC; 129 SSYNC;
145#if ANOMALY_05000125
146 STI R2;
147#endif
148 130
149 /* Initialise UART - when booting from u-boot, the UART is not disabled 131 /* Initialise UART - when booting from u-boot, the UART is not disabled
150 * so if we dont initalize here, our serial console gets hosed */ 132 * so if we dont initalize here, our serial console gets hosed */
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index 6b019eaee0b6..5bc89bbb89d0 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -105,17 +105,8 @@ ENTRY(__start)
105 R1 = [p0]; 105 R1 = [p0];
106 R0 = ~ENICPLB; 106 R0 = ~ENICPLB;
107 R0 = R0 & R1; 107 R0 = R0 & R1;
108
109 /* Anomaly 05000125 */
110#if ANOMALY_05000125
111 CLI R2;
112 SSYNC;
113#endif
114 [p0] = R0; 108 [p0] = R0;
115 SSYNC; 109 SSYNC;
116#if ANOMALY_05000125
117 STI R2;
118#endif
119 110
120 /* Turn off the dcache */ 111 /* Turn off the dcache */
121 p0.l = LO(DMEM_CONTROL); 112 p0.l = LO(DMEM_CONTROL);
@@ -123,48 +114,20 @@ ENTRY(__start)
123 R1 = [p0]; 114 R1 = [p0];
124 R0 = ~ENDCPLB; 115 R0 = ~ENDCPLB;
125 R0 = R0 & R1; 116 R0 = R0 & R1;
126
127 /* Anomaly 05000125 */
128#if ANOMALY_05000125
129 CLI R2;
130 SSYNC;
131#endif
132 [p0] = R0; 117 [p0] = R0;
133 SSYNC; 118 SSYNC;
134#if ANOMALY_05000125
135 STI R2;
136#endif
137 119
138 /* Initialise General-Purpose I/O Modules on BF537 */ 120 /* Initialise General-Purpose I/O Modules on BF537 */
139 /* Rev 0.0 Anomaly 05000212 - PORTx_FER,
140 * PORT_MUX Registers Do Not accept "writes" correctly:
141 */
142 p0.h = hi(BFIN_PORT_MUX); 121 p0.h = hi(BFIN_PORT_MUX);
143 p0.l = lo(BFIN_PORT_MUX); 122 p0.l = lo(BFIN_PORT_MUX);
144#if ANOMALY_05000212
145 R0.L = W[P0]; /* Read */
146 SSYNC;
147#endif
148 R0 = (PGDE_UART | PFTE_UART)(Z); 123 R0 = (PGDE_UART | PFTE_UART)(Z);
149#if ANOMALY_05000212
150 W[P0] = R0.L; /* Write */
151 SSYNC;
152#endif
153 W[P0] = R0.L; /* Enable both UARTS */ 124 W[P0] = R0.L; /* Enable both UARTS */
154 SSYNC; 125 SSYNC;
155 126
127 /* Enable peripheral function of PORTF for UART0 and UART1 */
156 p0.h = hi(PORTF_FER); 128 p0.h = hi(PORTF_FER);
157 p0.l = lo(PORTF_FER); 129 p0.l = lo(PORTF_FER);
158#if ANOMALY_05000212
159 R0.L = W[P0]; /* Read */
160 SSYNC;
161#endif
162 R0 = 0x000F(Z); 130 R0 = 0x000F(Z);
163#if ANOMALY_05000212
164 W[P0] = R0.L; /* Write */
165 SSYNC;
166#endif
167 /* Enable peripheral function of PORTF for UART0 and UART1 */
168 W[P0] = R0.L; 131 W[P0] = R0.L;
169 SSYNC; 132 SSYNC;
170 133
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index cf1a2dff01e7..0a1443b6b462 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -105,16 +105,8 @@ ENTRY(__start)
105 R1 = [p0]; 105 R1 = [p0];
106 R0 = ~ENICPLB; 106 R0 = ~ENICPLB;
107 R0 = R0 & R1; 107 R0 = R0 & R1;
108
109#if ANOMALY_05000125
110 CLI R2;
111 SSYNC;
112#endif
113 [p0] = R0; 108 [p0] = R0;
114 SSYNC; 109 SSYNC;
115#if ANOMALY_05000125
116 STI R2;
117#endif
118 110
119 /* Turn off the dcache */ 111 /* Turn off the dcache */
120 p0.l = LO(DMEM_CONTROL); 112 p0.l = LO(DMEM_CONTROL);
@@ -122,17 +114,8 @@ ENTRY(__start)
122 R1 = [p0]; 114 R1 = [p0];
123 R0 = ~ENDCPLB; 115 R0 = ~ENDCPLB;
124 R0 = R0 & R1; 116 R0 = R0 & R1;
125
126 /* Anomaly 05000125 */
127#if ANOMALY_05000125
128 CLI R2;
129 SSYNC;
130#endif
131 [p0] = R0; 117 [p0] = R0;
132 SSYNC; 118 SSYNC;
133#if ANOMALY_05000125
134 STI R2;
135#endif
136 119
137 /* Initialise UART - when booting from u-boot, the UART is not disabled 120 /* Initialise UART - when booting from u-boot, the UART is not disabled
138 * so if we dont initalize here, our serial console gets hosed */ 121 * so if we dont initalize here, our serial console gets hosed */
diff --git a/arch/blackfin/mach-common/Makefile b/arch/blackfin/mach-common/Makefile
index 422bfee34adc..5e6b20e423d6 100644
--- a/arch/blackfin/mach-common/Makefile
+++ b/arch/blackfin/mach-common/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5obj-y := \ 5obj-y := \
6 cache.o cacheinit.o entry.o \ 6 cache.o entry.o \
7 interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o 7 interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o
8 8
9obj-$(CONFIG_PM) += pm.o dpmc_modes.o 9obj-$(CONFIG_PM) += pm.o dpmc_modes.o
diff --git a/arch/blackfin/mach-common/cacheinit.S b/arch/blackfin/mach-common/cacheinit.S
deleted file mode 100644
index 22fada0c1cb3..000000000000
--- a/arch/blackfin/mach-common/cacheinit.S
+++ /dev/null
@@ -1,77 +0,0 @@
1/*
2 * File: arch/blackfin/mach-common/cacheinit.S
3 * Based on:
4 * Author: LG Soft India
5 *
6 * Created: ?
7 * Description: cache initialization
8 *
9 * Modified:
10 * Copyright 2004-2006 Analog Devices Inc.
11 *
12 * Bugs: Enter bugs at http://blackfin.uclinux.org/
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see the file COPYING, or write
26 * to the Free Software Foundation, Inc.,
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */
29
30/* This function sets up the data and instruction cache. The
31 * tables like icplb table, dcplb table and Page Descriptor table
32 * are defined in cplbtab.h. You can configure those tables for
33 * your suitable requirements
34 */
35
36#include <linux/linkage.h>
37#include <asm/blackfin.h>
38
39.text
40
41#if ANOMALY_05000125
42#if defined(CONFIG_BFIN_ICACHE)
43ENTRY(_bfin_write_IMEM_CONTROL)
44
45 /* Enable Instruction Cache */
46 P0.l = LO(IMEM_CONTROL);
47 P0.h = HI(IMEM_CONTROL);
48
49 /* Anomaly 05000125 */
50 CLI R1;
51 SSYNC; /* SSYNC required before writing to IMEM_CONTROL. */
52 .align 8;
53 [P0] = R0;
54 SSYNC;
55 STI R1;
56 RTS;
57
58ENDPROC(_bfin_write_IMEM_CONTROL)
59#endif
60
61#if defined(CONFIG_BFIN_DCACHE)
62ENTRY(_bfin_write_DMEM_CONTROL)
63 P0.l = LO(DMEM_CONTROL);
64 P0.h = HI(DMEM_CONTROL);
65
66 CLI R1;
67 SSYNC; /* SSYNC required before writing to DMEM_CONTROL. */
68 .align 8;
69 [P0] = R0;
70 SSYNC;
71 STI R1;
72 RTS;
73
74ENDPROC(_bfin_write_DMEM_CONTROL)
75#endif
76
77#endif