diff options
Diffstat (limited to 'include/asm-blackfin/mach-bf533')
-rw-r--r-- | include/asm-blackfin/mach-bf533/anomaly.h | 468 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/bf533.h | 157 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/blackfin.h | 2 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/cdefBF532.h | 62 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/defBF532.h | 3 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/irq.h | 2 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/mem_map.h | 56 |
7 files changed, 327 insertions, 423 deletions
diff --git a/include/asm-blackfin/mach-bf533/anomaly.h b/include/asm-blackfin/mach-bf533/anomaly.h index 7302f290b93d..f36ff5af1b91 100644 --- a/include/asm-blackfin/mach-bf533/anomaly.h +++ b/include/asm-blackfin/mach-bf533/anomaly.h | |||
@@ -1,247 +1,259 @@ | |||
1 | /* | 1 | /* |
2 | * File: include/asm-blackfin/mach-bf533/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf533/anomaly.h |
3 | * Based on: | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
4 | * Author: | ||
5 | * | 4 | * |
6 | * Created: | 5 | * Copyright (C) 2004-2007 Analog Devices Inc. |
7 | * Description: | 6 | * Licensed under the GPL-2 or later. |
8 | * | ||
9 | * Rev: | ||
10 | * | ||
11 | * Modified: | ||
12 | * | ||
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2, or (at your option) | ||
18 | * any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; see the file COPYING. | ||
27 | * If not, write to the Free Software Foundation, | ||
28 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
29 | */ | 7 | */ |
30 | 8 | ||
31 | /* This file shoule be up to date with: | 9 | /* This file shoule be up to date with: |
32 | * - Revision U, May 17, 2006; ADSP-BF533 Blackfin Processor Anomaly List | 10 | * - Revision X, March 23, 2007; ADSP-BF533 Blackfin Processor Anomaly List |
33 | * - Revision Y, May 17, 2006; ADSP-BF532 Blackfin Processor Anomaly List | 11 | * - Revision AB, March 23, 2007; ADSP-BF532 Blackfin Processor Anomaly List |
34 | * - Revision T, May 17, 2006; ADSP-BF531 Blackfin Processor Anomaly List | 12 | * - Revision W, March 23, 2007; ADSP-BF531 Blackfin Processor Anomaly List |
35 | */ | 13 | */ |
36 | 14 | ||
37 | #ifndef _MACH_ANOMALY_H_ | 15 | #ifndef _MACH_ANOMALY_H_ |
38 | #define _MACH_ANOMALY_H_ | 16 | #define _MACH_ANOMALY_H_ |
39 | 17 | ||
40 | /* We do not support 0.1 or 0.2 silicon - sorry */ | 18 | /* We do not support 0.1 or 0.2 silicon - sorry */ |
41 | #if (defined(CONFIG_BF_REV_0_1) || defined(CONFIG_BF_REV_0_2)) | 19 | #if __SILICON_REVISION__ < 3 |
42 | #error Kernel will not work on BF533 Version 0.1 or 0.2 | 20 | # error Kernel will not work on BF533 silicon version 0.0, 0.1, or 0.2 |
43 | #endif | 21 | #endif |
44 | 22 | ||
45 | /* Issues that are common to 0.5, 0.4, and 0.3 silicon */ | 23 | #if defined(__ADSPBF531__) |
46 | #if (defined(CONFIG_BF_REV_0_5) || defined(CONFIG_BF_REV_0_4) \ | 24 | # define ANOMALY_BF531 1 |
47 | || defined(CONFIG_BF_REV_0_3)) | 25 | #else |
48 | #define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in | 26 | # define ANOMALY_BF531 0 |
49 | slot1 and store of a P register in slot 2 is not | 27 | #endif |
50 | supported */ | 28 | #if defined(__ADSPBF532__) |
51 | #define ANOMALY_05000105 /* Watchpoint Status Register (WPSTAT) bits are set on | 29 | # define ANOMALY_BF532 1 |
52 | every corresponding match */ | 30 | #else |
53 | #define ANOMALY_05000119 /* DMA_RUN bit is not valid after a Peripheral Receive | 31 | # define ANOMALY_BF532 0 |
54 | Channel DMA stops */ | 32 | #endif |
55 | #define ANOMALY_05000122 /* Rx.H can not be used to access 16-bit System MMR | 33 | #if defined(__ADSPBF533__) |
56 | registers. */ | 34 | # define ANOMALY_BF533 1 |
57 | #define ANOMALY_05000166 /* PPI Data Lengths Between 8 and 16 do not zero out | 35 | #else |
58 | upper bits*/ | 36 | # define ANOMALY_BF533 0 |
59 | #define ANOMALY_05000167 /* Turning Serial Ports on With External Frame Syncs */ | 37 | #endif |
60 | #define ANOMALY_05000180 /* PPI_DELAY not functional in PPI modes with 0 frame | ||
61 | syncs */ | ||
62 | #define ANOMALY_05000208 /* VSTAT status bit in PLL_STAT register is not | ||
63 | functional */ | ||
64 | #define ANOMALY_05000219 /* NMI event at boot time results in unpredictable | ||
65 | state */ | ||
66 | #define ANOMALY_05000229 /* SPI Slave Boot Mode modifies registers */ | ||
67 | #define ANOMALY_05000272 /* Certain data cache write through modes fail for | ||
68 | VDDint <=0.9V */ | ||
69 | #define ANOMALY_05000273 /* Writes to Synchronous SDRAM memory may be lost */ | ||
70 | #define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after | ||
71 | an edge is detected may clear interrupt */ | ||
72 | #define ANOMALY_05000278 /* Disabling Peripherals with DMA running may cause | ||
73 | DMA system instability */ | ||
74 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is | ||
75 | not restored */ | ||
76 | #define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic | ||
77 | control */ | ||
78 | #define ANOMALY_05000283 /* A system MMR write is stalled indefinitely when | ||
79 | killed in a particular stage*/ | ||
80 | #define ANOMALY_05000311 /* Erroneous flag pin operations under specific | ||
81 | sequences */ | ||
82 | #define ANOMALY_05000312 /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC | ||
83 | registers are interrupted */ | ||
84 | #define ANOMALY_05000313 /* PPI Is Level-Sensitive on First Transfer */ | ||
85 | #define ANOMALY_05000315 /* Killed System MMR Write Completes Erroneously On | ||
86 | * Next System MMR Access */ | ||
87 | #define ANOMALY_05000319 /* Internal Voltage Regulator Values of 1.05V, 1.10V | ||
88 | * and 1.15V Not Allowed for LQFP Packages */ | ||
89 | #endif /* Issues that are common to 0.5, 0.4, and 0.3 silicon */ | ||
90 | 38 | ||
91 | /* These issues only occur on 0.3 or 0.4 BF533 */ | 39 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot 2 Not Supported */ |
92 | #if (defined(CONFIG_BF_REV_0_4) || defined(CONFIG_BF_REV_0_3)) | 40 | #define ANOMALY_05000074 (1) |
93 | #define ANOMALY_05000099 /* UART Line Status Register (UART_LSR) bits are not | 41 | /* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ |
94 | updated at the same time. */ | 42 | #define ANOMALY_05000099 (__SILICON_REVISION__ < 5) |
95 | #define ANOMALY_05000158 /* Boot fails when data cache enabled: Data from a Data | 43 | /* Watchpoint Status Register (WPSTAT) Bits Are Set on Every Corresponding Match */ |
96 | Cache Fill can be corrupted after or during | 44 | #define ANOMALY_05000105 (1) |
97 | Instruction DMA if certain core stalls exist */ | 45 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ |
98 | #define ANOMALY_05000179 /* PPI_COUNT cannot be programmed to 0 in General | 46 | #define ANOMALY_05000119 (1) |
99 | Purpose TX or RX modes */ | 47 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ |
100 | #define ANOMALY_05000198 /* Failing SYSTEM MMR accesses when stalled by | 48 | #define ANOMALY_05000122 (1) |
101 | preceding memory read */ | 49 | /* Instruction DMA Can Cause Data Cache Fills to Fail (Boot Implications) */ |
102 | #define ANOMALY_05000200 /* SPORT TFS and DT are incorrectly driven during | 50 | #define ANOMALY_05000158 (__SILICON_REVISION__ < 5) |
103 | inactive channels in certain conditions */ | 51 | /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ |
104 | #define ANOMALY_05000202 /* Possible infinite stall with specific dual dag | 52 | #define ANOMALY_05000166 (1) |
105 | situation */ | 53 | /* Turning Serial Ports on with External Frame Syncs */ |
106 | #define ANOMALY_05000215 /* UART TX Interrupt masked erroneously */ | 54 | #define ANOMALY_05000167 (1) |
107 | #define ANOMALY_05000225 /* Incorrect pulse-width of UART start-bit */ | 55 | /* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ |
108 | #define ANOMALY_05000227 /* Scratchpad memory bank reads may return incorrect | 56 | #define ANOMALY_05000179 (__SILICON_REVISION__ < 5) |
109 | data*/ | 57 | /* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ |
110 | #define ANOMALY_05000230 /* UART Receiver is less robust against Baudrate | 58 | #define ANOMALY_05000180 (1) |
111 | Differences in certain Conditions */ | 59 | /* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */ |
112 | #define ANOMALY_05000231 /* UART STB bit incorrectly affects receiver setting */ | 60 | #define ANOMALY_05000183 (__SILICON_REVISION__ < 4) |
113 | #define ANOMALY_05000242 /* DF bit in PLL_CTL register does not respond to | 61 | /* False Protection Exceptions */ |
114 | hardware reset */ | 62 | #define ANOMALY_05000189 (__SILICON_REVISION__ < 4) |
115 | #define ANOMALY_05000244 /* With instruction cache enabled, a CSYNC or SSYNC or | 63 | /* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */ |
116 | IDLE around a Change of Control causes | 64 | #define ANOMALY_05000193 (__SILICON_REVISION__ < 4) |
117 | unpredictable results */ | 65 | /* Restarting SPORT in Specific Modes May Cause Data Corruption */ |
118 | #define ANOMALY_05000245 /* Spurious Hardware Error from an access in the | 66 | #define ANOMALY_05000194 (__SILICON_REVISION__ < 4) |
119 | shadow of a conditional branch */ | 67 | /* Failing MMR Accesses When Stalled by Preceding Memory Read */ |
120 | #define ANOMALY_05000246 /* Data CPLB's should prevent spurious hardware | 68 | #define ANOMALY_05000198 (__SILICON_REVISION__ < 5) |
121 | errors */ | 69 | /* Current DMA Address Shows Wrong Value During Carry Fix */ |
122 | #define ANOMALY_05000253 /* Maximum external clock speed for Timers */ | 70 | #define ANOMALY_05000199 (__SILICON_REVISION__ < 4) |
123 | #define ANOMALY_05000255 /* Entering Hibernate Mode with RTC Seconds event | 71 | /* SPORT TFS and DT Are Incorrectly Driven During Inactive Channels in Certain Conditions */ |
124 | interrupt not functional */ | 72 | #define ANOMALY_05000200 (__SILICON_REVISION__ < 5) |
125 | #define ANOMALY_05000257 /* An interrupt or exception during short Hardware | 73 | /* Receive Frame Sync Not Ignored During Active Frames in SPORT Multi-Channel Mode */ |
126 | loops may cause the instruction fetch unit to | 74 | #define ANOMALY_05000201 (__SILICON_REVISION__ < 4) |
127 | malfunction */ | 75 | /* Possible Infinite Stall with Specific Dual-DAG Situation */ |
128 | #define ANOMALY_05000258 /* Instruction Cache is corrupted when bit 9 and 12 of | 76 | #define ANOMALY_05000202 (__SILICON_REVISION__ < 5) |
129 | the ICPLB Data registers differ */ | 77 | /* Specific Sequence That Can Cause DMA Error or DMA Stopping */ |
130 | #define ANOMALY_05000260 /* ICPLB_STATUS MMR register may be corrupted */ | 78 | #define ANOMALY_05000203 (__SILICON_REVISION__ < 4) |
131 | #define ANOMALY_05000261 /* DCPLB_FAULT_ADDR MMR register may be corrupted */ | 79 | /* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ |
132 | #define ANOMALY_05000262 /* Stores to data cache may be lost */ | 80 | #define ANOMALY_05000204 (__SILICON_REVISION__ < 4 && ANOMALY_BF533) |
133 | #define ANOMALY_05000263 /* Hardware loop corrupted when taking an ICPLB exception */ | 81 | /* Recovery from "Brown-Out" Condition */ |
134 | #define ANOMALY_05000264 /* A Sync instruction (CSYNC, SSYNC) or an IDLE | 82 | #define ANOMALY_05000207 (__SILICON_REVISION__ < 4) |
135 | instruction will cause an infinite stall in the | 83 | /* VSTAT Status Bit in PLL_STAT Register Is Not Functional */ |
136 | second to last instruction in a hardware loop */ | 84 | #define ANOMALY_05000208 (1) |
137 | #define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on | 85 | /* Speed Path in Computational Unit Affects Certain Instructions */ |
138 | SPORT external receive and transmit clocks. */ | 86 | #define ANOMALY_05000209 (__SILICON_REVISION__ < 4) |
139 | #define ANOMALY_05000269 /* High I/O activity causes the output voltage of the | 87 | /* UART TX Interrupt Masked Erroneously */ |
140 | internal voltage regulator (VDDint) to increase. */ | 88 | #define ANOMALY_05000215 (__SILICON_REVISION__ < 5) |
141 | #define ANOMALY_05000270 /* High I/O activity causes the output voltage of the | 89 | /* NMI Event at Boot Time Results in Unpredictable State */ |
142 | internal voltage regulator (VDDint) to decrease */ | 90 | #define ANOMALY_05000219 (1) |
143 | #endif /* issues only occur on 0.3 or 0.4 BF533 */ | 91 | /* Incorrect Pulse-Width of UART Start Bit */ |
92 | #define ANOMALY_05000225 (__SILICON_REVISION__ < 5) | ||
93 | /* Scratchpad Memory Bank Reads May Return Incorrect Data */ | ||
94 | #define ANOMALY_05000227 (__SILICON_REVISION__ < 5) | ||
95 | /* SPI Slave Boot Mode Modifies Registers from Reset Value */ | ||
96 | #define ANOMALY_05000229 (1) | ||
97 | /* UART Receiver is Less Robust Against Baudrate Differences in Certain Conditions */ | ||
98 | #define ANOMALY_05000230 (__SILICON_REVISION__ < 5) | ||
99 | /* UART STB Bit Incorrectly Affects Receiver Setting */ | ||
100 | #define ANOMALY_05000231 (__SILICON_REVISION__ < 5) | ||
101 | /* PPI_FS3 Is Not Driven in 2 or 3 Internal Frame Sync Transmit Modes */ | ||
102 | #define ANOMALY_05000233 (__SILICON_REVISION__ < 4) | ||
103 | /* Incorrect Revision Number in DSPID Register */ | ||
104 | #define ANOMALY_05000234 (__SILICON_REVISION__ == 4) | ||
105 | /* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */ | ||
106 | #define ANOMALY_05000242 (__SILICON_REVISION__ < 4) | ||
107 | /* If I-Cache Is On, CSYNC/SSYNC/IDLE Around Change of Control Causes Failures */ | ||
108 | #define ANOMALY_05000244 (__SILICON_REVISION__ < 5) | ||
109 | /* Spurious Hardware Error from an Access in the Shadow of a Conditional Branch */ | ||
110 | #define ANOMALY_05000245 (1) | ||
111 | /* Data CPLBs Should Prevent Spurious Hardware Errors */ | ||
112 | #define ANOMALY_05000246 (__SILICON_REVISION__ < 5) | ||
113 | /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ | ||
114 | #define ANOMALY_05000250 (__SILICON_REVISION__ == 4) | ||
115 | /* Maximum External Clock Speed for Timers */ | ||
116 | #define ANOMALY_05000253 (__SILICON_REVISION__ < 5) | ||
117 | /* Incorrect Timer Pulse Width in Single-Shot PWM_OUT Mode with External Clock */ | ||
118 | #define ANOMALY_05000254 (__SILICON_REVISION__ > 4) | ||
119 | /* Entering Hibernate State with RTC Seconds Interrupt Not Functional */ | ||
120 | #define ANOMALY_05000255 (__SILICON_REVISION__ < 5) | ||
121 | /* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */ | ||
122 | #define ANOMALY_05000257 (__SILICON_REVISION__ < 5) | ||
123 | /* Instruction Cache Is Corrupted When Bits 9 and 12 of the ICPLB Data Registers Differ */ | ||
124 | #define ANOMALY_05000258 (__SILICON_REVISION__ < 5) | ||
125 | /* ICPLB_STATUS MMR Register May Be Corrupted */ | ||
126 | #define ANOMALY_05000260 (__SILICON_REVISION__ < 5) | ||
127 | /* DCPLB_FAULT_ADDR MMR Register May Be Corrupted */ | ||
128 | #define ANOMALY_05000261 (__SILICON_REVISION__ < 5) | ||
129 | /* Stores To Data Cache May Be Lost */ | ||
130 | #define ANOMALY_05000262 (__SILICON_REVISION__ < 5) | ||
131 | /* Hardware Loop Corrupted When Taking an ICPLB Exception */ | ||
132 | #define ANOMALY_05000263 (__SILICON_REVISION__ < 5) | ||
133 | /* CSYNC/SSYNC/IDLE Causes Infinite Stall in Penultimate Instruction in Hardware Loop */ | ||
134 | #define ANOMALY_05000264 (__SILICON_REVISION__ < 5) | ||
135 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | ||
136 | #define ANOMALY_05000265 (__SILICON_REVISION__ < 5) | ||
137 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */ | ||
138 | #define ANOMALY_05000269 (__SILICON_REVISION__ < 5) | ||
139 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */ | ||
140 | #define ANOMALY_05000270 (__SILICON_REVISION__ < 5) | ||
141 | /* Spontaneous Reset of Internal Voltage Regulator */ | ||
142 | #define ANOMALY_05000271 (__SILICON_REVISION__ < 4) | ||
143 | /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ | ||
144 | #define ANOMALY_05000272 (1) | ||
145 | /* Writes to Synchronous SDRAM Memory May Be Lost */ | ||
146 | #define ANOMALY_05000273 (1) | ||
147 | /* Timing Requirements Change for External Frame Sync PPI Modes with Non-Zero PPI_DELAY */ | ||
148 | #define ANOMALY_05000276 (1) | ||
149 | /* Writes to an I/O Data Register One SCLK Cycle after an Edge Is Detected May Clear Interrupt */ | ||
150 | #define ANOMALY_05000277 (1) | ||
151 | /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ | ||
152 | #define ANOMALY_05000278 (1) | ||
153 | /* False Hardware Error Exception When ISR Context Is Not Restored */ | ||
154 | #define ANOMALY_05000281 (1) | ||
155 | /* Memory DMA Corruption with 32-Bit Data and Traffic Control */ | ||
156 | #define ANOMALY_05000282 (1) | ||
157 | /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ | ||
158 | #define ANOMALY_05000283 (1) | ||
159 | /* SPORTs May Receive Bad Data If FIFOs Fill Up */ | ||
160 | #define ANOMALY_05000288 (1) | ||
161 | /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ | ||
162 | #define ANOMALY_05000301 (1) | ||
163 | /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ | ||
164 | #define ANOMALY_05000302 (__SILICON_REVISION__ < 5) | ||
165 | /* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ | ||
166 | #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) | ||
167 | /* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ | ||
168 | #define ANOMALY_05000306 (__SILICON_REVISION__ < 5) | ||
169 | /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ | ||
170 | #define ANOMALY_05000310 (1) | ||
171 | /* Erroneous Flag (GPIO) Pin Operations under Specific Sequences */ | ||
172 | #define ANOMALY_05000311 (1) | ||
173 | /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | ||
174 | #define ANOMALY_05000312 (1) | ||
175 | /* PPI Is Level-Sensitive on First Transfer */ | ||
176 | #define ANOMALY_05000313 (1) | ||
177 | /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ | ||
178 | #define ANOMALY_05000315 (1) | ||
179 | /* Internal Voltage Regulator Values of 1.05V, 1.10V and 1.15V Not Allowed for LQFP Packages */ | ||
180 | #define ANOMALY_05000319 (ANOMALY_BF531 || ANOMALY_BF532) | ||
144 | 181 | ||
145 | /* These issues are only on 0.4 silicon */ | 182 | /* These anomalies have been "phased" out of analog.com anomaly sheets and are |
146 | #if (defined(CONFIG_BF_REV_0_4)) | 183 | * here to show running on older silicon just isn't feasible. |
147 | #define ANOMALY_05000234 /* Incorrect Revision Number in DSPID Register */ | 184 | */ |
148 | #define ANOMALY_05000250 /* Incorrect Bit-Shift of Data Word in Multichannel | ||
149 | (TDM) */ | ||
150 | #endif /* issues are only on 0.4 silicon */ | ||
151 | 185 | ||
152 | /* These issues are only on 0.3 silicon */ | 186 | /* Watchpoints (Hardware Breakpoints) are not supported */ |
153 | #if defined(CONFIG_BF_REV_0_3) | 187 | #define ANOMALY_05000067 (__SILICON_REVISION__ < 3) |
154 | #define ANOMALY_05000183 /* Timer Pin limitations for PPI TX Modes with | 188 | /* Reserved bits in SYSCFG register not set at power on */ |
155 | External Frame Syncs */ | 189 | #define ANOMALY_05000109 (__SILICON_REVISION__ < 3) |
156 | #define ANOMALY_05000189 /* False Protection Exceptions caused by Speculative | 190 | /* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ |
157 | Instruction or Data Fetches, or by Fetches at the | 191 | #define ANOMALY_05000116 (__SILICON_REVISION__ < 3) |
158 | boundary of reserved memory space */ | 192 | /* DTEST_COMMAND initiated memory access may be incorrect if data cache or DMA is active */ |
159 | #define ANOMALY_05000193 /* False Flag Pin Interrupts on Edge Sensitive Inputs | 193 | #define ANOMALY_05000123 (__SILICON_REVISION__ < 3) |
160 | when polarity setting is changed */ | 194 | /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ |
161 | #define ANOMALY_05000194 /* Sport Restarting in specific modes may cause data | 195 | #define ANOMALY_05000124 (__SILICON_REVISION__ < 3) |
162 | corruption */ | 196 | /* Erroneous exception when enabling cache */ |
163 | #define ANOMALY_05000199 /* DMA current address shows wrong value during carry | 197 | #define ANOMALY_05000125 (__SILICON_REVISION__ < 3) |
164 | fix */ | 198 | /* SPI clock polarity and phase bits incorrect during booting */ |
165 | #define ANOMALY_05000201 /* Receive frame sync not ignored during active | 199 | #define ANOMALY_05000126 (__SILICON_REVISION__ < 3) |
166 | frames in sport MCM */ | 200 | /* DMEM_CONTROL is not set on Reset */ |
167 | #define ANOMALY_05000203 /* Specific sequence that can cause DMA error or DMA | 201 | #define ANOMALY_05000137 (__SILICON_REVISION__ < 3) |
168 | stopping */ | 202 | /* SPI boot will not complete if there is a zero fill block in the loader file */ |
169 | #if defined(CONFIG_BF533) | 203 | #define ANOMALY_05000138 (__SILICON_REVISION__ < 3) |
170 | #define ANOMALY_05000204 /* Incorrect data read with write-through cache and | 204 | /* Allowing the SPORT RX FIFO to fill will cause an overflow */ |
171 | allocate cache lines on reads only mode */ | 205 | #define ANOMALY_05000140 (__SILICON_REVISION__ < 3) |
172 | #endif /* CONFIG_BF533 */ | 206 | /* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ |
173 | #define ANOMALY_05000207 /* Recovery from "brown-out" condition */ | 207 | #define ANOMALY_05000141 (__SILICON_REVISION__ < 3) |
174 | #define ANOMALY_05000209 /* Speed-Path in computational unit affects certain | 208 | /* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ |
175 | instructions */ | 209 | #define ANOMALY_05000142 (__SILICON_REVISION__ < 3) |
176 | #define ANOMALY_05000233 /* PPI_FS3 is not driven in 2 or 3 internal Frame | 210 | /* A read from external memory may return a wrong value with data cache enabled */ |
177 | Sync Transmit Mode */ | 211 | #define ANOMALY_05000143 (__SILICON_REVISION__ < 3) |
178 | #define ANOMALY_05000271 /* Spontaneous reset of Internal Voltage Regulator */ | 212 | /* DMA and TESTSET conflict when both are accessing external memory */ |
179 | #endif /* only on 0.3 silicon */ | 213 | #define ANOMALY_05000144 (__SILICON_REVISION__ < 3) |
214 | /* In PWM_OUT mode, you must enable the PPI block to generate a waveform from PPI_CLK */ | ||
215 | #define ANOMALY_05000145 (__SILICON_REVISION__ < 3) | ||
216 | /* MDMA may lose the first few words of a descriptor chain */ | ||
217 | #define ANOMALY_05000146 (__SILICON_REVISION__ < 3) | ||
218 | /* The source MDMA descriptor may stop with a DMA Error */ | ||
219 | #define ANOMALY_05000147 (__SILICON_REVISION__ < 3) | ||
220 | /* When booting from a 16-bit asynchronous memory device, the upper 8-bits of each word must be 0x00 */ | ||
221 | #define ANOMALY_05000148 (__SILICON_REVISION__ < 3) | ||
222 | /* Frame Delay in SPORT Multichannel Mode */ | ||
223 | #define ANOMALY_05000153 (__SILICON_REVISION__ < 3) | ||
224 | /* SPORT TFS signal is active in Multi-channel mode outside of valid channels */ | ||
225 | #define ANOMALY_05000154 (__SILICON_REVISION__ < 3) | ||
226 | /* Timer1 can not be used for PWMOUT mode when a certain PPI mode is in use */ | ||
227 | #define ANOMALY_05000155 (__SILICON_REVISION__ < 3) | ||
228 | /* A killed 32-bit System MMR write will lead to the next system MMR access thinking it should be 32-bit. */ | ||
229 | #define ANOMALY_05000157 (__SILICON_REVISION__ < 3) | ||
230 | /* SPORT transmit data is not gated by external frame sync in certain conditions */ | ||
231 | #define ANOMALY_05000163 (__SILICON_REVISION__ < 3) | ||
232 | /* SDRAM auto-refresh and subsequent Power Ups */ | ||
233 | #define ANOMALY_05000168 (__SILICON_REVISION__ < 3) | ||
234 | /* DATA CPLB page miss can result in lost write-through cache data writes */ | ||
235 | #define ANOMALY_05000169 (__SILICON_REVISION__ < 3) | ||
236 | /* DMA vs Core accesses to external memory */ | ||
237 | #define ANOMALY_05000173 (__SILICON_REVISION__ < 3) | ||
238 | /* Cache Fill Buffer Data lost */ | ||
239 | #define ANOMALY_05000174 (__SILICON_REVISION__ < 3) | ||
240 | /* Overlapping Sequencer and Memory Stalls */ | ||
241 | #define ANOMALY_05000175 (__SILICON_REVISION__ < 3) | ||
242 | /* Multiplication of (-1) by (-1) followed by an accumulator saturation */ | ||
243 | #define ANOMALY_05000176 (__SILICON_REVISION__ < 3) | ||
244 | /* Disabling the PPI resets the PPI configuration registers */ | ||
245 | #define ANOMALY_05000181 (__SILICON_REVISION__ < 3) | ||
246 | /* PPI TX Mode with 2 External Frame Syncs */ | ||
247 | #define ANOMALY_05000185 (__SILICON_REVISION__ < 3) | ||
248 | /* PPI does not invert the Driving PPICLK edge in Transmit Modes */ | ||
249 | #define ANOMALY_05000191 (__SILICON_REVISION__ < 3) | ||
250 | /* In PPI Transmit Modes with External Frame Syncs POLC */ | ||
251 | #define ANOMALY_05000192 (__SILICON_REVISION__ < 3) | ||
252 | /* Internal Voltage Regulator may not start up */ | ||
253 | #define ANOMALY_05000206 (__SILICON_REVISION__ < 3) | ||
180 | 254 | ||
181 | #if defined(CONFIG_BF_REV_0_2) | 255 | /* Anomalies that don't exist on this proc */ |
182 | #define ANOMALY_05000067 /* Watchpoints (Hardware Breakpoints) are not | 256 | #define ANOMALY_05000266 (0) |
183 | * supported */ | 257 | #define ANOMALY_05000323 (0) |
184 | #define ANOMALY_05000109 /* Reserved bits in SYSCFG register not set at | ||
185 | * power on */ | ||
186 | #define ANOMALY_05000116 /* Trace Buffers may record discontinuities into | ||
187 | * emulation mode and/or exception, NMI, reset | ||
188 | * handlers */ | ||
189 | #define ANOMALY_05000123 /* DTEST_COMMAND initiated memory access may be | ||
190 | * incorrect if data cache or DMA is active */ | ||
191 | #define ANOMALY_05000124 /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, | ||
192 | * or 1:1 */ | ||
193 | #define ANOMALY_05000125 /* Erroneous exception when enabling cache */ | ||
194 | #define ANOMALY_05000126 /* SPI clock polarity and phase bits incorrect | ||
195 | * during booting */ | ||
196 | #define ANOMALY_05000137 /* DMEM_CONTROL is not set on Reset */ | ||
197 | #define ANOMALY_05000138 /* SPI boot will not complete if there is a zero fill | ||
198 | * block in the loader file */ | ||
199 | #define ANOMALY_05000140 /* Allowing the SPORT RX FIFO to fill will cause an | ||
200 | * overflow */ | ||
201 | #define ANOMALY_05000141 /* An Infinite Stall occurs with a particular sequence | ||
202 | * of consecutive dual dag events */ | ||
203 | #define ANOMALY_05000142 /* Interrupts may be lost when a programmable input | ||
204 | * flag is configured to be edge sensitive */ | ||
205 | #define ANOMALY_05000143 /* A read from external memory may return a wrong | ||
206 | * value with data cache enabled */ | ||
207 | #define ANOMALY_05000144 /* DMA and TESTSET conflict when both are accessing | ||
208 | * external memory */ | ||
209 | #define ANOMALY_05000145 /* In PWM_OUT mode, you must enable the PPI block to | ||
210 | * generate a waveform from PPI_CLK */ | ||
211 | #define ANOMALY_05000146 /* MDMA may lose the first few words of a descriptor | ||
212 | * chain */ | ||
213 | #define ANOMALY_05000147 /* The source MDMA descriptor may stop with a DMA | ||
214 | * Error */ | ||
215 | #define ANOMALY_05000148 /* When booting from a 16-bit asynchronous memory | ||
216 | * device, the upper 8-bits of each word must be | ||
217 | * 0x00 */ | ||
218 | #define ANOMALY_05000153 /* Frame Delay in SPORT Multichannel Mode */ | ||
219 | #define ANOMALY_05000154 /* SPORT TFS signal is active in Multi-channel mode | ||
220 | * outside of valid channels */ | ||
221 | #define ANOMALY_05000155 /* Timer1 can not be used for PWMOUT mode when a | ||
222 | * certain PPI mode is in use */ | ||
223 | #define ANOMALY_05000157 /* A killed 32-bit System MMR write will lead to | ||
224 | * the next system MMR access thinking it should be | ||
225 | * 32-bit. */ | ||
226 | #define ANOMALY_05000163 /* SPORT transmit data is not gated by external frame | ||
227 | * sync in certain conditions */ | ||
228 | #define ANOMALY_05000168 /* SDRAM auto-refresh and subsequent Power Ups */ | ||
229 | #define ANOMALY_05000169 /* DATA CPLB page miss can result in lost | ||
230 | * write-through cache data writes */ | ||
231 | #define ANOMALY_05000173 /* DMA vs Core accesses to external memory */ | ||
232 | #define ANOMALY_05000174 /* Cache Fill Buffer Data lost */ | ||
233 | #define ANOMALY_05000175 /* Overlapping Sequencer and Memory Stalls */ | ||
234 | #define ANOMALY_05000176 /* Multiplication of (-1) by (-1) followed by an | ||
235 | * accumulator saturation */ | ||
236 | #define ANOMALY_05000181 /* Disabling the PPI resets the PPI configuration | ||
237 | * registers */ | ||
238 | #define ANOMALY_05000185 /* PPI TX Mode with 2 External Frame Syncs */ | ||
239 | #define ANOMALY_05000191 /* PPI does not invert the Driving PPICLK edge in | ||
240 | * Transmit Modes */ | ||
241 | #define ANOMALY_05000192 /* In PPI Transmit Modes with External Frame Syncs | ||
242 | * POLC */ | ||
243 | #define ANOMALY_05000206 /* Internal Voltage Regulator may not start up */ | ||
244 | 258 | ||
245 | #endif | 259 | #endif |
246 | |||
247 | #endif /* _MACH_ANOMALY_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf533/bf533.h b/include/asm-blackfin/mach-bf533/bf533.h index 185fc1284858..12a416931991 100644 --- a/include/asm-blackfin/mach-bf533/bf533.h +++ b/include/asm-blackfin/mach-bf533/bf533.h | |||
@@ -52,12 +52,12 @@ | |||
52 | /***************************/ | 52 | /***************************/ |
53 | 53 | ||
54 | 54 | ||
55 | #define BLKFIN_DSUBBANKS 4 | 55 | #define BFIN_DSUBBANKS 4 |
56 | #define BLKFIN_DWAYS 2 | 56 | #define BFIN_DWAYS 2 |
57 | #define BLKFIN_DLINES 64 | 57 | #define BFIN_DLINES 64 |
58 | #define BLKFIN_ISUBBANKS 4 | 58 | #define BFIN_ISUBBANKS 4 |
59 | #define BLKFIN_IWAYS 4 | 59 | #define BFIN_IWAYS 4 |
60 | #define BLKFIN_ILINES 32 | 60 | #define BFIN_ILINES 32 |
61 | 61 | ||
62 | #define WAY0_L 0x1 | 62 | #define WAY0_L 0x1 |
63 | #define WAY1_L 0x2 | 63 | #define WAY1_L 0x2 |
@@ -141,97 +141,6 @@ | |||
141 | 141 | ||
142 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) | 142 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) |
143 | 143 | ||
144 | #define MAX_VC 650000000 | ||
145 | #define MIN_VC 50000000 | ||
146 | |||
147 | #ifdef CONFIG_BFIN_KERNEL_CLOCK | ||
148 | /********************************PLL Settings **************************************/ | ||
149 | #if (CONFIG_VCO_MULT < 0) | ||
150 | #error "VCO Multiplier is less than 0. Please select a different value" | ||
151 | #endif | ||
152 | |||
153 | #if (CONFIG_VCO_MULT == 0) | ||
154 | #error "VCO Multiplier should be greater than 0. Please select a different value" | ||
155 | #endif | ||
156 | |||
157 | #if (CONFIG_VCO_MULT > 64) | ||
158 | #error "VCO Multiplier is more than 64. Please select a different value" | ||
159 | #endif | ||
160 | |||
161 | #ifndef CONFIG_CLKIN_HALF | ||
162 | #define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
163 | #else | ||
164 | #define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
165 | #endif | ||
166 | |||
167 | #ifndef CONFIG_PLL_BYPASS | ||
168 | #define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
169 | #define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
170 | #else | ||
171 | #define CONFIG_CCLK_HZ CONFIG_CLKIN_HZ | ||
172 | #define CONFIG_SCLK_HZ CONFIG_CLKIN_HZ | ||
173 | #endif | ||
174 | |||
175 | #if (CONFIG_SCLK_DIV < 1) | ||
176 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
177 | #endif | ||
178 | |||
179 | #if (CONFIG_SCLK_DIV > 15) | ||
180 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
181 | #endif | ||
182 | |||
183 | #if (CONFIG_CCLK_DIV != 1) | ||
184 | #if (CONFIG_CCLK_DIV != 2) | ||
185 | #if (CONFIG_CCLK_DIV != 4) | ||
186 | #if (CONFIG_CCLK_DIV != 8) | ||
187 | #error "CCLK DIV can be 1,2,4 or 8 only. Please select a proper value" | ||
188 | #endif | ||
189 | #endif | ||
190 | #endif | ||
191 | #endif | ||
192 | |||
193 | #if (CONFIG_VCO_HZ > MAX_VC) | ||
194 | #error "VCO selected is more than maximum value. Please change the VCO multipler" | ||
195 | #endif | ||
196 | |||
197 | #if (CONFIG_SCLK_HZ > 133000000) | ||
198 | #error "Sclk value selected is more than maximum. Please select a proper value for SCLK multiplier" | ||
199 | #endif | ||
200 | |||
201 | #if (CONFIG_SCLK_HZ < 27000000) | ||
202 | #error "Sclk value selected is less than minimum. Please select a proper value for SCLK multiplier" | ||
203 | #endif | ||
204 | |||
205 | #if (CONFIG_SCLK_HZ > CONFIG_CCLK_HZ) | ||
206 | #if (CONFIG_SCLK_HZ != CONFIG_CLKIN_HZ) | ||
207 | #if (CONFIG_CCLK_HZ != CONFIG_CLKIN_HZ) | ||
208 | #error "Please select sclk less than cclk" | ||
209 | #endif | ||
210 | #endif | ||
211 | #endif | ||
212 | |||
213 | #if (CONFIG_CCLK_DIV == 1) | ||
214 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
215 | #endif | ||
216 | #if (CONFIG_CCLK_DIV == 2) | ||
217 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
218 | #endif | ||
219 | #if (CONFIG_CCLK_DIV == 4) | ||
220 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
221 | #endif | ||
222 | #if (CONFIG_CCLK_DIV == 8) | ||
223 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
224 | #endif | ||
225 | #ifndef CONFIG_CCLK_ACT_DIV | ||
226 | #define CONFIG_CCLK_ACT_DIV CONFIG_CCLK_DIV_not_defined_properly | ||
227 | #endif | ||
228 | |||
229 | #if defined(ANOMALY_05000273) && (CONFIG_CCLK_DIV == 1) | ||
230 | #error ANOMALY 05000273, please make sure CCLK is at least 2x SCLK | ||
231 | #endif | ||
232 | |||
233 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | ||
234 | |||
235 | #ifdef CONFIG_BF533 | 144 | #ifdef CONFIG_BF533 |
236 | #define CPU "BF533" | 145 | #define CPU "BF533" |
237 | #define CPUID 0x027a5000 | 146 | #define CPUID 0x027a5000 |
@@ -249,58 +158,4 @@ | |||
249 | #define CPUID 0x0 | 158 | #define CPUID 0x0 |
250 | #endif | 159 | #endif |
251 | 160 | ||
252 | #if (CONFIG_MEM_SIZE % 4) | ||
253 | #error "SDRAM mem size must be multible of 4MB" | ||
254 | #endif | ||
255 | |||
256 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
257 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
258 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
259 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
260 | |||
261 | /*Use the menuconfig cache policy here - CONFIG_BLKFIN_WT/CONFIG_BLKFIN_WB*/ | ||
262 | |||
263 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
264 | #ifdef CONFIG_BLKFIN_WB /*Write Back Policy */ | ||
265 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_DIRTY \ | ||
266 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
267 | #else /*Write Through */ | ||
268 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_DIRTY \ | ||
269 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
270 | #endif | ||
271 | |||
272 | #define L1_DMEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
273 | #define SDRAM_DNON_CHBL (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
274 | #define SDRAM_EBIU (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
275 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
276 | |||
277 | #define SIZE_1K 0x00000400 /* 1K */ | ||
278 | #define SIZE_4K 0x00001000 /* 4K */ | ||
279 | #define SIZE_1M 0x00100000 /* 1M */ | ||
280 | #define SIZE_4M 0x00400000 /* 4M */ | ||
281 | |||
282 | #define MAX_CPLBS (16 * 2) | ||
283 | |||
284 | /* | ||
285 | * Number of required data CPLB switchtable entries | ||
286 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
287 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
288 | * 1 for L1 Data Memory | ||
289 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
290 | * 1 for ASYNC Memory | ||
291 | */ | ||
292 | |||
293 | |||
294 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1) * 2) | ||
295 | |||
296 | /* | ||
297 | * Number of required instruction CPLB switchtable entries | ||
298 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
299 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
300 | * 1 for L1 Instruction Memory | ||
301 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
302 | */ | ||
303 | |||
304 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1) * 2) | ||
305 | |||
306 | #endif /* __MACH_BF533_H__ */ | 161 | #endif /* __MACH_BF533_H__ */ |
diff --git a/include/asm-blackfin/mach-bf533/blackfin.h b/include/asm-blackfin/mach-bf533/blackfin.h index e4384491e972..f3b240abf170 100644 --- a/include/asm-blackfin/mach-bf533/blackfin.h +++ b/include/asm-blackfin/mach-bf533/blackfin.h | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "defBF532.h" | 38 | #include "defBF532.h" |
39 | #include "anomaly.h" | 39 | #include "anomaly.h" |
40 | 40 | ||
41 | #if !(defined(__ASSEMBLY__) || defined(ASSEMBLY)) | 41 | #if !defined(__ASSEMBLY__) |
42 | #include "cdefBF532.h" | 42 | #include "cdefBF532.h" |
43 | #endif | 43 | #endif |
44 | 44 | ||
diff --git a/include/asm-blackfin/mach-bf533/cdefBF532.h b/include/asm-blackfin/mach-bf533/cdefBF532.h index 74f967b235e2..c803e14b529c 100644 --- a/include/asm-blackfin/mach-bf533/cdefBF532.h +++ b/include/asm-blackfin/mach-bf533/cdefBF532.h | |||
@@ -30,11 +30,9 @@ | |||
30 | 30 | ||
31 | #ifndef _CDEF_BF532_H | 31 | #ifndef _CDEF_BF532_H |
32 | #define _CDEF_BF532_H | 32 | #define _CDEF_BF532_H |
33 | /* | 33 | |
34 | #if !defined(__ADSPLPBLACKFIN__) | 34 | #include <asm/blackfin.h> |
35 | #warning cdefBF532.h should only be included for 532 compatible chips. | 35 | |
36 | #endif | ||
37 | */ | ||
38 | /*include all Core registers and bit definitions*/ | 36 | /*include all Core registers and bit definitions*/ |
39 | #include "defBF532.h" | 37 | #include "defBF532.h" |
40 | 38 | ||
@@ -65,7 +63,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
65 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | 63 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); |
66 | 64 | ||
67 | bfin_write16(VR_CTL, val); | 65 | bfin_write16(VR_CTL, val); |
68 | __builtin_bfin_ssync(); | 66 | SSYNC(); |
69 | 67 | ||
70 | local_irq_save(flags); | 68 | local_irq_save(flags); |
71 | asm("IDLE;"); | 69 | asm("IDLE;"); |
@@ -132,10 +130,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
132 | /* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */ | 130 | /* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */ |
133 | #define bfin_read_FIO_DIR() bfin_read16(FIO_DIR) | 131 | #define bfin_read_FIO_DIR() bfin_read16(FIO_DIR) |
134 | #define bfin_write_FIO_DIR(val) bfin_write16(FIO_DIR,val) | 132 | #define bfin_write_FIO_DIR(val) bfin_write16(FIO_DIR,val) |
135 | #define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C) | ||
136 | #define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val) | ||
137 | #define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S) | ||
138 | #define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val) | ||
139 | #define bfin_read_FIO_MASKA_C() bfin_read16(FIO_MASKA_C) | 133 | #define bfin_read_FIO_MASKA_C() bfin_read16(FIO_MASKA_C) |
140 | #define bfin_write_FIO_MASKA_C(val) bfin_write16(FIO_MASKA_C,val) | 134 | #define bfin_write_FIO_MASKA_C(val) bfin_write16(FIO_MASKA_C,val) |
141 | #define bfin_read_FIO_MASKA_S() bfin_read16(FIO_MASKA_S) | 135 | #define bfin_read_FIO_MASKA_S() bfin_read16(FIO_MASKA_S) |
@@ -152,10 +146,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
152 | #define bfin_write_FIO_BOTH(val) bfin_write16(FIO_BOTH,val) | 146 | #define bfin_write_FIO_BOTH(val) bfin_write16(FIO_BOTH,val) |
153 | #define bfin_read_FIO_INEN() bfin_read16(FIO_INEN) | 147 | #define bfin_read_FIO_INEN() bfin_read16(FIO_INEN) |
154 | #define bfin_write_FIO_INEN(val) bfin_write16(FIO_INEN,val) | 148 | #define bfin_write_FIO_INEN(val) bfin_write16(FIO_INEN,val) |
155 | #define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D) | ||
156 | #define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val) | ||
157 | #define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T) | ||
158 | #define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val) | ||
159 | #define bfin_read_FIO_MASKA_D() bfin_read16(FIO_MASKA_D) | 149 | #define bfin_read_FIO_MASKA_D() bfin_read16(FIO_MASKA_D) |
160 | #define bfin_write_FIO_MASKA_D(val) bfin_write16(FIO_MASKA_D,val) | 150 | #define bfin_write_FIO_MASKA_D(val) bfin_write16(FIO_MASKA_D,val) |
161 | #define bfin_read_FIO_MASKA_T() bfin_read16(FIO_MASKA_T) | 151 | #define bfin_read_FIO_MASKA_T() bfin_read16(FIO_MASKA_T) |
@@ -165,6 +155,50 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
165 | #define bfin_read_FIO_MASKB_T() bfin_read16(FIO_MASKB_T) | 155 | #define bfin_read_FIO_MASKB_T() bfin_read16(FIO_MASKB_T) |
166 | #define bfin_write_FIO_MASKB_T(val) bfin_write16(FIO_MASKB_T,val) | 156 | #define bfin_write_FIO_MASKB_T(val) bfin_write16(FIO_MASKB_T,val) |
167 | 157 | ||
158 | |||
159 | #if ANOMALY_05000311 | ||
160 | #define BFIN_WRITE_FIO_FLAG(name) \ | ||
161 | static __inline__ void bfin_write_FIO_FLAG_ ## name (unsigned short val)\ | ||
162 | {\ | ||
163 | unsigned long flags;\ | ||
164 | local_irq_save(flags);\ | ||
165 | bfin_write16(FIO_FLAG_ ## name,val);\ | ||
166 | bfin_read_CHIPID();\ | ||
167 | local_irq_restore(flags);\ | ||
168 | } | ||
169 | BFIN_WRITE_FIO_FLAG(D) | ||
170 | BFIN_WRITE_FIO_FLAG(C) | ||
171 | BFIN_WRITE_FIO_FLAG(S) | ||
172 | BFIN_WRITE_FIO_FLAG(T) | ||
173 | |||
174 | #define BFIN_READ_FIO_FLAG(name) \ | ||
175 | static __inline__ unsigned short bfin_read_FIO_FLAG_ ## name (void)\ | ||
176 | {\ | ||
177 | unsigned long flags;\ | ||
178 | unsigned short ret;\ | ||
179 | local_irq_save(flags);\ | ||
180 | ret = bfin_read16(FIO_FLAG_ ## name);\ | ||
181 | bfin_read_CHIPID();\ | ||
182 | local_irq_restore(flags);\ | ||
183 | return ret;\ | ||
184 | } | ||
185 | BFIN_READ_FIO_FLAG(D) | ||
186 | BFIN_READ_FIO_FLAG(C) | ||
187 | BFIN_READ_FIO_FLAG(S) | ||
188 | BFIN_READ_FIO_FLAG(T) | ||
189 | |||
190 | #else | ||
191 | #define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val) | ||
192 | #define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val) | ||
193 | #define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val) | ||
194 | #define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val) | ||
195 | #define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T) | ||
196 | #define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C) | ||
197 | #define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S) | ||
198 | #define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D) | ||
199 | #endif | ||
200 | |||
201 | |||
168 | /* DMA Controller */ | 202 | /* DMA Controller */ |
169 | #define bfin_read_DMA0_CONFIG() bfin_read16(DMA0_CONFIG) | 203 | #define bfin_read_DMA0_CONFIG() bfin_read16(DMA0_CONFIG) |
170 | #define bfin_write_DMA0_CONFIG(val) bfin_write16(DMA0_CONFIG,val) | 204 | #define bfin_write_DMA0_CONFIG(val) bfin_write16(DMA0_CONFIG,val) |
diff --git a/include/asm-blackfin/mach-bf533/defBF532.h b/include/asm-blackfin/mach-bf533/defBF532.h index 6a3cf93f8b57..37134aaf9954 100644 --- a/include/asm-blackfin/mach-bf533/defBF532.h +++ b/include/asm-blackfin/mach-bf533/defBF532.h | |||
@@ -104,6 +104,7 @@ | |||
104 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ | 104 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ |
105 | 105 | ||
106 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ | 106 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ |
107 | #define SPI0_REGBASE 0xFFC00500 | ||
107 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ | 108 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ |
108 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ | 109 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ |
109 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ | 110 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ |
@@ -928,7 +929,7 @@ | |||
928 | #define GM 0x00000008 /* When RDBR full, get more (=1) data or discard (=0) incoming Data */ | 929 | #define GM 0x00000008 /* When RDBR full, get more (=1) data or discard (=0) incoming Data */ |
929 | #define PSSE 0x00000010 /* Enable (=1) Slave-Select input for Master. */ | 930 | #define PSSE 0x00000010 /* Enable (=1) Slave-Select input for Master. */ |
930 | #define EMISO 0x00000020 /* Enable (=1) MISO pin as an output. */ | 931 | #define EMISO 0x00000020 /* Enable (=1) MISO pin as an output. */ |
931 | #define SPI_LEN 0x00000100 /* Word length (0 => 8 bits, 1 => 16 bits) */ | 932 | #define SIZE 0x00000100 /* Word length (0 => 8 bits, 1 => 16 bits) */ |
932 | #define LSBF 0x00000200 /* Data format (0 => MSB sent/received first 1 => LSB sent/received first) */ | 933 | #define LSBF 0x00000200 /* Data format (0 => MSB sent/received first 1 => LSB sent/received first) */ |
933 | #define CPHA 0x00000400 /* Clock phase (0 => SPICLK starts toggling in middle of xfer, 1 => SPICLK toggles at the beginning of xfer. */ | 934 | #define CPHA 0x00000400 /* Clock phase (0 => SPICLK starts toggling in middle of xfer, 1 => SPICLK toggles at the beginning of xfer. */ |
934 | #define CPOL 0x00000800 /* Clock polarity (0 => active-high, 1 => active-low) */ | 935 | #define CPOL 0x00000800 /* Clock polarity (0 => active-high, 1 => active-low) */ |
diff --git a/include/asm-blackfin/mach-bf533/irq.h b/include/asm-blackfin/mach-bf533/irq.h index 9879e68e315c..452fb825d891 100644 --- a/include/asm-blackfin/mach-bf533/irq.h +++ b/include/asm-blackfin/mach-bf533/irq.h | |||
@@ -128,6 +128,8 @@ Core Emulation ** | |||
128 | #define IRQ_PF14 47 | 128 | #define IRQ_PF14 47 |
129 | #define IRQ_PF15 48 | 129 | #define IRQ_PF15 48 |
130 | 130 | ||
131 | #define GPIO_IRQ_BASE IRQ_PF0 | ||
132 | |||
131 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | 133 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO |
132 | #define NR_IRQS (IRQ_PF15+1) | 134 | #define NR_IRQS (IRQ_PF15+1) |
133 | #else | 135 | #else |
diff --git a/include/asm-blackfin/mach-bf533/mem_map.h b/include/asm-blackfin/mach-bf533/mem_map.h index e84baa3e939d..94d8c4062eb7 100644 --- a/include/asm-blackfin/mach-bf533/mem_map.h +++ b/include/asm-blackfin/mach-bf533/mem_map.h | |||
@@ -51,10 +51,10 @@ | |||
51 | 51 | ||
52 | /* Level 1 Memory */ | 52 | /* Level 1 Memory */ |
53 | 53 | ||
54 | #ifdef CONFIG_BLKFIN_CACHE | 54 | #ifdef CONFIG_BFIN_ICACHE |
55 | #define BLKFIN_ICACHESIZE (16*1024) | 55 | #define BFIN_ICACHESIZE (16*1024) |
56 | #else | 56 | #else |
57 | #define BLKFIN_ICACHESIZE (0*1024) | 57 | #define BFIN_ICACHESIZE (0*1024) |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | /* Memory Map for ADSP-BF533 processors */ | 60 | /* Memory Map for ADSP-BF533 processors */ |
@@ -64,35 +64,35 @@ | |||
64 | #define L1_DATA_A_START 0xFF800000 | 64 | #define L1_DATA_A_START 0xFF800000 |
65 | #define L1_DATA_B_START 0xFF900000 | 65 | #define L1_DATA_B_START 0xFF900000 |
66 | 66 | ||
67 | #ifdef CONFIG_BLKFIN_CACHE | 67 | #ifdef CONFIG_BFIN_ICACHE |
68 | #define L1_CODE_LENGTH (0x14000 - 0x4000) | 68 | #define L1_CODE_LENGTH (0x14000 - 0x4000) |
69 | #else | 69 | #else |
70 | #define L1_CODE_LENGTH 0x14000 | 70 | #define L1_CODE_LENGTH 0x14000 |
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | #ifdef CONFIG_BLKFIN_DCACHE | 73 | #ifdef CONFIG_BFIN_DCACHE |
74 | 74 | ||
75 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 75 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
76 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 76 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
77 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 77 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
78 | #define L1_DATA_B_LENGTH 0x8000 | 78 | #define L1_DATA_B_LENGTH 0x8000 |
79 | #define BLKFIN_DCACHESIZE (16*1024) | 79 | #define BFIN_DCACHESIZE (16*1024) |
80 | #define BLKFIN_DSUPBANKS 1 | 80 | #define BFIN_DSUPBANKS 1 |
81 | #else | 81 | #else |
82 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 82 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
83 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 83 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
84 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 84 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
85 | #define BLKFIN_DCACHESIZE (32*1024) | 85 | #define BFIN_DCACHESIZE (32*1024) |
86 | #define BLKFIN_DSUPBANKS 2 | 86 | #define BFIN_DSUPBANKS 2 |
87 | #endif | 87 | #endif |
88 | 88 | ||
89 | #else | 89 | #else |
90 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 90 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
91 | #define L1_DATA_A_LENGTH 0x8000 | 91 | #define L1_DATA_A_LENGTH 0x8000 |
92 | #define L1_DATA_B_LENGTH 0x8000 | 92 | #define L1_DATA_B_LENGTH 0x8000 |
93 | #define BLKFIN_DCACHESIZE (0*1024) | 93 | #define BFIN_DCACHESIZE (0*1024) |
94 | #define BLKFIN_DSUPBANKS 0 | 94 | #define BFIN_DSUPBANKS 0 |
95 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 95 | #endif /*CONFIG_BFIN_DCACHE*/ |
96 | #endif | 96 | #endif |
97 | 97 | ||
98 | /* Memory Map for ADSP-BF532 processors */ | 98 | /* Memory Map for ADSP-BF532 processors */ |
@@ -102,36 +102,36 @@ | |||
102 | #define L1_DATA_A_START 0xFF804000 | 102 | #define L1_DATA_A_START 0xFF804000 |
103 | #define L1_DATA_B_START 0xFF904000 | 103 | #define L1_DATA_B_START 0xFF904000 |
104 | 104 | ||
105 | #ifdef CONFIG_BLKFIN_CACHE | 105 | #ifdef CONFIG_BFIN_ICACHE |
106 | #define L1_CODE_LENGTH (0xC000 - 0x4000) | 106 | #define L1_CODE_LENGTH (0xC000 - 0x4000) |
107 | #else | 107 | #else |
108 | #define L1_CODE_LENGTH 0xC000 | 108 | #define L1_CODE_LENGTH 0xC000 |
109 | #endif | 109 | #endif |
110 | 110 | ||
111 | #ifdef CONFIG_BLKFIN_DCACHE | 111 | #ifdef CONFIG_BFIN_DCACHE |
112 | 112 | ||
113 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 113 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
114 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 114 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
115 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 115 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
116 | #define L1_DATA_B_LENGTH 0x4000 | 116 | #define L1_DATA_B_LENGTH 0x4000 |
117 | #define BLKFIN_DCACHESIZE (16*1024) | 117 | #define BFIN_DCACHESIZE (16*1024) |
118 | #define BLKFIN_DSUPBANKS 1 | 118 | #define BFIN_DSUPBANKS 1 |
119 | 119 | ||
120 | #else | 120 | #else |
121 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 121 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
122 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 122 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
123 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) | 123 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) |
124 | #define BLKFIN_DCACHESIZE (32*1024) | 124 | #define BFIN_DCACHESIZE (32*1024) |
125 | #define BLKFIN_DSUPBANKS 2 | 125 | #define BFIN_DSUPBANKS 2 |
126 | #endif | 126 | #endif |
127 | 127 | ||
128 | #else | 128 | #else |
129 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 129 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
130 | #define L1_DATA_A_LENGTH 0x4000 | 130 | #define L1_DATA_A_LENGTH 0x4000 |
131 | #define L1_DATA_B_LENGTH 0x4000 | 131 | #define L1_DATA_B_LENGTH 0x4000 |
132 | #define BLKFIN_DCACHESIZE (0*1024) | 132 | #define BFIN_DCACHESIZE (0*1024) |
133 | #define BLKFIN_DSUPBANKS 0 | 133 | #define BFIN_DSUPBANKS 0 |
134 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 134 | #endif /*CONFIG_BFIN_DCACHE*/ |
135 | #endif | 135 | #endif |
136 | 136 | ||
137 | /* Memory Map for ADSP-BF531 processors */ | 137 | /* Memory Map for ADSP-BF531 processors */ |
@@ -144,16 +144,16 @@ | |||
144 | #define L1_DATA_B_LENGTH 0x0000 | 144 | #define L1_DATA_B_LENGTH 0x0000 |
145 | 145 | ||
146 | 146 | ||
147 | #ifdef CONFIG_BLKFIN_DCACHE | 147 | #ifdef CONFIG_BFIN_DCACHE |
148 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 148 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
149 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 149 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
150 | #define BLKFIN_DCACHESIZE (16*1024) | 150 | #define BFIN_DCACHESIZE (16*1024) |
151 | #define BLKFIN_DSUPBANKS 1 | 151 | #define BFIN_DSUPBANKS 1 |
152 | #else | 152 | #else |
153 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 153 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
154 | #define L1_DATA_A_LENGTH 0x4000 | 154 | #define L1_DATA_A_LENGTH 0x4000 |
155 | #define BLKFIN_DCACHESIZE (0*1024) | 155 | #define BFIN_DCACHESIZE (0*1024) |
156 | #define BLKFIN_DSUPBANKS 0 | 156 | #define BFIN_DSUPBANKS 0 |
157 | #endif | 157 | #endif |
158 | 158 | ||
159 | #endif | 159 | #endif |