aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/Kconfig314
-rw-r--r--arch/blackfin/Kconfig.debug178
-rw-r--r--arch/blackfin/Makefile2
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig27
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig41
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig41
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig83
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig30
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig49
-rw-r--r--arch/blackfin/configs/H8606_defconfig1160
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig75
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c1
-rw-r--r--arch/blackfin/kernel/bfin_ksyms.c7
-rw-r--r--arch/blackfin/kernel/cplbinit.c73
-rw-r--r--arch/blackfin/kernel/early_printk.c3
-rw-r--r--arch/blackfin/kernel/process.c66
-rw-r--r--arch/blackfin/kernel/setup.c9
-rw-r--r--arch/blackfin/kernel/traps.c147
-rw-r--r--arch/blackfin/lib/Makefile2
-rw-r--r--arch/blackfin/lib/ins.S19
-rw-r--r--arch/blackfin/lib/strcmp.c11
-rw-r--r--arch/blackfin/lib/strcpy.c11
-rw-r--r--arch/blackfin/lib/strncmp.c11
-rw-r--r--arch/blackfin/lib/strncpy.c11
-rw-r--r--arch/blackfin/lib/udivdi3.S375
-rw-r--r--arch/blackfin/mach-bf527/Kconfig2
-rw-r--r--arch/blackfin/mach-bf527/boards/Kconfig12
-rw-r--r--arch/blackfin/mach-bf527/boards/Makefile6
-rw-r--r--arch/blackfin/mach-bf527/boards/eth_mac.c50
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c37
-rw-r--r--arch/blackfin/mach-bf533/Kconfig2
-rw-r--r--arch/blackfin/mach-bf533/boards/H8606.c12
-rw-r--r--arch/blackfin/mach-bf533/boards/Kconfig34
-rw-r--r--arch/blackfin/mach-bf533/boards/Makefile2
-rw-r--r--arch/blackfin/mach-bf533/boards/cm_bf533.c4
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c4
-rw-r--r--arch/blackfin/mach-bf533/boards/generic_board.c4
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c4
-rw-r--r--arch/blackfin/mach-bf537/Kconfig2
-rw-r--r--arch/blackfin/mach-bf537/boards/Kconfig29
-rw-r--r--arch/blackfin/mach-bf537/boards/Makefile9
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c11
-rw-r--r--arch/blackfin/mach-bf537/boards/eth_mac.c50
-rw-r--r--arch/blackfin/mach-bf537/boards/generic_board.c13
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c15
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c50
-rw-r--r--arch/blackfin/mach-bf548/Kconfig2
-rw-r--r--arch/blackfin/mach-bf548/boards/Kconfig12
-rw-r--r--arch/blackfin/mach-bf548/boards/Makefile2
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c20
-rw-r--r--arch/blackfin/mach-bf548/head.S21
-rw-r--r--arch/blackfin/mach-bf561/Kconfig4
-rw-r--r--arch/blackfin/mach-bf561/boards/Kconfig27
-rw-r--r--arch/blackfin/mach-bf561/boards/Makefile2
-rw-r--r--arch/blackfin/mach-bf561/boards/cm_bf561.c4
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c29
-rw-r--r--arch/blackfin/mach-bf561/boards/generic_board.c4
-rw-r--r--arch/blackfin/mach-bf561/boards/tepla.c4
-rw-r--r--arch/blackfin/mach-common/cplbinfo.c2
-rw-r--r--arch/blackfin/mach-common/cplbmgr.S25
-rw-r--r--arch/blackfin/mach-common/entry.S54
-rw-r--r--arch/blackfin/mach-common/interrupt.S1
-rw-r--r--arch/blackfin/mach-common/ints-priority-dc.c21
-rw-r--r--arch/blackfin/mach-common/ints-priority-sc.c28
-rw-r--r--arch/blackfin/mach-common/irqpanic.c14
-rw-r--r--arch/blackfin/mm/blackfin_sram.c1
66 files changed, 2125 insertions, 1250 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 9f9de3e95826..2a3a7ea5958c 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -3,7 +3,7 @@
3# see Documentation/kbuild/kconfig-language.txt. 3# see Documentation/kbuild/kconfig-language.txt.
4# 4#
5 5
6mainmenu "uClinux/Blackfin (w/o MMU) Kernel Configuration" 6mainmenu "Blackfin Kernel Configuration"
7 7
8config MMU 8config MMU
9 bool 9 bool
@@ -29,10 +29,6 @@ config ZONE_DMA
29 bool 29 bool
30 default y 30 default y
31 31
32config BFIN
33 bool
34 default y
35
36config SEMAPHORE_SLEEPERS 32config SEMAPHORE_SLEEPERS
37 bool 33 bool
38 default y 34 default y
@@ -50,7 +46,7 @@ config GENERIC_HARDIRQS
50 default y 46 default y
51 47
52config GENERIC_IRQ_PROBE 48config GENERIC_IRQ_PROBE
53 bool 49 bool
54 default y 50 default y
55 51
56config GENERIC_TIME 52config GENERIC_TIME
@@ -69,11 +65,6 @@ config GENERIC_CALIBRATE_DELAY
69 bool 65 bool
70 default y 66 default y
71 67
72config IRQCHIP_DEMUX_GPIO
73 bool
74 depends on (BF52x || BF53x || BF561 || BF54x)
75 default y
76
77source "init/Kconfig" 68source "init/Kconfig"
78source "kernel/Kconfig.preempt" 69source "kernel/Kconfig.preempt"
79 70
@@ -140,6 +131,11 @@ config BF544
140 help 131 help
141 BF544 Processor Support. 132 BF544 Processor Support.
142 133
134config BF547
135 bool "BF547"
136 help
137 BF547 Processor Support.
138
143config BF548 139config BF548
144 bool "BF548" 140 bool "BF548"
145 help 141 help
@@ -166,11 +162,11 @@ choice
166 162
167config BF_REV_0_0 163config BF_REV_0_0
168 bool "0.0" 164 bool "0.0"
169 depends on (BF549 || BF527) 165 depends on (BF52x || BF54x)
170 166
171config BF_REV_0_1 167config BF_REV_0_1
172 bool "0.2" 168 bool "0.1"
173 depends on (BF549 || BF527) 169 depends on (BF52x || BF54x)
174 170
175config BF_REV_0_2 171config BF_REV_0_2
176 bool "0.2" 172 bool "0.2"
@@ -208,7 +204,7 @@ config BF53x
208 204
209config BF54x 205config BF54x
210 bool 206 bool
211 depends on (BF542 || BF544 || BF548 || BF549) 207 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
212 default y 208 default y
213 209
214config BFIN_DUAL_CORE 210config BFIN_DUAL_CORE
@@ -221,95 +217,6 @@ config BFIN_SINGLE_CORE
221 depends on !BFIN_DUAL_CORE 217 depends on !BFIN_DUAL_CORE
222 default y 218 default y
223 219
224choice
225 prompt "System type"
226 default BFIN533_STAMP
227 help
228 Do NOT change the board here. Please use the top level
229 configuration to ensure that all the other settings are
230 correct.
231
232config BFIN527_EZKIT
233 bool "BF527-EZKIT"
234 depends on (BF522 || BF525 || BF527)
235 help
236 BF533-EZKIT-LITE board Support.
237
238config BFIN533_EZKIT
239 bool "BF533-EZKIT"
240 depends on (BF533 || BF532 || BF531)
241 help
242 BF533-EZKIT-LITE board Support.
243
244config BFIN533_STAMP
245 bool "BF533-STAMP"
246 depends on (BF533 || BF532 || BF531)
247 help
248 BF533-STAMP board Support.
249
250config BFIN537_STAMP
251 bool "BF537-STAMP"
252 depends on (BF537 || BF536 || BF534)
253 help
254 BF537-STAMP board Support.
255
256config BFIN533_BLUETECHNIX_CM
257 bool "Bluetechnix CM-BF533"
258 depends on (BF533)
259 help
260 CM-BF533 support for EVAL- and DEV-Board.
261
262config BFIN537_BLUETECHNIX_CM
263 bool "Bluetechnix CM-BF537"
264 depends on (BF537)
265 help
266 CM-BF537 support for EVAL- and DEV-Board.
267
268config BFIN548_EZKIT
269 bool "BF548-EZKIT"
270 depends on (BF548 || BF549)
271 help
272 BFIN548-EZKIT board Support.
273
274config BFIN561_BLUETECHNIX_CM
275 bool "Bluetechnix CM-BF561"
276 depends on (BF561)
277 help
278 CM-BF561 support for EVAL- and DEV-Board.
279
280config BFIN561_EZKIT
281 bool "BF561-EZKIT"
282 depends on (BF561)
283 help
284 BF561-EZKIT-LITE board Support.
285
286config BFIN561_TEPLA
287 bool "BF561-TEPLA"
288 depends on (BF561)
289 help
290 BF561-TEPLA board Support.
291
292config PNAV10
293 bool "PNAV 1.0 board"
294 depends on (BF537)
295 help
296 PNAV 1.0 board Support.
297
298config H8606_HVSISTEMAS
299 bool "HV Sistemas H8606"
300 depends on (BF532)
301 help
302 HV Sistemas H8606 board support.
303
304config GENERIC_BOARD
305 bool "Custom"
306 depends on (BF537 || BF536 \
307 || BF534 || BF561 || BF535 || BF533 || BF532 || BF531)
308 help
309 GENERIC or Custom board Support.
310
311endchoice
312
313config MEM_GENERIC_BOARD 220config MEM_GENERIC_BOARD
314 bool 221 bool
315 depends on GENERIC_BOARD 222 depends on GENERIC_BOARD
@@ -389,9 +296,9 @@ config BFIN_KERNEL_CLOCK
389 configuration. 296 configuration.
390 297
391config PLL_BYPASS 298config PLL_BYPASS
392 bool "Bypass PLL" 299 bool "Bypass PLL"
393 depends on BFIN_KERNEL_CLOCK 300 depends on BFIN_KERNEL_CLOCK
394 default n 301 default n
395 302
396config CLKIN_HALF 303config CLKIN_HALF
397 bool "Half Clock In" 304 bool "Half Clock In"
@@ -468,11 +375,11 @@ config MAX_VCO_HZ
468 default 500000000 if BF534 375 default 500000000 if BF534
469 default 400000000 if BF536 376 default 400000000 if BF536
470 default 600000000 if BF537 377 default 600000000 if BF537
471 default 533000000 if BF538 378 default 533333333 if BF538
472 default 533000000 if BF539 379 default 533333333 if BF539
473 default 600000000 if BF542 380 default 600000000 if BF542
474 default 533000000 if BF544 381 default 533333333 if BF544
475 default 533000000 if BF549 382 default 533333333 if BF549
476 default 600000000 if BF561 383 default 600000000 if BF561
477 384
478config MIN_VCO_HZ 385config MIN_VCO_HZ
@@ -481,7 +388,7 @@ config MIN_VCO_HZ
481 388
482config MAX_SCLK_HZ 389config MAX_SCLK_HZ
483 int 390 int
484 default 133000000 391 default 133333333
485 392
486config MIN_SCLK_HZ 393config MIN_SCLK_HZ
487 int 394 int
@@ -959,6 +866,20 @@ config BANK_3
959 default 0x99B3 866 default 0x99B3
960endmenu 867endmenu
961 868
869config EBIU_MBSCTLVAL
870 hex "EBIU Bank Select Control Register"
871 depends on BF54x
872 default 0
873
874config EBIU_MODEVAL
875 hex "Flash Memory Mode Control Register"
876 depends on BF54x
877 default 1
878
879config EBIU_FCTLVAL
880 hex "Flash Memory Bank Control Register"
881 depends on BF54x
882 default 6
962endmenu 883endmenu
963 884
964############################################################################# 885#############################################################################
@@ -1075,174 +996,7 @@ source "fs/Kconfig"
1075 996
1076source "kernel/Kconfig.instrumentation" 997source "kernel/Kconfig.instrumentation"
1077 998
1078menu "Kernel hacking" 999source "arch/blackfin/Kconfig.debug"
1079
1080source "lib/Kconfig.debug"
1081
1082config DEBUG_HWERR
1083 bool "Hardware error interrupt debugging"
1084 depends on DEBUG_KERNEL
1085 help
1086 When enabled, the hardware error interrupt is never disabled, and
1087 will happen immediately when an error condition occurs. This comes
1088 at a slight cost in code size, but is necessary if you are getting
1089 hardware error interrupts and need to know where they are coming
1090 from.
1091
1092config DEBUG_ICACHE_CHECK
1093 bool "Check Instruction cache coherency"
1094 depends on DEBUG_KERNEL
1095 depends on DEBUG_HWERR
1096 help
1097 Say Y here if you are getting weird unexplained errors. This will
1098 ensure that icache is what SDRAM says it should be by doing a
1099 byte wise comparison between SDRAM and instruction cache. This
1100 also relocates the irq_panic() function to L1 memory, (which is
1101 un-cached).
1102
1103config DEBUG_HUNT_FOR_ZERO
1104 bool "Catch NULL pointer reads/writes"
1105 default y
1106 help
1107 Say Y here to catch reads/writes to anywhere in the memory range
1108 from 0x0000 - 0x0FFF (the first 4k) of memory. This is useful in
1109 catching common programming errors such as NULL pointer dereferences.
1110
1111 Misbehaving applications will be killed (generate a SEGV) while the
1112 kernel will trigger a panic.
1113
1114 Enabling this option will take up an extra entry in CPLB table.
1115 Otherwise, there is no extra overhead.
1116
1117config DEBUG_BFIN_HWTRACE_ON
1118 bool "Turn on Blackfin's Hardware Trace"
1119 default y
1120 help
1121 All Blackfins include a Trace Unit which stores a history of the last
1122 16 changes in program flow taken by the program sequencer. The history
1123 allows the user to recreate the program sequencer’s recent path. This
1124 can be handy when an application dies - we print out the execution
1125 path of how it got to the offending instruction.
1126
1127 By turning this off, you may save a tiny amount of power.
1128
1129choice
1130 prompt "Omit loop Tracing"
1131 default DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
1132 depends on DEBUG_BFIN_HWTRACE_ON
1133 help
1134 The trace buffer can be configured to omit recording of changes in
1135 program flow that match either the last entry or one of the last
1136 two entries. Omitting one of these entries from the record prevents
1137 the trace buffer from overflowing because of any sort of loop (for, do
1138 while, etc) in the program.
1139
1140 Because zero-overhead Hardware loops are not recorded in the trace buffer,
1141 this feature can be used to prevent trace overflow from loops that
1142 are nested four deep.
1143
1144config DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
1145 bool "Trace all Loops"
1146 help
1147 The trace buffer records all changes of flow
1148
1149config DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
1150 bool "Compress single-level loops"
1151 help
1152 The trace buffer does not record single loops - helpful if trace
1153 is spinning on a while or do loop.
1154
1155config DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
1156 bool "Compress two-level loops"
1157 help
1158 The trace buffer does not record loops two levels deep. Helpful if
1159 the trace is spinning in a nested loop
1160
1161endchoice
1162
1163config DEBUG_BFIN_HWTRACE_COMPRESSION
1164 int
1165 depends on DEBUG_BFIN_HWTRACE_ON
1166 default 0 if DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
1167 default 1 if DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
1168 default 2 if DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
1169
1170
1171config DEBUG_BFIN_HWTRACE_EXPAND
1172 bool "Expand Trace Buffer greater than 16 entries"
1173 depends on DEBUG_BFIN_HWTRACE_ON
1174 default n
1175 help
1176 By selecting this option, every time the 16 hardware entries in
1177 the Blackfin's HW Trace buffer are full, the kernel will move them
1178 into a software buffer, for dumping when there is an issue. This
1179 has a great impact on performance, (an interrupt every 16 change of
1180 flows) and should normally be turned off, except in those nasty
1181 debugging sessions
1182
1183config DEBUG_BFIN_HWTRACE_EXPAND_LEN
1184 int "Size of Trace buffer (in power of 2k)"
1185 range 0 4
1186 depends on DEBUG_BFIN_HWTRACE_EXPAND
1187 default 1
1188 help
1189 This sets the size of the software buffer that the trace information
1190 is kept in.
1191 0 for (2^0) 1k, or 256 entries,
1192 1 for (2^1) 2k, or 512 entries,
1193 2 for (2^2) 4k, or 1024 entries,
1194 3 for (2^3) 8k, or 2048 entries,
1195 4 for (2^4) 16k, or 4096 entries
1196
1197config DEBUG_BFIN_NO_KERN_HWTRACE
1198 bool "Trace user apps (turn off hwtrace in kernel)"
1199 depends on DEBUG_BFIN_HWTRACE_ON
1200 default n
1201 help
1202 Some pieces of the kernel contain a lot of flow changes which can
1203 quickly fill up the hardware trace buffer. When debugging crashes,
1204 the hardware trace may indicate that the problem lies in kernel
1205 space when in reality an application is buggy.
1206
1207 Say Y here to disable hardware tracing in some known "jumpy" pieces
1208 of code so that the trace buffer will extend further back.
1209
1210config EARLY_PRINTK
1211 bool "Early printk"
1212 default n
1213 help
1214 This option enables special console drivers which allow the kernel
1215 to print messages very early in the bootup process.
1216
1217 This is useful for kernel debugging when your machine crashes very
1218 early before the console code is initialized. After enabling this
1219 feature, you must add "earlyprintk=serial,uart0,57600" to the
1220 command line (bootargs). It is safe to say Y here in all cases, as
1221 all of this lives in the init section and is thrown away after the
1222 kernel boots completely.
1223
1224config DUAL_CORE_TEST_MODULE
1225 tristate "Dual Core Test Module"
1226 depends on (BF561)
1227 default n
1228 help
1229 Say Y here to build-in dual core test module for dual core test.
1230
1231config CPLB_INFO
1232 bool "Display the CPLB information"
1233 help
1234 Display the CPLB information.
1235
1236config ACCESS_CHECK
1237 bool "Check the user pointer address"
1238 default y
1239 help
1240 Usually the pointer transfer from user space is checked to see if its
1241 address is in the kernel space.
1242
1243 Say N here to disable that check to improve the performance.
1244
1245endmenu
1246 1000
1247source "security/Kconfig" 1001source "security/Kconfig"
1248 1002
diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
new file mode 100644
index 000000000000..59b87a483c68
--- /dev/null
+++ b/arch/blackfin/Kconfig.debug
@@ -0,0 +1,178 @@
1menu "Kernel hacking"
2
3source "lib/Kconfig.debug"
4
5config DEBUG_MMRS
6 bool "Generate Blackfin MMR tree"
7 select DEBUG_FS
8 help
9 Create a tree of Blackfin MMRs via the debugfs tree. If
10 you enable this, you will find all MMRs laid out in the
11 /sys/kernel/debug/blackfin/ directory where you can read/write
12 MMRs directly from userspace. This is obviously just a debug
13 feature.
14
15config DEBUG_HWERR
16 bool "Hardware error interrupt debugging"
17 depends on DEBUG_KERNEL
18 help
19 When enabled, the hardware error interrupt is never disabled, and
20 will happen immediately when an error condition occurs. This comes
21 at a slight cost in code size, but is necessary if you are getting
22 hardware error interrupts and need to know where they are coming
23 from.
24
25config DEBUG_ICACHE_CHECK
26 bool "Check Instruction cache coherency"
27 depends on DEBUG_KERNEL
28 depends on DEBUG_HWERR
29 help
30 Say Y here if you are getting weird unexplained errors. This will
31 ensure that icache is what SDRAM says it should be by doing a
32 byte wise comparison between SDRAM and instruction cache. This
33 also relocates the irq_panic() function to L1 memory, (which is
34 un-cached).
35
36config DEBUG_HUNT_FOR_ZERO
37 bool "Catch NULL pointer reads/writes"
38 default y
39 help
40 Say Y here to catch reads/writes to anywhere in the memory range
41 from 0x0000 - 0x0FFF (the first 4k) of memory. This is useful in
42 catching common programming errors such as NULL pointer dereferences.
43
44 Misbehaving applications will be killed (generate a SEGV) while the
45 kernel will trigger a panic.
46
47 Enabling this option will take up an extra entry in CPLB table.
48 Otherwise, there is no extra overhead.
49
50config DEBUG_BFIN_HWTRACE_ON
51 bool "Turn on Blackfin's Hardware Trace"
52 default y
53 help
54 All Blackfins include a Trace Unit which stores a history of the last
55 16 changes in program flow taken by the program sequencer. The history
56 allows the user to recreate the program sequencer’s recent path. This
57 can be handy when an application dies - we print out the execution
58 path of how it got to the offending instruction.
59
60 By turning this off, you may save a tiny amount of power.
61
62choice
63 prompt "Omit loop Tracing"
64 default DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
65 depends on DEBUG_BFIN_HWTRACE_ON
66 help
67 The trace buffer can be configured to omit recording of changes in
68 program flow that match either the last entry or one of the last
69 two entries. Omitting one of these entries from the record prevents
70 the trace buffer from overflowing because of any sort of loop (for, do
71 while, etc) in the program.
72
73 Because zero-overhead Hardware loops are not recorded in the trace buffer,
74 this feature can be used to prevent trace overflow from loops that
75 are nested four deep.
76
77config DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
78 bool "Trace all Loops"
79 help
80 The trace buffer records all changes of flow
81
82config DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
83 bool "Compress single-level loops"
84 help
85 The trace buffer does not record single loops - helpful if trace
86 is spinning on a while or do loop.
87
88config DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
89 bool "Compress two-level loops"
90 help
91 The trace buffer does not record loops two levels deep. Helpful if
92 the trace is spinning in a nested loop
93
94endchoice
95
96config DEBUG_BFIN_HWTRACE_COMPRESSION
97 int
98 depends on DEBUG_BFIN_HWTRACE_ON
99 default 0 if DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
100 default 1 if DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
101 default 2 if DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
102
103
104config DEBUG_BFIN_HWTRACE_EXPAND
105 bool "Expand Trace Buffer greater than 16 entries"
106 depends on DEBUG_BFIN_HWTRACE_ON
107 default n
108 help
109 By selecting this option, every time the 16 hardware entries in
110 the Blackfin's HW Trace buffer are full, the kernel will move them
111 into a software buffer, for dumping when there is an issue. This
112 has a great impact on performance, (an interrupt every 16 change of
113 flows) and should normally be turned off, except in those nasty
114 debugging sessions
115
116config DEBUG_BFIN_HWTRACE_EXPAND_LEN
117 int "Size of Trace buffer (in power of 2k)"
118 range 0 4
119 depends on DEBUG_BFIN_HWTRACE_EXPAND
120 default 1
121 help
122 This sets the size of the software buffer that the trace information
123 is kept in.
124 0 for (2^0) 1k, or 256 entries,
125 1 for (2^1) 2k, or 512 entries,
126 2 for (2^2) 4k, or 1024 entries,
127 3 for (2^3) 8k, or 2048 entries,
128 4 for (2^4) 16k, or 4096 entries
129
130config DEBUG_BFIN_NO_KERN_HWTRACE
131 bool "Trace user apps (turn off hwtrace in kernel)"
132 depends on DEBUG_BFIN_HWTRACE_ON
133 default n
134 help
135 Some pieces of the kernel contain a lot of flow changes which can
136 quickly fill up the hardware trace buffer. When debugging crashes,
137 the hardware trace may indicate that the problem lies in kernel
138 space when in reality an application is buggy.
139
140 Say Y here to disable hardware tracing in some known "jumpy" pieces
141 of code so that the trace buffer will extend further back.
142
143config EARLY_PRINTK
144 bool "Early printk"
145 default n
146 help
147 This option enables special console drivers which allow the kernel
148 to print messages very early in the bootup process.
149
150 This is useful for kernel debugging when your machine crashes very
151 early before the console code is initialized. After enabling this
152 feature, you must add "earlyprintk=serial,uart0,57600" to the
153 command line (bootargs). It is safe to say Y here in all cases, as
154 all of this lives in the init section and is thrown away after the
155 kernel boots completely.
156
157config DUAL_CORE_TEST_MODULE
158 tristate "Dual Core Test Module"
159 depends on (BF561)
160 default n
161 help
162 Say Y here to build-in dual core test module for dual core test.
163
164config CPLB_INFO
165 bool "Display the CPLB information"
166 help
167 Display the CPLB information.
168
169config ACCESS_CHECK
170 bool "Check the user pointer address"
171 default y
172 help
173 Usually the pointer transfer from user space is checked to see if its
174 address is in the kernel space.
175
176 Say N here to disable that check to improve the performance.
177
178endmenu
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index f7cac7c51e7e..c47e000f8324 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -31,6 +31,7 @@ machine-$(CONFIG_BF536) := bf537
31machine-$(CONFIG_BF537) := bf537 31machine-$(CONFIG_BF537) := bf537
32machine-$(CONFIG_BF542) := bf548 32machine-$(CONFIG_BF542) := bf548
33machine-$(CONFIG_BF544) := bf548 33machine-$(CONFIG_BF544) := bf548
34machine-$(CONFIG_BF547) := bf548
34machine-$(CONFIG_BF548) := bf548 35machine-$(CONFIG_BF548) := bf548
35machine-$(CONFIG_BF549) := bf548 36machine-$(CONFIG_BF549) := bf548
36machine-$(CONFIG_BF561) := bf561 37machine-$(CONFIG_BF561) := bf561
@@ -48,6 +49,7 @@ cpu-$(CONFIG_BF536) := bf536
48cpu-$(CONFIG_BF537) := bf537 49cpu-$(CONFIG_BF537) := bf537
49cpu-$(CONFIG_BF542) := bf542 50cpu-$(CONFIG_BF542) := bf542
50cpu-$(CONFIG_BF544) := bf544 51cpu-$(CONFIG_BF544) := bf544
52cpu-$(CONFIG_BF547) := bf547
51cpu-$(CONFIG_BF548) := bf548 53cpu-$(CONFIG_BF548) := bf548
52cpu-$(CONFIG_BF549) := bf549 54cpu-$(CONFIG_BF549) := bf549
53cpu-$(CONFIG_BF561) := bf561 55cpu-$(CONFIG_BF561) := bf561
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index 1f6a93df6b32..fa6eb4e00fae 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.9 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -127,6 +125,7 @@ CONFIG_BF527=y
127# CONFIG_BF537 is not set 125# CONFIG_BF537 is not set
128# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
129# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
130# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
131# CONFIG_BF549 is not set 130# CONFIG_BF549 is not set
132# CONFIG_BF561 is not set 131# CONFIG_BF561 is not set
@@ -140,19 +139,8 @@ CONFIG_BF_REV_0_0=y
140# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
141CONFIG_BF52x=y 140CONFIG_BF52x=y
142CONFIG_BFIN_SINGLE_CORE=y 141CONFIG_BFIN_SINGLE_CORE=y
143CONFIG_BFIN527_EZKIT=y
144# CONFIG_BFIN533_EZKIT is not set
145# CONFIG_BFIN533_STAMP is not set
146# CONFIG_BFIN537_STAMP is not set
147# CONFIG_BFIN533_BLUETECHNIX_CM is not set
148# CONFIG_BFIN537_BLUETECHNIX_CM is not set
149# CONFIG_BFIN548_EZKIT is not set
150# CONFIG_BFIN561_BLUETECHNIX_CM is not set
151# CONFIG_BFIN561_EZKIT is not set
152# CONFIG_BFIN561_TEPLA is not set
153# CONFIG_PNAV10 is not set
154# CONFIG_GENERIC_BOARD is not set
155CONFIG_MEM_MT48LC32M16A2TG_75=y 142CONFIG_MEM_MT48LC32M16A2TG_75=y
143CONFIG_BFIN527_EZKIT=y
156 144
157# 145#
158# BF527 Specific Configuration 146# BF527 Specific Configuration
@@ -244,7 +232,7 @@ CONFIG_CLKIN_HZ=25000000
244# CONFIG_BFIN_KERNEL_CLOCK is not set 232# CONFIG_BFIN_KERNEL_CLOCK is not set
245CONFIG_MAX_VCO_HZ=600000000 233CONFIG_MAX_VCO_HZ=600000000
246CONFIG_MIN_VCO_HZ=50000000 234CONFIG_MIN_VCO_HZ=50000000
247CONFIG_MAX_SCLK_HZ=133333333 235CONFIG_MAX_SCLK_HZ=133000000
248CONFIG_MIN_SCLK_HZ=27000000 236CONFIG_MIN_SCLK_HZ=27000000
249 237
250# 238#
@@ -301,6 +289,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
301# CONFIG_RESOURCES_64BIT is not set 289# CONFIG_RESOURCES_64BIT is not set
302CONFIG_ZONE_DMA_FLAG=1 290CONFIG_ZONE_DMA_FLAG=1
303CONFIG_LARGE_ALLOCS=y 291CONFIG_LARGE_ALLOCS=y
292# CONFIG_BFIN_GPTIMERS is not set
304CONFIG_BFIN_DMA_5XX=y 293CONFIG_BFIN_DMA_5XX=y
305# CONFIG_DMA_UNCACHED_2M is not set 294# CONFIG_DMA_UNCACHED_2M is not set
306CONFIG_DMA_UNCACHED_1M=y 295CONFIG_DMA_UNCACHED_1M=y
@@ -322,7 +311,7 @@ CONFIG_L1_MAX_PIECE=16
322# 311#
323 312
324# 313#
325# EBIU_AMBCTL Global Control 314# EBIU_AMGCTL Global Control
326# 315#
327CONFIG_C_AMCKEN=y 316CONFIG_C_AMCKEN=y
328CONFIG_C_CDPRIO=y 317CONFIG_C_CDPRIO=y
@@ -548,6 +537,7 @@ CONFIG_BFIN_NAND_CLE=2
548CONFIG_BFIN_NAND_ALE=1 537CONFIG_BFIN_NAND_ALE=1
549CONFIG_BFIN_NAND_READY=3 538CONFIG_BFIN_NAND_READY=3
550CONFIG_MTD_NAND_IDS=m 539CONFIG_MTD_NAND_IDS=m
540# CONFIG_MTD_NAND_BF5XX is not set
551# CONFIG_MTD_NAND_DISKONCHIP is not set 541# CONFIG_MTD_NAND_DISKONCHIP is not set
552# CONFIG_MTD_NAND_NANDSIM is not set 542# CONFIG_MTD_NAND_NANDSIM is not set
553# CONFIG_MTD_NAND_PLATFORM is not set 543# CONFIG_MTD_NAND_PLATFORM is not set
@@ -637,6 +627,7 @@ CONFIG_BFIN_MAC_RMII=y
637# CONFIG_DM9000 is not set 627# CONFIG_DM9000 is not set
638CONFIG_NETDEV_1000=y 628CONFIG_NETDEV_1000=y
639CONFIG_NETDEV_10000=y 629CONFIG_NETDEV_10000=y
630# CONFIG_AX88180 is not set
640 631
641# 632#
642# Wireless LAN 633# Wireless LAN
@@ -708,7 +699,7 @@ CONFIG_INPUT_MISC=y
708# CONFIG_SPI_ADC_BF533 is not set 699# CONFIG_SPI_ADC_BF533 is not set
709# CONFIG_BF5xx_PFLAGS is not set 700# CONFIG_BF5xx_PFLAGS is not set
710# CONFIG_BF5xx_PPIFCD is not set 701# CONFIG_BF5xx_PPIFCD is not set
711# CONFIG_BF5xx_TIMERS is not set 702# CONFIG_BFIN_SIMPLE_TIMER is not set
712# CONFIG_BF5xx_PPI is not set 703# CONFIG_BF5xx_PPI is not set
713# CONFIG_BFIN_SPORT is not set 704# CONFIG_BFIN_SPORT is not set
714# CONFIG_BFIN_TIMER_LATENCY is not set 705# CONFIG_BFIN_TIMER_LATENCY is not set
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 9e9b420342d1..4fdb49362ba3 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.6 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -64,7 +62,6 @@ CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y 62CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y 63CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y 64CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 65CONFIG_EVENTFD=y
69CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
@@ -117,6 +114,9 @@ CONFIG_PREEMPT_VOLUNTARY=y
117# 114#
118# Processor and Board Settings 115# Processor and Board Settings
119# 116#
117# CONFIG_BF522 is not set
118# CONFIG_BF525 is not set
119# CONFIG_BF527 is not set
120# CONFIG_BF531 is not set 120# CONFIG_BF531 is not set
121# CONFIG_BF532 is not set 121# CONFIG_BF532 is not set
122CONFIG_BF533=y 122CONFIG_BF533=y
@@ -125,10 +125,12 @@ CONFIG_BF533=y
125# CONFIG_BF537 is not set 125# CONFIG_BF537 is not set
126# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
127# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
128# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
129# CONFIG_BF549 is not set 130# CONFIG_BF549 is not set
130# CONFIG_BF561 is not set 131# CONFIG_BF561 is not set
131# CONFIG_BF_REV_0_0 is not set 132# CONFIG_BF_REV_0_0 is not set
133# CONFIG_BF_REV_0_1 is not set
132# CONFIG_BF_REV_0_2 is not set 134# CONFIG_BF_REV_0_2 is not set
133CONFIG_BF_REV_0_3=y 135CONFIG_BF_REV_0_3=y
134# CONFIG_BF_REV_0_4 is not set 136# CONFIG_BF_REV_0_4 is not set
@@ -137,18 +139,12 @@ CONFIG_BF_REV_0_3=y
137# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
138CONFIG_BF53x=y 140CONFIG_BF53x=y
139CONFIG_BFIN_SINGLE_CORE=y 141CONFIG_BFIN_SINGLE_CORE=y
142CONFIG_MEM_MT48LC16M16A2TG_75=y
140CONFIG_BFIN533_EZKIT=y 143CONFIG_BFIN533_EZKIT=y
141# CONFIG_BFIN533_STAMP is not set 144# CONFIG_BFIN533_STAMP is not set
142# CONFIG_BFIN537_STAMP is not set
143# CONFIG_BFIN533_BLUETECHNIX_CM is not set 145# CONFIG_BFIN533_BLUETECHNIX_CM is not set
144# CONFIG_BFIN537_BLUETECHNIX_CM is not set 146# CONFIG_H8606_HVSISTEMAS is not set
145# CONFIG_BFIN548_EZKIT is not set 147# CONFIG_GENERIC_BF533_BOARD is not set
146# CONFIG_BFIN561_BLUETECHNIX_CM is not set
147# CONFIG_BFIN561_EZKIT is not set
148# CONFIG_BFIN561_TEPLA is not set
149# CONFIG_PNAV10 is not set
150# CONFIG_GENERIC_BOARD is not set
151CONFIG_MEM_MT48LC16M16A2TG_75=y
152 148
153# 149#
154# BF533/2/1 Specific Configuration 150# BF533/2/1 Specific Configuration
@@ -198,7 +194,7 @@ CONFIG_CLKIN_HZ=27000000
198# CONFIG_BFIN_KERNEL_CLOCK is not set 194# CONFIG_BFIN_KERNEL_CLOCK is not set
199CONFIG_MAX_VCO_HZ=750000000 195CONFIG_MAX_VCO_HZ=750000000
200CONFIG_MIN_VCO_HZ=50000000 196CONFIG_MIN_VCO_HZ=50000000
201CONFIG_MAX_SCLK_HZ=133333333 197CONFIG_MAX_SCLK_HZ=133000000
202CONFIG_MIN_SCLK_HZ=27000000 198CONFIG_MIN_SCLK_HZ=27000000
203 199
204# 200#
@@ -255,6 +251,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
255# CONFIG_RESOURCES_64BIT is not set 251# CONFIG_RESOURCES_64BIT is not set
256CONFIG_ZONE_DMA_FLAG=1 252CONFIG_ZONE_DMA_FLAG=1
257CONFIG_LARGE_ALLOCS=y 253CONFIG_LARGE_ALLOCS=y
254# CONFIG_BFIN_GPTIMERS is not set
258CONFIG_BFIN_DMA_5XX=y 255CONFIG_BFIN_DMA_5XX=y
259# CONFIG_DMA_UNCACHED_2M is not set 256# CONFIG_DMA_UNCACHED_2M is not set
260CONFIG_DMA_UNCACHED_1M=y 257CONFIG_DMA_UNCACHED_1M=y
@@ -276,7 +273,7 @@ CONFIG_L1_MAX_PIECE=16
276# 273#
277 274
278# 275#
279# EBIU_AMBCTL Global Control 276# EBIU_AMGCTL Global Control
280# 277#
281CONFIG_C_AMCKEN=y 278CONFIG_C_AMCKEN=y
282CONFIG_C_CDPRIO=y 279CONFIG_C_CDPRIO=y
@@ -526,14 +523,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
526CONFIG_MTD_BF5xx=m 523CONFIG_MTD_BF5xx=m
527CONFIG_BFIN_FLASH_SIZE=0x400000 524CONFIG_BFIN_FLASH_SIZE=0x400000
528CONFIG_EBIU_FLASH_BASE=0x20000000 525CONFIG_EBIU_FLASH_BASE=0x20000000
529
530#
531# FLASH_EBIU_AMBCTL Control
532#
533CONFIG_BFIN_FLASH_BANK_0=0x7BB0
534CONFIG_BFIN_FLASH_BANK_1=0x7BB0
535CONFIG_BFIN_FLASH_BANK_2=0x7BB0
536CONFIG_BFIN_FLASH_BANK_3=0x7BB0
537# CONFIG_MTD_UCLINUX is not set 526# CONFIG_MTD_UCLINUX is not set
538# CONFIG_MTD_PLATRAM is not set 527# CONFIG_MTD_PLATRAM is not set
539 528
@@ -622,6 +611,7 @@ CONFIG_SMC91X=y
622# CONFIG_DM9000 is not set 611# CONFIG_DM9000 is not set
623CONFIG_NETDEV_1000=y 612CONFIG_NETDEV_1000=y
624CONFIG_NETDEV_10000=y 613CONFIG_NETDEV_10000=y
614# CONFIG_AX88180 is not set
625 615
626# 616#
627# Wireless LAN 617# Wireless LAN
@@ -683,9 +673,9 @@ CONFIG_INPUT_EVDEV=m
683# 673#
684# CONFIG_AD9960 is not set 674# CONFIG_AD9960 is not set
685# CONFIG_SPI_ADC_BF533 is not set 675# CONFIG_SPI_ADC_BF533 is not set
686# CONFIG_BFIN_PFLAGS is not set 676# CONFIG_BF5xx_PFLAGS is not set
687# CONFIG_BF5xx_PPIFCD is not set 677# CONFIG_BF5xx_PPIFCD is not set
688# CONFIG_BF5xx_TIMERS is not set 678# CONFIG_BFIN_SIMPLE_TIMER is not set
689# CONFIG_BF5xx_PPI is not set 679# CONFIG_BF5xx_PPI is not set
690CONFIG_BFIN_SPORT=y 680CONFIG_BFIN_SPORT=y
691# CONFIG_BFIN_TIMER_LATENCY is not set 681# CONFIG_BFIN_TIMER_LATENCY is not set
@@ -708,6 +698,7 @@ CONFIG_SERIAL_BFIN_DMA=y
708# CONFIG_SERIAL_BFIN_PIO is not set 698# CONFIG_SERIAL_BFIN_PIO is not set
709CONFIG_SERIAL_BFIN_UART0=y 699CONFIG_SERIAL_BFIN_UART0=y
710# CONFIG_BFIN_UART0_CTSRTS is not set 700# CONFIG_BFIN_UART0_CTSRTS is not set
701# CONFIG_SERIAL_BFIN_UART1 is not set
711CONFIG_SERIAL_CORE=y 702CONFIG_SERIAL_CORE=y
712CONFIG_SERIAL_CORE_CONSOLE=y 703CONFIG_SERIAL_CORE_CONSOLE=y
713# CONFIG_SERIAL_BFIN_SPORT is not set 704# CONFIG_SERIAL_BFIN_SPORT is not set
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index f59ade980109..b04e8e533e9a 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.6 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -64,7 +62,6 @@ CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y 62CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y 63CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y 64CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 65CONFIG_EVENTFD=y
69CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
@@ -117,6 +114,9 @@ CONFIG_PREEMPT_VOLUNTARY=y
117# 114#
118# Processor and Board Settings 115# Processor and Board Settings
119# 116#
117# CONFIG_BF522 is not set
118# CONFIG_BF525 is not set
119# CONFIG_BF527 is not set
120# CONFIG_BF531 is not set 120# CONFIG_BF531 is not set
121# CONFIG_BF532 is not set 121# CONFIG_BF532 is not set
122CONFIG_BF533=y 122CONFIG_BF533=y
@@ -125,10 +125,12 @@ CONFIG_BF533=y
125# CONFIG_BF537 is not set 125# CONFIG_BF537 is not set
126# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
127# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
128# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
129# CONFIG_BF549 is not set 130# CONFIG_BF549 is not set
130# CONFIG_BF561 is not set 131# CONFIG_BF561 is not set
131# CONFIG_BF_REV_0_0 is not set 132# CONFIG_BF_REV_0_0 is not set
133# CONFIG_BF_REV_0_1 is not set
132# CONFIG_BF_REV_0_2 is not set 134# CONFIG_BF_REV_0_2 is not set
133CONFIG_BF_REV_0_3=y 135CONFIG_BF_REV_0_3=y
134# CONFIG_BF_REV_0_4 is not set 136# CONFIG_BF_REV_0_4 is not set
@@ -137,19 +139,13 @@ CONFIG_BF_REV_0_3=y
137# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
138CONFIG_BF53x=y 140CONFIG_BF53x=y
139CONFIG_BFIN_SINGLE_CORE=y 141CONFIG_BFIN_SINGLE_CORE=y
142CONFIG_MEM_MT48LC64M4A2FB_7E=y
143CONFIG_BFIN_SHARED_FLASH_ENET=y
140# CONFIG_BFIN533_EZKIT is not set 144# CONFIG_BFIN533_EZKIT is not set
141CONFIG_BFIN533_STAMP=y 145CONFIG_BFIN533_STAMP=y
142# CONFIG_BFIN537_STAMP is not set
143# CONFIG_BFIN533_BLUETECHNIX_CM is not set 146# CONFIG_BFIN533_BLUETECHNIX_CM is not set
144# CONFIG_BFIN537_BLUETECHNIX_CM is not set 147# CONFIG_H8606_HVSISTEMAS is not set
145# CONFIG_BFIN548_EZKIT is not set 148# CONFIG_GENERIC_BF533_BOARD is not set
146# CONFIG_BFIN561_BLUETECHNIX_CM is not set
147# CONFIG_BFIN561_EZKIT is not set
148# CONFIG_BFIN561_TEPLA is not set
149# CONFIG_PNAV10 is not set
150# CONFIG_GENERIC_BOARD is not set
151CONFIG_MEM_MT48LC64M4A2FB_7E=y
152CONFIG_BFIN_SHARED_FLASH_ENET=y
153 149
154# 150#
155# BF533/2/1 Specific Configuration 151# BF533/2/1 Specific Configuration
@@ -199,7 +195,7 @@ CONFIG_CLKIN_HZ=11059200
199# CONFIG_BFIN_KERNEL_CLOCK is not set 195# CONFIG_BFIN_KERNEL_CLOCK is not set
200CONFIG_MAX_VCO_HZ=750000000 196CONFIG_MAX_VCO_HZ=750000000
201CONFIG_MIN_VCO_HZ=50000000 197CONFIG_MIN_VCO_HZ=50000000
202CONFIG_MAX_SCLK_HZ=133333333 198CONFIG_MAX_SCLK_HZ=133000000
203CONFIG_MIN_SCLK_HZ=27000000 199CONFIG_MIN_SCLK_HZ=27000000
204 200
205# 201#
@@ -267,6 +263,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
267# CONFIG_RESOURCES_64BIT is not set 263# CONFIG_RESOURCES_64BIT is not set
268CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
269CONFIG_LARGE_ALLOCS=y 265CONFIG_LARGE_ALLOCS=y
266# CONFIG_BFIN_GPTIMERS is not set
270CONFIG_BFIN_DMA_5XX=y 267CONFIG_BFIN_DMA_5XX=y
271# CONFIG_DMA_UNCACHED_2M is not set 268# CONFIG_DMA_UNCACHED_2M is not set
272CONFIG_DMA_UNCACHED_1M=y 269CONFIG_DMA_UNCACHED_1M=y
@@ -288,7 +285,7 @@ CONFIG_L1_MAX_PIECE=16
288# 285#
289 286
290# 287#
291# EBIU_AMBCTL Global Control 288# EBIU_AMGCTL Global Control
292# 289#
293CONFIG_C_AMCKEN=y 290CONFIG_C_AMCKEN=y
294CONFIG_C_CDPRIO=y 291CONFIG_C_CDPRIO=y
@@ -634,6 +631,7 @@ CONFIG_SMC91X=y
634# CONFIG_DM9000 is not set 631# CONFIG_DM9000 is not set
635CONFIG_NETDEV_1000=y 632CONFIG_NETDEV_1000=y
636CONFIG_NETDEV_10000=y 633CONFIG_NETDEV_10000=y
634# CONFIG_AX88180 is not set
637 635
638# 636#
639# Wireless LAN 637# Wireless LAN
@@ -704,9 +702,9 @@ CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=39
704# 702#
705# CONFIG_AD9960 is not set 703# CONFIG_AD9960 is not set
706# CONFIG_SPI_ADC_BF533 is not set 704# CONFIG_SPI_ADC_BF533 is not set
707# CONFIG_BFIN_PFLAGS is not set 705# CONFIG_BF5xx_PFLAGS is not set
708# CONFIG_BF5xx_PPIFCD is not set 706# CONFIG_BF5xx_PPIFCD is not set
709# CONFIG_BF5xx_TIMERS is not set 707# CONFIG_BFIN_SIMPLE_TIMER is not set
710# CONFIG_BF5xx_PPI is not set 708# CONFIG_BF5xx_PPI is not set
711CONFIG_BFIN_SPORT=y 709CONFIG_BFIN_SPORT=y
712# CONFIG_BFIN_TIMER_LATENCY is not set 710# CONFIG_BFIN_TIMER_LATENCY is not set
@@ -732,6 +730,7 @@ CONFIG_SERIAL_BFIN_DMA=y
732# CONFIG_SERIAL_BFIN_PIO is not set 730# CONFIG_SERIAL_BFIN_PIO is not set
733CONFIG_SERIAL_BFIN_UART0=y 731CONFIG_SERIAL_BFIN_UART0=y
734# CONFIG_BFIN_UART0_CTSRTS is not set 732# CONFIG_BFIN_UART0_CTSRTS is not set
733# CONFIG_SERIAL_BFIN_UART1 is not set
735CONFIG_SERIAL_CORE=y 734CONFIG_SERIAL_CORE=y
736CONFIG_SERIAL_CORE_CONSOLE=y 735CONFIG_SERIAL_CORE_CONSOLE=y
737# CONFIG_SERIAL_BFIN_SPORT is not set 736# CONFIG_SERIAL_BFIN_SPORT is not set
@@ -925,6 +924,7 @@ CONFIG_NTSC=y
925# CONFIG_PAL_YCBCR is not set 924# CONFIG_PAL_YCBCR is not set
926CONFIG_ADV7393_1XMEM=y 925CONFIG_ADV7393_1XMEM=y
927# CONFIG_ADV7393_2XMEM is not set 926# CONFIG_ADV7393_2XMEM is not set
927# CONFIG_FB_BFIN_T350MCQB is not set
928# CONFIG_FB_S1D13XXX is not set 928# CONFIG_FB_S1D13XXX is not set
929# CONFIG_FB_VIRTUAL is not set 929# CONFIG_FB_VIRTUAL is not set
930# CONFIG_LOGO is not set 930# CONFIG_LOGO is not set
@@ -979,11 +979,6 @@ CONFIG_SND_BFIN_AD73311_SE=4
979# CONFIG_SND_SOC is not set 979# CONFIG_SND_SOC is not set
980 980
981# 981#
982# SoC Audio for the ADI Blackfin
983#
984# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
985
986#
987# Open Sound System 982# Open Sound System
988# 983#
989# CONFIG_SOUND_PRIME is not set 984# CONFIG_SOUND_PRIME is not set
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index 07eb63dc25e0..f812b66318b9 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.6 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -64,7 +62,6 @@ CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y 62CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y 63CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y 64CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 65CONFIG_EVENTFD=y
69CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
@@ -117,6 +114,9 @@ CONFIG_PREEMPT_VOLUNTARY=y
117# 114#
118# Processor and Board Settings 115# Processor and Board Settings
119# 116#
117# CONFIG_BF522 is not set
118# CONFIG_BF525 is not set
119# CONFIG_BF527 is not set
120# CONFIG_BF531 is not set 120# CONFIG_BF531 is not set
121# CONFIG_BF532 is not set 121# CONFIG_BF532 is not set
122# CONFIG_BF533 is not set 122# CONFIG_BF533 is not set
@@ -125,10 +125,12 @@ CONFIG_PREEMPT_VOLUNTARY=y
125CONFIG_BF537=y 125CONFIG_BF537=y
126# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
127# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
128# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
129# CONFIG_BF549 is not set 130# CONFIG_BF549 is not set
130# CONFIG_BF561 is not set 131# CONFIG_BF561 is not set
131# CONFIG_BF_REV_0_0 is not set 132# CONFIG_BF_REV_0_0 is not set
133# CONFIG_BF_REV_0_1 is not set
132CONFIG_BF_REV_0_2=y 134CONFIG_BF_REV_0_2=y
133# CONFIG_BF_REV_0_3 is not set 135# CONFIG_BF_REV_0_3 is not set
134# CONFIG_BF_REV_0_4 is not set 136# CONFIG_BF_REV_0_4 is not set
@@ -137,33 +139,8 @@ CONFIG_BF_REV_0_2=y
137# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
138CONFIG_BF53x=y 140CONFIG_BF53x=y
139CONFIG_BFIN_SINGLE_CORE=y 141CONFIG_BFIN_SINGLE_CORE=y
140# CONFIG_BFIN533_EZKIT is not set
141# CONFIG_BFIN533_STAMP is not set
142CONFIG_BFIN537_STAMP=y
143# CONFIG_BFIN533_BLUETECHNIX_CM is not set
144# CONFIG_BFIN537_BLUETECHNIX_CM is not set
145# CONFIG_BFIN548_EZKIT is not set
146# CONFIG_BFIN561_BLUETECHNIX_CM is not set
147# CONFIG_BFIN561_EZKIT is not set
148# CONFIG_BFIN561_TEPLA is not set
149# CONFIG_PNAV10 is not set
150# CONFIG_GENERIC_BOARD is not set
151CONFIG_MEM_MT48LC32M8A2_75=y 142CONFIG_MEM_MT48LC32M8A2_75=y
152CONFIG_IRQ_PLL_WAKEUP=7 143CONFIG_IRQ_PLL_WAKEUP=7
153
154#
155# BF537 Specific Configuration
156#
157
158#
159# Interrupt Priority Assignment
160#
161
162#
163# Priority
164#
165CONFIG_IRQ_DMA_ERROR=7
166CONFIG_IRQ_ERROR=7
167CONFIG_IRQ_RTC=8 144CONFIG_IRQ_RTC=8
168CONFIG_IRQ_PPI=8 145CONFIG_IRQ_PPI=8
169CONFIG_IRQ_SPORT0_RX=9 146CONFIG_IRQ_SPORT0_RX=9
@@ -176,8 +153,6 @@ CONFIG_IRQ_UART0_RX=10
176CONFIG_IRQ_UART0_TX=10 153CONFIG_IRQ_UART0_TX=10
177CONFIG_IRQ_UART1_RX=10 154CONFIG_IRQ_UART1_RX=10
178CONFIG_IRQ_UART1_TX=10 155CONFIG_IRQ_UART1_TX=10
179CONFIG_IRQ_CAN_RX=11
180CONFIG_IRQ_CAN_TX=11
181CONFIG_IRQ_MAC_RX=11 156CONFIG_IRQ_MAC_RX=11
182CONFIG_IRQ_MAC_TX=11 157CONFIG_IRQ_MAC_TX=11
183CONFIG_IRQ_TMR0=12 158CONFIG_IRQ_TMR0=12
@@ -188,11 +163,31 @@ CONFIG_IRQ_TMR4=12
188CONFIG_IRQ_TMR5=12 163CONFIG_IRQ_TMR5=12
189CONFIG_IRQ_TMR6=12 164CONFIG_IRQ_TMR6=12
190CONFIG_IRQ_TMR7=12 165CONFIG_IRQ_TMR7=12
191CONFIG_IRQ_PROG_INTA=12
192CONFIG_IRQ_PORTG_INTB=12 166CONFIG_IRQ_PORTG_INTB=12
193CONFIG_IRQ_MEM_DMA0=13 167CONFIG_IRQ_MEM_DMA0=13
194CONFIG_IRQ_MEM_DMA1=13 168CONFIG_IRQ_MEM_DMA1=13
195CONFIG_IRQ_WATCH=13 169CONFIG_IRQ_WATCH=13
170CONFIG_BFIN537_STAMP=y
171# CONFIG_BFIN537_BLUETECHNIX_CM is not set
172# CONFIG_PNAV10 is not set
173# CONFIG_GENERIC_BF537_BOARD is not set
174
175#
176# BF537 Specific Configuration
177#
178
179#
180# Interrupt Priority Assignment
181#
182
183#
184# Priority
185#
186CONFIG_IRQ_DMA_ERROR=7
187CONFIG_IRQ_ERROR=7
188CONFIG_IRQ_CAN_RX=11
189CONFIG_IRQ_CAN_TX=11
190CONFIG_IRQ_PROG_INTA=12
196 191
197# 192#
198# Board customizations 193# Board customizations
@@ -206,7 +201,7 @@ CONFIG_CLKIN_HZ=25000000
206# CONFIG_BFIN_KERNEL_CLOCK is not set 201# CONFIG_BFIN_KERNEL_CLOCK is not set
207CONFIG_MAX_VCO_HZ=600000000 202CONFIG_MAX_VCO_HZ=600000000
208CONFIG_MIN_VCO_HZ=50000000 203CONFIG_MIN_VCO_HZ=50000000
209CONFIG_MAX_SCLK_HZ=133333333 204CONFIG_MAX_SCLK_HZ=133000000
210CONFIG_MIN_SCLK_HZ=27000000 205CONFIG_MIN_SCLK_HZ=27000000
211 206
212# 207#
@@ -263,6 +258,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
263# CONFIG_RESOURCES_64BIT is not set 258# CONFIG_RESOURCES_64BIT is not set
264CONFIG_ZONE_DMA_FLAG=1 259CONFIG_ZONE_DMA_FLAG=1
265CONFIG_LARGE_ALLOCS=y 260CONFIG_LARGE_ALLOCS=y
261# CONFIG_BFIN_GPTIMERS is not set
266CONFIG_BFIN_DMA_5XX=y 262CONFIG_BFIN_DMA_5XX=y
267# CONFIG_DMA_UNCACHED_2M is not set 263# CONFIG_DMA_UNCACHED_2M is not set
268CONFIG_DMA_UNCACHED_1M=y 264CONFIG_DMA_UNCACHED_1M=y
@@ -284,7 +280,7 @@ CONFIG_L1_MAX_PIECE=16
284# 280#
285 281
286# 282#
287# EBIU_AMBCTL Global Control 283# EBIU_AMGCTL Global Control
288# 284#
289CONFIG_C_AMCKEN=y 285CONFIG_C_AMCKEN=y
290CONFIG_C_CDPRIO=y 286CONFIG_C_CDPRIO=y
@@ -534,14 +530,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
534CONFIG_MTD_BF5xx=m 530CONFIG_MTD_BF5xx=m
535CONFIG_BFIN_FLASH_SIZE=0x400000 531CONFIG_BFIN_FLASH_SIZE=0x400000
536CONFIG_EBIU_FLASH_BASE=0x20000000 532CONFIG_EBIU_FLASH_BASE=0x20000000
537
538#
539# FLASH_EBIU_AMBCTL Control
540#
541CONFIG_BFIN_FLASH_BANK_0=0x7BB0
542CONFIG_BFIN_FLASH_BANK_1=0x7BB0
543CONFIG_BFIN_FLASH_BANK_2=0x7BB0
544CONFIG_BFIN_FLASH_BANK_3=0x7BB0
545# CONFIG_MTD_UCLINUX is not set 533# CONFIG_MTD_UCLINUX is not set
546# CONFIG_MTD_PLATRAM is not set 534# CONFIG_MTD_PLATRAM is not set
547 535
@@ -660,6 +648,7 @@ CONFIG_BFIN_RX_DESC_NUM=20
660# CONFIG_DM9000 is not set 648# CONFIG_DM9000 is not set
661CONFIG_NETDEV_1000=y 649CONFIG_NETDEV_1000=y
662CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
651# CONFIG_AX88180 is not set
663 652
664# 653#
665# Wireless LAN 654# Wireless LAN
@@ -730,9 +719,9 @@ CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=72
730# 719#
731# CONFIG_AD9960 is not set 720# CONFIG_AD9960 is not set
732# CONFIG_SPI_ADC_BF533 is not set 721# CONFIG_SPI_ADC_BF533 is not set
733# CONFIG_BFIN_PFLAGS is not set 722# CONFIG_BF5xx_PFLAGS is not set
734# CONFIG_BF5xx_PPIFCD is not set 723# CONFIG_BF5xx_PPIFCD is not set
735# CONFIG_BF5xx_TIMERS is not set 724# CONFIG_BFIN_SIMPLE_TIMER is not set
736# CONFIG_BF5xx_PPI is not set 725# CONFIG_BF5xx_PPI is not set
737CONFIG_BFIN_SPORT=y 726CONFIG_BFIN_SPORT=y
738# CONFIG_BFIN_TIMER_LATENCY is not set 727# CONFIG_BFIN_TIMER_LATENCY is not set
@@ -967,6 +956,7 @@ CONFIG_FB_BF537_LQ035=m
967CONFIG_LQ035_SLAVE_ADDR=0x58 956CONFIG_LQ035_SLAVE_ADDR=0x58
968# CONFIG_FB_BFIN_LANDSCAPE is not set 957# CONFIG_FB_BFIN_LANDSCAPE is not set
969# CONFIG_FB_BFIN_BGR is not set 958# CONFIG_FB_BFIN_BGR is not set
959# CONFIG_FB_BFIN_T350MCQB is not set
970# CONFIG_FB_S1D13XXX is not set 960# CONFIG_FB_S1D13XXX is not set
971# CONFIG_FB_VIRTUAL is not set 961# CONFIG_FB_VIRTUAL is not set
972# CONFIG_LOGO is not set 962# CONFIG_LOGO is not set
@@ -1021,11 +1011,6 @@ CONFIG_SND_BFIN_AD73311_SE=4
1021# CONFIG_SND_SOC is not set 1011# CONFIG_SND_SOC is not set
1022 1012
1023# 1013#
1024# SoC Audio for the ADI Blackfin
1025#
1026# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1027
1028#
1029# Open Sound System 1014# Open Sound System
1030# 1015#
1031# CONFIG_SOUND_PRIME is not set 1016# CONFIG_SOUND_PRIME is not set
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index 0dd3d2253dc2..48367cc9fe35 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.10 3# Linux kernel version: 2.6.22.12
4# Sat Oct 27 02:34:07 2007
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -9,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
11CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
12CONFIG_BFIN=y
13CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
14CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
15CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -19,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
20CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
21CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
22CONFIG_IRQCHIP_DEMUX_GPIO=y
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24 21
25# 22#
@@ -128,6 +125,7 @@ CONFIG_PREEMPT_VOLUNTARY=y
128# CONFIG_BF537 is not set 125# CONFIG_BF537 is not set
129# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
130# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
131# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
132CONFIG_BF549=y 130CONFIG_BF549=y
133# CONFIG_BF561 is not set 131# CONFIG_BF561 is not set
@@ -141,19 +139,6 @@ CONFIG_BF_REV_0_0=y
141# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
142CONFIG_BF54x=y 140CONFIG_BF54x=y
143CONFIG_BFIN_SINGLE_CORE=y 141CONFIG_BFIN_SINGLE_CORE=y
144# CONFIG_BFIN527_EZKIT is not set
145# CONFIG_BFIN533_EZKIT is not set
146# CONFIG_BFIN533_STAMP is not set
147# CONFIG_BFIN537_STAMP is not set
148# CONFIG_BFIN533_BLUETECHNIX_CM is not set
149# CONFIG_BFIN537_BLUETECHNIX_CM is not set
150CONFIG_BFIN548_EZKIT=y
151# CONFIG_BFIN561_BLUETECHNIX_CM is not set
152# CONFIG_BFIN561_EZKIT is not set
153# CONFIG_BFIN561_TEPLA is not set
154# CONFIG_PNAV10 is not set
155# CONFIG_H8606_HVSISTEMAS is not set
156# CONFIG_GENERIC_BOARD is not set
157CONFIG_IRQ_PLL_WAKEUP=7 142CONFIG_IRQ_PLL_WAKEUP=7
158CONFIG_IRQ_RTC=8 143CONFIG_IRQ_RTC=8
159CONFIG_IRQ_SPORT0_RX=9 144CONFIG_IRQ_SPORT0_RX=9
@@ -180,6 +165,7 @@ CONFIG_IRQ_TIMER7=11
180CONFIG_IRQ_TIMER8=11 165CONFIG_IRQ_TIMER8=11
181CONFIG_IRQ_TIMER9=11 166CONFIG_IRQ_TIMER9=11
182CONFIG_IRQ_TIMER10=11 167CONFIG_IRQ_TIMER10=11
168CONFIG_BFIN548_EZKIT=y
183 169
184# 170#
185# BF548 Specific Configuration 171# BF548 Specific Configuration
@@ -279,9 +265,9 @@ CONFIG_PINT3_ASSIGN=0x02020303
279# 265#
280CONFIG_CLKIN_HZ=25000000 266CONFIG_CLKIN_HZ=25000000
281# CONFIG_BFIN_KERNEL_CLOCK is not set 267# CONFIG_BFIN_KERNEL_CLOCK is not set
282CONFIG_MAX_VCO_HZ=533333333 268CONFIG_MAX_VCO_HZ=533000000
283CONFIG_MIN_VCO_HZ=50000000 269CONFIG_MIN_VCO_HZ=50000000
284CONFIG_MAX_SCLK_HZ=133333333 270CONFIG_MAX_SCLK_HZ=133000000
285CONFIG_MIN_SCLK_HZ=27000000 271CONFIG_MIN_SCLK_HZ=27000000
286 272
287# 273#
@@ -376,6 +362,9 @@ CONFIG_BANK_0=0x7BB0
376CONFIG_BANK_1=0x5554 362CONFIG_BANK_1=0x5554
377CONFIG_BANK_2=0x7BB0 363CONFIG_BANK_2=0x7BB0
378CONFIG_BANK_3=0x99B3 364CONFIG_BANK_3=0x99B3
365CONFIG_EBUI_MBSCTLVAL=0x0
366CONFIG_EBUI_MODEVAL=0x1
367CONFIG_EBUI_FCTLVAL=0x6
379 368
380# 369#
381# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 370# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -702,6 +691,7 @@ CONFIG_SMSC911X=y
702# CONFIG_DM9000 is not set 691# CONFIG_DM9000 is not set
703CONFIG_NETDEV_1000=y 692CONFIG_NETDEV_1000=y
704CONFIG_NETDEV_10000=y 693CONFIG_NETDEV_10000=y
694# CONFIG_AX88180 is not set
705 695
706# 696#
707# Wireless LAN 697# Wireless LAN
@@ -1058,6 +1048,8 @@ CONFIG_SND_SOC=y
1058CONFIG_SND_BF5XX_SOC=y 1048CONFIG_SND_BF5XX_SOC=y
1059CONFIG_SND_BF5XX_SOC_AC97=y 1049CONFIG_SND_BF5XX_SOC_AC97=y
1060CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y 1050CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y
1051# CONFIG_SND_BF5XX_SOC_WM8750 is not set
1052# CONFIG_SND_BF5XX_SOC_WM8731 is not set
1061CONFIG_SND_BF5XX_SPORT_NUM=0 1053CONFIG_SND_BF5XX_SPORT_NUM=0
1062# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set 1054# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1063CONFIG_SND_SOC_AD1980=y 1055CONFIG_SND_SOC_AD1980=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 277d72dac0f9..e9f100b45eb1 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.6 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -64,7 +62,6 @@ CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y 62CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y 63CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y 64CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 65CONFIG_EVENTFD=y
69CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
@@ -117,6 +114,9 @@ CONFIG_PREEMPT_VOLUNTARY=y
117# 114#
118# Processor and Board Settings 115# Processor and Board Settings
119# 116#
117# CONFIG_BF522 is not set
118# CONFIG_BF525 is not set
119# CONFIG_BF527 is not set
120# CONFIG_BF531 is not set 120# CONFIG_BF531 is not set
121# CONFIG_BF532 is not set 121# CONFIG_BF532 is not set
122# CONFIG_BF533 is not set 122# CONFIG_BF533 is not set
@@ -125,10 +125,12 @@ CONFIG_PREEMPT_VOLUNTARY=y
125# CONFIG_BF537 is not set 125# CONFIG_BF537 is not set
126# CONFIG_BF542 is not set 126# CONFIG_BF542 is not set
127# CONFIG_BF544 is not set 127# CONFIG_BF544 is not set
128# CONFIG_BF547 is not set
128# CONFIG_BF548 is not set 129# CONFIG_BF548 is not set
129# CONFIG_BF549 is not set 130# CONFIG_BF549 is not set
130CONFIG_BF561=y 131CONFIG_BF561=y
131# CONFIG_BF_REV_0_0 is not set 132# CONFIG_BF_REV_0_0 is not set
133# CONFIG_BF_REV_0_1 is not set
132# CONFIG_BF_REV_0_2 is not set 134# CONFIG_BF_REV_0_2 is not set
133CONFIG_BF_REV_0_3=y 135CONFIG_BF_REV_0_3=y
134# CONFIG_BF_REV_0_4 is not set 136# CONFIG_BF_REV_0_4 is not set
@@ -136,18 +138,15 @@ CONFIG_BF_REV_0_3=y
136# CONFIG_BF_REV_ANY is not set 138# CONFIG_BF_REV_ANY is not set
137# CONFIG_BF_REV_NONE is not set 139# CONFIG_BF_REV_NONE is not set
138CONFIG_BFIN_DUAL_CORE=y 140CONFIG_BFIN_DUAL_CORE=y
139# CONFIG_BFIN533_EZKIT is not set 141CONFIG_MEM_MT48LC16M16A2TG_75=y
140# CONFIG_BFIN533_STAMP is not set 142CONFIG_IRQ_PLL_WAKEUP=7
141# CONFIG_BFIN537_STAMP is not set 143CONFIG_IRQ_SPORT0_ERROR=7
142# CONFIG_BFIN533_BLUETECHNIX_CM is not set 144CONFIG_IRQ_SPORT1_ERROR=7
143# CONFIG_BFIN537_BLUETECHNIX_CM is not set 145CONFIG_IRQ_SPI_ERROR=7
144# CONFIG_BFIN548_EZKIT is not set
145# CONFIG_BFIN561_BLUETECHNIX_CM is not set
146CONFIG_BFIN561_EZKIT=y 146CONFIG_BFIN561_EZKIT=y
147# CONFIG_BFIN561_TEPLA is not set 147# CONFIG_BFIN561_TEPLA is not set
148# CONFIG_PNAV10 is not set 148# CONFIG_BFIN561_BLUETECHNIX_CM is not set
149# CONFIG_GENERIC_BOARD is not set 149# CONFIG_GENERIC_BF561_BOARD is not set
150CONFIG_MEM_MT48LC16M16A2TG_75=y
151 150
152# 151#
153# BF561 Specific Configuration 152# BF561 Specific Configuration
@@ -170,15 +169,11 @@ CONFIG_BF561_COREB_RESET=y
170# 169#
171# Priority 170# Priority
172# 171#
173CONFIG_IRQ_PLL_WAKEUP=7
174CONFIG_IRQ_DMA1_ERROR=7 172CONFIG_IRQ_DMA1_ERROR=7
175CONFIG_IRQ_DMA2_ERROR=7 173CONFIG_IRQ_DMA2_ERROR=7
176CONFIG_IRQ_IMDMA_ERROR=7 174CONFIG_IRQ_IMDMA_ERROR=7
177CONFIG_IRQ_PPI0_ERROR=7 175CONFIG_IRQ_PPI0_ERROR=7
178CONFIG_IRQ_PPI1_ERROR=7 176CONFIG_IRQ_PPI1_ERROR=7
179CONFIG_IRQ_SPORT0_ERROR=7
180CONFIG_IRQ_SPORT1_ERROR=7
181CONFIG_IRQ_SPI_ERROR=7
182CONFIG_IRQ_UART_ERROR=7 177CONFIG_IRQ_UART_ERROR=7
183CONFIG_IRQ_RESERVED_ERROR=7 178CONFIG_IRQ_RESERVED_ERROR=7
184CONFIG_IRQ_DMA1_0=8 179CONFIG_IRQ_DMA1_0=8
@@ -243,7 +238,7 @@ CONFIG_CLKIN_HZ=30000000
243# CONFIG_BFIN_KERNEL_CLOCK is not set 238# CONFIG_BFIN_KERNEL_CLOCK is not set
244CONFIG_MAX_VCO_HZ=600000000 239CONFIG_MAX_VCO_HZ=600000000
245CONFIG_MIN_VCO_HZ=50000000 240CONFIG_MIN_VCO_HZ=50000000
246CONFIG_MAX_SCLK_HZ=133333333 241CONFIG_MAX_SCLK_HZ=133000000
247CONFIG_MIN_SCLK_HZ=27000000 242CONFIG_MIN_SCLK_HZ=27000000
248 243
249# 244#
@@ -300,6 +295,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
300# CONFIG_RESOURCES_64BIT is not set 295# CONFIG_RESOURCES_64BIT is not set
301CONFIG_ZONE_DMA_FLAG=1 296CONFIG_ZONE_DMA_FLAG=1
302CONFIG_LARGE_ALLOCS=y 297CONFIG_LARGE_ALLOCS=y
298# CONFIG_BFIN_GPTIMERS is not set
303CONFIG_BFIN_DMA_5XX=y 299CONFIG_BFIN_DMA_5XX=y
304# CONFIG_DMA_UNCACHED_2M is not set 300# CONFIG_DMA_UNCACHED_2M is not set
305CONFIG_DMA_UNCACHED_1M=y 301CONFIG_DMA_UNCACHED_1M=y
@@ -321,7 +317,7 @@ CONFIG_L1_MAX_PIECE=16
321# 317#
322 318
323# 319#
324# EBIU_AMBCTL Global Control 320# EBIU_AMGCTL Global Control
325# 321#
326CONFIG_C_AMCKEN=y 322CONFIG_C_AMCKEN=y
327CONFIG_C_CDPRIO=y 323CONFIG_C_CDPRIO=y
@@ -564,14 +560,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
564CONFIG_MTD_BF5xx=m 560CONFIG_MTD_BF5xx=m
565CONFIG_BFIN_FLASH_SIZE=0x0400000 561CONFIG_BFIN_FLASH_SIZE=0x0400000
566CONFIG_EBIU_FLASH_BASE=0x20000000 562CONFIG_EBIU_FLASH_BASE=0x20000000
567
568#
569# FLASH_EBIU_AMBCTL Control
570#
571CONFIG_BFIN_FLASH_BANK_0=0x7BB0
572CONFIG_BFIN_FLASH_BANK_1=0x7BB0
573CONFIG_BFIN_FLASH_BANK_2=0x7BB0
574CONFIG_BFIN_FLASH_BANK_3=0x7BB0
575# CONFIG_MTD_UCLINUX is not set 563# CONFIG_MTD_UCLINUX is not set
576# CONFIG_MTD_PLATRAM is not set 564# CONFIG_MTD_PLATRAM is not set
577 565
@@ -660,6 +648,7 @@ CONFIG_SMC91X=y
660# CONFIG_DM9000 is not set 648# CONFIG_DM9000 is not set
661CONFIG_NETDEV_1000=y 649CONFIG_NETDEV_1000=y
662CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
651# CONFIG_AX88180 is not set
663 652
664# 653#
665# Wireless LAN 654# Wireless LAN
@@ -721,9 +710,9 @@ CONFIG_INPUT_EVDEV=m
721# 710#
722# CONFIG_AD9960 is not set 711# CONFIG_AD9960 is not set
723# CONFIG_SPI_ADC_BF533 is not set 712# CONFIG_SPI_ADC_BF533 is not set
724# CONFIG_BFIN_PFLAGS is not set 713# CONFIG_BF5xx_PFLAGS is not set
725# CONFIG_BF5xx_PPIFCD is not set 714# CONFIG_BF5xx_PPIFCD is not set
726# CONFIG_BF5xx_TIMERS is not set 715# CONFIG_BFIN_SIMPLE_TIMER is not set
727# CONFIG_BF5xx_PPI is not set 716# CONFIG_BF5xx_PPI is not set
728# CONFIG_BFIN_SPORT is not set 717# CONFIG_BFIN_SPORT is not set
729# CONFIG_BFIN_TIMER_LATENCY is not set 718# CONFIG_BFIN_TIMER_LATENCY is not set
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
new file mode 100644
index 000000000000..18cbb8c3c373
--- /dev/null
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -0,0 +1,1160 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.12
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_TIME is not set
17CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set
41# CONFIG_AUDIT is not set
42# CONFIG_IKCONFIG is not set
43CONFIG_LOG_BUF_SHIFT=14
44CONFIG_SYSFS_DEPRECATED=y
45# CONFIG_RELAY is not set
46# CONFIG_BLK_DEV_INITRD is not set
47# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
48CONFIG_SYSCTL=y
49CONFIG_EMBEDDED=y
50CONFIG_UID16=y
51CONFIG_SYSCTL_SYSCALL=y
52CONFIG_KALLSYMS=y
53# CONFIG_KALLSYMS_EXTRA_PASS is not set
54CONFIG_HOTPLUG=y
55CONFIG_PRINTK=y
56CONFIG_BUG=y
57CONFIG_ELF_CORE=y
58CONFIG_BASE_FULL=y
59CONFIG_FUTEX=y
60CONFIG_ANON_INODES=y
61CONFIG_EPOLL=y
62CONFIG_SIGNALFD=y
63CONFIG_EVENTFD=y
64CONFIG_VM_EVENT_COUNTERS=y
65CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
66# CONFIG_NP2 is not set
67CONFIG_SLAB=y
68# CONFIG_SLUB is not set
69# CONFIG_SLOB is not set
70CONFIG_RT_MUTEXES=y
71CONFIG_TINY_SHMEM=y
72CONFIG_BASE_SMALL=0
73
74#
75# Loadable module support
76#
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83
84#
85# Block layer
86#
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91
92#
93# IO Schedulers
94#
95CONFIG_IOSCHED_NOOP=y
96CONFIG_IOSCHED_AS=y
97# CONFIG_IOSCHED_DEADLINE is not set
98CONFIG_IOSCHED_CFQ=y
99CONFIG_DEFAULT_AS=y
100# CONFIG_DEFAULT_DEADLINE is not set
101# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_PREEMPT_NONE=y
105# CONFIG_PREEMPT_VOLUNTARY is not set
106# CONFIG_PREEMPT is not set
107
108#
109# Blackfin Processor Options
110#
111
112#
113# Processor and Board Settings
114#
115# CONFIG_BF522 is not set
116# CONFIG_BF525 is not set
117# CONFIG_BF527 is not set
118# CONFIG_BF531 is not set
119CONFIG_BF532=y
120# CONFIG_BF533 is not set
121# CONFIG_BF534 is not set
122# CONFIG_BF536 is not set
123# CONFIG_BF537 is not set
124# CONFIG_BF542 is not set
125# CONFIG_BF544 is not set
126# CONFIG_BF547 is not set
127# CONFIG_BF548 is not set
128# CONFIG_BF549 is not set
129# CONFIG_BF561 is not set
130# CONFIG_BF_REV_0_0 is not set
131# CONFIG_BF_REV_0_1 is not set
132# CONFIG_BF_REV_0_2 is not set
133# CONFIG_BF_REV_0_3 is not set
134# CONFIG_BF_REV_0_4 is not set
135CONFIG_BF_REV_0_5=y
136# CONFIG_BF_REV_ANY is not set
137# CONFIG_BF_REV_NONE is not set
138CONFIG_BF53x=y
139CONFIG_BFIN_SINGLE_CORE=y
140CONFIG_MEM_MT48LC16M16A2TG_75=y
141# CONFIG_BFIN533_EZKIT is not set
142# CONFIG_BFIN533_STAMP is not set
143# CONFIG_BFIN533_BLUETECHNIX_CM is not set
144CONFIG_H8606_HVSISTEMAS=y
145# CONFIG_GENERIC_BF533_BOARD is not set
146
147#
148# BF533/2/1 Specific Configuration
149#
150
151#
152# Interrupt Priority Assignment
153#
154
155#
156# Priority
157#
158CONFIG_UART_ERROR=7
159CONFIG_SPORT0_ERROR=7
160CONFIG_SPI_ERROR=7
161CONFIG_SPORT1_ERROR=7
162CONFIG_PPI_ERROR=7
163CONFIG_DMA_ERROR=7
164CONFIG_PLLWAKE_ERROR=7
165CONFIG_RTC_ERROR=8
166CONFIG_DMA0_PPI=8
167CONFIG_DMA1_SPORT0RX=9
168CONFIG_DMA2_SPORT0TX=9
169CONFIG_DMA3_SPORT1RX=9
170CONFIG_DMA4_SPORT1TX=9
171CONFIG_DMA5_SPI=10
172CONFIG_DMA6_UARTRX=10
173CONFIG_DMA7_UARTTX=10
174CONFIG_TIMER0=11
175CONFIG_TIMER1=11
176CONFIG_TIMER2=11
177CONFIG_PFA=12
178CONFIG_PFB=12
179CONFIG_MEMDMA0=13
180CONFIG_MEMDMA1=13
181CONFIG_WDTIMER=13
182
183#
184# Board customizations
185#
186# CONFIG_CMDLINE_BOOL is not set
187
188#
189# Clock/PLL Setup
190#
191CONFIG_CLKIN_HZ=25000000
192# CONFIG_BFIN_KERNEL_CLOCK is not set
193CONFIG_MAX_VCO_HZ=400000000
194CONFIG_MIN_VCO_HZ=50000000
195CONFIG_MAX_SCLK_HZ=133000000
196CONFIG_MIN_SCLK_HZ=27000000
197
198#
199# Kernel Timer/Scheduler
200#
201# CONFIG_HZ_100 is not set
202CONFIG_HZ_250=y
203# CONFIG_HZ_300 is not set
204# CONFIG_HZ_1000 is not set
205CONFIG_HZ=250
206
207#
208# Memory Setup
209#
210CONFIG_MEM_SIZE=32
211CONFIG_MEM_ADD_WIDTH=9
212CONFIG_BOOT_LOAD=0x1000
213CONFIG_BFIN_SCRATCH_REG_RETN=y
214# CONFIG_BFIN_SCRATCH_REG_RETE is not set
215# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
216
217#
218# Blackfin Kernel Optimizations
219#
220
221#
222# Memory Optimizations
223#
224CONFIG_I_ENTRY_L1=y
225CONFIG_EXCPT_IRQ_SYSC_L1=y
226CONFIG_DO_IRQ_L1=y
227CONFIG_CORE_TIMER_IRQ_L1=y
228CONFIG_IDLE_L1=y
229CONFIG_SCHEDULE_L1=y
230CONFIG_ARITHMETIC_OPS_L1=y
231CONFIG_ACCESS_OK_L1=y
232CONFIG_MEMSET_L1=y
233CONFIG_MEMCPY_L1=y
234CONFIG_SYS_BFIN_SPINLOCK_L1=y
235# CONFIG_IP_CHECKSUM_L1 is not set
236# CONFIG_CACHELINE_ALIGNED_L1 is not set
237# CONFIG_SYSCALL_TAB_L1 is not set
238# CONFIG_CPLB_SWITCH_TAB_L1 is not set
239CONFIG_RAMKERNEL=y
240# CONFIG_ROMKERNEL is not set
241CONFIG_SELECT_MEMORY_MODEL=y
242CONFIG_FLATMEM_MANUAL=y
243# CONFIG_DISCONTIGMEM_MANUAL is not set
244# CONFIG_SPARSEMEM_MANUAL is not set
245CONFIG_FLATMEM=y
246CONFIG_FLAT_NODE_MEM_MAP=y
247# CONFIG_SPARSEMEM_STATIC is not set
248CONFIG_SPLIT_PTLOCK_CPUS=4
249# CONFIG_RESOURCES_64BIT is not set
250CONFIG_ZONE_DMA_FLAG=1
251CONFIG_LARGE_ALLOCS=y
252CONFIG_BFIN_GPTIMERS=y
253CONFIG_BFIN_DMA_5XX=y
254# CONFIG_DMA_UNCACHED_2M is not set
255CONFIG_DMA_UNCACHED_1M=y
256# CONFIG_DMA_UNCACHED_NONE is not set
257
258#
259# Cache Support
260#
261CONFIG_BFIN_ICACHE=y
262CONFIG_BFIN_DCACHE=y
263# CONFIG_BFIN_DCACHE_BANKA is not set
264CONFIG_BFIN_ICACHE_LOCK=y
265CONFIG_BFIN_WB=y
266# CONFIG_BFIN_WT is not set
267CONFIG_L1_MAX_PIECE=16
268
269#
270# Asynchonous Memory Configuration
271#
272
273#
274# EBIU_AMGCTL Global Control
275#
276CONFIG_C_AMCKEN=y
277CONFIG_C_CDPRIO=y
278# CONFIG_C_AMBEN is not set
279# CONFIG_C_AMBEN_B0 is not set
280# CONFIG_C_AMBEN_B0_B1 is not set
281# CONFIG_C_AMBEN_B0_B1_B2 is not set
282CONFIG_C_AMBEN_ALL=y
283
284#
285# EBIU_AMBCTL Control
286#
287CONFIG_BANK_0=0x7BB0
288CONFIG_BANK_1=0x7BB0
289CONFIG_BANK_2=0x7BB0
290CONFIG_BANK_3=0x99B3
291
292#
293# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
294#
295# CONFIG_PCI is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set
297
298#
299# PCCARD (PCMCIA/CardBus) support
300#
301# CONFIG_PCCARD is not set
302
303#
304# Executable file formats
305#
306CONFIG_BINFMT_ELF_FDPIC=y
307CONFIG_BINFMT_FLAT=y
308CONFIG_BINFMT_ZFLAT=y
309# CONFIG_BINFMT_SHARED_FLAT is not set
310# CONFIG_BINFMT_MISC is not set
311
312#
313# Power management options
314#
315CONFIG_PM=y
316CONFIG_PM_LEGACY=y
317# CONFIG_PM_DEBUG is not set
318# CONFIG_PM_SYSFS_DEPRECATED is not set
319CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y
320# CONFIG_PM_WAKEUP_BY_GPIO is not set
321# CONFIG_PM_WAKEUP_GPIO_API is not set
322CONFIG_PM_WAKEUP_SIC_IWR=0x100000
323
324#
325# Networking
326#
327CONFIG_NET=y
328
329#
330# Networking options
331#
332CONFIG_PACKET=y
333# CONFIG_PACKET_MMAP is not set
334CONFIG_UNIX=y
335CONFIG_XFRM=y
336# CONFIG_XFRM_USER is not set
337# CONFIG_XFRM_SUB_POLICY is not set
338# CONFIG_XFRM_MIGRATE is not set
339# CONFIG_NET_KEY is not set
340CONFIG_INET=y
341# CONFIG_IP_MULTICAST is not set
342# CONFIG_IP_ADVANCED_ROUTER is not set
343CONFIG_IP_FIB_HASH=y
344CONFIG_IP_PNP=y
345# CONFIG_IP_PNP_DHCP is not set
346# CONFIG_IP_PNP_BOOTP is not set
347# CONFIG_IP_PNP_RARP is not set
348# CONFIG_NET_IPIP is not set
349# CONFIG_NET_IPGRE is not set
350# CONFIG_ARPD is not set
351CONFIG_SYN_COOKIES=y
352# CONFIG_INET_AH is not set
353# CONFIG_INET_ESP is not set
354# CONFIG_INET_IPCOMP is not set
355# CONFIG_INET_XFRM_TUNNEL is not set
356# CONFIG_INET_TUNNEL is not set
357CONFIG_INET_XFRM_MODE_TRANSPORT=y
358CONFIG_INET_XFRM_MODE_TUNNEL=y
359CONFIG_INET_XFRM_MODE_BEET=y
360CONFIG_INET_DIAG=y
361CONFIG_INET_TCP_DIAG=y
362# CONFIG_TCP_CONG_ADVANCED is not set
363CONFIG_TCP_CONG_CUBIC=y
364CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_TCP_MD5SIG is not set
366# CONFIG_IPV6 is not set
367# CONFIG_INET6_XFRM_TUNNEL is not set
368# CONFIG_INET6_TUNNEL is not set
369# CONFIG_NETLABEL is not set
370# CONFIG_NETWORK_SECMARK is not set
371# CONFIG_NETFILTER is not set
372# CONFIG_IP_DCCP is not set
373# CONFIG_IP_SCTP is not set
374# CONFIG_TIPC is not set
375# CONFIG_ATM is not set
376# CONFIG_BRIDGE is not set
377# CONFIG_VLAN_8021Q is not set
378# CONFIG_DECNET is not set
379# CONFIG_LLC2 is not set
380# CONFIG_IPX is not set
381# CONFIG_ATALK is not set
382# CONFIG_X25 is not set
383# CONFIG_LAPB is not set
384# CONFIG_ECONET is not set
385# CONFIG_WAN_ROUTER is not set
386
387#
388# QoS and/or fair queueing
389#
390# CONFIG_NET_SCHED is not set
391
392#
393# Network testing
394#
395# CONFIG_NET_PKTGEN is not set
396# CONFIG_HAMRADIO is not set
397CONFIG_IRDA=m
398
399#
400# IrDA protocols
401#
402CONFIG_IRLAN=m
403CONFIG_IRCOMM=m
404# CONFIG_IRDA_ULTRA is not set
405
406#
407# IrDA options
408#
409CONFIG_IRDA_CACHE_LAST_LSAP=y
410# CONFIG_IRDA_FAST_RR is not set
411# CONFIG_IRDA_DEBUG is not set
412
413#
414# Infrared-port device drivers
415#
416
417#
418# SIR device drivers
419#
420CONFIG_IRTTY_SIR=m
421
422#
423# Dongle support
424#
425# CONFIG_DONGLE is not set
426
427#
428# Old SIR device drivers
429#
430# CONFIG_IRPORT_SIR is not set
431
432#
433# Old Serial dongle support
434#
435
436#
437# FIR device drivers
438#
439# CONFIG_BT is not set
440# CONFIG_AF_RXRPC is not set
441
442#
443# Wireless
444#
445# CONFIG_CFG80211 is not set
446# CONFIG_WIRELESS_EXT is not set
447# CONFIG_MAC80211 is not set
448# CONFIG_IEEE80211 is not set
449# CONFIG_RFKILL is not set
450
451#
452# Device Drivers
453#
454
455#
456# Generic Driver Options
457#
458CONFIG_STANDALONE=y
459CONFIG_PREVENT_FIRMWARE_BUILD=y
460# CONFIG_FW_LOADER is not set
461# CONFIG_SYS_HYPERVISOR is not set
462
463#
464# Connector - unified userspace <-> kernelspace linker
465#
466# CONFIG_CONNECTOR is not set
467CONFIG_MTD=y
468# CONFIG_MTD_DEBUG is not set
469# CONFIG_MTD_CONCAT is not set
470CONFIG_MTD_PARTITIONS=y
471# CONFIG_MTD_REDBOOT_PARTS is not set
472# CONFIG_MTD_CMDLINE_PARTS is not set
473
474#
475# User Modules And Translation Layers
476#
477CONFIG_MTD_CHAR=y
478CONFIG_MTD_BLKDEVS=y
479CONFIG_MTD_BLOCK=y
480# CONFIG_FTL is not set
481# CONFIG_NFTL is not set
482# CONFIG_INFTL is not set
483# CONFIG_RFD_FTL is not set
484# CONFIG_SSFDC is not set
485
486#
487# RAM/ROM/Flash chip drivers
488#
489# CONFIG_MTD_CFI is not set
490# CONFIG_MTD_JEDECPROBE is not set
491CONFIG_MTD_MAP_BANK_WIDTH_1=y
492CONFIG_MTD_MAP_BANK_WIDTH_2=y
493CONFIG_MTD_MAP_BANK_WIDTH_4=y
494# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
495# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
496# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
497CONFIG_MTD_CFI_I1=y
498CONFIG_MTD_CFI_I2=y
499# CONFIG_MTD_CFI_I4 is not set
500# CONFIG_MTD_CFI_I8 is not set
501CONFIG_MTD_RAM=y
502CONFIG_MTD_ROM=y
503# CONFIG_MTD_ABSENT is not set
504
505#
506# Mapping drivers for chip access
507#
508CONFIG_MTD_COMPLEX_MAPPINGS=y
509# CONFIG_MTD_PHYSMAP is not set
510# CONFIG_MTD_BF5xx is not set
511# CONFIG_MTD_UCLINUX is not set
512# CONFIG_MTD_PLATRAM is not set
513
514#
515# Self-contained MTD device drivers
516#
517# CONFIG_MTD_DATAFLASH is not set
518CONFIG_MTD_M25P80=y
519CONFIG_M25PXX_USE_FAST_READ=y
520# CONFIG_MTD_SLRAM is not set
521# CONFIG_MTD_PHRAM is not set
522# CONFIG_MTD_MTDRAM is not set
523# CONFIG_MTD_BLOCK2MTD is not set
524
525#
526# Disk-On-Chip Device Drivers
527#
528# CONFIG_MTD_DOC2000 is not set
529# CONFIG_MTD_DOC2001 is not set
530# CONFIG_MTD_DOC2001PLUS is not set
531# CONFIG_MTD_NAND is not set
532# CONFIG_MTD_ONENAND is not set
533
534#
535# UBI - Unsorted block images
536#
537# CONFIG_MTD_UBI is not set
538
539#
540# Parallel port support
541#
542# CONFIG_PARPORT is not set
543
544#
545# Plug and Play support
546#
547# CONFIG_PNPACPI is not set
548
549#
550# Block devices
551#
552# CONFIG_BLK_DEV_COW_COMMON is not set
553# CONFIG_BLK_DEV_LOOP is not set
554# CONFIG_BLK_DEV_NBD is not set
555CONFIG_BLK_DEV_RAM=y
556CONFIG_BLK_DEV_RAM_COUNT=16
557CONFIG_BLK_DEV_RAM_SIZE=4096
558CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
559# CONFIG_CDROM_PKTCDVD is not set
560# CONFIG_ATA_OVER_ETH is not set
561
562#
563# Misc devices
564#
565# CONFIG_IDE is not set
566
567#
568# SCSI device support
569#
570# CONFIG_RAID_ATTRS is not set
571# CONFIG_SCSI is not set
572# CONFIG_SCSI_NETLINK is not set
573# CONFIG_ATA is not set
574
575#
576# Multi-device support (RAID and LVM)
577#
578# CONFIG_MD is not set
579
580#
581# Network device support
582#
583CONFIG_NETDEVICES=y
584# CONFIG_DUMMY is not set
585# CONFIG_BONDING is not set
586# CONFIG_EQUALIZER is not set
587# CONFIG_TUN is not set
588# CONFIG_PHYLIB is not set
589
590#
591# Ethernet (10 or 100Mbit)
592#
593CONFIG_NET_ETHERNET=y
594CONFIG_MII=y
595# CONFIG_SMC91X is not set
596# CONFIG_SMSC911X is not set
597CONFIG_DM9000=y
598CONFIG_NETDEV_1000=y
599CONFIG_NETDEV_10000=y
600# CONFIG_AX88180 is not set
601
602#
603# Wireless LAN
604#
605# CONFIG_WLAN_PRE80211 is not set
606# CONFIG_WLAN_80211 is not set
607# CONFIG_WAN is not set
608# CONFIG_PPP is not set
609# CONFIG_SLIP is not set
610# CONFIG_SHAPER is not set
611# CONFIG_NETCONSOLE is not set
612# CONFIG_NETPOLL is not set
613# CONFIG_NET_POLL_CONTROLLER is not set
614
615#
616# ISDN subsystem
617#
618# CONFIG_ISDN is not set
619
620#
621# Telephony Support
622#
623# CONFIG_PHONE is not set
624
625#
626# Input device support
627#
628CONFIG_INPUT=y
629# CONFIG_INPUT_FF_MEMLESS is not set
630# CONFIG_INPUT_POLLDEV is not set
631
632#
633# Userland interfaces
634#
635# CONFIG_INPUT_MOUSEDEV is not set
636# CONFIG_INPUT_JOYDEV is not set
637# CONFIG_INPUT_TSDEV is not set
638CONFIG_INPUT_EVDEV=m
639# CONFIG_INPUT_EVBUG is not set
640
641#
642# Input Device Drivers
643#
644# CONFIG_INPUT_KEYBOARD is not set
645# CONFIG_INPUT_MOUSE is not set
646# CONFIG_INPUT_JOYSTICK is not set
647# CONFIG_INPUT_TABLET is not set
648# CONFIG_INPUT_TOUCHSCREEN is not set
649CONFIG_INPUT_MISC=y
650# CONFIG_INPUT_ATI_REMOTE is not set
651# CONFIG_INPUT_ATI_REMOTE2 is not set
652# CONFIG_INPUT_KEYSPAN_REMOTE is not set
653# CONFIG_INPUT_POWERMATE is not set
654# CONFIG_INPUT_YEALINK is not set
655# CONFIG_INPUT_UINPUT is not set
656# CONFIG_BF53X_PFBUTTONS is not set
657
658#
659# Hardware I/O ports
660#
661# CONFIG_SERIO is not set
662# CONFIG_GAMEPORT is not set
663
664#
665# Character devices
666#
667# CONFIG_AD9960 is not set
668# CONFIG_SPI_ADC_BF533 is not set
669CONFIG_BF5xx_PFLAGS=y
670# CONFIG_BF5xx_PFLAGS_PROC is not set
671# CONFIG_BF5xx_PPIFCD is not set
672CONFIG_BFIN_SIMPLE_TIMER=y
673# CONFIG_BF5xx_PPI is not set
674CONFIG_BFIN_SPORT=y
675CONFIG_BFIN_TIMER_LATENCY=y
676# CONFIG_AD5304 is not set
677# CONFIG_BF5xx_FBDMA is not set
678# CONFIG_VT is not set
679# CONFIG_SERIAL_NONSTANDARD is not set
680
681#
682# Serial drivers
683#
684# CONFIG_SERIAL_8250 is not set
685
686#
687# Non-8250 serial port support
688#
689CONFIG_SERIAL_BFIN=y
690CONFIG_SERIAL_BFIN_CONSOLE=y
691CONFIG_SERIAL_BFIN_DMA=y
692# CONFIG_SERIAL_BFIN_PIO is not set
693CONFIG_SERIAL_BFIN_UART0=y
694# CONFIG_BFIN_UART0_CTSRTS is not set
695# CONFIG_SERIAL_BFIN_UART1 is not set
696CONFIG_SERIAL_CORE=y
697CONFIG_SERIAL_CORE_CONSOLE=y
698# CONFIG_SERIAL_BFIN_SPORT is not set
699CONFIG_UNIX98_PTYS=y
700# CONFIG_LEGACY_PTYS is not set
701
702#
703# CAN, the car bus and industrial fieldbus
704#
705# CONFIG_CAN4LINUX is not set
706
707#
708# IPMI
709#
710# CONFIG_IPMI_HANDLER is not set
711CONFIG_WATCHDOG=y
712# CONFIG_WATCHDOG_NOWAYOUT is not set
713
714#
715# Watchdog Device Drivers
716#
717# CONFIG_SOFT_WATCHDOG is not set
718# CONFIG_BFIN_WDT is not set
719# CONFIG_HW_RANDOM is not set
720# CONFIG_GEN_RTC is not set
721CONFIG_BLACKFIN_DPMC=y
722# CONFIG_R3964 is not set
723# CONFIG_RAW_DRIVER is not set
724
725#
726# TPM devices
727#
728# CONFIG_TCG_TPM is not set
729# CONFIG_I2C is not set
730
731#
732# SPI support
733#
734CONFIG_SPI=y
735CONFIG_SPI_MASTER=y
736
737#
738# SPI Master Controller Drivers
739#
740CONFIG_SPI_BFIN=y
741# CONFIG_SPI_BITBANG is not set
742
743#
744# SPI Protocol Masters
745#
746CONFIG_SPI_AT25=y
747CONFIG_SPI_SPIDEV=y
748
749#
750# Dallas's 1-wire bus
751#
752# CONFIG_W1 is not set
753CONFIG_HWMON=y
754# CONFIG_HWMON_VID is not set
755# CONFIG_SENSORS_ABITUGURU is not set
756# CONFIG_SENSORS_F71805F is not set
757# CONFIG_SENSORS_LM70 is not set
758# CONFIG_SENSORS_PC87427 is not set
759# CONFIG_SENSORS_SMSC47M1 is not set
760# CONFIG_SENSORS_SMSC47B397 is not set
761# CONFIG_SENSORS_VT1211 is not set
762# CONFIG_SENSORS_W83627HF is not set
763# CONFIG_HWMON_DEBUG_CHIP is not set
764
765#
766# Multifunction device drivers
767#
768# CONFIG_MFD_SM501 is not set
769
770#
771# Multimedia devices
772#
773# CONFIG_VIDEO_DEV is not set
774# CONFIG_DVB_CORE is not set
775CONFIG_DAB=y
776
777#
778# Graphics support
779#
780# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
781
782#
783# Display device support
784#
785# CONFIG_DISPLAY_SUPPORT is not set
786# CONFIG_VGASTATE is not set
787# CONFIG_FB is not set
788
789#
790# Sound
791#
792CONFIG_SOUND=m
793
794#
795# Advanced Linux Sound Architecture
796#
797CONFIG_SND=m
798CONFIG_SND_TIMER=m
799CONFIG_SND_PCM=m
800# CONFIG_SND_SEQUENCER is not set
801CONFIG_SND_OSSEMUL=y
802CONFIG_SND_MIXER_OSS=m
803CONFIG_SND_PCM_OSS=m
804CONFIG_SND_PCM_OSS_PLUGINS=y
805# CONFIG_SND_DYNAMIC_MINORS is not set
806CONFIG_SND_SUPPORT_OLD_API=y
807CONFIG_SND_VERBOSE_PROCFS=y
808# CONFIG_SND_VERBOSE_PRINTK is not set
809# CONFIG_SND_DEBUG is not set
810
811#
812# Generic devices
813#
814# CONFIG_SND_DUMMY is not set
815# CONFIG_SND_MTPAV is not set
816# CONFIG_SND_SERIAL_U16550 is not set
817# CONFIG_SND_MPU401 is not set
818
819#
820# ALSA Blackfin devices
821#
822CONFIG_SND_BLACKFIN_AD1836=m
823CONFIG_SND_BLACKFIN_AD1836_TDM=y
824# CONFIG_SND_BLACKFIN_AD1836_I2S is not set
825CONFIG_SND_BLACKFIN_AD1836_MULSUB=y
826# CONFIG_SND_BLACKFIN_AD1836_5P1 is not set
827CONFIG_SND_BLACKFIN_SPORT=0
828CONFIG_SND_BLACKFIN_SPI_PFBIT=4
829# CONFIG_SND_BFIN_AD73311 is not set
830
831#
832# System on Chip audio support
833#
834# CONFIG_SND_SOC is not set
835
836#
837# Open Sound System
838#
839# CONFIG_SOUND_PRIME is not set
840
841#
842# HID Devices
843#
844CONFIG_HID=y
845# CONFIG_HID_DEBUG is not set
846
847#
848# USB support
849#
850CONFIG_USB_ARCH_HAS_HCD=y
851# CONFIG_USB_ARCH_HAS_OHCI is not set
852# CONFIG_USB_ARCH_HAS_EHCI is not set
853# CONFIG_USB is not set
854
855#
856# Enable Host or Gadget support to see Inventra options
857#
858
859#
860# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
861#
862
863#
864# USB Gadget Support
865#
866# CONFIG_USB_GADGET is not set
867# CONFIG_MMC is not set
868
869#
870# LED devices
871#
872# CONFIG_NEW_LEDS is not set
873
874#
875# LED drivers
876#
877
878#
879# LED Triggers
880#
881
882#
883# InfiniBand support
884#
885
886#
887# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
888#
889
890#
891# Real Time Clock
892#
893CONFIG_RTC_LIB=y
894CONFIG_RTC_CLASS=y
895CONFIG_RTC_HCTOSYS=y
896CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
897# CONFIG_RTC_DEBUG is not set
898
899#
900# RTC interfaces
901#
902CONFIG_RTC_INTF_SYSFS=y
903CONFIG_RTC_INTF_PROC=y
904CONFIG_RTC_INTF_DEV=y
905CONFIG_RTC_INTF_DEV_UIE_EMUL=y
906# CONFIG_RTC_DRV_TEST is not set
907
908#
909# I2C RTC drivers
910#
911
912#
913# SPI RTC drivers
914#
915# CONFIG_RTC_DRV_RS5C348 is not set
916# CONFIG_RTC_DRV_MAX6902 is not set
917
918#
919# Platform RTC drivers
920#
921# CONFIG_RTC_DRV_DS1553 is not set
922# CONFIG_RTC_DRV_DS1742 is not set
923# CONFIG_RTC_DRV_M48T86 is not set
924# CONFIG_RTC_DRV_V3020 is not set
925
926#
927# on-CPU RTC drivers
928#
929CONFIG_RTC_DRV_BFIN=y
930
931#
932# DMA Engine support
933#
934# CONFIG_DMA_ENGINE is not set
935
936#
937# DMA Clients
938#
939
940#
941# DMA Devices
942#
943
944#
945# PBX support
946#
947# CONFIG_PBX is not set
948
949#
950# File systems
951#
952CONFIG_EXT2_FS=y
953CONFIG_EXT2_FS_XATTR=y
954# CONFIG_EXT2_FS_POSIX_ACL is not set
955# CONFIG_EXT2_FS_SECURITY is not set
956# CONFIG_EXT3_FS is not set
957# CONFIG_EXT4DEV_FS is not set
958CONFIG_FS_MBCACHE=y
959# CONFIG_REISERFS_FS is not set
960# CONFIG_JFS_FS is not set
961# CONFIG_FS_POSIX_ACL is not set
962# CONFIG_XFS_FS is not set
963# CONFIG_GFS2_FS is not set
964# CONFIG_OCFS2_FS is not set
965# CONFIG_MINIX_FS is not set
966# CONFIG_ROMFS_FS is not set
967CONFIG_INOTIFY=y
968CONFIG_INOTIFY_USER=y
969# CONFIG_QUOTA is not set
970CONFIG_DNOTIFY=y
971# CONFIG_AUTOFS_FS is not set
972# CONFIG_AUTOFS4_FS is not set
973# CONFIG_FUSE_FS is not set
974
975#
976# CD-ROM/DVD Filesystems
977#
978# CONFIG_ISO9660_FS is not set
979# CONFIG_UDF_FS is not set
980
981#
982# DOS/FAT/NT Filesystems
983#
984# CONFIG_MSDOS_FS is not set
985# CONFIG_VFAT_FS is not set
986# CONFIG_NTFS_FS is not set
987
988#
989# Pseudo filesystems
990#
991CONFIG_PROC_FS=y
992CONFIG_PROC_SYSCTL=y
993CONFIG_SYSFS=y
994# CONFIG_TMPFS is not set
995# CONFIG_HUGETLB_PAGE is not set
996CONFIG_RAMFS=y
997# CONFIG_CONFIGFS_FS is not set
998
999#
1000# Miscellaneous filesystems
1001#
1002# CONFIG_ADFS_FS is not set
1003# CONFIG_AFFS_FS is not set
1004# CONFIG_HFS_FS is not set
1005# CONFIG_HFSPLUS_FS is not set
1006# CONFIG_BEFS_FS is not set
1007# CONFIG_BFS_FS is not set
1008# CONFIG_EFS_FS is not set
1009# CONFIG_YAFFS_FS is not set
1010CONFIG_JFFS2_FS=y
1011CONFIG_JFFS2_FS_DEBUG=0
1012CONFIG_JFFS2_FS_WRITEBUFFER=y
1013# CONFIG_JFFS2_SUMMARY is not set
1014# CONFIG_JFFS2_FS_XATTR is not set
1015# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1016CONFIG_JFFS2_ZLIB=y
1017CONFIG_JFFS2_RTIME=y
1018# CONFIG_JFFS2_RUBIN is not set
1019# CONFIG_CRAMFS is not set
1020# CONFIG_VXFS_FS is not set
1021# CONFIG_HPFS_FS is not set
1022# CONFIG_QNX4FS_FS is not set
1023# CONFIG_SYSV_FS is not set
1024# CONFIG_UFS_FS is not set
1025
1026#
1027# Network File Systems
1028#
1029CONFIG_NFS_FS=m
1030CONFIG_NFS_V3=y
1031# CONFIG_NFS_V3_ACL is not set
1032# CONFIG_NFS_V4 is not set
1033# CONFIG_NFS_DIRECTIO is not set
1034# CONFIG_NFSD is not set
1035CONFIG_LOCKD=m
1036CONFIG_LOCKD_V4=y
1037CONFIG_NFS_COMMON=y
1038CONFIG_SUNRPC=m
1039# CONFIG_SUNRPC_BIND34 is not set
1040# CONFIG_RPCSEC_GSS_KRB5 is not set
1041# CONFIG_RPCSEC_GSS_SPKM3 is not set
1042# CONFIG_SMB_FS is not set
1043# CONFIG_CIFS is not set
1044# CONFIG_NCP_FS is not set
1045# CONFIG_CODA_FS is not set
1046# CONFIG_AFS_FS is not set
1047# CONFIG_9P_FS is not set
1048
1049#
1050# Partition Types
1051#
1052# CONFIG_PARTITION_ADVANCED is not set
1053CONFIG_MSDOS_PARTITION=y
1054
1055#
1056# Native Language Support
1057#
1058CONFIG_NLS=m
1059CONFIG_NLS_DEFAULT="iso8859-1"
1060# CONFIG_NLS_CODEPAGE_437 is not set
1061# CONFIG_NLS_CODEPAGE_737 is not set
1062# CONFIG_NLS_CODEPAGE_775 is not set
1063# CONFIG_NLS_CODEPAGE_850 is not set
1064# CONFIG_NLS_CODEPAGE_852 is not set
1065# CONFIG_NLS_CODEPAGE_855 is not set
1066# CONFIG_NLS_CODEPAGE_857 is not set
1067# CONFIG_NLS_CODEPAGE_860 is not set
1068# CONFIG_NLS_CODEPAGE_861 is not set
1069# CONFIG_NLS_CODEPAGE_862 is not set
1070# CONFIG_NLS_CODEPAGE_863 is not set
1071# CONFIG_NLS_CODEPAGE_864 is not set
1072# CONFIG_NLS_CODEPAGE_865 is not set
1073# CONFIG_NLS_CODEPAGE_866 is not set
1074# CONFIG_NLS_CODEPAGE_869 is not set
1075# CONFIG_NLS_CODEPAGE_936 is not set
1076# CONFIG_NLS_CODEPAGE_950 is not set
1077# CONFIG_NLS_CODEPAGE_932 is not set
1078# CONFIG_NLS_CODEPAGE_949 is not set
1079# CONFIG_NLS_CODEPAGE_874 is not set
1080# CONFIG_NLS_ISO8859_8 is not set
1081# CONFIG_NLS_CODEPAGE_1250 is not set
1082# CONFIG_NLS_CODEPAGE_1251 is not set
1083# CONFIG_NLS_ASCII is not set
1084# CONFIG_NLS_ISO8859_1 is not set
1085# CONFIG_NLS_ISO8859_2 is not set
1086# CONFIG_NLS_ISO8859_3 is not set
1087# CONFIG_NLS_ISO8859_4 is not set
1088# CONFIG_NLS_ISO8859_5 is not set
1089# CONFIG_NLS_ISO8859_6 is not set
1090# CONFIG_NLS_ISO8859_7 is not set
1091# CONFIG_NLS_ISO8859_9 is not set
1092# CONFIG_NLS_ISO8859_13 is not set
1093# CONFIG_NLS_ISO8859_14 is not set
1094# CONFIG_NLS_ISO8859_15 is not set
1095# CONFIG_NLS_KOI8_R is not set
1096# CONFIG_NLS_KOI8_U is not set
1097# CONFIG_NLS_UTF8 is not set
1098
1099#
1100# Distributed Lock Manager
1101#
1102# CONFIG_DLM is not set
1103
1104#
1105# Profiling support
1106#
1107# CONFIG_PROFILING is not set
1108
1109#
1110# Kernel hacking
1111#
1112# CONFIG_PRINTK_TIME is not set
1113CONFIG_ENABLE_MUST_CHECK=y
1114# CONFIG_MAGIC_SYSRQ is not set
1115# CONFIG_UNUSED_SYMBOLS is not set
1116# CONFIG_DEBUG_FS is not set
1117# CONFIG_HEADERS_CHECK is not set
1118# CONFIG_DEBUG_KERNEL is not set
1119# CONFIG_DEBUG_BUGVERBOSE is not set
1120# CONFIG_DEBUG_MMRS is not set
1121CONFIG_DEBUG_HUNT_FOR_ZERO=y
1122CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1123CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
1124# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set
1125# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set
1126CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1127# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1128# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1129# CONFIG_EARLY_PRINTK is not set
1130CONFIG_CPLB_INFO=y
1131CONFIG_ACCESS_CHECK=y
1132
1133#
1134# Security options
1135#
1136# CONFIG_KEYS is not set
1137CONFIG_SECURITY=y
1138# CONFIG_SECURITY_NETWORK is not set
1139CONFIG_SECURITY_CAPABILITIES=y
1140
1141#
1142# Cryptographic options
1143#
1144# CONFIG_CRYPTO is not set
1145
1146#
1147# Library routines
1148#
1149CONFIG_BITREVERSE=y
1150CONFIG_CRC_CCITT=m
1151# CONFIG_CRC16 is not set
1152# CONFIG_CRC_ITU_T is not set
1153CONFIG_CRC32=y
1154# CONFIG_LIBCRC32C is not set
1155CONFIG_ZLIB_INFLATE=y
1156CONFIG_ZLIB_DEFLATE=y
1157CONFIG_PLIST=y
1158CONFIG_HAS_IOMEM=y
1159CONFIG_HAS_IOPORT=y
1160CONFIG_HAS_DMA=y
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index 3d403e0b82c2..25709f504d8f 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.6 3# Linux kernel version: 2.6.22.12
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -8,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
11CONFIG_BFIN=y
12CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
@@ -18,7 +17,6 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
19CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
20CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_IRQCHIP_DEMUX_GPIO=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 21
24# 22#
@@ -62,7 +60,6 @@ CONFIG_FUTEX=y
62CONFIG_ANON_INODES=y 60CONFIG_ANON_INODES=y
63CONFIG_EPOLL=y 61CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 62CONFIG_SIGNALFD=y
65CONFIG_TIMERFD=y
66CONFIG_EVENTFD=y 63CONFIG_EVENTFD=y
67CONFIG_VM_EVENT_COUNTERS=y 64CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=9 65CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=9
@@ -115,6 +112,9 @@ CONFIG_PREEMPT_VOLUNTARY=y
115# 112#
116# Processor and Board Settings 113# Processor and Board Settings
117# 114#
115# CONFIG_BF522 is not set
116# CONFIG_BF525 is not set
117# CONFIG_BF527 is not set
118# CONFIG_BF531 is not set 118# CONFIG_BF531 is not set
119# CONFIG_BF532 is not set 119# CONFIG_BF532 is not set
120# CONFIG_BF533 is not set 120# CONFIG_BF533 is not set
@@ -123,10 +123,12 @@ CONFIG_PREEMPT_VOLUNTARY=y
123CONFIG_BF537=y 123CONFIG_BF537=y
124# CONFIG_BF542 is not set 124# CONFIG_BF542 is not set
125# CONFIG_BF544 is not set 125# CONFIG_BF544 is not set
126# CONFIG_BF547 is not set
126# CONFIG_BF548 is not set 127# CONFIG_BF548 is not set
127# CONFIG_BF549 is not set 128# CONFIG_BF549 is not set
128# CONFIG_BF561 is not set 129# CONFIG_BF561 is not set
129# CONFIG_BF_REV_0_0 is not set 130# CONFIG_BF_REV_0_0 is not set
131# CONFIG_BF_REV_0_1 is not set
130CONFIG_BF_REV_0_2=y 132CONFIG_BF_REV_0_2=y
131# CONFIG_BF_REV_0_3 is not set 133# CONFIG_BF_REV_0_3 is not set
132# CONFIG_BF_REV_0_4 is not set 134# CONFIG_BF_REV_0_4 is not set
@@ -135,33 +137,8 @@ CONFIG_BF_REV_0_2=y
135# CONFIG_BF_REV_NONE is not set 137# CONFIG_BF_REV_NONE is not set
136CONFIG_BF53x=y 138CONFIG_BF53x=y
137CONFIG_BFIN_SINGLE_CORE=y 139CONFIG_BFIN_SINGLE_CORE=y
138# CONFIG_BFIN533_EZKIT is not set
139# CONFIG_BFIN533_STAMP is not set
140# CONFIG_BFIN537_STAMP is not set
141# CONFIG_BFIN533_BLUETECHNIX_CM is not set
142# CONFIG_BFIN537_BLUETECHNIX_CM is not set
143# CONFIG_BFIN548_EZKIT is not set
144# CONFIG_BFIN561_BLUETECHNIX_CM is not set
145# CONFIG_BFIN561_EZKIT is not set
146# CONFIG_BFIN561_TEPLA is not set
147CONFIG_PNAV10=y
148# CONFIG_GENERIC_BOARD is not set
149CONFIG_MEM_MT48LC32M8A2_75=y 140CONFIG_MEM_MT48LC32M8A2_75=y
150CONFIG_IRQ_PLL_WAKEUP=7 141CONFIG_IRQ_PLL_WAKEUP=7
151
152#
153# BF537 Specific Configuration
154#
155
156#
157# Interrupt Priority Assignment
158#
159
160#
161# Priority
162#
163CONFIG_IRQ_DMA_ERROR=7
164CONFIG_IRQ_ERROR=7
165CONFIG_IRQ_RTC=8 142CONFIG_IRQ_RTC=8
166CONFIG_IRQ_PPI=8 143CONFIG_IRQ_PPI=8
167CONFIG_IRQ_SPORT0_RX=9 144CONFIG_IRQ_SPORT0_RX=9
@@ -174,8 +151,6 @@ CONFIG_IRQ_UART0_RX=10
174CONFIG_IRQ_UART0_TX=10 151CONFIG_IRQ_UART0_TX=10
175CONFIG_IRQ_UART1_RX=10 152CONFIG_IRQ_UART1_RX=10
176CONFIG_IRQ_UART1_TX=10 153CONFIG_IRQ_UART1_TX=10
177CONFIG_IRQ_CAN_RX=11
178CONFIG_IRQ_CAN_TX=11
179CONFIG_IRQ_MAC_RX=11 154CONFIG_IRQ_MAC_RX=11
180CONFIG_IRQ_MAC_TX=11 155CONFIG_IRQ_MAC_TX=11
181CONFIG_IRQ_TMR0=12 156CONFIG_IRQ_TMR0=12
@@ -186,11 +161,31 @@ CONFIG_IRQ_TMR4=12
186CONFIG_IRQ_TMR5=12 161CONFIG_IRQ_TMR5=12
187CONFIG_IRQ_TMR6=12 162CONFIG_IRQ_TMR6=12
188CONFIG_IRQ_TMR7=12 163CONFIG_IRQ_TMR7=12
189CONFIG_IRQ_PROG_INTA=12
190CONFIG_IRQ_PORTG_INTB=12 164CONFIG_IRQ_PORTG_INTB=12
191CONFIG_IRQ_MEM_DMA0=13 165CONFIG_IRQ_MEM_DMA0=13
192CONFIG_IRQ_MEM_DMA1=13 166CONFIG_IRQ_MEM_DMA1=13
193CONFIG_IRQ_WATCH=13 167CONFIG_IRQ_WATCH=13
168# CONFIG_BFIN537_STAMP is not set
169# CONFIG_BFIN537_BLUETECHNIX_CM is not set
170CONFIG_PNAV10=y
171# CONFIG_GENERIC_BF537_BOARD is not set
172
173#
174# BF537 Specific Configuration
175#
176
177#
178# Interrupt Priority Assignment
179#
180
181#
182# Priority
183#
184CONFIG_IRQ_DMA_ERROR=7
185CONFIG_IRQ_ERROR=7
186CONFIG_IRQ_CAN_RX=11
187CONFIG_IRQ_CAN_TX=11
188CONFIG_IRQ_PROG_INTA=12
194 189
195# 190#
196# Board customizations 191# Board customizations
@@ -204,7 +199,7 @@ CONFIG_CLKIN_HZ=24576000
204# CONFIG_BFIN_KERNEL_CLOCK is not set 199# CONFIG_BFIN_KERNEL_CLOCK is not set
205CONFIG_MAX_VCO_HZ=600000000 200CONFIG_MAX_VCO_HZ=600000000
206CONFIG_MIN_VCO_HZ=50000000 201CONFIG_MIN_VCO_HZ=50000000
207CONFIG_MAX_SCLK_HZ=133333333 202CONFIG_MAX_SCLK_HZ=133000000
208CONFIG_MIN_SCLK_HZ=27000000 203CONFIG_MIN_SCLK_HZ=27000000
209 204
210# 205#
@@ -261,6 +256,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
261# CONFIG_RESOURCES_64BIT is not set 256# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1 257CONFIG_ZONE_DMA_FLAG=1
263CONFIG_LARGE_ALLOCS=y 258CONFIG_LARGE_ALLOCS=y
259# CONFIG_BFIN_GPTIMERS is not set
264CONFIG_BFIN_DMA_5XX=y 260CONFIG_BFIN_DMA_5XX=y
265# CONFIG_DMA_UNCACHED_2M is not set 261# CONFIG_DMA_UNCACHED_2M is not set
266CONFIG_DMA_UNCACHED_1M=y 262CONFIG_DMA_UNCACHED_1M=y
@@ -282,7 +278,7 @@ CONFIG_L1_MAX_PIECE=16
282# 278#
283 279
284# 280#
285# EBIU_AMBCTL Global Control 281# EBIU_AMGCTL Global Control
286# 282#
287CONFIG_C_AMCKEN=y 283CONFIG_C_AMCKEN=y
288CONFIG_C_CDPRIO=y 284CONFIG_C_CDPRIO=y
@@ -593,6 +589,7 @@ CONFIG_BFIN_MAC_RMII=y
593# CONFIG_DM9000 is not set 589# CONFIG_DM9000 is not set
594CONFIG_NETDEV_1000=y 590CONFIG_NETDEV_1000=y
595CONFIG_NETDEV_10000=y 591CONFIG_NETDEV_10000=y
592# CONFIG_AX88180 is not set
596 593
597# 594#
598# Wireless LAN 595# Wireless LAN
@@ -675,9 +672,9 @@ CONFIG_INPUT_UINPUT=y
675# 672#
676# CONFIG_AD9960 is not set 673# CONFIG_AD9960 is not set
677# CONFIG_SPI_ADC_BF533 is not set 674# CONFIG_SPI_ADC_BF533 is not set
678# CONFIG_BFIN_PFLAGS is not set 675# CONFIG_BF5xx_PFLAGS is not set
679# CONFIG_BF5xx_PPIFCD is not set 676# CONFIG_BF5xx_PPIFCD is not set
680# CONFIG_BF5xx_TIMERS is not set 677# CONFIG_BFIN_SIMPLE_TIMER is not set
681# CONFIG_BF5xx_PPI is not set 678# CONFIG_BF5xx_PPI is not set
682CONFIG_BFIN_SPORT=y 679CONFIG_BFIN_SPORT=y
683# CONFIG_BFIN_TIMER_LATENCY is not set 680# CONFIG_BFIN_TIMER_LATENCY is not set
@@ -897,6 +894,7 @@ CONFIG_FB_BF537_LQ035=y
897CONFIG_LQ035_SLAVE_ADDR=0x58 894CONFIG_LQ035_SLAVE_ADDR=0x58
898CONFIG_FB_BFIN_LANDSCAPE=y 895CONFIG_FB_BFIN_LANDSCAPE=y
899# CONFIG_FB_BFIN_BGR is not set 896# CONFIG_FB_BFIN_BGR is not set
897# CONFIG_FB_BFIN_T350MCQB is not set
900# CONFIG_FB_S1D13XXX is not set 898# CONFIG_FB_S1D13XXX is not set
901# CONFIG_FB_VIRTUAL is not set 899# CONFIG_FB_VIRTUAL is not set
902# CONFIG_LOGO is not set 900# CONFIG_LOGO is not set
@@ -939,11 +937,6 @@ CONFIG_SND=m
939# CONFIG_SND_SOC is not set 937# CONFIG_SND_SOC is not set
940 938
941# 939#
942# SoC Audio for the ADI Blackfin
943#
944# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
945
946#
947# Open Sound System 940# Open Sound System
948# 941#
949CONFIG_SOUND_PRIME=y 942CONFIG_SOUND_PRIME=y
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 503eef4c7fec..b54446055a43 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -436,6 +436,7 @@ unsigned long get_dma_curr_desc_ptr(unsigned int channel)
436 436
437 return dma_ch[channel].regs->curr_desc_ptr; 437 return dma_ch[channel].regs->curr_desc_ptr;
438} 438}
439EXPORT_SYMBOL(get_dma_curr_desc_ptr);
439 440
440unsigned long get_dma_curr_addr(unsigned int channel) 441unsigned long get_dma_curr_addr(unsigned int channel)
441{ 442{
diff --git a/arch/blackfin/kernel/bfin_ksyms.c b/arch/blackfin/kernel/bfin_ksyms.c
index 2198afe40f33..0bfbb269e350 100644
--- a/arch/blackfin/kernel/bfin_ksyms.c
+++ b/arch/blackfin/kernel/bfin_ksyms.c
@@ -37,9 +37,6 @@
37/* platform dependent support */ 37/* platform dependent support */
38 38
39EXPORT_SYMBOL(__ioremap); 39EXPORT_SYMBOL(__ioremap);
40EXPORT_SYMBOL(strcmp);
41EXPORT_SYMBOL(strncmp);
42EXPORT_SYMBOL(dump_thread);
43 40
44EXPORT_SYMBOL(ip_fast_csum); 41EXPORT_SYMBOL(ip_fast_csum);
45 42
@@ -51,6 +48,7 @@ EXPORT_SYMBOL(__down_trylock);
51EXPORT_SYMBOL(__down_interruptible); 48EXPORT_SYMBOL(__down_interruptible);
52 49
53EXPORT_SYMBOL(is_in_rom); 50EXPORT_SYMBOL(is_in_rom);
51EXPORT_SYMBOL(bfin_return_from_exception);
54 52
55/* Networking helper routines. */ 53/* Networking helper routines. */
56EXPORT_SYMBOL(csum_partial_copy); 54EXPORT_SYMBOL(csum_partial_copy);
@@ -60,13 +58,11 @@ EXPORT_SYMBOL(csum_partial_copy);
60 * their interface isn't gonna change any time soon now, so 58 * their interface isn't gonna change any time soon now, so
61 * it's OK to leave it out of version control. 59 * it's OK to leave it out of version control.
62 */ 60 */
63EXPORT_SYMBOL(strcpy);
64EXPORT_SYMBOL(memcpy); 61EXPORT_SYMBOL(memcpy);
65EXPORT_SYMBOL(memset); 62EXPORT_SYMBOL(memset);
66EXPORT_SYMBOL(memcmp); 63EXPORT_SYMBOL(memcmp);
67EXPORT_SYMBOL(memmove); 64EXPORT_SYMBOL(memmove);
68EXPORT_SYMBOL(memchr); 65EXPORT_SYMBOL(memchr);
69EXPORT_SYMBOL(get_wchan);
70 66
71/* 67/*
72 * libgcc functions - functions that are used internally by the 68 * libgcc functions - functions that are used internally by the
@@ -102,6 +98,7 @@ EXPORT_SYMBOL(outsw);
102EXPORT_SYMBOL(insw); 98EXPORT_SYMBOL(insw);
103EXPORT_SYMBOL(outsl); 99EXPORT_SYMBOL(outsl);
104EXPORT_SYMBOL(insl); 100EXPORT_SYMBOL(insl);
101EXPORT_SYMBOL(insl_16);
105EXPORT_SYMBOL(irq_flags); 102EXPORT_SYMBOL(irq_flags);
106EXPORT_SYMBOL(iounmap); 103EXPORT_SYMBOL(iounmap);
107EXPORT_SYMBOL(blackfin_dcache_invalidate_range); 104EXPORT_SYMBOL(blackfin_dcache_invalidate_range);
diff --git a/arch/blackfin/kernel/cplbinit.c b/arch/blackfin/kernel/cplbinit.c
index f2db6a5e2b5b..6320bc45fbba 100644
--- a/arch/blackfin/kernel/cplbinit.c
+++ b/arch/blackfin/kernel/cplbinit.c
@@ -26,29 +26,22 @@
26#include <asm/cplb.h> 26#include <asm/cplb.h>
27#include <asm/cplbinit.h> 27#include <asm/cplbinit.h>
28 28
29u_long icplb_table[MAX_CPLBS+1]; 29u_long icplb_table[MAX_CPLBS + 1];
30u_long dcplb_table[MAX_CPLBS+1]; 30u_long dcplb_table[MAX_CPLBS + 1];
31 31
32#ifdef CONFIG_CPLB_SWITCH_TAB_L1 32#ifdef CONFIG_CPLB_SWITCH_TAB_L1
33u_long ipdt_table[MAX_SWITCH_I_CPLBS+1]__attribute__((l1_data)); 33# define PDT_ATTR __attribute__((l1_data))
34u_long dpdt_table[MAX_SWITCH_D_CPLBS+1]__attribute__((l1_data));
35
36#ifdef CONFIG_CPLB_INFO
37u_long ipdt_swapcount_table[MAX_SWITCH_I_CPLBS]__attribute__((l1_data));
38u_long dpdt_swapcount_table[MAX_SWITCH_D_CPLBS]__attribute__((l1_data));
39#endif /* CONFIG_CPLB_INFO */
40
41#else 34#else
35# define PDT_ATTR
36#endif
42 37
43u_long ipdt_table[MAX_SWITCH_I_CPLBS+1]; 38u_long ipdt_table[MAX_SWITCH_I_CPLBS + 1] PDT_ATTR;
44u_long dpdt_table[MAX_SWITCH_D_CPLBS+1]; 39u_long dpdt_table[MAX_SWITCH_D_CPLBS + 1] PDT_ATTR;
45 40
46#ifdef CONFIG_CPLB_INFO 41#ifdef CONFIG_CPLB_INFO
47u_long ipdt_swapcount_table[MAX_SWITCH_I_CPLBS]; 42u_long ipdt_swapcount_table[MAX_SWITCH_I_CPLBS] PDT_ATTR;
48u_long dpdt_swapcount_table[MAX_SWITCH_D_CPLBS]; 43u_long dpdt_swapcount_table[MAX_SWITCH_D_CPLBS] PDT_ATTR;
49#endif /* CONFIG_CPLB_INFO */ 44#endif
50
51#endif /*CONFIG_CPLB_SWITCH_TAB_L1*/
52 45
53struct s_cplb { 46struct s_cplb {
54 struct cplb_tab init_i; 47 struct cplb_tab init_i;
@@ -71,7 +64,7 @@ static struct cplb_desc cplb_data[] = {
71#else 64#else
72 .valid = 0, 65 .valid = 0,
73#endif 66#endif
74 .name = "ZERO Pointer Saveguard", 67 .name = "Zero Pointer Guard Page",
75 }, 68 },
76 { 69 {
77 .start = L1_CODE_START, 70 .start = L1_CODE_START,
@@ -102,20 +95,20 @@ static struct cplb_desc cplb_data[] = {
102 .end = 0, /* dynamic */ 95 .end = 0, /* dynamic */
103 .psize = 0, 96 .psize = 0,
104 .attr = INITIAL_T | SWITCH_T | I_CPLB | D_CPLB, 97 .attr = INITIAL_T | SWITCH_T | I_CPLB | D_CPLB,
105 .i_conf = SDRAM_IGENERIC, 98 .i_conf = SDRAM_IGENERIC,
106 .d_conf = SDRAM_DGENERIC, 99 .d_conf = SDRAM_DGENERIC,
107 .valid = 1, 100 .valid = 1,
108 .name = "SDRAM Kernel", 101 .name = "Kernel Memory",
109 }, 102 },
110 { 103 {
111 .start = 0, /* dynamic */ 104 .start = 0, /* dynamic */
112 .end = 0, /* dynamic */ 105 .end = 0, /* dynamic */
113 .psize = 0, 106 .psize = 0,
114 .attr = INITIAL_T | SWITCH_T | D_CPLB, 107 .attr = INITIAL_T | SWITCH_T | D_CPLB,
115 .i_conf = SDRAM_IGENERIC, 108 .i_conf = SDRAM_IGENERIC,
116 .d_conf = SDRAM_DNON_CHBL, 109 .d_conf = SDRAM_DNON_CHBL,
117 .valid = 1, 110 .valid = 1,
118 .name = "SDRAM RAM MTD", 111 .name = "uClinux MTD Memory",
119 }, 112 },
120 { 113 {
121 .start = 0, /* dynamic */ 114 .start = 0, /* dynamic */
@@ -124,7 +117,7 @@ static struct cplb_desc cplb_data[] = {
124 .attr = INITIAL_T | SWITCH_T | D_CPLB, 117 .attr = INITIAL_T | SWITCH_T | D_CPLB,
125 .d_conf = SDRAM_DNON_CHBL, 118 .d_conf = SDRAM_DNON_CHBL,
126 .valid = 1, 119 .valid = 1,
127 .name = "SDRAM Uncached DMA ZONE", 120 .name = "Uncached DMA Zone",
128 }, 121 },
129 { 122 {
130 .start = 0, /* dynamic */ 123 .start = 0, /* dynamic */
@@ -134,7 +127,7 @@ static struct cplb_desc cplb_data[] = {
134 .i_conf = 0, /* dynamic */ 127 .i_conf = 0, /* dynamic */
135 .d_conf = 0, /* dynamic */ 128 .d_conf = 0, /* dynamic */
136 .valid = 1, 129 .valid = 1,
137 .name = "SDRAM Reserved Memory", 130 .name = "Reserved Memory",
138 }, 131 },
139 { 132 {
140 .start = ASYNC_BANK0_BASE, 133 .start = ASYNC_BANK0_BASE,
@@ -143,14 +136,14 @@ static struct cplb_desc cplb_data[] = {
143 .attr = SWITCH_T | D_CPLB, 136 .attr = SWITCH_T | D_CPLB,
144 .d_conf = SDRAM_EBIU, 137 .d_conf = SDRAM_EBIU,
145 .valid = 1, 138 .valid = 1,
146 .name = "ASYNC Memory", 139 .name = "Asynchronous Memory Banks",
147 }, 140 },
148 { 141 {
149#if defined(CONFIG_BF561) 142#ifdef L2_START
150 .start = L2_SRAM, 143 .start = L2_START,
151 .end = L2_SRAM_END, 144 .end = L2_START + L2_LENGTH,
152 .psize = SIZE_1M, 145 .psize = SIZE_1M,
153 .attr = SWITCH_T | D_CPLB, 146 .attr = SWITCH_T | I_CPLB | D_CPLB,
154 .i_conf = L2_MEMORY, 147 .i_conf = L2_MEMORY,
155 .d_conf = L2_MEMORY, 148 .d_conf = L2_MEMORY,
156 .valid = 1, 149 .valid = 1,
@@ -158,13 +151,23 @@ static struct cplb_desc cplb_data[] = {
158 .valid = 0, 151 .valid = 0,
159#endif 152#endif
160 .name = "L2 Memory", 153 .name = "L2 Memory",
161 } 154 },
155 {
156 .start = BOOT_ROM_START,
157 .end = BOOT_ROM_START + BOOT_ROM_LENGTH,
158 .psize = SIZE_1M,
159 .attr = SWITCH_T | I_CPLB | D_CPLB,
160 .i_conf = SDRAM_IGENERIC,
161 .d_conf = SDRAM_DGENERIC,
162 .valid = 1,
163 .name = "On-Chip BootROM",
164 },
162}; 165};
163 166
164static u16 __init lock_kernel_check(u32 start, u32 end) 167static u16 __init lock_kernel_check(u32 start, u32 end)
165{ 168{
166 if ((start <= (u32) _stext && end >= (u32) _end) 169 if ((end <= (u32) _end && end >= (u32)_stext) ||
167 || (start >= (u32) _stext && end <= (u32) _end)) 170 (start <= (u32) _end && start >= (u32)_stext))
168 return IN_KERNEL; 171 return IN_KERNEL;
169 return 0; 172 return 0;
170} 173}
@@ -350,7 +353,7 @@ void __init generate_cpl_tables(void)
350 else 353 else
351 cplb_data[RES_MEM].i_conf = SDRAM_INON_CHBL; 354 cplb_data[RES_MEM].i_conf = SDRAM_INON_CHBL;
352 355
353 for (i = ZERO_P; i <= L2_MEM; i++) { 356 for (i = ZERO_P; i < ARRAY_SIZE(cplb_data); ++i) {
354 if (!cplb_data[i].valid) 357 if (!cplb_data[i].valid)
355 continue; 358 continue;
356 359
diff --git a/arch/blackfin/kernel/early_printk.c b/arch/blackfin/kernel/early_printk.c
index 6ec518a81113..724f4a5a1d46 100644
--- a/arch/blackfin/kernel/early_printk.c
+++ b/arch/blackfin/kernel/early_printk.c
@@ -205,7 +205,8 @@ asmlinkage void __init early_trap_c(struct pt_regs *fp, void *retaddr)
205 if (likely(early_console == NULL)) 205 if (likely(early_console == NULL))
206 setup_early_printk(DEFAULT_EARLY_PORT); 206 setup_early_printk(DEFAULT_EARLY_PORT);
207 207
208 dump_bfin_regs(fp, retaddr); 208 dump_bfin_mem((void *)fp->retx);
209 show_regs(fp);
209 dump_bfin_trace_buffer(); 210 dump_bfin_trace_buffer();
210 211
211 panic("Died early"); 212 panic("Died early");
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index 9124467651c4..5bf15125f0d6 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -134,27 +134,6 @@ void cpu_idle(void)
134 } 134 }
135} 135}
136 136
137void show_regs(struct pt_regs *regs)
138{
139 printk(KERN_NOTICE "\n");
140 printk(KERN_NOTICE
141 "PC: %08lu Status: %04lu SysStatus: %04lu RETS: %08lu\n",
142 regs->pc, regs->astat, regs->seqstat, regs->rets);
143 printk(KERN_NOTICE
144 "A0.x: %08lx A0.w: %08lx A1.x: %08lx A1.w: %08lx\n",
145 regs->a0x, regs->a0w, regs->a1x, regs->a1w);
146 printk(KERN_NOTICE "P0: %08lx P1: %08lx P2: %08lx P3: %08lx\n",
147 regs->p0, regs->p1, regs->p2, regs->p3);
148 printk(KERN_NOTICE "P4: %08lx P5: %08lx\n", regs->p4, regs->p5);
149 printk(KERN_NOTICE "R0: %08lx R1: %08lx R2: %08lx R3: %08lx\n",
150 regs->r0, regs->r1, regs->r2, regs->r3);
151 printk(KERN_NOTICE "R4: %08lx R5: %08lx R6: %08lx R7: %08lx\n",
152 regs->r4, regs->r5, regs->r6, regs->r7);
153
154 if (!regs->ipend)
155 printk(KERN_NOTICE "USP: %08lx\n", rdusp());
156}
157
158/* Fill in the fpu structure for a core dump. */ 137/* Fill in the fpu structure for a core dump. */
159 138
160int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpregs) 139int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpregs)
@@ -239,51 +218,6 @@ copy_thread(int nr, unsigned long clone_flags,
239} 218}
240 219
241/* 220/*
242 * fill in the user structure for a core dump..
243 */
244void dump_thread(struct pt_regs *regs, struct user *dump)
245{
246 dump->magic = CMAGIC;
247 dump->start_code = 0;
248 dump->start_stack = rdusp() & ~(PAGE_SIZE - 1);
249 dump->u_tsize = ((unsigned long)current->mm->end_code) >> PAGE_SHIFT;
250 dump->u_dsize = ((unsigned long)(current->mm->brk +
251 (PAGE_SIZE - 1))) >> PAGE_SHIFT;
252 dump->u_dsize -= dump->u_tsize;
253 dump->u_ssize = 0;
254
255 if (dump->start_stack < TASK_SIZE)
256 dump->u_ssize =
257 ((unsigned long)(TASK_SIZE -
258 dump->start_stack)) >> PAGE_SHIFT;
259
260 dump->u_ar0 = (struct user_regs_struct *)((int)&dump->regs - (int)dump);
261
262 dump->regs.r0 = regs->r0;
263 dump->regs.r1 = regs->r1;
264 dump->regs.r2 = regs->r2;
265 dump->regs.r3 = regs->r3;
266 dump->regs.r4 = regs->r4;
267 dump->regs.r5 = regs->r5;
268 dump->regs.r6 = regs->r6;
269 dump->regs.r7 = regs->r7;
270 dump->regs.p0 = regs->p0;
271 dump->regs.p1 = regs->p1;
272 dump->regs.p2 = regs->p2;
273 dump->regs.p3 = regs->p3;
274 dump->regs.p4 = regs->p4;
275 dump->regs.p5 = regs->p5;
276 dump->regs.orig_p0 = regs->orig_p0;
277 dump->regs.a0w = regs->a0w;
278 dump->regs.a1w = regs->a1w;
279 dump->regs.a0x = regs->a0x;
280 dump->regs.a1x = regs->a1x;
281 dump->regs.rets = regs->rets;
282 dump->regs.astat = regs->astat;
283 dump->regs.pc = regs->pc;
284}
285
286/*
287 * sys_execve() executes a new program. 221 * sys_execve() executes a new program.
288 */ 222 */
289 223
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 934234f43839..d2822010b7ce 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -43,6 +43,7 @@
43#include <asm/cacheflush.h> 43#include <asm/cacheflush.h>
44#include <asm/blackfin.h> 44#include <asm/blackfin.h>
45#include <asm/cplbinit.h> 45#include <asm/cplbinit.h>
46#include <asm/div64.h>
46#include <asm/fixed_code.h> 47#include <asm/fixed_code.h>
47#include <asm/early_printk.h> 48#include <asm/early_printk.h>
48 49
@@ -504,13 +505,17 @@ EXPORT_SYMBOL(get_sclk);
504 505
505unsigned long sclk_to_usecs(unsigned long sclk) 506unsigned long sclk_to_usecs(unsigned long sclk)
506{ 507{
507 return (USEC_PER_SEC * (u64)sclk) / get_sclk(); 508 u64 tmp = USEC_PER_SEC * (u64)sclk;
509 do_div(tmp, get_sclk());
510 return tmp;
508} 511}
509EXPORT_SYMBOL(sclk_to_usecs); 512EXPORT_SYMBOL(sclk_to_usecs);
510 513
511unsigned long usecs_to_sclk(unsigned long usecs) 514unsigned long usecs_to_sclk(unsigned long usecs)
512{ 515{
513 return (get_sclk() * (u64)usecs) / USEC_PER_SEC; 516 u64 tmp = get_sclk() * (u64)usecs;
517 do_div(tmp, USEC_PER_SEC);
518 return tmp;
514} 519}
515EXPORT_SYMBOL(usecs_to_sclk); 520EXPORT_SYMBOL(usecs_to_sclk);
516 521
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index cfa05436c972..21a55ef19cbd 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -158,7 +158,7 @@ static void decode_address(char *buf, unsigned long address)
158 } 158 }
159 159
160 /* we were unable to find this address anywhere */ 160 /* we were unable to find this address anywhere */
161 sprintf(buf, "[<0x%p>]", (void *)address); 161 sprintf(buf, "<0x%p> /* unknown address */", (void *)address);
162 162
163done: 163done:
164 write_unlock_irqrestore(&tasklist_lock, flags); 164 write_unlock_irqrestore(&tasklist_lock, flags);
@@ -169,7 +169,9 @@ asmlinkage void double_fault_c(struct pt_regs *fp)
169 console_verbose(); 169 console_verbose();
170 oops_in_progress = 1; 170 oops_in_progress = 1;
171 printk(KERN_EMERG "\n" KERN_EMERG "Double Fault\n"); 171 printk(KERN_EMERG "\n" KERN_EMERG "Double Fault\n");
172 dump_bfin_regs(fp, (void *)fp->retx); 172 dump_bfin_process(fp);
173 dump_bfin_mem((void *)fp->retx);
174 show_regs(fp);
173 panic("Double Fault - unrecoverable event\n"); 175 panic("Double Fault - unrecoverable event\n");
174 176
175} 177}
@@ -250,7 +252,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
250 case VEC_EXCPT03: 252 case VEC_EXCPT03:
251 info.si_code = SEGV_STACKFLOW; 253 info.si_code = SEGV_STACKFLOW;
252 sig = SIGSEGV; 254 sig = SIGSEGV;
253 printk(KERN_NOTICE EXC_0x03); 255 printk(KERN_NOTICE EXC_0x03(KERN_NOTICE));
254 CHK_DEBUGGER_TRAP(); 256 CHK_DEBUGGER_TRAP();
255 break; 257 break;
256 /* 0x04 - User Defined, Caught by default */ 258 /* 0x04 - User Defined, Caught by default */
@@ -279,7 +281,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
279 case VEC_OVFLOW: 281 case VEC_OVFLOW:
280 info.si_code = TRAP_TRACEFLOW; 282 info.si_code = TRAP_TRACEFLOW;
281 sig = SIGTRAP; 283 sig = SIGTRAP;
282 printk(KERN_NOTICE EXC_0x11); 284 printk(KERN_NOTICE EXC_0x11(KERN_NOTICE));
283 CHK_DEBUGGER_TRAP(); 285 CHK_DEBUGGER_TRAP();
284 break; 286 break;
285 /* 0x12 - Reserved, Caught by default */ 287 /* 0x12 - Reserved, Caught by default */
@@ -301,36 +303,35 @@ asmlinkage void trap_c(struct pt_regs *fp)
301 case VEC_UNDEF_I: 303 case VEC_UNDEF_I:
302 info.si_code = ILL_ILLOPC; 304 info.si_code = ILL_ILLOPC;
303 sig = SIGILL; 305 sig = SIGILL;
304 printk(KERN_NOTICE EXC_0x21); 306 printk(KERN_NOTICE EXC_0x21(KERN_NOTICE));
305 CHK_DEBUGGER_TRAP(); 307 CHK_DEBUGGER_TRAP();
306 break; 308 break;
307 /* 0x22 - Illegal Instruction Combination, handled here */ 309 /* 0x22 - Illegal Instruction Combination, handled here */
308 case VEC_ILGAL_I: 310 case VEC_ILGAL_I:
309 info.si_code = ILL_ILLPARAOP; 311 info.si_code = ILL_ILLPARAOP;
310 sig = SIGILL; 312 sig = SIGILL;
311 printk(KERN_NOTICE EXC_0x22); 313 printk(KERN_NOTICE EXC_0x22(KERN_NOTICE));
312 CHK_DEBUGGER_TRAP(); 314 CHK_DEBUGGER_TRAP();
313 break; 315 break;
314 /* 0x23 - Data CPLB Protection Violation, 316 /* 0x23 - Data CPLB protection violation, handled here */
315 normal case is handled in _cplb_hdr */
316 case VEC_CPLB_VL: 317 case VEC_CPLB_VL:
317 info.si_code = ILL_CPLB_VI; 318 info.si_code = ILL_CPLB_VI;
318 sig = SIGILL; 319 sig = SIGBUS;
319 printk(KERN_NOTICE EXC_0x23); 320 printk(KERN_NOTICE EXC_0x23(KERN_NOTICE));
320 CHK_DEBUGGER_TRAP(); 321 CHK_DEBUGGER_TRAP();
321 break; 322 break;
322 /* 0x24 - Data access misaligned, handled here */ 323 /* 0x24 - Data access misaligned, handled here */
323 case VEC_MISALI_D: 324 case VEC_MISALI_D:
324 info.si_code = BUS_ADRALN; 325 info.si_code = BUS_ADRALN;
325 sig = SIGBUS; 326 sig = SIGBUS;
326 printk(KERN_NOTICE EXC_0x24); 327 printk(KERN_NOTICE EXC_0x24(KERN_NOTICE));
327 CHK_DEBUGGER_TRAP(); 328 CHK_DEBUGGER_TRAP();
328 break; 329 break;
329 /* 0x25 - Unrecoverable Event, handled here */ 330 /* 0x25 - Unrecoverable Event, handled here */
330 case VEC_UNCOV: 331 case VEC_UNCOV:
331 info.si_code = ILL_ILLEXCPT; 332 info.si_code = ILL_ILLEXCPT;
332 sig = SIGILL; 333 sig = SIGILL;
333 printk(KERN_NOTICE EXC_0x25); 334 printk(KERN_NOTICE EXC_0x25(KERN_NOTICE));
334 CHK_DEBUGGER_TRAP(); 335 CHK_DEBUGGER_TRAP();
335 break; 336 break;
336 /* 0x26 - Data CPLB Miss, normal case is handled in _cplb_hdr, 337 /* 0x26 - Data CPLB Miss, normal case is handled in _cplb_hdr,
@@ -338,7 +339,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
338 case VEC_CPLB_M: 339 case VEC_CPLB_M:
339 info.si_code = BUS_ADRALN; 340 info.si_code = BUS_ADRALN;
340 sig = SIGBUS; 341 sig = SIGBUS;
341 printk(KERN_NOTICE EXC_0x26); 342 printk(KERN_NOTICE EXC_0x26(KERN_NOTICE));
342 CHK_DEBUGGER_TRAP(); 343 CHK_DEBUGGER_TRAP();
343 break; 344 break;
344 /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */ 345 /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */
@@ -349,7 +350,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
349 printk(KERN_NOTICE "NULL pointer access (probably)\n"); 350 printk(KERN_NOTICE "NULL pointer access (probably)\n");
350#else 351#else
351 sig = SIGILL; 352 sig = SIGILL;
352 printk(KERN_NOTICE EXC_0x27); 353 printk(KERN_NOTICE EXC_0x27(KERN_NOTICE));
353#endif 354#endif
354 CHK_DEBUGGER_TRAP(); 355 CHK_DEBUGGER_TRAP();
355 break; 356 break;
@@ -357,7 +358,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
357 case VEC_WATCH: 358 case VEC_WATCH:
358 info.si_code = TRAP_WATCHPT; 359 info.si_code = TRAP_WATCHPT;
359 sig = SIGTRAP; 360 sig = SIGTRAP;
360 pr_debug(EXC_0x28); 361 pr_debug(EXC_0x28(KERN_DEBUG));
361 CHK_DEBUGGER_TRAP_MAYBE(); 362 CHK_DEBUGGER_TRAP_MAYBE();
362 /* Check if this is a watchpoint in kernel space */ 363 /* Check if this is a watchpoint in kernel space */
363 if (fp->ipend & 0xffc0) 364 if (fp->ipend & 0xffc0)
@@ -379,22 +380,21 @@ asmlinkage void trap_c(struct pt_regs *fp)
379 case VEC_MISALI_I: 380 case VEC_MISALI_I:
380 info.si_code = BUS_ADRALN; 381 info.si_code = BUS_ADRALN;
381 sig = SIGBUS; 382 sig = SIGBUS;
382 printk(KERN_NOTICE EXC_0x2A); 383 printk(KERN_NOTICE EXC_0x2A(KERN_NOTICE));
383 CHK_DEBUGGER_TRAP(); 384 CHK_DEBUGGER_TRAP();
384 break; 385 break;
385 /* 0x2B - Instruction CPLB protection Violation, 386 /* 0x2B - Instruction CPLB protection violation, handled here */
386 handled in _cplb_hdr */
387 case VEC_CPLB_I_VL: 387 case VEC_CPLB_I_VL:
388 info.si_code = ILL_CPLB_VI; 388 info.si_code = ILL_CPLB_VI;
389 sig = SIGILL; 389 sig = SIGBUS;
390 printk(KERN_NOTICE EXC_0x2B); 390 printk(KERN_NOTICE EXC_0x2B(KERN_NOTICE));
391 CHK_DEBUGGER_TRAP(); 391 CHK_DEBUGGER_TRAP();
392 break; 392 break;
393 /* 0x2C - Instruction CPLB miss, handled in _cplb_hdr */ 393 /* 0x2C - Instruction CPLB miss, handled in _cplb_hdr */
394 case VEC_CPLB_I_M: 394 case VEC_CPLB_I_M:
395 info.si_code = ILL_CPLB_MISS; 395 info.si_code = ILL_CPLB_MISS;
396 sig = SIGBUS; 396 sig = SIGBUS;
397 printk(KERN_NOTICE EXC_0x2C); 397 printk(KERN_NOTICE EXC_0x2C(KERN_NOTICE));
398 CHK_DEBUGGER_TRAP(); 398 CHK_DEBUGGER_TRAP();
399 break; 399 break;
400 /* 0x2D - Instruction CPLB Multiple Hits, handled here */ 400 /* 0x2D - Instruction CPLB Multiple Hits, handled here */
@@ -405,7 +405,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
405 printk(KERN_NOTICE "Jump to address 0 - 0x0fff\n"); 405 printk(KERN_NOTICE "Jump to address 0 - 0x0fff\n");
406#else 406#else
407 sig = SIGILL; 407 sig = SIGILL;
408 printk(KERN_NOTICE EXC_0x2D); 408 printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE));
409#endif 409#endif
410 CHK_DEBUGGER_TRAP(); 410 CHK_DEBUGGER_TRAP();
411 break; 411 break;
@@ -413,7 +413,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
413 case VEC_ILL_RES: 413 case VEC_ILL_RES:
414 info.si_code = ILL_PRVOPC; 414 info.si_code = ILL_PRVOPC;
415 sig = SIGILL; 415 sig = SIGILL;
416 printk(KERN_NOTICE EXC_0x2E); 416 printk(KERN_NOTICE EXC_0x2E(KERN_NOTICE));
417 CHK_DEBUGGER_TRAP(); 417 CHK_DEBUGGER_TRAP();
418 break; 418 break;
419 /* 0x2F - Reserved, Caught by default */ 419 /* 0x2F - Reserved, Caught by default */
@@ -446,7 +446,9 @@ asmlinkage void trap_c(struct pt_regs *fp)
446 446
447 if (sig != SIGTRAP) { 447 if (sig != SIGTRAP) {
448 unsigned long stack; 448 unsigned long stack;
449 dump_bfin_regs(fp, (void *)fp->retx); 449 dump_bfin_process(fp);
450 dump_bfin_mem((void *)fp->retx);
451 show_regs(fp);
450 452
451 /* Print out the trace buffer if it makes sense */ 453 /* Print out the trace buffer if it makes sense */
452#ifndef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE 454#ifndef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE
@@ -460,22 +462,25 @@ asmlinkage void trap_c(struct pt_regs *fp)
460 show_stack(current, &stack); 462 show_stack(current, &stack);
461 if (oops_in_progress) { 463 if (oops_in_progress) {
462#ifndef CONFIG_ACCESS_CHECK 464#ifndef CONFIG_ACCESS_CHECK
463 printk(KERN_EMERG "Hey - dork - please turn on " 465 printk(KERN_EMERG "Please turn on "
464 "CONFIG_ACCESS_CHECK\n"); 466 "CONFIG_ACCESS_CHECK\n");
465#endif 467#endif
466 panic("Kernel exception"); 468 panic("Kernel exception");
467 } 469 }
468
469 /* Ensure that bad return addresses don't end up in an infinite
470 * loop, due to speculative loads/reads
471 */
472 fp->pc = SAFE_USER_INSTRUCTION;
473 } 470 }
471
474 info.si_signo = sig; 472 info.si_signo = sig;
475 info.si_errno = 0; 473 info.si_errno = 0;
476 info.si_addr = (void *)fp->pc; 474 info.si_addr = (void *)fp->pc;
477 force_sig_info(sig, &info, current); 475 force_sig_info(sig, &info, current);
478 476
477 /* Ensure that bad return addresses don't end up in an infinite
478 * loop, due to speculative loads/reads. This needs to be done after
479 * the signal has been sent.
480 */
481 if (trapnr == VEC_CPLB_I_M && sig != SIGTRAP)
482 fp->pc = SAFE_USER_INSTRUCTION;
483
479 trace_buffer_restore(j); 484 trace_buffer_restore(j);
480 return; 485 return;
481} 486}
@@ -600,37 +605,48 @@ void dump_stack(void)
600 show_stack(current, &stack); 605 show_stack(current, &stack);
601 trace_buffer_restore(tflags); 606 trace_buffer_restore(tflags);
602} 607}
603
604EXPORT_SYMBOL(dump_stack); 608EXPORT_SYMBOL(dump_stack);
605 609
606void dump_bfin_regs(struct pt_regs *fp, void *retaddr) 610void dump_bfin_process(struct pt_regs *fp)
607{ 611{
608 char buf [150]; 612 /* We should be able to look at fp->ipend, but we don't push it on the
613 * stack all the time, so do this until we fix that */
614 unsigned int context = bfin_read_IPEND();
615
616 if (oops_in_progress)
617 printk(KERN_EMERG "Kernel OOPS in progress\n");
618
619 if (context & 0x0020)
620 printk(KERN_NOTICE "Deferred excecption or HW Error context\n");
621 else if (context & 0x3FC0)
622 printk(KERN_NOTICE "Interrupt context\n");
623 else if (context & 0x4000)
624 printk(KERN_NOTICE "Deferred Interrupt context\n");
625 else if (context & 0x8000)
626 printk(KERN_NOTICE "Kernel process context\n");
627
628 if (current->pid && current->mm) {
629 printk(KERN_NOTICE "CURRENT PROCESS:\n");
630 printk(KERN_NOTICE "COMM=%s PID=%d\n",
631 current->comm, current->pid);
632
633 printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n"
634 KERN_NOTICE "BSS = 0x%p-0x%p USER-STACK = 0x%p\n"
635 KERN_NOTICE "\n",
636 (void *)current->mm->start_code,
637 (void *)current->mm->end_code,
638 (void *)current->mm->start_data,
639 (void *)current->mm->end_data,
640 (void *)current->mm->end_data,
641 (void *)current->mm->brk,
642 (void *)current->mm->start_stack);
643 } else
644 printk(KERN_NOTICE "\n" KERN_NOTICE
645 "No Valid process in current context\n");
646}
609 647
610 if (!oops_in_progress) { 648void dump_bfin_mem(void *retaddr)
611 if (current->pid && current->mm) { 649{
612 printk(KERN_NOTICE "\n" KERN_NOTICE "CURRENT PROCESS:\n");
613 printk(KERN_NOTICE "COMM=%s PID=%d\n",
614 current->comm, current->pid);
615
616 printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n"
617 KERN_NOTICE "BSS = 0x%p-0x%p USER-STACK = 0x%p\n"
618 KERN_NOTICE "\n",
619 (void *)current->mm->start_code,
620 (void *)current->mm->end_code,
621 (void *)current->mm->start_data,
622 (void *)current->mm->end_data,
623 (void *)current->mm->end_data,
624 (void *)current->mm->brk,
625 (void *)current->mm->start_stack);
626 } else {
627 printk (KERN_NOTICE "\n" KERN_NOTICE
628 "No Valid pid - Either things are really messed up,"
629 " or you are in the kernel\n");
630 }
631 } else {
632 printk(KERN_NOTICE "Kernel or interrupt exception\n");
633 }
634 650
635 if (retaddr >= (void *)FIXED_CODE_START && retaddr < (void *)physical_mem_end 651 if (retaddr >= (void *)FIXED_CODE_START && retaddr < (void *)physical_mem_end
636#if L1_CODE_LENGTH != 0 652#if L1_CODE_LENGTH != 0
@@ -671,8 +687,13 @@ void dump_bfin_regs(struct pt_regs *fp, void *retaddr)
671 printk("\n"); 687 printk("\n");
672 } else 688 } else
673 printk("\n" KERN_NOTICE 689 printk("\n" KERN_NOTICE
674 "Cannot look at the [PC] for it is" 690 "Cannot look at the [PC] <%p> for it is"
675 " in unreadable memory - sorry\n"); 691 " in unreadable memory - sorry\n", retaddr);
692}
693
694void show_regs(struct pt_regs *fp)
695{
696 char buf [150];
676 697
677 printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\n"); 698 printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\n");
678 printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n", 699 printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
@@ -686,6 +707,8 @@ void dump_bfin_regs(struct pt_regs *fp, void *retaddr)
686 printk(KERN_NOTICE " RETX: %s\n", buf); 707 printk(KERN_NOTICE " RETX: %s\n", buf);
687 decode_address(buf, fp->rets); 708 decode_address(buf, fp->rets);
688 printk(KERN_NOTICE " RETS: %s\n", buf); 709 printk(KERN_NOTICE " RETS: %s\n", buf);
710 decode_address(buf, fp->pc);
711 printk(KERN_NOTICE " PC: %s\n", buf);
689 712
690 if ((long)fp->seqstat & SEQSTAT_EXCAUSE) { 713 if ((long)fp->seqstat & SEQSTAT_EXCAUSE) {
691 decode_address(buf, bfin_read_DCPLB_FAULT_ADDR()); 714 decode_address(buf, bfin_read_DCPLB_FAULT_ADDR());
@@ -800,7 +823,9 @@ void panic_cplb_error(int cplb_panic, struct pt_regs *fp)
800 823
801 printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", (void *)bfin_read_DCPLB_FAULT_ADDR()); 824 printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", (void *)bfin_read_DCPLB_FAULT_ADDR());
802 printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", (void *)bfin_read_ICPLB_FAULT_ADDR()); 825 printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", (void *)bfin_read_ICPLB_FAULT_ADDR());
803 dump_bfin_regs(fp, (void *)fp->retx); 826 dump_bfin_process(fp);
827 dump_bfin_mem((void *)fp->retx);
828 show_regs(fp);
804 dump_stack(); 829 dump_stack();
805 panic("Unrecoverable event\n"); 830 panic("Unrecoverable event\n");
806} 831}
diff --git a/arch/blackfin/lib/Makefile b/arch/blackfin/lib/Makefile
index bfdad52c570b..635288fc5f54 100644
--- a/arch/blackfin/lib/Makefile
+++ b/arch/blackfin/lib/Makefile
@@ -4,7 +4,7 @@
4 4
5lib-y := \ 5lib-y := \
6 ashldi3.o ashrdi3.o lshrdi3.o \ 6 ashldi3.o ashrdi3.o lshrdi3.o \
7 muldi3.o divsi3.o udivsi3.o udivdi3.o modsi3.o umodsi3.o \ 7 muldi3.o divsi3.o udivsi3.o modsi3.o umodsi3.o \
8 checksum.o memcpy.o memset.o memcmp.o memchr.o memmove.o \ 8 checksum.o memcpy.o memset.o memcmp.o memchr.o memmove.o \
9 strcmp.o strcpy.o strncmp.o strncpy.o \ 9 strcmp.o strcpy.o strncmp.o strncpy.o \
10 umulsi3_highpart.o smulsi3_highpart.o \ 10 umulsi3_highpart.o smulsi3_highpart.o \
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S
index a17cc77ac36f..df7b8833a0c5 100644
--- a/arch/blackfin/lib/ins.S
+++ b/arch/blackfin/lib/ins.S
@@ -77,3 +77,22 @@ ENTRY(_insb)
77 sti R3; 77 sti R3;
78 RTS; 78 RTS;
79ENDPROC(_insb) 79ENDPROC(_insb)
80
81
82
83ENTRY(_insl_16)
84 P0 = R0; /* P0 = port */
85 cli R3;
86 P1 = R1; /* P1 = address */
87 P2 = R2; /* P2 = count */
88 SSYNC;
89 LSETUP( .Llong16_loop_s, .Llong16_loop_e) LC0 = P2;
90.Llong16_loop_s: R0 = [P0];
91 W[P1++] = R0;
92 R0 = R0 >> 16;
93 W[P1++] = R0;
94 NOP;
95.Llong16_loop_e: NOP;
96 sti R3;
97 RTS;
98ENDPROC(_insl_16)
diff --git a/arch/blackfin/lib/strcmp.c b/arch/blackfin/lib/strcmp.c
index 4eeefd86907f..fde39a1950ce 100644
--- a/arch/blackfin/lib/strcmp.c
+++ b/arch/blackfin/lib/strcmp.c
@@ -1,10 +1,19 @@
1#include <linux/types.h> 1/*
2 * Provide symbol in case str func is not inlined.
3 *
4 * Copyright (c) 2006-2007 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
2 8
3#define strcmp __inline_strcmp 9#define strcmp __inline_strcmp
4#include <asm/string.h> 10#include <asm/string.h>
5#undef strcmp 11#undef strcmp
6 12
13#include <linux/module.h>
14
7int strcmp(const char *dest, const char *src) 15int strcmp(const char *dest, const char *src)
8{ 16{
9 return __inline_strcmp(dest, src); 17 return __inline_strcmp(dest, src);
10} 18}
19EXPORT_SYMBOL(strcmp);
diff --git a/arch/blackfin/lib/strcpy.c b/arch/blackfin/lib/strcpy.c
index 534589db7256..2a8836b1f4d3 100644
--- a/arch/blackfin/lib/strcpy.c
+++ b/arch/blackfin/lib/strcpy.c
@@ -1,10 +1,19 @@
1#include <linux/types.h> 1/*
2 * Provide symbol in case str func is not inlined.
3 *
4 * Copyright (c) 2006-2007 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
2 8
3#define strcpy __inline_strcpy 9#define strcpy __inline_strcpy
4#include <asm/string.h> 10#include <asm/string.h>
5#undef strcpy 11#undef strcpy
6 12
13#include <linux/module.h>
14
7char *strcpy(char *dest, const char *src) 15char *strcpy(char *dest, const char *src)
8{ 16{
9 return __inline_strcpy(dest, src); 17 return __inline_strcpy(dest, src);
10} 18}
19EXPORT_SYMBOL(strcpy);
diff --git a/arch/blackfin/lib/strncmp.c b/arch/blackfin/lib/strncmp.c
index d791f120bff7..2aaae78a68e0 100644
--- a/arch/blackfin/lib/strncmp.c
+++ b/arch/blackfin/lib/strncmp.c
@@ -1,10 +1,19 @@
1#include <linux/types.h> 1/*
2 * Provide symbol in case str func is not inlined.
3 *
4 * Copyright (c) 2006-2007 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
2 8
3#define strncmp __inline_strncmp 9#define strncmp __inline_strncmp
4#include <asm/string.h> 10#include <asm/string.h>
5#undef strncmp 11#undef strncmp
6 12
13#include <linux/module.h>
14
7int strncmp(const char *cs, const char *ct, size_t count) 15int strncmp(const char *cs, const char *ct, size_t count)
8{ 16{
9 return __inline_strncmp(cs, ct, count); 17 return __inline_strncmp(cs, ct, count);
10} 18}
19EXPORT_SYMBOL(strncmp);
diff --git a/arch/blackfin/lib/strncpy.c b/arch/blackfin/lib/strncpy.c
index 1fecb5c71ffb..ea1dc6bf2373 100644
--- a/arch/blackfin/lib/strncpy.c
+++ b/arch/blackfin/lib/strncpy.c
@@ -1,10 +1,19 @@
1#include <linux/types.h> 1/*
2 * Provide symbol in case str func is not inlined.
3 *
4 * Copyright (c) 2006-2007 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
2 8
3#define strncpy __inline_strncpy 9#define strncpy __inline_strncpy
4#include <asm/string.h> 10#include <asm/string.h>
5#undef strncpy 11#undef strncpy
6 12
13#include <linux/module.h>
14
7char *strncpy(char *dest, const char *src, size_t n) 15char *strncpy(char *dest, const char *src, size_t n)
8{ 16{
9 return __inline_strncpy(dest, src, n); 17 return __inline_strncpy(dest, src, n);
10} 18}
19EXPORT_SYMBOL(strncpy);
diff --git a/arch/blackfin/lib/udivdi3.S b/arch/blackfin/lib/udivdi3.S
deleted file mode 100644
index ad1ebee675e1..000000000000
--- a/arch/blackfin/lib/udivdi3.S
+++ /dev/null
@@ -1,375 +0,0 @@
1/*
2 * udivdi3.S - unsigned long long division
3 *
4 * Copyright 2003-2007 Analog Devices Inc.
5 * Enter bugs at http://blackfin.uclinux.org/
6 *
7 * Licensed under the GPLv2 or later.
8 */
9
10#include <linux/linkage.h>
11
12#define CARRY AC0
13
14#ifdef CONFIG_ARITHMETIC_OPS_L1
15.section .l1.text
16#else
17.text
18#endif
19
20
21ENTRY(___udivdi3)
22 R3 = [SP + 12];
23 [--SP] = (R7:4, P5:3);
24
25 /* Attempt to use divide primitive first; these will handle
26 ** most cases, and they're quick - avoids stalls incurred by
27 ** testing for identities.
28 */
29
30 R4 = R2 | R3;
31 CC = R4 == 0;
32 IF CC JUMP .LDIV_BY_ZERO;
33
34 R4.H = 0x8000;
35 R4 >>>= 16; // R4 now 0xFFFF8000
36 R5 = R0 | R2; // If either dividend or
37 R4 = R5 & R4; // divisor have bits in
38 CC = R4; // top half or low half's sign
39 IF CC JUMP .LIDENTS; // bit, skip builtins.
40 R4 = R1 | R3; // Also check top halves
41 CC = R4;
42 IF CC JUMP .LIDENTS;
43
44 /* Can use the builtins. */
45
46 AQ = CC; // Clear AQ (CC==0)
47 DIVQ(R0, R2);
48 DIVQ(R0, R2);
49 DIVQ(R0, R2);
50 DIVQ(R0, R2);
51 DIVQ(R0, R2);
52 DIVQ(R0, R2);
53 DIVQ(R0, R2);
54 DIVQ(R0, R2);
55 DIVQ(R0, R2);
56 DIVQ(R0, R2);
57 DIVQ(R0, R2);
58 DIVQ(R0, R2);
59 DIVQ(R0, R2);
60 DIVQ(R0, R2);
61 DIVQ(R0, R2);
62 DIVQ(R0, R2);
63 DIVQ(R0, R2);
64 R0 = R0.L (Z);
65 R1 = 0;
66 (R7:4, P5:3) = [SP++];
67 RTS;
68
69.LIDENTS:
70 /* Test for common identities. Value to be returned is
71 ** placed in R6,R7.
72 */
73 // Check for 0/y, return 0
74 R4 = R0 | R1;
75 CC = R4 == 0;
76 IF CC JUMP .LRETURN_R0;
77
78 // Check for x/x, return 1
79 R6 = R0 - R2; // If x == y, then both R6 and R7 will be zero
80 R7 = R1 - R3;
81 R4 = R6 | R7; // making R4 zero.
82 R6 += 1; // which would now make R6:R7==1.
83 CC = R4 == 0;
84 IF CC JUMP .LRETURN_IDENT;
85
86 // Check for x/1, return x
87 R6 = R0;
88 R7 = R1;
89 CC = R3 == 0;
90 IF !CC JUMP .Lnexttest;
91 CC = R2 == 1;
92 IF CC JUMP .LRETURN_IDENT;
93
94.Lnexttest:
95 R4.L = ONES R2; // check for div by power of two which
96 R5.L = ONES R3; // can be done using a shift
97 R6 = PACK (R5.L, R4.L);
98 CC = R6 == 1;
99 IF CC JUMP .Lpower_of_two_upper_zero;
100 R6 = PACK (R4.L, R5.L);
101 CC = R6 == 1;
102 IF CC JUMP .Lpower_of_two_lower_zero;
103
104 // Check for x < y, return 0
105 R6 = 0;
106 R7 = R6;
107 CC = R1 < R3 (IU);
108 IF CC JUMP .LRETURN_IDENT;
109 CC = R1 == R3;
110 IF !CC JUMP .Lno_idents;
111 CC = R0 < R2 (IU);
112 IF CC JUMP .LRETURN_IDENT;
113
114.Lno_idents: // Idents don't match. Go for the full operation
115
116
117 // If X, or X and Y have high bit set, it'll affect the
118 // results, so shift right one to stop this. Note: we've already
119 // checked that X >= Y, so Y's msb won't be set unless X's
120 // is.
121
122 R4 = 0;
123 CC = R1 < 0;
124 IF !CC JUMP .Lx_msb_clear;
125 CC = !CC; // 1 -> 0;
126 R1 = ROT R1 BY -1; // Shift X >> 1
127 R0 = ROT R0 BY -1; // lsb -> CC
128 BITSET(R4,31); // to record only x msb was set
129 CC = R3 < 0;
130 IF !CC JUMP .Ly_msb_clear;
131 CC = !CC;
132 R3 = ROT R3 BY -1; // Shift Y >> 1
133 R2 = ROT R2 BY -1;
134 BITCLR(R4,31); // clear bit to record only x msb was set
135
136.Ly_msb_clear:
137.Lx_msb_clear:
138 // Bit 31 in R4 indicates X msb set, but Y msb wasn't, and no bits
139 // were lost, so we should shift result left by one.
140
141 [--SP] = R4; // save for later
142
143 // In the loop that follows, each iteration we add
144 // either Y' or -Y' to the Remainder. We compute the
145 // negated Y', and store, for convenience. Y' goes
146 // into P0:P1, while -Y' goes into P2:P3.
147
148 P0 = R2;
149 P1 = R3;
150 R2 = -R2;
151 CC = CARRY;
152 CC = !CC;
153 R4 = CC;
154 R3 = -R3;
155 R3 = R3 - R4;
156
157 R6 = 0; // remainder = 0
158 R7 = R6;
159
160 [--SP] = R2; P2 = SP;
161 [--SP] = R3; P3 = SP;
162 [--SP] = R6; P5 = SP; // AQ = 0
163 [--SP] = P1;
164
165 /* In the loop that follows, we use the following
166 ** register assignments:
167 ** R0,R1 X, workspace
168 ** R2,R3 Y, workspace
169 ** R4,R5 partial Div
170 ** R6,R7 partial remainder
171 ** P5 AQ
172 ** The remainder and div form a 128-bit number, with
173 ** the remainder in the high 64-bits.
174 */
175 R4 = R0; // Div = X'
176 R5 = R1;
177 R3 = 0;
178
179 P4 = 64; // Iterate once per bit
180 LSETUP(.LULST,.LULEND) LC0 = P4;
181.LULST:
182 /* Shift Div and remainder up by one. The bit shifted
183 ** out of the top of the quotient is shifted into the bottom
184 ** of the remainder.
185 */
186 CC = R3;
187 R4 = ROT R4 BY 1;
188 R5 = ROT R5 BY 1 || // low q to high q
189 R2 = [P5]; // load saved AQ
190 R6 = ROT R6 BY 1 || // high q to low r
191 R0 = [P2]; // load -Y'
192 R7 = ROT R7 BY 1 || // low r to high r
193 R1 = [P3];
194
195 // Assume add -Y'
196 CC = R2 < 0; // But if AQ is set...
197 IF CC R0 = P0; // then add Y' instead
198 IF CC R1 = P1;
199
200 R6 = R6 + R0; // Rem += (Y' or -Y')
201 CC = CARRY;
202 R0 = CC;
203 R7 = R7 + R1;
204 R7 = R7 + R0 (NS) ||
205 R1 = [SP];
206 // Set the next AQ bit
207 R1 = R7 ^ R1; // from Remainder and Y'
208 R1 = R1 >> 31 || // Negate AQ's value, and
209 [P5] = R1; // save next AQ
210 BITTGL(R1, 0); // add neg AQ to the Div
211.LULEND: R4 = R4 + R1;
212
213 R6 = [SP + 16];
214
215 R0 = R4;
216 R1 = R5;
217 CC = BITTST(R6,30); // Just set CC=0
218 R4 = ROT R0 BY 1; // but if we had to shift X,
219 R5 = ROT R1 BY 1; // and didn't shift any bits out,
220 CC = BITTST(R6,31); // then the result will be half as
221 IF CC R0 = R4; // much as required, so shift left
222 IF CC R1 = R5; // one space.
223
224 SP += 20;
225 (R7:4, P5:3) = [SP++];
226 RTS;
227
228.Lpower_of_two:
229 /* Y has a single bit set, which means it's a power of two.
230 ** That means we can perform the division just by shifting
231 ** X to the right the appropriate number of bits
232 */
233
234 /* signbits returns the number of sign bits, minus one.
235 ** 1=>30, 2=>29, ..., 0x40000000=>0. Which means we need
236 ** to shift right n-signbits spaces. It also means 0x80000000
237 ** is a special case, because that *also* gives a signbits of 0
238 */
239.Lpower_of_two_lower_zero:
240 R7 = 0;
241 R6 = R1 >> 31;
242 CC = R3 < 0;
243 IF CC JUMP .LRETURN_IDENT;
244
245 R2.L = SIGNBITS R3;
246 R2 = R2.L (Z);
247 R2 += -62;
248 (R7:4, P5:3) = [SP++];
249 JUMP ___lshftli;
250
251.Lpower_of_two_upper_zero:
252 CC = R2 < 0;
253 IF CC JUMP .Lmaxint_shift;
254
255 R2.L = SIGNBITS R2;
256 R2 = R2.L (Z);
257 R2 += -30;
258 (R7:4, P5:3) = [SP++];
259 JUMP ___lshftli;
260
261.Lmaxint_shift:
262 R2 = -31;
263 (R7:4, P5:3) = [SP++];
264 JUMP ___lshftli;
265
266.LRETURN_IDENT:
267 R0 = R6;
268 R1 = R7;
269.LRETURN_R0:
270 (R7:4, P5:3) = [SP++];
271 RTS;
272.LDIV_BY_ZERO:
273 R0 = ~R2;
274 R1 = R0;
275 (R7:4, P5:3) = [SP++];
276 RTS;
277
278ENDPROC(___udivdi3)
279
280
281ENTRY(___lshftli)
282 CC = R2 == 0;
283 IF CC JUMP .Lfinished; // nothing to do
284 CC = R2 < 0;
285 IF CC JUMP .Lrshift;
286 R3 = 64;
287 CC = R2 < R3;
288 IF !CC JUMP .Lretzero;
289
290 // We're shifting left, and it's less than 64 bits, so
291 // a valid result will be returned.
292
293 R3 >>= 1; // R3 now 32
294 CC = R2 < R3;
295
296 IF !CC JUMP .Lzerohalf;
297
298 // We're shifting left, between 1 and 31 bits, which means
299 // some of the low half will be shifted into the high half.
300 // Work out how much.
301
302 R3 = R3 - R2;
303
304 // Save that much data from the bottom half.
305
306 P1 = R7;
307 R7 = R0;
308 R7 >>= R3;
309
310 // Adjust both parts of the parameter.
311
312 R0 <<= R2;
313 R1 <<= R2;
314
315 // And include the bits moved across.
316
317 R1 = R1 | R7;
318 R7 = P1;
319 RTS;
320
321.Lzerohalf:
322 // We're shifting left, between 32 and 63 bits, so the
323 // bottom half will become zero, and the top half will
324 // lose some bits. How many?
325
326 R2 = R2 - R3; // N - 32
327 R1 = LSHIFT R0 BY R2.L;
328 R0 = R0 - R0;
329 RTS;
330
331.Lretzero:
332 R0 = R0 - R0;
333 R1 = R0;
334.Lfinished:
335 RTS;
336
337.Lrshift:
338 // We're shifting right, but by how much?
339 R2 = -R2;
340 R3 = 64;
341 CC = R2 < R3;
342 IF !CC JUMP .Lretzero;
343
344 // Shifting right less than 64 bits, so some result bits will
345 // be retained.
346
347 R3 >>= 1; // R3 now 32
348 CC = R2 < R3;
349 IF !CC JUMP .Lsignhalf;
350
351 // Shifting right between 1 and 31 bits, so need to copy
352 // data across words.
353
354 P1 = R7;
355 R3 = R3 - R2;
356 R7 = R1;
357 R7 <<= R3;
358 R1 >>= R2;
359 R0 >>= R2;
360 R0 = R7 | R0;
361 R7 = P1;
362 RTS;
363
364.Lsignhalf:
365 // Shifting right between 32 and 63 bits, so the top half
366 // will become all zero-bits, and the bottom half is some
367 // of the top half. But how much?
368
369 R2 = R2 - R3;
370 R0 = R1;
371 R0 >>= R2;
372 R1 = 0;
373 RTS;
374
375ENDPROC(___lshftli)
diff --git a/arch/blackfin/mach-bf527/Kconfig b/arch/blackfin/mach-bf527/Kconfig
index 50321f723dee..5c736837d4bf 100644
--- a/arch/blackfin/mach-bf527/Kconfig
+++ b/arch/blackfin/mach-bf527/Kconfig
@@ -1,5 +1,7 @@
1if (BF52x) 1if (BF52x)
2 2
3source "arch/blackfin/mach-bf527/boards/Kconfig"
4
3menu "BF527 Specific Configuration" 5menu "BF527 Specific Configuration"
4 6
5comment "Alternative Multiplexing Scheme" 7comment "Alternative Multiplexing Scheme"
diff --git a/arch/blackfin/mach-bf527/boards/Kconfig b/arch/blackfin/mach-bf527/boards/Kconfig
new file mode 100644
index 000000000000..6a570ad03746
--- /dev/null
+++ b/arch/blackfin/mach-bf527/boards/Kconfig
@@ -0,0 +1,12 @@
1choice
2 prompt "System type"
3 default BFIN527_EZKIT
4 help
5 Select your board!
6
7config BFIN527_EZKIT
8 bool "BF527-EZKIT"
9 help
10 BF527-EZKIT-LITE board support.
11
12endchoice
diff --git a/arch/blackfin/mach-bf527/boards/Makefile b/arch/blackfin/mach-bf527/boards/Makefile
index 912ac8ebc889..7277d35ef111 100644
--- a/arch/blackfin/mach-bf527/boards/Makefile
+++ b/arch/blackfin/mach-bf527/boards/Makefile
@@ -1,7 +1,5 @@
1# 1#
2# arch/blackfin/mach-bf532/boards/Makefile 2# arch/blackfin/mach-bf527/boards/Makefile
3# 3#
4 4
5obj-y += eth_mac.o 5obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o
6obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o
7
diff --git a/arch/blackfin/mach-bf527/boards/eth_mac.c b/arch/blackfin/mach-bf527/boards/eth_mac.c
deleted file mode 100644
index a725cc8a9290..000000000000
--- a/arch/blackfin/mach-bf527/boards/eth_mac.c
+++ /dev/null
@@ -1,50 +0,0 @@
1/*
2 * arch/blackfin/mach-bf537/board/eth_mac.c
3 *
4 * Copyright (C) 2007 Analog Devices, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#include <linux/module.h>
21#include <asm/blackfin.h>
22
23#if defined(CONFIG_GENERIC_BOARD) || defined(CONFIG_BFIN537_STAMP)
24
25/*
26 * Currently the MAC address is saved in Flash by U-Boot
27 */
28#define FLASH_MAC 0x203f0000
29
30void get_bf537_ether_addr(char *addr)
31{
32 unsigned int flash_mac = (unsigned int) FLASH_MAC;
33 *(u32 *)(&(addr[0])) = bfin_read32(flash_mac);
34 flash_mac += 4;
35 *(u16 *)(&(addr[4])) = bfin_read16(flash_mac);
36}
37
38#else
39
40/*
41 * Provide MAC address function for other specific board setting
42 */
43void get_bf537_ether_addr(char *addr)
44{
45 printk(KERN_WARNING "%s: No valid Ethernet MAC address found\n", __FILE__);
46}
47
48#endif
49
50EXPORT_SYMBOL(get_bf537_ether_addr);
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index bf1bedcc8868..003e2ac654d8 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -35,17 +35,18 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
42#include <linux/interrupt.h> 42#include <linux/interrupt.h>
43#include <linux/usb_sl811.h> 43#include <linux/usb/sl811.h>
44#include <asm/cplb.h> 44#include <asm/cplb.h>
45#include <asm/dma.h> 45#include <asm/dma.h>
46#include <asm/bfin5xx_spi.h> 46#include <asm/bfin5xx_spi.h>
47#include <asm/reboot.h> 47#include <asm/reboot.h>
48#include <asm/nand.h> 48#include <asm/nand.h>
49#include <asm/portmux.h>
49#include <linux/spi/ad7877.h> 50#include <linux/spi/ad7877.h>
50 51
51/* 52/*
@@ -450,6 +451,13 @@ static const struct ad7877_platform_data bfin_ad7877_ts_info = {
450}; 451};
451#endif 452#endif
452 453
454#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
455 && defined(CONFIG_SND_SOC_WM8731_SPI)
456static struct bfin5xx_spi_chip spi_wm8731_chip_info = {
457 .enable_dma = 0,
458 .bits_per_word = 16,
459};
460#endif
453static struct spi_board_info bfin_spi_board_info[] __initdata = { 461static struct spi_board_info bfin_spi_board_info[] __initdata = {
454#if defined(CONFIG_MTD_M25P80) \ 462#if defined(CONFIG_MTD_M25P80) \
455 || defined(CONFIG_MTD_M25P80_MODULE) 463 || defined(CONFIG_MTD_M25P80_MODULE)
@@ -551,17 +559,29 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
551 .platform_data = &bfin_ad7877_ts_info, 559 .platform_data = &bfin_ad7877_ts_info,
552 .irq = IRQ_PF6, 560 .irq = IRQ_PF6,
553 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 561 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
554 .bus_num = 1, 562 .bus_num = 0,
555 .chip_select = 1, 563 .chip_select = 1,
556 .controller_data = &spi_ad7877_chip_info, 564 .controller_data = &spi_ad7877_chip_info,
557 }, 565 },
558#endif 566#endif
567#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
568 && defined(CONFIG_SND_SOC_WM8731_SPI)
569 {
570 .modalias = "wm8731",
571 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
572 .bus_num = 0,
573 .chip_select = 5,
574 .controller_data = &spi_wm8731_chip_info,
575 .mode = SPI_MODE_0,
576 },
577#endif
559}; 578};
560 579
561/* SPI controller data */ 580/* SPI controller data */
562static struct bfin5xx_spi_master bfin_spi0_info = { 581static struct bfin5xx_spi_master bfin_spi0_info = {
563 .num_chipselect = 8, 582 .num_chipselect = 8,
564 .enable_dma = 1, /* master has the ability to do dma transfer */ 583 .enable_dma = 1, /* master has the ability to do dma transfer */
584 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
565}; 585};
566 586
567/* SPI (0) */ 587/* SPI (0) */
@@ -788,3 +808,14 @@ void native_machine_restart(char *cmd)
788 if ((bfin_read_SYSCR() & 0x7) == 0x3) 808 if ((bfin_read_SYSCR() & 0x7) == 0x3)
789 bfin_gpio_reset_spi0_ssel1(); 809 bfin_gpio_reset_spi0_ssel1();
790} 810}
811
812/*
813 * Currently the MAC address is saved in Flash by U-Boot
814 */
815#define FLASH_MAC 0x203f0000
816void bfin_get_ether_addr(char *addr)
817{
818 *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
819 *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
820}
821EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf533/Kconfig b/arch/blackfin/mach-bf533/Kconfig
index 14297b3ed5c3..76beb75f12da 100644
--- a/arch/blackfin/mach-bf533/Kconfig
+++ b/arch/blackfin/mach-bf533/Kconfig
@@ -1,5 +1,7 @@
1if (BF533 || BF532 || BF531) 1if (BF533 || BF532 || BF531)
2 2
3source "arch/blackfin/mach-bf533/boards/Kconfig"
4
3menu "BF533/2/1 Specific Configuration" 5menu "BF533/2/1 Specific Configuration"
4 6
5comment "Interrupt Priority Assignment" 7comment "Interrupt Priority Assignment"
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c
index b941550f9568..6bcf4047f89c 100644
--- a/arch/blackfin/mach-bf533/boards/H8606.c
+++ b/arch/blackfin/mach-bf533/boards/H8606.c
@@ -36,20 +36,21 @@
36#include <linux/spi/spi.h> 36#include <linux/spi/spi.h>
37#include <linux/spi/flash.h> 37#include <linux/spi/flash.h>
38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
39#include <linux/usb_isp1362.h> 39#include <linux/usb/isp1362.h>
40#endif 40#endif
41#include <linux/pata_platform.h> 41#include <linux/pata_platform.h>
42#include <linux/irq.h> 42#include <linux/irq.h>
43#include <asm/dma.h> 43#include <asm/dma.h>
44#include <asm/bfin5xx_spi.h> 44#include <asm/bfin5xx_spi.h>
45#include <asm/reboot.h> 45#include <asm/reboot.h>
46#include <asm/portmux.h>
46 47
47/* 48/*
48 * Name the Board for the /proc/cpuinfo 49 * Name the Board for the /proc/cpuinfo
49 */ 50 */
50const char bfin_board_name[] = "HV Sistemas H8606"; 51const char bfin_board_name[] = "HV Sistemas H8606";
51 52
52#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_BFIN_MODULE) 53#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
53static struct platform_device rtc_device = { 54static struct platform_device rtc_device = {
54 .name = "rtc-bfin", 55 .name = "rtc-bfin",
55 .id = -1, 56 .id = -1,
@@ -93,10 +94,6 @@ static struct resource smc91x_resources[] = {
93 .end = IRQ_PROG_INTB, 94 .end = IRQ_PROG_INTB,
94 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 95 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
95 }, { 96 }, {
96 /*
97 * denotes the flag pin and is used directly if
98 * CONFIG_IRQCHIP_DEMUX_GPIO is defined.
99 */
100 .start = IRQ_PF7, 97 .start = IRQ_PF7,
101 .end = IRQ_PF7, 98 .end = IRQ_PF7,
102 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 99 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
@@ -269,6 +266,7 @@ static struct resource bfin_spi0_resource[] = {
269static struct bfin5xx_spi_master bfin_spi0_info = { 266static struct bfin5xx_spi_master bfin_spi0_info = {
270 .num_chipselect = 8, 267 .num_chipselect = 8,
271 .enable_dma = 1, /* master has the ability to do dma transfer */ 268 .enable_dma = 1, /* master has the ability to do dma transfer */
269 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
272}; 270};
273 271
274static struct platform_device bfin_spi0_device = { 272static struct platform_device bfin_spi0_device = {
@@ -342,4 +340,4 @@ static int __init H8606_init(void)
342 return 0; 340 return 0;
343} 341}
344 342
345arch_initcall(H8606_init); \ No newline at end of file 343arch_initcall(H8606_init);
diff --git a/arch/blackfin/mach-bf533/boards/Kconfig b/arch/blackfin/mach-bf533/boards/Kconfig
new file mode 100644
index 000000000000..751de5110afc
--- /dev/null
+++ b/arch/blackfin/mach-bf533/boards/Kconfig
@@ -0,0 +1,34 @@
1choice
2 prompt "System type"
3 default BFIN533_STAMP
4 help
5 Select your board!
6
7config BFIN533_EZKIT
8 bool "BF533-EZKIT"
9 help
10 BF533-EZKIT-LITE board support.
11
12config BFIN533_STAMP
13 bool "BF533-STAMP"
14 help
15 BF533-STAMP board support.
16
17config BFIN533_BLUETECHNIX_CM
18 bool "Bluetechnix CM-BF533"
19 depends on (BF533)
20 help
21 CM-BF533 support for EVAL- and DEV-Board.
22
23config H8606_HVSISTEMAS
24 bool "HV Sistemas H8606"
25 depends on (BF532)
26 help
27 HV Sistemas H8606 board support.
28
29config GENERIC_BF533_BOARD
30 bool "Generic"
31 help
32 Generic or Custom board support.
33
34endchoice
diff --git a/arch/blackfin/mach-bf533/boards/Makefile b/arch/blackfin/mach-bf533/boards/Makefile
index 2452b456ccbd..54f57fb9791e 100644
--- a/arch/blackfin/mach-bf533/boards/Makefile
+++ b/arch/blackfin/mach-bf533/boards/Makefile
@@ -2,7 +2,7 @@
2# arch/blackfin/mach-bf533/boards/Makefile 2# arch/blackfin/mach-bf533/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BOARD) += generic_board.o 5obj-$(CONFIG_GENERIC_BF533_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN533_STAMP) += stamp.o 6obj-$(CONFIG_BFIN533_STAMP) += stamp.o
7obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o 7obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o
8obj-$(CONFIG_BFIN533_BLUETECHNIX_CM) += cm_bf533.o 8obj-$(CONFIG_BFIN533_BLUETECHNIX_CM) += cm_bf533.o
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c
index a863522a4467..21df2f375497 100644
--- a/arch/blackfin/mach-bf533/boards/cm_bf533.c
+++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c
@@ -33,11 +33,12 @@
33#include <linux/mtd/partitions.h> 33#include <linux/mtd/partitions.h>
34#include <linux/spi/spi.h> 34#include <linux/spi/spi.h>
35#include <linux/spi/flash.h> 35#include <linux/spi/flash.h>
36#include <linux/usb_isp1362.h> 36#include <linux/usb/isp1362.h>
37#include <linux/pata_platform.h> 37#include <linux/pata_platform.h>
38#include <linux/irq.h> 38#include <linux/irq.h>
39#include <asm/dma.h> 39#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 40#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h>
41 42
42/* 43/*
43 * Name the Board for the /proc/cpuinfo 44 * Name the Board for the /proc/cpuinfo
@@ -175,6 +176,7 @@ static struct resource bfin_spi0_resource[] = {
175static struct bfin5xx_spi_master bfin_spi0_info = { 176static struct bfin5xx_spi_master bfin_spi0_info = {
176 .num_chipselect = 8, 177 .num_chipselect = 8,
177 .enable_dma = 1, /* master has the ability to do dma transfer */ 178 .enable_dma = 1, /* master has the ability to do dma transfer */
179 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
178}; 180};
179 181
180static struct platform_device bfin_spi0_device = { 182static struct platform_device bfin_spi0_device = {
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index 34b63920e272..be852034a68b 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -34,11 +34,12 @@
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#include <linux/usb_isp1362.h> 37#include <linux/usb/isp1362.h>
38#include <linux/pata_platform.h> 38#include <linux/pata_platform.h>
39#include <linux/irq.h> 39#include <linux/irq.h>
40#include <asm/dma.h> 40#include <asm/dma.h>
41#include <asm/bfin5xx_spi.h> 41#include <asm/bfin5xx_spi.h>
42#include <asm/portmux.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -187,6 +188,7 @@ static struct resource bfin_spi0_resource[] = {
187static struct bfin5xx_spi_master bfin_spi0_info = { 188static struct bfin5xx_spi_master bfin_spi0_info = {
188 .num_chipselect = 8, 189 .num_chipselect = 8,
189 .enable_dma = 1, /* master has the ability to do dma transfer */ 190 .enable_dma = 1, /* master has the ability to do dma transfer */
191 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
190}; 192};
191 193
192static struct platform_device bfin_spi0_device = { 194static struct platform_device bfin_spi0_device = {
diff --git a/arch/blackfin/mach-bf533/boards/generic_board.c b/arch/blackfin/mach-bf533/boards/generic_board.c
index 310b7772c458..e359a0d6467f 100644
--- a/arch/blackfin/mach-bf533/boards/generic_board.c
+++ b/arch/blackfin/mach-bf533/boards/generic_board.c
@@ -58,10 +58,6 @@ static struct resource smc91x_resources[] = {
58 .end = IRQ_PROG_INTB, 58 .end = IRQ_PROG_INTB,
59 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 59 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
60 }, { 60 }, {
61 /*
62 * denotes the flag pin and is used directly if
63 * CONFIG_IRQCHIP_DEMUX_GPIO is defined.
64 */
65 .start = IRQ_PF7, 61 .start = IRQ_PF7,
66 .end = IRQ_PF7, 62 .end = IRQ_PF7,
67 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 63 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 62ffa500420f..8fde8d832850 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -35,13 +35,14 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
42#include <asm/dma.h> 42#include <asm/dma.h>
43#include <asm/bfin5xx_spi.h> 43#include <asm/bfin5xx_spi.h>
44#include <asm/reboot.h> 44#include <asm/reboot.h>
45#include <asm/portmux.h>
45 46
46/* 47/*
47 * Name the Board for the /proc/cpuinfo 48 * Name the Board for the /proc/cpuinfo
@@ -286,6 +287,7 @@ static struct resource bfin_spi0_resource[] = {
286static struct bfin5xx_spi_master bfin_spi0_info = { 287static struct bfin5xx_spi_master bfin_spi0_info = {
287 .num_chipselect = 8, 288 .num_chipselect = 8,
288 .enable_dma = 1, /* master has the ability to do dma transfer */ 289 .enable_dma = 1, /* master has the ability to do dma transfer */
290 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
289}; 291};
290 292
291static struct platform_device bfin_spi0_device = { 293static struct platform_device bfin_spi0_device = {
diff --git a/arch/blackfin/mach-bf537/Kconfig b/arch/blackfin/mach-bf537/Kconfig
index e6648db09519..8255374c04aa 100644
--- a/arch/blackfin/mach-bf537/Kconfig
+++ b/arch/blackfin/mach-bf537/Kconfig
@@ -1,5 +1,7 @@
1if (BF537 || BF534 || BF536) 1if (BF537 || BF534 || BF536)
2 2
3source "arch/blackfin/mach-bf537/boards/Kconfig"
4
3menu "BF537 Specific Configuration" 5menu "BF537 Specific Configuration"
4 6
5comment "Interrupt Priority Assignment" 7comment "Interrupt Priority Assignment"
diff --git a/arch/blackfin/mach-bf537/boards/Kconfig b/arch/blackfin/mach-bf537/boards/Kconfig
new file mode 100644
index 000000000000..96a15196e416
--- /dev/null
+++ b/arch/blackfin/mach-bf537/boards/Kconfig
@@ -0,0 +1,29 @@
1choice
2 prompt "System type"
3 default BFIN537_STAMP
4 help
5 Select your board!
6
7config BFIN537_STAMP
8 bool "BF537-STAMP"
9 help
10 BF537-STAMP board support.
11
12config BFIN537_BLUETECHNIX_CM
13 bool "Bluetechnix CM-BF537"
14 depends on (BF537)
15 help
16 CM-BF537 support for EVAL- and DEV-Board.
17
18config PNAV10
19 bool "PNAV board"
20 depends on (BF537)
21 help
22 PNAV board support.
23
24config GENERIC_BF537_BOARD
25 bool "Generic"
26 help
27 Generic or Custom board support.
28
29endchoice
diff --git a/arch/blackfin/mach-bf537/boards/Makefile b/arch/blackfin/mach-bf537/boards/Makefile
index 23323cacc3aa..94a85174283a 100644
--- a/arch/blackfin/mach-bf537/boards/Makefile
+++ b/arch/blackfin/mach-bf537/boards/Makefile
@@ -2,8 +2,7 @@
2# arch/blackfin/mach-bf537/boards/Makefile 2# arch/blackfin/mach-bf537/boards/Makefile
3# 3#
4 4
5obj-y += eth_mac.o 5obj-$(CONFIG_GENERIC_BF537_BOARD) += generic_board.o
6obj-$(CONFIG_GENERIC_BOARD) += generic_board.o 6obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o
7obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o 7obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o
8obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o 8obj-$(CONFIG_PNAV10) += pnav10.o
9obj-$(CONFIG_PNAV10) += pnav10.o
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index 2915931045e3..c0fb06dbc42e 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -34,11 +34,12 @@
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#include <linux/usb_isp1362.h> 37#include <linux/usb/isp1362.h>
38#include <linux/pata_platform.h> 38#include <linux/pata_platform.h>
39#include <linux/irq.h> 39#include <linux/irq.h>
40#include <asm/dma.h> 40#include <asm/dma.h>
41#include <asm/bfin5xx_spi.h> 41#include <asm/bfin5xx_spi.h>
42#include <asm/portmux.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -194,6 +195,7 @@ static struct resource bfin_spi0_resource[] = {
194static struct bfin5xx_spi_master bfin_spi0_info = { 195static struct bfin5xx_spi_master bfin_spi0_info = {
195 .num_chipselect = 8, 196 .num_chipselect = 8,
196 .enable_dma = 1, /* master has the ability to do dma transfer */ 197 .enable_dma = 1, /* master has the ability to do dma transfer */
198 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
197}; 199};
198 200
199static struct platform_device bfin_spi0_device = { 201static struct platform_device bfin_spi0_device = {
@@ -425,3 +427,10 @@ static int __init cm_bf537_init(void)
425} 427}
426 428
427arch_initcall(cm_bf537_init); 429arch_initcall(cm_bf537_init);
430
431void bfin_get_ether_addr(char *addr)
432{
433 random_ether_addr(addr);
434 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
435}
436EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/eth_mac.c b/arch/blackfin/mach-bf537/boards/eth_mac.c
deleted file mode 100644
index a725cc8a9290..000000000000
--- a/arch/blackfin/mach-bf537/boards/eth_mac.c
+++ /dev/null
@@ -1,50 +0,0 @@
1/*
2 * arch/blackfin/mach-bf537/board/eth_mac.c
3 *
4 * Copyright (C) 2007 Analog Devices, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#include <linux/module.h>
21#include <asm/blackfin.h>
22
23#if defined(CONFIG_GENERIC_BOARD) || defined(CONFIG_BFIN537_STAMP)
24
25/*
26 * Currently the MAC address is saved in Flash by U-Boot
27 */
28#define FLASH_MAC 0x203f0000
29
30void get_bf537_ether_addr(char *addr)
31{
32 unsigned int flash_mac = (unsigned int) FLASH_MAC;
33 *(u32 *)(&(addr[0])) = bfin_read32(flash_mac);
34 flash_mac += 4;
35 *(u16 *)(&(addr[4])) = bfin_read16(flash_mac);
36}
37
38#else
39
40/*
41 * Provide MAC address function for other specific board setting
42 */
43void get_bf537_ether_addr(char *addr)
44{
45 printk(KERN_WARNING "%s: No valid Ethernet MAC address found\n", __FILE__);
46}
47
48#endif
49
50EXPORT_SYMBOL(get_bf537_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c
index 255da7a98481..09f4bfbd2350 100644
--- a/arch/blackfin/mach-bf537/boards/generic_board.c
+++ b/arch/blackfin/mach-bf537/boards/generic_board.c
@@ -35,7 +35,7 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
@@ -44,6 +44,7 @@
44#include <asm/dma.h> 44#include <asm/dma.h>
45#include <asm/bfin5xx_spi.h> 45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h> 46#include <asm/reboot.h>
47#include <asm/portmux.h>
47#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
48 49
49/* 50/*
@@ -502,7 +503,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
502 .platform_data = &bfin_ad7877_ts_info, 503 .platform_data = &bfin_ad7877_ts_info,
503 .irq = IRQ_PF6, 504 .irq = IRQ_PF6,
504 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 505 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
505 .bus_num = 1, 506 .bus_num = 0,
506 .chip_select = 1, 507 .chip_select = 1,
507 .controller_data = &spi_ad7877_chip_info, 508 .controller_data = &spi_ad7877_chip_info,
508 }, 509 },
@@ -513,6 +514,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
513static struct bfin5xx_spi_master bfin_spi0_info = { 514static struct bfin5xx_spi_master bfin_spi0_info = {
514 .num_chipselect = 8, 515 .num_chipselect = 8,
515 .enable_dma = 1, /* master has the ability to do dma transfer */ 516 .enable_dma = 1, /* master has the ability to do dma transfer */
517 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
516}; 518};
517 519
518/* SPI (0) */ 520/* SPI (0) */
@@ -730,3 +732,10 @@ void native_machine_restart(char *cmd)
730 if ((bfin_read_SYSCR() & 0x7) == 0x3) 732 if ((bfin_read_SYSCR() & 0x7) == 0x3)
731 bfin_gpio_reset_spi0_ssel1(); 733 bfin_gpio_reset_spi0_ssel1();
732} 734}
735
736void bfin_get_ether_addr(char *addr)
737{
738 random_ether_addr(addr);
739 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
740}
741EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 87b808926789..fd5f4a6f08e4 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -35,11 +35,12 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/irq.h> 40#include <linux/irq.h>
41#include <asm/dma.h> 41#include <asm/dma.h>
42#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
43#include <asm/portmux.h>
43#include <linux/usb/sl811.h> 44#include <linux/usb/sl811.h>
44 45
45#include <linux/spi/ad7877.h> 46#include <linux/spi/ad7877.h>
@@ -295,7 +296,7 @@ static struct bfin5xx_spi_chip spi_mmc_chip_info = {
295 296
296#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 297#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
297static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 298static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
298 .cs_change_per_word = 1, 299 .cs_change_per_word = 0,
299 .enable_dma = 0, 300 .enable_dma = 0,
300 .bits_per_word = 16, 301 .bits_per_word = 16,
301}; 302};
@@ -387,7 +388,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
387 .platform_data = &bfin_ad7877_ts_info, 388 .platform_data = &bfin_ad7877_ts_info,
388 .irq = IRQ_PF2, 389 .irq = IRQ_PF2,
389 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 390 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
390 .bus_num = 1, 391 .bus_num = 0,
391 .chip_select = 5, 392 .chip_select = 5,
392 .controller_data = &spi_ad7877_chip_info, 393 .controller_data = &spi_ad7877_chip_info,
393}, 394},
@@ -413,6 +414,7 @@ static struct resource bfin_spi0_resource[] = {
413static struct bfin5xx_spi_master bfin_spi0_info = { 414static struct bfin5xx_spi_master bfin_spi0_info = {
414 .num_chipselect = 8, 415 .num_chipselect = 8,
415 .enable_dma = 1, /* master has the ability to do dma transfer */ 416 .enable_dma = 1, /* master has the ability to do dma transfer */
417 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
416}; 418};
417 419
418static struct platform_device bfin_spi0_device = { 420static struct platform_device bfin_spi0_device = {
@@ -508,3 +510,10 @@ static int __init stamp_init(void)
508} 510}
509 511
510arch_initcall(stamp_init); 512arch_initcall(stamp_init);
513
514void bfin_get_ether_addr(char *addr)
515{
516 random_ether_addr(addr);
517 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
518}
519EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 5f7b91fbafe8..07b0dc273d2f 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -35,7 +35,7 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
@@ -44,6 +44,7 @@
44#include <asm/dma.h> 44#include <asm/dma.h>
45#include <asm/bfin5xx_spi.h> 45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h> 46#include <asm/reboot.h>
47#include <asm/portmux.h>
47#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
48 49
49/* 50/*
@@ -182,6 +183,28 @@ static struct platform_device dm9000_device = {
182}; 183};
183#endif 184#endif
184 185
186#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
187static struct resource ax88180_resources[] = {
188 [0] = {
189 .start = 0x20300000,
190 .end = 0x20300000 + 0x8000,
191 .flags = IORESOURCE_MEM,
192 },
193 [1] = {
194 .start = IRQ_PF7,
195 .end = IRQ_PF7,
196 .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL),
197 },
198};
199
200static struct platform_device ax88180_device = {
201 .name = "ax88180",
202 .id = -1,
203 .num_resources = ARRAY_SIZE(ax88180_resources),
204 .resource = ax88180_resources,
205};
206#endif
207
185#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 208#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
186static struct resource sl811_hcd_resources[] = { 209static struct resource sl811_hcd_resources[] = {
187 { 210 {
@@ -502,7 +525,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
502 .platform_data = &bfin_ad7877_ts_info, 525 .platform_data = &bfin_ad7877_ts_info,
503 .irq = IRQ_PF6, 526 .irq = IRQ_PF6,
504 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 527 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
505 .bus_num = 1, 528 .bus_num = 0,
506 .chip_select = 1, 529 .chip_select = 1,
507 .controller_data = &spi_ad7877_chip_info, 530 .controller_data = &spi_ad7877_chip_info,
508 }, 531 },
@@ -513,6 +536,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
513static struct bfin5xx_spi_master bfin_spi0_info = { 536static struct bfin5xx_spi_master bfin_spi0_info = {
514 .num_chipselect = 8, 537 .num_chipselect = 8,
515 .enable_dma = 1, /* master has the ability to do dma transfer */ 538 .enable_dma = 1, /* master has the ability to do dma transfer */
539 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
516}; 540};
517 541
518/* SPI (0) */ 542/* SPI (0) */
@@ -554,15 +578,20 @@ static struct platform_device bfin_fb_adv7393_device = {
554 578
555#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 579#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
556static struct resource bfin_uart_resources[] = { 580static struct resource bfin_uart_resources[] = {
581#ifdef CONFIG_SERIAL_BFIN_UART0
557 { 582 {
558 .start = 0xFFC00400, 583 .start = 0xFFC00400,
559 .end = 0xFFC004FF, 584 .end = 0xFFC004FF,
560 .flags = IORESOURCE_MEM, 585 .flags = IORESOURCE_MEM,
561 }, { 586 },
587#endif
588#ifdef CONFIG_SERIAL_BFIN_UART1
589 {
562 .start = 0xFFC02000, 590 .start = 0xFFC02000,
563 .end = 0xFFC020FF, 591 .end = 0xFFC020FF,
564 .flags = IORESOURCE_MEM, 592 .flags = IORESOURCE_MEM,
565 }, 593 },
594#endif
566}; 595};
567 596
568static struct platform_device bfin_uart_device = { 597static struct platform_device bfin_uart_device = {
@@ -669,6 +698,10 @@ static struct platform_device *stamp_devices[] __initdata = {
669 &dm9000_device, 698 &dm9000_device,
670#endif 699#endif
671 700
701#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
702 &ax88180_device,
703#endif
704
672#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 705#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
673 &bfin_mac_device, 706 &bfin_mac_device,
674#endif 707#endif
@@ -730,3 +763,14 @@ void native_machine_restart(char *cmd)
730 if ((bfin_read_SYSCR() & 0x7) == 0x3) 763 if ((bfin_read_SYSCR() & 0x7) == 0x3)
731 bfin_gpio_reset_spi0_ssel1(); 764 bfin_gpio_reset_spi0_ssel1();
732} 765}
766
767/*
768 * Currently the MAC address is saved in Flash by U-Boot
769 */
770#define FLASH_MAC 0x203f0000
771void bfin_get_ether_addr(char *addr)
772{
773 *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
774 *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
775}
776EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf548/Kconfig b/arch/blackfin/mach-bf548/Kconfig
index 08d8dc83701c..d8bd3b49f150 100644
--- a/arch/blackfin/mach-bf548/Kconfig
+++ b/arch/blackfin/mach-bf548/Kconfig
@@ -1,5 +1,7 @@
1if (BF54x) 1if (BF54x)
2 2
3source "arch/blackfin/mach-bf548/boards/Kconfig"
4
3menu "BF548 Specific Configuration" 5menu "BF548 Specific Configuration"
4 6
5config DEB_DMA_URGENT 7config DEB_DMA_URGENT
diff --git a/arch/blackfin/mach-bf548/boards/Kconfig b/arch/blackfin/mach-bf548/boards/Kconfig
new file mode 100644
index 000000000000..057129064037
--- /dev/null
+++ b/arch/blackfin/mach-bf548/boards/Kconfig
@@ -0,0 +1,12 @@
1choice
2 prompt "System type"
3 default BFIN548_EZKIT
4 help
5 Select your board!
6
7config BFIN548_EZKIT
8 bool "BF548-EZKIT"
9 help
10 BFIN548-EZKIT board support.
11
12endchoice
diff --git a/arch/blackfin/mach-bf548/boards/Makefile b/arch/blackfin/mach-bf548/boards/Makefile
index 486e07c99a51..a444cc739578 100644
--- a/arch/blackfin/mach-bf548/boards/Makefile
+++ b/arch/blackfin/mach-bf548/boards/Makefile
@@ -2,4 +2,4 @@
2# arch/blackfin/mach-bf548/boards/Makefile 2# arch/blackfin/mach-bf548/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_BFIN548_EZKIT) += ezkit.o led.o 5obj-$(CONFIG_BFIN548_EZKIT) += ezkit.o led.o
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 6b6490e66b30..d37d6653c4bc 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -42,6 +42,7 @@
42#include <asm/dma.h> 42#include <asm/dma.h>
43#include <asm/gpio.h> 43#include <asm/gpio.h>
44#include <asm/nand.h> 44#include <asm/nand.h>
45#include <asm/portmux.h>
45#include <asm/mach/bf54x_keys.h> 46#include <asm/mach/bf54x_keys.h>
46#include <linux/input.h> 47#include <linux/input.h>
47#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
@@ -377,7 +378,7 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {
377 378
378#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 379#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
379static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 380static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
380 .cs_change_per_word = 1, 381 .cs_change_per_word = 0,
381 .enable_dma = 0, 382 .enable_dma = 0,
382 .bits_per_word = 16, 383 .bits_per_word = 16,
383}; 384};
@@ -453,9 +454,10 @@ static struct resource bfin_spi1_resource[] = {
453}; 454};
454 455
455/* SPI controller data */ 456/* SPI controller data */
456static struct bfin5xx_spi_master bf54x_spi_master_info = { 457static struct bfin5xx_spi_master bf54x_spi_master_info0 = {
457 .num_chipselect = 8, 458 .num_chipselect = 8,
458 .enable_dma = 1, /* master has the ability to do dma transfer */ 459 .enable_dma = 1, /* master has the ability to do dma transfer */
460 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
459}; 461};
460 462
461static struct platform_device bf54x_spi_master0 = { 463static struct platform_device bf54x_spi_master0 = {
@@ -464,17 +466,23 @@ static struct platform_device bf54x_spi_master0 = {
464 .num_resources = ARRAY_SIZE(bfin_spi0_resource), 466 .num_resources = ARRAY_SIZE(bfin_spi0_resource),
465 .resource = bfin_spi0_resource, 467 .resource = bfin_spi0_resource,
466 .dev = { 468 .dev = {
467 .platform_data = &bf54x_spi_master_info, /* Passed to driver */ 469 .platform_data = &bf54x_spi_master_info0, /* Passed to driver */
468 }, 470 },
469}; 471};
470 472
473static struct bfin5xx_spi_master bf54x_spi_master_info1 = {
474 .num_chipselect = 8,
475 .enable_dma = 1, /* master has the ability to do dma transfer */
476 .pin_req = {P_SPI1_SCK, P_SPI1_MISO, P_SPI1_MOSI, 0},
477};
478
471static struct platform_device bf54x_spi_master1 = { 479static struct platform_device bf54x_spi_master1 = {
472 .name = "bfin-spi", 480 .name = "bfin-spi",
473 .id = 1, /* Bus number */ 481 .id = 1, /* Bus number */
474 .num_resources = ARRAY_SIZE(bfin_spi1_resource), 482 .num_resources = ARRAY_SIZE(bfin_spi1_resource),
475 .resource = bfin_spi1_resource, 483 .resource = bfin_spi1_resource,
476 .dev = { 484 .dev = {
477 .platform_data = &bf54x_spi_master_info, /* Passed to driver */ 485 .platform_data = &bf54x_spi_master_info1, /* Passed to driver */
478 }, 486 },
479}; 487};
480#endif /* spi master and devices */ 488#endif /* spi master and devices */
@@ -500,6 +508,7 @@ static struct platform_device i2c_bfin_twi0_device = {
500 .resource = bfin_twi0_resource, 508 .resource = bfin_twi0_resource,
501}; 509};
502 510
511#if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */
503static struct resource bfin_twi1_resource[] = { 512static struct resource bfin_twi1_resource[] = {
504 [0] = { 513 [0] = {
505 .start = TWI1_REGBASE, 514 .start = TWI1_REGBASE,
@@ -520,6 +529,7 @@ static struct platform_device i2c_bfin_twi1_device = {
520 .resource = bfin_twi1_resource, 529 .resource = bfin_twi1_resource,
521}; 530};
522#endif 531#endif
532#endif
523 533
524static struct platform_device *ezkit_devices[] __initdata = { 534static struct platform_device *ezkit_devices[] __initdata = {
525#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 535#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
@@ -569,8 +579,10 @@ static struct platform_device *ezkit_devices[] __initdata = {
569 579
570#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 580#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
571 &i2c_bfin_twi0_device, 581 &i2c_bfin_twi0_device,
582#if !defined(CONFIG_BF542)
572 &i2c_bfin_twi1_device, 583 &i2c_bfin_twi1_device,
573#endif 584#endif
585#endif
574}; 586};
575 587
576static int __init stamp_init(void) 588static int __init stamp_init(void)
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index 3071c243d426..74b34c7f3629 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -158,6 +158,27 @@ ENTRY(__stext)
158 w[p2] = r0; 158 w[p2] = r0;
159 ssync; 159 ssync;
160 160
161 p2.h = hi(EBIU_MBSCTL);
162 p2.l = lo(EBIU_MBSCTL);
163 r0.h = hi(CONFIG_EBIU_MBSCTLVAL);
164 r0.l = lo(CONFIG_EBIU_MBSCTLVAL);
165 [p2] = r0;
166 ssync;
167
168 p2.h = hi(EBIU_MODE);
169 p2.l = lo(EBIU_MODE);
170 r0.h = hi(CONFIG_EBIU_MODEVAL);
171 r0.l = lo(CONFIG_EBIU_MODEVAL);
172 [p2] = r0;
173 ssync;
174
175 p2.h = hi(EBIU_FCTL);
176 p2.l = lo(EBIU_FCTL);
177 r0.h = hi(CONFIG_EBIU_FCTLVAL);
178 r0.l = lo(CONFIG_EBIU_FCTLVAL);
179 [p2] = r0;
180 ssync;
181
161 /* This section keeps the processor in supervisor mode 182 /* This section keeps the processor in supervisor mode
162 * during kernel boot. Switches to user mode at end of boot. 183 * during kernel boot. Switches to user mode at end of boot.
163 * See page 3-9 of Hardware Reference manual for documentation. 184 * See page 3-9 of Hardware Reference manual for documentation.
diff --git a/arch/blackfin/mach-bf561/Kconfig b/arch/blackfin/mach-bf561/Kconfig
index 0a17c4cf0059..3f4895450bea 100644
--- a/arch/blackfin/mach-bf561/Kconfig
+++ b/arch/blackfin/mach-bf561/Kconfig
@@ -1,4 +1,6 @@
1if BF561 1if (BF561)
2
3source "arch/blackfin/mach-bf561/boards/Kconfig"
2 4
3menu "BF561 Specific Configuration" 5menu "BF561 Specific Configuration"
4 6
diff --git a/arch/blackfin/mach-bf561/boards/Kconfig b/arch/blackfin/mach-bf561/boards/Kconfig
new file mode 100644
index 000000000000..e41a67b1fb53
--- /dev/null
+++ b/arch/blackfin/mach-bf561/boards/Kconfig
@@ -0,0 +1,27 @@
1choice
2 prompt "System type"
3 default BFIN561_EZKIT
4 help
5 Select your board!
6
7config BFIN561_EZKIT
8 bool "BF561-EZKIT"
9 help
10 BF561-EZKIT-LITE board support.
11
12config BFIN561_TEPLA
13 bool "BF561-TEPLA"
14 help
15 BF561-TEPLA board support.
16
17config BFIN561_BLUETECHNIX_CM
18 bool "Bluetechnix CM-BF561"
19 help
20 CM-BF561 support for EVAL- and DEV-Board.
21
22config GENERIC_BF561_BOARD
23 bool "Generic"
24 help
25 Generic or Custom board support.
26
27endchoice
diff --git a/arch/blackfin/mach-bf561/boards/Makefile b/arch/blackfin/mach-bf561/boards/Makefile
index 495a1cf9d452..04add010b568 100644
--- a/arch/blackfin/mach-bf561/boards/Makefile
+++ b/arch/blackfin/mach-bf561/boards/Makefile
@@ -2,7 +2,7 @@
2# arch/blackfin/mach-bf561/boards/Makefile 2# arch/blackfin/mach-bf561/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BOARD) += generic_board.o 5obj-$(CONFIG_GENERIC_BF561_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o 6obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o
7obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o 7obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o
8obj-$(CONFIG_BFIN561_TEPLA) += tepla.o 8obj-$(CONFIG_BFIN561_TEPLA) += tepla.o
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c
index 97aeb43fd8b4..c19cd29b948a 100644
--- a/arch/blackfin/mach-bf561/boards/cm_bf561.c
+++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c
@@ -33,11 +33,12 @@
33#include <linux/mtd/partitions.h> 33#include <linux/mtd/partitions.h>
34#include <linux/spi/spi.h> 34#include <linux/spi/spi.h>
35#include <linux/spi/flash.h> 35#include <linux/spi/flash.h>
36#include <linux/usb_isp1362.h> 36#include <linux/usb/isp1362.h>
37#include <linux/pata_platform.h> 37#include <linux/pata_platform.h>
38#include <linux/irq.h> 38#include <linux/irq.h>
39#include <asm/dma.h> 39#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 40#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h>
41 42
42/* 43/*
43 * Name the Board for the /proc/cpuinfo 44 * Name the Board for the /proc/cpuinfo
@@ -182,6 +183,7 @@ static struct resource bfin_spi0_resource[] = {
182static struct bfin5xx_spi_master bfin_spi0_info = { 183static struct bfin5xx_spi_master bfin_spi0_info = {
183 .num_chipselect = 8, 184 .num_chipselect = 8,
184 .enable_dma = 1, /* master has the ability to do dma transfer */ 185 .enable_dma = 1, /* master has the ability to do dma transfer */
186 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
185}; 187};
186 188
187static struct platform_device bfin_spi0_device = { 189static struct platform_device bfin_spi0_device = {
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 059d516cec23..4ff8f6e7a11f 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -35,6 +35,7 @@
35#include <linux/pata_platform.h> 35#include <linux/pata_platform.h>
36#include <asm/dma.h> 36#include <asm/dma.h>
37#include <asm/bfin5xx_spi.h> 37#include <asm/bfin5xx_spi.h>
38#include <asm/portmux.h>
38 39
39/* 40/*
40 * Name the Board for the /proc/cpuinfo 41 * Name the Board for the /proc/cpuinfo
@@ -115,6 +116,28 @@ static struct platform_device smc91x_device = {
115}; 116};
116#endif 117#endif
117 118
119#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
120static struct resource ax88180_resources[] = {
121 [0] = {
122 .start = 0x2c000000,
123 .end = 0x2c000000 + 0x8000,
124 .flags = IORESOURCE_MEM,
125 },
126 [1] = {
127 .start = IRQ_PF10,
128 .end = IRQ_PF10,
129 .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL),
130 },
131};
132
133static struct platform_device ax88180_device = {
134 .name = "ax88180",
135 .id = -1,
136 .num_resources = ARRAY_SIZE(ax88180_resources),
137 .resource = ax88180_resources,
138};
139#endif
140
118#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 141#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
119static struct resource bfin_uart_resources[] = { 142static struct resource bfin_uart_resources[] = {
120 { 143 {
@@ -160,6 +183,7 @@ static struct resource bfin_spi0_resource[] = {
160static struct bfin5xx_spi_master bfin_spi0_info = { 183static struct bfin5xx_spi_master bfin_spi0_info = {
161 .num_chipselect = 8, 184 .num_chipselect = 8,
162 .enable_dma = 1, /* master has the ability to do dma transfer */ 185 .enable_dma = 1, /* master has the ability to do dma transfer */
186 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
163}; 187};
164 188
165static struct platform_device bfin_spi0_device = { 189static struct platform_device bfin_spi0_device = {
@@ -226,6 +250,11 @@ static struct platform_device *ezkit_devices[] __initdata = {
226#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 250#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
227 &smc91x_device, 251 &smc91x_device,
228#endif 252#endif
253
254#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
255 &ax88180_device,
256#endif
257
229#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 258#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
230 &bfin_spi0_device, 259 &bfin_spi0_device,
231#endif 260#endif
diff --git a/arch/blackfin/mach-bf561/boards/generic_board.c b/arch/blackfin/mach-bf561/boards/generic_board.c
index 46816be4b2ba..fc80c5d059f8 100644
--- a/arch/blackfin/mach-bf561/boards/generic_board.c
+++ b/arch/blackfin/mach-bf561/boards/generic_board.c
@@ -48,10 +48,6 @@ static struct resource smc91x_resources[] = {
48 .end = IRQ_PROG_INTB, 48 .end = IRQ_PROG_INTB,
49 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 49 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
50 }, { 50 }, {
51 /*
52 * denotes the flag pin and is used directly if
53 * CONFIG_IRQCHIP_DEMUX_GPIO is defined.
54 */
55 .start = IRQ_PF9, 51 .start = IRQ_PF9,
56 .end = IRQ_PF9, 52 .end = IRQ_PF9,
57 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 53 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c
index 4a17c6da2a59..ec6a2207c202 100644
--- a/arch/blackfin/mach-bf561/boards/tepla.c
+++ b/arch/blackfin/mach-bf561/boards/tepla.c
@@ -31,10 +31,6 @@ static struct resource smc91x_resources[] = {
31 .end = IRQ_PROG_INTB, 31 .end = IRQ_PROG_INTB,
32 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL, 32 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
33 }, { 33 }, {
34 /*
35 * denotes the flag pin and is used directly if
36 * CONFIG_IRQCHIP_DEMUX_GPIO is defined.
37 */
38 .start = IRQ_PF7, 34 .start = IRQ_PF7,
39 .end = IRQ_PF7, 35 .end = IRQ_PF7,
40 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL, 36 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
diff --git a/arch/blackfin/mach-common/cplbinfo.c b/arch/blackfin/mach-common/cplbinfo.c
index 785ca9816971..a4f0b428a34d 100644
--- a/arch/blackfin/mach-common/cplbinfo.c
+++ b/arch/blackfin/mach-common/cplbinfo.c
@@ -91,7 +91,7 @@ static char *cplb_print_entry(char *buf, int type)
91 } else 91 } else
92 buf += sprintf(buf, "Data CPLB entry:\n"); 92 buf += sprintf(buf, "Data CPLB entry:\n");
93 93
94 buf += sprintf(buf, "Address\t\tData\tSize\tValid\tLocked\tSwapin\n\tiCount\toCount\n"); 94 buf += sprintf(buf, "Address\t\tData\tSize\tValid\tLocked\tSwapin\tiCount\toCount\n");
95 95
96 while (*p_addr != 0xffffffff) { 96 while (*p_addr != 0xffffffff) {
97 entry = cplb_find_entry(cplb_addr, cplb_data, *p_addr, *p_data); 97 entry = cplb_find_entry(cplb_addr, cplb_data, *p_addr, *p_data);
diff --git a/arch/blackfin/mach-common/cplbmgr.S b/arch/blackfin/mach-common/cplbmgr.S
index 946703ef48ff..6f909cbfac7b 100644
--- a/arch/blackfin/mach-common/cplbmgr.S
+++ b/arch/blackfin/mach-common/cplbmgr.S
@@ -73,7 +73,7 @@ ENTRY(_cplb_mgr)
73 /* ICPLB Miss Exception. We need to choose one of the 73 /* ICPLB Miss Exception. We need to choose one of the
74 * currently-installed CPLBs, and replace it with one 74 * currently-installed CPLBs, and replace it with one
75 * from the configuration table. 75 * from the configuration table.
76 */ 76 */
77 77
78 P4.L = LO(ICPLB_FAULT_ADDR); 78 P4.L = LO(ICPLB_FAULT_ADDR);
79 P4.H = HI(ICPLB_FAULT_ADDR); 79 P4.H = HI(ICPLB_FAULT_ADDR);
@@ -222,7 +222,7 @@ ENTRY(_cplb_mgr)
222 222
223 /* See if failed address > start address */ 223 /* See if failed address > start address */
224 CC = R4 <= R0(IU); 224 CC = R4 <= R0(IU);
225 IF !CC JUMP .Linext; 225 IF !CC JUMP .Linext;
226 226
227 /* extract page size (17:16)*/ 227 /* extract page size (17:16)*/
228 R3 = EXTRACT(R2, R1.L) (Z); 228 R3 = EXTRACT(R2, R1.L) (Z);
@@ -271,16 +271,27 @@ ENTRY(_cplb_mgr)
271 271
272/* FAILED CASES*/ 272/* FAILED CASES*/
273.Lno_page_in_table: 273.Lno_page_in_table:
274 ( R7:4,P5:3 ) = [SP++];
275 R0 = CPLB_NO_ADDR_MATCH; 274 R0 = CPLB_NO_ADDR_MATCH;
276 RTS; 275 JUMP .Lfail_ret;
276
277.Lall_locked: 277.Lall_locked:
278 ( R7:4,P5:3 ) = [SP++];
279 R0 = CPLB_NO_UNLOCKED; 278 R0 = CPLB_NO_UNLOCKED;
280 RTS; 279 JUMP .Lfail_ret;
280
281.Lprot_violation: 281.Lprot_violation:
282 ( R7:4,P5:3 ) = [SP++];
283 R0 = CPLB_PROT_VIOL; 282 R0 = CPLB_PROT_VIOL;
283
284.Lfail_ret:
285 /* Make sure we turn protection/cache back on, even in the failing case */
286 BITSET(R5,ENICPLB_P);
287 CLI R2;
288 SSYNC; /* SSYNC required before writing to IMEM_CONTROL. */
289 .align 8;
290 [P4] = R5;
291 SSYNC;
292 STI R2;
293
294 ( R7:4,P5:3 ) = [SP++];
284 RTS; 295 RTS;
285 296
286.Ldcplb_write: 297.Ldcplb_write:
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 1b13fa470977..dc9d3ee2e691 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -33,7 +33,7 @@
33 * after a timer-interrupt and after each system call. 33 * after a timer-interrupt and after each system call.
34 */ 34 */
35 35
36 36#include <linux/init.h>
37#include <linux/linkage.h> 37#include <linux/linkage.h>
38#include <linux/unistd.h> 38#include <linux/unistd.h>
39#include <asm/blackfin.h> 39#include <asm/blackfin.h>
@@ -71,25 +71,44 @@ ENDPROC(_safe_speculative_execution)
71 * This one does not lower the level to IRQ5, and thus can be used to 71 * This one does not lower the level to IRQ5, and thus can be used to
72 * patch up CPLB misses on the kernel stack. 72 * patch up CPLB misses on the kernel stack.
73 */ 73 */
74ENTRY(_ex_dcplb)
75#if ANOMALY_05000261 74#if ANOMALY_05000261
75#define _ex_dviol _ex_workaround_261
76#define _ex_dmiss _ex_workaround_261
77#define _ex_dmult _ex_workaround_261
78
79ENTRY(_ex_workaround_261)
76 /* 80 /*
77 * Work around an anomaly: if we see a new DCPLB fault, return 81 * Work around an anomaly: if we see a new DCPLB fault, return
78 * without doing anything. Then, if we get the same fault again, 82 * without doing anything. Then, if we get the same fault again,
79 * handle it. 83 * handle it.
80 */ 84 */
85 P4 = R7; /* Store EXCAUSE */
81 p5.l = _last_cplb_fault_retx; 86 p5.l = _last_cplb_fault_retx;
82 p5.h = _last_cplb_fault_retx; 87 p5.h = _last_cplb_fault_retx;
83 r7 = [p5]; 88 r7 = [p5];
84 r6 = retx; 89 r6 = retx;
85 [p5] = r6; 90 [p5] = r6;
86 cc = r6 == r7; 91 cc = r6 == r7;
87 if !cc jump _return_from_exception; 92 if !cc jump _bfin_return_from_exception;
88 /* fall through */ 93 /* fall through */
94 R7 = P4;
95 R6 = 0x26; /* Data CPLB Miss */
96 cc = R6 == R7;
97 if cc jump _ex_dcplb_miss (BP);
98 /* Handle 0x23 Data CPLB Protection Violation
99 * and Data CPLB Multiple Hits - Linux Trap Zero
100 */
101 jump _ex_trap_c;
102ENDPROC(_ex_workaround_261)
103
104#else
105#define _ex_dviol _ex_trap_c
106#define _ex_dmiss _ex_dcplb_miss
107#define _ex_dmult _ex_trap_c
89#endif 108#endif
90ENDPROC(_ex_dcplb)
91 109
92ENTRY(_ex_icplb) 110ENTRY(_ex_dcplb_miss)
111ENTRY(_ex_icplb_miss)
93 (R7:6,P5:4) = [sp++]; 112 (R7:6,P5:4) = [sp++];
94 ASTAT = [sp++]; 113 ASTAT = [sp++];
95 SAVE_ALL_SYS 114 SAVE_ALL_SYS
@@ -98,7 +117,7 @@ ENTRY(_ex_icplb)
98 RESTORE_ALL_SYS 117 RESTORE_ALL_SYS
99 SP = EX_SCRATCH_REG; 118 SP = EX_SCRATCH_REG;
100 rtx; 119 rtx;
101ENDPROC(_ex_icplb) 120ENDPROC(_ex_icplb_miss)
102 121
103ENTRY(_ex_syscall) 122ENTRY(_ex_syscall)
104 DEBUG_START_HWTRACE(p5, r7) 123 DEBUG_START_HWTRACE(p5, r7)
@@ -120,7 +139,7 @@ ENTRY(_ex_single_step)
120 r7 = retx; 139 r7 = retx;
121 r6 = reti; 140 r6 = reti;
122 cc = r7 == r6; 141 cc = r7 == r6;
123 if cc jump _return_from_exception 142 if cc jump _bfin_return_from_exception
124 r7 = syscfg; 143 r7 = syscfg;
125 bitclr (r7, 0); 144 bitclr (r7, 0);
126 syscfg = R7; 145 syscfg = R7;
@@ -137,8 +156,9 @@ ENTRY(_ex_single_step)
137 r7 = [p4]; 156 r7 = [p4];
138 cc = r6 == r7; 157 cc = r6 == r7;
139 if !cc jump _ex_trap_c; 158 if !cc jump _ex_trap_c;
159ENDPROC(_ex_single_step)
140 160
141ENTRY(_return_from_exception) 161ENTRY(_bfin_return_from_exception)
142 DEBUG_START_HWTRACE(p5, r7) 162 DEBUG_START_HWTRACE(p5, r7)
143#if ANOMALY_05000257 163#if ANOMALY_05000257
144 R7=LC0; 164 R7=LC0;
@@ -150,7 +170,7 @@ ENTRY(_return_from_exception)
150 ASTAT = [sp++]; 170 ASTAT = [sp++];
151 sp = EX_SCRATCH_REG; 171 sp = EX_SCRATCH_REG;
152 rtx; 172 rtx;
153ENDPROC(_ex_soft_bp) 173ENDPROC(_bfin_return_from_exception)
154 174
155ENTRY(_handle_bad_cplb) 175ENTRY(_handle_bad_cplb)
156 /* To get here, we just tried and failed to change a CPLB 176 /* To get here, we just tried and failed to change a CPLB
@@ -843,7 +863,7 @@ ENTRY(_ex_trace_buff_full)
843 LC0 = [sp++]; 863 LC0 = [sp++];
844 P2 = [sp++]; 864 P2 = [sp++];
845 P3 = [sp++]; 865 P3 = [sp++];
846 jump _return_from_exception; 866 jump _bfin_return_from_exception;
847ENDPROC(_ex_trace_buff_full) 867ENDPROC(_ex_trace_buff_full)
848 868
849#if CONFIG_DEBUG_BFIN_HWTRACE_EXPAND_LEN == 4 869#if CONFIG_DEBUG_BFIN_HWTRACE_EXPAND_LEN == 4
@@ -861,7 +881,7 @@ ENTRY(_software_trace_buff)
861#endif /* CONFIG_DEBUG_BFIN_HWTRACE_EXPAND */ 881#endif /* CONFIG_DEBUG_BFIN_HWTRACE_EXPAND */
862 882
863#if CONFIG_EARLY_PRINTK 883#if CONFIG_EARLY_PRINTK
864.section .init.text 884__INIT
865ENTRY(_early_trap) 885ENTRY(_early_trap)
866 SAVE_ALL_SYS 886 SAVE_ALL_SYS
867 trace_buffer_stop(p0,r0); 887 trace_buffer_stop(p0,r0);
@@ -896,6 +916,7 @@ ENTRY(_early_trap)
896 call _early_trap_c; 916 call _early_trap_c;
897 SP += 12; 917 SP += 12;
898ENDPROC(_early_trap) 918ENDPROC(_early_trap)
919__FINIT
899#endif /* CONFIG_EARLY_PRINTK */ 920#endif /* CONFIG_EARLY_PRINTK */
900 921
901/* 922/*
@@ -908,6 +929,7 @@ ENDPROC(_early_trap)
908#else 929#else
909.data 930.data
910#endif 931#endif
932
911ENTRY(_ex_table) 933ENTRY(_ex_table)
912 /* entry for each EXCAUSE[5:0] 934 /* entry for each EXCAUSE[5:0]
913 * This table must be in sync with the table in ./kernel/traps.c 935 * This table must be in sync with the table in ./kernel/traps.c
@@ -952,16 +974,16 @@ ENTRY(_ex_table)
952 .long _ex_trap_c /* 0x20 - Reserved */ 974 .long _ex_trap_c /* 0x20 - Reserved */
953 .long _ex_trap_c /* 0x21 - Undefined Instruction */ 975 .long _ex_trap_c /* 0x21 - Undefined Instruction */
954 .long _ex_trap_c /* 0x22 - Illegal Instruction Combination */ 976 .long _ex_trap_c /* 0x22 - Illegal Instruction Combination */
955 .long _ex_dcplb /* 0x23 - Data CPLB Protection Violation */ 977 .long _ex_dviol /* 0x23 - Data CPLB Protection Violation */
956 .long _ex_trap_c /* 0x24 - Data access misaligned */ 978 .long _ex_trap_c /* 0x24 - Data access misaligned */
957 .long _ex_trap_c /* 0x25 - Unrecoverable Event */ 979 .long _ex_trap_c /* 0x25 - Unrecoverable Event */
958 .long _ex_dcplb /* 0x26 - Data CPLB Miss */ 980 .long _ex_dmiss /* 0x26 - Data CPLB Miss */
959 .long _ex_trap_c /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero */ 981 .long _ex_dmult /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero */
960 .long _ex_trap_c /* 0x28 - Emulation Watchpoint */ 982 .long _ex_trap_c /* 0x28 - Emulation Watchpoint */
961 .long _ex_trap_c /* 0x29 - Instruction fetch access error (535 only) */ 983 .long _ex_trap_c /* 0x29 - Instruction fetch access error (535 only) */
962 .long _ex_trap_c /* 0x2A - Instruction fetch misaligned */ 984 .long _ex_trap_c /* 0x2A - Instruction fetch misaligned */
963 .long _ex_icplb /* 0x2B - Instruction CPLB protection Violation */ 985 .long _ex_trap_c /* 0x2B - Instruction CPLB protection Violation */
964 .long _ex_icplb /* 0x2C - Instruction CPLB miss */ 986 .long _ex_icplb_miss /* 0x2C - Instruction CPLB miss */
965 .long _ex_trap_c /* 0x2D - Instruction CPLB Multiple Hits */ 987 .long _ex_trap_c /* 0x2D - Instruction CPLB Multiple Hits */
966 .long _ex_trap_c /* 0x2E - Illegal use of Supervisor Resource */ 988 .long _ex_trap_c /* 0x2E - Illegal use of Supervisor Resource */
967 .long _ex_trap_c /* 0x2E - Illegal use of Supervisor Resource */ 989 .long _ex_trap_c /* 0x2E - Illegal use of Supervisor Resource */
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index c6b32fe0f6e9..4de376418a18 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -30,7 +30,6 @@
30 30
31#include <asm/blackfin.h> 31#include <asm/blackfin.h>
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33#include <linux/autoconf.h>
34#include <linux/linkage.h> 33#include <linux/linkage.h>
35#include <asm/entry.h> 34#include <asm/entry.h>
36#include <asm/asm-offsets.h> 35#include <asm/asm-offsets.h>
diff --git a/arch/blackfin/mach-common/ints-priority-dc.c b/arch/blackfin/mach-common/ints-priority-dc.c
index c2f05fabedc1..4882f0e801a9 100644
--- a/arch/blackfin/mach-common/ints-priority-dc.c
+++ b/arch/blackfin/mach-common/ints-priority-dc.c
@@ -181,7 +181,6 @@ static struct irq_chip bf561_internal_irqchip = {
181 .unmask = bf561_internal_unmask_irq, 181 .unmask = bf561_internal_unmask_irq,
182}; 182};
183 183
184#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
185static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)]; 184static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)];
186static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)]; 185static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)];
187 186
@@ -362,8 +361,6 @@ static void bf561_demux_gpio_irq(unsigned int inta_irq,
362 361
363} 362}
364 363
365#endif /* CONFIG_IRQCHIP_DEMUX_GPIO */
366
367void __init init_exception_vectors(void) 364void __init init_exception_vectors(void)
368{ 365{
369 SSYNC(); 366 SSYNC();
@@ -413,26 +410,21 @@ int __init init_arch_irq(void)
413 set_irq_chip(irq, &bf561_core_irqchip); 410 set_irq_chip(irq, &bf561_core_irqchip);
414 else 411 else
415 set_irq_chip(irq, &bf561_internal_irqchip); 412 set_irq_chip(irq, &bf561_internal_irqchip);
416#ifdef CONFIG_IRQCHIP_DEMUX_GPIO 413
417 if ((irq != IRQ_PROG0_INTA) && 414 if ((irq != IRQ_PROG0_INTA) &&
418 (irq != IRQ_PROG1_INTA) && (irq != IRQ_PROG2_INTA)) { 415 (irq != IRQ_PROG1_INTA) &&
419#endif 416 (irq != IRQ_PROG2_INTA))
420 set_irq_handler(irq, handle_simple_irq); 417 set_irq_handler(irq, handle_simple_irq);
421#ifdef CONFIG_IRQCHIP_DEMUX_GPIO 418 else
422 } else {
423 set_irq_chained_handler(irq, bf561_demux_gpio_irq); 419 set_irq_chained_handler(irq, bf561_demux_gpio_irq);
424 }
425#endif
426
427 } 420 }
428 421
429#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
430 for (irq = IRQ_PF0; irq <= IRQ_PF47; irq++) { 422 for (irq = IRQ_PF0; irq <= IRQ_PF47; irq++) {
431 set_irq_chip(irq, &bf561_gpio_irqchip); 423 set_irq_chip(irq, &bf561_gpio_irqchip);
432 /* if configured as edge, then will be changed to do_edge_IRQ */ 424 /* if configured as edge, then will be changed to do_edge_IRQ */
433 set_irq_handler(irq, handle_level_irq); 425 set_irq_handler(irq, handle_level_irq);
434 } 426 }
435#endif 427
436 bfin_write_IMASK(0); 428 bfin_write_IMASK(0);
437 CSYNC(); 429 CSYNC();
438 ilat = bfin_read_ILAT(); 430 ilat = bfin_read_ILAT();
@@ -457,9 +449,8 @@ int __init init_arch_irq(void)
457} 449}
458 450
459#ifdef CONFIG_DO_IRQ_L1 451#ifdef CONFIG_DO_IRQ_L1
460void do_irq(int vec, struct pt_regs *fp)__attribute__((l1_text)); 452__attribute__((l1_text))
461#endif 453#endif
462
463void do_irq(int vec, struct pt_regs *fp) 454void do_irq(int vec, struct pt_regs *fp)
464{ 455{
465 if (vec == EVT_IVTMR_P) { 456 if (vec == EVT_IVTMR_P) {
diff --git a/arch/blackfin/mach-common/ints-priority-sc.c b/arch/blackfin/mach-common/ints-priority-sc.c
index 2d2b63567b30..147f0731087a 100644
--- a/arch/blackfin/mach-common/ints-priority-sc.c
+++ b/arch/blackfin/mach-common/ints-priority-sc.c
@@ -308,7 +308,7 @@ static void bfin_demux_error_irq(unsigned int int_err_irq,
308} 308}
309#endif /* BF537_GENERIC_ERROR_INT_DEMUX */ 309#endif /* BF537_GENERIC_ERROR_INT_DEMUX */
310 310
311#if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && !defined(CONFIG_BF54x) 311#if !defined(CONFIG_BF54x)
312 312
313static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)]; 313static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)];
314static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)]; 314static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)];
@@ -464,7 +464,7 @@ static void bfin_demux_gpio_irq(unsigned int intb_irq,
464 } 464 }
465} 465}
466 466
467#else /* CONFIG_IRQCHIP_DEMUX_GPIO */ 467#else /* CONFIG_BF54x */
468 468
469#define NR_PINT_SYS_IRQS 4 469#define NR_PINT_SYS_IRQS 4
470#define NR_PINT_BITS 32 470#define NR_PINT_BITS 32
@@ -726,7 +726,7 @@ static void bfin_demux_gpio_irq(unsigned int intb_irq,
726 } 726 }
727 727
728} 728}
729#endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ 729#endif
730 730
731void __init init_exception_vectors(void) 731void __init init_exception_vectors(void)
732{ 732{
@@ -766,10 +766,10 @@ int __init init_arch_irq(void)
766 bfin_write_SIC_IMASK1(SIC_UNMASK_ALL); 766 bfin_write_SIC_IMASK1(SIC_UNMASK_ALL);
767 bfin_write_SIC_IWR0(IWR_ENABLE_ALL); 767 bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
768 bfin_write_SIC_IWR1(IWR_ENABLE_ALL); 768 bfin_write_SIC_IWR1(IWR_ENABLE_ALL);
769#ifdef CONFIG_BF54x 769# ifdef CONFIG_BF54x
770 bfin_write_SIC_IMASK2(SIC_UNMASK_ALL); 770 bfin_write_SIC_IMASK2(SIC_UNMASK_ALL);
771 bfin_write_SIC_IWR2(IWR_ENABLE_ALL); 771 bfin_write_SIC_IWR2(IWR_ENABLE_ALL);
772#endif 772# endif
773#else 773#else
774 bfin_write_SIC_IMASK(SIC_UNMASK_ALL); 774 bfin_write_SIC_IMASK(SIC_UNMASK_ALL);
775 bfin_write_SIC_IWR(IWR_ENABLE_ALL); 775 bfin_write_SIC_IWR(IWR_ENABLE_ALL);
@@ -778,13 +778,13 @@ int __init init_arch_irq(void)
778 778
779 local_irq_disable(); 779 local_irq_disable();
780 780
781#if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && defined(CONFIG_BF54x) 781#ifdef CONFIG_BF54x
782#ifdef CONFIG_PINTx_REASSIGN 782# ifdef CONFIG_PINTx_REASSIGN
783 pint[0]->assign = CONFIG_PINT0_ASSIGN; 783 pint[0]->assign = CONFIG_PINT0_ASSIGN;
784 pint[1]->assign = CONFIG_PINT1_ASSIGN; 784 pint[1]->assign = CONFIG_PINT1_ASSIGN;
785 pint[2]->assign = CONFIG_PINT2_ASSIGN; 785 pint[2]->assign = CONFIG_PINT2_ASSIGN;
786 pint[3]->assign = CONFIG_PINT3_ASSIGN; 786 pint[3]->assign = CONFIG_PINT3_ASSIGN;
787#endif 787# endif
788 /* Whenever PINTx_ASSIGN is altered init_pint_lut() must be executed! */ 788 /* Whenever PINTx_ASSIGN is altered init_pint_lut() must be executed! */
789 init_pint_lut(); 789 init_pint_lut();
790#endif 790#endif
@@ -799,18 +799,17 @@ int __init init_arch_irq(void)
799#endif 799#endif
800 800
801 switch (irq) { 801 switch (irq) {
802#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
803#if defined(CONFIG_BF53x) 802#if defined(CONFIG_BF53x)
804 case IRQ_PROG_INTA: 803 case IRQ_PROG_INTA:
805 set_irq_chained_handler(irq, 804 set_irq_chained_handler(irq,
806 bfin_demux_gpio_irq); 805 bfin_demux_gpio_irq);
807 break; 806 break;
808#if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) 807# if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE))
809 case IRQ_MAC_RX: 808 case IRQ_MAC_RX:
810 set_irq_chained_handler(irq, 809 set_irq_chained_handler(irq,
811 bfin_demux_gpio_irq); 810 bfin_demux_gpio_irq);
812 break; 811 break;
813#endif 812# endif
814#elif defined(CONFIG_BF54x) 813#elif defined(CONFIG_BF54x)
815 case IRQ_PINT0: 814 case IRQ_PINT0:
816 set_irq_chained_handler(irq, 815 set_irq_chained_handler(irq,
@@ -842,7 +841,6 @@ int __init init_arch_irq(void)
842 bfin_demux_gpio_irq); 841 bfin_demux_gpio_irq);
843 break; 842 break;
844#endif 843#endif
845#endif
846 default: 844 default:
847 set_irq_handler(irq, handle_simple_irq); 845 set_irq_handler(irq, handle_simple_irq);
848 break; 846 break;
@@ -861,7 +859,6 @@ int __init init_arch_irq(void)
861 } 859 }
862#endif 860#endif
863 861
864#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
865#ifndef CONFIG_BF54x 862#ifndef CONFIG_BF54x
866 for (irq = IRQ_PF0; irq < NR_IRQS; irq++) { 863 for (irq = IRQ_PF0; irq < NR_IRQS; irq++) {
867#else 864#else
@@ -871,7 +868,7 @@ int __init init_arch_irq(void)
871 /* if configured as edge, then will be changed to do_edge_IRQ */ 868 /* if configured as edge, then will be changed to do_edge_IRQ */
872 set_irq_handler(irq, handle_level_irq); 869 set_irq_handler(irq, handle_level_irq);
873 } 870 }
874#endif 871
875 bfin_write_IMASK(0); 872 bfin_write_IMASK(0);
876 CSYNC(); 873 CSYNC();
877 ilat = bfin_read_ILAT(); 874 ilat = bfin_read_ILAT();
@@ -896,9 +893,8 @@ int __init init_arch_irq(void)
896} 893}
897 894
898#ifdef CONFIG_DO_IRQ_L1 895#ifdef CONFIG_DO_IRQ_L1
899void do_irq(int vec, struct pt_regs *fp) __attribute__((l1_text)); 896__attribute__((l1_text))
900#endif 897#endif
901
902void do_irq(int vec, struct pt_regs *fp) 898void do_irq(int vec, struct pt_regs *fp)
903{ 899{
904 if (vec == EVT_IVTMR_P) { 900 if (vec == EVT_IVTMR_P) {
diff --git a/arch/blackfin/mach-common/irqpanic.c b/arch/blackfin/mach-common/irqpanic.c
index f05e3dadaf33..b22959b197e5 100644
--- a/arch/blackfin/mach-common/irqpanic.c
+++ b/arch/blackfin/mach-common/irqpanic.c
@@ -153,27 +153,29 @@ asmlinkage void irq_panic(int reason, struct pt_regs *regs)
153 case (SEQSTAT_HWERRCAUSE_SYSTEM_MMR): /* System MMR Error */ 153 case (SEQSTAT_HWERRCAUSE_SYSTEM_MMR): /* System MMR Error */
154 info.si_code = BUS_ADRALN; 154 info.si_code = BUS_ADRALN;
155 sig = SIGBUS; 155 sig = SIGBUS;
156 printk(KERN_EMERG HWC_x2); 156 printk(KERN_EMERG HWC_x2(KERN_EMERG));
157 break; 157 break;
158 case (SEQSTAT_HWERRCAUSE_EXTERN_ADDR): /* External Memory Addressing Error */ 158 case (SEQSTAT_HWERRCAUSE_EXTERN_ADDR): /* External Memory Addressing Error */
159 info.si_code = BUS_ADRERR; 159 info.si_code = BUS_ADRERR;
160 sig = SIGBUS; 160 sig = SIGBUS;
161 printk(KERN_EMERG HWC_x3); 161 printk(KERN_EMERG HWC_x3(KERN_EMERG));
162 break; 162 break;
163 case (SEQSTAT_HWERRCAUSE_PERF_FLOW): /* Performance Monitor Overflow */ 163 case (SEQSTAT_HWERRCAUSE_PERF_FLOW): /* Performance Monitor Overflow */
164 printk(KERN_EMERG HWC_x12); 164 printk(KERN_EMERG HWC_x12(KERN_EMERG));
165 break; 165 break;
166 case (SEQSTAT_HWERRCAUSE_RAISE_5): /* RAISE 5 instruction */ 166 case (SEQSTAT_HWERRCAUSE_RAISE_5): /* RAISE 5 instruction */
167 printk(KERN_EMERG HWC_x18); 167 printk(KERN_EMERG HWC_x18(KERN_EMERG));
168 break; 168 break;
169 default: /* Reserved */ 169 default: /* Reserved */
170 printk(KERN_EMERG HWC_default); 170 printk(KERN_EMERG HWC_default(KERN_EMERG));
171 break; 171 break;
172 } 172 }
173 } 173 }
174 174
175 regs->ipend = bfin_read_IPEND(); 175 regs->ipend = bfin_read_IPEND();
176 dump_bfin_regs(regs, (void *)regs->pc); 176 dump_bfin_process(regs);
177 dump_bfin_mem((void *)regs->pc);
178 show_regs(regs);
177 if (0 == (info.si_signo = sig) || 0 == user_mode(regs)) /* in kernelspace */ 179 if (0 == (info.si_signo = sig) || 0 == user_mode(regs)) /* in kernelspace */
178 panic("Unhandled IRQ or exceptions!\n"); 180 panic("Unhandled IRQ or exceptions!\n");
179 else { /* in userspace */ 181 else { /* in userspace */
diff --git a/arch/blackfin/mm/blackfin_sram.c b/arch/blackfin/mm/blackfin_sram.c
index b99ea883cd22..e41f0e8ecacb 100644
--- a/arch/blackfin/mm/blackfin_sram.c
+++ b/arch/blackfin/mm/blackfin_sram.c
@@ -27,7 +27,6 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30#include <linux/autoconf.h>
31#include <linux/module.h> 30#include <linux/module.h>
32#include <linux/kernel.h> 31#include <linux/kernel.h>
33#include <linux/types.h> 32#include <linux/types.h>