diff options
114 files changed, 10104 insertions, 2411 deletions
diff --git a/Documentation/sh/clk.txt b/Documentation/sh/clk.txt new file mode 100644 index 000000000000..9aef710e9a4b --- /dev/null +++ b/Documentation/sh/clk.txt | |||
@@ -0,0 +1,32 @@ | |||
1 | Clock framework on SuperH architecture | ||
2 | |||
3 | The framework on SH extends existing API by the function clk_set_rate_ex, | ||
4 | which prototype is as follows: | ||
5 | |||
6 | clk_set_rate_ex (struct clk *clk, unsigned long rate, int algo_id) | ||
7 | |||
8 | The algo_id parameter is used to specify algorithm used to recalculate clocks, | ||
9 | adjanced to clock, specified as first argument. It is assumed that algo_id==0 | ||
10 | means no changes to adjanced clock | ||
11 | |||
12 | Internally, the clk_set_rate_ex forwards request to clk->ops->set_rate method, | ||
13 | if it is present in ops structure. The method should set the clock rate and adjust | ||
14 | all needed clocks according to the passed algo_id. | ||
15 | Exact values for algo_id are machine-dependend. For the sh7722, the following | ||
16 | values are defined: | ||
17 | |||
18 | NO_CHANGE = 0, | ||
19 | IUS_N1_N1, /* I:U = N:1, U:Sh = N:1 */ | ||
20 | IUS_322, /* I:U:Sh = 3:2:2 */ | ||
21 | IUS_522, /* I:U:Sh = 5:2:2 */ | ||
22 | IUS_N11, /* I:U:Sh = N:1:1 */ | ||
23 | SB_N1, /* Sh:B = N:1 */ | ||
24 | SB3_N1, /* Sh:B3 = N:1 */ | ||
25 | SB3_32, /* Sh:B3 = 3:2 */ | ||
26 | SB3_43, /* Sh:B3 = 4:3 */ | ||
27 | SB3_54, /* Sh:B3 = 5:4 */ | ||
28 | BP_N1, /* B:P = N:1 */ | ||
29 | IP_N1 /* I:P = N:1 */ | ||
30 | |||
31 | Each of these constants means relation between clocks that can be set via the FRQCR | ||
32 | register | ||
diff --git a/Documentation/sysrq.txt b/Documentation/sysrq.txt index d43aa9d3c105..ba328f255417 100644 --- a/Documentation/sysrq.txt +++ b/Documentation/sysrq.txt | |||
@@ -1,6 +1,6 @@ | |||
1 | Linux Magic System Request Key Hacks | 1 | Linux Magic System Request Key Hacks |
2 | Documentation for sysrq.c | 2 | Documentation for sysrq.c |
3 | Last update: 2007-JAN-06 | 3 | Last update: 2007-MAR-14 |
4 | 4 | ||
5 | * What is the magic SysRq key? | 5 | * What is the magic SysRq key? |
6 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 6 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
@@ -75,7 +75,7 @@ On all - write a character to /proc/sysrq-trigger. e.g.: | |||
75 | 75 | ||
76 | 'f' - Will call oom_kill to kill a memory hog process. | 76 | 'f' - Will call oom_kill to kill a memory hog process. |
77 | 77 | ||
78 | 'g' - Used by kgdb on ppc platforms. | 78 | 'g' - Used by kgdb on ppc and sh platforms. |
79 | 79 | ||
80 | 'h' - Will display help (actually any other key than those listed | 80 | 'h' - Will display help (actually any other key than those listed |
81 | above will display help. but 'h' is easy to remember :-) | 81 | above will display help. but 'h' is easy to remember :-) |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 4d16d8917074..d74eb120a9c6 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -22,6 +22,10 @@ config RWSEM_GENERIC_SPINLOCK | |||
22 | config RWSEM_XCHGADD_ALGORITHM | 22 | config RWSEM_XCHGADD_ALGORITHM |
23 | bool | 23 | bool |
24 | 24 | ||
25 | config GENERIC_BUG | ||
26 | def_bool y | ||
27 | depends on BUG | ||
28 | |||
25 | config GENERIC_FIND_NEXT_BIT | 29 | config GENERIC_FIND_NEXT_BIT |
26 | bool | 30 | bool |
27 | default y | 31 | default y |
@@ -88,6 +92,14 @@ config SH_SOLUTION_ENGINE | |||
88 | Select SolutionEngine if configuring for a Hitachi SH7709 | 92 | Select SolutionEngine if configuring for a Hitachi SH7709 |
89 | or SH7750 evaluation board. | 93 | or SH7750 evaluation board. |
90 | 94 | ||
95 | config SH_7722_SOLUTION_ENGINE | ||
96 | bool "SolutionEngine7722" | ||
97 | select SOLUTION_ENGINE | ||
98 | select CPU_SUBTYPE_SH7722 | ||
99 | help | ||
100 | Select 7722 SolutionEngine if configuring for a Hitachi SH772 | ||
101 | evaluation board. | ||
102 | |||
91 | config SH_7751_SOLUTION_ENGINE | 103 | config SH_7751_SOLUTION_ENGINE |
92 | bool "SolutionEngine7751" | 104 | bool "SolutionEngine7751" |
93 | select SOLUTION_ENGINE | 105 | select SOLUTION_ENGINE |
@@ -95,6 +107,14 @@ config SH_7751_SOLUTION_ENGINE | |||
95 | help | 107 | help |
96 | Select 7751 SolutionEngine if configuring for a Hitachi SH7751 | 108 | Select 7751 SolutionEngine if configuring for a Hitachi SH7751 |
97 | evaluation board. | 109 | evaluation board. |
110 | |||
111 | config SH_7780_SOLUTION_ENGINE | ||
112 | bool "SolutionEngine7780" | ||
113 | select SOLUTION_ENGINE | ||
114 | select CPU_SUBTYPE_SH7780 | ||
115 | help | ||
116 | Select 7780 SolutionEngine if configuring for a Renesas SH7780 | ||
117 | evaluation board. | ||
98 | 118 | ||
99 | config SH_7300_SOLUTION_ENGINE | 119 | config SH_7300_SOLUTION_ENGINE |
100 | bool "SolutionEngine7300" | 120 | bool "SolutionEngine7300" |
@@ -193,12 +213,8 @@ config SH_RTS7751R2D | |||
193 | Select RTS7751R2D if configuring for a Renesas Technology | 213 | Select RTS7751R2D if configuring for a Renesas Technology |
194 | Sales SH-Graphics board. | 214 | Sales SH-Graphics board. |
195 | 215 | ||
196 | config SH_R7780RP | 216 | config SH_HIGHLANDER |
197 | bool "R7780RP-1" | 217 | bool "Highlander" |
198 | select CPU_SUBTYPE_SH7780 | ||
199 | help | ||
200 | Select R7780RP-1 if configuring for a Renesas Solutions | ||
201 | HIGHLANDER board. | ||
202 | 218 | ||
203 | config SH_EDOSK7705 | 219 | config SH_EDOSK7705 |
204 | bool "EDOSK7705" | 220 | bool "EDOSK7705" |
@@ -243,6 +259,12 @@ config SH_7619_SOLUTION_ENGINE | |||
243 | help | 259 | help |
244 | Select 7619 SolutionEngine if configuring for a Hitachi SH7619 | 260 | Select 7619 SolutionEngine if configuring for a Hitachi SH7619 |
245 | evaluation board. | 261 | evaluation board. |
262 | |||
263 | config SH_LBOX_RE2 | ||
264 | bool "L-BOX RE2" | ||
265 | select CPU_SUBTYPE_SH7751R | ||
266 | help | ||
267 | Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2. | ||
246 | 268 | ||
247 | config SH_UNKNOWN | 269 | config SH_UNKNOWN |
248 | bool "BareCPU" | 270 | bool "BareCPU" |
@@ -258,6 +280,10 @@ config SH_UNKNOWN | |||
258 | 280 | ||
259 | endchoice | 281 | endchoice |
260 | 282 | ||
283 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" | ||
284 | source "arch/sh/boards/renesas/rts7751r2d/Kconfig" | ||
285 | source "arch/sh/boards/renesas/r7780rp/Kconfig" | ||
286 | |||
261 | source "arch/sh/mm/Kconfig" | 287 | source "arch/sh/mm/Kconfig" |
262 | 288 | ||
263 | config CF_ENABLER | 289 | config CF_ENABLER |
@@ -366,6 +392,16 @@ config SH_STORE_QUEUES | |||
366 | Selecting this option will enable an in-kernel API for manipulating | 392 | Selecting this option will enable an in-kernel API for manipulating |
367 | the store queues integrated in the SH-4 processors. | 393 | the store queues integrated in the SH-4 processors. |
368 | 394 | ||
395 | config SPECULATIVE_EXECUTION | ||
396 | bool "Speculative subroutine return" | ||
397 | depends on CPU_SUBTYPE_SH7780 && EXPERIMENTAL | ||
398 | help | ||
399 | This enables support for a speculative instruction fetch for | ||
400 | subroutine return. There are various pitfalls associated with | ||
401 | this, as outlined in the SH7780 hardware manual. | ||
402 | |||
403 | If unsure, say N. | ||
404 | |||
369 | config CPU_HAS_INTEVT | 405 | config CPU_HAS_INTEVT |
370 | bool | 406 | bool |
371 | 407 | ||
@@ -398,8 +434,9 @@ config CPU_HAS_PTEA | |||
398 | 434 | ||
399 | endmenu | 435 | endmenu |
400 | 436 | ||
401 | menu "Timer support" | 437 | menu "Timer and clock configuration" |
402 | depends on !GENERIC_TIME | 438 | |
439 | if !GENERIC_TIME | ||
403 | 440 | ||
404 | config SH_TMU | 441 | config SH_TMU |
405 | bool "TMU timer support" | 442 | bool "TMU timer support" |
@@ -422,17 +459,11 @@ config SH_MTU2 | |||
422 | help | 459 | help |
423 | This enables the use of the MTU2 as the system timer. | 460 | This enables the use of the MTU2 as the system timer. |
424 | 461 | ||
425 | endmenu | 462 | endif |
426 | |||
427 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" | ||
428 | |||
429 | source "arch/sh/boards/renesas/rts7751r2d/Kconfig" | ||
430 | |||
431 | source "arch/sh/boards/renesas/r7780rp/Kconfig" | ||
432 | 463 | ||
433 | config SH_TIMER_IRQ | 464 | config SH_TIMER_IRQ |
434 | int | 465 | int |
435 | default "28" if CPU_SUBTYPE_SH7780 | 466 | default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 |
436 | default "86" if CPU_SUBTYPE_SH7619 | 467 | default "86" if CPU_SUBTYPE_SH7619 |
437 | default "140" if CPU_SUBTYPE_SH7206 | 468 | default "140" if CPU_SUBTYPE_SH7206 |
438 | default "16" | 469 | default "16" |
@@ -462,7 +493,8 @@ config SH_PCLK_FREQ | |||
462 | default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \ | 493 | default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \ |
463 | CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \ | 494 | CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \ |
464 | CPU_SUBTYPE_SH7206 | 495 | CPU_SUBTYPE_SH7206 |
465 | default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 | 496 | default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 || \ |
497 | CPU_SUBTYPE_SH7785 | ||
466 | default "60000000" if CPU_SUBTYPE_SH7751 | 498 | default "60000000" if CPU_SUBTYPE_SH7751 |
467 | default "66000000" if CPU_SUBTYPE_SH4_202 | 499 | default "66000000" if CPU_SUBTYPE_SH4_202 |
468 | help | 500 | help |
@@ -477,6 +509,8 @@ config SH_CLK_MD | |||
477 | help | 509 | help |
478 | MD2 - MD0 pin setting. | 510 | MD2 - MD0 pin setting. |
479 | 511 | ||
512 | endmenu | ||
513 | |||
480 | menu "CPU Frequency scaling" | 514 | menu "CPU Frequency scaling" |
481 | 515 | ||
482 | source "drivers/cpufreq/Kconfig" | 516 | source "drivers/cpufreq/Kconfig" |
@@ -495,21 +529,6 @@ config SH_CPU_FREQ | |||
495 | 529 | ||
496 | endmenu | 530 | endmenu |
497 | 531 | ||
498 | source "arch/sh/drivers/dma/Kconfig" | ||
499 | |||
500 | source "arch/sh/cchips/Kconfig" | ||
501 | |||
502 | config HEARTBEAT | ||
503 | bool "Heartbeat LED" | ||
504 | depends on SH_MPC1211 || SH_SH03 || \ | ||
505 | SOLUTION_ENGINE || \ | ||
506 | SH_RTS7751R2D || SH_SH4202_MICRODEV || SH_LANDISK || \ | ||
507 | SH_R7780RP | ||
508 | help | ||
509 | Use the power-on LED on your machine as a load meter. The exact | ||
510 | behavior is platform-dependent, but normally the flash frequency is | ||
511 | a hyperbolic function of the 5-minute load average. | ||
512 | |||
513 | source "arch/sh/drivers/Kconfig" | 532 | source "arch/sh/drivers/Kconfig" |
514 | 533 | ||
515 | endmenu | 534 | endmenu |
@@ -540,6 +559,20 @@ config KEXEC | |||
540 | support. As of this writing the exact hardware interface is | 559 | support. As of this writing the exact hardware interface is |
541 | strongly in flux, so no good recommendation can be made. | 560 | strongly in flux, so no good recommendation can be made. |
542 | 561 | ||
562 | config CRASH_DUMP | ||
563 | bool "kernel crash dumps (EXPERIMENTAL)" | ||
564 | depends on EXPERIMENTAL | ||
565 | help | ||
566 | Generate crash dump after being started by kexec. | ||
567 | This should be normally only set in special crash dump kernels | ||
568 | which are loaded in the main kernel with kexec-tools into | ||
569 | a specially reserved region and then later executed after | ||
570 | a crash by kdump/kexec. The crash dump kernel must be compiled | ||
571 | to a memory address not used by the main kernel using | ||
572 | MEMORY_START. | ||
573 | |||
574 | For more details see Documentation/kdump/kdump.txt | ||
575 | |||
543 | config SMP | 576 | config SMP |
544 | bool "Symmetric multi-processing support" | 577 | bool "Symmetric multi-processing support" |
545 | ---help--- | 578 | ---help--- |
diff --git a/arch/sh/Kconfig.debug b/arch/sh/Kconfig.debug index 87902e0298e2..b56307294b67 100644 --- a/arch/sh/Kconfig.debug +++ b/arch/sh/Kconfig.debug | |||
@@ -33,6 +33,7 @@ config EARLY_SCIF_CONSOLE_PORT | |||
33 | default "0xffe00000" if CPU_SUBTYPE_SH7780 | 33 | default "0xffe00000" if CPU_SUBTYPE_SH7780 |
34 | default "0xfffe9800" if CPU_SUBTYPE_SH7206 | 34 | default "0xfffe9800" if CPU_SUBTYPE_SH7206 |
35 | default "0xf8420000" if CPU_SUBTYPE_SH7619 | 35 | default "0xf8420000" if CPU_SUBTYPE_SH7619 |
36 | default "0xa4400000" if CPU_SUBTYPE_SH7712 || CPU_SUBTYPE_SH7705 | ||
36 | default "0xffe80000" if CPU_SH4 | 37 | default "0xffe80000" if CPU_SH4 |
37 | 38 | ||
38 | config EARLY_PRINTK | 39 | config EARLY_PRINTK |
@@ -77,16 +78,17 @@ config 4KSTACKS | |||
77 | on the VM subsystem for higher order allocations. This option | 78 | on the VM subsystem for higher order allocations. This option |
78 | will also use IRQ stacks to compensate for the reduced stackspace. | 79 | will also use IRQ stacks to compensate for the reduced stackspace. |
79 | 80 | ||
80 | config KGDB | 81 | config SH_KGDB |
81 | bool "Include KGDB kernel debugger" | 82 | bool "Include KGDB kernel debugger" |
82 | select FRAME_POINTER | 83 | select FRAME_POINTER |
84 | select DEBUG_INFO | ||
83 | help | 85 | help |
84 | Include in-kernel hooks for kgdb, the Linux kernel source level | 86 | Include in-kernel hooks for kgdb, the Linux kernel source level |
85 | debugger. See <http://kgdb.sourceforge.net/> for more information. | 87 | debugger. See <http://kgdb.sourceforge.net/> for more information. |
86 | Unless you are intending to debug the kernel, say N here. | 88 | Unless you are intending to debug the kernel, say N here. |
87 | 89 | ||
88 | menu "KGDB configuration options" | 90 | menu "KGDB configuration options" |
89 | depends on KGDB | 91 | depends on SH_KGDB |
90 | 92 | ||
91 | config MORE_COMPILE_OPTIONS | 93 | config MORE_COMPILE_OPTIONS |
92 | bool "Add any additional compile options" | 94 | bool "Add any additional compile options" |
@@ -103,22 +105,16 @@ config KGDB_NMI | |||
103 | bool "Enter KGDB on NMI" | 105 | bool "Enter KGDB on NMI" |
104 | default n | 106 | default n |
105 | 107 | ||
106 | config KGDB_THREAD | ||
107 | bool "Include KGDB thread support" | ||
108 | default y | ||
109 | |||
110 | config SH_KGDB_CONSOLE | 108 | config SH_KGDB_CONSOLE |
111 | bool "Console messages through GDB" | 109 | bool "Console messages through GDB" |
110 | depends on !SERIAL_SH_SCI_CONSOLE | ||
111 | select SERIAL_CORE_CONSOLE | ||
112 | default n | 112 | default n |
113 | 113 | ||
114 | config KGDB_SYSRQ | 114 | config KGDB_SYSRQ |
115 | bool "Allow SysRq 'G' to enter KGDB" | 115 | bool "Allow SysRq 'G' to enter KGDB" |
116 | default y | 116 | default y |
117 | 117 | ||
118 | config KGDB_KERNEL_ASSERTS | ||
119 | bool "Include KGDB kernel assertions" | ||
120 | default n | ||
121 | |||
122 | comment "Serial port setup" | 118 | comment "Serial port setup" |
123 | 119 | ||
124 | config KGDB_DEFPORT | 120 | config KGDB_DEFPORT |
@@ -131,7 +127,7 @@ config KGDB_DEFBAUD | |||
131 | 127 | ||
132 | choice | 128 | choice |
133 | prompt "Parity" | 129 | prompt "Parity" |
134 | depends on KGDB | 130 | depends on SH_KGDB |
135 | default KGDB_DEFPARITY_N | 131 | default KGDB_DEFPARITY_N |
136 | 132 | ||
137 | config KGDB_DEFPARITY_N | 133 | config KGDB_DEFPARITY_N |
@@ -147,7 +143,7 @@ endchoice | |||
147 | 143 | ||
148 | choice | 144 | choice |
149 | prompt "Data bits" | 145 | prompt "Data bits" |
150 | depends on KGDB | 146 | depends on SH_KGDB |
151 | default KGDB_DEFBITS_8 | 147 | default KGDB_DEFBITS_8 |
152 | 148 | ||
153 | config KGDB_DEFBITS_8 | 149 | config KGDB_DEFBITS_8 |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index bd9b1729f8b8..7b1122417050 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -47,7 +47,6 @@ cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml | |||
47 | cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding | 47 | cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding |
48 | 48 | ||
49 | cflags-$(CONFIG_SH_DSP) += -Wa,-dsp | 49 | cflags-$(CONFIG_SH_DSP) += -Wa,-dsp |
50 | cflags-$(CONFIG_SH_KGDB) += -g | ||
51 | 50 | ||
52 | cflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ | 51 | cflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ |
53 | $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') | 52 | $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') |
@@ -89,7 +88,9 @@ core-$(CONFIG_SH_FPU_EMU) += arch/sh/math-emu/ | |||
89 | 88 | ||
90 | # Boards | 89 | # Boards |
91 | machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x | 90 | machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x |
91 | machdir-$(CONFIG_SH_7722_SOLUTION_ENGINE) := se/7722 | ||
92 | machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se/7751 | 92 | machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se/7751 |
93 | machdir-$(CONFIG_SH_7780_SOLUTION_ENGINE) := se/7780 | ||
93 | machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se/7300 | 94 | machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se/7300 |
94 | machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE) := se/7343 | 95 | machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE) := se/7343 |
95 | machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180 | 96 | machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180 |
@@ -103,7 +104,7 @@ machdir-$(CONFIG_SH_HS7751RVOIP) := renesas/hs7751rvoip | |||
103 | machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d | 104 | machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d |
104 | machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh | 105 | machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh |
105 | machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705 | 106 | machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705 |
106 | machdir-$(CONFIG_SH_R7780RP) := renesas/r7780rp | 107 | machdir-$(CONFIG_SH_HIGHLANDER) := renesas/r7780rp |
107 | machdir-$(CONFIG_SH_7710VOIPGW) := renesas/sh7710voipgw | 108 | machdir-$(CONFIG_SH_7710VOIPGW) := renesas/sh7710voipgw |
108 | machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev | 109 | machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev |
109 | machdir-$(CONFIG_SH_LANDISK) := landisk | 110 | machdir-$(CONFIG_SH_LANDISK) := landisk |
@@ -111,6 +112,7 @@ machdir-$(CONFIG_SH_TITAN) := titan | |||
111 | machdir-$(CONFIG_SH_SHMIN) := shmin | 112 | machdir-$(CONFIG_SH_SHMIN) := shmin |
112 | machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) := se/7206 | 113 | machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) := se/7206 |
113 | machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) := se/7619 | 114 | machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) := se/7619 |
115 | machdir-$(CONFIG_SH_LBOX_RE2) := lboxre2 | ||
114 | machdir-$(CONFIG_SH_UNKNOWN) := unknown | 116 | machdir-$(CONFIG_SH_UNKNOWN) := unknown |
115 | 117 | ||
116 | incdir-y := $(notdir $(machdir-y)) | 118 | incdir-y := $(notdir $(machdir-y)) |
diff --git a/arch/sh/boards/hp6xx/Makefile b/arch/sh/boards/hp6xx/Makefile index ff1b7f5b4e91..b3124278247c 100644 --- a/arch/sh/boards/hp6xx/Makefile +++ b/arch/sh/boards/hp6xx/Makefile | |||
@@ -2,6 +2,6 @@ | |||
2 | # Makefile for the HP6xx specific parts of the kernel | 2 | # Makefile for the HP6xx specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := setup.o | 5 | obj-y := setup.o |
6 | obj-$(CONFIG_PM) += pm.o pm_wakeup.o | 6 | obj-$(CONFIG_PM) += pm.o pm_wakeup.o |
7 | obj-$(CONFIG_APM) += hp6xx_apm.o | 7 | obj-$(CONFIG_APM_EMULATION) += hp6xx_apm.o |
diff --git a/arch/sh/boards/hp6xx/setup.c b/arch/sh/boards/hp6xx/setup.c index b5a96649ed26..6aeee85c9785 100644 --- a/arch/sh/boards/hp6xx/setup.c +++ b/arch/sh/boards/hp6xx/setup.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * linux/arch/sh/boards/hp6xx/setup.c | 2 | * linux/arch/sh/boards/hp6xx/setup.c |
3 | * | 3 | * |
4 | * Copyright (C) 2002 Andriy Skulysh | 4 | * Copyright (C) 2002 Andriy Skulysh |
5 | * Copyright (C) 2007 Kristoffer Ericson <Kristoffer_e1@hotmail.com> | ||
5 | * | 6 | * |
6 | * May be copied or modified under the terms of the GNU General Public | 7 | * May be copied or modified under the terms of the GNU General Public |
7 | * License. See linux/COPYING for more information. | 8 | * License. See linux/COPYING for more information. |
@@ -10,6 +11,7 @@ | |||
10 | */ | 11 | */ |
11 | #include <linux/types.h> | 12 | #include <linux/types.h> |
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/platform_device.h> | ||
13 | #include <asm/hd64461.h> | 15 | #include <asm/hd64461.h> |
14 | #include <asm/io.h> | 16 | #include <asm/io.h> |
15 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
@@ -19,6 +21,40 @@ | |||
19 | #define SCPCR 0xa4000116 | 21 | #define SCPCR 0xa4000116 |
20 | #define SCPDR 0xa4000136 | 22 | #define SCPDR 0xa4000136 |
21 | 23 | ||
24 | /* CF Slot */ | ||
25 | static struct resource cf_ide_resources[] = { | ||
26 | [0] = { | ||
27 | .start = 0x15000000 + 0x1f0, | ||
28 | .end = 0x15000000 + 0x1f0 + 0x08 - 0x01, | ||
29 | .flags = IORESOURCE_MEM, | ||
30 | }, | ||
31 | [1] = { | ||
32 | .start = 0x15000000 + 0x1fe, | ||
33 | .end = 0x15000000 + 0x1fe + 0x01, | ||
34 | .flags = IORESOURCE_MEM, | ||
35 | }, | ||
36 | [2] = { | ||
37 | .start = 93, | ||
38 | .flags = IORESOURCE_IRQ, | ||
39 | }, | ||
40 | }; | ||
41 | |||
42 | static struct platform_device cf_ide_device = { | ||
43 | .name = "pata_platform", | ||
44 | .id = -1, | ||
45 | .num_resources = ARRAY_SIZE(cf_ide_resources), | ||
46 | .resource = cf_ide_resources, | ||
47 | }; | ||
48 | |||
49 | static struct platform_device *hp6xx_devices[] __initdata = { | ||
50 | &cf_ide_device, | ||
51 | }; | ||
52 | |||
53 | static int __init hp6xx_devices_setup(void) | ||
54 | { | ||
55 | return platform_add_devices(hp6xx_devices, ARRAY_SIZE(hp6xx_devices)); | ||
56 | } | ||
57 | |||
22 | static void __init hp6xx_setup(char **cmdline_p) | 58 | static void __init hp6xx_setup(char **cmdline_p) |
23 | { | 59 | { |
24 | u8 v8; | 60 | u8 v8; |
@@ -60,41 +96,12 @@ static void __init hp6xx_setup(char **cmdline_p) | |||
60 | v |= SCPCR_TS_ENABLE; | 96 | v |= SCPCR_TS_ENABLE; |
61 | ctrl_outw(v, SCPCR); | 97 | ctrl_outw(v, SCPCR); |
62 | } | 98 | } |
99 | device_initcall(hp6xx_devices_setup); | ||
63 | 100 | ||
64 | /* | ||
65 | * XXX: This is stupid, we should have a generic machine vector for the cchips | ||
66 | * and just wrap the platform setup code in to this, as it's the only thing | ||
67 | * that ends up being different. | ||
68 | */ | ||
69 | struct sh_machine_vector mv_hp6xx __initmv = { | 101 | struct sh_machine_vector mv_hp6xx __initmv = { |
70 | .mv_name = "hp6xx", | 102 | .mv_name = "hp6xx", |
71 | .mv_setup = hp6xx_setup, | 103 | .mv_setup = hp6xx_setup, |
72 | .mv_nr_irqs = HD64461_IRQBASE + HD64461_IRQ_NUM, | 104 | .mv_nr_irqs = HD64461_IRQBASE + HD64461_IRQ_NUM, |
73 | |||
74 | .mv_inb = hd64461_inb, | ||
75 | .mv_inw = hd64461_inw, | ||
76 | .mv_inl = hd64461_inl, | ||
77 | .mv_outb = hd64461_outb, | ||
78 | .mv_outw = hd64461_outw, | ||
79 | .mv_outl = hd64461_outl, | ||
80 | |||
81 | .mv_inb_p = hd64461_inb_p, | ||
82 | .mv_inw_p = hd64461_inw, | ||
83 | .mv_inl_p = hd64461_inl, | ||
84 | .mv_outb_p = hd64461_outb_p, | ||
85 | .mv_outw_p = hd64461_outw, | ||
86 | .mv_outl_p = hd64461_outl, | ||
87 | |||
88 | .mv_insb = hd64461_insb, | ||
89 | .mv_insw = hd64461_insw, | ||
90 | .mv_insl = hd64461_insl, | ||
91 | .mv_outsb = hd64461_outsb, | ||
92 | .mv_outsw = hd64461_outsw, | ||
93 | .mv_outsl = hd64461_outsl, | ||
94 | |||
95 | .mv_readw = hd64461_readw, | ||
96 | .mv_writew = hd64461_writew, | ||
97 | |||
98 | .mv_irq_demux = hd64461_irq_demux, | 105 | .mv_irq_demux = hd64461_irq_demux, |
99 | }; | 106 | }; |
100 | ALIAS_MV(hp6xx) | 107 | ALIAS_MV(hp6xx) |
diff --git a/arch/sh/boards/landisk/Makefile b/arch/sh/boards/landisk/Makefile index 89e4beb2ad47..a696b4277fa9 100644 --- a/arch/sh/boards/landisk/Makefile +++ b/arch/sh/boards/landisk/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | # Makefile for I-O DATA DEVICE, INC. "LANDISK Series" | 2 | # Makefile for I-O DATA DEVICE, INC. "LANDISK Series" |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := setup.o io.o irq.o rtc.o landisk_pwb.o | 5 | obj-y := setup.o irq.o psw.o gio.o |
diff --git a/arch/sh/boards/landisk/gio.c b/arch/sh/boards/landisk/gio.c new file mode 100644 index 000000000000..50d38be62f01 --- /dev/null +++ b/arch/sh/boards/landisk/gio.c | |||
@@ -0,0 +1,167 @@ | |||
1 | /* | ||
2 | * arch/sh/boards/landisk/gio.c - driver for landisk | ||
3 | * | ||
4 | * This driver will also support the I-O DATA Device, Inc. LANDISK Board. | ||
5 | * LANDISK and USL-5P Button, LED and GIO driver drive function. | ||
6 | * | ||
7 | * Copylight (C) 2006 kogiidena | ||
8 | * Copylight (C) 2002 Atom Create Engineering Co., Ltd. * | ||
9 | * | ||
10 | * This file is subject to the terms and conditions of the GNU General Public | ||
11 | * License. See the file "COPYING" in the main directory of this archive | ||
12 | * for more details. | ||
13 | * | ||
14 | */ | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/kdev_t.h> | ||
18 | #include <linux/cdev.h> | ||
19 | #include <linux/fs.h> | ||
20 | #include <asm/io.h> | ||
21 | #include <asm/uaccess.h> | ||
22 | #include <asm/landisk/gio.h> | ||
23 | #include <asm/landisk/iodata_landisk.h> | ||
24 | |||
25 | #define DEVCOUNT 4 | ||
26 | #define GIO_MINOR 2 /* GIO minor no. */ | ||
27 | |||
28 | static dev_t dev; | ||
29 | static struct cdev *cdev_p; | ||
30 | static int openCnt; | ||
31 | |||
32 | static int gio_open(struct inode *inode, struct file *filp) | ||
33 | { | ||
34 | int minor; | ||
35 | |||
36 | minor = MINOR(inode->i_rdev); | ||
37 | if (minor < DEVCOUNT) { | ||
38 | if (openCnt > 0) { | ||
39 | return -EALREADY; | ||
40 | } else { | ||
41 | openCnt++; | ||
42 | return 0; | ||
43 | } | ||
44 | } | ||
45 | return -ENOENT; | ||
46 | } | ||
47 | |||
48 | static int gio_close(struct inode *inode, struct file *filp) | ||
49 | { | ||
50 | int minor; | ||
51 | |||
52 | minor = MINOR(inode->i_rdev); | ||
53 | if (minor < DEVCOUNT) { | ||
54 | openCnt--; | ||
55 | } | ||
56 | return 0; | ||
57 | } | ||
58 | |||
59 | static int gio_ioctl(struct inode *inode, struct file *filp, | ||
60 | unsigned int cmd, unsigned long arg) | ||
61 | { | ||
62 | unsigned int data; | ||
63 | static unsigned int addr = 0; | ||
64 | |||
65 | if (cmd & 0x01) { /* write */ | ||
66 | if (copy_from_user(&data, (int *)arg, sizeof(int))) { | ||
67 | return -EFAULT; | ||
68 | } | ||
69 | } | ||
70 | |||
71 | switch (cmd) { | ||
72 | case GIODRV_IOCSGIOSETADDR: /* addres set */ | ||
73 | addr = data; | ||
74 | break; | ||
75 | |||
76 | case GIODRV_IOCSGIODATA1: /* write byte */ | ||
77 | ctrl_outb((unsigned char)(0x0ff & data), addr); | ||
78 | break; | ||
79 | |||
80 | case GIODRV_IOCSGIODATA2: /* write word */ | ||
81 | if (addr & 0x01) { | ||
82 | return -EFAULT; | ||
83 | } | ||
84 | ctrl_outw((unsigned short int)(0x0ffff & data), addr); | ||
85 | break; | ||
86 | |||
87 | case GIODRV_IOCSGIODATA4: /* write long */ | ||
88 | if (addr & 0x03) { | ||
89 | return -EFAULT; | ||
90 | } | ||
91 | ctrl_outl(data, addr); | ||
92 | break; | ||
93 | |||
94 | case GIODRV_IOCGGIODATA1: /* read byte */ | ||
95 | data = ctrl_inb(addr); | ||
96 | break; | ||
97 | |||
98 | case GIODRV_IOCGGIODATA2: /* read word */ | ||
99 | if (addr & 0x01) { | ||
100 | return -EFAULT; | ||
101 | } | ||
102 | data = ctrl_inw(addr); | ||
103 | break; | ||
104 | |||
105 | case GIODRV_IOCGGIODATA4: /* read long */ | ||
106 | if (addr & 0x03) { | ||
107 | return -EFAULT; | ||
108 | } | ||
109 | data = ctrl_inl(addr); | ||
110 | break; | ||
111 | default: | ||
112 | return -EFAULT; | ||
113 | break; | ||
114 | } | ||
115 | |||
116 | if ((cmd & 0x01) == 0) { /* read */ | ||
117 | if (copy_to_user((int *)arg, &data, sizeof(int))) { | ||
118 | return -EFAULT; | ||
119 | } | ||
120 | } | ||
121 | return 0; | ||
122 | } | ||
123 | |||
124 | static struct file_operations gio_fops = { | ||
125 | .owner = THIS_MODULE, | ||
126 | .open = gio_open, /* open */ | ||
127 | .release = gio_close, /* release */ | ||
128 | .ioctl = gio_ioctl, /* ioctl */ | ||
129 | }; | ||
130 | |||
131 | static int __init gio_init(void) | ||
132 | { | ||
133 | int error; | ||
134 | |||
135 | printk(KERN_INFO "gio: driver initialized\n"); | ||
136 | |||
137 | openCnt = 0; | ||
138 | |||
139 | if ((error = alloc_chrdev_region(&dev, 0, DEVCOUNT, "gio")) < 0) { | ||
140 | printk(KERN_ERR | ||
141 | "gio: Couldn't alloc_chrdev_region, error=%d\n", | ||
142 | error); | ||
143 | return 1; | ||
144 | } | ||
145 | |||
146 | cdev_p = cdev_alloc(); | ||
147 | cdev_p->ops = &gio_fops; | ||
148 | error = cdev_add(cdev_p, dev, DEVCOUNT); | ||
149 | if (error) { | ||
150 | printk(KERN_ERR | ||
151 | "gio: Couldn't cdev_add, error=%d\n", error); | ||
152 | return 1; | ||
153 | } | ||
154 | |||
155 | return 0; | ||
156 | } | ||
157 | |||
158 | static void __exit gio_exit(void) | ||
159 | { | ||
160 | cdev_del(cdev_p); | ||
161 | unregister_chrdev_region(dev, DEVCOUNT); | ||
162 | } | ||
163 | |||
164 | module_init(gio_init); | ||
165 | module_exit(gio_exit); | ||
166 | |||
167 | MODULE_LICENSE("GPL"); | ||
diff --git a/arch/sh/boards/landisk/io.c b/arch/sh/boards/landisk/io.c deleted file mode 100644 index 92498b4947d5..000000000000 --- a/arch/sh/boards/landisk/io.c +++ /dev/null | |||
@@ -1,250 +0,0 @@ | |||
1 | /* | ||
2 | * arch/sh/boards/landisk/io.c | ||
3 | * | ||
4 | * Copyright (C) 2001 Ian da Silva, Jeremy Siegel | ||
5 | * Based largely on io_se.c. | ||
6 | * | ||
7 | * I/O routine for I-O Data Device, Inc. LANDISK. | ||
8 | * | ||
9 | * Initial version only to support LAN access; some | ||
10 | * placeholder code from io_landisk.c left in with the | ||
11 | * expectation of later SuperIO and PCMCIA access. | ||
12 | */ | ||
13 | /* | ||
14 | * modifed by kogiidena | ||
15 | * 2005.03.03 | ||
16 | */ | ||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/types.h> | ||
19 | #include <linux/pci.h> | ||
20 | #include <asm/landisk/iodata_landisk.h> | ||
21 | #include <asm/addrspace.h> | ||
22 | #include <asm/io.h> | ||
23 | |||
24 | extern void *area5_io_base; /* Area 5 I/O Base address */ | ||
25 | extern void *area6_io_base; /* Area 6 I/O Base address */ | ||
26 | |||
27 | static inline unsigned long port2adr(unsigned int port) | ||
28 | { | ||
29 | if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6) | ||
30 | if (port == 0x3f6) | ||
31 | return ((unsigned long)area5_io_base + 0x2c); | ||
32 | else | ||
33 | return ((unsigned long)area5_io_base + PA_PIDE_OFFSET + | ||
34 | ((port - 0x1f0) << 1)); | ||
35 | else if ((0x170 <= port && port < 0x178) || port == 0x376) | ||
36 | if (port == 0x376) | ||
37 | return ((unsigned long)area6_io_base + 0x2c); | ||
38 | else | ||
39 | return ((unsigned long)area6_io_base + PA_SIDE_OFFSET + | ||
40 | ((port - 0x170) << 1)); | ||
41 | else | ||
42 | maybebadio((unsigned long)port); | ||
43 | |||
44 | return port; | ||
45 | } | ||
46 | |||
47 | /* | ||
48 | * General outline: remap really low stuff [eventually] to SuperIO, | ||
49 | * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO) | ||
50 | * is mapped through the PCI IO window. Stuff with high bits (PXSEG) | ||
51 | * should be way beyond the window, and is used w/o translation for | ||
52 | * compatibility. | ||
53 | */ | ||
54 | u8 landisk_inb(unsigned long port) | ||
55 | { | ||
56 | if (PXSEG(port)) | ||
57 | return ctrl_inb(port); | ||
58 | else if (is_pci_ioaddr(port)) | ||
59 | return ctrl_inb(pci_ioaddr(port)); | ||
60 | |||
61 | return ctrl_inw(port2adr(port)) & 0xff; | ||
62 | } | ||
63 | |||
64 | u8 landisk_inb_p(unsigned long port) | ||
65 | { | ||
66 | u8 v; | ||
67 | |||
68 | if (PXSEG(port)) | ||
69 | v = ctrl_inb(port); | ||
70 | else if (is_pci_ioaddr(port)) | ||
71 | v = ctrl_inb(pci_ioaddr(port)); | ||
72 | else | ||
73 | v = ctrl_inw(port2adr(port)) & 0xff; | ||
74 | |||
75 | ctrl_delay(); | ||
76 | |||
77 | return v; | ||
78 | } | ||
79 | |||
80 | u16 landisk_inw(unsigned long port) | ||
81 | { | ||
82 | if (PXSEG(port)) | ||
83 | return ctrl_inw(port); | ||
84 | else if (is_pci_ioaddr(port)) | ||
85 | return ctrl_inw(pci_ioaddr(port)); | ||
86 | else | ||
87 | maybebadio(port); | ||
88 | |||
89 | return 0; | ||
90 | } | ||
91 | |||
92 | u32 landisk_inl(unsigned long port) | ||
93 | { | ||
94 | if (PXSEG(port)) | ||
95 | return ctrl_inl(port); | ||
96 | else if (is_pci_ioaddr(port)) | ||
97 | return ctrl_inl(pci_ioaddr(port)); | ||
98 | else | ||
99 | maybebadio(port); | ||
100 | |||
101 | return 0; | ||
102 | } | ||
103 | |||
104 | void landisk_outb(u8 value, unsigned long port) | ||
105 | { | ||
106 | if (PXSEG(port)) | ||
107 | ctrl_outb(value, port); | ||
108 | else if (is_pci_ioaddr(port)) | ||
109 | ctrl_outb(value, pci_ioaddr(port)); | ||
110 | else | ||
111 | ctrl_outw(value, port2adr(port)); | ||
112 | } | ||
113 | |||
114 | void landisk_outb_p(u8 value, unsigned long port) | ||
115 | { | ||
116 | if (PXSEG(port)) | ||
117 | ctrl_outb(value, port); | ||
118 | else if (is_pci_ioaddr(port)) | ||
119 | ctrl_outb(value, pci_ioaddr(port)); | ||
120 | else | ||
121 | ctrl_outw(value, port2adr(port)); | ||
122 | ctrl_delay(); | ||
123 | } | ||
124 | |||
125 | void landisk_outw(u16 value, unsigned long port) | ||
126 | { | ||
127 | if (PXSEG(port)) | ||
128 | ctrl_outw(value, port); | ||
129 | else if (is_pci_ioaddr(port)) | ||
130 | ctrl_outw(value, pci_ioaddr(port)); | ||
131 | else | ||
132 | maybebadio(port); | ||
133 | } | ||
134 | |||
135 | void landisk_outl(u32 value, unsigned long port) | ||
136 | { | ||
137 | if (PXSEG(port)) | ||
138 | ctrl_outl(value, port); | ||
139 | else if (is_pci_ioaddr(port)) | ||
140 | ctrl_outl(value, pci_ioaddr(port)); | ||
141 | else | ||
142 | maybebadio(port); | ||
143 | } | ||
144 | |||
145 | void landisk_insb(unsigned long port, void *dst, unsigned long count) | ||
146 | { | ||
147 | volatile u16 *p; | ||
148 | u8 *buf = dst; | ||
149 | |||
150 | if (PXSEG(port)) { | ||
151 | while (count--) | ||
152 | *buf++ = *(volatile u8 *)port; | ||
153 | } else if (is_pci_ioaddr(port)) { | ||
154 | volatile u8 *bp = (volatile u8 *)pci_ioaddr(port); | ||
155 | |||
156 | while (count--) | ||
157 | *buf++ = *bp; | ||
158 | } else { | ||
159 | p = (volatile u16 *)port2adr(port); | ||
160 | while (count--) | ||
161 | *buf++ = *p & 0xff; | ||
162 | } | ||
163 | } | ||
164 | |||
165 | void landisk_insw(unsigned long port, void *dst, unsigned long count) | ||
166 | { | ||
167 | volatile u16 *p; | ||
168 | u16 *buf = dst; | ||
169 | |||
170 | if (PXSEG(port)) | ||
171 | p = (volatile u16 *)port; | ||
172 | else if (is_pci_ioaddr(port)) | ||
173 | p = (volatile u16 *)pci_ioaddr(port); | ||
174 | else | ||
175 | p = (volatile u16 *)port2adr(port); | ||
176 | while (count--) | ||
177 | *buf++ = *p; | ||
178 | } | ||
179 | |||
180 | void landisk_insl(unsigned long port, void *dst, unsigned long count) | ||
181 | { | ||
182 | u32 *buf = dst; | ||
183 | |||
184 | if (is_pci_ioaddr(port)) { | ||
185 | volatile u32 *p = (volatile u32 *)pci_ioaddr(port); | ||
186 | |||
187 | while (count--) | ||
188 | *buf++ = *p; | ||
189 | } else | ||
190 | maybebadio(port); | ||
191 | } | ||
192 | |||
193 | void landisk_outsb(unsigned long port, const void *src, unsigned long count) | ||
194 | { | ||
195 | volatile u16 *p; | ||
196 | const u8 *buf = src; | ||
197 | |||
198 | if (PXSEG(port)) | ||
199 | while (count--) | ||
200 | ctrl_outb(*buf++, port); | ||
201 | else if (is_pci_ioaddr(port)) { | ||
202 | volatile u8 *bp = (volatile u8 *)pci_ioaddr(port); | ||
203 | |||
204 | while (count--) | ||
205 | *bp = *buf++; | ||
206 | } else { | ||
207 | p = (volatile u16 *)port2adr(port); | ||
208 | while (count--) | ||
209 | *p = *buf++; | ||
210 | } | ||
211 | } | ||
212 | |||
213 | void landisk_outsw(unsigned long port, const void *src, unsigned long count) | ||
214 | { | ||
215 | volatile u16 *p; | ||
216 | const u16 *buf = src; | ||
217 | |||
218 | if (PXSEG(port)) | ||
219 | p = (volatile u16 *)port; | ||
220 | else if (is_pci_ioaddr(port)) | ||
221 | p = (volatile u16 *)pci_ioaddr(port); | ||
222 | else | ||
223 | p = (volatile u16 *)port2adr(port); | ||
224 | |||
225 | while (count--) | ||
226 | *p = *buf++; | ||
227 | } | ||
228 | |||
229 | void landisk_outsl(unsigned long port, const void *src, unsigned long count) | ||
230 | { | ||
231 | const u32 *buf = src; | ||
232 | |||
233 | if (is_pci_ioaddr(port)) { | ||
234 | volatile u32 *p = (volatile u32 *)pci_ioaddr(port); | ||
235 | |||
236 | while (count--) | ||
237 | *p = *buf++; | ||
238 | } else | ||
239 | maybebadio(port); | ||
240 | } | ||
241 | |||
242 | void __iomem *landisk_ioport_map(unsigned long port, unsigned int size) | ||
243 | { | ||
244 | if (PXSEG(port)) | ||
245 | return (void __iomem *)port; | ||
246 | else if (is_pci_ioaddr(port)) | ||
247 | return (void __iomem *)pci_ioaddr(port); | ||
248 | |||
249 | return (void __iomem *)port2adr(port); | ||
250 | } | ||
diff --git a/arch/sh/boards/landisk/irq.c b/arch/sh/boards/landisk/irq.c index 3eba6d086d7f..258649491d44 100644 --- a/arch/sh/boards/landisk/irq.c +++ b/arch/sh/boards/landisk/irq.c | |||
@@ -1,18 +1,16 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/boards/landisk/irq.c | 2 | * arch/sh/boards/landisk/irq.c |
3 | * | 3 | * |
4 | * I-O DATA Device, Inc. LANDISK Support | ||
5 | * | ||
6 | * Copyright (C) 2005-2007 kogiidena | ||
7 | * | ||
4 | * Copyright (C) 2001 Ian da Silva, Jeremy Siegel | 8 | * Copyright (C) 2001 Ian da Silva, Jeremy Siegel |
5 | * Based largely on io_se.c. | 9 | * Based largely on io_se.c. |
6 | * | 10 | * |
7 | * I/O routine for I-O Data Device, Inc. LANDISK. | 11 | * This file is subject to the terms and conditions of the GNU General Public |
8 | * | 12 | * License. See the file "COPYING" in the main directory of this archive |
9 | * Initial version only to support LAN access; some | 13 | * for more details. |
10 | * placeholder code from io_landisk.c left in with the | ||
11 | * expectation of later SuperIO and PCMCIA access. | ||
12 | */ | ||
13 | /* | ||
14 | * modified by kogiidena | ||
15 | * 2005.03.03 | ||
16 | */ | 14 | */ |
17 | #include <linux/init.h> | 15 | #include <linux/init.h> |
18 | #include <linux/irq.h> | 16 | #include <linux/irq.h> |
@@ -20,71 +18,27 @@ | |||
20 | #include <linux/io.h> | 18 | #include <linux/io.h> |
21 | #include <asm/landisk/iodata_landisk.h> | 19 | #include <asm/landisk/iodata_landisk.h> |
22 | 20 | ||
23 | static void enable_landisk_irq(unsigned int irq); | ||
24 | static void disable_landisk_irq(unsigned int irq); | ||
25 | |||
26 | /* shutdown is same as "disable" */ | ||
27 | #define shutdown_landisk_irq disable_landisk_irq | ||
28 | |||
29 | static void ack_landisk_irq(unsigned int irq); | ||
30 | static void end_landisk_irq(unsigned int irq); | ||
31 | |||
32 | static unsigned int startup_landisk_irq(unsigned int irq) | ||
33 | { | ||
34 | enable_landisk_irq(irq); | ||
35 | return 0; /* never anything pending */ | ||
36 | } | ||
37 | |||
38 | static void disable_landisk_irq(unsigned int irq) | 21 | static void disable_landisk_irq(unsigned int irq) |
39 | { | 22 | { |
40 | unsigned char val; | ||
41 | unsigned char mask = 0xff ^ (0x01 << (irq - 5)); | 23 | unsigned char mask = 0xff ^ (0x01 << (irq - 5)); |
42 | 24 | ||
43 | /* Set the priority in IPR to 0 */ | 25 | ctrl_outb(ctrl_inb(PA_IMASK) & mask, PA_IMASK); |
44 | val = ctrl_inb(PA_IMASK); | ||
45 | val &= mask; | ||
46 | ctrl_outb(val, PA_IMASK); | ||
47 | } | 26 | } |
48 | 27 | ||
49 | static void enable_landisk_irq(unsigned int irq) | 28 | static void enable_landisk_irq(unsigned int irq) |
50 | { | 29 | { |
51 | unsigned char val; | ||
52 | unsigned char value = (0x01 << (irq - 5)); | 30 | unsigned char value = (0x01 << (irq - 5)); |
53 | 31 | ||
54 | /* Set priority in IPR back to original value */ | 32 | ctrl_outb(ctrl_inb(PA_IMASK) | value, PA_IMASK); |
55 | val = ctrl_inb(PA_IMASK); | ||
56 | val |= value; | ||
57 | ctrl_outb(val, PA_IMASK); | ||
58 | } | ||
59 | |||
60 | static void ack_landisk_irq(unsigned int irq) | ||
61 | { | ||
62 | disable_landisk_irq(irq); | ||
63 | } | ||
64 | |||
65 | static void end_landisk_irq(unsigned int irq) | ||
66 | { | ||
67 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) | ||
68 | enable_landisk_irq(irq); | ||
69 | } | 33 | } |
70 | 34 | ||
71 | static struct hw_interrupt_type landisk_irq_type = { | 35 | static struct irq_chip landisk_irq_chip __read_mostly = { |
72 | .typename = "LANDISK IRQ", | 36 | .name = "LANDISK", |
73 | .startup = startup_landisk_irq, | 37 | .mask = disable_landisk_irq, |
74 | .shutdown = shutdown_landisk_irq, | 38 | .unmask = enable_landisk_irq, |
75 | .enable = enable_landisk_irq, | 39 | .mask_ack = disable_landisk_irq, |
76 | .disable = disable_landisk_irq, | ||
77 | .ack = ack_landisk_irq, | ||
78 | .end = end_landisk_irq | ||
79 | }; | 40 | }; |
80 | 41 | ||
81 | static void make_landisk_irq(unsigned int irq) | ||
82 | { | ||
83 | disable_irq_nosync(irq); | ||
84 | irq_desc[irq].chip = &landisk_irq_type; | ||
85 | disable_landisk_irq(irq); | ||
86 | } | ||
87 | |||
88 | /* | 42 | /* |
89 | * Initialize IRQ setting | 43 | * Initialize IRQ setting |
90 | */ | 44 | */ |
@@ -92,6 +46,11 @@ void __init init_landisk_IRQ(void) | |||
92 | { | 46 | { |
93 | int i; | 47 | int i; |
94 | 48 | ||
95 | for (i = 5; i < 14; i++) | 49 | for (i = 5; i < 14; i++) { |
96 | make_landisk_irq(i); | 50 | disable_irq_nosync(i); |
51 | set_irq_chip_and_handler_name(i, &landisk_irq_chip, | ||
52 | handle_level_irq, "level"); | ||
53 | enable_landisk_irq(i); | ||
54 | } | ||
55 | ctrl_outb(0x00, PA_PWRINT_CLR); | ||
97 | } | 56 | } |
diff --git a/arch/sh/boards/landisk/landisk_pwb.c b/arch/sh/boards/landisk/landisk_pwb.c deleted file mode 100644 index 47a63c6617ed..000000000000 --- a/arch/sh/boards/landisk/landisk_pwb.c +++ /dev/null | |||
@@ -1,346 +0,0 @@ | |||
1 | /* | ||
2 | * arch/sh/boards/landisk/landisk_pwb.c -- driver for the Power control switch. | ||
3 | * | ||
4 | * This driver will also support the I-O DATA Device, Inc. LANDISK Board. | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | * | ||
10 | * Copylight (C) 2002 Atom Create Engineering Co., Ltd. | ||
11 | * | ||
12 | * LED control drive function added by kogiidena | ||
13 | */ | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/errno.h> | ||
16 | #include <linux/signal.h> | ||
17 | #include <linux/major.h> | ||
18 | #include <linux/poll.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/delay.h> | ||
21 | #include <linux/sched.h> | ||
22 | #include <linux/timer.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include <asm/system.h> | ||
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | ||
28 | #include <asm/uaccess.h> | ||
29 | #include <asm/landisk/iodata_landisk.h> | ||
30 | |||
31 | #define SHUTDOWN_BTN_MINOR 1 /* Shutdown button device minor no. */ | ||
32 | #define LED_MINOR 21 /* LED minor no. */ | ||
33 | #define BTN_MINOR 22 /* BUTTON minor no. */ | ||
34 | #define GIO_MINOR 40 /* GIO minor no. */ | ||
35 | |||
36 | static int openCnt; | ||
37 | static int openCntLED; | ||
38 | static int openCntGio; | ||
39 | static int openCntBtn; | ||
40 | static int landisk_btn; | ||
41 | static int landisk_btnctrlpid; | ||
42 | /* | ||
43 | * Functions prototypes | ||
44 | */ | ||
45 | |||
46 | static int gio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | ||
47 | unsigned long arg); | ||
48 | |||
49 | static int swdrv_open(struct inode *inode, struct file *filp) | ||
50 | { | ||
51 | int minor; | ||
52 | |||
53 | minor = MINOR(inode->i_rdev); | ||
54 | filp->private_data = (void *)minor; | ||
55 | |||
56 | if (minor == SHUTDOWN_BTN_MINOR) { | ||
57 | if (openCnt > 0) { | ||
58 | return -EALREADY; | ||
59 | } else { | ||
60 | openCnt++; | ||
61 | return 0; | ||
62 | } | ||
63 | } else if (minor == LED_MINOR) { | ||
64 | if (openCntLED > 0) { | ||
65 | return -EALREADY; | ||
66 | } else { | ||
67 | openCntLED++; | ||
68 | return 0; | ||
69 | } | ||
70 | } else if (minor == BTN_MINOR) { | ||
71 | if (openCntBtn > 0) { | ||
72 | return -EALREADY; | ||
73 | } else { | ||
74 | openCntBtn++; | ||
75 | return 0; | ||
76 | } | ||
77 | } else if (minor == GIO_MINOR) { | ||
78 | if (openCntGio > 0) { | ||
79 | return -EALREADY; | ||
80 | } else { | ||
81 | openCntGio++; | ||
82 | return 0; | ||
83 | } | ||
84 | } | ||
85 | return -ENOENT; | ||
86 | |||
87 | } | ||
88 | |||
89 | static int swdrv_close(struct inode *inode, struct file *filp) | ||
90 | { | ||
91 | int minor; | ||
92 | |||
93 | minor = MINOR(inode->i_rdev); | ||
94 | if (minor == SHUTDOWN_BTN_MINOR) { | ||
95 | openCnt--; | ||
96 | } else if (minor == LED_MINOR) { | ||
97 | openCntLED--; | ||
98 | } else if (minor == BTN_MINOR) { | ||
99 | openCntBtn--; | ||
100 | } else if (minor == GIO_MINOR) { | ||
101 | openCntGio--; | ||
102 | } | ||
103 | return 0; | ||
104 | } | ||
105 | |||
106 | static int swdrv_read(struct file *filp, char *buff, size_t count, | ||
107 | loff_t * ppos) | ||
108 | { | ||
109 | int minor; | ||
110 | minor = (int)(filp->private_data); | ||
111 | |||
112 | if (!access_ok(VERIFY_WRITE, (void *)buff, count)) | ||
113 | return -EFAULT; | ||
114 | |||
115 | if (minor == SHUTDOWN_BTN_MINOR) { | ||
116 | if (landisk_btn & 0x10) { | ||
117 | put_user(1, buff); | ||
118 | return 1; | ||
119 | } else { | ||
120 | return 0; | ||
121 | } | ||
122 | } | ||
123 | return 0; | ||
124 | } | ||
125 | |||
126 | static int swdrv_write(struct file *filp, const char *buff, size_t count, | ||
127 | loff_t * ppos) | ||
128 | { | ||
129 | int minor; | ||
130 | minor = (int)(filp->private_data); | ||
131 | |||
132 | if (minor == SHUTDOWN_BTN_MINOR) { | ||
133 | return count; | ||
134 | } | ||
135 | return count; | ||
136 | } | ||
137 | |||
138 | static irqreturn_t sw_interrupt(int irq, void *dev_id) | ||
139 | { | ||
140 | landisk_btn = (0x0ff & (~ctrl_inb(PA_STATUS))); | ||
141 | disable_irq(IRQ_BUTTON); | ||
142 | disable_irq(IRQ_POWER); | ||
143 | ctrl_outb(0x00, PA_PWRINT_CLR); | ||
144 | |||
145 | if (landisk_btnctrlpid != 0) { | ||
146 | kill_proc(landisk_btnctrlpid, SIGUSR1, 1); | ||
147 | landisk_btnctrlpid = 0; | ||
148 | } | ||
149 | |||
150 | return IRQ_HANDLED; | ||
151 | } | ||
152 | |||
153 | static const struct file_operations swdrv_fops = { | ||
154 | .read = swdrv_read, /* read */ | ||
155 | .write = swdrv_write, /* write */ | ||
156 | .open = swdrv_open, /* open */ | ||
157 | .release = swdrv_close, /* release */ | ||
158 | .ioctl = gio_ioctl, /* ioctl */ | ||
159 | |||
160 | }; | ||
161 | |||
162 | static char banner[] __initdata = | ||
163 | KERN_INFO "LANDISK and USL-5P Button, LED and GIO driver initialized\n"; | ||
164 | |||
165 | int __init swdrv_init(void) | ||
166 | { | ||
167 | int error; | ||
168 | |||
169 | printk("%s", banner); | ||
170 | |||
171 | openCnt = 0; | ||
172 | openCntLED = 0; | ||
173 | openCntBtn = 0; | ||
174 | openCntGio = 0; | ||
175 | landisk_btn = 0; | ||
176 | landisk_btnctrlpid = 0; | ||
177 | |||
178 | if ((error = register_chrdev(SHUTDOWN_BTN_MAJOR, "swdrv", &swdrv_fops))) { | ||
179 | printk(KERN_ERR | ||
180 | "Button, LED and GIO driver:Couldn't register driver, error=%d\n", | ||
181 | error); | ||
182 | return 1; | ||
183 | } | ||
184 | |||
185 | if (request_irq(IRQ_POWER, sw_interrupt, 0, "SHUTDOWNSWITCH", NULL)) { | ||
186 | printk(KERN_ERR "Unable to get IRQ 11.\n"); | ||
187 | return 1; | ||
188 | } | ||
189 | if (request_irq(IRQ_BUTTON, sw_interrupt, 0, "USL-5P BUTTON", NULL)) { | ||
190 | printk(KERN_ERR "Unable to get IRQ 12.\n"); | ||
191 | return 1; | ||
192 | } | ||
193 | ctrl_outb(0x00, PA_PWRINT_CLR); | ||
194 | |||
195 | return 0; | ||
196 | } | ||
197 | |||
198 | module_init(swdrv_init); | ||
199 | |||
200 | /* | ||
201 | * gio driver | ||
202 | * | ||
203 | */ | ||
204 | |||
205 | #include <asm/landisk/gio.h> | ||
206 | |||
207 | static int gio_ioctl(struct inode *inode, struct file *filp, | ||
208 | unsigned int cmd, unsigned long arg) | ||
209 | { | ||
210 | int minor; | ||
211 | unsigned int data, mask; | ||
212 | static unsigned int addr = 0; | ||
213 | |||
214 | minor = (int)(filp->private_data); | ||
215 | |||
216 | /* access control */ | ||
217 | if (minor == GIO_MINOR) { | ||
218 | ; | ||
219 | } else if (minor == LED_MINOR) { | ||
220 | if (((cmd & 0x0ff) >= 9) && ((cmd & 0x0ff) < 20)) { | ||
221 | ; | ||
222 | } else { | ||
223 | return -EINVAL; | ||
224 | } | ||
225 | } else if (minor == BTN_MINOR) { | ||
226 | if (((cmd & 0x0ff) >= 20) && ((cmd & 0x0ff) < 30)) { | ||
227 | ; | ||
228 | } else { | ||
229 | return -EINVAL; | ||
230 | } | ||
231 | } else { | ||
232 | return -EINVAL; | ||
233 | } | ||
234 | |||
235 | if (cmd & 0x01) { /* write */ | ||
236 | if (copy_from_user(&data, (int *)arg, sizeof(int))) { | ||
237 | return -EFAULT; | ||
238 | } | ||
239 | } | ||
240 | |||
241 | switch (cmd) { | ||
242 | case GIODRV_IOCSGIOSETADDR: /* addres set */ | ||
243 | addr = data; | ||
244 | break; | ||
245 | |||
246 | case GIODRV_IOCSGIODATA1: /* write byte */ | ||
247 | ctrl_outb((unsigned char)(0x0ff & data), addr); | ||
248 | break; | ||
249 | |||
250 | case GIODRV_IOCSGIODATA2: /* write word */ | ||
251 | if (addr & 0x01) { | ||
252 | return -EFAULT; | ||
253 | } | ||
254 | ctrl_outw((unsigned short int)(0x0ffff & data), addr); | ||
255 | break; | ||
256 | |||
257 | case GIODRV_IOCSGIODATA4: /* write long */ | ||
258 | if (addr & 0x03) { | ||
259 | return -EFAULT; | ||
260 | } | ||
261 | ctrl_outl(data, addr); | ||
262 | break; | ||
263 | |||
264 | case GIODRV_IOCGGIODATA1: /* read byte */ | ||
265 | data = ctrl_inb(addr); | ||
266 | break; | ||
267 | |||
268 | case GIODRV_IOCGGIODATA2: /* read word */ | ||
269 | if (addr & 0x01) { | ||
270 | return -EFAULT; | ||
271 | } | ||
272 | data = ctrl_inw(addr); | ||
273 | break; | ||
274 | |||
275 | case GIODRV_IOCGGIODATA4: /* read long */ | ||
276 | if (addr & 0x03) { | ||
277 | return -EFAULT; | ||
278 | } | ||
279 | data = ctrl_inl(addr); | ||
280 | break; | ||
281 | case GIODRV_IOCSGIO_LED: /* write */ | ||
282 | mask = ((data & 0x00ffffff) << 8) | ||
283 | | ((data & 0x0000ffff) << 16) | ||
284 | | ((data & 0x000000ff) << 24); | ||
285 | landisk_ledparam = data & (~mask); | ||
286 | if (landisk_arch == 0) { /* arch == landisk */ | ||
287 | landisk_ledparam &= 0x03030303; | ||
288 | mask = (~(landisk_ledparam >> 22)) & 0x000c; | ||
289 | landisk_ledparam |= mask; | ||
290 | } else { /* arch == usl-5p */ | ||
291 | mask = (landisk_ledparam >> 24) & 0x0001; | ||
292 | landisk_ledparam |= mask; | ||
293 | landisk_ledparam &= 0x007f7f7f; | ||
294 | } | ||
295 | landisk_ledparam |= 0x80; | ||
296 | break; | ||
297 | case GIODRV_IOCGGIO_LED: /* read */ | ||
298 | data = landisk_ledparam; | ||
299 | if (landisk_arch == 0) { /* arch == landisk */ | ||
300 | data &= 0x03030303; | ||
301 | } else { /* arch == usl-5p */ | ||
302 | ; | ||
303 | } | ||
304 | data &= (~0x080); | ||
305 | break; | ||
306 | case GIODRV_IOCSGIO_BUZZER: /* write */ | ||
307 | landisk_buzzerparam = data; | ||
308 | landisk_ledparam |= 0x80; | ||
309 | break; | ||
310 | case GIODRV_IOCGGIO_LANDISK: /* read */ | ||
311 | data = landisk_arch & 0x01; | ||
312 | break; | ||
313 | case GIODRV_IOCGGIO_BTN: /* read */ | ||
314 | data = (0x0ff & ctrl_inb(PA_PWRINT_CLR)); | ||
315 | data <<= 8; | ||
316 | data |= (0x0ff & ctrl_inb(PA_IMASK)); | ||
317 | data <<= 8; | ||
318 | data |= (0x0ff & landisk_btn); | ||
319 | data <<= 8; | ||
320 | data |= (0x0ff & (~ctrl_inb(PA_STATUS))); | ||
321 | break; | ||
322 | case GIODRV_IOCSGIO_BTNPID: /* write */ | ||
323 | landisk_btnctrlpid = data; | ||
324 | landisk_btn = 0; | ||
325 | if (irq_desc[IRQ_BUTTON].depth) { | ||
326 | enable_irq(IRQ_BUTTON); | ||
327 | } | ||
328 | if (irq_desc[IRQ_POWER].depth) { | ||
329 | enable_irq(IRQ_POWER); | ||
330 | } | ||
331 | break; | ||
332 | case GIODRV_IOCGGIO_BTNPID: /* read */ | ||
333 | data = landisk_btnctrlpid; | ||
334 | break; | ||
335 | default: | ||
336 | return -EFAULT; | ||
337 | break; | ||
338 | } | ||
339 | |||
340 | if ((cmd & 0x01) == 0) { /* read */ | ||
341 | if (copy_to_user((int *)arg, &data, sizeof(int))) { | ||
342 | return -EFAULT; | ||
343 | } | ||
344 | } | ||
345 | return 0; | ||
346 | } | ||
diff --git a/arch/sh/boards/landisk/psw.c b/arch/sh/boards/landisk/psw.c new file mode 100644 index 000000000000..5a9b70b5decb --- /dev/null +++ b/arch/sh/boards/landisk/psw.c | |||
@@ -0,0 +1,143 @@ | |||
1 | /* | ||
2 | * arch/sh/boards/landisk/psw.c | ||
3 | * | ||
4 | * push switch support for LANDISK and USL-5P | ||
5 | * | ||
6 | * Copyright (C) 2006-2007 Paul Mundt | ||
7 | * Copyright (C) 2007 kogiidena | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General Public | ||
10 | * License. See the file "COPYING" in the main directory of this archive | ||
11 | * for more details. | ||
12 | */ | ||
13 | #include <linux/io.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <asm/landisk/iodata_landisk.h> | ||
18 | #include <asm/push-switch.h> | ||
19 | |||
20 | static irqreturn_t psw_irq_handler(int irq, void *arg) | ||
21 | { | ||
22 | struct platform_device *pdev = arg; | ||
23 | struct push_switch *psw = platform_get_drvdata(pdev); | ||
24 | struct push_switch_platform_info *psw_info = pdev->dev.platform_data; | ||
25 | unsigned int sw_value; | ||
26 | int ret = 0; | ||
27 | |||
28 | sw_value = (0x0ff & (~ctrl_inb(PA_STATUS))); | ||
29 | |||
30 | /* Nothing to do if there's no state change */ | ||
31 | if (psw->state) { | ||
32 | ret = 1; | ||
33 | goto out; | ||
34 | } | ||
35 | |||
36 | /* Figure out who raised it */ | ||
37 | if (sw_value & (1 << psw_info->bit)) { | ||
38 | psw->state = 1; | ||
39 | mod_timer(&psw->debounce, jiffies + 50); | ||
40 | ret = 1; | ||
41 | } | ||
42 | |||
43 | out: | ||
44 | /* Clear the switch IRQs */ | ||
45 | ctrl_outb(0x00, PA_PWRINT_CLR); | ||
46 | |||
47 | return IRQ_RETVAL(ret); | ||
48 | } | ||
49 | |||
50 | static struct resource psw_power_resources[] = { | ||
51 | [0] = { | ||
52 | .start = IRQ_POWER, | ||
53 | .flags = IORESOURCE_IRQ, | ||
54 | }, | ||
55 | }; | ||
56 | |||
57 | static struct resource psw_usl5p_resources[] = { | ||
58 | [0] = { | ||
59 | .start = IRQ_BUTTON, | ||
60 | .flags = IORESOURCE_IRQ, | ||
61 | }, | ||
62 | }; | ||
63 | |||
64 | static struct push_switch_platform_info psw_power_platform_data = { | ||
65 | .name = "psw_power", | ||
66 | .bit = 4, | ||
67 | .irq_flags = IRQF_SHARED, | ||
68 | .irq_handler = psw_irq_handler, | ||
69 | }; | ||
70 | |||
71 | static struct push_switch_platform_info psw1_platform_data = { | ||
72 | .name = "psw1", | ||
73 | .bit = 0, | ||
74 | .irq_flags = IRQF_SHARED, | ||
75 | .irq_handler = psw_irq_handler, | ||
76 | }; | ||
77 | |||
78 | static struct push_switch_platform_info psw2_platform_data = { | ||
79 | .name = "psw2", | ||
80 | .bit = 2, | ||
81 | .irq_flags = IRQF_SHARED, | ||
82 | .irq_handler = psw_irq_handler, | ||
83 | }; | ||
84 | |||
85 | static struct push_switch_platform_info psw3_platform_data = { | ||
86 | .name = "psw3", | ||
87 | .bit = 1, | ||
88 | .irq_flags = IRQF_SHARED, | ||
89 | .irq_handler = psw_irq_handler, | ||
90 | }; | ||
91 | |||
92 | static struct platform_device psw_power_switch_device = { | ||
93 | .name = "push-switch", | ||
94 | .id = 0, | ||
95 | .num_resources = ARRAY_SIZE(psw_power_resources), | ||
96 | .resource = psw_power_resources, | ||
97 | .dev = { | ||
98 | .platform_data = &psw_power_platform_data, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | static struct platform_device psw1_switch_device = { | ||
103 | .name = "push-switch", | ||
104 | .id = 1, | ||
105 | .num_resources = ARRAY_SIZE(psw_usl5p_resources), | ||
106 | .resource = psw_usl5p_resources, | ||
107 | .dev = { | ||
108 | .platform_data = &psw1_platform_data, | ||
109 | }, | ||
110 | }; | ||
111 | |||
112 | static struct platform_device psw2_switch_device = { | ||
113 | .name = "push-switch", | ||
114 | .id = 2, | ||
115 | .num_resources = ARRAY_SIZE(psw_usl5p_resources), | ||
116 | .resource = psw_usl5p_resources, | ||
117 | .dev = { | ||
118 | .platform_data = &psw2_platform_data, | ||
119 | }, | ||
120 | }; | ||
121 | |||
122 | static struct platform_device psw3_switch_device = { | ||
123 | .name = "push-switch", | ||
124 | .id = 3, | ||
125 | .num_resources = ARRAY_SIZE(psw_usl5p_resources), | ||
126 | .resource = psw_usl5p_resources, | ||
127 | .dev = { | ||
128 | .platform_data = &psw3_platform_data, | ||
129 | }, | ||
130 | }; | ||
131 | |||
132 | static struct platform_device *psw_devices[] = { | ||
133 | &psw_power_switch_device, | ||
134 | &psw1_switch_device, | ||
135 | &psw2_switch_device, | ||
136 | &psw3_switch_device, | ||
137 | }; | ||
138 | |||
139 | static int __init psw_init(void) | ||
140 | { | ||
141 | return platform_add_devices(psw_devices, ARRAY_SIZE(psw_devices)); | ||
142 | } | ||
143 | module_init(psw_init); | ||
diff --git a/arch/sh/boards/landisk/rtc.c b/arch/sh/boards/landisk/rtc.c deleted file mode 100644 index 0a9a2a2ad05b..000000000000 --- a/arch/sh/boards/landisk/rtc.c +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | /* | ||
2 | * arch/sh/boards/landisk/rtc.c -- RTC support | ||
3 | * | ||
4 | * Copyright (C) 2000 Philipp Rumpf <prumpf@tux.org> | ||
5 | * Copyright (C) 1999 Tetsuya Okada & Niibe Yutaka | ||
6 | */ | ||
7 | /* | ||
8 | * modifed by kogiidena | ||
9 | * 2005.09.16 | ||
10 | */ | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/time.h> | ||
15 | #include <linux/delay.h> | ||
16 | #include <linux/spinlock.h> | ||
17 | #include <linux/bcd.h> | ||
18 | #include <asm/rtc.h> | ||
19 | |||
20 | extern spinlock_t rtc_lock; | ||
21 | |||
22 | extern void | ||
23 | rs5c313_set_cmos_time(unsigned int BCD_yr, unsigned int BCD_mon, | ||
24 | unsigned int BCD_day, unsigned int BCD_hr, | ||
25 | unsigned int BCD_min, unsigned int BCD_sec); | ||
26 | |||
27 | extern unsigned long | ||
28 | rs5c313_get_cmos_time(unsigned int *BCD_yr, unsigned int *BCD_mon, | ||
29 | unsigned int *BCD_day, unsigned int *BCD_hr, | ||
30 | unsigned int *BCD_min, unsigned int *BCD_sec); | ||
31 | |||
32 | void landisk_rtc_gettimeofday(struct timespec *tv) | ||
33 | { | ||
34 | unsigned int BCD_yr, BCD_mon, BCD_day, BCD_hr, BCD_min, BCD_sec; | ||
35 | unsigned long flags; | ||
36 | |||
37 | spin_lock_irqsave(&rtc_lock, flags); | ||
38 | tv->tv_sec = rs5c313_get_cmos_time | ||
39 | (&BCD_yr, &BCD_mon, &BCD_day, &BCD_hr, &BCD_min, &BCD_sec); | ||
40 | tv->tv_nsec = 0; | ||
41 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
42 | } | ||
43 | |||
44 | int landisk_rtc_settimeofday(const time_t secs) | ||
45 | { | ||
46 | int retval = 0; | ||
47 | int real_seconds, real_minutes, cmos_minutes; | ||
48 | unsigned long flags; | ||
49 | unsigned long nowtime = secs; | ||
50 | unsigned int BCD_yr, BCD_mon, BCD_day, BCD_hr, BCD_min, BCD_sec; | ||
51 | |||
52 | spin_lock_irqsave(&rtc_lock, flags); | ||
53 | |||
54 | rs5c313_get_cmos_time | ||
55 | (&BCD_yr, &BCD_mon, &BCD_day, &BCD_hr, &BCD_min, &BCD_sec); | ||
56 | cmos_minutes = BCD_min; | ||
57 | BCD_TO_BIN(cmos_minutes); | ||
58 | |||
59 | /* | ||
60 | * since we're only adjusting minutes and seconds, | ||
61 | * don't interfere with hour overflow. This avoids | ||
62 | * messing with unknown time zones but requires your | ||
63 | * RTC not to be off by more than 15 minutes | ||
64 | */ | ||
65 | real_seconds = nowtime % 60; | ||
66 | real_minutes = nowtime / 60; | ||
67 | if (((abs(real_minutes - cmos_minutes) + 15) / 30) & 1) | ||
68 | real_minutes += 30; /* correct for half hour time zone */ | ||
69 | real_minutes %= 60; | ||
70 | |||
71 | if (abs(real_minutes - cmos_minutes) < 30) { | ||
72 | BIN_TO_BCD(real_seconds); | ||
73 | BIN_TO_BCD(real_minutes); | ||
74 | rs5c313_set_cmos_time(BCD_yr, BCD_mon, BCD_day, BCD_hr, | ||
75 | real_minutes, real_seconds); | ||
76 | } else { | ||
77 | printk(KERN_WARNING | ||
78 | "set_rtc_time: can't update from %d to %d\n", | ||
79 | cmos_minutes, real_minutes); | ||
80 | retval = -1; | ||
81 | } | ||
82 | |||
83 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
84 | return retval; | ||
85 | } | ||
86 | |||
87 | void landisk_time_init(void) | ||
88 | { | ||
89 | rtc_sh_get_time = landisk_rtc_gettimeofday; | ||
90 | rtc_sh_set_time = landisk_rtc_settimeofday; | ||
91 | } | ||
diff --git a/arch/sh/boards/landisk/setup.c b/arch/sh/boards/landisk/setup.c index 122d69962637..a83a5d9587bb 100644 --- a/arch/sh/boards/landisk/setup.c +++ b/arch/sh/boards/landisk/setup.c | |||
@@ -1,144 +1,90 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/boards/landisk/setup.c | 2 | * arch/sh/boards/landisk/setup.c |
3 | * | 3 | * |
4 | * Copyright (C) 2000 Kazumoto Kojima | ||
5 | * Copyright (C) 2002 Paul Mundt | ||
6 | * | ||
7 | * I-O DATA Device, Inc. LANDISK Support. | 4 | * I-O DATA Device, Inc. LANDISK Support. |
8 | * | 5 | * |
9 | * Modified for LANDISK by | 6 | * Copyright (C) 2000 Kazumoto Kojima |
10 | * Atom Create Engineering Co., Ltd. 2002. | 7 | * Copyright (C) 2002 Paul Mundt |
11 | * | 8 | * Copylight (C) 2002 Atom Create Engineering Co., Ltd. |
12 | * modifed by kogiidena | 9 | * Copyright (C) 2005-2007 kogiidena |
13 | * 2005.09.16 | ||
14 | * | 10 | * |
15 | * This file is subject to the terms and conditions of the GNU General Public | 11 | * This file is subject to the terms and conditions of the GNU General Public |
16 | * License. See the file "COPYING" in the main directory of this archive | 12 | * License. See the file "COPYING" in the main directory of this archive |
17 | * for more details. | 13 | * for more details. |
18 | */ | 14 | */ |
19 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/platform_device.h> | ||
17 | #include <linux/pata_platform.h> | ||
20 | #include <linux/pm.h> | 18 | #include <linux/pm.h> |
21 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
22 | #include <asm/machvec.h> | 20 | #include <asm/machvec.h> |
23 | #include <asm/rtc.h> | ||
24 | #include <asm/landisk/iodata_landisk.h> | 21 | #include <asm/landisk/iodata_landisk.h> |
25 | #include <asm/io.h> | 22 | #include <asm/io.h> |
26 | 23 | ||
27 | void landisk_time_init(void); | ||
28 | void init_landisk_IRQ(void); | 24 | void init_landisk_IRQ(void); |
29 | 25 | ||
30 | int landisk_ledparam; | ||
31 | int landisk_buzzerparam; | ||
32 | int landisk_arch; | ||
33 | |||
34 | /* cycle the led's in the clasic knightrider/sun pattern */ | ||
35 | static void heartbeat_landisk(void) | ||
36 | { | ||
37 | static unsigned int cnt = 0, blink = 0x00, period = 25; | ||
38 | volatile u8 *p = (volatile u8 *)PA_LED; | ||
39 | char data; | ||
40 | |||
41 | if ((landisk_ledparam & 0x080) == 0) | ||
42 | return; | ||
43 | |||
44 | cnt += 1; | ||
45 | |||
46 | if (cnt < period) | ||
47 | return; | ||
48 | |||
49 | cnt = 0; | ||
50 | blink++; | ||
51 | |||
52 | data = (blink & 0x01) ? (landisk_ledparam >> 16) : 0; | ||
53 | data |= (blink & 0x02) ? (landisk_ledparam >> 8) : 0; | ||
54 | data |= landisk_ledparam; | ||
55 | |||
56 | /* buzzer */ | ||
57 | if (landisk_buzzerparam & 0x1) { | ||
58 | data |= 0x80; | ||
59 | } else { | ||
60 | data &= 0x7f; | ||
61 | } | ||
62 | *p = data; | ||
63 | |||
64 | if (((landisk_ledparam & 0x007f7f00) == 0) && | ||
65 | (landisk_buzzerparam == 0)) | ||
66 | landisk_ledparam &= (~0x0080); | ||
67 | |||
68 | landisk_buzzerparam >>= 1; | ||
69 | } | ||
70 | |||
71 | static void landisk_power_off(void) | 26 | static void landisk_power_off(void) |
72 | { | 27 | { |
73 | ctrl_outb(0x01, PA_SHUTDOWN); | 28 | ctrl_outb(0x01, PA_SHUTDOWN); |
74 | } | 29 | } |
75 | 30 | ||
76 | static void check_usl5p(void) | 31 | static struct resource cf_ide_resources[3]; |
77 | { | ||
78 | volatile u8 *p = (volatile u8 *)PA_LED; | ||
79 | u8 tmp1, tmp2; | ||
80 | 32 | ||
81 | tmp1 = *p; | 33 | static struct pata_platform_info pata_info = { |
82 | *p = 0x40; | 34 | .ioport_shift = 1, |
83 | tmp2 = *p; | 35 | }; |
84 | *p = tmp1; | ||
85 | 36 | ||
86 | landisk_arch = (tmp2 == 0x40); | 37 | static struct platform_device cf_ide_device = { |
87 | if (landisk_arch == 1) { | 38 | .name = "pata_platform", |
88 | /* arch == usl-5p */ | 39 | .id = -1, |
89 | landisk_ledparam = 0x00000380; | 40 | .num_resources = ARRAY_SIZE(cf_ide_resources), |
90 | landisk_ledparam |= (tmp1 & 0x07c); | 41 | .resource = cf_ide_resources, |
91 | } else { | 42 | .dev = { |
92 | /* arch == landisk */ | 43 | .platform_data = &pata_info, |
93 | landisk_ledparam = 0x02000180; | 44 | }, |
94 | landisk_ledparam |= 0x04; | 45 | }; |
95 | } | ||
96 | } | ||
97 | 46 | ||
98 | void *area5_io_base; | 47 | static struct platform_device *landisk_devices[] __initdata = { |
99 | void *area6_io_base; | 48 | &cf_ide_device, |
49 | }; | ||
100 | 50 | ||
101 | static int __init landisk_cf_init(void) | 51 | static int __init landisk_devices_setup(void) |
102 | { | 52 | { |
103 | pgprot_t prot; | 53 | pgprot_t prot; |
104 | unsigned long paddrbase, psize; | 54 | unsigned long paddrbase; |
55 | void *cf_ide_base; | ||
105 | 56 | ||
106 | /* open I/O area window */ | 57 | /* open I/O area window */ |
107 | paddrbase = virt_to_phys((void *)PA_AREA5_IO); | 58 | paddrbase = virt_to_phys((void *)PA_AREA5_IO); |
108 | psize = PAGE_SIZE; | ||
109 | prot = PAGE_KERNEL_PCC(1, _PAGE_PCC_IO16); | 59 | prot = PAGE_KERNEL_PCC(1, _PAGE_PCC_IO16); |
110 | area5_io_base = p3_ioremap(paddrbase, psize, prot.pgprot); | 60 | cf_ide_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot); |
111 | if (!area5_io_base) { | 61 | if (!cf_ide_base) { |
112 | printk("allocate_cf_area : can't open CF I/O window!\n"); | 62 | printk("allocate_cf_area : can't open CF I/O window!\n"); |
113 | return -ENOMEM; | 63 | return -ENOMEM; |
114 | } | 64 | } |
115 | 65 | ||
116 | paddrbase = virt_to_phys((void *)PA_AREA6_IO); | 66 | /* IDE cmd address : 0x1f0-0x1f7 and 0x3f6 */ |
117 | psize = PAGE_SIZE; | 67 | cf_ide_resources[0].start = (unsigned long)cf_ide_base + 0x40; |
118 | prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO16); | 68 | cf_ide_resources[0].end = (unsigned long)cf_ide_base + 0x40 + 0x0f; |
119 | area6_io_base = p3_ioremap(paddrbase, psize, prot.pgprot); | 69 | cf_ide_resources[0].flags = IORESOURCE_IO; |
120 | if (!area6_io_base) { | 70 | cf_ide_resources[1].start = (unsigned long)cf_ide_base + 0x2c; |
121 | printk("allocate_cf_area : can't open HDD I/O window!\n"); | 71 | cf_ide_resources[1].end = (unsigned long)cf_ide_base + 0x2c + 0x03; |
122 | return -ENOMEM; | 72 | cf_ide_resources[1].flags = IORESOURCE_IO; |
123 | } | 73 | cf_ide_resources[2].start = IRQ_FATA; |
124 | 74 | cf_ide_resources[2].flags = IORESOURCE_IRQ; | |
125 | printk(KERN_INFO "Allocate Area5/6 success.\n"); | 75 | |
126 | 76 | return platform_add_devices(landisk_devices, | |
127 | /* XXX : do we need attribute and common-memory area also? */ | 77 | ARRAY_SIZE(landisk_devices)); |
128 | |||
129 | return 0; | ||
130 | } | 78 | } |
131 | 79 | ||
80 | __initcall(landisk_devices_setup); | ||
81 | |||
132 | static void __init landisk_setup(char **cmdline_p) | 82 | static void __init landisk_setup(char **cmdline_p) |
133 | { | 83 | { |
134 | device_initcall(landisk_cf_init); | 84 | /* LED ON */ |
135 | 85 | ctrl_outb(ctrl_inb(PA_LED) | 0x03, PA_LED); | |
136 | landisk_buzzerparam = 0; | ||
137 | check_usl5p(); | ||
138 | 86 | ||
139 | printk(KERN_INFO "I-O DATA DEVICE, INC. \"LANDISK Series\" support.\n"); | 87 | printk(KERN_INFO "I-O DATA DEVICE, INC. \"LANDISK Series\" support.\n"); |
140 | |||
141 | board_time_init = landisk_time_init; | ||
142 | pm_power_off = landisk_power_off; | 88 | pm_power_off = landisk_power_off; |
143 | } | 89 | } |
144 | 90 | ||
@@ -148,29 +94,6 @@ static void __init landisk_setup(char **cmdline_p) | |||
148 | struct sh_machine_vector mv_landisk __initmv = { | 94 | struct sh_machine_vector mv_landisk __initmv = { |
149 | .mv_name = "LANDISK", | 95 | .mv_name = "LANDISK", |
150 | .mv_setup = landisk_setup, | 96 | .mv_setup = landisk_setup, |
151 | .mv_nr_irqs = 72, | ||
152 | .mv_inb = landisk_inb, | ||
153 | .mv_inw = landisk_inw, | ||
154 | .mv_inl = landisk_inl, | ||
155 | .mv_outb = landisk_outb, | ||
156 | .mv_outw = landisk_outw, | ||
157 | .mv_outl = landisk_outl, | ||
158 | .mv_inb_p = landisk_inb_p, | ||
159 | .mv_inw_p = landisk_inw, | ||
160 | .mv_inl_p = landisk_inl, | ||
161 | .mv_outb_p = landisk_outb_p, | ||
162 | .mv_outw_p = landisk_outw, | ||
163 | .mv_outl_p = landisk_outl, | ||
164 | .mv_insb = landisk_insb, | ||
165 | .mv_insw = landisk_insw, | ||
166 | .mv_insl = landisk_insl, | ||
167 | .mv_outsb = landisk_outsb, | ||
168 | .mv_outsw = landisk_outsw, | ||
169 | .mv_outsl = landisk_outsl, | ||
170 | .mv_ioport_map = landisk_ioport_map, | ||
171 | .mv_init_irq = init_landisk_IRQ, | 97 | .mv_init_irq = init_landisk_IRQ, |
172 | #ifdef CONFIG_HEARTBEAT | ||
173 | .mv_heartbeat = heartbeat_landisk, | ||
174 | #endif | ||
175 | }; | 98 | }; |
176 | ALIAS_MV(landisk) | 99 | ALIAS_MV(landisk) |
diff --git a/arch/sh/boards/lboxre2/Makefile b/arch/sh/boards/lboxre2/Makefile new file mode 100644 index 000000000000..e9ed140c06f6 --- /dev/null +++ b/arch/sh/boards/lboxre2/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | # | ||
2 | # Makefile for the L-BOX RE2 specific parts of the kernel | ||
3 | # Copyright (c) 2007 Nobuhiro Iwamatsu | ||
4 | |||
5 | obj-y := setup.o irq.o | ||
diff --git a/arch/sh/boards/lboxre2/irq.c b/arch/sh/boards/lboxre2/irq.c new file mode 100644 index 000000000000..5a1c3bbe7b50 --- /dev/null +++ b/arch/sh/boards/lboxre2/irq.c | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/lboxre2/irq.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * NTT COMWARE L-BOX RE2 Support. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | * | ||
12 | */ | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <asm/irq.h> | ||
17 | #include <asm/io.h> | ||
18 | #include <asm/lboxre2.h> | ||
19 | |||
20 | /* | ||
21 | * Initialize IRQ setting | ||
22 | */ | ||
23 | void __init init_lboxre2_IRQ(void) | ||
24 | { | ||
25 | make_imask_irq(IRQ_CF1); | ||
26 | make_imask_irq(IRQ_CF0); | ||
27 | make_imask_irq(IRQ_INTD); | ||
28 | make_imask_irq(IRQ_ETH1); | ||
29 | make_imask_irq(IRQ_ETH0); | ||
30 | make_imask_irq(IRQ_INTA); | ||
31 | } | ||
diff --git a/arch/sh/boards/lboxre2/setup.c b/arch/sh/boards/lboxre2/setup.c new file mode 100644 index 000000000000..4e20f7c63bf3 --- /dev/null +++ b/arch/sh/boards/lboxre2/setup.c | |||
@@ -0,0 +1,85 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/lbox/setup.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * NTT COMWARE L-BOX RE2 Support | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | * | ||
12 | */ | ||
13 | |||
14 | #include <linux/init.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | #include <linux/pata_platform.h> | ||
17 | #include <asm/machvec.h> | ||
18 | #include <asm/addrspace.h> | ||
19 | #include <asm/lboxre2.h> | ||
20 | #include <asm/io.h> | ||
21 | |||
22 | static struct resource cf_ide_resources[] = { | ||
23 | [0] = { | ||
24 | .start = 0x1f0, | ||
25 | .end = 0x1f0 + 8 , | ||
26 | .flags = IORESOURCE_IO, | ||
27 | }, | ||
28 | [1] = { | ||
29 | .start = 0x1f0 + 0x206, | ||
30 | .end = 0x1f0 +8 + 0x206 + 8, | ||
31 | .flags = IORESOURCE_IO, | ||
32 | }, | ||
33 | [2] = { | ||
34 | .start = IRQ_CF0, | ||
35 | .flags = IORESOURCE_IRQ, | ||
36 | }, | ||
37 | }; | ||
38 | |||
39 | static struct platform_device cf_ide_device = { | ||
40 | .name = "pata_platform", | ||
41 | .id = -1, | ||
42 | .num_resources = ARRAY_SIZE(cf_ide_resources), | ||
43 | .resource = cf_ide_resources, | ||
44 | }; | ||
45 | |||
46 | static struct platform_device *lboxre2_devices[] __initdata = { | ||
47 | &cf_ide_device, | ||
48 | }; | ||
49 | |||
50 | static int __init lboxre2_devices_setup(void) | ||
51 | { | ||
52 | u32 cf0_io_base; /* Boot CF base address */ | ||
53 | pgprot_t prot; | ||
54 | unsigned long paddrbase, psize; | ||
55 | |||
56 | /* open I/O area window */ | ||
57 | paddrbase = virt_to_phys((void*)PA_AREA5_IO); | ||
58 | psize = PAGE_SIZE; | ||
59 | prot = PAGE_KERNEL_PCC( 1 , _PAGE_PCC_IO16); | ||
60 | cf0_io_base = (u32)p3_ioremap(paddrbase, psize, prot.pgprot); | ||
61 | if (!cf0_io_base) { | ||
62 | printk(KERN_ERR "%s : can't open CF I/O window!\n" , __func__ ); | ||
63 | return -ENOMEM; | ||
64 | } | ||
65 | |||
66 | cf_ide_resources[0].start += cf0_io_base ; | ||
67 | cf_ide_resources[0].end += cf0_io_base ; | ||
68 | cf_ide_resources[1].start += cf0_io_base ; | ||
69 | cf_ide_resources[1].end += cf0_io_base ; | ||
70 | |||
71 | return platform_add_devices(lboxre2_devices, | ||
72 | ARRAY_SIZE(lboxre2_devices)); | ||
73 | |||
74 | } | ||
75 | device_initcall(lboxre2_devices_setup); | ||
76 | |||
77 | /* | ||
78 | * The Machine Vector | ||
79 | */ | ||
80 | struct sh_machine_vector mv_lboxre2 __initmv = { | ||
81 | .mv_name = "L-BOX RE2", | ||
82 | .mv_nr_irqs = 72, | ||
83 | .mv_init_irq = init_lboxre2_IRQ, | ||
84 | }; | ||
85 | ALIAS_MV(lboxre2) | ||
diff --git a/arch/sh/boards/renesas/r7780rp/Kconfig b/arch/sh/boards/renesas/r7780rp/Kconfig index c26d9813d239..9fb11641fe13 100644 --- a/arch/sh/boards/renesas/r7780rp/Kconfig +++ b/arch/sh/boards/renesas/r7780rp/Kconfig | |||
@@ -1,14 +1,24 @@ | |||
1 | if SH_R7780RP | 1 | if SH_HIGHLANDER |
2 | 2 | ||
3 | menu "R7780RP options" | 3 | choice |
4 | prompt "Highlander options" | ||
5 | default SH_R7780MP | ||
6 | |||
7 | config SH_R7780RP | ||
8 | bool "R7780RP-1 board support" | ||
9 | select CPU_SUBTYPE_SH7780 | ||
4 | 10 | ||
5 | config SH_R7780MP | 11 | config SH_R7780MP |
6 | bool "R7780MP board support" | 12 | bool "R7780MP board support" |
7 | default y | 13 | select CPU_SUBTYPE_SH7780 |
8 | help | 14 | help |
9 | Selecting this option will enable support for the mass-production | 15 | Selecting this option will enable support for the mass-production |
10 | version of the R7780RP. If in doubt, say Y. | 16 | version of the R7780RP. If in doubt, say Y. |
11 | 17 | ||
12 | endmenu | 18 | config SH_R7785RP |
19 | bool "R7785RP board support" | ||
20 | select CPU_SUBTYPE_SH7785 | ||
21 | |||
22 | endchoice | ||
13 | 23 | ||
14 | endif | 24 | endif |
diff --git a/arch/sh/boards/renesas/r7780rp/Makefile b/arch/sh/boards/renesas/r7780rp/Makefile index ed5f5a9a3b3e..609e5d50dde8 100644 --- a/arch/sh/boards/renesas/r7780rp/Makefile +++ b/arch/sh/boards/renesas/r7780rp/Makefile | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Makefile for the R7780RP-1 specific parts of the kernel | 2 | # Makefile for the R7780RP-1 specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | irqinit-y := irq-r7780rp.o | |
5 | obj-y := setup.o irq.o | 5 | irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o |
6 | |||
7 | obj-$(CONFIG_PUSH_SWITCH) += psw.o | 6 | obj-$(CONFIG_PUSH_SWITCH) += psw.o |
7 | obj-y := setup.o irq.o $(irqinit-y) | ||
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c new file mode 100644 index 000000000000..f5f358746c9e --- /dev/null +++ b/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c | |||
@@ -0,0 +1,21 @@ | |||
1 | /* | ||
2 | * Renesas Solutions Highlander R7780RP-1 Support. | ||
3 | * | ||
4 | * Copyright (C) 2002 Atom Create Engineering Co., Ltd. | ||
5 | * Copyright (C) 2006 Paul Mundt | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file "COPYING" in the main directory of this archive | ||
9 | * for more details. | ||
10 | */ | ||
11 | #include <linux/init.h> | ||
12 | #include <asm/io.h> | ||
13 | #include <asm/r7780rp.h> | ||
14 | |||
15 | void __init highlander_init_irq(void) | ||
16 | { | ||
17 | int i; | ||
18 | |||
19 | for (i = 0; i < 15; i++) | ||
20 | make_r7780rp_irq(i); | ||
21 | } | ||
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c new file mode 100644 index 000000000000..dd6ec4ce44dc --- /dev/null +++ b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | * Renesas Solutions Highlander R7780RP-1 Support. | ||
3 | * | ||
4 | * Copyright (C) 2002 Atom Create Engineering Co., Ltd. | ||
5 | * Copyright (C) 2006 Paul Mundt | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file "COPYING" in the main directory of this archive | ||
9 | * for more details. | ||
10 | */ | ||
11 | #include <linux/init.h> | ||
12 | #include <asm/io.h> | ||
13 | #include <asm/r7780rp.h> | ||
14 | |||
15 | void __init highlander_init_irq(void) | ||
16 | { | ||
17 | ctrl_outw(0x0000, PA_IRLSSR1); /* FPGA IRLSSR1(CF_CD clear) */ | ||
18 | |||
19 | /* Setup the FPGA IRL */ | ||
20 | ctrl_outw(0x0000, PA_IRLPRA); /* FPGA IRLA */ | ||
21 | ctrl_outw(0xe598, PA_IRLPRB); /* FPGA IRLB */ | ||
22 | ctrl_outw(0x7060, PA_IRLPRC); /* FPGA IRLC */ | ||
23 | ctrl_outw(0x0000, PA_IRLPRD); /* FPGA IRLD */ | ||
24 | ctrl_outw(0x4321, PA_IRLPRE); /* FPGA IRLE */ | ||
25 | ctrl_outw(0x0000, PA_IRLPRF); /* FPGA IRLF */ | ||
26 | |||
27 | make_r7780rp_irq(1); /* CF card */ | ||
28 | make_r7780rp_irq(10); /* On-board ethernet */ | ||
29 | } | ||
diff --git a/arch/sh/boards/renesas/r7780rp/irq.c b/arch/sh/boards/renesas/r7780rp/irq.c index cc381e197783..e0b8eb52f376 100644 --- a/arch/sh/boards/renesas/r7780rp/irq.c +++ b/arch/sh/boards/renesas/r7780rp/irq.c | |||
@@ -14,10 +14,12 @@ | |||
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <asm/r7780rp.h> | 15 | #include <asm/r7780rp.h> |
16 | 16 | ||
17 | #ifdef CONFIG_SH_R7780MP | 17 | #ifdef CONFIG_SH_R7780RP |
18 | static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0}; | ||
19 | #else | ||
20 | static int mask_pos[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 5, 6, 4, 0, 1, 2, 0}; | 18 | static int mask_pos[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 5, 6, 4, 0, 1, 2, 0}; |
19 | #elif defined(CONFIG_SH_R7780MP) | ||
20 | static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0}; | ||
21 | #elif defined(CONFIG_SH_R7785RP) | ||
22 | static int mask_pos[] = {2, 11, 2, 2, 2, 2, 9, 8, 7, 5, 10, 2, 2, 2, 2, 2}; | ||
21 | #endif | 23 | #endif |
22 | 24 | ||
23 | static void enable_r7780rp_irq(unsigned int irq) | 25 | static void enable_r7780rp_irq(unsigned int irq) |
@@ -40,17 +42,10 @@ static struct irq_chip r7780rp_irq_chip __read_mostly = { | |||
40 | .mask_ack = disable_r7780rp_irq, | 42 | .mask_ack = disable_r7780rp_irq, |
41 | }; | 43 | }; |
42 | 44 | ||
43 | /* | 45 | void make_r7780rp_irq(unsigned int irq) |
44 | * Initialize IRQ setting | ||
45 | */ | ||
46 | void __init init_r7780rp_IRQ(void) | ||
47 | { | 46 | { |
48 | int i; | 47 | disable_irq_nosync(irq); |
49 | 48 | set_irq_chip_and_handler_name(irq, &r7780rp_irq_chip, | |
50 | for (i = 0; i < 15; i++) { | 49 | handle_level_irq, "level"); |
51 | disable_irq_nosync(i); | 50 | enable_r7780rp_irq(irq); |
52 | set_irq_chip_and_handler_name(i, &r7780rp_irq_chip, | ||
53 | handle_level_irq, "level"); | ||
54 | enable_r7780rp_irq(i); | ||
55 | } | ||
56 | } | 51 | } |
diff --git a/arch/sh/boards/renesas/r7780rp/setup.c b/arch/sh/boards/renesas/r7780rp/setup.c index 2faba6679e64..0727ef92f2b3 100644 --- a/arch/sh/boards/renesas/r7780rp/setup.c +++ b/arch/sh/boards/renesas/r7780rp/setup.c | |||
@@ -1,10 +1,13 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/boards/renesas/r7780rp/setup.c | 2 | * arch/sh/boards/renesas/r7780rp/setup.c |
3 | * | 3 | * |
4 | * Renesas Solutions Highlander Support. | ||
5 | * | ||
4 | * Copyright (C) 2002 Atom Create Engineering Co., Ltd. | 6 | * Copyright (C) 2002 Atom Create Engineering Co., Ltd. |
5 | * Copyright (C) 2005 - 2007 Paul Mundt | 7 | * Copyright (C) 2005 - 2007 Paul Mundt |
6 | * | 8 | * |
7 | * Renesas Solutions Highlander R7780RP-1 Support. | 9 | * This contains support for the R7780RP-1, R7780MP, and R7785RP |
10 | * Highlander modules. | ||
8 | * | 11 | * |
9 | * This file is subject to the terms and conditions of the GNU General Public | 12 | * This file is subject to the terms and conditions of the GNU General Public |
10 | * License. See the file "COPYING" in the main directory of this archive | 13 | * License. See the file "COPYING" in the main directory of this archive |
@@ -18,32 +21,6 @@ | |||
18 | #include <asm/clock.h> | 21 | #include <asm/clock.h> |
19 | #include <asm/io.h> | 22 | #include <asm/io.h> |
20 | 23 | ||
21 | extern void init_r7780rp_IRQ(void); | ||
22 | |||
23 | static struct resource m66596_usb_host_resources[] = { | ||
24 | [0] = { | ||
25 | .start = 0xa4800000, | ||
26 | .end = 0xa4ffffff, | ||
27 | .flags = IORESOURCE_MEM, | ||
28 | }, | ||
29 | [1] = { | ||
30 | .start = 6, /* irq number */ | ||
31 | .end = 6, | ||
32 | .flags = IORESOURCE_IRQ, | ||
33 | }, | ||
34 | }; | ||
35 | |||
36 | static struct platform_device m66596_usb_host_device = { | ||
37 | .name = "m66596-hcd", | ||
38 | .id = 0, | ||
39 | .dev = { | ||
40 | .dma_mask = NULL, /* don't use dma */ | ||
41 | .coherent_dma_mask = 0xffffffff, | ||
42 | }, | ||
43 | .num_resources = ARRAY_SIZE(m66596_usb_host_resources), | ||
44 | .resource = m66596_usb_host_resources, | ||
45 | }; | ||
46 | |||
47 | static struct resource cf_ide_resources[] = { | 24 | static struct resource cf_ide_resources[] = { |
48 | [0] = { | 25 | [0] = { |
49 | .start = PA_AREA5_IO + 0x1000, | 26 | .start = PA_AREA5_IO + 0x1000, |
@@ -56,10 +33,10 @@ static struct resource cf_ide_resources[] = { | |||
56 | .flags = IORESOURCE_MEM, | 33 | .flags = IORESOURCE_MEM, |
57 | }, | 34 | }, |
58 | [2] = { | 35 | [2] = { |
59 | #ifdef CONFIG_SH_R7780MP | 36 | #ifdef CONFIG_SH_R7780RP |
60 | .start = 1, | ||
61 | #else | ||
62 | .start = 4, | 37 | .start = 4, |
38 | #else | ||
39 | .start = 1, | ||
63 | #endif | 40 | #endif |
64 | .flags = IORESOURCE_IRQ, | 41 | .flags = IORESOURCE_IRQ, |
65 | }, | 42 | }, |
@@ -92,15 +69,18 @@ static struct resource heartbeat_resources[] = { | |||
92 | static struct platform_device heartbeat_device = { | 69 | static struct platform_device heartbeat_device = { |
93 | .name = "heartbeat", | 70 | .name = "heartbeat", |
94 | .id = -1, | 71 | .id = -1, |
72 | |||
73 | /* R7785RP has a slightly more sensible FPGA.. */ | ||
74 | #ifndef CONFIG_SH_R7785RP | ||
95 | .dev = { | 75 | .dev = { |
96 | .platform_data = heartbeat_bit_pos, | 76 | .platform_data = heartbeat_bit_pos, |
97 | }, | 77 | }, |
78 | #endif | ||
98 | .num_resources = ARRAY_SIZE(heartbeat_resources), | 79 | .num_resources = ARRAY_SIZE(heartbeat_resources), |
99 | .resource = heartbeat_resources, | 80 | .resource = heartbeat_resources, |
100 | }; | 81 | }; |
101 | 82 | ||
102 | static struct platform_device *r7780rp_devices[] __initdata = { | 83 | static struct platform_device *r7780rp_devices[] __initdata = { |
103 | &m66596_usb_host_device, | ||
104 | &cf_ide_device, | 84 | &cf_ide_device, |
105 | &heartbeat_device, | 85 | &heartbeat_device, |
106 | }; | 86 | }; |
@@ -110,18 +90,19 @@ static int __init r7780rp_devices_setup(void) | |||
110 | return platform_add_devices(r7780rp_devices, | 90 | return platform_add_devices(r7780rp_devices, |
111 | ARRAY_SIZE(r7780rp_devices)); | 91 | ARRAY_SIZE(r7780rp_devices)); |
112 | } | 92 | } |
93 | device_initcall(r7780rp_devices_setup); | ||
113 | 94 | ||
114 | /* | 95 | /* |
115 | * Platform specific clocks | 96 | * Platform specific clocks |
116 | */ | 97 | */ |
117 | static void ivdr_clk_enable(struct clk *clk) | 98 | static void ivdr_clk_enable(struct clk *clk) |
118 | { | 99 | { |
119 | ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << 8), PA_IVDRCTL); | 100 | ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL); |
120 | } | 101 | } |
121 | 102 | ||
122 | static void ivdr_clk_disable(struct clk *clk) | 103 | static void ivdr_clk_disable(struct clk *clk) |
123 | { | 104 | { |
124 | ctrl_outw(ctrl_inw(PA_IVDRCTL) & ~(1 << 8), PA_IVDRCTL); | 105 | ctrl_outw(ctrl_inw(PA_IVDRCTL) & ~(1 << IVDR_CK_ON), PA_IVDRCTL); |
125 | } | 106 | } |
126 | 107 | ||
127 | static struct clk_ops ivdr_clk_ops = { | 108 | static struct clk_ops ivdr_clk_ops = { |
@@ -140,22 +121,22 @@ static struct clk *r7780rp_clocks[] = { | |||
140 | 121 | ||
141 | static void r7780rp_power_off(void) | 122 | static void r7780rp_power_off(void) |
142 | { | 123 | { |
143 | #ifdef CONFIG_SH_R7780MP | 124 | if (mach_is_r7780mp() || mach_is_r7785rp()) |
144 | ctrl_outw(0x0001, PA_POFF); | 125 | ctrl_outw(0x0001, PA_POFF); |
145 | #endif | ||
146 | } | 126 | } |
147 | 127 | ||
148 | /* | 128 | /* |
149 | * Initialize the board | 129 | * Initialize the board |
150 | */ | 130 | */ |
151 | static void __init r7780rp_setup(char **cmdline_p) | 131 | static void __init highlander_setup(char **cmdline_p) |
152 | { | 132 | { |
153 | u16 ver = ctrl_inw(PA_VERREG); | 133 | u16 ver = ctrl_inw(PA_VERREG); |
154 | int i; | 134 | int i; |
155 | 135 | ||
156 | device_initcall(r7780rp_devices_setup); | 136 | printk(KERN_INFO "Renesas Solutions Highlander %s support.\n", |
157 | 137 | mach_is_r7780rp() ? "R7780RP-1" : | |
158 | printk(KERN_INFO "Renesas Solutions Highlander R7780RP-1 support.\n"); | 138 | mach_is_r7780mp() ? "R7780MP" : |
139 | "R7785RP"); | ||
159 | 140 | ||
160 | printk(KERN_INFO "Board version: %d (revision %d), " | 141 | printk(KERN_INFO "Board version: %d (revision %d), " |
161 | "FPGA version: %d (revision %d)\n", | 142 | "FPGA version: %d (revision %d)\n", |
@@ -173,9 +154,10 @@ static void __init r7780rp_setup(char **cmdline_p) | |||
173 | } | 154 | } |
174 | 155 | ||
175 | ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */ | 156 | ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */ |
176 | #ifndef CONFIG_SH_R7780MP | 157 | |
177 | ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */ | 158 | if (mach_is_r7780rp()) |
178 | #endif | 159 | ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */ |
160 | |||
179 | ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL); /* Si13112 */ | 161 | ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL); /* Si13112 */ |
180 | 162 | ||
181 | pm_power_off = r7780rp_power_off; | 163 | pm_power_off = r7780rp_power_off; |
@@ -184,10 +166,10 @@ static void __init r7780rp_setup(char **cmdline_p) | |||
184 | /* | 166 | /* |
185 | * The Machine Vector | 167 | * The Machine Vector |
186 | */ | 168 | */ |
187 | struct sh_machine_vector mv_r7780rp __initmv = { | 169 | struct sh_machine_vector mv_highlander __initmv = { |
188 | .mv_name = "Highlander R7780RP-1", | 170 | .mv_name = "Highlander", |
189 | .mv_setup = r7780rp_setup, | ||
190 | .mv_nr_irqs = 109, | 171 | .mv_nr_irqs = 109, |
191 | .mv_init_irq = init_r7780rp_IRQ, | 172 | .mv_setup = highlander_setup, |
173 | .mv_init_irq = highlander_init_irq, | ||
192 | }; | 174 | }; |
193 | ALIAS_MV(r7780rp) | 175 | ALIAS_MV(highlander) |
diff --git a/arch/sh/boards/se/770x/io.c b/arch/sh/boards/se/770x/io.c index 9941949331ab..c4550473d4c3 100644 --- a/arch/sh/boards/se/770x/io.c +++ b/arch/sh/boards/se/770x/io.c | |||
@@ -27,6 +27,8 @@ int sh_pcic_io_dummy; | |||
27 | static inline volatile __u16 * | 27 | static inline volatile __u16 * |
28 | port2adr(unsigned int port) | 28 | port2adr(unsigned int port) |
29 | { | 29 | { |
30 | if (port & 0xff000000) | ||
31 | return ( volatile __u16 *) port; | ||
30 | if (port >= 0x2000) | 32 | if (port >= 0x2000) |
31 | return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000)); | 33 | return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000)); |
32 | else if (port >= 0x1000) | 34 | else if (port >= 0x1000) |
diff --git a/arch/sh/boards/se/770x/irq.c b/arch/sh/boards/se/770x/irq.c index 307ca5da6232..c8eccff77a04 100644 --- a/arch/sh/boards/se/770x/irq.c +++ b/arch/sh/boards/se/770x/irq.c | |||
@@ -55,23 +55,34 @@ void make_se770x_irq(struct ipr_data *table, unsigned int nr_irqs) | |||
55 | } | 55 | } |
56 | 56 | ||
57 | static struct ipr_data se770x_ipr_map[] = { | 57 | static struct ipr_data se770x_ipr_map[] = { |
58 | /* | ||
59 | * Super I/O (Just mimic PC): | ||
60 | * 1: keyboard | ||
61 | * 3: serial 0 | ||
62 | * 4: serial 1 | ||
63 | * 5: printer | ||
64 | * 6: floppy | ||
65 | * 8: rtc | ||
66 | * 12: mouse | ||
67 | * 14: ide0 | ||
68 | */ | ||
58 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | 69 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) |
59 | /* This is default value */ | 70 | /* This is default value */ |
60 | { 0xf-0x2, 0, 8, 0x2 , BCR_ILCRA}, | 71 | { 13, 0, 8, 0x0f-13 ,BCR_ILCRA}, |
61 | { 0xf-0xa, 0, 4, 0xa , BCR_ILCRA}, | 72 | { 5 , 0, 4, 0x0f- 5 ,BCR_ILCRA}, |
62 | { 0xf-0x5, 0, 0, 0x5 , BCR_ILCRB}, | 73 | { 10, 0, 0, 0x0f-10, BCR_ILCRB}, |
63 | { 0xf-0x8, 0, 4, 0x8 , BCR_ILCRC}, | 74 | { 7 , 0, 4, 0x0f- 7, BCR_ILCRC}, |
64 | { 0xf-0xc, 0, 0, 0xc , BCR_ILCRC}, | 75 | { 3 , 0, 0, 0x0f- 3, BCR_ILCRC}, |
65 | { 0xf-0xe, 0, 12, 0xe , BCR_ILCRD}, | 76 | { 1 , 0, 12, 0x0f- 1, BCR_ILCRD}, |
66 | { 0xf-0x3, 0, 4, 0x3 , BCR_ILCRD}, /* LAN */ | 77 | { 12, 0, 4, 0x0f-12, BCR_ILCRD}, /* LAN */ |
67 | { 0xf-0xd, 0, 8, 0xd , BCR_ILCRE}, | 78 | { 2 , 0, 8, 0x0f- 2, BCR_ILCRE}, /* PCIRQ2 */ |
68 | { 0xf-0x9, 0, 4, 0x9 , BCR_ILCRE}, | 79 | { 6 , 0, 4, 0x0f- 6, BCR_ILCRE}, /* PCIRQ1 */ |
69 | { 0xf-0x1, 0, 0, 0x1 , BCR_ILCRE}, | 80 | { 14, 0, 0, 0x0f-14, BCR_ILCRE}, /* PCIRQ0 */ |
70 | { 0xf-0xf, 0, 12, 0xf , BCR_ILCRF}, | 81 | { 0 , 0, 12, 0x0f , BCR_ILCRF}, |
71 | { 0xf-0xb, 0, 4, 0xb , BCR_ILCRF}, | 82 | { 4 , 0, 4, 0x0f- 4, BCR_ILCRF}, |
72 | { 0xf-0x7, 0, 12, 0x7 , BCR_ILCRG}, | 83 | { 8 , 0, 12, 0x0f- 8, BCR_ILCRG}, |
73 | { 0xf-0x6, 0, 8, 0x6 , BCR_ILCRG}, | 84 | { 9 , 0, 8, 0x0f- 9, BCR_ILCRG}, |
74 | { 0xf-0x4, 0, 4, 0x4 , BCR_ILCRG}, | 85 | { 11, 0, 4, 0x0f-11, BCR_ILCRG}, |
75 | #else | 86 | #else |
76 | { 14, 0, 8, 0x0f-14 ,BCR_ILCRA}, | 87 | { 14, 0, 8, 0x0f-14 ,BCR_ILCRA}, |
77 | { 12, 0, 4, 0x0f-12 ,BCR_ILCRA}, | 88 | { 12, 0, 4, 0x0f-12 ,BCR_ILCRA}, |
@@ -81,8 +92,10 @@ static struct ipr_data se770x_ipr_map[] = { | |||
81 | { 4, 0, 4, 0x0f- 4 ,BCR_ILCRC}, | 92 | { 4, 0, 4, 0x0f- 4 ,BCR_ILCRC}, |
82 | { 3, 0, 0, 0x0f- 3 ,BCR_ILCRC}, | 93 | { 3, 0, 0, 0x0f- 3 ,BCR_ILCRC}, |
83 | { 1, 0, 12, 0x0f- 1 ,BCR_ILCRD}, | 94 | { 1, 0, 12, 0x0f- 1 ,BCR_ILCRD}, |
95 | #if defined(CONFIG_STNIC) | ||
84 | /* ST NIC */ | 96 | /* ST NIC */ |
85 | { 10, 0, 4, 0x0f-10 ,BCR_ILCRD}, /* LAN */ | 97 | { 10, 0, 4, 0x0f-10 ,BCR_ILCRD}, /* LAN */ |
98 | #endif | ||
86 | /* MRSHPC IRQs setting */ | 99 | /* MRSHPC IRQs setting */ |
87 | { 0, 0, 12, 0x0f- 0 ,BCR_ILCRE}, /* PCIRQ3 */ | 100 | { 0, 0, 12, 0x0f- 0 ,BCR_ILCRE}, /* PCIRQ3 */ |
88 | { 11, 0, 8, 0x0f-11 ,BCR_ILCRE}, /* PCIRQ2 */ | 101 | { 11, 0, 8, 0x0f-11 ,BCR_ILCRE}, /* PCIRQ2 */ |
@@ -100,18 +113,6 @@ static struct ipr_data se770x_ipr_map[] = { | |||
100 | */ | 113 | */ |
101 | void __init init_se_IRQ(void) | 114 | void __init init_se_IRQ(void) |
102 | { | 115 | { |
103 | /* | ||
104 | * Super I/O (Just mimic PC): | ||
105 | * 1: keyboard | ||
106 | * 3: serial 0 | ||
107 | * 4: serial 1 | ||
108 | * 5: printer | ||
109 | * 6: floppy | ||
110 | * 8: rtc | ||
111 | * 12: mouse | ||
112 | * 14: ide0 | ||
113 | */ | ||
114 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
115 | /* Disable all interrupts */ | 116 | /* Disable all interrupts */ |
116 | ctrl_outw(0, BCR_ILCRA); | 117 | ctrl_outw(0, BCR_ILCRA); |
117 | ctrl_outw(0, BCR_ILCRB); | 118 | ctrl_outw(0, BCR_ILCRB); |
@@ -120,6 +121,6 @@ void __init init_se_IRQ(void) | |||
120 | ctrl_outw(0, BCR_ILCRE); | 121 | ctrl_outw(0, BCR_ILCRE); |
121 | ctrl_outw(0, BCR_ILCRF); | 122 | ctrl_outw(0, BCR_ILCRF); |
122 | ctrl_outw(0, BCR_ILCRG); | 123 | ctrl_outw(0, BCR_ILCRG); |
123 | #endif | 124 | |
124 | make_se770x_irq(se770x_ipr_map, ARRAY_SIZE(se770x_ipr_map)); | 125 | make_se770x_irq(se770x_ipr_map, ARRAY_SIZE(se770x_ipr_map)); |
125 | } | 126 | } |
diff --git a/arch/sh/boards/se/770x/setup.c b/arch/sh/boards/se/770x/setup.c index 45cbc36b9fb7..17a2631de3ba 100644 --- a/arch/sh/boards/se/770x/setup.c +++ b/arch/sh/boards/se/770x/setup.c | |||
@@ -63,6 +63,31 @@ static void __init smsc_setup(char **cmdline_p) | |||
63 | outb_p(CONFIG_EXIT, CONFIG_PORT); | 63 | outb_p(CONFIG_EXIT, CONFIG_PORT); |
64 | } | 64 | } |
65 | 65 | ||
66 | |||
67 | static struct resource cf_ide_resources[] = { | ||
68 | [0] = { | ||
69 | .start = PA_MRSHPC_IO + 0x1f0, | ||
70 | .end = PA_MRSHPC_IO + 0x1f0 + 8, | ||
71 | .flags = IORESOURCE_MEM, | ||
72 | }, | ||
73 | [1] = { | ||
74 | .start = PA_MRSHPC_IO + 0x1f0 + 0x206, | ||
75 | .end = PA_MRSHPC_IO + 0x1f0 +8 + 0x206 + 8, | ||
76 | .flags = IORESOURCE_MEM, | ||
77 | }, | ||
78 | [2] = { | ||
79 | .start = IRQ_CFCARD, | ||
80 | .flags = IORESOURCE_IRQ, | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | static struct platform_device cf_ide_device = { | ||
85 | .name = "pata_platform", | ||
86 | .id = -1, | ||
87 | .num_resources = ARRAY_SIZE(cf_ide_resources), | ||
88 | .resource = cf_ide_resources, | ||
89 | }; | ||
90 | |||
66 | static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 }; | 91 | static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 }; |
67 | 92 | ||
68 | static struct resource heartbeat_resources[] = { | 93 | static struct resource heartbeat_resources[] = { |
@@ -85,13 +110,14 @@ static struct platform_device heartbeat_device = { | |||
85 | 110 | ||
86 | static struct platform_device *se_devices[] __initdata = { | 111 | static struct platform_device *se_devices[] __initdata = { |
87 | &heartbeat_device, | 112 | &heartbeat_device, |
113 | &cf_ide_device, | ||
88 | }; | 114 | }; |
89 | 115 | ||
90 | static int __init se_devices_setup(void) | 116 | static int __init se_devices_setup(void) |
91 | { | 117 | { |
92 | return platform_add_devices(se_devices, ARRAY_SIZE(se_devices)); | 118 | return platform_add_devices(se_devices, ARRAY_SIZE(se_devices)); |
93 | } | 119 | } |
94 | __initcall(se_devices_setup); | 120 | device_initcall(se_devices_setup); |
95 | 121 | ||
96 | /* | 122 | /* |
97 | * The Machine Vector | 123 | * The Machine Vector |
@@ -107,6 +133,8 @@ struct sh_machine_vector mv_se __initmv = { | |||
107 | .mv_nr_irqs = 61, | 133 | .mv_nr_irqs = 61, |
108 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) | 134 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) |
109 | .mv_nr_irqs = 86, | 135 | .mv_nr_irqs = 86, |
136 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) | ||
137 | .mv_nr_irqs = 104, | ||
110 | #endif | 138 | #endif |
111 | 139 | ||
112 | .mv_inb = se_inb, | 140 | .mv_inb = se_inb, |
diff --git a/arch/sh/boards/se/7722/Makefile b/arch/sh/boards/se/7722/Makefile new file mode 100644 index 000000000000..8694373389e5 --- /dev/null +++ b/arch/sh/boards/se/7722/Makefile | |||
@@ -0,0 +1,10 @@ | |||
1 | # | ||
2 | # Makefile for the HITACHI UL SolutionEngine 7722 specific parts of the kernel | ||
3 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | ||
5 | # License. See the file "COPYING" in the main directory of this archive | ||
6 | # for more details. | ||
7 | # | ||
8 | # | ||
9 | |||
10 | obj-y := setup.o irq.o | ||
diff --git a/arch/sh/boards/se/7722/irq.c b/arch/sh/boards/se/7722/irq.c new file mode 100644 index 000000000000..099e5deb77f8 --- /dev/null +++ b/arch/sh/boards/se/7722/irq.c | |||
@@ -0,0 +1,101 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/se/7722/irq.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * Hitachi UL SolutionEngine 7722 Support. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/irq.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <asm/irq.h> | ||
16 | #include <asm/io.h> | ||
17 | #include <asm/se7722.h> | ||
18 | |||
19 | #define INTC_INTMSK0 0xFFD00044 | ||
20 | #define INTC_INTMSKCLR0 0xFFD00064 | ||
21 | |||
22 | static void disable_se7722_irq(unsigned int irq) | ||
23 | { | ||
24 | struct ipr_data *p = get_irq_chip_data(irq); | ||
25 | ctrl_outw( ctrl_inw( p->addr ) | p->priority , p->addr ); | ||
26 | } | ||
27 | |||
28 | static void enable_se7722_irq(unsigned int irq) | ||
29 | { | ||
30 | struct ipr_data *p = get_irq_chip_data(irq); | ||
31 | ctrl_outw( ctrl_inw( p->addr ) & ~p->priority , p->addr ); | ||
32 | } | ||
33 | |||
34 | static struct irq_chip se7722_irq_chip __read_mostly = { | ||
35 | .name = "SE7722", | ||
36 | .mask = disable_se7722_irq, | ||
37 | .unmask = enable_se7722_irq, | ||
38 | .mask_ack = disable_se7722_irq, | ||
39 | }; | ||
40 | |||
41 | static struct ipr_data ipr_irq_table[] = { | ||
42 | /* irq ,idx,sft, priority , addr */ | ||
43 | { MRSHPC_IRQ0 , 0 , 0 , MRSHPC_BIT0 , IRQ01_MASK } , | ||
44 | { MRSHPC_IRQ1 , 0 , 0 , MRSHPC_BIT1 , IRQ01_MASK } , | ||
45 | { MRSHPC_IRQ2 , 0 , 0 , MRSHPC_BIT2 , IRQ01_MASK } , | ||
46 | { MRSHPC_IRQ3 , 0 , 0 , MRSHPC_BIT3 , IRQ01_MASK } , | ||
47 | { SMC_IRQ , 0 , 0 , SMC_BIT , IRQ01_MASK } , | ||
48 | { EXT_IRQ , 0 , 0 , EXT_BIT , IRQ01_MASK } , | ||
49 | }; | ||
50 | |||
51 | int se7722_irq_demux(int irq) | ||
52 | { | ||
53 | |||
54 | if ((irq == IRQ0_IRQ)||(irq == IRQ1_IRQ)) { | ||
55 | volatile unsigned short intv = | ||
56 | *(volatile unsigned short *)IRQ01_STS; | ||
57 | if (irq == IRQ0_IRQ){ | ||
58 | if(intv & SMC_BIT ) { | ||
59 | return SMC_IRQ; | ||
60 | } else if(intv & USB_BIT) { | ||
61 | return USB_IRQ; | ||
62 | } else { | ||
63 | printk("intv =%04x\n", intv); | ||
64 | return SMC_IRQ; | ||
65 | } | ||
66 | } else if(irq == IRQ1_IRQ){ | ||
67 | if(intv & MRSHPC_BIT0) { | ||
68 | return MRSHPC_IRQ0; | ||
69 | } else if(intv & MRSHPC_BIT1) { | ||
70 | return MRSHPC_IRQ1; | ||
71 | } else if(intv & MRSHPC_BIT2) { | ||
72 | return MRSHPC_IRQ2; | ||
73 | } else if(intv & MRSHPC_BIT3) { | ||
74 | return MRSHPC_IRQ3; | ||
75 | } else { | ||
76 | printk("BIT_EXTENTION =%04x\n", intv); | ||
77 | return EXT_IRQ; | ||
78 | } | ||
79 | } | ||
80 | } | ||
81 | return irq; | ||
82 | |||
83 | } | ||
84 | /* | ||
85 | * Initialize IRQ setting | ||
86 | */ | ||
87 | void __init init_se7722_IRQ(void) | ||
88 | { | ||
89 | int i = 0; | ||
90 | ctrl_outw(0x2000, 0xb03fffec); /* mrshpc irq enable */ | ||
91 | ctrl_outl((3 << ((7 - 0) * 4))|(3 << ((7 - 1) * 4)), INTC_INTPRI0); /* irq0 pri=3,irq1,pri=3 */ | ||
92 | ctrl_outw((2 << ((7 - 0) * 2))|(2 << ((7 - 1) * 2)), INTC_ICR1); /* irq0,1 low-level irq */ | ||
93 | |||
94 | for (i = 0; i < ARRAY_SIZE(ipr_irq_table); i++) { | ||
95 | disable_irq_nosync(ipr_irq_table[i].irq); | ||
96 | set_irq_chip_and_handler_name( ipr_irq_table[i].irq, &se7722_irq_chip, | ||
97 | handle_level_irq, "level"); | ||
98 | set_irq_chip_data( ipr_irq_table[i].irq, &ipr_irq_table[i] ); | ||
99 | disable_se7722_irq(ipr_irq_table[i].irq); | ||
100 | } | ||
101 | } | ||
diff --git a/arch/sh/boards/se/7722/setup.c b/arch/sh/boards/se/7722/setup.c new file mode 100644 index 000000000000..636ca6c987e0 --- /dev/null +++ b/arch/sh/boards/se/7722/setup.c | |||
@@ -0,0 +1,148 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/se/7722/setup.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * Hitachi UL SolutionEngine 7722 Support. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | * | ||
12 | */ | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/platform_device.h> | ||
15 | #include <linux/pata_platform.h> | ||
16 | #include <asm/machvec.h> | ||
17 | #include <asm/se7722.h> | ||
18 | #include <asm/io.h> | ||
19 | |||
20 | /* Heartbeat */ | ||
21 | static unsigned char heartbeat_bit_pos[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; | ||
22 | |||
23 | static struct resource heartbeat_resources[] = { | ||
24 | [0] = { | ||
25 | .start = PA_LED, | ||
26 | .end = PA_LED + ARRAY_SIZE(heartbeat_bit_pos) - 1, | ||
27 | .flags = IORESOURCE_MEM, | ||
28 | }, | ||
29 | }; | ||
30 | |||
31 | static struct platform_device heartbeat_device = { | ||
32 | .name = "heartbeat", | ||
33 | .id = -1, | ||
34 | .dev = { | ||
35 | .platform_data = heartbeat_bit_pos, | ||
36 | }, | ||
37 | .num_resources = ARRAY_SIZE(heartbeat_resources), | ||
38 | .resource = heartbeat_resources, | ||
39 | }; | ||
40 | |||
41 | /* SMC91x */ | ||
42 | static struct resource smc91x_eth_resources[] = { | ||
43 | [0] = { | ||
44 | .name = "smc91x-regs" , | ||
45 | .start = PA_LAN + 0x300, | ||
46 | .end = PA_LAN + 0x300 + 0x10 , | ||
47 | .flags = IORESOURCE_MEM, | ||
48 | }, | ||
49 | [1] = { | ||
50 | .start = SMC_IRQ, | ||
51 | .end = SMC_IRQ, | ||
52 | .flags = IORESOURCE_IRQ, | ||
53 | }, | ||
54 | }; | ||
55 | |||
56 | static struct platform_device smc91x_eth_device = { | ||
57 | .name = "smc91x", | ||
58 | .id = 0, | ||
59 | .dev = { | ||
60 | .dma_mask = NULL, /* don't use dma */ | ||
61 | .coherent_dma_mask = 0xffffffff, | ||
62 | }, | ||
63 | .num_resources = ARRAY_SIZE(smc91x_eth_resources), | ||
64 | .resource = smc91x_eth_resources, | ||
65 | }; | ||
66 | |||
67 | static struct resource cf_ide_resources[] = { | ||
68 | [0] = { | ||
69 | .start = PA_MRSHPC_IO + 0x1f0, | ||
70 | .end = PA_MRSHPC_IO + 0x1f0 + 8 , | ||
71 | .flags = IORESOURCE_IO, | ||
72 | }, | ||
73 | [1] = { | ||
74 | .start = PA_MRSHPC_IO + 0x1f0 + 0x206, | ||
75 | .end = PA_MRSHPC_IO + 0x1f0 +8 + 0x206 + 8, | ||
76 | .flags = IORESOURCE_IO, | ||
77 | }, | ||
78 | [2] = { | ||
79 | .start = MRSHPC_IRQ0, | ||
80 | .flags = IORESOURCE_IRQ, | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | static struct platform_device cf_ide_device = { | ||
85 | .name = "pata_platform", | ||
86 | .id = -1, | ||
87 | .num_resources = ARRAY_SIZE(cf_ide_resources), | ||
88 | .resource = cf_ide_resources, | ||
89 | }; | ||
90 | |||
91 | static struct platform_device *se7722_devices[] __initdata = { | ||
92 | &heartbeat_device, | ||
93 | &smc91x_eth_device, | ||
94 | &cf_ide_device, | ||
95 | }; | ||
96 | |||
97 | static int __init se7722_devices_setup(void) | ||
98 | { | ||
99 | return platform_add_devices(se7722_devices, | ||
100 | ARRAY_SIZE(se7722_devices)); | ||
101 | } | ||
102 | device_initcall(se7722_devices_setup); | ||
103 | |||
104 | static void __init se7722_setup(char **cmdline_p) | ||
105 | { | ||
106 | ctrl_outw(0x010D, FPGA_OUT); /* FPGA */ | ||
107 | |||
108 | ctrl_outl(0x00051001, MSTPCR0); | ||
109 | ctrl_outl(0x00000000, MSTPCR1); | ||
110 | /* KEYSC, VOU, BEU, CEU, VEU, VPU, LCDC */ | ||
111 | ctrl_outl(0xffffbfC0, MSTPCR2); | ||
112 | |||
113 | ctrl_outw(0x0000, PORT_PECR); /* PORT E 1 = IRQ5 ,E 0 = BS */ | ||
114 | ctrl_outw(0x1000, PORT_PJCR); /* PORT J 1 = IRQ1,J 0 =IRQ0 */ | ||
115 | |||
116 | /* LCDC I/O */ | ||
117 | ctrl_outw(0x0020, PORT_PSELD); | ||
118 | |||
119 | /* SIOF1*/ | ||
120 | ctrl_outw(0x0003, PORT_PSELB); | ||
121 | ctrl_outw(0xe000, PORT_PSELC); | ||
122 | ctrl_outw(0x0000, PORT_PKCR); | ||
123 | |||
124 | /* LCDC */ | ||
125 | ctrl_outw(0x4020, PORT_PHCR); | ||
126 | ctrl_outw(0x0000, PORT_PLCR); | ||
127 | ctrl_outw(0x0000, PORT_PMCR); | ||
128 | ctrl_outw(0x0002, PORT_PRCR); | ||
129 | ctrl_outw(0x0000, PORT_PXCR); /* LCDC,CS6A */ | ||
130 | |||
131 | /* KEYSC */ | ||
132 | ctrl_outw(0x0A10, PORT_PSELA); /* BS,SHHID2 */ | ||
133 | ctrl_outw(0x0000, PORT_PYCR); | ||
134 | ctrl_outw(0x0000, PORT_PZCR); | ||
135 | } | ||
136 | |||
137 | /* | ||
138 | * The Machine Vector | ||
139 | */ | ||
140 | struct sh_machine_vector mv_se7722 __initmv = { | ||
141 | .mv_name = "Solution Engine 7722" , | ||
142 | .mv_setup = se7722_setup , | ||
143 | .mv_nr_irqs = 109 , | ||
144 | .mv_init_irq = init_se7722_IRQ, | ||
145 | .mv_irq_demux = se7722_irq_demux, | ||
146 | |||
147 | }; | ||
148 | ALIAS_MV(se7722) | ||
diff --git a/arch/sh/boards/se/7751/setup.c b/arch/sh/boards/se/7751/setup.c index e3feae6ec0bf..770defed9c4a 100644 --- a/arch/sh/boards/se/7751/setup.c +++ b/arch/sh/boards/se/7751/setup.c | |||
@@ -14,153 +14,6 @@ | |||
14 | #include <asm/se7751.h> | 14 | #include <asm/se7751.h> |
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | 16 | ||
17 | void init_7751se_IRQ(void); | ||
18 | |||
19 | #ifdef CONFIG_SH_KGDB | ||
20 | #include <asm/kgdb.h> | ||
21 | static int kgdb_uart_setup(void); | ||
22 | static struct kgdb_sermap kgdb_uart_sermap = | ||
23 | { "ttyS", 0, kgdb_uart_setup, NULL }; | ||
24 | #endif | ||
25 | |||
26 | /* | ||
27 | * Initialize the board | ||
28 | */ | ||
29 | static void __init sh7751se_setup(char **cmdline_p) | ||
30 | { | ||
31 | /* Call init_smsc() replacement to set up SuperIO. */ | ||
32 | /* XXX: RTC setting comes here */ | ||
33 | #ifdef CONFIG_SH_KGDB | ||
34 | kgdb_register_sermap(&kgdb_uart_sermap); | ||
35 | #endif | ||
36 | } | ||
37 | |||
38 | /********************************************************************* | ||
39 | * Currently a hack (e.g. does not interact well w/serial.c, lots of * | ||
40 | * hardcoded stuff) but may be useful if SCI/F needs debugging. * | ||
41 | * Mostly copied from x86 code (see files asm-i386/kgdb_local.h and * | ||
42 | * arch/i386/lib/kgdb_serial.c). * | ||
43 | *********************************************************************/ | ||
44 | |||
45 | #ifdef CONFIG_SH_KGDB | ||
46 | #include <linux/types.h> | ||
47 | #include <linux/serial.h> | ||
48 | #include <linux/serialP.h> | ||
49 | #include <linux/serial_reg.h> | ||
50 | |||
51 | #define COM1_PORT 0x3f8 /* Base I/O address */ | ||
52 | #define COM1_IRQ 4 /* IRQ not used yet */ | ||
53 | #define COM2_PORT 0x2f8 /* Base I/O address */ | ||
54 | #define COM2_IRQ 3 /* IRQ not used yet */ | ||
55 | |||
56 | #define SB_CLOCK 1843200 /* Serial baud clock */ | ||
57 | #define SB_BASE (SB_CLOCK/16) | ||
58 | #define SB_MCR UART_MCR_OUT2 | UART_MCR_DTR | UART_MCR_RTS | ||
59 | |||
60 | struct uart_port { | ||
61 | int base; | ||
62 | }; | ||
63 | #define UART_NPORTS 2 | ||
64 | struct uart_port uart_ports[] = { | ||
65 | { COM1_PORT }, | ||
66 | { COM2_PORT }, | ||
67 | }; | ||
68 | struct uart_port *kgdb_uart_port; | ||
69 | |||
70 | #define UART_IN(reg) inb_p(kgdb_uart_port->base + reg) | ||
71 | #define UART_OUT(reg,v) outb_p((v), kgdb_uart_port->base + reg) | ||
72 | |||
73 | /* Basic read/write functions for the UART */ | ||
74 | #define UART_LSR_RXCERR (UART_LSR_BI | UART_LSR_FE | UART_LSR_PE) | ||
75 | static int kgdb_uart_getchar(void) | ||
76 | { | ||
77 | int lsr; | ||
78 | int c = -1; | ||
79 | |||
80 | while (c == -1) { | ||
81 | lsr = UART_IN(UART_LSR); | ||
82 | if (lsr & UART_LSR_DR) | ||
83 | c = UART_IN(UART_RX); | ||
84 | if ((lsr & UART_LSR_RXCERR)) | ||
85 | c = -1; | ||
86 | } | ||
87 | return c; | ||
88 | } | ||
89 | |||
90 | static void kgdb_uart_putchar(int c) | ||
91 | { | ||
92 | while ((UART_IN(UART_LSR) & UART_LSR_THRE) == 0) | ||
93 | ; | ||
94 | UART_OUT(UART_TX, c); | ||
95 | } | ||
96 | |||
97 | /* | ||
98 | * Initialize UART to configured/requested values. | ||
99 | * (But we don't interrupts yet, or interact w/serial.c) | ||
100 | */ | ||
101 | static int kgdb_uart_setup(void) | ||
102 | { | ||
103 | int port; | ||
104 | int lcr = 0; | ||
105 | int bdiv = 0; | ||
106 | |||
107 | if (kgdb_portnum >= UART_NPORTS) { | ||
108 | KGDB_PRINTK("uart port %d invalid.\n", kgdb_portnum); | ||
109 | return -1; | ||
110 | } | ||
111 | |||
112 | kgdb_uart_port = &uart_ports[kgdb_portnum]; | ||
113 | |||
114 | /* Init sequence from gdb_hook_interrupt */ | ||
115 | UART_IN(UART_RX); | ||
116 | UART_OUT(UART_IER, 0); | ||
117 | |||
118 | UART_IN(UART_RX); /* Serial driver comments say */ | ||
119 | UART_IN(UART_IIR); /* this clears interrupt regs */ | ||
120 | UART_IN(UART_MSR); | ||
121 | |||
122 | /* Figure basic LCR values */ | ||
123 | switch (kgdb_bits) { | ||
124 | case '7': | ||
125 | lcr |= UART_LCR_WLEN7; | ||
126 | break; | ||
127 | default: case '8': | ||
128 | lcr |= UART_LCR_WLEN8; | ||
129 | break; | ||
130 | } | ||
131 | switch (kgdb_parity) { | ||
132 | case 'O': | ||
133 | lcr |= UART_LCR_PARITY; | ||
134 | break; | ||
135 | case 'E': | ||
136 | lcr |= (UART_LCR_PARITY | UART_LCR_EPAR); | ||
137 | break; | ||
138 | default: break; | ||
139 | } | ||
140 | |||
141 | /* Figure the baud rate divisor */ | ||
142 | bdiv = (SB_BASE/kgdb_baud); | ||
143 | |||
144 | /* Set the baud rate and LCR values */ | ||
145 | UART_OUT(UART_LCR, (lcr | UART_LCR_DLAB)); | ||
146 | UART_OUT(UART_DLL, (bdiv & 0xff)); | ||
147 | UART_OUT(UART_DLM, ((bdiv >> 8) & 0xff)); | ||
148 | UART_OUT(UART_LCR, lcr); | ||
149 | |||
150 | /* Set the MCR */ | ||
151 | UART_OUT(UART_MCR, SB_MCR); | ||
152 | |||
153 | /* Turn off FIFOs for now */ | ||
154 | UART_OUT(UART_FCR, 0); | ||
155 | |||
156 | /* Setup complete: initialize function pointers */ | ||
157 | kgdb_getchar = kgdb_uart_getchar; | ||
158 | kgdb_putchar = kgdb_uart_putchar; | ||
159 | |||
160 | return 0; | ||
161 | } | ||
162 | #endif /* CONFIG_SH_KGDB */ | ||
163 | |||
164 | static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 }; | 17 | static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 }; |
165 | 18 | ||
166 | static struct resource heartbeat_resources[] = { | 19 | static struct resource heartbeat_resources[] = { |
@@ -197,7 +50,6 @@ __initcall(se7751_devices_setup); | |||
197 | */ | 50 | */ |
198 | struct sh_machine_vector mv_7751se __initmv = { | 51 | struct sh_machine_vector mv_7751se __initmv = { |
199 | .mv_name = "7751 SolutionEngine", | 52 | .mv_name = "7751 SolutionEngine", |
200 | .mv_setup = sh7751se_setup, | ||
201 | .mv_nr_irqs = 72, | 53 | .mv_nr_irqs = 72, |
202 | 54 | ||
203 | .mv_inb = sh7751se_inb, | 55 | .mv_inb = sh7751se_inb, |
diff --git a/arch/sh/boards/se/7780/Makefile b/arch/sh/boards/se/7780/Makefile new file mode 100644 index 000000000000..6b88adae3ecc --- /dev/null +++ b/arch/sh/boards/se/7780/Makefile | |||
@@ -0,0 +1,10 @@ | |||
1 | # | ||
2 | # Makefile for the HITACHI UL SolutionEngine 7780 specific parts of the kernel | ||
3 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | ||
5 | # License. See the file "COPYING" in the main directory of this archive | ||
6 | # for more details. | ||
7 | # | ||
8 | # | ||
9 | |||
10 | obj-y := setup.o irq.o | ||
diff --git a/arch/sh/boards/se/7780/irq.c b/arch/sh/boards/se/7780/irq.c new file mode 100644 index 000000000000..3d0625c2d07b --- /dev/null +++ b/arch/sh/boards/se/7780/irq.c | |||
@@ -0,0 +1,89 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/se/7780/irq.c | ||
3 | * | ||
4 | * Copyright (C) 2006,2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * Hitachi UL SolutionEngine 7780 Support. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/irq.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <asm/irq.h> | ||
16 | #include <asm/io.h> | ||
17 | #include <asm/se7780.h> | ||
18 | |||
19 | #define INTC_INTMSK0 0xFFD00044 | ||
20 | #define INTC_INTMSKCLR0 0xFFD00064 | ||
21 | |||
22 | static void disable_se7780_irq(unsigned int irq) | ||
23 | { | ||
24 | struct intc2_data *p = get_irq_chip_data(irq); | ||
25 | ctrl_outl(1 << p->msk_shift, INTC_INTMSK0 + p->msk_offset); | ||
26 | } | ||
27 | |||
28 | static void enable_se7780_irq(unsigned int irq) | ||
29 | { | ||
30 | struct intc2_data *p = get_irq_chip_data(irq); | ||
31 | ctrl_outl(1 << p->msk_shift, INTC_INTMSKCLR0 + p->msk_offset); | ||
32 | } | ||
33 | |||
34 | static struct irq_chip se7780_irq_chip __read_mostly = { | ||
35 | .name = "SE7780", | ||
36 | .mask = disable_se7780_irq, | ||
37 | .unmask = enable_se7780_irq, | ||
38 | .mask_ack = disable_se7780_irq, | ||
39 | }; | ||
40 | |||
41 | static struct intc2_data intc2_irq_table[] = { | ||
42 | { 2, 0, 31, 0, 31, 3 }, /* daughter board EXTINT1 */ | ||
43 | { 4, 0, 30, 0, 30, 3 }, /* daughter board EXTINT2 */ | ||
44 | { 6, 0, 29, 0, 29, 3 }, /* daughter board EXTINT3 */ | ||
45 | { 8, 0, 28, 0, 28, 3 }, /* SMC 91C111 (LAN) */ | ||
46 | { 10, 0, 27, 0, 27, 3 }, /* daughter board EXTINT4 */ | ||
47 | { 4, 0, 30, 0, 30, 3 }, /* daughter board EXTINT5 */ | ||
48 | { 2, 0, 31, 0, 31, 3 }, /* daughter board EXTINT6 */ | ||
49 | { 2, 0, 31, 0, 31, 3 }, /* daughter board EXTINT7 */ | ||
50 | { 2, 0, 31, 0, 31, 3 }, /* daughter board EXTINT8 */ | ||
51 | { 0 , 0, 24, 0, 24, 3 }, /* SM501 */ | ||
52 | }; | ||
53 | |||
54 | /* | ||
55 | * Initialize IRQ setting | ||
56 | */ | ||
57 | void __init init_se7780_IRQ(void) | ||
58 | { | ||
59 | int i ; | ||
60 | |||
61 | /* enable all interrupt at FPGA */ | ||
62 | ctrl_outw(0, FPGA_INTMSK1); | ||
63 | /* mask SM501 interrupt */ | ||
64 | ctrl_outw((ctrl_inw(FPGA_INTMSK1) | 0x0002), FPGA_INTMSK1); | ||
65 | /* enable all interrupt at FPGA */ | ||
66 | ctrl_outw(0, FPGA_INTMSK2); | ||
67 | |||
68 | /* set FPGA INTSEL register */ | ||
69 | /* FPGA + 0x06 */ | ||
70 | ctrl_outw( ((IRQPIN_SM501 << IRQPOS_SM501) | | ||
71 | (IRQPIN_SMC91CX << IRQPOS_SMC91CX)), FPGA_INTSEL1); | ||
72 | |||
73 | /* FPGA + 0x08 */ | ||
74 | ctrl_outw(((IRQPIN_EXTINT4 << IRQPOS_EXTINT4) | | ||
75 | (IRQPIN_EXTINT3 << IRQPOS_EXTINT3) | | ||
76 | (IRQPIN_EXTINT2 << IRQPOS_EXTINT2) | | ||
77 | (IRQPIN_EXTINT1 << IRQPOS_EXTINT1)), FPGA_INTSEL2); | ||
78 | |||
79 | /* FPGA + 0x0A */ | ||
80 | ctrl_outw((IRQPIN_PCCPW << IRQPOS_PCCPW), FPGA_INTSEL3); | ||
81 | |||
82 | for (i = 0; i < ARRAY_SIZE(intc2_irq_table); i++) { | ||
83 | disable_irq_nosync(intc2_irq_table[i].irq); | ||
84 | set_irq_chip_and_handler_name( intc2_irq_table[i].irq, &se7780_irq_chip, | ||
85 | handle_level_irq, "level"); | ||
86 | set_irq_chip_data( intc2_irq_table[i].irq, &intc2_irq_table[i] ); | ||
87 | disable_se7780_irq(intc2_irq_table[i].irq); | ||
88 | } | ||
89 | } | ||
diff --git a/arch/sh/boards/se/7780/setup.c b/arch/sh/boards/se/7780/setup.c new file mode 100644 index 000000000000..df7d08a24c9f --- /dev/null +++ b/arch/sh/boards/se/7780/setup.c | |||
@@ -0,0 +1,122 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/se/7780/setup.c | ||
3 | * | ||
4 | * Copyright (C) 2006,2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * Hitachi UL SolutionEngine 7780 Support. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <asm/machvec.h> | ||
15 | #include <asm/se7780.h> | ||
16 | #include <asm/io.h> | ||
17 | |||
18 | /* Heartbeat */ | ||
19 | static unsigned char heartbeat_bit_pos[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; | ||
20 | |||
21 | static struct resource heartbeat_resources[] = { | ||
22 | [0] = { | ||
23 | .start = PA_LED, | ||
24 | .end = PA_LED + ARRAY_SIZE(heartbeat_bit_pos) - 1, | ||
25 | .flags = IORESOURCE_MEM, | ||
26 | }, | ||
27 | }; | ||
28 | |||
29 | static struct platform_device heartbeat_device = { | ||
30 | .name = "heartbeat", | ||
31 | .id = -1, | ||
32 | .dev = { | ||
33 | .platform_data = heartbeat_bit_pos, | ||
34 | }, | ||
35 | .num_resources = ARRAY_SIZE(heartbeat_resources), | ||
36 | .resource = heartbeat_resources, | ||
37 | }; | ||
38 | |||
39 | /* SMC91x */ | ||
40 | static struct resource smc91x_eth_resources[] = { | ||
41 | [0] = { | ||
42 | .name = "smc91x-regs" , | ||
43 | .start = PA_LAN + 0x300, | ||
44 | .end = PA_LAN + 0x300 + 0x10 , | ||
45 | .flags = IORESOURCE_MEM, | ||
46 | }, | ||
47 | [1] = { | ||
48 | .start = SMC_IRQ, | ||
49 | .end = SMC_IRQ, | ||
50 | .flags = IORESOURCE_IRQ, | ||
51 | }, | ||
52 | }; | ||
53 | |||
54 | static struct platform_device smc91x_eth_device = { | ||
55 | .name = "smc91x", | ||
56 | .id = 0, | ||
57 | .dev = { | ||
58 | .dma_mask = NULL, /* don't use dma */ | ||
59 | .coherent_dma_mask = 0xffffffff, | ||
60 | }, | ||
61 | .num_resources = ARRAY_SIZE(smc91x_eth_resources), | ||
62 | .resource = smc91x_eth_resources, | ||
63 | }; | ||
64 | |||
65 | static struct platform_device *se7780_devices[] __initdata = { | ||
66 | &heartbeat_device, | ||
67 | &smc91x_eth_device, | ||
68 | }; | ||
69 | |||
70 | static int __init se7780_devices_setup(void) | ||
71 | { | ||
72 | return platform_add_devices(se7780_devices, | ||
73 | ARRAY_SIZE(se7780_devices)); | ||
74 | } | ||
75 | device_initcall(se7780_devices_setup); | ||
76 | |||
77 | #define GPIO_PHCR 0xFFEA000E | ||
78 | #define GPIO_PMSELR 0xFFEA0080 | ||
79 | #define GPIO_PECR 0xFFEA0008 | ||
80 | |||
81 | static void __init se7780_setup(char **cmdline_p) | ||
82 | { | ||
83 | /* "SH-Linux" on LED Display */ | ||
84 | ctrl_outw( 'S' , PA_LED_DISP + (DISP_SEL0_ADDR << 1) ); | ||
85 | ctrl_outw( 'H' , PA_LED_DISP + (DISP_SEL1_ADDR << 1) ); | ||
86 | ctrl_outw( '-' , PA_LED_DISP + (DISP_SEL2_ADDR << 1) ); | ||
87 | ctrl_outw( 'L' , PA_LED_DISP + (DISP_SEL3_ADDR << 1) ); | ||
88 | ctrl_outw( 'i' , PA_LED_DISP + (DISP_SEL4_ADDR << 1) ); | ||
89 | ctrl_outw( 'n' , PA_LED_DISP + (DISP_SEL5_ADDR << 1) ); | ||
90 | ctrl_outw( 'u' , PA_LED_DISP + (DISP_SEL6_ADDR << 1) ); | ||
91 | ctrl_outw( 'x' , PA_LED_DISP + (DISP_SEL7_ADDR << 1) ); | ||
92 | |||
93 | printk(KERN_INFO "Hitachi UL Solutions Engine 7780SE03 support.\n"); | ||
94 | |||
95 | /* | ||
96 | * PCI REQ/GNT setting | ||
97 | * REQ0/GNT0 -> USB | ||
98 | * REQ1/GNT1 -> PC Card | ||
99 | * REQ2/GNT2 -> Serial ATA | ||
100 | * REQ3/GNT3 -> PCI slot | ||
101 | */ | ||
102 | ctrl_outw(0x0213, FPGA_REQSEL); | ||
103 | |||
104 | /* GPIO setting */ | ||
105 | ctrl_outw(0x0000, GPIO_PECR); | ||
106 | ctrl_outw(ctrl_inw(GPIO_PHCR)&0xfff3, GPIO_PHCR); | ||
107 | ctrl_outw(0x0c00, GPIO_PMSELR); | ||
108 | |||
109 | /* iVDR Power ON */ | ||
110 | ctrl_outw(0x0001, FPGA_IVDRPW); | ||
111 | } | ||
112 | |||
113 | /* | ||
114 | * The Machine Vector | ||
115 | */ | ||
116 | struct sh_machine_vector mv_se7780 __initmv = { | ||
117 | .mv_name = "Solution Engine 7780" , | ||
118 | .mv_setup = se7780_setup , | ||
119 | .mv_nr_irqs = 111 , | ||
120 | .mv_init_irq = init_se7780_IRQ, | ||
121 | }; | ||
122 | ALIAS_MV(se7780) | ||
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig new file mode 100644 index 000000000000..be86414dcc87 --- /dev/null +++ b/arch/sh/configs/lboxre2_defconfig | |||
@@ -0,0 +1,1271 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.21-rc4 | ||
4 | # Sat Mar 24 22:04:27 2007 | ||
5 | # | ||
6 | CONFIG_SUPERH=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | CONFIG_GENERIC_BUG=y | ||
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
10 | CONFIG_GENERIC_HWEIGHT=y | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
20 | |||
21 | # | ||
22 | # Code maturity level options | ||
23 | # | ||
24 | CONFIG_EXPERIMENTAL=y | ||
25 | CONFIG_BROKEN_ON_SMP=y | ||
26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
27 | |||
28 | # | ||
29 | # General setup | ||
30 | # | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | CONFIG_LOCALVERSION_AUTO=y | ||
33 | CONFIG_SWAP=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_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 | ||
43 | CONFIG_SYSFS_DEPRECATED=y | ||
44 | # CONFIG_RELAY is not set | ||
45 | # CONFIG_BLK_DEV_INITRD is not set | ||
46 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
47 | CONFIG_SYSCTL=y | ||
48 | CONFIG_EMBEDDED=y | ||
49 | CONFIG_UID16=y | ||
50 | # CONFIG_SYSCTL_SYSCALL is not set | ||
51 | CONFIG_KALLSYMS=y | ||
52 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
53 | CONFIG_HOTPLUG=y | ||
54 | CONFIG_PRINTK=y | ||
55 | CONFIG_BUG=y | ||
56 | CONFIG_ELF_CORE=y | ||
57 | CONFIG_BASE_FULL=y | ||
58 | CONFIG_FUTEX=y | ||
59 | CONFIG_EPOLL=y | ||
60 | CONFIG_SHMEM=y | ||
61 | CONFIG_SLAB=y | ||
62 | CONFIG_VM_EVENT_COUNTERS=y | ||
63 | CONFIG_RT_MUTEXES=y | ||
64 | # CONFIG_TINY_SHMEM is not set | ||
65 | CONFIG_BASE_SMALL=0 | ||
66 | # CONFIG_SLOB is not set | ||
67 | |||
68 | # | ||
69 | # Loadable module support | ||
70 | # | ||
71 | CONFIG_MODULES=y | ||
72 | CONFIG_MODULE_UNLOAD=y | ||
73 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
74 | # CONFIG_MODVERSIONS is not set | ||
75 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
76 | CONFIG_KMOD=y | ||
77 | |||
78 | # | ||
79 | # Block layer | ||
80 | # | ||
81 | CONFIG_BLOCK=y | ||
82 | # CONFIG_LBD is not set | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | # CONFIG_LSF is not set | ||
85 | |||
86 | # | ||
87 | # IO Schedulers | ||
88 | # | ||
89 | CONFIG_IOSCHED_NOOP=y | ||
90 | CONFIG_IOSCHED_AS=y | ||
91 | CONFIG_IOSCHED_DEADLINE=y | ||
92 | CONFIG_IOSCHED_CFQ=y | ||
93 | CONFIG_DEFAULT_AS=y | ||
94 | # CONFIG_DEFAULT_DEADLINE is not set | ||
95 | # CONFIG_DEFAULT_CFQ is not set | ||
96 | # CONFIG_DEFAULT_NOOP is not set | ||
97 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
98 | |||
99 | # | ||
100 | # System type | ||
101 | # | ||
102 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
103 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
104 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
106 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
107 | # CONFIG_SH_7751_SYSTEMH is not set | ||
108 | # CONFIG_SH_HP6XX is not set | ||
109 | # CONFIG_SH_SATURN is not set | ||
110 | # CONFIG_SH_DREAMCAST is not set | ||
111 | # CONFIG_SH_MPC1211 is not set | ||
112 | # CONFIG_SH_SH03 is not set | ||
113 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
114 | # CONFIG_SH_HS7751RVOIP is not set | ||
115 | # CONFIG_SH_7710VOIPGW is not set | ||
116 | # CONFIG_SH_RTS7751R2D is not set | ||
117 | # CONFIG_SH_HIGHLANDER is not set | ||
118 | # CONFIG_SH_EDOSK7705 is not set | ||
119 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
120 | # CONFIG_SH_LANDISK is not set | ||
121 | # CONFIG_SH_TITAN is not set | ||
122 | # CONFIG_SH_SHMIN is not set | ||
123 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
124 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
125 | CONFIG_SH_LBOX_RE2=y | ||
126 | # CONFIG_SH_UNKNOWN is not set | ||
127 | |||
128 | # | ||
129 | # Processor selection | ||
130 | # | ||
131 | CONFIG_CPU_SH4=y | ||
132 | |||
133 | # | ||
134 | # SH-2 Processor Support | ||
135 | # | ||
136 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
137 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
138 | |||
139 | # | ||
140 | # SH-2A Processor Support | ||
141 | # | ||
142 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
143 | |||
144 | # | ||
145 | # SH-3 Processor Support | ||
146 | # | ||
147 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
148 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||
149 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||
150 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||
151 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | ||
152 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||
153 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||
154 | |||
155 | # | ||
156 | # SH-4 Processor Support | ||
157 | # | ||
158 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||
161 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | ||
162 | CONFIG_CPU_SUBTYPE_SH7751=y | ||
163 | CONFIG_CPU_SUBTYPE_SH7751R=y | ||
164 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | ||
165 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | ||
166 | |||
167 | # | ||
168 | # ST40 Processor Support | ||
169 | # | ||
170 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
171 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
172 | |||
173 | # | ||
174 | # SH-4A Processor Support | ||
175 | # | ||
176 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | ||
177 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | ||
178 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||
179 | |||
180 | # | ||
181 | # SH4AL-DSP Processor Support | ||
182 | # | ||
183 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
184 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||
185 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
186 | |||
187 | # | ||
188 | # Memory management options | ||
189 | # | ||
190 | CONFIG_MMU=y | ||
191 | CONFIG_PAGE_OFFSET=0x80000000 | ||
192 | CONFIG_MEMORY_START=0x0c000000 | ||
193 | CONFIG_MEMORY_SIZE=0x04000000 | ||
194 | CONFIG_VSYSCALL=y | ||
195 | CONFIG_PAGE_SIZE_4KB=y | ||
196 | # CONFIG_PAGE_SIZE_8KB is not set | ||
197 | # CONFIG_PAGE_SIZE_64KB is not set | ||
198 | CONFIG_SELECT_MEMORY_MODEL=y | ||
199 | CONFIG_FLATMEM_MANUAL=y | ||
200 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
201 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
202 | CONFIG_FLATMEM=y | ||
203 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
204 | # CONFIG_SPARSEMEM_STATIC is not set | ||
205 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
206 | # CONFIG_RESOURCES_64BIT is not set | ||
207 | CONFIG_ZONE_DMA_FLAG=0 | ||
208 | |||
209 | # | ||
210 | # Cache configuration | ||
211 | # | ||
212 | # CONFIG_SH_DIRECT_MAPPED is not set | ||
213 | # CONFIG_SH_WRITETHROUGH is not set | ||
214 | # CONFIG_SH_OCRAM is not set | ||
215 | |||
216 | # | ||
217 | # Processor features | ||
218 | # | ||
219 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
220 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
221 | CONFIG_SH_FPU=y | ||
222 | # CONFIG_SH_DSP is not set | ||
223 | # CONFIG_SH_STORE_QUEUES is not set | ||
224 | CONFIG_CPU_HAS_INTEVT=y | ||
225 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
226 | CONFIG_CPU_HAS_SR_RB=y | ||
227 | CONFIG_CPU_HAS_PTEA=y | ||
228 | |||
229 | # | ||
230 | # Timer and clock configuration | ||
231 | # | ||
232 | CONFIG_SH_TMU=y | ||
233 | CONFIG_SH_TIMER_IRQ=16 | ||
234 | # CONFIG_NO_IDLE_HZ is not set | ||
235 | CONFIG_SH_PCLK_FREQ=40000000 | ||
236 | |||
237 | # | ||
238 | # CPU Frequency scaling | ||
239 | # | ||
240 | # CONFIG_CPU_FREQ is not set | ||
241 | |||
242 | # | ||
243 | # DMA support | ||
244 | # | ||
245 | # CONFIG_SH_DMA is not set | ||
246 | |||
247 | # | ||
248 | # Companion Chips | ||
249 | # | ||
250 | # CONFIG_HD6446X_SERIES is not set | ||
251 | |||
252 | # | ||
253 | # Additional SuperH Device Drivers | ||
254 | # | ||
255 | # CONFIG_HEARTBEAT is not set | ||
256 | # CONFIG_PUSH_SWITCH is not set | ||
257 | |||
258 | # | ||
259 | # Kernel features | ||
260 | # | ||
261 | # CONFIG_HZ_100 is not set | ||
262 | CONFIG_HZ_250=y | ||
263 | # CONFIG_HZ_300 is not set | ||
264 | # CONFIG_HZ_1000 is not set | ||
265 | CONFIG_HZ=250 | ||
266 | CONFIG_KEXEC=y | ||
267 | # CONFIG_SMP is not set | ||
268 | CONFIG_PREEMPT_NONE=y | ||
269 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
270 | # CONFIG_PREEMPT is not set | ||
271 | |||
272 | # | ||
273 | # Boot options | ||
274 | # | ||
275 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||
276 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||
277 | # CONFIG_UBC_WAKEUP is not set | ||
278 | CONFIG_CMDLINE_BOOL=y | ||
279 | CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" | ||
280 | |||
281 | # | ||
282 | # Bus options | ||
283 | # | ||
284 | CONFIG_ISA=y | ||
285 | CONFIG_PCI=y | ||
286 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
287 | CONFIG_PCI_AUTO=y | ||
288 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | ||
289 | |||
290 | # | ||
291 | # PCCARD (PCMCIA/CardBus) support | ||
292 | # | ||
293 | CONFIG_PCCARD=y | ||
294 | CONFIG_PCMCIA_DEBUG=y | ||
295 | CONFIG_PCMCIA=y | ||
296 | CONFIG_PCMCIA_LOAD_CIS=y | ||
297 | CONFIG_PCMCIA_IOCTL=y | ||
298 | CONFIG_CARDBUS=y | ||
299 | |||
300 | # | ||
301 | # PC-card bridges | ||
302 | # | ||
303 | CONFIG_YENTA=y | ||
304 | CONFIG_YENTA_O2=y | ||
305 | # CONFIG_YENTA_RICOH is not set | ||
306 | # CONFIG_YENTA_TI is not set | ||
307 | # CONFIG_YENTA_TOSHIBA is not set | ||
308 | # CONFIG_PD6729 is not set | ||
309 | # CONFIG_I82092 is not set | ||
310 | # CONFIG_I82365 is not set | ||
311 | # CONFIG_TCIC is not set | ||
312 | CONFIG_PCMCIA_PROBE=y | ||
313 | CONFIG_PCCARD_NONSTATIC=y | ||
314 | |||
315 | # | ||
316 | # PCI Hotplug Support | ||
317 | # | ||
318 | # CONFIG_HOTPLUG_PCI is not set | ||
319 | |||
320 | # | ||
321 | # Executable file formats | ||
322 | # | ||
323 | CONFIG_BINFMT_ELF=y | ||
324 | # CONFIG_BINFMT_FLAT is not set | ||
325 | # CONFIG_BINFMT_MISC is not set | ||
326 | |||
327 | # | ||
328 | # Power management options (EXPERIMENTAL) | ||
329 | # | ||
330 | # CONFIG_PM is not set | ||
331 | |||
332 | # | ||
333 | # Networking | ||
334 | # | ||
335 | CONFIG_NET=y | ||
336 | |||
337 | # | ||
338 | # Networking options | ||
339 | # | ||
340 | # CONFIG_NETDEBUG is not set | ||
341 | CONFIG_PACKET=y | ||
342 | # CONFIG_PACKET_MMAP is not set | ||
343 | CONFIG_UNIX=y | ||
344 | CONFIG_XFRM=y | ||
345 | # CONFIG_XFRM_USER is not set | ||
346 | # CONFIG_XFRM_SUB_POLICY is not set | ||
347 | # CONFIG_XFRM_MIGRATE is not set | ||
348 | # CONFIG_NET_KEY is not set | ||
349 | CONFIG_INET=y | ||
350 | # CONFIG_IP_MULTICAST is not set | ||
351 | CONFIG_IP_ADVANCED_ROUTER=y | ||
352 | CONFIG_ASK_IP_FIB_HASH=y | ||
353 | # CONFIG_IP_FIB_TRIE is not set | ||
354 | CONFIG_IP_FIB_HASH=y | ||
355 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
356 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
357 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
358 | CONFIG_IP_PNP=y | ||
359 | # CONFIG_IP_PNP_DHCP is not set | ||
360 | # CONFIG_IP_PNP_BOOTP is not set | ||
361 | # CONFIG_IP_PNP_RARP is not set | ||
362 | # CONFIG_NET_IPIP is not set | ||
363 | # CONFIG_NET_IPGRE is not set | ||
364 | # CONFIG_ARPD is not set | ||
365 | # CONFIG_SYN_COOKIES is not set | ||
366 | # CONFIG_INET_AH is not set | ||
367 | # CONFIG_INET_ESP is not set | ||
368 | # CONFIG_INET_IPCOMP is not set | ||
369 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
370 | # CONFIG_INET_TUNNEL is not set | ||
371 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
372 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
373 | CONFIG_INET_XFRM_MODE_BEET=y | ||
374 | CONFIG_INET_DIAG=y | ||
375 | CONFIG_INET_TCP_DIAG=y | ||
376 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
377 | CONFIG_TCP_CONG_CUBIC=y | ||
378 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
379 | # CONFIG_TCP_MD5SIG is not set | ||
380 | |||
381 | # | ||
382 | # IP: Virtual Server Configuration | ||
383 | # | ||
384 | # CONFIG_IP_VS is not set | ||
385 | # CONFIG_IPV6 is not set | ||
386 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
387 | # CONFIG_INET6_TUNNEL is not set | ||
388 | # CONFIG_NETWORK_SECMARK is not set | ||
389 | CONFIG_NETFILTER=y | ||
390 | # CONFIG_NETFILTER_DEBUG is not set | ||
391 | |||
392 | # | ||
393 | # Core Netfilter Configuration | ||
394 | # | ||
395 | # CONFIG_NETFILTER_NETLINK is not set | ||
396 | # CONFIG_NF_CONNTRACK_ENABLED is not set | ||
397 | # CONFIG_NETFILTER_XTABLES is not set | ||
398 | |||
399 | # | ||
400 | # IP: Netfilter Configuration | ||
401 | # | ||
402 | # CONFIG_IP_NF_QUEUE is not set | ||
403 | # CONFIG_IP_NF_IPTABLES is not set | ||
404 | # CONFIG_IP_NF_ARPTABLES is not set | ||
405 | |||
406 | # | ||
407 | # DCCP Configuration (EXPERIMENTAL) | ||
408 | # | ||
409 | # CONFIG_IP_DCCP is not set | ||
410 | |||
411 | # | ||
412 | # SCTP Configuration (EXPERIMENTAL) | ||
413 | # | ||
414 | # CONFIG_IP_SCTP is not set | ||
415 | |||
416 | # | ||
417 | # TIPC Configuration (EXPERIMENTAL) | ||
418 | # | ||
419 | # CONFIG_TIPC is not set | ||
420 | # CONFIG_ATM is not set | ||
421 | # CONFIG_BRIDGE is not set | ||
422 | # CONFIG_VLAN_8021Q is not set | ||
423 | # CONFIG_DECNET is not set | ||
424 | # CONFIG_LLC2 is not set | ||
425 | # CONFIG_IPX is not set | ||
426 | # CONFIG_ATALK is not set | ||
427 | # CONFIG_X25 is not set | ||
428 | # CONFIG_LAPB is not set | ||
429 | # CONFIG_ECONET is not set | ||
430 | # CONFIG_WAN_ROUTER is not set | ||
431 | |||
432 | # | ||
433 | # QoS and/or fair queueing | ||
434 | # | ||
435 | # CONFIG_NET_SCHED is not set | ||
436 | |||
437 | # | ||
438 | # Network testing | ||
439 | # | ||
440 | # CONFIG_NET_PKTGEN is not set | ||
441 | # CONFIG_HAMRADIO is not set | ||
442 | # CONFIG_IRDA is not set | ||
443 | # CONFIG_BT is not set | ||
444 | # CONFIG_IEEE80211 is not set | ||
445 | |||
446 | # | ||
447 | # Device Drivers | ||
448 | # | ||
449 | |||
450 | # | ||
451 | # Generic Driver Options | ||
452 | # | ||
453 | CONFIG_STANDALONE=y | ||
454 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
455 | CONFIG_FW_LOADER=y | ||
456 | # CONFIG_SYS_HYPERVISOR is not set | ||
457 | |||
458 | # | ||
459 | # Connector - unified userspace <-> kernelspace linker | ||
460 | # | ||
461 | # CONFIG_CONNECTOR is not set | ||
462 | |||
463 | # | ||
464 | # Memory Technology Devices (MTD) | ||
465 | # | ||
466 | # CONFIG_MTD is not set | ||
467 | |||
468 | # | ||
469 | # Parallel port support | ||
470 | # | ||
471 | # CONFIG_PARPORT is not set | ||
472 | |||
473 | # | ||
474 | # Plug and Play support | ||
475 | # | ||
476 | # CONFIG_PNP is not set | ||
477 | # CONFIG_PNPACPI is not set | ||
478 | |||
479 | # | ||
480 | # Block devices | ||
481 | # | ||
482 | # CONFIG_BLK_CPQ_DA is not set | ||
483 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
484 | # CONFIG_BLK_DEV_DAC960 is not set | ||
485 | # CONFIG_BLK_DEV_UMEM is not set | ||
486 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
487 | CONFIG_BLK_DEV_LOOP=y | ||
488 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
489 | # CONFIG_BLK_DEV_NBD is not set | ||
490 | # CONFIG_BLK_DEV_SX8 is not set | ||
491 | CONFIG_BLK_DEV_RAM=y | ||
492 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
493 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
494 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
495 | # CONFIG_CDROM_PKTCDVD is not set | ||
496 | # CONFIG_ATA_OVER_ETH is not set | ||
497 | |||
498 | # | ||
499 | # Misc devices | ||
500 | # | ||
501 | # CONFIG_SGI_IOC4 is not set | ||
502 | # CONFIG_TIFM_CORE is not set | ||
503 | |||
504 | # | ||
505 | # ATA/ATAPI/MFM/RLL support | ||
506 | # | ||
507 | # CONFIG_IDE is not set | ||
508 | |||
509 | # | ||
510 | # SCSI device support | ||
511 | # | ||
512 | # CONFIG_RAID_ATTRS is not set | ||
513 | CONFIG_SCSI=y | ||
514 | # CONFIG_SCSI_TGT is not set | ||
515 | # CONFIG_SCSI_NETLINK is not set | ||
516 | CONFIG_SCSI_PROC_FS=y | ||
517 | |||
518 | # | ||
519 | # SCSI support type (disk, tape, CD-ROM) | ||
520 | # | ||
521 | CONFIG_BLK_DEV_SD=y | ||
522 | # CONFIG_CHR_DEV_ST is not set | ||
523 | # CONFIG_CHR_DEV_OSST is not set | ||
524 | # CONFIG_BLK_DEV_SR is not set | ||
525 | # CONFIG_CHR_DEV_SG is not set | ||
526 | # CONFIG_CHR_DEV_SCH is not set | ||
527 | |||
528 | # | ||
529 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
530 | # | ||
531 | # CONFIG_SCSI_MULTI_LUN is not set | ||
532 | # CONFIG_SCSI_CONSTANTS is not set | ||
533 | # CONFIG_SCSI_LOGGING is not set | ||
534 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
535 | |||
536 | # | ||
537 | # SCSI Transports | ||
538 | # | ||
539 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
540 | # CONFIG_SCSI_FC_ATTRS is not set | ||
541 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
542 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
543 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
544 | |||
545 | # | ||
546 | # SCSI low-level drivers | ||
547 | # | ||
548 | # CONFIG_ISCSI_TCP is not set | ||
549 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
550 | # CONFIG_SCSI_3W_9XXX is not set | ||
551 | # CONFIG_SCSI_ACARD is not set | ||
552 | # CONFIG_SCSI_AHA152X is not set | ||
553 | # CONFIG_SCSI_AACRAID is not set | ||
554 | # CONFIG_SCSI_AIC7XXX is not set | ||
555 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
556 | # CONFIG_SCSI_AIC79XX is not set | ||
557 | # CONFIG_SCSI_AIC94XX is not set | ||
558 | # CONFIG_SCSI_DPT_I2O is not set | ||
559 | # CONFIG_SCSI_IN2000 is not set | ||
560 | # CONFIG_SCSI_ARCMSR is not set | ||
561 | # CONFIG_MEGARAID_NEWGEN is not set | ||
562 | # CONFIG_MEGARAID_LEGACY is not set | ||
563 | # CONFIG_MEGARAID_SAS is not set | ||
564 | # CONFIG_SCSI_HPTIOP is not set | ||
565 | # CONFIG_SCSI_DMX3191D is not set | ||
566 | # CONFIG_SCSI_DTC3280 is not set | ||
567 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
568 | # CONFIG_SCSI_GENERIC_NCR5380 is not set | ||
569 | # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set | ||
570 | # CONFIG_SCSI_IPS is not set | ||
571 | # CONFIG_SCSI_INITIO is not set | ||
572 | # CONFIG_SCSI_INIA100 is not set | ||
573 | # CONFIG_SCSI_NCR53C406A is not set | ||
574 | # CONFIG_SCSI_STEX is not set | ||
575 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
576 | # CONFIG_SCSI_IPR is not set | ||
577 | # CONFIG_SCSI_PAS16 is not set | ||
578 | # CONFIG_SCSI_PSI240I is not set | ||
579 | # CONFIG_SCSI_QLOGIC_FAS is not set | ||
580 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
581 | # CONFIG_SCSI_QLA_FC is not set | ||
582 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
583 | # CONFIG_SCSI_LPFC is not set | ||
584 | # CONFIG_SCSI_SYM53C416 is not set | ||
585 | # CONFIG_SCSI_DC395x is not set | ||
586 | # CONFIG_SCSI_DC390T is not set | ||
587 | # CONFIG_SCSI_T128 is not set | ||
588 | # CONFIG_SCSI_NSP32 is not set | ||
589 | # CONFIG_SCSI_DEBUG is not set | ||
590 | # CONFIG_SCSI_SRP is not set | ||
591 | |||
592 | # | ||
593 | # PCMCIA SCSI adapter support | ||
594 | # | ||
595 | # CONFIG_PCMCIA_AHA152X is not set | ||
596 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
597 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
598 | # CONFIG_PCMCIA_QLOGIC is not set | ||
599 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
600 | |||
601 | # | ||
602 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
603 | # | ||
604 | CONFIG_ATA=y | ||
605 | # CONFIG_ATA_NONSTANDARD is not set | ||
606 | # CONFIG_SATA_AHCI is not set | ||
607 | # CONFIG_SATA_SVW is not set | ||
608 | # CONFIG_ATA_PIIX is not set | ||
609 | # CONFIG_SATA_MV is not set | ||
610 | # CONFIG_SATA_NV is not set | ||
611 | # CONFIG_PDC_ADMA is not set | ||
612 | # CONFIG_SATA_QSTOR is not set | ||
613 | # CONFIG_SATA_PROMISE is not set | ||
614 | # CONFIG_SATA_SX4 is not set | ||
615 | # CONFIG_SATA_SIL is not set | ||
616 | # CONFIG_SATA_SIL24 is not set | ||
617 | # CONFIG_SATA_SIS is not set | ||
618 | # CONFIG_SATA_ULI is not set | ||
619 | # CONFIG_SATA_VIA is not set | ||
620 | # CONFIG_SATA_VITESSE is not set | ||
621 | # CONFIG_SATA_INIC162X is not set | ||
622 | # CONFIG_PATA_ALI is not set | ||
623 | # CONFIG_PATA_AMD is not set | ||
624 | # CONFIG_PATA_ARTOP is not set | ||
625 | # CONFIG_PATA_ATIIXP is not set | ||
626 | # CONFIG_PATA_CMD64X is not set | ||
627 | # CONFIG_PATA_CS5520 is not set | ||
628 | # CONFIG_PATA_CS5530 is not set | ||
629 | # CONFIG_PATA_CYPRESS is not set | ||
630 | # CONFIG_PATA_EFAR is not set | ||
631 | # CONFIG_ATA_GENERIC is not set | ||
632 | # CONFIG_PATA_HPT366 is not set | ||
633 | # CONFIG_PATA_HPT37X is not set | ||
634 | # CONFIG_PATA_HPT3X2N is not set | ||
635 | # CONFIG_PATA_HPT3X3 is not set | ||
636 | # CONFIG_PATA_IT821X is not set | ||
637 | # CONFIG_PATA_IT8213 is not set | ||
638 | # CONFIG_PATA_JMICRON is not set | ||
639 | # CONFIG_PATA_LEGACY is not set | ||
640 | # CONFIG_PATA_TRIFLEX is not set | ||
641 | # CONFIG_PATA_MARVELL is not set | ||
642 | # CONFIG_PATA_MPIIX is not set | ||
643 | # CONFIG_PATA_OLDPIIX is not set | ||
644 | # CONFIG_PATA_NETCELL is not set | ||
645 | # CONFIG_PATA_NS87410 is not set | ||
646 | # CONFIG_PATA_OPTI is not set | ||
647 | # CONFIG_PATA_OPTIDMA is not set | ||
648 | # CONFIG_PATA_PCMCIA is not set | ||
649 | # CONFIG_PATA_PDC_OLD is not set | ||
650 | # CONFIG_PATA_QDI is not set | ||
651 | # CONFIG_PATA_RADISYS is not set | ||
652 | # CONFIG_PATA_RZ1000 is not set | ||
653 | # CONFIG_PATA_SC1200 is not set | ||
654 | # CONFIG_PATA_SERVERWORKS is not set | ||
655 | # CONFIG_PATA_PDC2027X is not set | ||
656 | # CONFIG_PATA_SIL680 is not set | ||
657 | # CONFIG_PATA_SIS is not set | ||
658 | # CONFIG_PATA_VIA is not set | ||
659 | # CONFIG_PATA_WINBOND is not set | ||
660 | # CONFIG_PATA_WINBOND_VLB is not set | ||
661 | CONFIG_PATA_PLATFORM=y | ||
662 | |||
663 | # | ||
664 | # Old CD-ROM drivers (not SCSI, not IDE) | ||
665 | # | ||
666 | # CONFIG_CD_NO_IDESCSI is not set | ||
667 | |||
668 | # | ||
669 | # Multi-device support (RAID and LVM) | ||
670 | # | ||
671 | # CONFIG_MD is not set | ||
672 | |||
673 | # | ||
674 | # Fusion MPT device support | ||
675 | # | ||
676 | # CONFIG_FUSION is not set | ||
677 | # CONFIG_FUSION_SPI is not set | ||
678 | # CONFIG_FUSION_FC is not set | ||
679 | # CONFIG_FUSION_SAS is not set | ||
680 | |||
681 | # | ||
682 | # IEEE 1394 (FireWire) support | ||
683 | # | ||
684 | # CONFIG_IEEE1394 is not set | ||
685 | |||
686 | # | ||
687 | # I2O device support | ||
688 | # | ||
689 | # CONFIG_I2O is not set | ||
690 | |||
691 | # | ||
692 | # Network device support | ||
693 | # | ||
694 | CONFIG_NETDEVICES=y | ||
695 | # CONFIG_DUMMY is not set | ||
696 | # CONFIG_BONDING is not set | ||
697 | # CONFIG_EQUALIZER is not set | ||
698 | # CONFIG_TUN is not set | ||
699 | |||
700 | # | ||
701 | # ARCnet devices | ||
702 | # | ||
703 | # CONFIG_ARCNET is not set | ||
704 | |||
705 | # | ||
706 | # PHY device support | ||
707 | # | ||
708 | # CONFIG_PHYLIB is not set | ||
709 | |||
710 | # | ||
711 | # Ethernet (10 or 100Mbit) | ||
712 | # | ||
713 | CONFIG_NET_ETHERNET=y | ||
714 | CONFIG_MII=y | ||
715 | # CONFIG_STNIC is not set | ||
716 | # CONFIG_HAPPYMEAL is not set | ||
717 | # CONFIG_SUNGEM is not set | ||
718 | # CONFIG_CASSINI is not set | ||
719 | # CONFIG_NET_VENDOR_3COM is not set | ||
720 | # CONFIG_NET_VENDOR_SMC is not set | ||
721 | # CONFIG_SMC91X is not set | ||
722 | # CONFIG_NET_VENDOR_RACAL is not set | ||
723 | |||
724 | # | ||
725 | # Tulip family network device support | ||
726 | # | ||
727 | # CONFIG_NET_TULIP is not set | ||
728 | # CONFIG_AT1700 is not set | ||
729 | # CONFIG_DEPCA is not set | ||
730 | # CONFIG_HP100 is not set | ||
731 | # CONFIG_NET_ISA is not set | ||
732 | CONFIG_NET_PCI=y | ||
733 | # CONFIG_PCNET32 is not set | ||
734 | # CONFIG_AMD8111_ETH is not set | ||
735 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
736 | # CONFIG_AC3200 is not set | ||
737 | # CONFIG_APRICOT is not set | ||
738 | # CONFIG_B44 is not set | ||
739 | # CONFIG_FORCEDETH is not set | ||
740 | # CONFIG_CS89x0 is not set | ||
741 | # CONFIG_DGRS is not set | ||
742 | # CONFIG_EEPRO100 is not set | ||
743 | # CONFIG_E100 is not set | ||
744 | # CONFIG_FEALNX is not set | ||
745 | # CONFIG_NATSEMI is not set | ||
746 | CONFIG_NE2K_PCI=y | ||
747 | # CONFIG_8139CP is not set | ||
748 | CONFIG_8139TOO=y | ||
749 | CONFIG_8139TOO_PIO=y | ||
750 | CONFIG_8139TOO_TUNE_TWISTER=y | ||
751 | # CONFIG_8139TOO_8129 is not set | ||
752 | # CONFIG_8139_OLD_RX_RESET is not set | ||
753 | # CONFIG_SIS900 is not set | ||
754 | # CONFIG_EPIC100 is not set | ||
755 | # CONFIG_SUNDANCE is not set | ||
756 | # CONFIG_TLAN is not set | ||
757 | # CONFIG_VIA_RHINE is not set | ||
758 | # CONFIG_SC92031 is not set | ||
759 | |||
760 | # | ||
761 | # Ethernet (1000 Mbit) | ||
762 | # | ||
763 | # CONFIG_ACENIC is not set | ||
764 | # CONFIG_DL2K is not set | ||
765 | # CONFIG_E1000 is not set | ||
766 | # CONFIG_NS83820 is not set | ||
767 | # CONFIG_HAMACHI is not set | ||
768 | # CONFIG_YELLOWFIN is not set | ||
769 | # CONFIG_R8169 is not set | ||
770 | # CONFIG_SIS190 is not set | ||
771 | # CONFIG_SKGE is not set | ||
772 | # CONFIG_SKY2 is not set | ||
773 | # CONFIG_SK98LIN is not set | ||
774 | # CONFIG_VIA_VELOCITY is not set | ||
775 | # CONFIG_TIGON3 is not set | ||
776 | # CONFIG_BNX2 is not set | ||
777 | # CONFIG_QLA3XXX is not set | ||
778 | # CONFIG_ATL1 is not set | ||
779 | |||
780 | # | ||
781 | # Ethernet (10000 Mbit) | ||
782 | # | ||
783 | # CONFIG_CHELSIO_T1 is not set | ||
784 | # CONFIG_CHELSIO_T3 is not set | ||
785 | # CONFIG_IXGB is not set | ||
786 | # CONFIG_S2IO is not set | ||
787 | # CONFIG_MYRI10GE is not set | ||
788 | # CONFIG_NETXEN_NIC is not set | ||
789 | |||
790 | # | ||
791 | # Token Ring devices | ||
792 | # | ||
793 | # CONFIG_TR is not set | ||
794 | |||
795 | # | ||
796 | # Wireless LAN (non-hamradio) | ||
797 | # | ||
798 | # CONFIG_NET_RADIO is not set | ||
799 | |||
800 | # | ||
801 | # PCMCIA network device support | ||
802 | # | ||
803 | CONFIG_NET_PCMCIA=y | ||
804 | # CONFIG_PCMCIA_3C589 is not set | ||
805 | # CONFIG_PCMCIA_3C574 is not set | ||
806 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
807 | CONFIG_PCMCIA_PCNET=y | ||
808 | # CONFIG_PCMCIA_NMCLAN is not set | ||
809 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
810 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
811 | # CONFIG_PCMCIA_AXNET is not set | ||
812 | |||
813 | # | ||
814 | # Wan interfaces | ||
815 | # | ||
816 | # CONFIG_WAN is not set | ||
817 | # CONFIG_FDDI is not set | ||
818 | # CONFIG_HIPPI is not set | ||
819 | # CONFIG_PPP is not set | ||
820 | # CONFIG_SLIP is not set | ||
821 | # CONFIG_NET_FC is not set | ||
822 | # CONFIG_SHAPER is not set | ||
823 | # CONFIG_NETCONSOLE is not set | ||
824 | # CONFIG_NETPOLL is not set | ||
825 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
826 | |||
827 | # | ||
828 | # ISDN subsystem | ||
829 | # | ||
830 | # CONFIG_ISDN is not set | ||
831 | |||
832 | # | ||
833 | # Telephony Support | ||
834 | # | ||
835 | # CONFIG_PHONE is not set | ||
836 | |||
837 | # | ||
838 | # Input device support | ||
839 | # | ||
840 | CONFIG_INPUT=y | ||
841 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
842 | |||
843 | # | ||
844 | # Userland interfaces | ||
845 | # | ||
846 | CONFIG_INPUT_MOUSEDEV=y | ||
847 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
848 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
849 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
850 | # CONFIG_INPUT_JOYDEV is not set | ||
851 | # CONFIG_INPUT_TSDEV is not set | ||
852 | # CONFIG_INPUT_EVDEV is not set | ||
853 | # CONFIG_INPUT_EVBUG is not set | ||
854 | |||
855 | # | ||
856 | # Input Device Drivers | ||
857 | # | ||
858 | # CONFIG_INPUT_KEYBOARD is not set | ||
859 | # CONFIG_INPUT_MOUSE is not set | ||
860 | # CONFIG_INPUT_JOYSTICK is not set | ||
861 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
862 | # CONFIG_INPUT_MISC is not set | ||
863 | |||
864 | # | ||
865 | # Hardware I/O ports | ||
866 | # | ||
867 | # CONFIG_SERIO is not set | ||
868 | # CONFIG_GAMEPORT is not set | ||
869 | |||
870 | # | ||
871 | # Character devices | ||
872 | # | ||
873 | CONFIG_VT=y | ||
874 | CONFIG_VT_CONSOLE=y | ||
875 | CONFIG_HW_CONSOLE=y | ||
876 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
877 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
878 | |||
879 | # | ||
880 | # Serial drivers | ||
881 | # | ||
882 | # CONFIG_SERIAL_8250 is not set | ||
883 | |||
884 | # | ||
885 | # Non-8250 serial port support | ||
886 | # | ||
887 | CONFIG_SERIAL_SH_SCI=y | ||
888 | CONFIG_SERIAL_SH_SCI_NR_UARTS=2 | ||
889 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
890 | CONFIG_SERIAL_CORE=y | ||
891 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
892 | # CONFIG_SERIAL_JSM is not set | ||
893 | CONFIG_UNIX98_PTYS=y | ||
894 | CONFIG_LEGACY_PTYS=y | ||
895 | CONFIG_LEGACY_PTY_COUNT=256 | ||
896 | |||
897 | # | ||
898 | # IPMI | ||
899 | # | ||
900 | # CONFIG_IPMI_HANDLER is not set | ||
901 | |||
902 | # | ||
903 | # Watchdog Cards | ||
904 | # | ||
905 | # CONFIG_WATCHDOG is not set | ||
906 | CONFIG_HW_RANDOM=y | ||
907 | # CONFIG_GEN_RTC is not set | ||
908 | # CONFIG_DTLK is not set | ||
909 | # CONFIG_R3964 is not set | ||
910 | # CONFIG_APPLICOM is not set | ||
911 | # CONFIG_DRM is not set | ||
912 | |||
913 | # | ||
914 | # PCMCIA character devices | ||
915 | # | ||
916 | # CONFIG_SYNCLINK_CS is not set | ||
917 | # CONFIG_CARDMAN_4000 is not set | ||
918 | # CONFIG_CARDMAN_4040 is not set | ||
919 | # CONFIG_RAW_DRIVER is not set | ||
920 | |||
921 | # | ||
922 | # TPM devices | ||
923 | # | ||
924 | # CONFIG_TCG_TPM is not set | ||
925 | |||
926 | # | ||
927 | # I2C support | ||
928 | # | ||
929 | # CONFIG_I2C is not set | ||
930 | |||
931 | # | ||
932 | # SPI support | ||
933 | # | ||
934 | # CONFIG_SPI is not set | ||
935 | # CONFIG_SPI_MASTER is not set | ||
936 | |||
937 | # | ||
938 | # Dallas's 1-wire bus | ||
939 | # | ||
940 | # CONFIG_W1 is not set | ||
941 | |||
942 | # | ||
943 | # Hardware Monitoring support | ||
944 | # | ||
945 | CONFIG_HWMON=y | ||
946 | # CONFIG_HWMON_VID is not set | ||
947 | # CONFIG_SENSORS_ABITUGURU is not set | ||
948 | # CONFIG_SENSORS_F71805F is not set | ||
949 | # CONFIG_SENSORS_PC87427 is not set | ||
950 | # CONFIG_SENSORS_VT1211 is not set | ||
951 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
952 | |||
953 | # | ||
954 | # Multifunction device drivers | ||
955 | # | ||
956 | # CONFIG_MFD_SM501 is not set | ||
957 | |||
958 | # | ||
959 | # Multimedia devices | ||
960 | # | ||
961 | # CONFIG_VIDEO_DEV is not set | ||
962 | |||
963 | # | ||
964 | # Digital Video Broadcasting Devices | ||
965 | # | ||
966 | # CONFIG_DVB is not set | ||
967 | |||
968 | # | ||
969 | # Graphics support | ||
970 | # | ||
971 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
972 | # CONFIG_FB is not set | ||
973 | |||
974 | # | ||
975 | # Console display driver support | ||
976 | # | ||
977 | # CONFIG_MDA_CONSOLE is not set | ||
978 | CONFIG_DUMMY_CONSOLE=y | ||
979 | |||
980 | # | ||
981 | # Sound | ||
982 | # | ||
983 | # CONFIG_SOUND is not set | ||
984 | |||
985 | # | ||
986 | # HID Devices | ||
987 | # | ||
988 | CONFIG_HID=y | ||
989 | # CONFIG_HID_DEBUG is not set | ||
990 | |||
991 | # | ||
992 | # USB support | ||
993 | # | ||
994 | CONFIG_USB_ARCH_HAS_HCD=y | ||
995 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
996 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
997 | # CONFIG_USB is not set | ||
998 | |||
999 | # | ||
1000 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
1001 | # | ||
1002 | |||
1003 | # | ||
1004 | # USB Gadget Support | ||
1005 | # | ||
1006 | # CONFIG_USB_GADGET is not set | ||
1007 | |||
1008 | # | ||
1009 | # MMC/SD Card support | ||
1010 | # | ||
1011 | # CONFIG_MMC is not set | ||
1012 | |||
1013 | # | ||
1014 | # LED devices | ||
1015 | # | ||
1016 | # CONFIG_NEW_LEDS is not set | ||
1017 | |||
1018 | # | ||
1019 | # LED drivers | ||
1020 | # | ||
1021 | |||
1022 | # | ||
1023 | # LED Triggers | ||
1024 | # | ||
1025 | |||
1026 | # | ||
1027 | # InfiniBand support | ||
1028 | # | ||
1029 | # CONFIG_INFINIBAND is not set | ||
1030 | |||
1031 | # | ||
1032 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1033 | # | ||
1034 | |||
1035 | # | ||
1036 | # Real Time Clock | ||
1037 | # | ||
1038 | CONFIG_RTC_LIB=y | ||
1039 | CONFIG_RTC_CLASS=y | ||
1040 | CONFIG_RTC_HCTOSYS=y | ||
1041 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1042 | # CONFIG_RTC_DEBUG is not set | ||
1043 | |||
1044 | # | ||
1045 | # RTC interfaces | ||
1046 | # | ||
1047 | CONFIG_RTC_INTF_SYSFS=y | ||
1048 | CONFIG_RTC_INTF_PROC=y | ||
1049 | CONFIG_RTC_INTF_DEV=y | ||
1050 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1051 | |||
1052 | # | ||
1053 | # RTC drivers | ||
1054 | # | ||
1055 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1056 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1057 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1058 | # CONFIG_RTC_DRV_SH is not set | ||
1059 | # CONFIG_RTC_DRV_TEST is not set | ||
1060 | # CONFIG_RTC_DRV_V3020 is not set | ||
1061 | |||
1062 | # | ||
1063 | # DMA Engine support | ||
1064 | # | ||
1065 | # CONFIG_DMA_ENGINE is not set | ||
1066 | |||
1067 | # | ||
1068 | # DMA Clients | ||
1069 | # | ||
1070 | |||
1071 | # | ||
1072 | # DMA Devices | ||
1073 | # | ||
1074 | |||
1075 | # | ||
1076 | # Auxiliary Display support | ||
1077 | # | ||
1078 | |||
1079 | # | ||
1080 | # Virtualization | ||
1081 | # | ||
1082 | |||
1083 | # | ||
1084 | # File systems | ||
1085 | # | ||
1086 | CONFIG_EXT2_FS=y | ||
1087 | # CONFIG_EXT2_FS_XATTR is not set | ||
1088 | # CONFIG_EXT2_FS_XIP is not set | ||
1089 | CONFIG_EXT3_FS=y | ||
1090 | CONFIG_EXT3_FS_XATTR=y | ||
1091 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
1092 | # CONFIG_EXT3_FS_SECURITY is not set | ||
1093 | # CONFIG_EXT4DEV_FS is not set | ||
1094 | CONFIG_JBD=y | ||
1095 | # CONFIG_JBD_DEBUG is not set | ||
1096 | CONFIG_FS_MBCACHE=y | ||
1097 | # CONFIG_REISERFS_FS is not set | ||
1098 | # CONFIG_JFS_FS is not set | ||
1099 | # CONFIG_FS_POSIX_ACL is not set | ||
1100 | # CONFIG_XFS_FS is not set | ||
1101 | # CONFIG_GFS2_FS is not set | ||
1102 | # CONFIG_OCFS2_FS is not set | ||
1103 | # CONFIG_MINIX_FS is not set | ||
1104 | CONFIG_ROMFS_FS=y | ||
1105 | CONFIG_INOTIFY=y | ||
1106 | CONFIG_INOTIFY_USER=y | ||
1107 | # CONFIG_QUOTA is not set | ||
1108 | CONFIG_DNOTIFY=y | ||
1109 | # CONFIG_AUTOFS_FS is not set | ||
1110 | # CONFIG_AUTOFS4_FS is not set | ||
1111 | # CONFIG_FUSE_FS is not set | ||
1112 | |||
1113 | # | ||
1114 | # CD-ROM/DVD Filesystems | ||
1115 | # | ||
1116 | # CONFIG_ISO9660_FS is not set | ||
1117 | # CONFIG_UDF_FS is not set | ||
1118 | |||
1119 | # | ||
1120 | # DOS/FAT/NT Filesystems | ||
1121 | # | ||
1122 | CONFIG_FAT_FS=y | ||
1123 | CONFIG_MSDOS_FS=y | ||
1124 | CONFIG_VFAT_FS=y | ||
1125 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1126 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1127 | # CONFIG_NTFS_FS is not set | ||
1128 | |||
1129 | # | ||
1130 | # Pseudo filesystems | ||
1131 | # | ||
1132 | CONFIG_PROC_FS=y | ||
1133 | # CONFIG_PROC_KCORE is not set | ||
1134 | CONFIG_PROC_SYSCTL=y | ||
1135 | CONFIG_SYSFS=y | ||
1136 | CONFIG_TMPFS=y | ||
1137 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1138 | # CONFIG_HUGETLBFS is not set | ||
1139 | # CONFIG_HUGETLB_PAGE is not set | ||
1140 | CONFIG_RAMFS=y | ||
1141 | # CONFIG_CONFIGFS_FS is not set | ||
1142 | |||
1143 | # | ||
1144 | # Miscellaneous filesystems | ||
1145 | # | ||
1146 | # CONFIG_ADFS_FS is not set | ||
1147 | # CONFIG_AFFS_FS is not set | ||
1148 | # CONFIG_HFS_FS is not set | ||
1149 | # CONFIG_HFSPLUS_FS is not set | ||
1150 | # CONFIG_BEFS_FS is not set | ||
1151 | # CONFIG_BFS_FS is not set | ||
1152 | # CONFIG_EFS_FS is not set | ||
1153 | # CONFIG_CRAMFS is not set | ||
1154 | # CONFIG_VXFS_FS is not set | ||
1155 | # CONFIG_HPFS_FS is not set | ||
1156 | # CONFIG_QNX4FS_FS is not set | ||
1157 | # CONFIG_SYSV_FS is not set | ||
1158 | # CONFIG_UFS_FS is not set | ||
1159 | |||
1160 | # | ||
1161 | # Network File Systems | ||
1162 | # | ||
1163 | # CONFIG_NFS_FS is not set | ||
1164 | # CONFIG_NFSD is not set | ||
1165 | # CONFIG_SMB_FS is not set | ||
1166 | # CONFIG_CIFS is not set | ||
1167 | # CONFIG_NCP_FS is not set | ||
1168 | # CONFIG_CODA_FS is not set | ||
1169 | # CONFIG_AFS_FS is not set | ||
1170 | # CONFIG_9P_FS is not set | ||
1171 | |||
1172 | # | ||
1173 | # Partition Types | ||
1174 | # | ||
1175 | # CONFIG_PARTITION_ADVANCED is not set | ||
1176 | CONFIG_MSDOS_PARTITION=y | ||
1177 | |||
1178 | # | ||
1179 | # Native Language Support | ||
1180 | # | ||
1181 | CONFIG_NLS=y | ||
1182 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1183 | CONFIG_NLS_CODEPAGE_437=y | ||
1184 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1185 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1186 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1187 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1188 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1189 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1190 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1191 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1192 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1193 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1194 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1195 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1196 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1197 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1198 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1199 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1200 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1201 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1202 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1203 | # CONFIG_NLS_ISO8859_8 is not set | ||
1204 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1205 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1206 | # CONFIG_NLS_ASCII is not set | ||
1207 | # CONFIG_NLS_ISO8859_1 is not set | ||
1208 | # CONFIG_NLS_ISO8859_2 is not set | ||
1209 | # CONFIG_NLS_ISO8859_3 is not set | ||
1210 | # CONFIG_NLS_ISO8859_4 is not set | ||
1211 | # CONFIG_NLS_ISO8859_5 is not set | ||
1212 | # CONFIG_NLS_ISO8859_6 is not set | ||
1213 | # CONFIG_NLS_ISO8859_7 is not set | ||
1214 | # CONFIG_NLS_ISO8859_9 is not set | ||
1215 | # CONFIG_NLS_ISO8859_13 is not set | ||
1216 | # CONFIG_NLS_ISO8859_14 is not set | ||
1217 | # CONFIG_NLS_ISO8859_15 is not set | ||
1218 | # CONFIG_NLS_KOI8_R is not set | ||
1219 | # CONFIG_NLS_KOI8_U is not set | ||
1220 | # CONFIG_NLS_UTF8 is not set | ||
1221 | |||
1222 | # | ||
1223 | # Distributed Lock Manager | ||
1224 | # | ||
1225 | # CONFIG_DLM is not set | ||
1226 | |||
1227 | # | ||
1228 | # Profiling support | ||
1229 | # | ||
1230 | # CONFIG_PROFILING is not set | ||
1231 | |||
1232 | # | ||
1233 | # Kernel hacking | ||
1234 | # | ||
1235 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1236 | # CONFIG_PRINTK_TIME is not set | ||
1237 | CONFIG_ENABLE_MUST_CHECK=y | ||
1238 | # CONFIG_MAGIC_SYSRQ is not set | ||
1239 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1240 | # CONFIG_DEBUG_FS is not set | ||
1241 | # CONFIG_HEADERS_CHECK is not set | ||
1242 | # CONFIG_DEBUG_KERNEL is not set | ||
1243 | CONFIG_LOG_BUF_SHIFT=14 | ||
1244 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1245 | CONFIG_SH_STANDARD_BIOS=y | ||
1246 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1247 | # CONFIG_EARLY_PRINTK is not set | ||
1248 | # CONFIG_SH_KGDB is not set | ||
1249 | |||
1250 | # | ||
1251 | # Security options | ||
1252 | # | ||
1253 | # CONFIG_KEYS is not set | ||
1254 | # CONFIG_SECURITY is not set | ||
1255 | |||
1256 | # | ||
1257 | # Cryptographic options | ||
1258 | # | ||
1259 | # CONFIG_CRYPTO is not set | ||
1260 | |||
1261 | # | ||
1262 | # Library routines | ||
1263 | # | ||
1264 | CONFIG_BITREVERSE=y | ||
1265 | # CONFIG_CRC_CCITT is not set | ||
1266 | # CONFIG_CRC16 is not set | ||
1267 | CONFIG_CRC32=y | ||
1268 | # CONFIG_LIBCRC32C is not set | ||
1269 | CONFIG_PLIST=y | ||
1270 | CONFIG_HAS_IOMEM=y | ||
1271 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/r7780rp_defconfig b/arch/sh/configs/r7780rp_defconfig index 2b75b4896ba5..48c6a2194c98 100644 --- a/arch/sh/configs/r7780rp_defconfig +++ b/arch/sh/configs/r7780rp_defconfig | |||
@@ -1,10 +1,11 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.19 | 3 | # Linux kernel version: 2.6.21-rc7 |
4 | # Wed Dec 6 11:59:38 2006 | 4 | # Tue May 1 12:28:39 2007 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 9 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 10 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
@@ -13,6 +14,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
13 | # CONFIG_GENERIC_TIME is not set | 14 | # CONFIG_GENERIC_TIME is not set |
14 | CONFIG_STACKTRACE_SUPPORT=y | 15 | CONFIG_STACKTRACE_SUPPORT=y |
15 | CONFIG_LOCKDEP_SUPPORT=y | 16 | CONFIG_LOCKDEP_SUPPORT=y |
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
16 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
17 | 20 | ||
18 | # | 21 | # |
@@ -31,6 +34,7 @@ CONFIG_LOCALVERSION_AUTO=y | |||
31 | CONFIG_SWAP=y | 34 | CONFIG_SWAP=y |
32 | CONFIG_SYSVIPC=y | 35 | CONFIG_SYSVIPC=y |
33 | # CONFIG_IPC_NS is not set | 36 | # CONFIG_IPC_NS is not set |
37 | CONFIG_SYSVIPC_SYSCTL=y | ||
34 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
35 | CONFIG_BSD_PROCESS_ACCT=y | 39 | CONFIG_BSD_PROCESS_ACCT=y |
36 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 40 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
@@ -41,7 +45,7 @@ CONFIG_IKCONFIG=y | |||
41 | CONFIG_IKCONFIG_PROC=y | 45 | CONFIG_IKCONFIG_PROC=y |
42 | # CONFIG_SYSFS_DEPRECATED is not set | 46 | # CONFIG_SYSFS_DEPRECATED is not set |
43 | # CONFIG_RELAY is not set | 47 | # CONFIG_RELAY is not set |
44 | CONFIG_INITRAMFS_SOURCE="" | 48 | # CONFIG_BLK_DEV_INITRD is not set |
45 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 49 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
46 | CONFIG_SYSCTL=y | 50 | CONFIG_SYSCTL=y |
47 | CONFIG_EMBEDDED=y | 51 | CONFIG_EMBEDDED=y |
@@ -99,23 +103,23 @@ CONFIG_DEFAULT_IOSCHED="noop" | |||
99 | # System type | 103 | # System type |
100 | # | 104 | # |
101 | # CONFIG_SH_SOLUTION_ENGINE is not set | 105 | # CONFIG_SH_SOLUTION_ENGINE is not set |
106 | # CONFIG_SH_7722_SOLUTION_ENGINE is not set | ||
102 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | 107 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set |
108 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | ||
103 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | 109 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set |
104 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | 110 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set |
105 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | 111 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set |
106 | # CONFIG_SH_7751_SYSTEMH is not set | 112 | # CONFIG_SH_7751_SYSTEMH is not set |
107 | # CONFIG_SH_HP6XX is not set | 113 | # CONFIG_SH_HP6XX is not set |
108 | # CONFIG_SH_EC3104 is not set | ||
109 | # CONFIG_SH_SATURN is not set | 114 | # CONFIG_SH_SATURN is not set |
110 | # CONFIG_SH_DREAMCAST is not set | 115 | # CONFIG_SH_DREAMCAST is not set |
111 | # CONFIG_SH_BIGSUR is not set | ||
112 | # CONFIG_SH_MPC1211 is not set | 116 | # CONFIG_SH_MPC1211 is not set |
113 | # CONFIG_SH_SH03 is not set | 117 | # CONFIG_SH_SH03 is not set |
114 | # CONFIG_SH_SECUREEDGE5410 is not set | 118 | # CONFIG_SH_SECUREEDGE5410 is not set |
115 | # CONFIG_SH_HS7751RVOIP is not set | 119 | # CONFIG_SH_HS7751RVOIP is not set |
116 | # CONFIG_SH_7710VOIPGW is not set | 120 | # CONFIG_SH_7710VOIPGW is not set |
117 | # CONFIG_SH_RTS7751R2D is not set | 121 | # CONFIG_SH_RTS7751R2D is not set |
118 | CONFIG_SH_R7780RP=y | 122 | CONFIG_SH_HIGHLANDER=y |
119 | # CONFIG_SH_EDOSK7705 is not set | 123 | # CONFIG_SH_EDOSK7705 is not set |
120 | # CONFIG_SH_SH4202_MICRODEV is not set | 124 | # CONFIG_SH_SH4202_MICRODEV is not set |
121 | # CONFIG_SH_LANDISK is not set | 125 | # CONFIG_SH_LANDISK is not set |
@@ -123,7 +127,11 @@ CONFIG_SH_R7780RP=y | |||
123 | # CONFIG_SH_SHMIN is not set | 127 | # CONFIG_SH_SHMIN is not set |
124 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | 128 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set |
125 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | 129 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set |
130 | # CONFIG_SH_LBOX_RE2 is not set | ||
126 | # CONFIG_SH_UNKNOWN is not set | 131 | # CONFIG_SH_UNKNOWN is not set |
132 | CONFIG_SH_R7780RP=y | ||
133 | # CONFIG_SH_R7780MP is not set | ||
134 | # CONFIG_SH_R7785RP is not set | ||
127 | 135 | ||
128 | # | 136 | # |
129 | # Processor selection | 137 | # Processor selection |
@@ -152,6 +160,7 @@ CONFIG_CPU_SH4A=y | |||
152 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 160 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 161 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
154 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 162 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
163 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | ||
155 | 164 | ||
156 | # | 165 | # |
157 | # SH-4 Processor Support | 166 | # SH-4 Processor Support |
@@ -183,6 +192,7 @@ CONFIG_CPU_SUBTYPE_SH7780=y | |||
183 | # | 192 | # |
184 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | 193 | # CONFIG_CPU_SUBTYPE_SH73180 is not set |
185 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 194 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
195 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
186 | 196 | ||
187 | # | 197 | # |
188 | # Memory management options | 198 | # Memory management options |
@@ -193,6 +203,8 @@ CONFIG_MEMORY_START=0x08000000 | |||
193 | CONFIG_MEMORY_SIZE=0x08000000 | 203 | CONFIG_MEMORY_SIZE=0x08000000 |
194 | # CONFIG_32BIT is not set | 204 | # CONFIG_32BIT is not set |
195 | CONFIG_VSYSCALL=y | 205 | CONFIG_VSYSCALL=y |
206 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
207 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
196 | CONFIG_PAGE_SIZE_4KB=y | 208 | CONFIG_PAGE_SIZE_4KB=y |
197 | # CONFIG_PAGE_SIZE_8KB is not set | 209 | # CONFIG_PAGE_SIZE_8KB is not set |
198 | # CONFIG_PAGE_SIZE_64KB is not set | 210 | # CONFIG_PAGE_SIZE_64KB is not set |
@@ -210,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
210 | # CONFIG_SPARSEMEM_STATIC is not set | 222 | # CONFIG_SPARSEMEM_STATIC is not set |
211 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 223 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
212 | # CONFIG_RESOURCES_64BIT is not set | 224 | # CONFIG_RESOURCES_64BIT is not set |
225 | CONFIG_ZONE_DMA_FLAG=0 | ||
213 | 226 | ||
214 | # | 227 | # |
215 | # Cache configuration | 228 | # Cache configuration |
@@ -226,20 +239,15 @@ CONFIG_CPU_LITTLE_ENDIAN=y | |||
226 | CONFIG_SH_FPU=y | 239 | CONFIG_SH_FPU=y |
227 | # CONFIG_SH_DSP is not set | 240 | # CONFIG_SH_DSP is not set |
228 | CONFIG_SH_STORE_QUEUES=y | 241 | CONFIG_SH_STORE_QUEUES=y |
242 | CONFIG_SPECULATIVE_EXECUTION=y | ||
229 | CONFIG_CPU_HAS_INTEVT=y | 243 | CONFIG_CPU_HAS_INTEVT=y |
230 | CONFIG_CPU_HAS_INTC2_IRQ=y | 244 | CONFIG_CPU_HAS_INTC2_IRQ=y |
231 | CONFIG_CPU_HAS_SR_RB=y | 245 | CONFIG_CPU_HAS_SR_RB=y |
232 | CONFIG_CPU_HAS_PTEA=y | ||
233 | 246 | ||
234 | # | 247 | # |
235 | # Timer support | 248 | # Timer and clock configuration |
236 | # | 249 | # |
237 | CONFIG_SH_TMU=y | 250 | CONFIG_SH_TMU=y |
238 | |||
239 | # | ||
240 | # R7780RP options | ||
241 | # | ||
242 | CONFIG_SH_R7780MP=y | ||
243 | CONFIG_SH_TIMER_IRQ=28 | 251 | CONFIG_SH_TIMER_IRQ=28 |
244 | CONFIG_NO_IDLE_HZ=y | 252 | CONFIG_NO_IDLE_HZ=y |
245 | CONFIG_SH_PCLK_FREQ=32000000 | 253 | CONFIG_SH_PCLK_FREQ=32000000 |
@@ -262,6 +270,7 @@ CONFIG_SH_PCLK_FREQ=32000000 | |||
262 | # | 270 | # |
263 | # Additional SuperH Device Drivers | 271 | # Additional SuperH Device Drivers |
264 | # | 272 | # |
273 | # CONFIG_HEARTBEAT is not set | ||
265 | CONFIG_PUSH_SWITCH=y | 274 | CONFIG_PUSH_SWITCH=y |
266 | 275 | ||
267 | # | 276 | # |
@@ -269,9 +278,11 @@ CONFIG_PUSH_SWITCH=y | |||
269 | # | 278 | # |
270 | # CONFIG_HZ_100 is not set | 279 | # CONFIG_HZ_100 is not set |
271 | CONFIG_HZ_250=y | 280 | CONFIG_HZ_250=y |
281 | # CONFIG_HZ_300 is not set | ||
272 | # CONFIG_HZ_1000 is not set | 282 | # CONFIG_HZ_1000 is not set |
273 | CONFIG_HZ=250 | 283 | CONFIG_HZ=250 |
274 | CONFIG_KEXEC=y | 284 | CONFIG_KEXEC=y |
285 | # CONFIG_CRASH_DUMP is not set | ||
275 | # CONFIG_SMP is not set | 286 | # CONFIG_SMP is not set |
276 | # CONFIG_PREEMPT_NONE is not set | 287 | # CONFIG_PREEMPT_NONE is not set |
277 | # CONFIG_PREEMPT_VOLUNTARY is not set | 288 | # CONFIG_PREEMPT_VOLUNTARY is not set |
@@ -294,7 +305,6 @@ CONFIG_PCI=y | |||
294 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 305 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
295 | CONFIG_PCI_AUTO=y | 306 | CONFIG_PCI_AUTO=y |
296 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 307 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
297 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | ||
298 | # CONFIG_PCI_DEBUG is not set | 308 | # CONFIG_PCI_DEBUG is not set |
299 | 309 | ||
300 | # | 310 | # |
@@ -334,6 +344,7 @@ CONFIG_UNIX=y | |||
334 | CONFIG_XFRM=y | 344 | CONFIG_XFRM=y |
335 | # CONFIG_XFRM_USER is not set | 345 | # CONFIG_XFRM_USER is not set |
336 | # CONFIG_XFRM_SUB_POLICY is not set | 346 | # CONFIG_XFRM_SUB_POLICY is not set |
347 | # CONFIG_XFRM_MIGRATE is not set | ||
337 | # CONFIG_NET_KEY is not set | 348 | # CONFIG_NET_KEY is not set |
338 | CONFIG_INET=y | 349 | CONFIG_INET=y |
339 | # CONFIG_IP_MULTICAST is not set | 350 | # CONFIG_IP_MULTICAST is not set |
@@ -425,6 +436,7 @@ CONFIG_STANDALONE=y | |||
425 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 436 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
426 | CONFIG_FW_LOADER=m | 437 | CONFIG_FW_LOADER=m |
427 | # CONFIG_DEBUG_DRIVER is not set | 438 | # CONFIG_DEBUG_DRIVER is not set |
439 | # CONFIG_DEBUG_DEVRES is not set | ||
428 | # CONFIG_SYS_HYPERVISOR is not set | 440 | # CONFIG_SYS_HYPERVISOR is not set |
429 | 441 | ||
430 | # | 442 | # |
@@ -445,6 +457,7 @@ CONFIG_FW_LOADER=m | |||
445 | # | 457 | # |
446 | # Plug and Play support | 458 | # Plug and Play support |
447 | # | 459 | # |
460 | # CONFIG_PNPACPI is not set | ||
448 | 461 | ||
449 | # | 462 | # |
450 | # Block devices | 463 | # Block devices |
@@ -461,7 +474,6 @@ CONFIG_BLK_DEV_RAM=y | |||
461 | CONFIG_BLK_DEV_RAM_COUNT=16 | 474 | CONFIG_BLK_DEV_RAM_COUNT=16 |
462 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 475 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
463 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 476 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
464 | # CONFIG_BLK_DEV_INITRD is not set | ||
465 | # CONFIG_CDROM_PKTCDVD is not set | 477 | # CONFIG_CDROM_PKTCDVD is not set |
466 | # CONFIG_ATA_OVER_ETH is not set | 478 | # CONFIG_ATA_OVER_ETH is not set |
467 | 479 | ||
@@ -481,6 +493,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
481 | # | 493 | # |
482 | # CONFIG_RAID_ATTRS is not set | 494 | # CONFIG_RAID_ATTRS is not set |
483 | CONFIG_SCSI=y | 495 | CONFIG_SCSI=y |
496 | # CONFIG_SCSI_TGT is not set | ||
484 | # CONFIG_SCSI_NETLINK is not set | 497 | # CONFIG_SCSI_NETLINK is not set |
485 | CONFIG_SCSI_PROC_FS=y | 498 | CONFIG_SCSI_PROC_FS=y |
486 | 499 | ||
@@ -500,6 +513,7 @@ CONFIG_CHR_DEV_SG=m | |||
500 | # CONFIG_SCSI_MULTI_LUN is not set | 513 | # CONFIG_SCSI_MULTI_LUN is not set |
501 | # CONFIG_SCSI_CONSTANTS is not set | 514 | # CONFIG_SCSI_CONSTANTS is not set |
502 | # CONFIG_SCSI_LOGGING is not set | 515 | # CONFIG_SCSI_LOGGING is not set |
516 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
503 | 517 | ||
504 | # | 518 | # |
505 | # SCSI Transports | 519 | # SCSI Transports |
@@ -544,11 +558,13 @@ CONFIG_CHR_DEV_SG=m | |||
544 | # CONFIG_SCSI_DC390T is not set | 558 | # CONFIG_SCSI_DC390T is not set |
545 | # CONFIG_SCSI_NSP32 is not set | 559 | # CONFIG_SCSI_NSP32 is not set |
546 | # CONFIG_SCSI_DEBUG is not set | 560 | # CONFIG_SCSI_DEBUG is not set |
561 | # CONFIG_SCSI_SRP is not set | ||
547 | 562 | ||
548 | # | 563 | # |
549 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | 564 | # Serial ATA (prod) and Parallel ATA (experimental) drivers |
550 | # | 565 | # |
551 | CONFIG_ATA=y | 566 | CONFIG_ATA=y |
567 | # CONFIG_ATA_NONSTANDARD is not set | ||
552 | # CONFIG_SATA_AHCI is not set | 568 | # CONFIG_SATA_AHCI is not set |
553 | # CONFIG_SATA_SVW is not set | 569 | # CONFIG_SATA_SVW is not set |
554 | # CONFIG_ATA_PIIX is not set | 570 | # CONFIG_ATA_PIIX is not set |
@@ -564,6 +580,7 @@ CONFIG_SATA_SIL=y | |||
564 | # CONFIG_SATA_ULI is not set | 580 | # CONFIG_SATA_ULI is not set |
565 | # CONFIG_SATA_VIA is not set | 581 | # CONFIG_SATA_VIA is not set |
566 | # CONFIG_SATA_VITESSE is not set | 582 | # CONFIG_SATA_VITESSE is not set |
583 | # CONFIG_SATA_INIC162X is not set | ||
567 | # CONFIG_PATA_ALI is not set | 584 | # CONFIG_PATA_ALI is not set |
568 | # CONFIG_PATA_AMD is not set | 585 | # CONFIG_PATA_AMD is not set |
569 | # CONFIG_PATA_ARTOP is not set | 586 | # CONFIG_PATA_ARTOP is not set |
@@ -579,6 +596,7 @@ CONFIG_SATA_SIL=y | |||
579 | # CONFIG_PATA_HPT3X2N is not set | 596 | # CONFIG_PATA_HPT3X2N is not set |
580 | # CONFIG_PATA_HPT3X3 is not set | 597 | # CONFIG_PATA_HPT3X3 is not set |
581 | # CONFIG_PATA_IT821X is not set | 598 | # CONFIG_PATA_IT821X is not set |
599 | # CONFIG_PATA_IT8213 is not set | ||
582 | # CONFIG_PATA_JMICRON is not set | 600 | # CONFIG_PATA_JMICRON is not set |
583 | # CONFIG_PATA_TRIFLEX is not set | 601 | # CONFIG_PATA_TRIFLEX is not set |
584 | # CONFIG_PATA_MARVELL is not set | 602 | # CONFIG_PATA_MARVELL is not set |
@@ -685,6 +703,7 @@ CONFIG_8139TOO_8129=y | |||
685 | CONFIG_VIA_RHINE=m | 703 | CONFIG_VIA_RHINE=m |
686 | CONFIG_VIA_RHINE_MMIO=y | 704 | CONFIG_VIA_RHINE_MMIO=y |
687 | # CONFIG_VIA_RHINE_NAPI is not set | 705 | # CONFIG_VIA_RHINE_NAPI is not set |
706 | # CONFIG_SC92031 is not set | ||
688 | 707 | ||
689 | # | 708 | # |
690 | # Ethernet (1000 Mbit) | 709 | # Ethernet (1000 Mbit) |
@@ -707,11 +726,13 @@ CONFIG_R8169=y | |||
707 | # CONFIG_TIGON3 is not set | 726 | # CONFIG_TIGON3 is not set |
708 | # CONFIG_BNX2 is not set | 727 | # CONFIG_BNX2 is not set |
709 | # CONFIG_QLA3XXX is not set | 728 | # CONFIG_QLA3XXX is not set |
729 | # CONFIG_ATL1 is not set | ||
710 | 730 | ||
711 | # | 731 | # |
712 | # Ethernet (10000 Mbit) | 732 | # Ethernet (10000 Mbit) |
713 | # | 733 | # |
714 | # CONFIG_CHELSIO_T1 is not set | 734 | # CONFIG_CHELSIO_T1 is not set |
735 | # CONFIG_CHELSIO_T3 is not set | ||
715 | # CONFIG_IXGB is not set | 736 | # CONFIG_IXGB is not set |
716 | # CONFIG_S2IO is not set | 737 | # CONFIG_S2IO is not set |
717 | # CONFIG_MYRI10GE is not set | 738 | # CONFIG_MYRI10GE is not set |
@@ -889,10 +910,16 @@ CONFIG_HWMON=y | |||
889 | # CONFIG_HWMON_VID is not set | 910 | # CONFIG_HWMON_VID is not set |
890 | # CONFIG_SENSORS_ABITUGURU is not set | 911 | # CONFIG_SENSORS_ABITUGURU is not set |
891 | # CONFIG_SENSORS_F71805F is not set | 912 | # CONFIG_SENSORS_F71805F is not set |
913 | # CONFIG_SENSORS_PC87427 is not set | ||
892 | # CONFIG_SENSORS_VT1211 is not set | 914 | # CONFIG_SENSORS_VT1211 is not set |
893 | # CONFIG_HWMON_DEBUG_CHIP is not set | 915 | # CONFIG_HWMON_DEBUG_CHIP is not set |
894 | 916 | ||
895 | # | 917 | # |
918 | # Multifunction device drivers | ||
919 | # | ||
920 | # CONFIG_MFD_SM501 is not set | ||
921 | |||
922 | # | ||
896 | # Multimedia devices | 923 | # Multimedia devices |
897 | # | 924 | # |
898 | # CONFIG_VIDEO_DEV is not set | 925 | # CONFIG_VIDEO_DEV is not set |
@@ -905,9 +932,8 @@ CONFIG_HWMON=y | |||
905 | # | 932 | # |
906 | # Graphics support | 933 | # Graphics support |
907 | # | 934 | # |
908 | CONFIG_FIRMWARE_EDID=y | ||
909 | # CONFIG_FB is not set | ||
910 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 935 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
936 | # CONFIG_FB is not set | ||
911 | 937 | ||
912 | # | 938 | # |
913 | # Sound | 939 | # Sound |
@@ -923,9 +949,8 @@ CONFIG_SOUND=m | |||
923 | # Open Sound System | 949 | # Open Sound System |
924 | # | 950 | # |
925 | CONFIG_SOUND_PRIME=m | 951 | CONFIG_SOUND_PRIME=m |
926 | # CONFIG_OSS_OBSOLETE_DRIVER is not set | 952 | # CONFIG_OBSOLETE_OSS is not set |
927 | # CONFIG_SOUND_BT878 is not set | 953 | # CONFIG_SOUND_BT878 is not set |
928 | # CONFIG_SOUND_ES1371 is not set | ||
929 | # CONFIG_SOUND_ICH is not set | 954 | # CONFIG_SOUND_ICH is not set |
930 | # CONFIG_SOUND_TRIDENT is not set | 955 | # CONFIG_SOUND_TRIDENT is not set |
931 | # CONFIG_SOUND_MSNDCLAS is not set | 956 | # CONFIG_SOUND_MSNDCLAS is not set |
@@ -933,6 +958,12 @@ CONFIG_SOUND_PRIME=m | |||
933 | # CONFIG_SOUND_VIA82CXXX is not set | 958 | # CONFIG_SOUND_VIA82CXXX is not set |
934 | 959 | ||
935 | # | 960 | # |
961 | # HID Devices | ||
962 | # | ||
963 | CONFIG_HID=y | ||
964 | # CONFIG_HID_DEBUG is not set | ||
965 | |||
966 | # | ||
936 | # USB support | 967 | # USB support |
937 | # | 968 | # |
938 | CONFIG_USB_ARCH_HAS_HCD=y | 969 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -1017,6 +1048,14 @@ CONFIG_RTC_DRV_SH=y | |||
1017 | # | 1048 | # |
1018 | 1049 | ||
1019 | # | 1050 | # |
1051 | # Auxiliary Display support | ||
1052 | # | ||
1053 | |||
1054 | # | ||
1055 | # Virtualization | ||
1056 | # | ||
1057 | |||
1058 | # | ||
1020 | # File systems | 1059 | # File systems |
1021 | # | 1060 | # |
1022 | CONFIG_EXT2_FS=y | 1061 | CONFIG_EXT2_FS=y |
@@ -1175,6 +1214,11 @@ CONFIG_NLS_ISO8859_1=y | |||
1175 | # CONFIG_NLS_UTF8 is not set | 1214 | # CONFIG_NLS_UTF8 is not set |
1176 | 1215 | ||
1177 | # | 1216 | # |
1217 | # Distributed Lock Manager | ||
1218 | # | ||
1219 | # CONFIG_DLM is not set | ||
1220 | |||
1221 | # | ||
1178 | # Profiling support | 1222 | # Profiling support |
1179 | # | 1223 | # |
1180 | CONFIG_PROFILING=y | 1224 | CONFIG_PROFILING=y |
@@ -1184,19 +1228,22 @@ CONFIG_OPROFILE=m | |||
1184 | # Kernel hacking | 1228 | # Kernel hacking |
1185 | # | 1229 | # |
1186 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1230 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
1187 | CONFIG_PRINTK_TIME=y | 1231 | # CONFIG_PRINTK_TIME is not set |
1188 | CONFIG_ENABLE_MUST_CHECK=y | 1232 | CONFIG_ENABLE_MUST_CHECK=y |
1189 | CONFIG_MAGIC_SYSRQ=y | 1233 | CONFIG_MAGIC_SYSRQ=y |
1190 | # CONFIG_UNUSED_SYMBOLS is not set | 1234 | # CONFIG_UNUSED_SYMBOLS is not set |
1235 | CONFIG_DEBUG_FS=y | ||
1236 | # CONFIG_HEADERS_CHECK is not set | ||
1191 | CONFIG_DEBUG_KERNEL=y | 1237 | CONFIG_DEBUG_KERNEL=y |
1238 | # CONFIG_DEBUG_SHIRQ is not set | ||
1192 | CONFIG_LOG_BUF_SHIFT=14 | 1239 | CONFIG_LOG_BUF_SHIFT=14 |
1193 | CONFIG_DETECT_SOFTLOCKUP=y | 1240 | CONFIG_DETECT_SOFTLOCKUP=y |
1194 | # CONFIG_SCHEDSTATS is not set | 1241 | # CONFIG_SCHEDSTATS is not set |
1242 | # CONFIG_TIMER_STATS is not set | ||
1195 | # CONFIG_DEBUG_SLAB is not set | 1243 | # CONFIG_DEBUG_SLAB is not set |
1196 | # CONFIG_DEBUG_PREEMPT is not set | 1244 | # CONFIG_DEBUG_PREEMPT is not set |
1197 | # CONFIG_DEBUG_SPINLOCK is not set | 1245 | # CONFIG_DEBUG_SPINLOCK is not set |
1198 | # CONFIG_DEBUG_MUTEXES is not set | 1246 | # CONFIG_DEBUG_MUTEXES is not set |
1199 | # CONFIG_DEBUG_RWSEMS is not set | ||
1200 | # CONFIG_DEBUG_LOCK_ALLOC is not set | 1247 | # CONFIG_DEBUG_LOCK_ALLOC is not set |
1201 | # CONFIG_PROVE_LOCKING is not set | 1248 | # CONFIG_PROVE_LOCKING is not set |
1202 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1249 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
@@ -1204,19 +1251,19 @@ CONFIG_DETECT_SOFTLOCKUP=y | |||
1204 | # CONFIG_DEBUG_KOBJECT is not set | 1251 | # CONFIG_DEBUG_KOBJECT is not set |
1205 | CONFIG_DEBUG_BUGVERBOSE=y | 1252 | CONFIG_DEBUG_BUGVERBOSE=y |
1206 | CONFIG_DEBUG_INFO=y | 1253 | CONFIG_DEBUG_INFO=y |
1207 | CONFIG_DEBUG_FS=y | ||
1208 | # CONFIG_DEBUG_VM is not set | 1254 | # CONFIG_DEBUG_VM is not set |
1209 | # CONFIG_DEBUG_LIST is not set | 1255 | # CONFIG_DEBUG_LIST is not set |
1210 | CONFIG_FRAME_POINTER=y | 1256 | # CONFIG_FRAME_POINTER is not set |
1211 | CONFIG_FORCED_INLINING=y | 1257 | CONFIG_FORCED_INLINING=y |
1212 | # CONFIG_HEADERS_CHECK is not set | ||
1213 | # CONFIG_RCU_TORTURE_TEST is not set | 1258 | # CONFIG_RCU_TORTURE_TEST is not set |
1214 | # CONFIG_SH_STANDARD_BIOS is not set | 1259 | # CONFIG_FAULT_INJECTION is not set |
1260 | CONFIG_SH_STANDARD_BIOS=y | ||
1215 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1261 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
1262 | CONFIG_EARLY_PRINTK=y | ||
1216 | CONFIG_DEBUG_STACKOVERFLOW=y | 1263 | CONFIG_DEBUG_STACKOVERFLOW=y |
1217 | # CONFIG_DEBUG_STACK_USAGE is not set | 1264 | # CONFIG_DEBUG_STACK_USAGE is not set |
1218 | # CONFIG_4KSTACKS is not set | 1265 | # CONFIG_4KSTACKS is not set |
1219 | # CONFIG_KGDB is not set | 1266 | # CONFIG_SH_KGDB is not set |
1220 | 1267 | ||
1221 | # | 1268 | # |
1222 | # Security options | 1269 | # Security options |
@@ -1233,6 +1280,7 @@ CONFIG_CRYPTO_BLKCIPHER=y | |||
1233 | CONFIG_CRYPTO_HASH=y | 1280 | CONFIG_CRYPTO_HASH=y |
1234 | CONFIG_CRYPTO_MANAGER=y | 1281 | CONFIG_CRYPTO_MANAGER=y |
1235 | CONFIG_CRYPTO_HMAC=y | 1282 | CONFIG_CRYPTO_HMAC=y |
1283 | # CONFIG_CRYPTO_XCBC is not set | ||
1236 | # CONFIG_CRYPTO_NULL is not set | 1284 | # CONFIG_CRYPTO_NULL is not set |
1237 | # CONFIG_CRYPTO_MD4 is not set | 1285 | # CONFIG_CRYPTO_MD4 is not set |
1238 | CONFIG_CRYPTO_MD5=y | 1286 | CONFIG_CRYPTO_MD5=y |
@@ -1241,9 +1289,13 @@ CONFIG_CRYPTO_MD5=y | |||
1241 | # CONFIG_CRYPTO_SHA512 is not set | 1289 | # CONFIG_CRYPTO_SHA512 is not set |
1242 | # CONFIG_CRYPTO_WP512 is not set | 1290 | # CONFIG_CRYPTO_WP512 is not set |
1243 | # CONFIG_CRYPTO_TGR192 is not set | 1291 | # CONFIG_CRYPTO_TGR192 is not set |
1292 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1244 | CONFIG_CRYPTO_ECB=m | 1293 | CONFIG_CRYPTO_ECB=m |
1245 | CONFIG_CRYPTO_CBC=y | 1294 | CONFIG_CRYPTO_CBC=y |
1295 | CONFIG_CRYPTO_PCBC=m | ||
1296 | # CONFIG_CRYPTO_LRW is not set | ||
1246 | CONFIG_CRYPTO_DES=y | 1297 | CONFIG_CRYPTO_DES=y |
1298 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1247 | # CONFIG_CRYPTO_BLOWFISH is not set | 1299 | # CONFIG_CRYPTO_BLOWFISH is not set |
1248 | # CONFIG_CRYPTO_TWOFISH is not set | 1300 | # CONFIG_CRYPTO_TWOFISH is not set |
1249 | # CONFIG_CRYPTO_SERPENT is not set | 1301 | # CONFIG_CRYPTO_SERPENT is not set |
@@ -1257,6 +1309,7 @@ CONFIG_CRYPTO_DES=y | |||
1257 | # CONFIG_CRYPTO_DEFLATE is not set | 1309 | # CONFIG_CRYPTO_DEFLATE is not set |
1258 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1310 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1259 | # CONFIG_CRYPTO_CRC32C is not set | 1311 | # CONFIG_CRYPTO_CRC32C is not set |
1312 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1260 | # CONFIG_CRYPTO_TEST is not set | 1313 | # CONFIG_CRYPTO_TEST is not set |
1261 | 1314 | ||
1262 | # | 1315 | # |
@@ -1266,7 +1319,10 @@ CONFIG_CRYPTO_DES=y | |||
1266 | # | 1319 | # |
1267 | # Library routines | 1320 | # Library routines |
1268 | # | 1321 | # |
1322 | CONFIG_BITREVERSE=y | ||
1269 | # CONFIG_CRC_CCITT is not set | 1323 | # CONFIG_CRC_CCITT is not set |
1270 | # CONFIG_CRC16 is not set | 1324 | # CONFIG_CRC16 is not set |
1271 | CONFIG_CRC32=y | 1325 | CONFIG_CRC32=y |
1272 | # CONFIG_LIBCRC32C is not set | 1326 | # CONFIG_LIBCRC32C is not set |
1327 | CONFIG_HAS_IOMEM=y | ||
1328 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig new file mode 100644 index 000000000000..0f5ec649daf8 --- /dev/null +++ b/arch/sh/configs/r7785rp_defconfig | |||
@@ -0,0 +1,1334 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.21-rc3 | ||
4 | # Mon Mar 12 14:26:33 2007 | ||
5 | # | ||
6 | CONFIG_SUPERH=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | CONFIG_GENERIC_BUG=y | ||
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
10 | CONFIG_GENERIC_HWEIGHT=y | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
20 | |||
21 | # | ||
22 | # Code maturity level options | ||
23 | # | ||
24 | CONFIG_EXPERIMENTAL=y | ||
25 | CONFIG_BROKEN_ON_SMP=y | ||
26 | CONFIG_LOCK_KERNEL=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SWAP=y | ||
35 | CONFIG_SYSVIPC=y | ||
36 | # CONFIG_IPC_NS is not set | ||
37 | CONFIG_SYSVIPC_SYSCTL=y | ||
38 | # CONFIG_POSIX_MQUEUE is not set | ||
39 | CONFIG_BSD_PROCESS_ACCT=y | ||
40 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
41 | # CONFIG_TASKSTATS is not set | ||
42 | # CONFIG_UTS_NS is not set | ||
43 | # CONFIG_AUDIT is not set | ||
44 | CONFIG_IKCONFIG=y | ||
45 | CONFIG_IKCONFIG_PROC=y | ||
46 | # CONFIG_SYSFS_DEPRECATED is not set | ||
47 | # CONFIG_RELAY is not set | ||
48 | # CONFIG_BLK_DEV_INITRD is not set | ||
49 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
50 | CONFIG_SYSCTL=y | ||
51 | CONFIG_EMBEDDED=y | ||
52 | CONFIG_UID16=y | ||
53 | # CONFIG_SYSCTL_SYSCALL is not set | ||
54 | CONFIG_KALLSYMS=y | ||
55 | CONFIG_KALLSYMS_ALL=y | ||
56 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
57 | CONFIG_HOTPLUG=y | ||
58 | CONFIG_PRINTK=y | ||
59 | CONFIG_BUG=y | ||
60 | CONFIG_ELF_CORE=y | ||
61 | CONFIG_BASE_FULL=y | ||
62 | # CONFIG_FUTEX is not set | ||
63 | # CONFIG_EPOLL is not set | ||
64 | CONFIG_SHMEM=y | ||
65 | CONFIG_SLAB=y | ||
66 | CONFIG_VM_EVENT_COUNTERS=y | ||
67 | # CONFIG_TINY_SHMEM is not set | ||
68 | CONFIG_BASE_SMALL=0 | ||
69 | # CONFIG_SLOB is not set | ||
70 | |||
71 | # | ||
72 | # Loadable module support | ||
73 | # | ||
74 | CONFIG_MODULES=y | ||
75 | CONFIG_MODULE_UNLOAD=y | ||
76 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
77 | # CONFIG_MODVERSIONS is not set | ||
78 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
79 | CONFIG_KMOD=y | ||
80 | |||
81 | # | ||
82 | # Block layer | ||
83 | # | ||
84 | CONFIG_BLOCK=y | ||
85 | # CONFIG_LBD is not set | ||
86 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
87 | # CONFIG_LSF is not set | ||
88 | |||
89 | # | ||
90 | # IO Schedulers | ||
91 | # | ||
92 | CONFIG_IOSCHED_NOOP=y | ||
93 | # CONFIG_IOSCHED_AS is not set | ||
94 | # CONFIG_IOSCHED_DEADLINE is not set | ||
95 | # CONFIG_IOSCHED_CFQ is not set | ||
96 | # CONFIG_DEFAULT_AS is not set | ||
97 | # CONFIG_DEFAULT_DEADLINE is not set | ||
98 | # CONFIG_DEFAULT_CFQ is not set | ||
99 | CONFIG_DEFAULT_NOOP=y | ||
100 | CONFIG_DEFAULT_IOSCHED="noop" | ||
101 | |||
102 | # | ||
103 | # System type | ||
104 | # | ||
105 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
106 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
107 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
108 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
109 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
110 | # CONFIG_SH_7751_SYSTEMH is not set | ||
111 | # CONFIG_SH_HP6XX is not set | ||
112 | # CONFIG_SH_SATURN is not set | ||
113 | # CONFIG_SH_DREAMCAST is not set | ||
114 | # CONFIG_SH_MPC1211 is not set | ||
115 | # CONFIG_SH_SH03 is not set | ||
116 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
117 | # CONFIG_SH_HS7751RVOIP is not set | ||
118 | # CONFIG_SH_7710VOIPGW is not set | ||
119 | # CONFIG_SH_RTS7751R2D is not set | ||
120 | CONFIG_SH_HIGHLANDER=y | ||
121 | # CONFIG_SH_EDOSK7705 is not set | ||
122 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
123 | # CONFIG_SH_LANDISK is not set | ||
124 | # CONFIG_SH_TITAN is not set | ||
125 | # CONFIG_SH_SHMIN is not set | ||
126 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
127 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
128 | # CONFIG_SH_UNKNOWN is not set | ||
129 | # CONFIG_SH_R7780RP is not set | ||
130 | # CONFIG_SH_R7780MP is not set | ||
131 | CONFIG_SH_R7785RP=y | ||
132 | |||
133 | # | ||
134 | # Processor selection | ||
135 | # | ||
136 | CONFIG_CPU_SH4=y | ||
137 | CONFIG_CPU_SH4A=y | ||
138 | CONFIG_CPU_SHX2=y | ||
139 | |||
140 | # | ||
141 | # SH-2 Processor Support | ||
142 | # | ||
143 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
144 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
145 | |||
146 | # | ||
147 | # SH-2A Processor Support | ||
148 | # | ||
149 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
150 | |||
151 | # | ||
152 | # SH-3 Processor Support | ||
153 | # | ||
154 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
155 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||
156 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||
157 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||
161 | |||
162 | # | ||
163 | # SH-4 Processor Support | ||
164 | # | ||
165 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||
166 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||
167 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||
168 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | ||
169 | # CONFIG_CPU_SUBTYPE_SH7751 is not set | ||
170 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | ||
171 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | ||
172 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | ||
173 | |||
174 | # | ||
175 | # ST40 Processor Support | ||
176 | # | ||
177 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
178 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
179 | |||
180 | # | ||
181 | # SH-4A Processor Support | ||
182 | # | ||
183 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | ||
184 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | ||
185 | CONFIG_CPU_SUBTYPE_SH7785=y | ||
186 | |||
187 | # | ||
188 | # SH4AL-DSP Processor Support | ||
189 | # | ||
190 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
191 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||
192 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
193 | |||
194 | # | ||
195 | # Memory management options | ||
196 | # | ||
197 | CONFIG_MMU=y | ||
198 | CONFIG_PAGE_OFFSET=0x80000000 | ||
199 | CONFIG_MEMORY_START=0x08000000 | ||
200 | CONFIG_MEMORY_SIZE=0x08000000 | ||
201 | CONFIG_32BIT=y | ||
202 | # CONFIG_X2TLB is not set | ||
203 | CONFIG_VSYSCALL=y | ||
204 | CONFIG_PAGE_SIZE_4KB=y | ||
205 | # CONFIG_PAGE_SIZE_8KB is not set | ||
206 | # CONFIG_PAGE_SIZE_64KB is not set | ||
207 | # CONFIG_HUGETLB_PAGE_SIZE_64K is not set | ||
208 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set | ||
209 | CONFIG_HUGETLB_PAGE_SIZE_1MB=y | ||
210 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | ||
211 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | ||
212 | CONFIG_SELECT_MEMORY_MODEL=y | ||
213 | CONFIG_FLATMEM_MANUAL=y | ||
214 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
215 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
216 | CONFIG_FLATMEM=y | ||
217 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
218 | # CONFIG_SPARSEMEM_STATIC is not set | ||
219 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
220 | # CONFIG_RESOURCES_64BIT is not set | ||
221 | CONFIG_ZONE_DMA_FLAG=0 | ||
222 | |||
223 | # | ||
224 | # Cache configuration | ||
225 | # | ||
226 | # CONFIG_SH_DIRECT_MAPPED is not set | ||
227 | # CONFIG_SH_WRITETHROUGH is not set | ||
228 | # CONFIG_SH_OCRAM is not set | ||
229 | |||
230 | # | ||
231 | # Processor features | ||
232 | # | ||
233 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
234 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
235 | CONFIG_SH_FPU=y | ||
236 | # CONFIG_SH_DSP is not set | ||
237 | CONFIG_SH_STORE_QUEUES=y | ||
238 | CONFIG_CPU_HAS_INTEVT=y | ||
239 | CONFIG_CPU_HAS_INTC2_IRQ=y | ||
240 | CONFIG_CPU_HAS_SR_RB=y | ||
241 | CONFIG_CPU_HAS_PTEA=y | ||
242 | |||
243 | # | ||
244 | # Timer and clock configuration | ||
245 | # | ||
246 | CONFIG_SH_TMU=y | ||
247 | CONFIG_SH_TIMER_IRQ=28 | ||
248 | CONFIG_NO_IDLE_HZ=y | ||
249 | CONFIG_SH_PCLK_FREQ=50000000 | ||
250 | |||
251 | # | ||
252 | # CPU Frequency scaling | ||
253 | # | ||
254 | # CONFIG_CPU_FREQ is not set | ||
255 | |||
256 | # | ||
257 | # DMA support | ||
258 | # | ||
259 | # CONFIG_SH_DMA is not set | ||
260 | |||
261 | # | ||
262 | # Companion Chips | ||
263 | # | ||
264 | # CONFIG_HD6446X_SERIES is not set | ||
265 | |||
266 | # | ||
267 | # Additional SuperH Device Drivers | ||
268 | # | ||
269 | CONFIG_HEARTBEAT=y | ||
270 | CONFIG_PUSH_SWITCH=y | ||
271 | |||
272 | # | ||
273 | # Kernel features | ||
274 | # | ||
275 | # CONFIG_HZ_100 is not set | ||
276 | CONFIG_HZ_250=y | ||
277 | # CONFIG_HZ_300 is not set | ||
278 | # CONFIG_HZ_1000 is not set | ||
279 | CONFIG_HZ=250 | ||
280 | CONFIG_KEXEC=y | ||
281 | # CONFIG_SMP is not set | ||
282 | # CONFIG_PREEMPT_NONE is not set | ||
283 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
284 | CONFIG_PREEMPT=y | ||
285 | CONFIG_PREEMPT_BKL=y | ||
286 | |||
287 | # | ||
288 | # Boot options | ||
289 | # | ||
290 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||
291 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||
292 | # CONFIG_UBC_WAKEUP is not set | ||
293 | CONFIG_CMDLINE_BOOL=y | ||
294 | CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" | ||
295 | |||
296 | # | ||
297 | # Bus options | ||
298 | # | ||
299 | CONFIG_PCI=y | ||
300 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
301 | CONFIG_PCI_AUTO=y | ||
302 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | ||
303 | # CONFIG_PCI_DEBUG is not set | ||
304 | |||
305 | # | ||
306 | # PCCARD (PCMCIA/CardBus) support | ||
307 | # | ||
308 | # CONFIG_PCCARD is not set | ||
309 | |||
310 | # | ||
311 | # PCI Hotplug Support | ||
312 | # | ||
313 | # CONFIG_HOTPLUG_PCI is not set | ||
314 | |||
315 | # | ||
316 | # Executable file formats | ||
317 | # | ||
318 | CONFIG_BINFMT_ELF=y | ||
319 | # CONFIG_BINFMT_FLAT is not set | ||
320 | # CONFIG_BINFMT_MISC is not set | ||
321 | |||
322 | # | ||
323 | # Power management options (EXPERIMENTAL) | ||
324 | # | ||
325 | # CONFIG_PM is not set | ||
326 | |||
327 | # | ||
328 | # Networking | ||
329 | # | ||
330 | CONFIG_NET=y | ||
331 | |||
332 | # | ||
333 | # Networking options | ||
334 | # | ||
335 | # CONFIG_NETDEBUG is not set | ||
336 | CONFIG_PACKET=y | ||
337 | # CONFIG_PACKET_MMAP is not set | ||
338 | CONFIG_UNIX=y | ||
339 | CONFIG_XFRM=y | ||
340 | # CONFIG_XFRM_USER is not set | ||
341 | # CONFIG_XFRM_SUB_POLICY is not set | ||
342 | # CONFIG_XFRM_MIGRATE is not set | ||
343 | # CONFIG_NET_KEY is not set | ||
344 | CONFIG_INET=y | ||
345 | # CONFIG_IP_MULTICAST is not set | ||
346 | CONFIG_IP_ADVANCED_ROUTER=y | ||
347 | CONFIG_ASK_IP_FIB_HASH=y | ||
348 | # CONFIG_IP_FIB_TRIE is not set | ||
349 | CONFIG_IP_FIB_HASH=y | ||
350 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
351 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
352 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
353 | CONFIG_IP_PNP=y | ||
354 | CONFIG_IP_PNP_DHCP=y | ||
355 | # CONFIG_IP_PNP_BOOTP is not set | ||
356 | # CONFIG_IP_PNP_RARP is not set | ||
357 | # CONFIG_NET_IPIP is not set | ||
358 | # CONFIG_NET_IPGRE is not set | ||
359 | # CONFIG_ARPD is not set | ||
360 | # CONFIG_SYN_COOKIES is not set | ||
361 | # CONFIG_INET_AH is not set | ||
362 | # CONFIG_INET_ESP is not set | ||
363 | # CONFIG_INET_IPCOMP is not set | ||
364 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
365 | # CONFIG_INET_TUNNEL is not set | ||
366 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
367 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
368 | CONFIG_INET_XFRM_MODE_BEET=y | ||
369 | CONFIG_INET_DIAG=y | ||
370 | CONFIG_INET_TCP_DIAG=y | ||
371 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
372 | CONFIG_TCP_CONG_CUBIC=y | ||
373 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
374 | # CONFIG_TCP_MD5SIG is not set | ||
375 | # CONFIG_IPV6 is not set | ||
376 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
377 | # CONFIG_INET6_TUNNEL is not set | ||
378 | # CONFIG_NETWORK_SECMARK is not set | ||
379 | # CONFIG_NETFILTER is not set | ||
380 | |||
381 | # | ||
382 | # DCCP Configuration (EXPERIMENTAL) | ||
383 | # | ||
384 | # CONFIG_IP_DCCP is not set | ||
385 | |||
386 | # | ||
387 | # SCTP Configuration (EXPERIMENTAL) | ||
388 | # | ||
389 | # CONFIG_IP_SCTP is not set | ||
390 | |||
391 | # | ||
392 | # TIPC Configuration (EXPERIMENTAL) | ||
393 | # | ||
394 | # CONFIG_TIPC is not set | ||
395 | # CONFIG_ATM is not set | ||
396 | CONFIG_BRIDGE=m | ||
397 | # CONFIG_VLAN_8021Q is not set | ||
398 | # CONFIG_DECNET is not set | ||
399 | CONFIG_LLC=m | ||
400 | # CONFIG_LLC2 is not set | ||
401 | # CONFIG_IPX is not set | ||
402 | # CONFIG_ATALK is not set | ||
403 | # CONFIG_X25 is not set | ||
404 | # CONFIG_LAPB is not set | ||
405 | # CONFIG_ECONET is not set | ||
406 | # CONFIG_WAN_ROUTER is not set | ||
407 | |||
408 | # | ||
409 | # QoS and/or fair queueing | ||
410 | # | ||
411 | # CONFIG_NET_SCHED is not set | ||
412 | |||
413 | # | ||
414 | # Network testing | ||
415 | # | ||
416 | # CONFIG_NET_PKTGEN is not set | ||
417 | # CONFIG_HAMRADIO is not set | ||
418 | # CONFIG_IRDA is not set | ||
419 | # CONFIG_BT is not set | ||
420 | # CONFIG_IEEE80211 is not set | ||
421 | CONFIG_WIRELESS_EXT=y | ||
422 | |||
423 | # | ||
424 | # Device Drivers | ||
425 | # | ||
426 | |||
427 | # | ||
428 | # Generic Driver Options | ||
429 | # | ||
430 | CONFIG_STANDALONE=y | ||
431 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
432 | CONFIG_FW_LOADER=m | ||
433 | # CONFIG_DEBUG_DRIVER is not set | ||
434 | # CONFIG_DEBUG_DEVRES is not set | ||
435 | # CONFIG_SYS_HYPERVISOR is not set | ||
436 | |||
437 | # | ||
438 | # Connector - unified userspace <-> kernelspace linker | ||
439 | # | ||
440 | # CONFIG_CONNECTOR is not set | ||
441 | |||
442 | # | ||
443 | # Memory Technology Devices (MTD) | ||
444 | # | ||
445 | # CONFIG_MTD is not set | ||
446 | |||
447 | # | ||
448 | # Parallel port support | ||
449 | # | ||
450 | # CONFIG_PARPORT is not set | ||
451 | |||
452 | # | ||
453 | # Plug and Play support | ||
454 | # | ||
455 | # CONFIG_PNPACPI is not set | ||
456 | |||
457 | # | ||
458 | # Block devices | ||
459 | # | ||
460 | # CONFIG_BLK_CPQ_DA is not set | ||
461 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
462 | # CONFIG_BLK_DEV_DAC960 is not set | ||
463 | # CONFIG_BLK_DEV_UMEM is not set | ||
464 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
465 | # CONFIG_BLK_DEV_LOOP is not set | ||
466 | # CONFIG_BLK_DEV_NBD is not set | ||
467 | # CONFIG_BLK_DEV_SX8 is not set | ||
468 | CONFIG_BLK_DEV_RAM=y | ||
469 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
470 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
471 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
472 | # CONFIG_CDROM_PKTCDVD is not set | ||
473 | # CONFIG_ATA_OVER_ETH is not set | ||
474 | |||
475 | # | ||
476 | # Misc devices | ||
477 | # | ||
478 | # CONFIG_SGI_IOC4 is not set | ||
479 | # CONFIG_TIFM_CORE is not set | ||
480 | |||
481 | # | ||
482 | # ATA/ATAPI/MFM/RLL support | ||
483 | # | ||
484 | # CONFIG_IDE is not set | ||
485 | |||
486 | # | ||
487 | # SCSI device support | ||
488 | # | ||
489 | # CONFIG_RAID_ATTRS is not set | ||
490 | CONFIG_SCSI=y | ||
491 | # CONFIG_SCSI_TGT is not set | ||
492 | # CONFIG_SCSI_NETLINK is not set | ||
493 | CONFIG_SCSI_PROC_FS=y | ||
494 | |||
495 | # | ||
496 | # SCSI support type (disk, tape, CD-ROM) | ||
497 | # | ||
498 | CONFIG_BLK_DEV_SD=y | ||
499 | # CONFIG_CHR_DEV_ST is not set | ||
500 | # CONFIG_CHR_DEV_OSST is not set | ||
501 | # CONFIG_BLK_DEV_SR is not set | ||
502 | CONFIG_CHR_DEV_SG=m | ||
503 | # CONFIG_CHR_DEV_SCH is not set | ||
504 | |||
505 | # | ||
506 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
507 | # | ||
508 | # CONFIG_SCSI_MULTI_LUN is not set | ||
509 | # CONFIG_SCSI_CONSTANTS is not set | ||
510 | # CONFIG_SCSI_LOGGING is not set | ||
511 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
512 | |||
513 | # | ||
514 | # SCSI Transports | ||
515 | # | ||
516 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
517 | # CONFIG_SCSI_FC_ATTRS is not set | ||
518 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
519 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
520 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
521 | |||
522 | # | ||
523 | # SCSI low-level drivers | ||
524 | # | ||
525 | # CONFIG_ISCSI_TCP is not set | ||
526 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
527 | # CONFIG_SCSI_3W_9XXX is not set | ||
528 | # CONFIG_SCSI_ACARD is not set | ||
529 | # CONFIG_SCSI_AACRAID is not set | ||
530 | # CONFIG_SCSI_AIC7XXX is not set | ||
531 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
532 | # CONFIG_SCSI_AIC79XX is not set | ||
533 | # CONFIG_SCSI_AIC94XX is not set | ||
534 | # CONFIG_SCSI_DPT_I2O is not set | ||
535 | # CONFIG_SCSI_ARCMSR is not set | ||
536 | # CONFIG_MEGARAID_NEWGEN is not set | ||
537 | # CONFIG_MEGARAID_LEGACY is not set | ||
538 | # CONFIG_MEGARAID_SAS is not set | ||
539 | # CONFIG_SCSI_HPTIOP is not set | ||
540 | # CONFIG_SCSI_DMX3191D is not set | ||
541 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
542 | # CONFIG_SCSI_IPS is not set | ||
543 | # CONFIG_SCSI_INITIO is not set | ||
544 | # CONFIG_SCSI_INIA100 is not set | ||
545 | # CONFIG_SCSI_STEX is not set | ||
546 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
547 | # CONFIG_SCSI_IPR is not set | ||
548 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
549 | # CONFIG_SCSI_QLA_FC is not set | ||
550 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
551 | # CONFIG_SCSI_LPFC is not set | ||
552 | # CONFIG_SCSI_DC395x is not set | ||
553 | # CONFIG_SCSI_DC390T is not set | ||
554 | # CONFIG_SCSI_NSP32 is not set | ||
555 | # CONFIG_SCSI_DEBUG is not set | ||
556 | # CONFIG_SCSI_SRP is not set | ||
557 | |||
558 | # | ||
559 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
560 | # | ||
561 | CONFIG_ATA=y | ||
562 | # CONFIG_ATA_NONSTANDARD is not set | ||
563 | # CONFIG_SATA_AHCI is not set | ||
564 | # CONFIG_SATA_SVW is not set | ||
565 | # CONFIG_ATA_PIIX is not set | ||
566 | # CONFIG_SATA_MV is not set | ||
567 | # CONFIG_SATA_NV is not set | ||
568 | # CONFIG_PDC_ADMA is not set | ||
569 | # CONFIG_SATA_QSTOR is not set | ||
570 | # CONFIG_SATA_PROMISE is not set | ||
571 | # CONFIG_SATA_SX4 is not set | ||
572 | CONFIG_SATA_SIL=y | ||
573 | # CONFIG_SATA_SIL24 is not set | ||
574 | # CONFIG_SATA_SIS is not set | ||
575 | # CONFIG_SATA_ULI is not set | ||
576 | # CONFIG_SATA_VIA is not set | ||
577 | # CONFIG_SATA_VITESSE is not set | ||
578 | # CONFIG_SATA_INIC162X is not set | ||
579 | # CONFIG_PATA_ALI is not set | ||
580 | # CONFIG_PATA_AMD is not set | ||
581 | # CONFIG_PATA_ARTOP is not set | ||
582 | # CONFIG_PATA_ATIIXP is not set | ||
583 | # CONFIG_PATA_CMD64X is not set | ||
584 | # CONFIG_PATA_CS5520 is not set | ||
585 | # CONFIG_PATA_CS5530 is not set | ||
586 | # CONFIG_PATA_CYPRESS is not set | ||
587 | # CONFIG_PATA_EFAR is not set | ||
588 | # CONFIG_ATA_GENERIC is not set | ||
589 | # CONFIG_PATA_HPT366 is not set | ||
590 | # CONFIG_PATA_HPT37X is not set | ||
591 | # CONFIG_PATA_HPT3X2N is not set | ||
592 | # CONFIG_PATA_HPT3X3 is not set | ||
593 | # CONFIG_PATA_IT821X is not set | ||
594 | # CONFIG_PATA_IT8213 is not set | ||
595 | # CONFIG_PATA_JMICRON is not set | ||
596 | # CONFIG_PATA_TRIFLEX is not set | ||
597 | # CONFIG_PATA_MARVELL is not set | ||
598 | # CONFIG_PATA_MPIIX is not set | ||
599 | # CONFIG_PATA_OLDPIIX is not set | ||
600 | # CONFIG_PATA_NETCELL is not set | ||
601 | # CONFIG_PATA_NS87410 is not set | ||
602 | # CONFIG_PATA_OPTI is not set | ||
603 | # CONFIG_PATA_OPTIDMA is not set | ||
604 | # CONFIG_PATA_PDC_OLD is not set | ||
605 | # CONFIG_PATA_RADISYS is not set | ||
606 | # CONFIG_PATA_RZ1000 is not set | ||
607 | # CONFIG_PATA_SC1200 is not set | ||
608 | # CONFIG_PATA_SERVERWORKS is not set | ||
609 | # CONFIG_PATA_PDC2027X is not set | ||
610 | # CONFIG_PATA_SIL680 is not set | ||
611 | # CONFIG_PATA_SIS is not set | ||
612 | # CONFIG_PATA_VIA is not set | ||
613 | # CONFIG_PATA_WINBOND is not set | ||
614 | CONFIG_PATA_PLATFORM=y | ||
615 | |||
616 | # | ||
617 | # Multi-device support (RAID and LVM) | ||
618 | # | ||
619 | # CONFIG_MD is not set | ||
620 | |||
621 | # | ||
622 | # Fusion MPT device support | ||
623 | # | ||
624 | # CONFIG_FUSION is not set | ||
625 | # CONFIG_FUSION_SPI is not set | ||
626 | # CONFIG_FUSION_FC is not set | ||
627 | # CONFIG_FUSION_SAS is not set | ||
628 | |||
629 | # | ||
630 | # IEEE 1394 (FireWire) support | ||
631 | # | ||
632 | # CONFIG_IEEE1394 is not set | ||
633 | |||
634 | # | ||
635 | # I2O device support | ||
636 | # | ||
637 | # CONFIG_I2O is not set | ||
638 | |||
639 | # | ||
640 | # Network device support | ||
641 | # | ||
642 | CONFIG_NETDEVICES=y | ||
643 | # CONFIG_DUMMY is not set | ||
644 | # CONFIG_BONDING is not set | ||
645 | # CONFIG_EQUALIZER is not set | ||
646 | # CONFIG_TUN is not set | ||
647 | |||
648 | # | ||
649 | # ARCnet devices | ||
650 | # | ||
651 | # CONFIG_ARCNET is not set | ||
652 | |||
653 | # | ||
654 | # PHY device support | ||
655 | # | ||
656 | # CONFIG_PHYLIB is not set | ||
657 | |||
658 | # | ||
659 | # Ethernet (10 or 100Mbit) | ||
660 | # | ||
661 | CONFIG_NET_ETHERNET=y | ||
662 | CONFIG_MII=y | ||
663 | # CONFIG_STNIC is not set | ||
664 | # CONFIG_HAPPYMEAL is not set | ||
665 | # CONFIG_SUNGEM is not set | ||
666 | # CONFIG_CASSINI is not set | ||
667 | # CONFIG_NET_VENDOR_3COM is not set | ||
668 | # CONFIG_SMC91X is not set | ||
669 | |||
670 | # | ||
671 | # Tulip family network device support | ||
672 | # | ||
673 | # CONFIG_NET_TULIP is not set | ||
674 | # CONFIG_HP100 is not set | ||
675 | # CONFIG_NET_PCI is not set | ||
676 | |||
677 | # | ||
678 | # Ethernet (1000 Mbit) | ||
679 | # | ||
680 | # CONFIG_ACENIC is not set | ||
681 | # CONFIG_DL2K is not set | ||
682 | # CONFIG_E1000 is not set | ||
683 | # CONFIG_NS83820 is not set | ||
684 | # CONFIG_HAMACHI is not set | ||
685 | # CONFIG_YELLOWFIN is not set | ||
686 | CONFIG_R8169=y | ||
687 | # CONFIG_R8169_NAPI is not set | ||
688 | # CONFIG_SIS190 is not set | ||
689 | # CONFIG_SKGE is not set | ||
690 | # CONFIG_SKY2 is not set | ||
691 | # CONFIG_SK98LIN is not set | ||
692 | # CONFIG_TIGON3 is not set | ||
693 | # CONFIG_BNX2 is not set | ||
694 | # CONFIG_QLA3XXX is not set | ||
695 | # CONFIG_ATL1 is not set | ||
696 | |||
697 | # | ||
698 | # Ethernet (10000 Mbit) | ||
699 | # | ||
700 | # CONFIG_CHELSIO_T1 is not set | ||
701 | # CONFIG_CHELSIO_T3 is not set | ||
702 | # CONFIG_IXGB is not set | ||
703 | # CONFIG_S2IO is not set | ||
704 | # CONFIG_MYRI10GE is not set | ||
705 | # CONFIG_NETXEN_NIC is not set | ||
706 | |||
707 | # | ||
708 | # Token Ring devices | ||
709 | # | ||
710 | # CONFIG_TR is not set | ||
711 | |||
712 | # | ||
713 | # Wireless LAN (non-hamradio) | ||
714 | # | ||
715 | CONFIG_NET_RADIO=y | ||
716 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
717 | |||
718 | # | ||
719 | # Obsolete Wireless cards support (pre-802.11) | ||
720 | # | ||
721 | # CONFIG_STRIP is not set | ||
722 | |||
723 | # | ||
724 | # Wireless 802.11b ISA/PCI cards support | ||
725 | # | ||
726 | # CONFIG_IPW2100 is not set | ||
727 | # CONFIG_IPW2200 is not set | ||
728 | # CONFIG_HERMES is not set | ||
729 | # CONFIG_ATMEL is not set | ||
730 | |||
731 | # | ||
732 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | ||
733 | # | ||
734 | # CONFIG_PRISM54 is not set | ||
735 | # CONFIG_HOSTAP is not set | ||
736 | CONFIG_NET_WIRELESS=y | ||
737 | |||
738 | # | ||
739 | # Wan interfaces | ||
740 | # | ||
741 | # CONFIG_WAN is not set | ||
742 | # CONFIG_FDDI is not set | ||
743 | # CONFIG_HIPPI is not set | ||
744 | # CONFIG_PPP is not set | ||
745 | # CONFIG_SLIP is not set | ||
746 | # CONFIG_NET_FC is not set | ||
747 | # CONFIG_SHAPER is not set | ||
748 | # CONFIG_NETCONSOLE is not set | ||
749 | # CONFIG_NETPOLL is not set | ||
750 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
751 | |||
752 | # | ||
753 | # ISDN subsystem | ||
754 | # | ||
755 | # CONFIG_ISDN is not set | ||
756 | |||
757 | # | ||
758 | # Telephony Support | ||
759 | # | ||
760 | # CONFIG_PHONE is not set | ||
761 | |||
762 | # | ||
763 | # Input device support | ||
764 | # | ||
765 | CONFIG_INPUT=y | ||
766 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
767 | |||
768 | # | ||
769 | # Userland interfaces | ||
770 | # | ||
771 | CONFIG_INPUT_MOUSEDEV=y | ||
772 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
773 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
774 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
775 | # CONFIG_INPUT_JOYDEV is not set | ||
776 | # CONFIG_INPUT_TSDEV is not set | ||
777 | # CONFIG_INPUT_EVDEV is not set | ||
778 | # CONFIG_INPUT_EVBUG is not set | ||
779 | |||
780 | # | ||
781 | # Input Device Drivers | ||
782 | # | ||
783 | CONFIG_INPUT_KEYBOARD=y | ||
784 | CONFIG_KEYBOARD_ATKBD=y | ||
785 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
786 | # CONFIG_KEYBOARD_LKKBD is not set | ||
787 | # CONFIG_KEYBOARD_XTKBD is not set | ||
788 | # CONFIG_KEYBOARD_NEWTON is not set | ||
789 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
790 | # CONFIG_INPUT_MOUSE is not set | ||
791 | # CONFIG_INPUT_JOYSTICK is not set | ||
792 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
793 | # CONFIG_INPUT_MISC is not set | ||
794 | |||
795 | # | ||
796 | # Hardware I/O ports | ||
797 | # | ||
798 | CONFIG_SERIO=y | ||
799 | # CONFIG_SERIO_I8042 is not set | ||
800 | # CONFIG_SERIO_SERPORT is not set | ||
801 | # CONFIG_SERIO_PCIPS2 is not set | ||
802 | CONFIG_SERIO_LIBPS2=y | ||
803 | # CONFIG_SERIO_RAW is not set | ||
804 | # CONFIG_GAMEPORT is not set | ||
805 | |||
806 | # | ||
807 | # Character devices | ||
808 | # | ||
809 | # CONFIG_VT is not set | ||
810 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
811 | |||
812 | # | ||
813 | # Serial drivers | ||
814 | # | ||
815 | # CONFIG_SERIAL_8250 is not set | ||
816 | |||
817 | # | ||
818 | # Non-8250 serial port support | ||
819 | # | ||
820 | CONFIG_SERIAL_SH_SCI=y | ||
821 | CONFIG_SERIAL_SH_SCI_NR_UARTS=6 | ||
822 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
823 | CONFIG_SERIAL_CORE=y | ||
824 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
825 | # CONFIG_SERIAL_JSM is not set | ||
826 | CONFIG_UNIX98_PTYS=y | ||
827 | CONFIG_LEGACY_PTYS=y | ||
828 | CONFIG_LEGACY_PTY_COUNT=256 | ||
829 | |||
830 | # | ||
831 | # IPMI | ||
832 | # | ||
833 | # CONFIG_IPMI_HANDLER is not set | ||
834 | |||
835 | # | ||
836 | # Watchdog Cards | ||
837 | # | ||
838 | # CONFIG_WATCHDOG is not set | ||
839 | CONFIG_HW_RANDOM=y | ||
840 | # CONFIG_GEN_RTC is not set | ||
841 | # CONFIG_DTLK is not set | ||
842 | # CONFIG_R3964 is not set | ||
843 | # CONFIG_APPLICOM is not set | ||
844 | # CONFIG_DRM is not set | ||
845 | # CONFIG_RAW_DRIVER is not set | ||
846 | |||
847 | # | ||
848 | # TPM devices | ||
849 | # | ||
850 | # CONFIG_TCG_TPM is not set | ||
851 | |||
852 | # | ||
853 | # I2C support | ||
854 | # | ||
855 | # CONFIG_I2C is not set | ||
856 | |||
857 | # | ||
858 | # SPI support | ||
859 | # | ||
860 | # CONFIG_SPI is not set | ||
861 | # CONFIG_SPI_MASTER is not set | ||
862 | |||
863 | # | ||
864 | # Dallas's 1-wire bus | ||
865 | # | ||
866 | # CONFIG_W1 is not set | ||
867 | |||
868 | # | ||
869 | # Hardware Monitoring support | ||
870 | # | ||
871 | CONFIG_HWMON=y | ||
872 | # CONFIG_HWMON_VID is not set | ||
873 | # CONFIG_SENSORS_ABITUGURU is not set | ||
874 | # CONFIG_SENSORS_F71805F is not set | ||
875 | # CONFIG_SENSORS_PC87427 is not set | ||
876 | # CONFIG_SENSORS_VT1211 is not set | ||
877 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
878 | |||
879 | # | ||
880 | # Multifunction device drivers | ||
881 | # | ||
882 | # CONFIG_MFD_SM501 is not set | ||
883 | |||
884 | # | ||
885 | # Multimedia devices | ||
886 | # | ||
887 | # CONFIG_VIDEO_DEV is not set | ||
888 | |||
889 | # | ||
890 | # Digital Video Broadcasting Devices | ||
891 | # | ||
892 | # CONFIG_DVB is not set | ||
893 | |||
894 | # | ||
895 | # Graphics support | ||
896 | # | ||
897 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
898 | CONFIG_FB=y | ||
899 | # CONFIG_FIRMWARE_EDID is not set | ||
900 | # CONFIG_FB_DDC is not set | ||
901 | # CONFIG_FB_CFB_FILLRECT is not set | ||
902 | # CONFIG_FB_CFB_COPYAREA is not set | ||
903 | # CONFIG_FB_CFB_IMAGEBLIT is not set | ||
904 | # CONFIG_FB_SVGALIB is not set | ||
905 | # CONFIG_FB_MACMODES is not set | ||
906 | # CONFIG_FB_BACKLIGHT is not set | ||
907 | # CONFIG_FB_MODE_HELPERS is not set | ||
908 | # CONFIG_FB_TILEBLITTING is not set | ||
909 | |||
910 | # | ||
911 | # Frambuffer hardware drivers | ||
912 | # | ||
913 | # CONFIG_FB_CIRRUS is not set | ||
914 | # CONFIG_FB_PM2 is not set | ||
915 | # CONFIG_FB_CYBER2000 is not set | ||
916 | # CONFIG_FB_ASILIANT is not set | ||
917 | # CONFIG_FB_IMSTT is not set | ||
918 | # CONFIG_FB_EPSON1355 is not set | ||
919 | # CONFIG_FB_S1D13XXX is not set | ||
920 | # CONFIG_FB_NVIDIA is not set | ||
921 | # CONFIG_FB_RIVA is not set | ||
922 | # CONFIG_FB_MATROX is not set | ||
923 | # CONFIG_FB_RADEON is not set | ||
924 | # CONFIG_FB_ATY128 is not set | ||
925 | # CONFIG_FB_ATY is not set | ||
926 | # CONFIG_FB_S3 is not set | ||
927 | # CONFIG_FB_SAVAGE is not set | ||
928 | # CONFIG_FB_SIS is not set | ||
929 | # CONFIG_FB_NEOMAGIC is not set | ||
930 | # CONFIG_FB_KYRO is not set | ||
931 | # CONFIG_FB_3DFX is not set | ||
932 | # CONFIG_FB_VOODOO1 is not set | ||
933 | # CONFIG_FB_TRIDENT is not set | ||
934 | # CONFIG_FB_VIRTUAL is not set | ||
935 | |||
936 | # | ||
937 | # Logo configuration | ||
938 | # | ||
939 | # CONFIG_LOGO is not set | ||
940 | |||
941 | # | ||
942 | # Sound | ||
943 | # | ||
944 | CONFIG_SOUND=m | ||
945 | |||
946 | # | ||
947 | # Advanced Linux Sound Architecture | ||
948 | # | ||
949 | # CONFIG_SND is not set | ||
950 | |||
951 | # | ||
952 | # Open Sound System | ||
953 | # | ||
954 | CONFIG_SOUND_PRIME=m | ||
955 | # CONFIG_OBSOLETE_OSS is not set | ||
956 | # CONFIG_SOUND_BT878 is not set | ||
957 | # CONFIG_SOUND_ICH is not set | ||
958 | # CONFIG_SOUND_TRIDENT is not set | ||
959 | # CONFIG_SOUND_MSNDCLAS is not set | ||
960 | # CONFIG_SOUND_MSNDPIN is not set | ||
961 | # CONFIG_SOUND_VIA82CXXX is not set | ||
962 | |||
963 | # | ||
964 | # HID Devices | ||
965 | # | ||
966 | CONFIG_HID=y | ||
967 | # CONFIG_HID_DEBUG is not set | ||
968 | |||
969 | # | ||
970 | # USB support | ||
971 | # | ||
972 | CONFIG_USB_ARCH_HAS_HCD=y | ||
973 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
974 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
975 | # CONFIG_USB is not set | ||
976 | |||
977 | # | ||
978 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
979 | # | ||
980 | |||
981 | # | ||
982 | # USB Gadget Support | ||
983 | # | ||
984 | # CONFIG_USB_GADGET is not set | ||
985 | |||
986 | # | ||
987 | # MMC/SD Card support | ||
988 | # | ||
989 | # CONFIG_MMC is not set | ||
990 | |||
991 | # | ||
992 | # LED devices | ||
993 | # | ||
994 | # CONFIG_NEW_LEDS is not set | ||
995 | |||
996 | # | ||
997 | # LED drivers | ||
998 | # | ||
999 | |||
1000 | # | ||
1001 | # LED Triggers | ||
1002 | # | ||
1003 | |||
1004 | # | ||
1005 | # InfiniBand support | ||
1006 | # | ||
1007 | # CONFIG_INFINIBAND is not set | ||
1008 | |||
1009 | # | ||
1010 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1011 | # | ||
1012 | |||
1013 | # | ||
1014 | # Real Time Clock | ||
1015 | # | ||
1016 | CONFIG_RTC_LIB=y | ||
1017 | CONFIG_RTC_CLASS=y | ||
1018 | CONFIG_RTC_HCTOSYS=y | ||
1019 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1020 | # CONFIG_RTC_DEBUG is not set | ||
1021 | |||
1022 | # | ||
1023 | # RTC interfaces | ||
1024 | # | ||
1025 | CONFIG_RTC_INTF_SYSFS=y | ||
1026 | CONFIG_RTC_INTF_PROC=y | ||
1027 | CONFIG_RTC_INTF_DEV=y | ||
1028 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1029 | |||
1030 | # | ||
1031 | # RTC drivers | ||
1032 | # | ||
1033 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1034 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1035 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1036 | CONFIG_RTC_DRV_SH=y | ||
1037 | # CONFIG_RTC_DRV_TEST is not set | ||
1038 | # CONFIG_RTC_DRV_V3020 is not set | ||
1039 | |||
1040 | # | ||
1041 | # DMA Engine support | ||
1042 | # | ||
1043 | # CONFIG_DMA_ENGINE is not set | ||
1044 | |||
1045 | # | ||
1046 | # DMA Clients | ||
1047 | # | ||
1048 | |||
1049 | # | ||
1050 | # DMA Devices | ||
1051 | # | ||
1052 | |||
1053 | # | ||
1054 | # Auxiliary Display support | ||
1055 | # | ||
1056 | |||
1057 | # | ||
1058 | # Virtualization | ||
1059 | # | ||
1060 | |||
1061 | # | ||
1062 | # File systems | ||
1063 | # | ||
1064 | CONFIG_EXT2_FS=y | ||
1065 | # CONFIG_EXT2_FS_XATTR is not set | ||
1066 | # CONFIG_EXT2_FS_XIP is not set | ||
1067 | CONFIG_EXT3_FS=y | ||
1068 | CONFIG_EXT3_FS_XATTR=y | ||
1069 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
1070 | # CONFIG_EXT3_FS_SECURITY is not set | ||
1071 | # CONFIG_EXT4DEV_FS is not set | ||
1072 | CONFIG_JBD=y | ||
1073 | # CONFIG_JBD_DEBUG is not set | ||
1074 | CONFIG_FS_MBCACHE=y | ||
1075 | # CONFIG_REISERFS_FS is not set | ||
1076 | # CONFIG_JFS_FS is not set | ||
1077 | CONFIG_FS_POSIX_ACL=y | ||
1078 | # CONFIG_XFS_FS is not set | ||
1079 | # CONFIG_GFS2_FS is not set | ||
1080 | # CONFIG_OCFS2_FS is not set | ||
1081 | CONFIG_MINIX_FS=y | ||
1082 | # CONFIG_ROMFS_FS is not set | ||
1083 | CONFIG_INOTIFY=y | ||
1084 | CONFIG_INOTIFY_USER=y | ||
1085 | # CONFIG_QUOTA is not set | ||
1086 | CONFIG_DNOTIFY=y | ||
1087 | # CONFIG_AUTOFS_FS is not set | ||
1088 | # CONFIG_AUTOFS4_FS is not set | ||
1089 | CONFIG_FUSE_FS=m | ||
1090 | |||
1091 | # | ||
1092 | # CD-ROM/DVD Filesystems | ||
1093 | # | ||
1094 | # CONFIG_ISO9660_FS is not set | ||
1095 | # CONFIG_UDF_FS is not set | ||
1096 | |||
1097 | # | ||
1098 | # DOS/FAT/NT Filesystems | ||
1099 | # | ||
1100 | CONFIG_FAT_FS=y | ||
1101 | CONFIG_MSDOS_FS=y | ||
1102 | CONFIG_VFAT_FS=y | ||
1103 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1104 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1105 | CONFIG_NTFS_FS=y | ||
1106 | # CONFIG_NTFS_DEBUG is not set | ||
1107 | CONFIG_NTFS_RW=y | ||
1108 | |||
1109 | # | ||
1110 | # Pseudo filesystems | ||
1111 | # | ||
1112 | CONFIG_PROC_FS=y | ||
1113 | CONFIG_PROC_KCORE=y | ||
1114 | CONFIG_PROC_SYSCTL=y | ||
1115 | CONFIG_SYSFS=y | ||
1116 | CONFIG_TMPFS=y | ||
1117 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1118 | CONFIG_HUGETLBFS=y | ||
1119 | CONFIG_HUGETLB_PAGE=y | ||
1120 | CONFIG_RAMFS=y | ||
1121 | CONFIG_CONFIGFS_FS=m | ||
1122 | |||
1123 | # | ||
1124 | # Miscellaneous filesystems | ||
1125 | # | ||
1126 | # CONFIG_ADFS_FS is not set | ||
1127 | # CONFIG_AFFS_FS is not set | ||
1128 | # CONFIG_HFS_FS is not set | ||
1129 | # CONFIG_HFSPLUS_FS is not set | ||
1130 | # CONFIG_BEFS_FS is not set | ||
1131 | # CONFIG_BFS_FS is not set | ||
1132 | # CONFIG_EFS_FS is not set | ||
1133 | # CONFIG_CRAMFS is not set | ||
1134 | # CONFIG_VXFS_FS is not set | ||
1135 | # CONFIG_HPFS_FS is not set | ||
1136 | # CONFIG_QNX4FS_FS is not set | ||
1137 | # CONFIG_SYSV_FS is not set | ||
1138 | # CONFIG_UFS_FS is not set | ||
1139 | |||
1140 | # | ||
1141 | # Network File Systems | ||
1142 | # | ||
1143 | CONFIG_NFS_FS=y | ||
1144 | CONFIG_NFS_V3=y | ||
1145 | # CONFIG_NFS_V3_ACL is not set | ||
1146 | CONFIG_NFS_V4=y | ||
1147 | # CONFIG_NFS_DIRECTIO is not set | ||
1148 | CONFIG_NFSD=y | ||
1149 | CONFIG_NFSD_V3=y | ||
1150 | # CONFIG_NFSD_V3_ACL is not set | ||
1151 | CONFIG_NFSD_V4=y | ||
1152 | CONFIG_NFSD_TCP=y | ||
1153 | CONFIG_ROOT_NFS=y | ||
1154 | CONFIG_LOCKD=y | ||
1155 | CONFIG_LOCKD_V4=y | ||
1156 | CONFIG_EXPORTFS=y | ||
1157 | CONFIG_NFS_COMMON=y | ||
1158 | CONFIG_SUNRPC=y | ||
1159 | CONFIG_SUNRPC_GSS=y | ||
1160 | CONFIG_RPCSEC_GSS_KRB5=y | ||
1161 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1162 | # CONFIG_SMB_FS is not set | ||
1163 | # CONFIG_CIFS is not set | ||
1164 | # CONFIG_NCP_FS is not set | ||
1165 | # CONFIG_CODA_FS is not set | ||
1166 | # CONFIG_AFS_FS is not set | ||
1167 | # CONFIG_9P_FS is not set | ||
1168 | |||
1169 | # | ||
1170 | # Partition Types | ||
1171 | # | ||
1172 | # CONFIG_PARTITION_ADVANCED is not set | ||
1173 | CONFIG_MSDOS_PARTITION=y | ||
1174 | |||
1175 | # | ||
1176 | # Native Language Support | ||
1177 | # | ||
1178 | CONFIG_NLS=y | ||
1179 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1180 | CONFIG_NLS_CODEPAGE_437=y | ||
1181 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1182 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1183 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1184 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1185 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1186 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1187 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1188 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1189 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1190 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1191 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1192 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1193 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1194 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1195 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1196 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1197 | CONFIG_NLS_CODEPAGE_932=y | ||
1198 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1199 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1200 | # CONFIG_NLS_ISO8859_8 is not set | ||
1201 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1202 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1203 | # CONFIG_NLS_ASCII is not set | ||
1204 | CONFIG_NLS_ISO8859_1=y | ||
1205 | # CONFIG_NLS_ISO8859_2 is not set | ||
1206 | # CONFIG_NLS_ISO8859_3 is not set | ||
1207 | # CONFIG_NLS_ISO8859_4 is not set | ||
1208 | # CONFIG_NLS_ISO8859_5 is not set | ||
1209 | # CONFIG_NLS_ISO8859_6 is not set | ||
1210 | # CONFIG_NLS_ISO8859_7 is not set | ||
1211 | # CONFIG_NLS_ISO8859_9 is not set | ||
1212 | # CONFIG_NLS_ISO8859_13 is not set | ||
1213 | # CONFIG_NLS_ISO8859_14 is not set | ||
1214 | # CONFIG_NLS_ISO8859_15 is not set | ||
1215 | # CONFIG_NLS_KOI8_R is not set | ||
1216 | # CONFIG_NLS_KOI8_U is not set | ||
1217 | # CONFIG_NLS_UTF8 is not set | ||
1218 | |||
1219 | # | ||
1220 | # Distributed Lock Manager | ||
1221 | # | ||
1222 | # CONFIG_DLM is not set | ||
1223 | |||
1224 | # | ||
1225 | # Profiling support | ||
1226 | # | ||
1227 | CONFIG_PROFILING=y | ||
1228 | CONFIG_OPROFILE=m | ||
1229 | |||
1230 | # | ||
1231 | # Kernel hacking | ||
1232 | # | ||
1233 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1234 | # CONFIG_PRINTK_TIME is not set | ||
1235 | CONFIG_ENABLE_MUST_CHECK=y | ||
1236 | CONFIG_MAGIC_SYSRQ=y | ||
1237 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1238 | CONFIG_DEBUG_FS=y | ||
1239 | # CONFIG_HEADERS_CHECK is not set | ||
1240 | CONFIG_DEBUG_KERNEL=y | ||
1241 | # CONFIG_DEBUG_SHIRQ is not set | ||
1242 | CONFIG_LOG_BUF_SHIFT=14 | ||
1243 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
1244 | # CONFIG_SCHEDSTATS is not set | ||
1245 | # CONFIG_TIMER_STATS is not set | ||
1246 | # CONFIG_DEBUG_SLAB is not set | ||
1247 | # CONFIG_DEBUG_PREEMPT is not set | ||
1248 | CONFIG_DEBUG_SPINLOCK=y | ||
1249 | CONFIG_DEBUG_MUTEXES=y | ||
1250 | CONFIG_DEBUG_LOCK_ALLOC=y | ||
1251 | # CONFIG_PROVE_LOCKING is not set | ||
1252 | CONFIG_LOCKDEP=y | ||
1253 | # CONFIG_DEBUG_LOCKDEP is not set | ||
1254 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1255 | CONFIG_DEBUG_LOCKING_API_SELFTESTS=y | ||
1256 | CONFIG_STACKTRACE=y | ||
1257 | # CONFIG_DEBUG_KOBJECT is not set | ||
1258 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1259 | CONFIG_DEBUG_INFO=y | ||
1260 | # CONFIG_DEBUG_VM is not set | ||
1261 | # CONFIG_DEBUG_LIST is not set | ||
1262 | CONFIG_FRAME_POINTER=y | ||
1263 | CONFIG_FORCED_INLINING=y | ||
1264 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1265 | # CONFIG_FAULT_INJECTION is not set | ||
1266 | CONFIG_SH_STANDARD_BIOS=y | ||
1267 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1268 | CONFIG_EARLY_PRINTK=y | ||
1269 | CONFIG_DEBUG_STACKOVERFLOW=y | ||
1270 | CONFIG_DEBUG_STACK_USAGE=y | ||
1271 | # CONFIG_4KSTACKS is not set | ||
1272 | # CONFIG_SH_KGDB is not set | ||
1273 | |||
1274 | # | ||
1275 | # Security options | ||
1276 | # | ||
1277 | # CONFIG_KEYS is not set | ||
1278 | # CONFIG_SECURITY is not set | ||
1279 | |||
1280 | # | ||
1281 | # Cryptographic options | ||
1282 | # | ||
1283 | CONFIG_CRYPTO=y | ||
1284 | CONFIG_CRYPTO_ALGAPI=y | ||
1285 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1286 | CONFIG_CRYPTO_HASH=y | ||
1287 | CONFIG_CRYPTO_MANAGER=y | ||
1288 | CONFIG_CRYPTO_HMAC=y | ||
1289 | # CONFIG_CRYPTO_XCBC is not set | ||
1290 | # CONFIG_CRYPTO_NULL is not set | ||
1291 | # CONFIG_CRYPTO_MD4 is not set | ||
1292 | CONFIG_CRYPTO_MD5=y | ||
1293 | # CONFIG_CRYPTO_SHA1 is not set | ||
1294 | # CONFIG_CRYPTO_SHA256 is not set | ||
1295 | # CONFIG_CRYPTO_SHA512 is not set | ||
1296 | # CONFIG_CRYPTO_WP512 is not set | ||
1297 | # CONFIG_CRYPTO_TGR192 is not set | ||
1298 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1299 | CONFIG_CRYPTO_ECB=m | ||
1300 | CONFIG_CRYPTO_CBC=y | ||
1301 | CONFIG_CRYPTO_PCBC=m | ||
1302 | # CONFIG_CRYPTO_LRW is not set | ||
1303 | CONFIG_CRYPTO_DES=y | ||
1304 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1305 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1306 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1307 | # CONFIG_CRYPTO_SERPENT is not set | ||
1308 | # CONFIG_CRYPTO_AES is not set | ||
1309 | # CONFIG_CRYPTO_CAST5 is not set | ||
1310 | # CONFIG_CRYPTO_CAST6 is not set | ||
1311 | # CONFIG_CRYPTO_TEA is not set | ||
1312 | # CONFIG_CRYPTO_ARC4 is not set | ||
1313 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1314 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1315 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1316 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1317 | # CONFIG_CRYPTO_CRC32C is not set | ||
1318 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1319 | # CONFIG_CRYPTO_TEST is not set | ||
1320 | |||
1321 | # | ||
1322 | # Hardware crypto devices | ||
1323 | # | ||
1324 | |||
1325 | # | ||
1326 | # Library routines | ||
1327 | # | ||
1328 | CONFIG_BITREVERSE=y | ||
1329 | # CONFIG_CRC_CCITT is not set | ||
1330 | # CONFIG_CRC16 is not set | ||
1331 | CONFIG_CRC32=y | ||
1332 | # CONFIG_LIBCRC32C is not set | ||
1333 | CONFIG_HAS_IOMEM=y | ||
1334 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig index 06ebd6ec0cdb..87ae5c1f8629 100644 --- a/arch/sh/configs/se7705_defconfig +++ b/arch/sh/configs/se7705_defconfig | |||
@@ -1,15 +1,21 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.21-rc5 |
4 | # Tue Oct 3 12:03:04 2006 | 4 | # Thu Apr 26 09:16:31 2007 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 9 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 10 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
11 | CONFIG_GENERIC_IRQ_PROBE=y | 12 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
14 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 20 | ||
15 | # | 21 | # |
@@ -33,7 +39,9 @@ CONFIG_LOCALVERSION_AUTO=y | |||
33 | # CONFIG_UTS_NS is not set | 39 | # CONFIG_UTS_NS is not set |
34 | # CONFIG_AUDIT is not set | 40 | # CONFIG_AUDIT is not set |
35 | # CONFIG_IKCONFIG is not set | 41 | # CONFIG_IKCONFIG is not set |
42 | CONFIG_SYSFS_DEPRECATED=y | ||
36 | # CONFIG_RELAY is not set | 43 | # CONFIG_RELAY is not set |
44 | CONFIG_BLK_DEV_INITRD=y | ||
37 | CONFIG_INITRAMFS_SOURCE="" | 45 | CONFIG_INITRAMFS_SOURCE="" |
38 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
39 | CONFIG_SYSCTL=y | 47 | CONFIG_SYSCTL=y |
@@ -91,27 +99,30 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
91 | CONFIG_SOLUTION_ENGINE=y | 99 | CONFIG_SOLUTION_ENGINE=y |
92 | CONFIG_SH_SOLUTION_ENGINE=y | 100 | CONFIG_SH_SOLUTION_ENGINE=y |
93 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | 101 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set |
102 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | ||
94 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | 103 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set |
95 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | 104 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set |
96 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | 105 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set |
106 | # CONFIG_SH_7722_SOLUTION_ENGINE is not set | ||
97 | # CONFIG_SH_7751_SYSTEMH is not set | 107 | # CONFIG_SH_7751_SYSTEMH is not set |
98 | # CONFIG_SH_HP6XX is not set | 108 | # CONFIG_SH_HP6XX is not set |
99 | # CONFIG_SH_EC3104 is not set | ||
100 | # CONFIG_SH_SATURN is not set | 109 | # CONFIG_SH_SATURN is not set |
101 | # CONFIG_SH_DREAMCAST is not set | 110 | # CONFIG_SH_DREAMCAST is not set |
102 | # CONFIG_SH_BIGSUR is not set | ||
103 | # CONFIG_SH_MPC1211 is not set | 111 | # CONFIG_SH_MPC1211 is not set |
104 | # CONFIG_SH_SH03 is not set | 112 | # CONFIG_SH_SH03 is not set |
105 | # CONFIG_SH_SECUREEDGE5410 is not set | 113 | # CONFIG_SH_SECUREEDGE5410 is not set |
106 | # CONFIG_SH_HS7751RVOIP is not set | 114 | # CONFIG_SH_HS7751RVOIP is not set |
107 | # CONFIG_SH_7710VOIPGW is not set | 115 | # CONFIG_SH_7710VOIPGW is not set |
108 | # CONFIG_SH_RTS7751R2D is not set | 116 | # CONFIG_SH_RTS7751R2D is not set |
109 | # CONFIG_SH_R7780RP is not set | 117 | # CONFIG_SH_HIGHLANDER is not set |
110 | # CONFIG_SH_EDOSK7705 is not set | 118 | # CONFIG_SH_EDOSK7705 is not set |
111 | # CONFIG_SH_SH4202_MICRODEV is not set | 119 | # CONFIG_SH_SH4202_MICRODEV is not set |
112 | # CONFIG_SH_LANDISK is not set | 120 | # CONFIG_SH_LANDISK is not set |
113 | # CONFIG_SH_TITAN is not set | 121 | # CONFIG_SH_TITAN is not set |
114 | # CONFIG_SH_SHMIN is not set | 122 | # CONFIG_SH_SHMIN is not set |
123 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
124 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
125 | # CONFIG_SH_LBOX_RE2 is not set | ||
115 | # CONFIG_SH_UNKNOWN is not set | 126 | # CONFIG_SH_UNKNOWN is not set |
116 | 127 | ||
117 | # | 128 | # |
@@ -123,6 +134,12 @@ CONFIG_CPU_SH3=y | |||
123 | # SH-2 Processor Support | 134 | # SH-2 Processor Support |
124 | # | 135 | # |
125 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7604 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
138 | |||
139 | # | ||
140 | # SH-2A Processor Support | ||
141 | # | ||
142 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
126 | 143 | ||
127 | # | 144 | # |
128 | # SH-3 Processor Support | 145 | # SH-3 Processor Support |
@@ -134,6 +151,7 @@ CONFIG_CPU_SUBTYPE_SH7705=y | |||
134 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
154 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | ||
137 | 155 | ||
138 | # | 156 | # |
139 | # SH-4 Processor Support | 157 | # SH-4 Processor Support |
@@ -158,12 +176,14 @@ CONFIG_CPU_SUBTYPE_SH7705=y | |||
158 | # | 176 | # |
159 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 177 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
160 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 178 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
179 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||
161 | 180 | ||
162 | # | 181 | # |
163 | # SH4AL-DSP Processor Support | 182 | # SH4AL-DSP Processor Support |
164 | # | 183 | # |
165 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | 184 | # CONFIG_CPU_SUBTYPE_SH73180 is not set |
166 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 185 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
186 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
167 | 187 | ||
168 | # | 188 | # |
169 | # Memory management options | 189 | # Memory management options |
@@ -173,6 +193,11 @@ CONFIG_PAGE_OFFSET=0x80000000 | |||
173 | CONFIG_MEMORY_START=0x0c000000 | 193 | CONFIG_MEMORY_START=0x0c000000 |
174 | CONFIG_MEMORY_SIZE=0x02000000 | 194 | CONFIG_MEMORY_SIZE=0x02000000 |
175 | CONFIG_VSYSCALL=y | 195 | CONFIG_VSYSCALL=y |
196 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
197 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
198 | CONFIG_PAGE_SIZE_4KB=y | ||
199 | # CONFIG_PAGE_SIZE_8KB is not set | ||
200 | # CONFIG_PAGE_SIZE_64KB is not set | ||
176 | CONFIG_SELECT_MEMORY_MODEL=y | 201 | CONFIG_SELECT_MEMORY_MODEL=y |
177 | CONFIG_FLATMEM_MANUAL=y | 202 | CONFIG_FLATMEM_MANUAL=y |
178 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 203 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -182,6 +207,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
182 | # CONFIG_SPARSEMEM_STATIC is not set | 207 | # CONFIG_SPARSEMEM_STATIC is not set |
183 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 208 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
184 | # CONFIG_RESOURCES_64BIT is not set | 209 | # CONFIG_RESOURCES_64BIT is not set |
210 | CONFIG_ZONE_DMA_FLAG=0 | ||
185 | 211 | ||
186 | # | 212 | # |
187 | # Cache configuration | 213 | # Cache configuration |
@@ -190,23 +216,31 @@ CONFIG_SH7705_CACHE_32KB=y | |||
190 | # CONFIG_SH_DIRECT_MAPPED is not set | 216 | # CONFIG_SH_DIRECT_MAPPED is not set |
191 | # CONFIG_SH_WRITETHROUGH is not set | 217 | # CONFIG_SH_WRITETHROUGH is not set |
192 | # CONFIG_SH_OCRAM is not set | 218 | # CONFIG_SH_OCRAM is not set |
193 | # CONFIG_CF_ENABLER is not set | 219 | CONFIG_CF_ENABLER=y |
220 | # CONFIG_CF_AREA5 is not set | ||
221 | CONFIG_CF_AREA6=y | ||
222 | # CONFIG_CF_AREA4 is not set | ||
223 | CONFIG_CF_BASE_ADDR=0xb8000000 | ||
194 | 224 | ||
195 | # | 225 | # |
196 | # Processor features | 226 | # Processor features |
197 | # | 227 | # |
198 | CONFIG_CPU_LITTLE_ENDIAN=y | 228 | CONFIG_CPU_LITTLE_ENDIAN=y |
229 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
199 | # CONFIG_SH_FPU_EMU is not set | 230 | # CONFIG_SH_FPU_EMU is not set |
200 | # CONFIG_SH_DSP is not set | 231 | # CONFIG_SH_DSP is not set |
201 | # CONFIG_SH_ADC is not set | 232 | # CONFIG_SH_ADC is not set |
202 | CONFIG_CPU_HAS_INTEVT=y | 233 | CONFIG_CPU_HAS_INTEVT=y |
203 | CONFIG_CPU_HAS_PINT_IRQ=y | 234 | CONFIG_CPU_HAS_PINT_IRQ=y |
235 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
204 | CONFIG_CPU_HAS_SR_RB=y | 236 | CONFIG_CPU_HAS_SR_RB=y |
205 | 237 | ||
206 | # | 238 | # |
207 | # Timer support | 239 | # Timer and clock configuration |
208 | # | 240 | # |
209 | CONFIG_SH_TMU=y | 241 | CONFIG_SH_TMU=y |
242 | CONFIG_SH_TIMER_IRQ=16 | ||
243 | # CONFIG_NO_IDLE_HZ is not set | ||
210 | CONFIG_SH_PCLK_FREQ=33333333 | 244 | CONFIG_SH_PCLK_FREQ=33333333 |
211 | 245 | ||
212 | # | 246 | # |
@@ -223,13 +257,19 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
223 | # Companion Chips | 257 | # Companion Chips |
224 | # | 258 | # |
225 | # CONFIG_HD6446X_SERIES is not set | 259 | # CONFIG_HD6446X_SERIES is not set |
260 | |||
261 | # | ||
262 | # Additional SuperH Device Drivers | ||
263 | # | ||
226 | CONFIG_HEARTBEAT=y | 264 | CONFIG_HEARTBEAT=y |
265 | # CONFIG_PUSH_SWITCH is not set | ||
227 | 266 | ||
228 | # | 267 | # |
229 | # Kernel features | 268 | # Kernel features |
230 | # | 269 | # |
231 | # CONFIG_HZ_100 is not set | 270 | # CONFIG_HZ_100 is not set |
232 | CONFIG_HZ_250=y | 271 | CONFIG_HZ_250=y |
272 | # CONFIG_HZ_300 is not set | ||
233 | # CONFIG_HZ_1000 is not set | 273 | # CONFIG_HZ_1000 is not set |
234 | CONFIG_HZ=250 | 274 | CONFIG_HZ=250 |
235 | # CONFIG_KEXEC is not set | 275 | # CONFIG_KEXEC is not set |
@@ -287,6 +327,7 @@ CONFIG_UNIX=y | |||
287 | CONFIG_XFRM=y | 327 | CONFIG_XFRM=y |
288 | # CONFIG_XFRM_USER is not set | 328 | # CONFIG_XFRM_USER is not set |
289 | # CONFIG_XFRM_SUB_POLICY is not set | 329 | # CONFIG_XFRM_SUB_POLICY is not set |
330 | # CONFIG_XFRM_MIGRATE is not set | ||
290 | # CONFIG_NET_KEY is not set | 331 | # CONFIG_NET_KEY is not set |
291 | CONFIG_INET=y | 332 | CONFIG_INET=y |
292 | # CONFIG_IP_MULTICAST is not set | 333 | # CONFIG_IP_MULTICAST is not set |
@@ -307,11 +348,13 @@ CONFIG_IP_PNP_RARP=y | |||
307 | # CONFIG_INET_TUNNEL is not set | 348 | # CONFIG_INET_TUNNEL is not set |
308 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 349 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
309 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 350 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
351 | CONFIG_INET_XFRM_MODE_BEET=y | ||
310 | CONFIG_INET_DIAG=y | 352 | CONFIG_INET_DIAG=y |
311 | CONFIG_INET_TCP_DIAG=y | 353 | CONFIG_INET_TCP_DIAG=y |
312 | # CONFIG_TCP_CONG_ADVANCED is not set | 354 | # CONFIG_TCP_CONG_ADVANCED is not set |
313 | CONFIG_TCP_CONG_CUBIC=y | 355 | CONFIG_TCP_CONG_CUBIC=y |
314 | CONFIG_DEFAULT_TCP_CONG="cubic" | 356 | CONFIG_DEFAULT_TCP_CONG="cubic" |
357 | # CONFIG_TCP_MD5SIG is not set | ||
315 | # CONFIG_IPV6 is not set | 358 | # CONFIG_IPV6 is not set |
316 | # CONFIG_INET6_XFRM_TUNNEL is not set | 359 | # CONFIG_INET6_XFRM_TUNNEL is not set |
317 | # CONFIG_INET6_TUNNEL is not set | 360 | # CONFIG_INET6_TUNNEL is not set |
@@ -388,6 +431,7 @@ CONFIG_MTD_PARTITIONS=y | |||
388 | # User Modules And Translation Layers | 431 | # User Modules And Translation Layers |
389 | # | 432 | # |
390 | CONFIG_MTD_CHAR=y | 433 | CONFIG_MTD_CHAR=y |
434 | CONFIG_MTD_BLKDEVS=y | ||
391 | CONFIG_MTD_BLOCK=y | 435 | CONFIG_MTD_BLOCK=y |
392 | # CONFIG_FTL is not set | 436 | # CONFIG_FTL is not set |
393 | # CONFIG_NFTL is not set | 437 | # CONFIG_NFTL is not set |
@@ -461,6 +505,7 @@ CONFIG_MTD_CFI_UTIL=y | |||
461 | # | 505 | # |
462 | # Plug and Play support | 506 | # Plug and Play support |
463 | # | 507 | # |
508 | # CONFIG_PNPACPI is not set | ||
464 | 509 | ||
465 | # | 510 | # |
466 | # Block devices | 511 | # Block devices |
@@ -472,11 +517,14 @@ CONFIG_BLK_DEV_RAM=y | |||
472 | CONFIG_BLK_DEV_RAM_COUNT=16 | 517 | CONFIG_BLK_DEV_RAM_COUNT=16 |
473 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 518 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
474 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 519 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
475 | CONFIG_BLK_DEV_INITRD=y | ||
476 | # CONFIG_CDROM_PKTCDVD is not set | 520 | # CONFIG_CDROM_PKTCDVD is not set |
477 | # CONFIG_ATA_OVER_ETH is not set | 521 | # CONFIG_ATA_OVER_ETH is not set |
478 | 522 | ||
479 | # | 523 | # |
524 | # Misc devices | ||
525 | # | ||
526 | |||
527 | # | ||
480 | # ATA/ATAPI/MFM/RLL support | 528 | # ATA/ATAPI/MFM/RLL support |
481 | # | 529 | # |
482 | # CONFIG_IDE is not set | 530 | # CONFIG_IDE is not set |
@@ -649,17 +697,12 @@ CONFIG_HW_RANDOM=y | |||
649 | # CONFIG_GEN_RTC is not set | 697 | # CONFIG_GEN_RTC is not set |
650 | # CONFIG_DTLK is not set | 698 | # CONFIG_DTLK is not set |
651 | # CONFIG_R3964 is not set | 699 | # CONFIG_R3964 is not set |
652 | |||
653 | # | ||
654 | # Ftape, the floppy tape device driver | ||
655 | # | ||
656 | # CONFIG_RAW_DRIVER is not set | 700 | # CONFIG_RAW_DRIVER is not set |
657 | 701 | ||
658 | # | 702 | # |
659 | # TPM devices | 703 | # TPM devices |
660 | # | 704 | # |
661 | # CONFIG_TCG_TPM is not set | 705 | # CONFIG_TCG_TPM is not set |
662 | # CONFIG_TELCLOCK is not set | ||
663 | 706 | ||
664 | # | 707 | # |
665 | # I2C support | 708 | # I2C support |
@@ -675,6 +718,7 @@ CONFIG_HW_RANDOM=y | |||
675 | # | 718 | # |
676 | # Dallas's 1-wire bus | 719 | # Dallas's 1-wire bus |
677 | # | 720 | # |
721 | # CONFIG_W1 is not set | ||
678 | 722 | ||
679 | # | 723 | # |
680 | # Hardware Monitoring support | 724 | # Hardware Monitoring support |
@@ -683,18 +727,19 @@ CONFIG_HWMON=y | |||
683 | # CONFIG_HWMON_VID is not set | 727 | # CONFIG_HWMON_VID is not set |
684 | # CONFIG_SENSORS_ABITUGURU is not set | 728 | # CONFIG_SENSORS_ABITUGURU is not set |
685 | # CONFIG_SENSORS_F71805F is not set | 729 | # CONFIG_SENSORS_F71805F is not set |
730 | # CONFIG_SENSORS_PC87427 is not set | ||
686 | # CONFIG_SENSORS_VT1211 is not set | 731 | # CONFIG_SENSORS_VT1211 is not set |
687 | # CONFIG_HWMON_DEBUG_CHIP is not set | 732 | # CONFIG_HWMON_DEBUG_CHIP is not set |
688 | 733 | ||
689 | # | 734 | # |
690 | # Misc devices | 735 | # Multifunction device drivers |
691 | # | 736 | # |
737 | # CONFIG_MFD_SM501 is not set | ||
692 | 738 | ||
693 | # | 739 | # |
694 | # Multimedia devices | 740 | # Multimedia devices |
695 | # | 741 | # |
696 | # CONFIG_VIDEO_DEV is not set | 742 | # CONFIG_VIDEO_DEV is not set |
697 | CONFIG_VIDEO_V4L2=y | ||
698 | 743 | ||
699 | # | 744 | # |
700 | # Digital Video Broadcasting Devices | 745 | # Digital Video Broadcasting Devices |
@@ -704,7 +749,7 @@ CONFIG_VIDEO_V4L2=y | |||
704 | # | 749 | # |
705 | # Graphics support | 750 | # Graphics support |
706 | # | 751 | # |
707 | CONFIG_FIRMWARE_EDID=y | 752 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
708 | # CONFIG_FB is not set | 753 | # CONFIG_FB is not set |
709 | 754 | ||
710 | # | 755 | # |
@@ -713,6 +758,12 @@ CONFIG_FIRMWARE_EDID=y | |||
713 | # CONFIG_SOUND is not set | 758 | # CONFIG_SOUND is not set |
714 | 759 | ||
715 | # | 760 | # |
761 | # HID Devices | ||
762 | # | ||
763 | CONFIG_HID=y | ||
764 | # CONFIG_HID_DEBUG is not set | ||
765 | |||
766 | # | ||
716 | # USB support | 767 | # USB support |
717 | # | 768 | # |
718 | # CONFIG_USB_ARCH_HAS_HCD is not set | 769 | # CONFIG_USB_ARCH_HAS_HCD is not set |
@@ -773,16 +824,26 @@ CONFIG_FIRMWARE_EDID=y | |||
773 | # | 824 | # |
774 | 825 | ||
775 | # | 826 | # |
827 | # Auxiliary Display support | ||
828 | # | ||
829 | |||
830 | # | ||
831 | # Virtualization | ||
832 | # | ||
833 | |||
834 | # | ||
776 | # File systems | 835 | # File systems |
777 | # | 836 | # |
778 | CONFIG_EXT2_FS=y | 837 | CONFIG_EXT2_FS=y |
779 | # CONFIG_EXT2_FS_XATTR is not set | 838 | # CONFIG_EXT2_FS_XATTR is not set |
780 | # CONFIG_EXT2_FS_XIP is not set | 839 | # CONFIG_EXT2_FS_XIP is not set |
781 | # CONFIG_EXT3_FS is not set | 840 | # CONFIG_EXT3_FS is not set |
841 | # CONFIG_EXT4DEV_FS is not set | ||
782 | # CONFIG_REISERFS_FS is not set | 842 | # CONFIG_REISERFS_FS is not set |
783 | # CONFIG_JFS_FS is not set | 843 | # CONFIG_JFS_FS is not set |
784 | # CONFIG_FS_POSIX_ACL is not set | 844 | # CONFIG_FS_POSIX_ACL is not set |
785 | # CONFIG_XFS_FS is not set | 845 | # CONFIG_XFS_FS is not set |
846 | # CONFIG_GFS2_FS is not set | ||
786 | # CONFIG_MINIX_FS is not set | 847 | # CONFIG_MINIX_FS is not set |
787 | # CONFIG_ROMFS_FS is not set | 848 | # CONFIG_ROMFS_FS is not set |
788 | CONFIG_INOTIFY=y | 849 | CONFIG_INOTIFY=y |
@@ -828,7 +889,6 @@ CONFIG_RAMFS=y | |||
828 | # CONFIG_BEFS_FS is not set | 889 | # CONFIG_BEFS_FS is not set |
829 | # CONFIG_BFS_FS is not set | 890 | # CONFIG_BFS_FS is not set |
830 | # CONFIG_EFS_FS is not set | 891 | # CONFIG_EFS_FS is not set |
831 | # CONFIG_JFFS_FS is not set | ||
832 | CONFIG_JFFS2_FS=y | 892 | CONFIG_JFFS2_FS=y |
833 | CONFIG_JFFS2_FS_DEBUG=0 | 893 | CONFIG_JFFS2_FS_DEBUG=0 |
834 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 894 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
@@ -878,6 +938,10 @@ CONFIG_MSDOS_PARTITION=y | |||
878 | # CONFIG_NLS is not set | 938 | # CONFIG_NLS is not set |
879 | 939 | ||
880 | # | 940 | # |
941 | # Distributed Lock Manager | ||
942 | # | ||
943 | |||
944 | # | ||
881 | # Profiling support | 945 | # Profiling support |
882 | # | 946 | # |
883 | # CONFIG_PROFILING is not set | 947 | # CONFIG_PROFILING is not set |
@@ -885,15 +949,18 @@ CONFIG_MSDOS_PARTITION=y | |||
885 | # | 949 | # |
886 | # Kernel hacking | 950 | # Kernel hacking |
887 | # | 951 | # |
952 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
888 | # CONFIG_PRINTK_TIME is not set | 953 | # CONFIG_PRINTK_TIME is not set |
889 | CONFIG_ENABLE_MUST_CHECK=y | 954 | CONFIG_ENABLE_MUST_CHECK=y |
890 | # CONFIG_MAGIC_SYSRQ is not set | 955 | # CONFIG_MAGIC_SYSRQ is not set |
891 | # CONFIG_UNUSED_SYMBOLS is not set | 956 | # CONFIG_UNUSED_SYMBOLS is not set |
957 | # CONFIG_HEADERS_CHECK is not set | ||
892 | # CONFIG_DEBUG_KERNEL is not set | 958 | # CONFIG_DEBUG_KERNEL is not set |
893 | CONFIG_LOG_BUF_SHIFT=14 | 959 | CONFIG_LOG_BUF_SHIFT=14 |
894 | # CONFIG_DEBUG_BUGVERBOSE is not set | 960 | # CONFIG_DEBUG_BUGVERBOSE is not set |
895 | # CONFIG_SH_STANDARD_BIOS is not set | 961 | # CONFIG_SH_STANDARD_BIOS is not set |
896 | # CONFIG_KGDB is not set | 962 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
963 | # CONFIG_SH_KGDB is not set | ||
897 | 964 | ||
898 | # | 965 | # |
899 | # Security options | 966 | # Security options |
@@ -908,6 +975,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
908 | # | 975 | # |
909 | # Library routines | 976 | # Library routines |
910 | # | 977 | # |
978 | CONFIG_BITREVERSE=y | ||
911 | CONFIG_CRC_CCITT=y | 979 | CONFIG_CRC_CCITT=y |
912 | # CONFIG_CRC16 is not set | 980 | # CONFIG_CRC16 is not set |
913 | CONFIG_CRC32=y | 981 | CONFIG_CRC32=y |
@@ -915,3 +983,5 @@ CONFIG_CRC32=y | |||
915 | CONFIG_ZLIB_INFLATE=y | 983 | CONFIG_ZLIB_INFLATE=y |
916 | CONFIG_ZLIB_DEFLATE=y | 984 | CONFIG_ZLIB_DEFLATE=y |
917 | CONFIG_PLIST=y | 985 | CONFIG_PLIST=y |
986 | CONFIG_HAS_IOMEM=y | ||
987 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig new file mode 100644 index 000000000000..a5e37dbc5353 --- /dev/null +++ b/arch/sh/configs/se7712_defconfig | |||
@@ -0,0 +1,1088 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.21-rc4 | ||
4 | # Wed Mar 28 10:19:02 2007 | ||
5 | # | ||
6 | CONFIG_SUPERH=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
9 | CONFIG_GENERIC_HWEIGHT=y | ||
10 | CONFIG_GENERIC_HARDIRQS=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | ||
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
13 | # CONFIG_GENERIC_TIME is not set | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_LOCKDEP_SUPPORT=y | ||
16 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
18 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
19 | |||
20 | # | ||
21 | # Code maturity level options | ||
22 | # | ||
23 | CONFIG_EXPERIMENTAL=y | ||
24 | CONFIG_BROKEN_ON_SMP=y | ||
25 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
26 | |||
27 | # | ||
28 | # General setup | ||
29 | # | ||
30 | CONFIG_LOCALVERSION="" | ||
31 | # CONFIG_LOCALVERSION_AUTO is not set | ||
32 | # CONFIG_SWAP is not set | ||
33 | CONFIG_SYSVIPC=y | ||
34 | # CONFIG_IPC_NS is not set | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | CONFIG_POSIX_MQUEUE=y | ||
37 | CONFIG_BSD_PROCESS_ACCT=y | ||
38 | # CONFIG_BSD_PROCESS_ACCT_V3 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 | ||
43 | CONFIG_SYSFS_DEPRECATED=y | ||
44 | # CONFIG_RELAY is not set | ||
45 | # CONFIG_BLK_DEV_INITRD is not set | ||
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
47 | CONFIG_SYSCTL=y | ||
48 | CONFIG_EMBEDDED=y | ||
49 | CONFIG_UID16=y | ||
50 | CONFIG_SYSCTL_SYSCALL=y | ||
51 | CONFIG_KALLSYMS=y | ||
52 | CONFIG_KALLSYMS_ALL=y | ||
53 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
54 | CONFIG_HOTPLUG=y | ||
55 | CONFIG_PRINTK=y | ||
56 | # CONFIG_BUG is not set | ||
57 | CONFIG_ELF_CORE=y | ||
58 | # CONFIG_BASE_FULL is not set | ||
59 | CONFIG_FUTEX=y | ||
60 | CONFIG_EPOLL=y | ||
61 | # CONFIG_SHMEM is not set | ||
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | ||
64 | CONFIG_RT_MUTEXES=y | ||
65 | CONFIG_TINY_SHMEM=y | ||
66 | CONFIG_BASE_SMALL=1 | ||
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | ||
73 | # CONFIG_MODULE_UNLOAD is not set | ||
74 | # CONFIG_MODVERSIONS is not set | ||
75 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
76 | # CONFIG_KMOD is not set | ||
77 | |||
78 | # | ||
79 | # Block layer | ||
80 | # | ||
81 | CONFIG_BLOCK=y | ||
82 | # CONFIG_LBD is not set | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | # CONFIG_LSF is not set | ||
85 | |||
86 | # | ||
87 | # IO Schedulers | ||
88 | # | ||
89 | CONFIG_IOSCHED_NOOP=y | ||
90 | # CONFIG_IOSCHED_AS is not set | ||
91 | # CONFIG_IOSCHED_DEADLINE is not set | ||
92 | # CONFIG_IOSCHED_CFQ is not set | ||
93 | # CONFIG_DEFAULT_AS is not set | ||
94 | # CONFIG_DEFAULT_DEADLINE is not set | ||
95 | # CONFIG_DEFAULT_CFQ is not set | ||
96 | CONFIG_DEFAULT_NOOP=y | ||
97 | CONFIG_DEFAULT_IOSCHED="noop" | ||
98 | |||
99 | # | ||
100 | # System type | ||
101 | # | ||
102 | CONFIG_SOLUTION_ENGINE=y | ||
103 | CONFIG_SH_SOLUTION_ENGINE=y | ||
104 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
106 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
107 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
108 | # CONFIG_SH_7751_SYSTEMH is not set | ||
109 | # CONFIG_SH_HP6XX is not set | ||
110 | # CONFIG_SH_SATURN is not set | ||
111 | # CONFIG_SH_DREAMCAST is not set | ||
112 | # CONFIG_SH_MPC1211 is not set | ||
113 | # CONFIG_SH_SH03 is not set | ||
114 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
115 | # CONFIG_SH_HS7751RVOIP is not set | ||
116 | # CONFIG_SH_7710VOIPGW is not set | ||
117 | # CONFIG_SH_RTS7751R2D is not set | ||
118 | # CONFIG_SH_HIGHLANDER is not set | ||
119 | # CONFIG_SH_EDOSK7705 is not set | ||
120 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
121 | # CONFIG_SH_LANDISK is not set | ||
122 | # CONFIG_SH_TITAN is not set | ||
123 | # CONFIG_SH_SHMIN is not set | ||
124 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
125 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
126 | # CONFIG_SH_LBOX_RE2 is not set | ||
127 | # CONFIG_SH_UNKNOWN is not set | ||
128 | |||
129 | # | ||
130 | # Processor selection | ||
131 | # | ||
132 | CONFIG_CPU_SH3=y | ||
133 | |||
134 | # | ||
135 | # SH-2 Processor Support | ||
136 | # | ||
137 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
138 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
139 | |||
140 | # | ||
141 | # SH-2A Processor Support | ||
142 | # | ||
143 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
144 | |||
145 | # | ||
146 | # SH-3 Processor Support | ||
147 | # | ||
148 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
149 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||
150 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||
151 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||
152 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | ||
153 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||
154 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||
155 | CONFIG_CPU_SUBTYPE_SH7712=y | ||
156 | |||
157 | # | ||
158 | # SH-4 Processor Support | ||
159 | # | ||
160 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||
161 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||
162 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||
163 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | ||
164 | # CONFIG_CPU_SUBTYPE_SH7751 is not set | ||
165 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | ||
166 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | ||
167 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | ||
168 | |||
169 | # | ||
170 | # ST40 Processor Support | ||
171 | # | ||
172 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
173 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
174 | |||
175 | # | ||
176 | # SH-4A Processor Support | ||
177 | # | ||
178 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | ||
179 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | ||
180 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||
181 | |||
182 | # | ||
183 | # SH4AL-DSP Processor Support | ||
184 | # | ||
185 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
186 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||
187 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
188 | |||
189 | # | ||
190 | # Memory management options | ||
191 | # | ||
192 | CONFIG_MMU=y | ||
193 | CONFIG_PAGE_OFFSET=0x80000000 | ||
194 | CONFIG_MEMORY_START=0x0c000000 | ||
195 | CONFIG_MEMORY_SIZE=0x02000000 | ||
196 | CONFIG_VSYSCALL=y | ||
197 | CONFIG_PAGE_SIZE_4KB=y | ||
198 | # CONFIG_PAGE_SIZE_8KB is not set | ||
199 | # CONFIG_PAGE_SIZE_64KB is not set | ||
200 | CONFIG_SELECT_MEMORY_MODEL=y | ||
201 | CONFIG_FLATMEM_MANUAL=y | ||
202 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
203 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
204 | CONFIG_FLATMEM=y | ||
205 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
206 | # CONFIG_SPARSEMEM_STATIC is not set | ||
207 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
208 | # CONFIG_RESOURCES_64BIT is not set | ||
209 | CONFIG_ZONE_DMA_FLAG=0 | ||
210 | |||
211 | # | ||
212 | # Cache configuration | ||
213 | # | ||
214 | # CONFIG_SH_DIRECT_MAPPED is not set | ||
215 | # CONFIG_SH_WRITETHROUGH is not set | ||
216 | # CONFIG_SH_OCRAM is not set | ||
217 | CONFIG_CF_ENABLER=y | ||
218 | # CONFIG_CF_AREA5 is not set | ||
219 | CONFIG_CF_AREA6=y | ||
220 | CONFIG_CF_BASE_ADDR=0xb8000000 | ||
221 | |||
222 | # | ||
223 | # Processor features | ||
224 | # | ||
225 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
226 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
227 | # CONFIG_SH_FPU_EMU is not set | ||
228 | # CONFIG_SH_DSP is not set | ||
229 | # CONFIG_SH_ADC is not set | ||
230 | CONFIG_CPU_HAS_INTEVT=y | ||
231 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
232 | CONFIG_CPU_HAS_SR_RB=y | ||
233 | |||
234 | # | ||
235 | # Timer and clock configuration | ||
236 | # | ||
237 | CONFIG_SH_TMU=y | ||
238 | CONFIG_SH_TIMER_IRQ=16 | ||
239 | # CONFIG_NO_IDLE_HZ is not set | ||
240 | CONFIG_SH_PCLK_FREQ=33333333 | ||
241 | |||
242 | # | ||
243 | # CPU Frequency scaling | ||
244 | # | ||
245 | # CONFIG_CPU_FREQ is not set | ||
246 | |||
247 | # | ||
248 | # DMA support | ||
249 | # | ||
250 | # CONFIG_SH_DMA is not set | ||
251 | |||
252 | # | ||
253 | # Companion Chips | ||
254 | # | ||
255 | # CONFIG_HD6446X_SERIES is not set | ||
256 | |||
257 | # | ||
258 | # Additional SuperH Device Drivers | ||
259 | # | ||
260 | CONFIG_HEARTBEAT=y | ||
261 | # CONFIG_PUSH_SWITCH is not set | ||
262 | |||
263 | # | ||
264 | # Kernel features | ||
265 | # | ||
266 | # CONFIG_HZ_100 is not set | ||
267 | CONFIG_HZ_250=y | ||
268 | # CONFIG_HZ_300 is not set | ||
269 | # CONFIG_HZ_1000 is not set | ||
270 | CONFIG_HZ=250 | ||
271 | # CONFIG_KEXEC is not set | ||
272 | # CONFIG_SMP is not set | ||
273 | # CONFIG_PREEMPT_NONE is not set | ||
274 | CONFIG_PREEMPT_VOLUNTARY=y | ||
275 | # CONFIG_PREEMPT is not set | ||
276 | |||
277 | # | ||
278 | # Boot options | ||
279 | # | ||
280 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||
281 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||
282 | # CONFIG_UBC_WAKEUP is not set | ||
283 | CONFIG_CMDLINE_BOOL=y | ||
284 | CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" | ||
285 | |||
286 | # | ||
287 | # Bus options | ||
288 | # | ||
289 | # CONFIG_PCI is not set | ||
290 | |||
291 | # | ||
292 | # PCCARD (PCMCIA/CardBus) support | ||
293 | # | ||
294 | # CONFIG_PCCARD is not set | ||
295 | |||
296 | # | ||
297 | # PCI Hotplug Support | ||
298 | # | ||
299 | |||
300 | # | ||
301 | # Executable file formats | ||
302 | # | ||
303 | CONFIG_BINFMT_ELF=y | ||
304 | # CONFIG_BINFMT_FLAT is not set | ||
305 | # CONFIG_BINFMT_MISC is not set | ||
306 | |||
307 | # | ||
308 | # Power management options (EXPERIMENTAL) | ||
309 | # | ||
310 | # CONFIG_PM is not set | ||
311 | |||
312 | # | ||
313 | # Networking | ||
314 | # | ||
315 | CONFIG_NET=y | ||
316 | |||
317 | # | ||
318 | # Networking options | ||
319 | # | ||
320 | # CONFIG_NETDEBUG is not set | ||
321 | CONFIG_PACKET=y | ||
322 | CONFIG_PACKET_MMAP=y | ||
323 | CONFIG_UNIX=y | ||
324 | CONFIG_XFRM=y | ||
325 | # CONFIG_XFRM_USER is not set | ||
326 | # CONFIG_XFRM_SUB_POLICY is not set | ||
327 | # CONFIG_XFRM_MIGRATE is not set | ||
328 | CONFIG_NET_KEY=y | ||
329 | # CONFIG_NET_KEY_MIGRATE is not set | ||
330 | CONFIG_INET=y | ||
331 | CONFIG_IP_MULTICAST=y | ||
332 | CONFIG_IP_ADVANCED_ROUTER=y | ||
333 | CONFIG_ASK_IP_FIB_HASH=y | ||
334 | # CONFIG_IP_FIB_TRIE is not set | ||
335 | CONFIG_IP_FIB_HASH=y | ||
336 | CONFIG_IP_MULTIPLE_TABLES=y | ||
337 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
338 | # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set | ||
339 | CONFIG_IP_ROUTE_VERBOSE=y | ||
340 | CONFIG_IP_PNP=y | ||
341 | CONFIG_IP_PNP_DHCP=y | ||
342 | # CONFIG_IP_PNP_BOOTP is not set | ||
343 | # CONFIG_IP_PNP_RARP is not set | ||
344 | # CONFIG_NET_IPIP is not set | ||
345 | # CONFIG_NET_IPGRE is not set | ||
346 | CONFIG_IP_MROUTE=y | ||
347 | CONFIG_IP_PIMSM_V1=y | ||
348 | CONFIG_IP_PIMSM_V2=y | ||
349 | # CONFIG_ARPD is not set | ||
350 | CONFIG_SYN_COOKIES=y | ||
351 | CONFIG_INET_AH=y | ||
352 | CONFIG_INET_ESP=y | ||
353 | CONFIG_INET_IPCOMP=y | ||
354 | CONFIG_INET_XFRM_TUNNEL=y | ||
355 | CONFIG_INET_TUNNEL=y | ||
356 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
357 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
358 | CONFIG_INET_XFRM_MODE_BEET=y | ||
359 | # CONFIG_INET_DIAG is not set | ||
360 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
361 | CONFIG_TCP_CONG_CUBIC=y | ||
362 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
363 | # CONFIG_TCP_MD5SIG is not set | ||
364 | # CONFIG_IPV6 is not set | ||
365 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
366 | # CONFIG_INET6_TUNNEL is not set | ||
367 | # CONFIG_NETWORK_SECMARK is not set | ||
368 | # CONFIG_NETFILTER is not set | ||
369 | |||
370 | # | ||
371 | # DCCP Configuration (EXPERIMENTAL) | ||
372 | # | ||
373 | # CONFIG_IP_DCCP is not set | ||
374 | |||
375 | # | ||
376 | # SCTP Configuration (EXPERIMENTAL) | ||
377 | # | ||
378 | # CONFIG_IP_SCTP is not set | ||
379 | |||
380 | # | ||
381 | # TIPC Configuration (EXPERIMENTAL) | ||
382 | # | ||
383 | # CONFIG_TIPC is not set | ||
384 | # CONFIG_ATM is not set | ||
385 | # CONFIG_BRIDGE is not set | ||
386 | # CONFIG_VLAN_8021Q is not set | ||
387 | # CONFIG_DECNET is not set | ||
388 | # CONFIG_LLC2 is not set | ||
389 | # CONFIG_IPX is not set | ||
390 | # CONFIG_ATALK is not set | ||
391 | # CONFIG_X25 is not set | ||
392 | # CONFIG_LAPB is not set | ||
393 | # CONFIG_ECONET is not set | ||
394 | # CONFIG_WAN_ROUTER is not set | ||
395 | |||
396 | # | ||
397 | # QoS and/or fair queueing | ||
398 | # | ||
399 | CONFIG_NET_SCHED=y | ||
400 | CONFIG_NET_SCH_FIFO=y | ||
401 | CONFIG_NET_SCH_CLK_JIFFIES=y | ||
402 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | ||
403 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
404 | |||
405 | # | ||
406 | # Queueing/Scheduling | ||
407 | # | ||
408 | CONFIG_NET_SCH_CBQ=y | ||
409 | CONFIG_NET_SCH_HTB=y | ||
410 | CONFIG_NET_SCH_HFSC=y | ||
411 | CONFIG_NET_SCH_PRIO=y | ||
412 | CONFIG_NET_SCH_RED=y | ||
413 | CONFIG_NET_SCH_SFQ=y | ||
414 | CONFIG_NET_SCH_TEQL=y | ||
415 | CONFIG_NET_SCH_TBF=y | ||
416 | CONFIG_NET_SCH_GRED=y | ||
417 | CONFIG_NET_SCH_DSMARK=y | ||
418 | CONFIG_NET_SCH_NETEM=y | ||
419 | CONFIG_NET_SCH_INGRESS=y | ||
420 | |||
421 | # | ||
422 | # Classification | ||
423 | # | ||
424 | CONFIG_NET_CLS=y | ||
425 | # CONFIG_NET_CLS_BASIC is not set | ||
426 | CONFIG_NET_CLS_TCINDEX=y | ||
427 | CONFIG_NET_CLS_ROUTE4=y | ||
428 | CONFIG_NET_CLS_ROUTE=y | ||
429 | CONFIG_NET_CLS_FW=y | ||
430 | # CONFIG_NET_CLS_U32 is not set | ||
431 | # CONFIG_NET_CLS_RSVP is not set | ||
432 | # CONFIG_NET_CLS_RSVP6 is not set | ||
433 | # CONFIG_NET_EMATCH is not set | ||
434 | # CONFIG_NET_CLS_ACT is not set | ||
435 | # CONFIG_NET_CLS_POLICE is not set | ||
436 | CONFIG_NET_CLS_IND=y | ||
437 | CONFIG_NET_ESTIMATOR=y | ||
438 | |||
439 | # | ||
440 | # Network testing | ||
441 | # | ||
442 | # CONFIG_NET_PKTGEN is not set | ||
443 | # CONFIG_HAMRADIO is not set | ||
444 | # CONFIG_IRDA is not set | ||
445 | # CONFIG_BT is not set | ||
446 | # CONFIG_IEEE80211 is not set | ||
447 | CONFIG_FIB_RULES=y | ||
448 | |||
449 | # | ||
450 | # Device Drivers | ||
451 | # | ||
452 | |||
453 | # | ||
454 | # Generic Driver Options | ||
455 | # | ||
456 | CONFIG_STANDALONE=y | ||
457 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
458 | CONFIG_FW_LOADER=y | ||
459 | # CONFIG_DEBUG_DRIVER is not set | ||
460 | # CONFIG_DEBUG_DEVRES 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 | ||
467 | |||
468 | # | ||
469 | # Memory Technology Devices (MTD) | ||
470 | # | ||
471 | CONFIG_MTD=y | ||
472 | # CONFIG_MTD_DEBUG is not set | ||
473 | CONFIG_MTD_CONCAT=y | ||
474 | CONFIG_MTD_PARTITIONS=y | ||
475 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
476 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
477 | |||
478 | # | ||
479 | # User Modules And Translation Layers | ||
480 | # | ||
481 | CONFIG_MTD_CHAR=y | ||
482 | CONFIG_MTD_BLKDEVS=y | ||
483 | CONFIG_MTD_BLOCK=y | ||
484 | # CONFIG_FTL is not set | ||
485 | # CONFIG_NFTL is not set | ||
486 | # CONFIG_INFTL is not set | ||
487 | # CONFIG_RFD_FTL is not set | ||
488 | # CONFIG_SSFDC is not set | ||
489 | |||
490 | # | ||
491 | # RAM/ROM/Flash chip drivers | ||
492 | # | ||
493 | CONFIG_MTD_CFI=y | ||
494 | # CONFIG_MTD_JEDECPROBE is not set | ||
495 | CONFIG_MTD_GEN_PROBE=y | ||
496 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
497 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
498 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
499 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
500 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
501 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
502 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
503 | CONFIG_MTD_CFI_I1=y | ||
504 | CONFIG_MTD_CFI_I2=y | ||
505 | # CONFIG_MTD_CFI_I4 is not set | ||
506 | # CONFIG_MTD_CFI_I8 is not set | ||
507 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
508 | CONFIG_MTD_CFI_AMDSTD=y | ||
509 | # CONFIG_MTD_CFI_STAA is not set | ||
510 | CONFIG_MTD_CFI_UTIL=y | ||
511 | # CONFIG_MTD_RAM is not set | ||
512 | # CONFIG_MTD_ROM is not set | ||
513 | # CONFIG_MTD_ABSENT is not set | ||
514 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
515 | |||
516 | # | ||
517 | # Mapping drivers for chip access | ||
518 | # | ||
519 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
520 | # CONFIG_MTD_PHYSMAP is not set | ||
521 | # CONFIG_MTD_PLATRAM is not set | ||
522 | |||
523 | # | ||
524 | # Self-contained MTD device drivers | ||
525 | # | ||
526 | # CONFIG_MTD_SLRAM is not set | ||
527 | # CONFIG_MTD_PHRAM is not set | ||
528 | # CONFIG_MTD_MTDRAM is not set | ||
529 | # CONFIG_MTD_BLOCK2MTD is not set | ||
530 | |||
531 | # | ||
532 | # Disk-On-Chip Device Drivers | ||
533 | # | ||
534 | # CONFIG_MTD_DOC2000 is not set | ||
535 | # CONFIG_MTD_DOC2001 is not set | ||
536 | # CONFIG_MTD_DOC2001PLUS is not set | ||
537 | |||
538 | # | ||
539 | # NAND Flash Device Drivers | ||
540 | # | ||
541 | # CONFIG_MTD_NAND is not set | ||
542 | |||
543 | # | ||
544 | # OneNAND Flash Device Drivers | ||
545 | # | ||
546 | # CONFIG_MTD_ONENAND is not set | ||
547 | |||
548 | # | ||
549 | # Parallel port support | ||
550 | # | ||
551 | # CONFIG_PARPORT is not set | ||
552 | |||
553 | # | ||
554 | # Plug and Play support | ||
555 | # | ||
556 | # CONFIG_PNPACPI is not set | ||
557 | |||
558 | # | ||
559 | # Block devices | ||
560 | # | ||
561 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
562 | # CONFIG_BLK_DEV_LOOP is not set | ||
563 | # CONFIG_BLK_DEV_NBD is not set | ||
564 | # CONFIG_BLK_DEV_RAM is not set | ||
565 | # CONFIG_CDROM_PKTCDVD is not set | ||
566 | # CONFIG_ATA_OVER_ETH is not set | ||
567 | |||
568 | # | ||
569 | # Misc devices | ||
570 | # | ||
571 | |||
572 | # | ||
573 | # ATA/ATAPI/MFM/RLL support | ||
574 | # | ||
575 | # CONFIG_IDE is not set | ||
576 | |||
577 | # | ||
578 | # SCSI device support | ||
579 | # | ||
580 | # CONFIG_RAID_ATTRS is not set | ||
581 | CONFIG_SCSI=y | ||
582 | # CONFIG_SCSI_TGT is not set | ||
583 | # CONFIG_SCSI_NETLINK is not set | ||
584 | CONFIG_SCSI_PROC_FS=y | ||
585 | |||
586 | # | ||
587 | # SCSI support type (disk, tape, CD-ROM) | ||
588 | # | ||
589 | CONFIG_BLK_DEV_SD=y | ||
590 | # CONFIG_CHR_DEV_ST is not set | ||
591 | # CONFIG_CHR_DEV_OSST is not set | ||
592 | # CONFIG_BLK_DEV_SR is not set | ||
593 | # CONFIG_CHR_DEV_SG is not set | ||
594 | # CONFIG_CHR_DEV_SCH is not set | ||
595 | |||
596 | # | ||
597 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
598 | # | ||
599 | # CONFIG_SCSI_MULTI_LUN is not set | ||
600 | # CONFIG_SCSI_CONSTANTS is not set | ||
601 | # CONFIG_SCSI_LOGGING is not set | ||
602 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
603 | |||
604 | # | ||
605 | # SCSI Transports | ||
606 | # | ||
607 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
608 | # CONFIG_SCSI_FC_ATTRS is not set | ||
609 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
610 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
611 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
612 | |||
613 | # | ||
614 | # SCSI low-level drivers | ||
615 | # | ||
616 | # CONFIG_ISCSI_TCP is not set | ||
617 | # CONFIG_SCSI_DEBUG is not set | ||
618 | |||
619 | # | ||
620 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
621 | # | ||
622 | CONFIG_ATA=y | ||
623 | # CONFIG_ATA_NONSTANDARD is not set | ||
624 | CONFIG_PATA_PLATFORM=y | ||
625 | |||
626 | # | ||
627 | # Multi-device support (RAID and LVM) | ||
628 | # | ||
629 | # CONFIG_MD is not set | ||
630 | |||
631 | # | ||
632 | # Fusion MPT device support | ||
633 | # | ||
634 | # CONFIG_FUSION is not set | ||
635 | |||
636 | # | ||
637 | # IEEE 1394 (FireWire) support | ||
638 | # | ||
639 | |||
640 | # | ||
641 | # I2O device support | ||
642 | # | ||
643 | |||
644 | # | ||
645 | # Network device support | ||
646 | # | ||
647 | CONFIG_NETDEVICES=y | ||
648 | # CONFIG_DUMMY is not set | ||
649 | # CONFIG_BONDING is not set | ||
650 | # CONFIG_EQUALIZER is not set | ||
651 | # CONFIG_TUN is not set | ||
652 | |||
653 | # | ||
654 | # PHY device support | ||
655 | # | ||
656 | |||
657 | # | ||
658 | # Ethernet (10 or 100Mbit) | ||
659 | # | ||
660 | # CONFIG_NET_ETHERNET is not set | ||
661 | |||
662 | # | ||
663 | # Ethernet (1000 Mbit) | ||
664 | # | ||
665 | |||
666 | # | ||
667 | # Ethernet (10000 Mbit) | ||
668 | # | ||
669 | |||
670 | # | ||
671 | # Token Ring devices | ||
672 | # | ||
673 | |||
674 | # | ||
675 | # Wireless LAN (non-hamradio) | ||
676 | # | ||
677 | # CONFIG_NET_RADIO is not set | ||
678 | |||
679 | # | ||
680 | # Wan interfaces | ||
681 | # | ||
682 | # CONFIG_WAN is not set | ||
683 | # CONFIG_PPP is not set | ||
684 | # CONFIG_SLIP is not set | ||
685 | # CONFIG_SHAPER is not set | ||
686 | # CONFIG_NETCONSOLE is not set | ||
687 | # CONFIG_NETPOLL is not set | ||
688 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
689 | |||
690 | # | ||
691 | # ISDN subsystem | ||
692 | # | ||
693 | # CONFIG_ISDN is not set | ||
694 | |||
695 | # | ||
696 | # Telephony Support | ||
697 | # | ||
698 | # CONFIG_PHONE is not set | ||
699 | |||
700 | # | ||
701 | # Input device support | ||
702 | # | ||
703 | # CONFIG_INPUT is not set | ||
704 | |||
705 | # | ||
706 | # Hardware I/O ports | ||
707 | # | ||
708 | # CONFIG_SERIO is not set | ||
709 | # CONFIG_GAMEPORT is not set | ||
710 | |||
711 | # | ||
712 | # Character devices | ||
713 | # | ||
714 | # CONFIG_VT is not set | ||
715 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
716 | |||
717 | # | ||
718 | # Serial drivers | ||
719 | # | ||
720 | # CONFIG_SERIAL_8250 is not set | ||
721 | |||
722 | # | ||
723 | # Non-8250 serial port support | ||
724 | # | ||
725 | CONFIG_SERIAL_SH_SCI=y | ||
726 | CONFIG_SERIAL_SH_SCI_NR_UARTS=2 | ||
727 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
728 | CONFIG_SERIAL_CORE=y | ||
729 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
730 | CONFIG_UNIX98_PTYS=y | ||
731 | # CONFIG_LEGACY_PTYS is not set | ||
732 | |||
733 | # | ||
734 | # IPMI | ||
735 | # | ||
736 | # CONFIG_IPMI_HANDLER is not set | ||
737 | |||
738 | # | ||
739 | # Watchdog Cards | ||
740 | # | ||
741 | # CONFIG_WATCHDOG is not set | ||
742 | CONFIG_HW_RANDOM=m | ||
743 | # CONFIG_GEN_RTC is not set | ||
744 | # CONFIG_DTLK is not set | ||
745 | # CONFIG_R3964 is not set | ||
746 | # CONFIG_RAW_DRIVER is not set | ||
747 | |||
748 | # | ||
749 | # TPM devices | ||
750 | # | ||
751 | # CONFIG_TCG_TPM is not set | ||
752 | |||
753 | # | ||
754 | # I2C support | ||
755 | # | ||
756 | # CONFIG_I2C is not set | ||
757 | |||
758 | # | ||
759 | # SPI support | ||
760 | # | ||
761 | # CONFIG_SPI is not set | ||
762 | # CONFIG_SPI_MASTER is not set | ||
763 | |||
764 | # | ||
765 | # Dallas's 1-wire bus | ||
766 | # | ||
767 | # CONFIG_W1 is not set | ||
768 | |||
769 | # | ||
770 | # Hardware Monitoring support | ||
771 | # | ||
772 | # CONFIG_HWMON is not set | ||
773 | # CONFIG_HWMON_VID is not set | ||
774 | |||
775 | # | ||
776 | # Multifunction device drivers | ||
777 | # | ||
778 | # CONFIG_MFD_SM501 is not set | ||
779 | |||
780 | # | ||
781 | # Multimedia devices | ||
782 | # | ||
783 | # CONFIG_VIDEO_DEV is not set | ||
784 | |||
785 | # | ||
786 | # Digital Video Broadcasting Devices | ||
787 | # | ||
788 | # CONFIG_DVB is not set | ||
789 | |||
790 | # | ||
791 | # Graphics support | ||
792 | # | ||
793 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
794 | # CONFIG_FB is not set | ||
795 | |||
796 | # | ||
797 | # Sound | ||
798 | # | ||
799 | # CONFIG_SOUND is not set | ||
800 | |||
801 | # | ||
802 | # USB support | ||
803 | # | ||
804 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
805 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
806 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
807 | |||
808 | # | ||
809 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
810 | # | ||
811 | |||
812 | # | ||
813 | # USB Gadget Support | ||
814 | # | ||
815 | # CONFIG_USB_GADGET is not set | ||
816 | |||
817 | # | ||
818 | # MMC/SD Card support | ||
819 | # | ||
820 | # CONFIG_MMC is not set | ||
821 | |||
822 | # | ||
823 | # LED devices | ||
824 | # | ||
825 | CONFIG_NEW_LEDS=y | ||
826 | CONFIG_LEDS_CLASS=y | ||
827 | |||
828 | # | ||
829 | # LED drivers | ||
830 | # | ||
831 | |||
832 | # | ||
833 | # LED Triggers | ||
834 | # | ||
835 | CONFIG_LEDS_TRIGGERS=y | ||
836 | # CONFIG_LEDS_TRIGGER_TIMER is not set | ||
837 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | ||
838 | |||
839 | # | ||
840 | # InfiniBand support | ||
841 | # | ||
842 | |||
843 | # | ||
844 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
845 | # | ||
846 | |||
847 | # | ||
848 | # Real Time Clock | ||
849 | # | ||
850 | # CONFIG_RTC_CLASS is not set | ||
851 | |||
852 | # | ||
853 | # DMA Engine support | ||
854 | # | ||
855 | # CONFIG_DMA_ENGINE is not set | ||
856 | |||
857 | # | ||
858 | # DMA Clients | ||
859 | # | ||
860 | |||
861 | # | ||
862 | # DMA Devices | ||
863 | # | ||
864 | |||
865 | # | ||
866 | # Auxiliary Display support | ||
867 | # | ||
868 | |||
869 | # | ||
870 | # Virtualization | ||
871 | # | ||
872 | |||
873 | # | ||
874 | # File systems | ||
875 | # | ||
876 | CONFIG_EXT2_FS=y | ||
877 | CONFIG_EXT2_FS_XATTR=y | ||
878 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
879 | CONFIG_EXT2_FS_SECURITY=y | ||
880 | # CONFIG_EXT2_FS_XIP is not set | ||
881 | # CONFIG_EXT3_FS is not set | ||
882 | # CONFIG_EXT4DEV_FS is not set | ||
883 | CONFIG_FS_MBCACHE=y | ||
884 | # CONFIG_REISERFS_FS is not set | ||
885 | # CONFIG_JFS_FS is not set | ||
886 | CONFIG_FS_POSIX_ACL=y | ||
887 | # CONFIG_XFS_FS is not set | ||
888 | # CONFIG_GFS2_FS is not set | ||
889 | # CONFIG_OCFS2_FS is not set | ||
890 | # CONFIG_MINIX_FS is not set | ||
891 | # CONFIG_ROMFS_FS is not set | ||
892 | # CONFIG_INOTIFY is not set | ||
893 | # CONFIG_QUOTA is not set | ||
894 | # CONFIG_DNOTIFY is not set | ||
895 | # CONFIG_AUTOFS_FS is not set | ||
896 | # CONFIG_AUTOFS4_FS is not set | ||
897 | # CONFIG_FUSE_FS is not set | ||
898 | |||
899 | # | ||
900 | # CD-ROM/DVD Filesystems | ||
901 | # | ||
902 | # CONFIG_ISO9660_FS is not set | ||
903 | # CONFIG_UDF_FS is not set | ||
904 | |||
905 | # | ||
906 | # DOS/FAT/NT Filesystems | ||
907 | # | ||
908 | # CONFIG_MSDOS_FS is not set | ||
909 | # CONFIG_VFAT_FS is not set | ||
910 | # CONFIG_NTFS_FS is not set | ||
911 | |||
912 | # | ||
913 | # Pseudo filesystems | ||
914 | # | ||
915 | CONFIG_PROC_FS=y | ||
916 | # CONFIG_PROC_KCORE is not set | ||
917 | CONFIG_PROC_SYSCTL=y | ||
918 | CONFIG_SYSFS=y | ||
919 | CONFIG_TMPFS=y | ||
920 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
921 | # CONFIG_HUGETLBFS is not set | ||
922 | # CONFIG_HUGETLB_PAGE is not set | ||
923 | CONFIG_RAMFS=y | ||
924 | # CONFIG_CONFIGFS_FS is not set | ||
925 | |||
926 | # | ||
927 | # Miscellaneous filesystems | ||
928 | # | ||
929 | # CONFIG_ADFS_FS is not set | ||
930 | # CONFIG_AFFS_FS is not set | ||
931 | # CONFIG_HFS_FS is not set | ||
932 | # CONFIG_HFSPLUS_FS is not set | ||
933 | # CONFIG_BEFS_FS is not set | ||
934 | # CONFIG_BFS_FS is not set | ||
935 | # CONFIG_EFS_FS is not set | ||
936 | CONFIG_JFFS2_FS=y | ||
937 | CONFIG_JFFS2_FS_DEBUG=0 | ||
938 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
939 | # CONFIG_JFFS2_SUMMARY is not set | ||
940 | # CONFIG_JFFS2_FS_XATTR is not set | ||
941 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
942 | CONFIG_JFFS2_ZLIB=y | ||
943 | CONFIG_JFFS2_RTIME=y | ||
944 | # CONFIG_JFFS2_RUBIN is not set | ||
945 | CONFIG_CRAMFS=y | ||
946 | # CONFIG_VXFS_FS is not set | ||
947 | # CONFIG_HPFS_FS is not set | ||
948 | # CONFIG_QNX4FS_FS is not set | ||
949 | # CONFIG_SYSV_FS is not set | ||
950 | # CONFIG_UFS_FS is not set | ||
951 | |||
952 | # | ||
953 | # Network File Systems | ||
954 | # | ||
955 | # CONFIG_NFS_FS is not set | ||
956 | # CONFIG_NFSD is not set | ||
957 | # CONFIG_SMB_FS is not set | ||
958 | # CONFIG_CIFS is not set | ||
959 | # CONFIG_NCP_FS is not set | ||
960 | # CONFIG_CODA_FS is not set | ||
961 | # CONFIG_AFS_FS is not set | ||
962 | # CONFIG_9P_FS is not set | ||
963 | |||
964 | # | ||
965 | # Partition Types | ||
966 | # | ||
967 | # CONFIG_PARTITION_ADVANCED is not set | ||
968 | CONFIG_MSDOS_PARTITION=y | ||
969 | |||
970 | # | ||
971 | # Native Language Support | ||
972 | # | ||
973 | # CONFIG_NLS is not set | ||
974 | |||
975 | # | ||
976 | # Distributed Lock Manager | ||
977 | # | ||
978 | # CONFIG_DLM is not set | ||
979 | |||
980 | # | ||
981 | # Profiling support | ||
982 | # | ||
983 | # CONFIG_PROFILING is not set | ||
984 | |||
985 | # | ||
986 | # Kernel hacking | ||
987 | # | ||
988 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
989 | # CONFIG_PRINTK_TIME is not set | ||
990 | CONFIG_ENABLE_MUST_CHECK=y | ||
991 | # CONFIG_MAGIC_SYSRQ is not set | ||
992 | # CONFIG_UNUSED_SYMBOLS is not set | ||
993 | # CONFIG_DEBUG_FS is not set | ||
994 | # CONFIG_HEADERS_CHECK is not set | ||
995 | CONFIG_DEBUG_KERNEL=y | ||
996 | # CONFIG_DEBUG_SHIRQ is not set | ||
997 | CONFIG_LOG_BUF_SHIFT=14 | ||
998 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
999 | # CONFIG_SCHEDSTATS is not set | ||
1000 | # CONFIG_TIMER_STATS is not set | ||
1001 | # CONFIG_DEBUG_SLAB is not set | ||
1002 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1003 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1004 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1005 | # CONFIG_DEBUG_MUTEXES is not set | ||
1006 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1007 | # CONFIG_PROVE_LOCKING is not set | ||
1008 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1009 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1010 | # CONFIG_DEBUG_KOBJECT is not set | ||
1011 | CONFIG_DEBUG_INFO=y | ||
1012 | # CONFIG_DEBUG_VM is not set | ||
1013 | # CONFIG_DEBUG_LIST is not set | ||
1014 | CONFIG_FRAME_POINTER=y | ||
1015 | # CONFIG_FORCED_INLINING is not set | ||
1016 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1017 | # CONFIG_FAULT_INJECTION is not set | ||
1018 | # CONFIG_SH_STANDARD_BIOS is not set | ||
1019 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1020 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
1021 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1022 | # CONFIG_4KSTACKS is not set | ||
1023 | # CONFIG_SH_KGDB is not set | ||
1024 | |||
1025 | # | ||
1026 | # Security options | ||
1027 | # | ||
1028 | # CONFIG_KEYS is not set | ||
1029 | # CONFIG_SECURITY is not set | ||
1030 | |||
1031 | # | ||
1032 | # Cryptographic options | ||
1033 | # | ||
1034 | CONFIG_CRYPTO=y | ||
1035 | CONFIG_CRYPTO_ALGAPI=y | ||
1036 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1037 | CONFIG_CRYPTO_HASH=y | ||
1038 | CONFIG_CRYPTO_MANAGER=y | ||
1039 | CONFIG_CRYPTO_HMAC=y | ||
1040 | # CONFIG_CRYPTO_XCBC is not set | ||
1041 | # CONFIG_CRYPTO_NULL is not set | ||
1042 | # CONFIG_CRYPTO_MD4 is not set | ||
1043 | CONFIG_CRYPTO_MD5=y | ||
1044 | CONFIG_CRYPTO_SHA1=y | ||
1045 | # CONFIG_CRYPTO_SHA256 is not set | ||
1046 | # CONFIG_CRYPTO_SHA512 is not set | ||
1047 | # CONFIG_CRYPTO_WP512 is not set | ||
1048 | # CONFIG_CRYPTO_TGR192 is not set | ||
1049 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1050 | CONFIG_CRYPTO_ECB=m | ||
1051 | CONFIG_CRYPTO_CBC=y | ||
1052 | CONFIG_CRYPTO_PCBC=m | ||
1053 | # CONFIG_CRYPTO_LRW is not set | ||
1054 | CONFIG_CRYPTO_DES=y | ||
1055 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1056 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1057 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1058 | # CONFIG_CRYPTO_SERPENT is not set | ||
1059 | # CONFIG_CRYPTO_AES is not set | ||
1060 | # CONFIG_CRYPTO_CAST5 is not set | ||
1061 | # CONFIG_CRYPTO_CAST6 is not set | ||
1062 | # CONFIG_CRYPTO_TEA is not set | ||
1063 | # CONFIG_CRYPTO_ARC4 is not set | ||
1064 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1065 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1066 | CONFIG_CRYPTO_DEFLATE=y | ||
1067 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1068 | # CONFIG_CRYPTO_CRC32C is not set | ||
1069 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1070 | # CONFIG_CRYPTO_TEST is not set | ||
1071 | |||
1072 | # | ||
1073 | # Hardware crypto devices | ||
1074 | # | ||
1075 | |||
1076 | # | ||
1077 | # Library routines | ||
1078 | # | ||
1079 | CONFIG_BITREVERSE=y | ||
1080 | CONFIG_CRC_CCITT=y | ||
1081 | # CONFIG_CRC16 is not set | ||
1082 | CONFIG_CRC32=y | ||
1083 | # CONFIG_LIBCRC32C is not set | ||
1084 | CONFIG_ZLIB_INFLATE=y | ||
1085 | CONFIG_ZLIB_DEFLATE=y | ||
1086 | CONFIG_PLIST=y | ||
1087 | CONFIG_HAS_IOMEM=y | ||
1088 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig new file mode 100644 index 000000000000..ca4c663dfa37 --- /dev/null +++ b/arch/sh/configs/se7722_defconfig | |||
@@ -0,0 +1,980 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.21-rc7 | ||
4 | # Fri Apr 27 16:30:30 2007 | ||
5 | # | ||
6 | CONFIG_SUPERH=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | CONFIG_GENERIC_BUG=y | ||
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
10 | CONFIG_GENERIC_HWEIGHT=y | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
20 | |||
21 | # | ||
22 | # Code maturity level options | ||
23 | # | ||
24 | CONFIG_EXPERIMENTAL=y | ||
25 | CONFIG_BROKEN_ON_SMP=y | ||
26 | CONFIG_LOCK_KERNEL=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SWAP=y | ||
35 | CONFIG_SYSVIPC=y | ||
36 | # CONFIG_IPC_NS is not set | ||
37 | CONFIG_SYSVIPC_SYSCTL=y | ||
38 | # CONFIG_POSIX_MQUEUE is not set | ||
39 | CONFIG_BSD_PROCESS_ACCT=y | ||
40 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
41 | # CONFIG_TASKSTATS is not set | ||
42 | # CONFIG_UTS_NS is not set | ||
43 | # CONFIG_AUDIT is not set | ||
44 | CONFIG_IKCONFIG=y | ||
45 | CONFIG_IKCONFIG_PROC=y | ||
46 | # CONFIG_SYSFS_DEPRECATED is not set | ||
47 | # CONFIG_RELAY is not set | ||
48 | CONFIG_BLK_DEV_INITRD=y | ||
49 | CONFIG_INITRAMFS_SOURCE="" | ||
50 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
51 | CONFIG_SYSCTL=y | ||
52 | CONFIG_EMBEDDED=y | ||
53 | CONFIG_UID16=y | ||
54 | CONFIG_SYSCTL_SYSCALL=y | ||
55 | CONFIG_KALLSYMS=y | ||
56 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
57 | CONFIG_HOTPLUG=y | ||
58 | CONFIG_PRINTK=y | ||
59 | CONFIG_BUG=y | ||
60 | CONFIG_ELF_CORE=y | ||
61 | CONFIG_BASE_FULL=y | ||
62 | CONFIG_FUTEX=y | ||
63 | CONFIG_EPOLL=y | ||
64 | CONFIG_SHMEM=y | ||
65 | CONFIG_SLAB=y | ||
66 | CONFIG_VM_EVENT_COUNTERS=y | ||
67 | CONFIG_RT_MUTEXES=y | ||
68 | # CONFIG_TINY_SHMEM is not set | ||
69 | CONFIG_BASE_SMALL=0 | ||
70 | # CONFIG_SLOB is not set | ||
71 | |||
72 | # | ||
73 | # Loadable module support | ||
74 | # | ||
75 | CONFIG_MODULES=y | ||
76 | CONFIG_MODULE_UNLOAD=y | ||
77 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
78 | # CONFIG_MODVERSIONS is not set | ||
79 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
80 | CONFIG_KMOD=y | ||
81 | |||
82 | # | ||
83 | # Block layer | ||
84 | # | ||
85 | CONFIG_BLOCK=y | ||
86 | # CONFIG_LBD is not set | ||
87 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
88 | # CONFIG_LSF is not set | ||
89 | |||
90 | # | ||
91 | # IO Schedulers | ||
92 | # | ||
93 | CONFIG_IOSCHED_NOOP=y | ||
94 | # CONFIG_IOSCHED_AS is not set | ||
95 | # CONFIG_IOSCHED_DEADLINE is not set | ||
96 | # CONFIG_IOSCHED_CFQ is not set | ||
97 | # CONFIG_DEFAULT_AS is not set | ||
98 | # CONFIG_DEFAULT_DEADLINE is not set | ||
99 | # CONFIG_DEFAULT_CFQ is not set | ||
100 | CONFIG_DEFAULT_NOOP=y | ||
101 | CONFIG_DEFAULT_IOSCHED="noop" | ||
102 | |||
103 | # | ||
104 | # System type | ||
105 | # | ||
106 | CONFIG_SOLUTION_ENGINE=y | ||
107 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
108 | CONFIG_SH_7722_SOLUTION_ENGINE=y | ||
109 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
110 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | ||
111 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
112 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
113 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
114 | # CONFIG_SH_7751_SYSTEMH is not set | ||
115 | # CONFIG_SH_HP6XX is not set | ||
116 | # CONFIG_SH_SATURN is not set | ||
117 | # CONFIG_SH_DREAMCAST is not set | ||
118 | # CONFIG_SH_MPC1211 is not set | ||
119 | # CONFIG_SH_SH03 is not set | ||
120 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
121 | # CONFIG_SH_HS7751RVOIP is not set | ||
122 | # CONFIG_SH_7710VOIPGW is not set | ||
123 | # CONFIG_SH_RTS7751R2D is not set | ||
124 | # CONFIG_SH_HIGHLANDER is not set | ||
125 | # CONFIG_SH_EDOSK7705 is not set | ||
126 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
127 | # CONFIG_SH_LANDISK is not set | ||
128 | # CONFIG_SH_TITAN is not set | ||
129 | # CONFIG_SH_SHMIN is not set | ||
130 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
131 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
132 | # CONFIG_SH_LBOX_RE2 is not set | ||
133 | # CONFIG_SH_UNKNOWN is not set | ||
134 | |||
135 | # | ||
136 | # Processor selection | ||
137 | # | ||
138 | CONFIG_CPU_SH4=y | ||
139 | CONFIG_CPU_SH4A=y | ||
140 | CONFIG_CPU_SH4AL_DSP=y | ||
141 | CONFIG_CPU_SHX2=y | ||
142 | |||
143 | # | ||
144 | # SH-2 Processor Support | ||
145 | # | ||
146 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
147 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
148 | |||
149 | # | ||
150 | # SH-2A Processor Support | ||
151 | # | ||
152 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
153 | |||
154 | # | ||
155 | # SH-3 Processor Support | ||
156 | # | ||
157 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||
161 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | ||
162 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||
163 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||
164 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | ||
165 | |||
166 | # | ||
167 | # SH-4 Processor Support | ||
168 | # | ||
169 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||
170 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||
171 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||
172 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | ||
173 | # CONFIG_CPU_SUBTYPE_SH7751 is not set | ||
174 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | ||
175 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | ||
176 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | ||
177 | |||
178 | # | ||
179 | # ST40 Processor Support | ||
180 | # | ||
181 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
182 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
183 | |||
184 | # | ||
185 | # SH-4A Processor Support | ||
186 | # | ||
187 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | ||
188 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | ||
189 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||
190 | |||
191 | # | ||
192 | # SH4AL-DSP Processor Support | ||
193 | # | ||
194 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
195 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||
196 | CONFIG_CPU_SUBTYPE_SH7722=y | ||
197 | |||
198 | # | ||
199 | # Memory management options | ||
200 | # | ||
201 | CONFIG_MMU=y | ||
202 | CONFIG_PAGE_OFFSET=0x80000000 | ||
203 | CONFIG_MEMORY_START=0x0c000000 | ||
204 | CONFIG_MEMORY_SIZE=0x04000000 | ||
205 | # CONFIG_32BIT is not set | ||
206 | # CONFIG_X2TLB is not set | ||
207 | CONFIG_VSYSCALL=y | ||
208 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
209 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
210 | CONFIG_PAGE_SIZE_4KB=y | ||
211 | # CONFIG_PAGE_SIZE_8KB is not set | ||
212 | # CONFIG_PAGE_SIZE_64KB is not set | ||
213 | CONFIG_HUGETLB_PAGE_SIZE_64K=y | ||
214 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set | ||
215 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | ||
216 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | ||
217 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | ||
218 | CONFIG_SELECT_MEMORY_MODEL=y | ||
219 | CONFIG_FLATMEM_MANUAL=y | ||
220 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
221 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
222 | CONFIG_FLATMEM=y | ||
223 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
224 | # CONFIG_SPARSEMEM_STATIC is not set | ||
225 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
226 | # CONFIG_RESOURCES_64BIT is not set | ||
227 | CONFIG_ZONE_DMA_FLAG=0 | ||
228 | |||
229 | # | ||
230 | # Cache configuration | ||
231 | # | ||
232 | # CONFIG_SH_DIRECT_MAPPED is not set | ||
233 | # CONFIG_SH_WRITETHROUGH is not set | ||
234 | # CONFIG_SH_OCRAM is not set | ||
235 | CONFIG_CF_ENABLER=y | ||
236 | # CONFIG_CF_AREA5 is not set | ||
237 | CONFIG_CF_AREA6=y | ||
238 | CONFIG_CF_BASE_ADDR=0xb8000000 | ||
239 | |||
240 | # | ||
241 | # Processor features | ||
242 | # | ||
243 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
244 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
245 | # CONFIG_SH_FPU is not set | ||
246 | # CONFIG_SH_FPU_EMU is not set | ||
247 | CONFIG_SH_DSP=y | ||
248 | CONFIG_SH_STORE_QUEUES=y | ||
249 | CONFIG_CPU_HAS_INTEVT=y | ||
250 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
251 | CONFIG_CPU_HAS_SR_RB=y | ||
252 | CONFIG_CPU_HAS_PTEA=y | ||
253 | |||
254 | # | ||
255 | # Timer and clock configuration | ||
256 | # | ||
257 | CONFIG_SH_TMU=y | ||
258 | CONFIG_SH_TIMER_IRQ=16 | ||
259 | CONFIG_NO_IDLE_HZ=y | ||
260 | CONFIG_SH_PCLK_FREQ=33333333 | ||
261 | |||
262 | # | ||
263 | # CPU Frequency scaling | ||
264 | # | ||
265 | # CONFIG_CPU_FREQ is not set | ||
266 | |||
267 | # | ||
268 | # DMA support | ||
269 | # | ||
270 | # CONFIG_SH_DMA is not set | ||
271 | |||
272 | # | ||
273 | # Companion Chips | ||
274 | # | ||
275 | # CONFIG_HD6446X_SERIES is not set | ||
276 | |||
277 | # | ||
278 | # Additional SuperH Device Drivers | ||
279 | # | ||
280 | CONFIG_HEARTBEAT=y | ||
281 | # CONFIG_PUSH_SWITCH is not set | ||
282 | |||
283 | # | ||
284 | # Kernel features | ||
285 | # | ||
286 | # CONFIG_HZ_100 is not set | ||
287 | CONFIG_HZ_250=y | ||
288 | # CONFIG_HZ_300 is not set | ||
289 | # CONFIG_HZ_1000 is not set | ||
290 | CONFIG_HZ=250 | ||
291 | CONFIG_KEXEC=y | ||
292 | # CONFIG_CRASH_DUMP is not set | ||
293 | # CONFIG_SMP is not set | ||
294 | # CONFIG_PREEMPT_NONE is not set | ||
295 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
296 | CONFIG_PREEMPT=y | ||
297 | CONFIG_PREEMPT_BKL=y | ||
298 | |||
299 | # | ||
300 | # Boot options | ||
301 | # | ||
302 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||
303 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||
304 | # CONFIG_UBC_WAKEUP is not set | ||
305 | # CONFIG_CMDLINE_BOOL is not set | ||
306 | |||
307 | # | ||
308 | # Bus options | ||
309 | # | ||
310 | # CONFIG_PCI is not set | ||
311 | |||
312 | # | ||
313 | # PCCARD (PCMCIA/CardBus) support | ||
314 | # | ||
315 | # CONFIG_PCCARD is not set | ||
316 | |||
317 | # | ||
318 | # PCI Hotplug Support | ||
319 | # | ||
320 | |||
321 | # | ||
322 | # Executable file formats | ||
323 | # | ||
324 | CONFIG_BINFMT_ELF=y | ||
325 | # CONFIG_BINFMT_FLAT is not set | ||
326 | # CONFIG_BINFMT_MISC is not set | ||
327 | |||
328 | # | ||
329 | # Power management options (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_PM is not set | ||
332 | |||
333 | # | ||
334 | # Networking | ||
335 | # | ||
336 | CONFIG_NET=y | ||
337 | |||
338 | # | ||
339 | # Networking options | ||
340 | # | ||
341 | # CONFIG_NETDEBUG is not set | ||
342 | CONFIG_PACKET=y | ||
343 | CONFIG_PACKET_MMAP=y | ||
344 | CONFIG_UNIX=y | ||
345 | CONFIG_XFRM=y | ||
346 | # CONFIG_XFRM_USER is not set | ||
347 | # CONFIG_XFRM_SUB_POLICY is not set | ||
348 | # CONFIG_XFRM_MIGRATE is not set | ||
349 | # CONFIG_NET_KEY is not set | ||
350 | CONFIG_INET=y | ||
351 | # CONFIG_IP_MULTICAST is not set | ||
352 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
353 | CONFIG_IP_FIB_HASH=y | ||
354 | # CONFIG_IP_PNP is not set | ||
355 | # CONFIG_NET_IPIP is not set | ||
356 | # CONFIG_NET_IPGRE is not set | ||
357 | # CONFIG_ARPD is not set | ||
358 | # CONFIG_SYN_COOKIES is not set | ||
359 | # CONFIG_INET_AH is not set | ||
360 | # CONFIG_INET_ESP is not set | ||
361 | # CONFIG_INET_IPCOMP is not set | ||
362 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
363 | # CONFIG_INET_TUNNEL is not set | ||
364 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
365 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
366 | CONFIG_INET_XFRM_MODE_BEET=y | ||
367 | CONFIG_INET_DIAG=y | ||
368 | CONFIG_INET_TCP_DIAG=y | ||
369 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
370 | CONFIG_TCP_CONG_CUBIC=y | ||
371 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
372 | # CONFIG_TCP_MD5SIG is not set | ||
373 | # CONFIG_IPV6 is not set | ||
374 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
375 | # CONFIG_INET6_TUNNEL is not set | ||
376 | # CONFIG_NETWORK_SECMARK is not set | ||
377 | # CONFIG_NETFILTER is not set | ||
378 | |||
379 | # | ||
380 | # DCCP Configuration (EXPERIMENTAL) | ||
381 | # | ||
382 | # CONFIG_IP_DCCP is not set | ||
383 | |||
384 | # | ||
385 | # SCTP Configuration (EXPERIMENTAL) | ||
386 | # | ||
387 | # CONFIG_IP_SCTP is not set | ||
388 | |||
389 | # | ||
390 | # TIPC Configuration (EXPERIMENTAL) | ||
391 | # | ||
392 | # CONFIG_TIPC is not set | ||
393 | # CONFIG_ATM is not set | ||
394 | # CONFIG_BRIDGE is not set | ||
395 | # CONFIG_VLAN_8021Q is not set | ||
396 | # CONFIG_DECNET is not set | ||
397 | # CONFIG_LLC2 is not set | ||
398 | # CONFIG_IPX is not set | ||
399 | # CONFIG_ATALK is not set | ||
400 | # CONFIG_X25 is not set | ||
401 | # CONFIG_LAPB is not set | ||
402 | # CONFIG_ECONET is not set | ||
403 | # CONFIG_WAN_ROUTER is not set | ||
404 | |||
405 | # | ||
406 | # QoS and/or fair queueing | ||
407 | # | ||
408 | # CONFIG_NET_SCHED is not set | ||
409 | |||
410 | # | ||
411 | # Network testing | ||
412 | # | ||
413 | # CONFIG_NET_PKTGEN is not set | ||
414 | # CONFIG_HAMRADIO is not set | ||
415 | # CONFIG_IRDA is not set | ||
416 | # CONFIG_BT is not set | ||
417 | # CONFIG_IEEE80211 is not set | ||
418 | |||
419 | # | ||
420 | # Device Drivers | ||
421 | # | ||
422 | |||
423 | # | ||
424 | # Generic Driver Options | ||
425 | # | ||
426 | CONFIG_STANDALONE=y | ||
427 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
428 | # CONFIG_FW_LOADER is not set | ||
429 | # CONFIG_SYS_HYPERVISOR is not set | ||
430 | |||
431 | # | ||
432 | # Connector - unified userspace <-> kernelspace linker | ||
433 | # | ||
434 | # CONFIG_CONNECTOR is not set | ||
435 | |||
436 | # | ||
437 | # Memory Technology Devices (MTD) | ||
438 | # | ||
439 | # CONFIG_MTD is not set | ||
440 | |||
441 | # | ||
442 | # Parallel port support | ||
443 | # | ||
444 | # CONFIG_PARPORT is not set | ||
445 | |||
446 | # | ||
447 | # Plug and Play support | ||
448 | # | ||
449 | # CONFIG_PNPACPI is not set | ||
450 | |||
451 | # | ||
452 | # Block devices | ||
453 | # | ||
454 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
455 | # CONFIG_BLK_DEV_LOOP is not set | ||
456 | # CONFIG_BLK_DEV_NBD is not set | ||
457 | CONFIG_BLK_DEV_RAM=y | ||
458 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
459 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
460 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
461 | # CONFIG_CDROM_PKTCDVD is not set | ||
462 | # CONFIG_ATA_OVER_ETH is not set | ||
463 | |||
464 | # | ||
465 | # Misc devices | ||
466 | # | ||
467 | |||
468 | # | ||
469 | # ATA/ATAPI/MFM/RLL support | ||
470 | # | ||
471 | # CONFIG_IDE is not set | ||
472 | |||
473 | # | ||
474 | # SCSI device support | ||
475 | # | ||
476 | # CONFIG_RAID_ATTRS is not set | ||
477 | CONFIG_SCSI=y | ||
478 | # CONFIG_SCSI_TGT is not set | ||
479 | # CONFIG_SCSI_NETLINK is not set | ||
480 | CONFIG_SCSI_PROC_FS=y | ||
481 | |||
482 | # | ||
483 | # SCSI support type (disk, tape, CD-ROM) | ||
484 | # | ||
485 | CONFIG_BLK_DEV_SD=y | ||
486 | # CONFIG_CHR_DEV_ST is not set | ||
487 | # CONFIG_CHR_DEV_OSST is not set | ||
488 | # CONFIG_BLK_DEV_SR is not set | ||
489 | # CONFIG_CHR_DEV_SG is not set | ||
490 | # CONFIG_CHR_DEV_SCH is not set | ||
491 | |||
492 | # | ||
493 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
494 | # | ||
495 | # CONFIG_SCSI_MULTI_LUN is not set | ||
496 | # CONFIG_SCSI_CONSTANTS is not set | ||
497 | # CONFIG_SCSI_LOGGING is not set | ||
498 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
499 | |||
500 | # | ||
501 | # SCSI Transports | ||
502 | # | ||
503 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
504 | # CONFIG_SCSI_FC_ATTRS is not set | ||
505 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
506 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
507 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
508 | |||
509 | # | ||
510 | # SCSI low-level drivers | ||
511 | # | ||
512 | # CONFIG_ISCSI_TCP is not set | ||
513 | # CONFIG_SCSI_DEBUG is not set | ||
514 | |||
515 | # | ||
516 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
517 | # | ||
518 | CONFIG_ATA=y | ||
519 | # CONFIG_ATA_NONSTANDARD is not set | ||
520 | CONFIG_PATA_PLATFORM=y | ||
521 | |||
522 | # | ||
523 | # Multi-device support (RAID and LVM) | ||
524 | # | ||
525 | # CONFIG_MD is not set | ||
526 | |||
527 | # | ||
528 | # Fusion MPT device support | ||
529 | # | ||
530 | # CONFIG_FUSION is not set | ||
531 | |||
532 | # | ||
533 | # IEEE 1394 (FireWire) support | ||
534 | # | ||
535 | |||
536 | # | ||
537 | # I2O device support | ||
538 | # | ||
539 | |||
540 | # | ||
541 | # Network device support | ||
542 | # | ||
543 | CONFIG_NETDEVICES=y | ||
544 | # CONFIG_DUMMY is not set | ||
545 | # CONFIG_BONDING is not set | ||
546 | # CONFIG_EQUALIZER is not set | ||
547 | # CONFIG_TUN is not set | ||
548 | |||
549 | # | ||
550 | # PHY device support | ||
551 | # | ||
552 | # CONFIG_PHYLIB is not set | ||
553 | |||
554 | # | ||
555 | # Ethernet (10 or 100Mbit) | ||
556 | # | ||
557 | CONFIG_NET_ETHERNET=y | ||
558 | CONFIG_MII=y | ||
559 | # CONFIG_STNIC is not set | ||
560 | CONFIG_SMC91X=y | ||
561 | |||
562 | # | ||
563 | # Ethernet (1000 Mbit) | ||
564 | # | ||
565 | |||
566 | # | ||
567 | # Ethernet (10000 Mbit) | ||
568 | # | ||
569 | |||
570 | # | ||
571 | # Token Ring devices | ||
572 | # | ||
573 | |||
574 | # | ||
575 | # Wireless LAN (non-hamradio) | ||
576 | # | ||
577 | # CONFIG_NET_RADIO is not set | ||
578 | |||
579 | # | ||
580 | # Wan interfaces | ||
581 | # | ||
582 | # CONFIG_WAN is not set | ||
583 | # CONFIG_PPP is not set | ||
584 | # CONFIG_SLIP is not set | ||
585 | # CONFIG_SHAPER is not set | ||
586 | # CONFIG_NETCONSOLE is not set | ||
587 | # CONFIG_NETPOLL is not set | ||
588 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
589 | |||
590 | # | ||
591 | # ISDN subsystem | ||
592 | # | ||
593 | # CONFIG_ISDN is not set | ||
594 | |||
595 | # | ||
596 | # Telephony Support | ||
597 | # | ||
598 | # CONFIG_PHONE is not set | ||
599 | |||
600 | # | ||
601 | # Input device support | ||
602 | # | ||
603 | CONFIG_INPUT=y | ||
604 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
605 | |||
606 | # | ||
607 | # Userland interfaces | ||
608 | # | ||
609 | CONFIG_INPUT_MOUSEDEV=y | ||
610 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
611 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
612 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
613 | # CONFIG_INPUT_JOYDEV is not set | ||
614 | # CONFIG_INPUT_TSDEV is not set | ||
615 | # CONFIG_INPUT_EVDEV is not set | ||
616 | # CONFIG_INPUT_EVBUG is not set | ||
617 | |||
618 | # | ||
619 | # Input Device Drivers | ||
620 | # | ||
621 | CONFIG_INPUT_KEYBOARD=y | ||
622 | CONFIG_KEYBOARD_ATKBD=y | ||
623 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
624 | # CONFIG_KEYBOARD_LKKBD is not set | ||
625 | # CONFIG_KEYBOARD_XTKBD is not set | ||
626 | # CONFIG_KEYBOARD_NEWTON is not set | ||
627 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
628 | # CONFIG_INPUT_MOUSE is not set | ||
629 | # CONFIG_INPUT_JOYSTICK is not set | ||
630 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
631 | # CONFIG_INPUT_MISC is not set | ||
632 | |||
633 | # | ||
634 | # Hardware I/O ports | ||
635 | # | ||
636 | CONFIG_SERIO=y | ||
637 | # CONFIG_SERIO_I8042 is not set | ||
638 | # CONFIG_SERIO_SERPORT is not set | ||
639 | CONFIG_SERIO_LIBPS2=y | ||
640 | # CONFIG_SERIO_RAW is not set | ||
641 | # CONFIG_GAMEPORT is not set | ||
642 | |||
643 | # | ||
644 | # Character devices | ||
645 | # | ||
646 | # CONFIG_VT is not set | ||
647 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
648 | |||
649 | # | ||
650 | # Serial drivers | ||
651 | # | ||
652 | # CONFIG_SERIAL_8250 is not set | ||
653 | |||
654 | # | ||
655 | # Non-8250 serial port support | ||
656 | # | ||
657 | CONFIG_SERIAL_SH_SCI=y | ||
658 | CONFIG_SERIAL_SH_SCI_NR_UARTS=2 | ||
659 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
660 | CONFIG_SERIAL_CORE=y | ||
661 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
662 | CONFIG_UNIX98_PTYS=y | ||
663 | CONFIG_LEGACY_PTYS=y | ||
664 | CONFIG_LEGACY_PTY_COUNT=256 | ||
665 | |||
666 | # | ||
667 | # IPMI | ||
668 | # | ||
669 | # CONFIG_IPMI_HANDLER is not set | ||
670 | |||
671 | # | ||
672 | # Watchdog Cards | ||
673 | # | ||
674 | # CONFIG_WATCHDOG is not set | ||
675 | CONFIG_HW_RANDOM=y | ||
676 | # CONFIG_GEN_RTC is not set | ||
677 | # CONFIG_DTLK is not set | ||
678 | # CONFIG_R3964 is not set | ||
679 | # CONFIG_RAW_DRIVER is not set | ||
680 | |||
681 | # | ||
682 | # TPM devices | ||
683 | # | ||
684 | # CONFIG_TCG_TPM is not set | ||
685 | |||
686 | # | ||
687 | # I2C support | ||
688 | # | ||
689 | # CONFIG_I2C is not set | ||
690 | |||
691 | # | ||
692 | # SPI support | ||
693 | # | ||
694 | # CONFIG_SPI is not set | ||
695 | # CONFIG_SPI_MASTER is not set | ||
696 | |||
697 | # | ||
698 | # Dallas's 1-wire bus | ||
699 | # | ||
700 | # CONFIG_W1 is not set | ||
701 | |||
702 | # | ||
703 | # Hardware Monitoring support | ||
704 | # | ||
705 | CONFIG_HWMON=y | ||
706 | # CONFIG_HWMON_VID is not set | ||
707 | # CONFIG_SENSORS_ABITUGURU is not set | ||
708 | # CONFIG_SENSORS_F71805F is not set | ||
709 | # CONFIG_SENSORS_PC87427 is not set | ||
710 | # CONFIG_SENSORS_VT1211 is not set | ||
711 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
712 | |||
713 | # | ||
714 | # Multifunction device drivers | ||
715 | # | ||
716 | # CONFIG_MFD_SM501 is not set | ||
717 | |||
718 | # | ||
719 | # Multimedia devices | ||
720 | # | ||
721 | # CONFIG_VIDEO_DEV is not set | ||
722 | |||
723 | # | ||
724 | # Digital Video Broadcasting Devices | ||
725 | # | ||
726 | # CONFIG_DVB is not set | ||
727 | |||
728 | # | ||
729 | # Graphics support | ||
730 | # | ||
731 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
732 | # CONFIG_FB is not set | ||
733 | |||
734 | # | ||
735 | # Sound | ||
736 | # | ||
737 | # CONFIG_SOUND is not set | ||
738 | |||
739 | # | ||
740 | # HID Devices | ||
741 | # | ||
742 | CONFIG_HID=y | ||
743 | # CONFIG_HID_DEBUG is not set | ||
744 | |||
745 | # | ||
746 | # USB support | ||
747 | # | ||
748 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
749 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
750 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
751 | |||
752 | # | ||
753 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
754 | # | ||
755 | |||
756 | # | ||
757 | # USB Gadget Support | ||
758 | # | ||
759 | # CONFIG_USB_GADGET is not set | ||
760 | |||
761 | # | ||
762 | # MMC/SD Card support | ||
763 | # | ||
764 | # CONFIG_MMC is not set | ||
765 | |||
766 | # | ||
767 | # LED devices | ||
768 | # | ||
769 | # CONFIG_NEW_LEDS is not set | ||
770 | |||
771 | # | ||
772 | # LED drivers | ||
773 | # | ||
774 | |||
775 | # | ||
776 | # LED Triggers | ||
777 | # | ||
778 | |||
779 | # | ||
780 | # InfiniBand support | ||
781 | # | ||
782 | |||
783 | # | ||
784 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
785 | # | ||
786 | |||
787 | # | ||
788 | # Real Time Clock | ||
789 | # | ||
790 | CONFIG_RTC_LIB=y | ||
791 | CONFIG_RTC_CLASS=y | ||
792 | CONFIG_RTC_HCTOSYS=y | ||
793 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
794 | # CONFIG_RTC_DEBUG is not set | ||
795 | |||
796 | # | ||
797 | # RTC interfaces | ||
798 | # | ||
799 | CONFIG_RTC_INTF_SYSFS=y | ||
800 | CONFIG_RTC_INTF_PROC=y | ||
801 | CONFIG_RTC_INTF_DEV=y | ||
802 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
803 | |||
804 | # | ||
805 | # RTC drivers | ||
806 | # | ||
807 | # CONFIG_RTC_DRV_DS1553 is not set | ||
808 | # CONFIG_RTC_DRV_DS1742 is not set | ||
809 | # CONFIG_RTC_DRV_M48T86 is not set | ||
810 | CONFIG_RTC_DRV_SH=y | ||
811 | # CONFIG_RTC_DRV_TEST is not set | ||
812 | # CONFIG_RTC_DRV_V3020 is not set | ||
813 | |||
814 | # | ||
815 | # DMA Engine support | ||
816 | # | ||
817 | # CONFIG_DMA_ENGINE is not set | ||
818 | |||
819 | # | ||
820 | # DMA Clients | ||
821 | # | ||
822 | |||
823 | # | ||
824 | # DMA Devices | ||
825 | # | ||
826 | |||
827 | # | ||
828 | # Auxiliary Display support | ||
829 | # | ||
830 | |||
831 | # | ||
832 | # Virtualization | ||
833 | # | ||
834 | |||
835 | # | ||
836 | # File systems | ||
837 | # | ||
838 | CONFIG_EXT2_FS=y | ||
839 | # CONFIG_EXT2_FS_XATTR is not set | ||
840 | # CONFIG_EXT2_FS_XIP is not set | ||
841 | CONFIG_EXT3_FS=y | ||
842 | CONFIG_EXT3_FS_XATTR=y | ||
843 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
844 | # CONFIG_EXT3_FS_SECURITY is not set | ||
845 | # CONFIG_EXT4DEV_FS is not set | ||
846 | CONFIG_JBD=y | ||
847 | # CONFIG_JBD_DEBUG is not set | ||
848 | CONFIG_FS_MBCACHE=y | ||
849 | # CONFIG_REISERFS_FS is not set | ||
850 | # CONFIG_JFS_FS is not set | ||
851 | # CONFIG_FS_POSIX_ACL is not set | ||
852 | # CONFIG_XFS_FS is not set | ||
853 | # CONFIG_GFS2_FS is not set | ||
854 | # CONFIG_OCFS2_FS is not set | ||
855 | # CONFIG_MINIX_FS is not set | ||
856 | # CONFIG_ROMFS_FS is not set | ||
857 | CONFIG_INOTIFY=y | ||
858 | CONFIG_INOTIFY_USER=y | ||
859 | # CONFIG_QUOTA is not set | ||
860 | CONFIG_DNOTIFY=y | ||
861 | # CONFIG_AUTOFS_FS is not set | ||
862 | # CONFIG_AUTOFS4_FS is not set | ||
863 | # CONFIG_FUSE_FS is not set | ||
864 | |||
865 | # | ||
866 | # CD-ROM/DVD Filesystems | ||
867 | # | ||
868 | # CONFIG_ISO9660_FS is not set | ||
869 | # CONFIG_UDF_FS is not set | ||
870 | |||
871 | # | ||
872 | # DOS/FAT/NT Filesystems | ||
873 | # | ||
874 | # CONFIG_MSDOS_FS is not set | ||
875 | # CONFIG_VFAT_FS is not set | ||
876 | # CONFIG_NTFS_FS is not set | ||
877 | |||
878 | # | ||
879 | # Pseudo filesystems | ||
880 | # | ||
881 | CONFIG_PROC_FS=y | ||
882 | CONFIG_PROC_KCORE=y | ||
883 | CONFIG_PROC_SYSCTL=y | ||
884 | CONFIG_SYSFS=y | ||
885 | CONFIG_TMPFS=y | ||
886 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
887 | CONFIG_HUGETLBFS=y | ||
888 | CONFIG_HUGETLB_PAGE=y | ||
889 | CONFIG_RAMFS=y | ||
890 | # CONFIG_CONFIGFS_FS is not set | ||
891 | |||
892 | # | ||
893 | # Miscellaneous filesystems | ||
894 | # | ||
895 | # CONFIG_ADFS_FS is not set | ||
896 | # CONFIG_AFFS_FS is not set | ||
897 | # CONFIG_HFS_FS is not set | ||
898 | # CONFIG_HFSPLUS_FS is not set | ||
899 | # CONFIG_BEFS_FS is not set | ||
900 | # CONFIG_BFS_FS is not set | ||
901 | # CONFIG_EFS_FS is not set | ||
902 | # CONFIG_CRAMFS is not set | ||
903 | # CONFIG_VXFS_FS is not set | ||
904 | # CONFIG_HPFS_FS is not set | ||
905 | # CONFIG_QNX4FS_FS is not set | ||
906 | # CONFIG_SYSV_FS is not set | ||
907 | # CONFIG_UFS_FS is not set | ||
908 | |||
909 | # | ||
910 | # Network File Systems | ||
911 | # | ||
912 | # CONFIG_NFS_FS is not set | ||
913 | # CONFIG_NFSD is not set | ||
914 | # CONFIG_SMB_FS is not set | ||
915 | # CONFIG_CIFS is not set | ||
916 | # CONFIG_NCP_FS is not set | ||
917 | # CONFIG_CODA_FS is not set | ||
918 | # CONFIG_AFS_FS is not set | ||
919 | # CONFIG_9P_FS is not set | ||
920 | |||
921 | # | ||
922 | # Partition Types | ||
923 | # | ||
924 | # CONFIG_PARTITION_ADVANCED is not set | ||
925 | CONFIG_MSDOS_PARTITION=y | ||
926 | |||
927 | # | ||
928 | # Native Language Support | ||
929 | # | ||
930 | # CONFIG_NLS is not set | ||
931 | |||
932 | # | ||
933 | # Distributed Lock Manager | ||
934 | # | ||
935 | # CONFIG_DLM is not set | ||
936 | |||
937 | # | ||
938 | # Profiling support | ||
939 | # | ||
940 | # CONFIG_PROFILING is not set | ||
941 | |||
942 | # | ||
943 | # Kernel hacking | ||
944 | # | ||
945 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
946 | # CONFIG_PRINTK_TIME is not set | ||
947 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
948 | # CONFIG_MAGIC_SYSRQ is not set | ||
949 | # CONFIG_UNUSED_SYMBOLS is not set | ||
950 | # CONFIG_DEBUG_FS is not set | ||
951 | # CONFIG_HEADERS_CHECK is not set | ||
952 | # CONFIG_DEBUG_KERNEL is not set | ||
953 | CONFIG_LOG_BUF_SHIFT=14 | ||
954 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
955 | # CONFIG_SH_STANDARD_BIOS is not set | ||
956 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
957 | # CONFIG_SH_KGDB is not set | ||
958 | |||
959 | # | ||
960 | # Security options | ||
961 | # | ||
962 | # CONFIG_KEYS is not set | ||
963 | # CONFIG_SECURITY is not set | ||
964 | |||
965 | # | ||
966 | # Cryptographic options | ||
967 | # | ||
968 | # CONFIG_CRYPTO is not set | ||
969 | |||
970 | # | ||
971 | # Library routines | ||
972 | # | ||
973 | CONFIG_BITREVERSE=y | ||
974 | # CONFIG_CRC_CCITT is not set | ||
975 | # CONFIG_CRC16 is not set | ||
976 | CONFIG_CRC32=y | ||
977 | # CONFIG_LIBCRC32C is not set | ||
978 | CONFIG_PLIST=y | ||
979 | CONFIG_HAS_IOMEM=y | ||
980 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig new file mode 100644 index 000000000000..538661e98793 --- /dev/null +++ b/arch/sh/configs/se7780_defconfig | |||
@@ -0,0 +1,1309 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.21-rc3 | ||
4 | # Thu Mar 15 14:06:20 2007 | ||
5 | # | ||
6 | CONFIG_SUPERH=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | CONFIG_GENERIC_BUG=y | ||
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
10 | CONFIG_GENERIC_HWEIGHT=y | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
20 | |||
21 | # | ||
22 | # Code maturity level options | ||
23 | # | ||
24 | # CONFIG_EXPERIMENTAL is not set | ||
25 | CONFIG_BROKEN_ON_SMP=y | ||
26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
27 | |||
28 | # | ||
29 | # General setup | ||
30 | # | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | CONFIG_LOCALVERSION_AUTO=y | ||
33 | # CONFIG_SWAP is not set | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | CONFIG_IKCONFIG=y | ||
42 | CONFIG_IKCONFIG_PROC=y | ||
43 | CONFIG_SYSFS_DEPRECATED=y | ||
44 | # CONFIG_RELAY is not set | ||
45 | # CONFIG_BLK_DEV_INITRD is not set | ||
46 | CONFIG_SYSCTL=y | ||
47 | CONFIG_EMBEDDED=y | ||
48 | CONFIG_UID16=y | ||
49 | CONFIG_SYSCTL_SYSCALL=y | ||
50 | # CONFIG_KALLSYMS is not set | ||
51 | # CONFIG_HOTPLUG is not set | ||
52 | CONFIG_PRINTK=y | ||
53 | CONFIG_BUG=y | ||
54 | CONFIG_ELF_CORE=y | ||
55 | CONFIG_BASE_FULL=y | ||
56 | CONFIG_FUTEX=y | ||
57 | # CONFIG_EPOLL is not set | ||
58 | CONFIG_SHMEM=y | ||
59 | CONFIG_SLAB=y | ||
60 | CONFIG_VM_EVENT_COUNTERS=y | ||
61 | CONFIG_RT_MUTEXES=y | ||
62 | # CONFIG_TINY_SHMEM is not set | ||
63 | CONFIG_BASE_SMALL=0 | ||
64 | # CONFIG_SLOB is not set | ||
65 | |||
66 | # | ||
67 | # Loadable module support | ||
68 | # | ||
69 | CONFIG_MODULES=y | ||
70 | CONFIG_MODULE_UNLOAD=y | ||
71 | # CONFIG_MODVERSIONS is not set | ||
72 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
73 | CONFIG_KMOD=y | ||
74 | |||
75 | # | ||
76 | # Block layer | ||
77 | # | ||
78 | CONFIG_BLOCK=y | ||
79 | # CONFIG_LBD is not set | ||
80 | # CONFIG_LSF is not set | ||
81 | |||
82 | # | ||
83 | # IO Schedulers | ||
84 | # | ||
85 | CONFIG_IOSCHED_NOOP=y | ||
86 | # CONFIG_IOSCHED_AS is not set | ||
87 | CONFIG_IOSCHED_DEADLINE=y | ||
88 | # CONFIG_IOSCHED_CFQ is not set | ||
89 | # CONFIG_DEFAULT_AS is not set | ||
90 | CONFIG_DEFAULT_DEADLINE=y | ||
91 | # CONFIG_DEFAULT_CFQ is not set | ||
92 | # CONFIG_DEFAULT_NOOP is not set | ||
93 | CONFIG_DEFAULT_IOSCHED="deadline" | ||
94 | |||
95 | # | ||
96 | # System type | ||
97 | # | ||
98 | CONFIG_SOLUTION_ENGINE=y | ||
99 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
100 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
101 | CONFIG_SH_7780_SOLUTION_ENGINE=y | ||
102 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
103 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
104 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_7751_SYSTEMH is not set | ||
106 | # CONFIG_SH_HP6XX is not set | ||
107 | # CONFIG_SH_SATURN is not set | ||
108 | # CONFIG_SH_DREAMCAST is not set | ||
109 | # CONFIG_SH_MPC1211 is not set | ||
110 | # CONFIG_SH_SH03 is not set | ||
111 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
112 | # CONFIG_SH_HS7751RVOIP is not set | ||
113 | # CONFIG_SH_7710VOIPGW is not set | ||
114 | # CONFIG_SH_RTS7751R2D is not set | ||
115 | # CONFIG_SH_HIGHLANDER is not set | ||
116 | # CONFIG_SH_EDOSK7705 is not set | ||
117 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
118 | # CONFIG_SH_LANDISK is not set | ||
119 | # CONFIG_SH_TITAN is not set | ||
120 | # CONFIG_SH_SHMIN is not set | ||
121 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
122 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
123 | # CONFIG_SH_UNKNOWN is not set | ||
124 | |||
125 | # | ||
126 | # Processor selection | ||
127 | # | ||
128 | CONFIG_CPU_SH4=y | ||
129 | CONFIG_CPU_SH4A=y | ||
130 | |||
131 | # | ||
132 | # SH-2 Processor Support | ||
133 | # | ||
134 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
135 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||
136 | |||
137 | # | ||
138 | # SH-2A Processor Support | ||
139 | # | ||
140 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||
141 | |||
142 | # | ||
143 | # SH-3 Processor Support | ||
144 | # | ||
145 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
146 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||
147 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||
148 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||
149 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | ||
150 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||
151 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||
152 | |||
153 | # | ||
154 | # SH-4 Processor Support | ||
155 | # | ||
156 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||
157 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH7751 is not set | ||
161 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | ||
162 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | ||
163 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | ||
164 | |||
165 | # | ||
166 | # ST40 Processor Support | ||
167 | # | ||
168 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
169 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
170 | |||
171 | # | ||
172 | # SH-4A Processor Support | ||
173 | # | ||
174 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | ||
175 | CONFIG_CPU_SUBTYPE_SH7780=y | ||
176 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||
177 | |||
178 | # | ||
179 | # SH4AL-DSP Processor Support | ||
180 | # | ||
181 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
182 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||
183 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
184 | |||
185 | # | ||
186 | # Memory management options | ||
187 | # | ||
188 | CONFIG_MMU=y | ||
189 | CONFIG_PAGE_OFFSET=0x80000000 | ||
190 | CONFIG_MEMORY_START=0x08000000 | ||
191 | CONFIG_MEMORY_SIZE=0x08000000 | ||
192 | CONFIG_32BIT=y | ||
193 | CONFIG_VSYSCALL=y | ||
194 | CONFIG_PAGE_SIZE_4KB=y | ||
195 | # CONFIG_PAGE_SIZE_8KB is not set | ||
196 | # CONFIG_PAGE_SIZE_64KB is not set | ||
197 | CONFIG_FLATMEM=y | ||
198 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
199 | # CONFIG_SPARSEMEM_STATIC is not set | ||
200 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
201 | # CONFIG_RESOURCES_64BIT is not set | ||
202 | CONFIG_ZONE_DMA_FLAG=0 | ||
203 | |||
204 | # | ||
205 | # Cache configuration | ||
206 | # | ||
207 | # CONFIG_SH_DIRECT_MAPPED is not set | ||
208 | # CONFIG_SH_WRITETHROUGH is not set | ||
209 | # CONFIG_SH_OCRAM is not set | ||
210 | |||
211 | # | ||
212 | # Processor features | ||
213 | # | ||
214 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
215 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
216 | CONFIG_SH_FPU=y | ||
217 | # CONFIG_SH_DSP is not set | ||
218 | # CONFIG_SH_STORE_QUEUES is not set | ||
219 | CONFIG_CPU_HAS_INTEVT=y | ||
220 | CONFIG_CPU_HAS_INTC2_IRQ=y | ||
221 | CONFIG_CPU_HAS_SR_RB=y | ||
222 | |||
223 | # | ||
224 | # Timer and clock configuration | ||
225 | # | ||
226 | CONFIG_SH_TMU=y | ||
227 | CONFIG_SH_TIMER_IRQ=28 | ||
228 | # CONFIG_NO_IDLE_HZ is not set | ||
229 | CONFIG_SH_PCLK_FREQ=33333333 | ||
230 | |||
231 | # | ||
232 | # CPU Frequency scaling | ||
233 | # | ||
234 | # CONFIG_CPU_FREQ is not set | ||
235 | |||
236 | # | ||
237 | # DMA support | ||
238 | # | ||
239 | # CONFIG_SH_DMA is not set | ||
240 | |||
241 | # | ||
242 | # Companion Chips | ||
243 | # | ||
244 | # CONFIG_HD6446X_SERIES is not set | ||
245 | |||
246 | # | ||
247 | # Additional SuperH Device Drivers | ||
248 | # | ||
249 | CONFIG_HEARTBEAT=y | ||
250 | # CONFIG_PUSH_SWITCH is not set | ||
251 | |||
252 | # | ||
253 | # Kernel features | ||
254 | # | ||
255 | # CONFIG_HZ_100 is not set | ||
256 | CONFIG_HZ_250=y | ||
257 | # CONFIG_HZ_300 is not set | ||
258 | # CONFIG_HZ_1000 is not set | ||
259 | CONFIG_HZ=250 | ||
260 | # CONFIG_SMP is not set | ||
261 | CONFIG_PREEMPT_NONE=y | ||
262 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
263 | # CONFIG_PREEMPT is not set | ||
264 | |||
265 | # | ||
266 | # Boot options | ||
267 | # | ||
268 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||
269 | CONFIG_BOOT_LINK_OFFSET=0x00810000 | ||
270 | # CONFIG_UBC_WAKEUP is not set | ||
271 | # CONFIG_CMDLINE_BOOL is not set | ||
272 | |||
273 | # | ||
274 | # Bus options | ||
275 | # | ||
276 | CONFIG_PCI=y | ||
277 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
278 | CONFIG_PCI_AUTO=y | ||
279 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | ||
280 | |||
281 | # | ||
282 | # PCCARD (PCMCIA/CardBus) support | ||
283 | # | ||
284 | |||
285 | # | ||
286 | # PCI Hotplug Support | ||
287 | # | ||
288 | |||
289 | # | ||
290 | # Executable file formats | ||
291 | # | ||
292 | CONFIG_BINFMT_ELF=y | ||
293 | # CONFIG_BINFMT_FLAT is not set | ||
294 | # CONFIG_BINFMT_MISC is not set | ||
295 | |||
296 | # | ||
297 | # Networking | ||
298 | # | ||
299 | CONFIG_NET=y | ||
300 | |||
301 | # | ||
302 | # Networking options | ||
303 | # | ||
304 | # CONFIG_NETDEBUG is not set | ||
305 | CONFIG_PACKET=y | ||
306 | # CONFIG_PACKET_MMAP is not set | ||
307 | CONFIG_UNIX=y | ||
308 | CONFIG_XFRM=y | ||
309 | # CONFIG_XFRM_USER is not set | ||
310 | # CONFIG_NET_KEY is not set | ||
311 | CONFIG_INET=y | ||
312 | CONFIG_IP_MULTICAST=y | ||
313 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
314 | CONFIG_IP_FIB_HASH=y | ||
315 | CONFIG_IP_PNP=y | ||
316 | # CONFIG_IP_PNP_DHCP is not set | ||
317 | # CONFIG_IP_PNP_BOOTP is not set | ||
318 | # CONFIG_IP_PNP_RARP is not set | ||
319 | # CONFIG_NET_IPIP is not set | ||
320 | # CONFIG_NET_IPGRE is not set | ||
321 | # CONFIG_IP_MROUTE is not set | ||
322 | # CONFIG_SYN_COOKIES is not set | ||
323 | # CONFIG_INET_AH is not set | ||
324 | # CONFIG_INET_ESP is not set | ||
325 | # CONFIG_INET_IPCOMP is not set | ||
326 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
327 | # CONFIG_INET_TUNNEL is not set | ||
328 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
329 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
330 | CONFIG_INET_XFRM_MODE_BEET=y | ||
331 | CONFIG_INET_DIAG=y | ||
332 | CONFIG_INET_TCP_DIAG=y | ||
333 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
334 | CONFIG_TCP_CONG_CUBIC=y | ||
335 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
336 | CONFIG_IPV6=y | ||
337 | # CONFIG_IPV6_PRIVACY is not set | ||
338 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
339 | # CONFIG_INET6_AH is not set | ||
340 | # CONFIG_INET6_ESP is not set | ||
341 | # CONFIG_INET6_IPCOMP is not set | ||
342 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
343 | # CONFIG_INET6_TUNNEL is not set | ||
344 | # CONFIG_INET6_XFRM_MODE_TRANSPORT is not set | ||
345 | # CONFIG_INET6_XFRM_MODE_TUNNEL is not set | ||
346 | # CONFIG_INET6_XFRM_MODE_BEET is not set | ||
347 | # CONFIG_IPV6_SIT is not set | ||
348 | # CONFIG_IPV6_TUNNEL is not set | ||
349 | # CONFIG_NETWORK_SECMARK is not set | ||
350 | # CONFIG_NETFILTER is not set | ||
351 | # CONFIG_BRIDGE is not set | ||
352 | # CONFIG_VLAN_8021Q is not set | ||
353 | # CONFIG_DECNET is not set | ||
354 | # CONFIG_LLC2 is not set | ||
355 | # CONFIG_IPX is not set | ||
356 | # CONFIG_ATALK is not set | ||
357 | |||
358 | # | ||
359 | # QoS and/or fair queueing | ||
360 | # | ||
361 | # CONFIG_NET_SCHED is not set | ||
362 | |||
363 | # | ||
364 | # Network testing | ||
365 | # | ||
366 | # CONFIG_NET_PKTGEN is not set | ||
367 | # CONFIG_HAMRADIO is not set | ||
368 | # CONFIG_IRDA is not set | ||
369 | # CONFIG_BT is not set | ||
370 | # CONFIG_IEEE80211 is not set | ||
371 | |||
372 | # | ||
373 | # Device Drivers | ||
374 | # | ||
375 | |||
376 | # | ||
377 | # Generic Driver Options | ||
378 | # | ||
379 | CONFIG_STANDALONE=y | ||
380 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
381 | # CONFIG_SYS_HYPERVISOR is not set | ||
382 | |||
383 | # | ||
384 | # Connector - unified userspace <-> kernelspace linker | ||
385 | # | ||
386 | # CONFIG_CONNECTOR is not set | ||
387 | |||
388 | # | ||
389 | # Memory Technology Devices (MTD) | ||
390 | # | ||
391 | CONFIG_MTD=y | ||
392 | # CONFIG_MTD_DEBUG is not set | ||
393 | # CONFIG_MTD_CONCAT is not set | ||
394 | CONFIG_MTD_PARTITIONS=y | ||
395 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
396 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
397 | |||
398 | # | ||
399 | # User Modules And Translation Layers | ||
400 | # | ||
401 | CONFIG_MTD_CHAR=y | ||
402 | CONFIG_MTD_BLKDEVS=y | ||
403 | CONFIG_MTD_BLOCK=y | ||
404 | # CONFIG_FTL is not set | ||
405 | # CONFIG_NFTL is not set | ||
406 | # CONFIG_INFTL is not set | ||
407 | # CONFIG_RFD_FTL is not set | ||
408 | # CONFIG_SSFDC is not set | ||
409 | |||
410 | # | ||
411 | # RAM/ROM/Flash chip drivers | ||
412 | # | ||
413 | CONFIG_MTD_CFI=y | ||
414 | # CONFIG_MTD_JEDECPROBE is not set | ||
415 | CONFIG_MTD_GEN_PROBE=y | ||
416 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
417 | CONFIG_MTD_CFI_NOSWAP=y | ||
418 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
419 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
420 | CONFIG_MTD_CFI_GEOMETRY=y | ||
421 | # CONFIG_MTD_MAP_BANK_WIDTH_1 is not set | ||
422 | # CONFIG_MTD_MAP_BANK_WIDTH_2 is not set | ||
423 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
424 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
425 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
426 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
427 | # CONFIG_MTD_CFI_I1 is not set | ||
428 | CONFIG_MTD_CFI_I2=y | ||
429 | # CONFIG_MTD_CFI_I4 is not set | ||
430 | # CONFIG_MTD_CFI_I8 is not set | ||
431 | # CONFIG_MTD_OTP is not set | ||
432 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
433 | CONFIG_MTD_CFI_AMDSTD=y | ||
434 | # CONFIG_MTD_CFI_STAA is not set | ||
435 | CONFIG_MTD_CFI_UTIL=y | ||
436 | # CONFIG_MTD_RAM is not set | ||
437 | CONFIG_MTD_ROM=y | ||
438 | # CONFIG_MTD_ABSENT is not set | ||
439 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
440 | |||
441 | # | ||
442 | # Mapping drivers for chip access | ||
443 | # | ||
444 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
445 | # CONFIG_MTD_PHYSMAP is not set | ||
446 | # CONFIG_MTD_PLATRAM is not set | ||
447 | |||
448 | # | ||
449 | # Self-contained MTD device drivers | ||
450 | # | ||
451 | # CONFIG_MTD_PMC551 is not set | ||
452 | # CONFIG_MTD_SLRAM is not set | ||
453 | # CONFIG_MTD_PHRAM is not set | ||
454 | # CONFIG_MTD_MTDRAM is not set | ||
455 | # CONFIG_MTD_BLOCK2MTD is not set | ||
456 | |||
457 | # | ||
458 | # Disk-On-Chip Device Drivers | ||
459 | # | ||
460 | # CONFIG_MTD_DOC2000 is not set | ||
461 | # CONFIG_MTD_DOC2001 is not set | ||
462 | # CONFIG_MTD_DOC2001PLUS is not set | ||
463 | |||
464 | # | ||
465 | # NAND Flash Device Drivers | ||
466 | # | ||
467 | # CONFIG_MTD_NAND is not set | ||
468 | |||
469 | # | ||
470 | # OneNAND Flash Device Drivers | ||
471 | # | ||
472 | # CONFIG_MTD_ONENAND is not set | ||
473 | |||
474 | # | ||
475 | # Parallel port support | ||
476 | # | ||
477 | # CONFIG_PARPORT is not set | ||
478 | |||
479 | # | ||
480 | # Plug and Play support | ||
481 | # | ||
482 | # CONFIG_PNPACPI is not set | ||
483 | |||
484 | # | ||
485 | # Block devices | ||
486 | # | ||
487 | # CONFIG_BLK_CPQ_DA is not set | ||
488 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
489 | # CONFIG_BLK_DEV_DAC960 is not set | ||
490 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
491 | CONFIG_BLK_DEV_LOOP=y | ||
492 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
493 | # CONFIG_BLK_DEV_NBD is not set | ||
494 | # CONFIG_BLK_DEV_SX8 is not set | ||
495 | # CONFIG_BLK_DEV_UB is not set | ||
496 | # CONFIG_BLK_DEV_RAM is not set | ||
497 | # CONFIG_CDROM_PKTCDVD is not set | ||
498 | # CONFIG_ATA_OVER_ETH is not set | ||
499 | |||
500 | # | ||
501 | # Misc devices | ||
502 | # | ||
503 | # CONFIG_SGI_IOC4 is not set | ||
504 | |||
505 | # | ||
506 | # ATA/ATAPI/MFM/RLL support | ||
507 | # | ||
508 | # CONFIG_IDE is not set | ||
509 | |||
510 | # | ||
511 | # SCSI device support | ||
512 | # | ||
513 | # CONFIG_RAID_ATTRS is not set | ||
514 | CONFIG_SCSI=y | ||
515 | # CONFIG_SCSI_NETLINK is not set | ||
516 | CONFIG_SCSI_PROC_FS=y | ||
517 | |||
518 | # | ||
519 | # SCSI support type (disk, tape, CD-ROM) | ||
520 | # | ||
521 | CONFIG_BLK_DEV_SD=y | ||
522 | # CONFIG_CHR_DEV_ST is not set | ||
523 | # CONFIG_CHR_DEV_OSST is not set | ||
524 | # CONFIG_BLK_DEV_SR is not set | ||
525 | CONFIG_CHR_DEV_SG=y | ||
526 | # CONFIG_CHR_DEV_SCH is not set | ||
527 | |||
528 | # | ||
529 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
530 | # | ||
531 | # CONFIG_SCSI_MULTI_LUN is not set | ||
532 | # CONFIG_SCSI_CONSTANTS is not set | ||
533 | # CONFIG_SCSI_LOGGING is not set | ||
534 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
535 | |||
536 | # | ||
537 | # SCSI Transports | ||
538 | # | ||
539 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
540 | # CONFIG_SCSI_FC_ATTRS is not set | ||
541 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
542 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
543 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
544 | |||
545 | # | ||
546 | # SCSI low-level drivers | ||
547 | # | ||
548 | # CONFIG_ISCSI_TCP is not set | ||
549 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
550 | # CONFIG_SCSI_3W_9XXX is not set | ||
551 | # CONFIG_SCSI_ACARD is not set | ||
552 | # CONFIG_SCSI_AACRAID is not set | ||
553 | # CONFIG_SCSI_AIC7XXX is not set | ||
554 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
555 | # CONFIG_SCSI_AIC79XX is not set | ||
556 | # CONFIG_SCSI_AIC94XX is not set | ||
557 | # CONFIG_SCSI_DPT_I2O is not set | ||
558 | # CONFIG_SCSI_ARCMSR is not set | ||
559 | # CONFIG_MEGARAID_NEWGEN is not set | ||
560 | # CONFIG_MEGARAID_LEGACY is not set | ||
561 | # CONFIG_MEGARAID_SAS is not set | ||
562 | # CONFIG_SCSI_HPTIOP is not set | ||
563 | # CONFIG_SCSI_DMX3191D is not set | ||
564 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
565 | # CONFIG_SCSI_IPS is not set | ||
566 | # CONFIG_SCSI_INITIO is not set | ||
567 | # CONFIG_SCSI_INIA100 is not set | ||
568 | # CONFIG_SCSI_STEX is not set | ||
569 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
570 | # CONFIG_SCSI_IPR is not set | ||
571 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
572 | # CONFIG_SCSI_QLA_FC is not set | ||
573 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
574 | # CONFIG_SCSI_LPFC is not set | ||
575 | # CONFIG_SCSI_DC390T is not set | ||
576 | # CONFIG_SCSI_NSP32 is not set | ||
577 | # CONFIG_SCSI_DEBUG is not set | ||
578 | # CONFIG_SCSI_SRP is not set | ||
579 | |||
580 | # | ||
581 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
582 | # | ||
583 | CONFIG_ATA=y | ||
584 | # CONFIG_ATA_NONSTANDARD is not set | ||
585 | # CONFIG_SATA_AHCI is not set | ||
586 | # CONFIG_SATA_SVW is not set | ||
587 | # CONFIG_ATA_PIIX is not set | ||
588 | # CONFIG_SATA_NV is not set | ||
589 | # CONFIG_PDC_ADMA is not set | ||
590 | # CONFIG_SATA_QSTOR is not set | ||
591 | # CONFIG_SATA_PROMISE is not set | ||
592 | CONFIG_SATA_SIL=y | ||
593 | # CONFIG_SATA_SIL24 is not set | ||
594 | # CONFIG_SATA_SIS is not set | ||
595 | # CONFIG_SATA_ULI is not set | ||
596 | # CONFIG_SATA_VIA is not set | ||
597 | # CONFIG_SATA_VITESSE is not set | ||
598 | # CONFIG_PATA_AMD is not set | ||
599 | # CONFIG_PATA_CS5520 is not set | ||
600 | # CONFIG_PATA_EFAR is not set | ||
601 | # CONFIG_ATA_GENERIC is not set | ||
602 | # CONFIG_PATA_HPT3X3 is not set | ||
603 | # CONFIG_PATA_JMICRON is not set | ||
604 | # CONFIG_PATA_TRIFLEX is not set | ||
605 | # CONFIG_PATA_MARVELL is not set | ||
606 | # CONFIG_PATA_MPIIX is not set | ||
607 | # CONFIG_PATA_NETCELL is not set | ||
608 | # CONFIG_PATA_RZ1000 is not set | ||
609 | # CONFIG_PATA_PDC2027X is not set | ||
610 | # CONFIG_PATA_SIL680 is not set | ||
611 | # CONFIG_PATA_VIA is not set | ||
612 | # CONFIG_PATA_WINBOND is not set | ||
613 | # CONFIG_PATA_PLATFORM is not set | ||
614 | |||
615 | # | ||
616 | # Multi-device support (RAID and LVM) | ||
617 | # | ||
618 | # CONFIG_MD is not set | ||
619 | |||
620 | # | ||
621 | # Fusion MPT device support | ||
622 | # | ||
623 | # CONFIG_FUSION is not set | ||
624 | # CONFIG_FUSION_SPI is not set | ||
625 | # CONFIG_FUSION_FC is not set | ||
626 | # CONFIG_FUSION_SAS is not set | ||
627 | |||
628 | # | ||
629 | # IEEE 1394 (FireWire) support | ||
630 | # | ||
631 | # CONFIG_IEEE1394 is not set | ||
632 | |||
633 | # | ||
634 | # I2O device support | ||
635 | # | ||
636 | # CONFIG_I2O is not set | ||
637 | |||
638 | # | ||
639 | # Network device support | ||
640 | # | ||
641 | CONFIG_NETDEVICES=y | ||
642 | # CONFIG_DUMMY is not set | ||
643 | # CONFIG_BONDING is not set | ||
644 | # CONFIG_EQUALIZER is not set | ||
645 | # CONFIG_TUN is not set | ||
646 | |||
647 | # | ||
648 | # ARCnet devices | ||
649 | # | ||
650 | # CONFIG_ARCNET is not set | ||
651 | |||
652 | # | ||
653 | # PHY device support | ||
654 | # | ||
655 | CONFIG_PHYLIB=y | ||
656 | |||
657 | # | ||
658 | # MII PHY device drivers | ||
659 | # | ||
660 | # CONFIG_MARVELL_PHY is not set | ||
661 | # CONFIG_DAVICOM_PHY is not set | ||
662 | # CONFIG_QSEMI_PHY is not set | ||
663 | # CONFIG_LXT_PHY is not set | ||
664 | # CONFIG_CICADA_PHY is not set | ||
665 | # CONFIG_VITESSE_PHY is not set | ||
666 | CONFIG_SMSC_PHY=y | ||
667 | # CONFIG_BROADCOM_PHY is not set | ||
668 | # CONFIG_FIXED_PHY is not set | ||
669 | |||
670 | # | ||
671 | # Ethernet (10 or 100Mbit) | ||
672 | # | ||
673 | CONFIG_NET_ETHERNET=y | ||
674 | CONFIG_MII=y | ||
675 | # CONFIG_STNIC is not set | ||
676 | # CONFIG_HAPPYMEAL is not set | ||
677 | # CONFIG_SUNGEM is not set | ||
678 | # CONFIG_CASSINI is not set | ||
679 | # CONFIG_NET_VENDOR_3COM is not set | ||
680 | CONFIG_SMC91X=y | ||
681 | |||
682 | # | ||
683 | # Tulip family network device support | ||
684 | # | ||
685 | # CONFIG_NET_TULIP is not set | ||
686 | # CONFIG_HP100 is not set | ||
687 | CONFIG_NET_PCI=y | ||
688 | # CONFIG_PCNET32 is not set | ||
689 | # CONFIG_AMD8111_ETH is not set | ||
690 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
691 | # CONFIG_B44 is not set | ||
692 | # CONFIG_FORCEDETH is not set | ||
693 | # CONFIG_DGRS is not set | ||
694 | # CONFIG_EEPRO100 is not set | ||
695 | # CONFIG_E100 is not set | ||
696 | # CONFIG_FEALNX is not set | ||
697 | # CONFIG_NATSEMI is not set | ||
698 | # CONFIG_NE2K_PCI is not set | ||
699 | # CONFIG_8139TOO is not set | ||
700 | # CONFIG_SIS900 is not set | ||
701 | # CONFIG_EPIC100 is not set | ||
702 | # CONFIG_SUNDANCE is not set | ||
703 | # CONFIG_TLAN is not set | ||
704 | # CONFIG_VIA_RHINE is not set | ||
705 | |||
706 | # | ||
707 | # Ethernet (1000 Mbit) | ||
708 | # | ||
709 | # CONFIG_ACENIC is not set | ||
710 | # CONFIG_DL2K is not set | ||
711 | # CONFIG_E1000 is not set | ||
712 | # CONFIG_NS83820 is not set | ||
713 | # CONFIG_HAMACHI is not set | ||
714 | # CONFIG_R8169 is not set | ||
715 | # CONFIG_SIS190 is not set | ||
716 | # CONFIG_SKGE is not set | ||
717 | # CONFIG_SKY2 is not set | ||
718 | # CONFIG_SK98LIN is not set | ||
719 | # CONFIG_VIA_VELOCITY is not set | ||
720 | # CONFIG_TIGON3 is not set | ||
721 | # CONFIG_BNX2 is not set | ||
722 | # CONFIG_QLA3XXX is not set | ||
723 | |||
724 | # | ||
725 | # Ethernet (10000 Mbit) | ||
726 | # | ||
727 | # CONFIG_CHELSIO_T1 is not set | ||
728 | # CONFIG_CHELSIO_T3 is not set | ||
729 | # CONFIG_IXGB is not set | ||
730 | # CONFIG_S2IO is not set | ||
731 | # CONFIG_MYRI10GE is not set | ||
732 | # CONFIG_NETXEN_NIC is not set | ||
733 | |||
734 | # | ||
735 | # Token Ring devices | ||
736 | # | ||
737 | # CONFIG_TR is not set | ||
738 | |||
739 | # | ||
740 | # Wireless LAN (non-hamradio) | ||
741 | # | ||
742 | # CONFIG_NET_RADIO is not set | ||
743 | |||
744 | # | ||
745 | # Wan interfaces | ||
746 | # | ||
747 | # CONFIG_WAN is not set | ||
748 | # CONFIG_FDDI is not set | ||
749 | # CONFIG_PPP is not set | ||
750 | # CONFIG_SLIP is not set | ||
751 | # CONFIG_NET_FC is not set | ||
752 | # CONFIG_NETPOLL is not set | ||
753 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
754 | |||
755 | # | ||
756 | # ISDN subsystem | ||
757 | # | ||
758 | # CONFIG_ISDN is not set | ||
759 | |||
760 | # | ||
761 | # Telephony Support | ||
762 | # | ||
763 | # CONFIG_PHONE is not set | ||
764 | |||
765 | # | ||
766 | # Input device support | ||
767 | # | ||
768 | CONFIG_INPUT=y | ||
769 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
770 | |||
771 | # | ||
772 | # Userland interfaces | ||
773 | # | ||
774 | CONFIG_INPUT_MOUSEDEV=y | ||
775 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
776 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
777 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
778 | # CONFIG_INPUT_JOYDEV is not set | ||
779 | # CONFIG_INPUT_TSDEV is not set | ||
780 | # CONFIG_INPUT_EVDEV is not set | ||
781 | # CONFIG_INPUT_EVBUG is not set | ||
782 | |||
783 | # | ||
784 | # Input Device Drivers | ||
785 | # | ||
786 | # CONFIG_INPUT_KEYBOARD is not set | ||
787 | # CONFIG_INPUT_MOUSE is not set | ||
788 | # CONFIG_INPUT_JOYSTICK is not set | ||
789 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
790 | # CONFIG_INPUT_MISC is not set | ||
791 | |||
792 | # | ||
793 | # Hardware I/O ports | ||
794 | # | ||
795 | # CONFIG_SERIO is not set | ||
796 | # CONFIG_GAMEPORT is not set | ||
797 | |||
798 | # | ||
799 | # Character devices | ||
800 | # | ||
801 | CONFIG_VT=y | ||
802 | CONFIG_VT_CONSOLE=y | ||
803 | CONFIG_HW_CONSOLE=y | ||
804 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
805 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
806 | |||
807 | # | ||
808 | # Serial drivers | ||
809 | # | ||
810 | # CONFIG_SERIAL_8250 is not set | ||
811 | |||
812 | # | ||
813 | # Non-8250 serial port support | ||
814 | # | ||
815 | CONFIG_SERIAL_SH_SCI=y | ||
816 | CONFIG_SERIAL_SH_SCI_NR_UARTS=2 | ||
817 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
818 | CONFIG_SERIAL_CORE=y | ||
819 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
820 | # CONFIG_SERIAL_JSM is not set | ||
821 | CONFIG_UNIX98_PTYS=y | ||
822 | # CONFIG_LEGACY_PTYS is not set | ||
823 | |||
824 | # | ||
825 | # IPMI | ||
826 | # | ||
827 | # CONFIG_IPMI_HANDLER is not set | ||
828 | |||
829 | # | ||
830 | # Watchdog Cards | ||
831 | # | ||
832 | # CONFIG_WATCHDOG is not set | ||
833 | # CONFIG_HW_RANDOM is not set | ||
834 | # CONFIG_GEN_RTC is not set | ||
835 | # CONFIG_DTLK is not set | ||
836 | # CONFIG_R3964 is not set | ||
837 | # CONFIG_APPLICOM is not set | ||
838 | # CONFIG_DRM is not set | ||
839 | # CONFIG_RAW_DRIVER is not set | ||
840 | |||
841 | # | ||
842 | # TPM devices | ||
843 | # | ||
844 | |||
845 | # | ||
846 | # I2C support | ||
847 | # | ||
848 | # CONFIG_I2C is not set | ||
849 | |||
850 | # | ||
851 | # SPI support | ||
852 | # | ||
853 | # CONFIG_SPI is not set | ||
854 | # CONFIG_SPI_MASTER is not set | ||
855 | |||
856 | # | ||
857 | # Dallas's 1-wire bus | ||
858 | # | ||
859 | # CONFIG_W1 is not set | ||
860 | |||
861 | # | ||
862 | # Hardware Monitoring support | ||
863 | # | ||
864 | CONFIG_HWMON=y | ||
865 | # CONFIG_HWMON_VID is not set | ||
866 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
867 | |||
868 | # | ||
869 | # Multifunction device drivers | ||
870 | # | ||
871 | # CONFIG_MFD_SM501 is not set | ||
872 | |||
873 | # | ||
874 | # Multimedia devices | ||
875 | # | ||
876 | # CONFIG_VIDEO_DEV is not set | ||
877 | |||
878 | # | ||
879 | # Digital Video Broadcasting Devices | ||
880 | # | ||
881 | # CONFIG_DVB is not set | ||
882 | # CONFIG_USB_DABUSB is not set | ||
883 | |||
884 | # | ||
885 | # Graphics support | ||
886 | # | ||
887 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
888 | CONFIG_FB=y | ||
889 | CONFIG_FIRMWARE_EDID=y | ||
890 | # CONFIG_FB_DDC is not set | ||
891 | # CONFIG_FB_CFB_FILLRECT is not set | ||
892 | # CONFIG_FB_CFB_COPYAREA is not set | ||
893 | # CONFIG_FB_CFB_IMAGEBLIT is not set | ||
894 | # CONFIG_FB_SVGALIB is not set | ||
895 | # CONFIG_FB_MACMODES is not set | ||
896 | # CONFIG_FB_BACKLIGHT is not set | ||
897 | # CONFIG_FB_MODE_HELPERS is not set | ||
898 | # CONFIG_FB_TILEBLITTING is not set | ||
899 | |||
900 | # | ||
901 | # Frambuffer hardware drivers | ||
902 | # | ||
903 | # CONFIG_FB_CIRRUS is not set | ||
904 | # CONFIG_FB_PM2 is not set | ||
905 | # CONFIG_FB_CYBER2000 is not set | ||
906 | # CONFIG_FB_ASILIANT is not set | ||
907 | # CONFIG_FB_IMSTT is not set | ||
908 | # CONFIG_FB_EPSON1355 is not set | ||
909 | # CONFIG_FB_S1D13XXX is not set | ||
910 | # CONFIG_FB_NVIDIA is not set | ||
911 | # CONFIG_FB_RIVA is not set | ||
912 | # CONFIG_FB_MATROX is not set | ||
913 | # CONFIG_FB_RADEON is not set | ||
914 | # CONFIG_FB_ATY128 is not set | ||
915 | # CONFIG_FB_ATY is not set | ||
916 | # CONFIG_FB_S3 is not set | ||
917 | # CONFIG_FB_SIS is not set | ||
918 | # CONFIG_FB_NEOMAGIC is not set | ||
919 | # CONFIG_FB_KYRO is not set | ||
920 | # CONFIG_FB_3DFX is not set | ||
921 | # CONFIG_FB_VOODOO1 is not set | ||
922 | # CONFIG_FB_TRIDENT is not set | ||
923 | # CONFIG_FB_VIRTUAL is not set | ||
924 | |||
925 | # | ||
926 | # Console display driver support | ||
927 | # | ||
928 | CONFIG_DUMMY_CONSOLE=y | ||
929 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
930 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
931 | # CONFIG_FONTS is not set | ||
932 | CONFIG_FONT_8x8=y | ||
933 | CONFIG_FONT_8x16=y | ||
934 | |||
935 | # | ||
936 | # Logo configuration | ||
937 | # | ||
938 | CONFIG_LOGO=y | ||
939 | # CONFIG_LOGO_LINUX_MONO is not set | ||
940 | # CONFIG_LOGO_LINUX_VGA16 is not set | ||
941 | CONFIG_LOGO_LINUX_CLUT224=y | ||
942 | # CONFIG_LOGO_SUPERH_MONO is not set | ||
943 | # CONFIG_LOGO_SUPERH_VGA16 is not set | ||
944 | CONFIG_LOGO_SUPERH_CLUT224=y | ||
945 | |||
946 | # | ||
947 | # Sound | ||
948 | # | ||
949 | CONFIG_SOUND=y | ||
950 | |||
951 | # | ||
952 | # Advanced Linux Sound Architecture | ||
953 | # | ||
954 | # CONFIG_SND is not set | ||
955 | |||
956 | # | ||
957 | # Open Sound System | ||
958 | # | ||
959 | CONFIG_SOUND_PRIME=y | ||
960 | # CONFIG_OBSOLETE_OSS is not set | ||
961 | # CONFIG_SOUND_BT878 is not set | ||
962 | # CONFIG_SOUND_ICH is not set | ||
963 | # CONFIG_SOUND_TRIDENT is not set | ||
964 | # CONFIG_SOUND_MSNDCLAS is not set | ||
965 | # CONFIG_SOUND_MSNDPIN is not set | ||
966 | # CONFIG_SOUND_VIA82CXXX is not set | ||
967 | |||
968 | # | ||
969 | # HID Devices | ||
970 | # | ||
971 | CONFIG_HID=y | ||
972 | # CONFIG_HID_DEBUG is not set | ||
973 | |||
974 | # | ||
975 | # USB support | ||
976 | # | ||
977 | CONFIG_USB_ARCH_HAS_HCD=y | ||
978 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
979 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
980 | CONFIG_USB=y | ||
981 | CONFIG_USB_DEBUG=y | ||
982 | |||
983 | # | ||
984 | # Miscellaneous USB options | ||
985 | # | ||
986 | CONFIG_USB_DEVICEFS=y | ||
987 | |||
988 | # | ||
989 | # USB Host Controller Drivers | ||
990 | # | ||
991 | CONFIG_USB_EHCI_HCD=y | ||
992 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
993 | # CONFIG_USB_ISP116X_HCD is not set | ||
994 | CONFIG_USB_OHCI_HCD=y | ||
995 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | ||
996 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
997 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
998 | # CONFIG_USB_UHCI_HCD is not set | ||
999 | # CONFIG_USB_SL811_HCD is not set | ||
1000 | |||
1001 | # | ||
1002 | # USB Device Class drivers | ||
1003 | # | ||
1004 | # CONFIG_USB_ACM is not set | ||
1005 | # CONFIG_USB_PRINTER is not set | ||
1006 | |||
1007 | # | ||
1008 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
1009 | # | ||
1010 | |||
1011 | # | ||
1012 | # may also be needed; see USB_STORAGE Help for more information | ||
1013 | # | ||
1014 | CONFIG_USB_STORAGE=y | ||
1015 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
1016 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
1017 | # CONFIG_USB_STORAGE_DPCM is not set | ||
1018 | # CONFIG_USB_STORAGE_KARMA is not set | ||
1019 | # CONFIG_USB_LIBUSUAL is not set | ||
1020 | |||
1021 | # | ||
1022 | # USB Input Devices | ||
1023 | # | ||
1024 | CONFIG_USB_HID=y | ||
1025 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1026 | # CONFIG_USB_HIDDEV is not set | ||
1027 | # CONFIG_USB_AIPTEK is not set | ||
1028 | # CONFIG_USB_WACOM is not set | ||
1029 | # CONFIG_USB_ACECAD is not set | ||
1030 | # CONFIG_USB_KBTAB is not set | ||
1031 | # CONFIG_USB_POWERMATE is not set | ||
1032 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1033 | # CONFIG_USB_XPAD is not set | ||
1034 | # CONFIG_USB_ATI_REMOTE is not set | ||
1035 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1036 | # CONFIG_USB_APPLETOUCH is not set | ||
1037 | # CONFIG_USB_GTCO is not set | ||
1038 | |||
1039 | # | ||
1040 | # USB Imaging devices | ||
1041 | # | ||
1042 | # CONFIG_USB_MICROTEK is not set | ||
1043 | |||
1044 | # | ||
1045 | # USB Network Adapters | ||
1046 | # | ||
1047 | # CONFIG_USB_KAWETH is not set | ||
1048 | # CONFIG_USB_PEGASUS is not set | ||
1049 | # CONFIG_USB_USBNET_MII is not set | ||
1050 | # CONFIG_USB_USBNET is not set | ||
1051 | CONFIG_USB_MON=y | ||
1052 | |||
1053 | # | ||
1054 | # USB port drivers | ||
1055 | # | ||
1056 | |||
1057 | # | ||
1058 | # USB Serial Converter support | ||
1059 | # | ||
1060 | # CONFIG_USB_SERIAL is not set | ||
1061 | |||
1062 | # | ||
1063 | # USB Miscellaneous drivers | ||
1064 | # | ||
1065 | # CONFIG_USB_EMI62 is not set | ||
1066 | # CONFIG_USB_EMI26 is not set | ||
1067 | # CONFIG_USB_LCD is not set | ||
1068 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1069 | # CONFIG_USB_LED is not set | ||
1070 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1071 | # CONFIG_USB_CYTHERM is not set | ||
1072 | # CONFIG_USB_PHIDGET is not set | ||
1073 | # CONFIG_USB_IDMOUSE is not set | ||
1074 | # CONFIG_USB_FTDI_ELAN is not set | ||
1075 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1076 | # CONFIG_USB_SISUSBVGA is not set | ||
1077 | # CONFIG_USB_LD is not set | ||
1078 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1079 | # CONFIG_USB_IOWARRIOR is not set | ||
1080 | |||
1081 | # | ||
1082 | # USB DSL modem support | ||
1083 | # | ||
1084 | |||
1085 | # | ||
1086 | # USB Gadget Support | ||
1087 | # | ||
1088 | # CONFIG_USB_GADGET is not set | ||
1089 | |||
1090 | # | ||
1091 | # MMC/SD Card support | ||
1092 | # | ||
1093 | # CONFIG_MMC is not set | ||
1094 | |||
1095 | # | ||
1096 | # LED devices | ||
1097 | # | ||
1098 | # CONFIG_NEW_LEDS is not set | ||
1099 | |||
1100 | # | ||
1101 | # LED drivers | ||
1102 | # | ||
1103 | |||
1104 | # | ||
1105 | # LED Triggers | ||
1106 | # | ||
1107 | |||
1108 | # | ||
1109 | # InfiniBand support | ||
1110 | # | ||
1111 | # CONFIG_INFINIBAND is not set | ||
1112 | |||
1113 | # | ||
1114 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1115 | # | ||
1116 | |||
1117 | # | ||
1118 | # Real Time Clock | ||
1119 | # | ||
1120 | |||
1121 | # | ||
1122 | # DMA Engine support | ||
1123 | # | ||
1124 | # CONFIG_DMA_ENGINE is not set | ||
1125 | |||
1126 | # | ||
1127 | # DMA Clients | ||
1128 | # | ||
1129 | |||
1130 | # | ||
1131 | # DMA Devices | ||
1132 | # | ||
1133 | |||
1134 | # | ||
1135 | # Auxiliary Display support | ||
1136 | # | ||
1137 | |||
1138 | # | ||
1139 | # Virtualization | ||
1140 | # | ||
1141 | |||
1142 | # | ||
1143 | # File systems | ||
1144 | # | ||
1145 | CONFIG_EXT2_FS=y | ||
1146 | # CONFIG_EXT2_FS_XATTR is not set | ||
1147 | # CONFIG_EXT2_FS_XIP is not set | ||
1148 | # CONFIG_EXT3_FS is not set | ||
1149 | # CONFIG_REISERFS_FS is not set | ||
1150 | # CONFIG_JFS_FS is not set | ||
1151 | # CONFIG_FS_POSIX_ACL is not set | ||
1152 | # CONFIG_XFS_FS is not set | ||
1153 | # CONFIG_MINIX_FS is not set | ||
1154 | # CONFIG_ROMFS_FS is not set | ||
1155 | CONFIG_INOTIFY=y | ||
1156 | CONFIG_INOTIFY_USER=y | ||
1157 | # CONFIG_QUOTA is not set | ||
1158 | # CONFIG_DNOTIFY is not set | ||
1159 | # CONFIG_AUTOFS_FS is not set | ||
1160 | # CONFIG_AUTOFS4_FS is not set | ||
1161 | # CONFIG_FUSE_FS is not set | ||
1162 | |||
1163 | # | ||
1164 | # CD-ROM/DVD Filesystems | ||
1165 | # | ||
1166 | # CONFIG_ISO9660_FS is not set | ||
1167 | # CONFIG_UDF_FS is not set | ||
1168 | |||
1169 | # | ||
1170 | # DOS/FAT/NT Filesystems | ||
1171 | # | ||
1172 | CONFIG_FAT_FS=y | ||
1173 | CONFIG_MSDOS_FS=y | ||
1174 | CONFIG_VFAT_FS=y | ||
1175 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1176 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1177 | # CONFIG_NTFS_FS is not set | ||
1178 | |||
1179 | # | ||
1180 | # Pseudo filesystems | ||
1181 | # | ||
1182 | CONFIG_PROC_FS=y | ||
1183 | # CONFIG_PROC_KCORE is not set | ||
1184 | CONFIG_PROC_SYSCTL=y | ||
1185 | # CONFIG_SYSFS is not set | ||
1186 | CONFIG_TMPFS=y | ||
1187 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1188 | # CONFIG_HUGETLBFS is not set | ||
1189 | # CONFIG_HUGETLB_PAGE is not set | ||
1190 | CONFIG_RAMFS=y | ||
1191 | |||
1192 | # | ||
1193 | # Miscellaneous filesystems | ||
1194 | # | ||
1195 | # CONFIG_HFSPLUS_FS is not set | ||
1196 | # CONFIG_JFFS2_FS is not set | ||
1197 | CONFIG_CRAMFS=y | ||
1198 | # CONFIG_VXFS_FS is not set | ||
1199 | # CONFIG_HPFS_FS is not set | ||
1200 | # CONFIG_QNX4FS_FS is not set | ||
1201 | # CONFIG_SYSV_FS is not set | ||
1202 | # CONFIG_UFS_FS is not set | ||
1203 | |||
1204 | # | ||
1205 | # Network File Systems | ||
1206 | # | ||
1207 | CONFIG_NFS_FS=y | ||
1208 | CONFIG_NFS_V3=y | ||
1209 | # CONFIG_NFS_V3_ACL is not set | ||
1210 | # CONFIG_NFS_DIRECTIO is not set | ||
1211 | # CONFIG_NFSD is not set | ||
1212 | CONFIG_ROOT_NFS=y | ||
1213 | CONFIG_LOCKD=y | ||
1214 | CONFIG_LOCKD_V4=y | ||
1215 | CONFIG_NFS_COMMON=y | ||
1216 | CONFIG_SUNRPC=y | ||
1217 | # CONFIG_SMB_FS is not set | ||
1218 | # CONFIG_CIFS is not set | ||
1219 | # CONFIG_NCP_FS is not set | ||
1220 | # CONFIG_CODA_FS is not set | ||
1221 | |||
1222 | # | ||
1223 | # Partition Types | ||
1224 | # | ||
1225 | # CONFIG_PARTITION_ADVANCED is not set | ||
1226 | CONFIG_MSDOS_PARTITION=y | ||
1227 | |||
1228 | # | ||
1229 | # Native Language Support | ||
1230 | # | ||
1231 | CONFIG_NLS=y | ||
1232 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1233 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1234 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1235 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1236 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1237 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1238 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1239 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1240 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1241 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1242 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1243 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1244 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1245 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1246 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1247 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1248 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1249 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1250 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1251 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1252 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1253 | # CONFIG_NLS_ISO8859_8 is not set | ||
1254 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1255 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1256 | # CONFIG_NLS_ASCII is not set | ||
1257 | # CONFIG_NLS_ISO8859_1 is not set | ||
1258 | # CONFIG_NLS_ISO8859_2 is not set | ||
1259 | # CONFIG_NLS_ISO8859_3 is not set | ||
1260 | # CONFIG_NLS_ISO8859_4 is not set | ||
1261 | # CONFIG_NLS_ISO8859_5 is not set | ||
1262 | # CONFIG_NLS_ISO8859_6 is not set | ||
1263 | # CONFIG_NLS_ISO8859_7 is not set | ||
1264 | # CONFIG_NLS_ISO8859_9 is not set | ||
1265 | # CONFIG_NLS_ISO8859_13 is not set | ||
1266 | # CONFIG_NLS_ISO8859_14 is not set | ||
1267 | # CONFIG_NLS_ISO8859_15 is not set | ||
1268 | # CONFIG_NLS_KOI8_R is not set | ||
1269 | # CONFIG_NLS_KOI8_U is not set | ||
1270 | # CONFIG_NLS_UTF8 is not set | ||
1271 | |||
1272 | # | ||
1273 | # Kernel hacking | ||
1274 | # | ||
1275 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1276 | # CONFIG_PRINTK_TIME is not set | ||
1277 | CONFIG_ENABLE_MUST_CHECK=y | ||
1278 | # CONFIG_MAGIC_SYSRQ is not set | ||
1279 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1280 | # CONFIG_HEADERS_CHECK is not set | ||
1281 | # CONFIG_DEBUG_KERNEL is not set | ||
1282 | CONFIG_LOG_BUF_SHIFT=14 | ||
1283 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1284 | # CONFIG_SH_STANDARD_BIOS is not set | ||
1285 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1286 | # CONFIG_SH_KGDB is not set | ||
1287 | |||
1288 | # | ||
1289 | # Security options | ||
1290 | # | ||
1291 | # CONFIG_KEYS is not set | ||
1292 | |||
1293 | # | ||
1294 | # Cryptographic options | ||
1295 | # | ||
1296 | # CONFIG_CRYPTO is not set | ||
1297 | |||
1298 | # | ||
1299 | # Library routines | ||
1300 | # | ||
1301 | CONFIG_BITREVERSE=y | ||
1302 | # CONFIG_CRC_CCITT is not set | ||
1303 | # CONFIG_CRC16 is not set | ||
1304 | CONFIG_CRC32=y | ||
1305 | # CONFIG_LIBCRC32C is not set | ||
1306 | CONFIG_ZLIB_INFLATE=y | ||
1307 | CONFIG_PLIST=y | ||
1308 | CONFIG_HAS_IOMEM=y | ||
1309 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/sh/drivers/Kconfig b/arch/sh/drivers/Kconfig index c54c758e6243..420c6b2f33a5 100644 --- a/arch/sh/drivers/Kconfig +++ b/arch/sh/drivers/Kconfig | |||
@@ -1,5 +1,15 @@ | |||
1 | source "arch/sh/drivers/dma/Kconfig" | ||
2 | source "arch/sh/cchips/Kconfig" | ||
3 | |||
1 | menu "Additional SuperH Device Drivers" | 4 | menu "Additional SuperH Device Drivers" |
2 | 5 | ||
6 | config HEARTBEAT | ||
7 | bool "Heartbeat LED" | ||
8 | help | ||
9 | Use the power-on LED on your machine as a load meter. The exact | ||
10 | behavior is platform-dependent, but normally the flash frequency is | ||
11 | a hyperbolic function of the 5-minute load average. | ||
12 | |||
3 | config PUSH_SWITCH | 13 | config PUSH_SWITCH |
4 | tristate "Push switch support" | 14 | tristate "Push switch support" |
5 | help | 15 | help |
diff --git a/arch/sh/drivers/heartbeat.c b/arch/sh/drivers/heartbeat.c index bc59cb6cd78b..23dd6080422f 100644 --- a/arch/sh/drivers/heartbeat.c +++ b/arch/sh/drivers/heartbeat.c | |||
@@ -40,16 +40,9 @@ static void heartbeat_timer(unsigned long data) | |||
40 | static unsigned bit = 0, up = 1; | 40 | static unsigned bit = 0, up = 1; |
41 | 41 | ||
42 | ctrl_outw(1 << hd->bit_pos[bit], (unsigned long)hd->base); | 42 | ctrl_outw(1 << hd->bit_pos[bit], (unsigned long)hd->base); |
43 | if (up) | 43 | bit += up; |
44 | if (bit == (ARRAY_SIZE(hd->bit_pos) - 1)) { | 44 | if ((bit == 0) || (bit == ARRAY_SIZE(hd->bit_pos)-1)) |
45 | bit--; | 45 | up = -up; |
46 | up = 0; | ||
47 | } else | ||
48 | bit++; | ||
49 | else if (bit == 0) | ||
50 | up = 1; | ||
51 | else | ||
52 | bit--; | ||
53 | 46 | ||
54 | mod_timer(&hd->timer, jiffies + (110 - ((300 << FSHIFT) / | 47 | mod_timer(&hd->timer, jiffies + (110 - ((300 << FSHIFT) / |
55 | ((avenrun[0] / 5) + (3 << FSHIFT))))); | 48 | ((avenrun[0] / 5) + (3 << FSHIFT))))); |
diff --git a/arch/sh/drivers/pci/Makefile b/arch/sh/drivers/pci/Makefile index cc8d0d0b1427..0e9b532b9fbc 100644 --- a/arch/sh/drivers/pci/Makefile +++ b/arch/sh/drivers/pci/Makefile | |||
@@ -8,12 +8,15 @@ obj-$(CONFIG_PCI_AUTO) += pci-auto.o | |||
8 | obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o | 8 | obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o |
9 | obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o | 9 | obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o |
10 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o | 10 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o |
11 | obj-$(CONFIG_CPU_SUBTYPE_SH7785) += pci-sh7780.o ops-sh4.o | ||
11 | 12 | ||
12 | obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \ | 13 | obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \ |
13 | dma-dreamcast.o | 14 | dma-dreamcast.o |
14 | obj-$(CONFIG_SH_SECUREEDGE5410) += ops-snapgear.o | 15 | obj-$(CONFIG_SH_SECUREEDGE5410) += ops-snapgear.o |
15 | obj-$(CONFIG_SH_RTS7751R2D) += ops-rts7751r2d.o fixups-rts7751r2d.o | 16 | obj-$(CONFIG_SH_RTS7751R2D) += ops-rts7751r2d.o fixups-rts7751r2d.o |
16 | obj-$(CONFIG_SH_SH03) += ops-sh03.o fixups-sh03.o | 17 | obj-$(CONFIG_SH_SH03) += ops-sh03.o fixups-sh03.o |
17 | obj-$(CONFIG_SH_R7780RP) += ops-r7780rp.o fixups-r7780rp.o | 18 | obj-$(CONFIG_SH_HIGHLANDER) += ops-r7780rp.o fixups-r7780rp.o |
18 | obj-$(CONFIG_SH_TITAN) += ops-titan.o | 19 | obj-$(CONFIG_SH_TITAN) += ops-titan.o |
19 | obj-$(CONFIG_SH_LANDISK) += ops-landisk.o | 20 | obj-$(CONFIG_SH_LANDISK) += ops-landisk.o |
21 | obj-$(CONFIG_SH_LBOX_RE2) += ops-lboxre2.o fixups-lboxre2.o | ||
22 | obj-$(CONFIG_SH_7780_SOLUTION_ENGINE) += ops-se7780.o fixups-se7780.o | ||
diff --git a/arch/sh/drivers/pci/fixups-lboxre2.c b/arch/sh/drivers/pci/fixups-lboxre2.c new file mode 100644 index 000000000000..40b19bdfb891 --- /dev/null +++ b/arch/sh/drivers/pci/fixups-lboxre2.c | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * arch/sh/drivers/pci/fixups-lboxre2.c | ||
3 | * | ||
4 | * L-BOX RE2 PCI fixups | ||
5 | * | ||
6 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | #include "pci-sh4.h" | ||
13 | |||
14 | #define PCIMCR_MRSET_OFF 0xBFFFFFFF | ||
15 | #define PCIMCR_RFSH_OFF 0xFFFFFFFB | ||
16 | |||
17 | int pci_fixup_pcic(void) | ||
18 | { | ||
19 | unsigned long bcr1, mcr; | ||
20 | |||
21 | bcr1 = inl(SH7751_BCR1); | ||
22 | bcr1 |= 0x40080000; /* Enable Bit 19 BREQEN, set PCIC to slave */ | ||
23 | pci_write_reg(bcr1, SH4_PCIBCR1); | ||
24 | |||
25 | /* Enable all interrupts, so we known what to fix */ | ||
26 | pci_write_reg(0x0000c3ff, SH4_PCIINTM); | ||
27 | pci_write_reg(0x0000380f, SH4_PCIAINTM); | ||
28 | pci_write_reg(0xfb900047, SH7751_PCICONF1); | ||
29 | pci_write_reg(0xab000001, SH7751_PCICONF4); | ||
30 | |||
31 | mcr = inl(SH7751_MCR); | ||
32 | mcr = (mcr & PCIMCR_MRSET_OFF) & PCIMCR_RFSH_OFF; | ||
33 | pci_write_reg(mcr, SH4_PCIMCR); | ||
34 | |||
35 | pci_write_reg(0x0c000000, SH7751_PCICONF5); | ||
36 | pci_write_reg(0xd0000000, SH7751_PCICONF6); | ||
37 | pci_write_reg(0x0c000000, SH4_PCILAR0); | ||
38 | pci_write_reg(0x00000000, SH4_PCILAR1); | ||
39 | |||
40 | return 0; | ||
41 | } | ||
diff --git a/arch/sh/drivers/pci/fixups-se7780.c b/arch/sh/drivers/pci/fixups-se7780.c new file mode 100644 index 000000000000..880cea1c0d89 --- /dev/null +++ b/arch/sh/drivers/pci/fixups-se7780.c | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * arch/sh/drivers/pci/fixups-se7780.c | ||
3 | * | ||
4 | * HITACHI UL Solution Engine 7780 PCI fixups | ||
5 | * | ||
6 | * Copyright (C) 2003 Lineo uSolutions, Inc. | ||
7 | * Copyright (C) 2004 - 2006 Paul Mundt | ||
8 | * Copyright (C) 2006 Nobuhiro Iwamatsu | ||
9 | * | ||
10 | * This file is subject to the terms and conditions of the GNU General Public | ||
11 | * License. See the file "COPYING" in the main directory of this archive | ||
12 | * for more details. | ||
13 | */ | ||
14 | #include <linux/pci.h> | ||
15 | #include "pci-sh4.h" | ||
16 | #include <asm/io.h> | ||
17 | |||
18 | int pci_fixup_pcic(void) | ||
19 | { | ||
20 | ctrl_outl(0x00000001, SH7780_PCI_VCR2); | ||
21 | |||
22 | /* Enable all interrupts, so we know what to fix */ | ||
23 | pci_write_reg(0x0000C3FF, SH7780_PCIIMR); | ||
24 | pci_write_reg(0x0000380F, SH7780_PCIAINTM); | ||
25 | |||
26 | /* Set up standard PCI config registers */ | ||
27 | ctrl_outw(0xFB00, PCI_REG(SH7780_PCISTATUS)); | ||
28 | ctrl_outw(0x0047, PCI_REG(SH7780_PCICMD)); | ||
29 | ctrl_outb( 0x00, PCI_REG(SH7780_PCIPIF)); | ||
30 | ctrl_outb( 0x00, PCI_REG(SH7780_PCISUB)); | ||
31 | ctrl_outb( 0x06, PCI_REG(SH7780_PCIBCC)); | ||
32 | ctrl_outw(0x1912, PCI_REG(SH7780_PCISVID)); | ||
33 | ctrl_outw(0x0001, PCI_REG(SH7780_PCISID)); | ||
34 | |||
35 | pci_write_reg(0x08000000, SH7780_PCIMBAR0); /* PCI */ | ||
36 | pci_write_reg(0x08000000, SH7780_PCILAR0); /* SHwy */ | ||
37 | pci_write_reg(0x07F00001, SH7780_PCILSR); /* size 128M w/ MBAR */ | ||
38 | |||
39 | pci_write_reg(0x00000000, SH7780_PCIMBAR1); | ||
40 | pci_write_reg(0x00000000, SH7780_PCILAR1); | ||
41 | pci_write_reg(0x00000000, SH7780_PCILSR1); | ||
42 | |||
43 | pci_write_reg(0xAB000801, SH7780_PCIIBAR); | ||
44 | |||
45 | /* | ||
46 | * Set the MBR so PCI address is one-to-one with window, | ||
47 | * meaning all calls go straight through... use ifdef to | ||
48 | * catch erroneous assumption. | ||
49 | */ | ||
50 | pci_write_reg(0xFD000000 , SH7780_PCIMBR0); | ||
51 | pci_write_reg(0x00FC0000 , SH7780_PCIMBMR0); /* 16M */ | ||
52 | |||
53 | /* Set IOBR for window containing area specified in pci.h */ | ||
54 | pci_write_reg(PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE-1), SH7780_PCIIOBR); | ||
55 | pci_write_reg((SH7780_PCI_IO_SIZE-1) & (7 << 18), SH7780_PCIIOBMR); | ||
56 | |||
57 | pci_write_reg(0xA5000C01, SH7780_PCICR); | ||
58 | |||
59 | return 0; | ||
60 | } | ||
diff --git a/arch/sh/drivers/pci/ops-landisk.c b/arch/sh/drivers/pci/ops-landisk.c index d06030815a96..bff09ecf3419 100644 --- a/arch/sh/drivers/pci/ops-landisk.c +++ b/arch/sh/drivers/pci/ops-landisk.c | |||
@@ -17,8 +17,8 @@ | |||
17 | 17 | ||
18 | static struct resource sh7751_io_resource = { | 18 | static struct resource sh7751_io_resource = { |
19 | .name = "SH7751 IO", | 19 | .name = "SH7751 IO", |
20 | .start = 0x4000, | 20 | .start = SH7751_PCI_IO_BASE, |
21 | .end = 0x4000 + SH7751_PCI_IO_SIZE - 1, | 21 | .end = SH7751_PCI_IO_BASE + SH7751_PCI_IO_SIZE - 1, |
22 | .flags = IORESOURCE_IO | 22 | .flags = IORESOURCE_IO |
23 | }; | 23 | }; |
24 | 24 | ||
diff --git a/arch/sh/drivers/pci/ops-lboxre2.c b/arch/sh/drivers/pci/ops-lboxre2.c new file mode 100644 index 000000000000..a13cb764b0b9 --- /dev/null +++ b/arch/sh/drivers/pci/ops-lboxre2.c | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/drivers/pci/ops-lboxre2.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * PCI initialization for the NTT COMWARE L-BOX RE2 | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/types.h> | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/pci.h> | ||
12 | #include <linux/io.h> | ||
13 | #include <asm/lboxre2.h> | ||
14 | #include "pci-sh4.h" | ||
15 | |||
16 | static char lboxre2_irq_tab[] __initdata = { | ||
17 | IRQ_ETH0, IRQ_ETH1, IRQ_INTA, IRQ_INTD, | ||
18 | }; | ||
19 | |||
20 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) | ||
21 | { | ||
22 | return lboxre2_irq_tab[slot]; | ||
23 | } | ||
24 | |||
25 | static struct resource sh7751_io_resource = { | ||
26 | .name = "SH7751_IO", | ||
27 | .start = SH7751_PCI_IO_BASE , | ||
28 | .end = SH7751_PCI_IO_BASE + SH7751_PCI_IO_SIZE - 1, | ||
29 | .flags = IORESOURCE_IO | ||
30 | }; | ||
31 | |||
32 | static struct resource sh7751_mem_resource = { | ||
33 | .name = "SH7751_mem", | ||
34 | .start = SH7751_PCI_MEMORY_BASE, | ||
35 | .end = SH7751_PCI_MEMORY_BASE + SH7751_PCI_MEM_SIZE - 1, | ||
36 | .flags = IORESOURCE_MEM | ||
37 | }; | ||
38 | |||
39 | extern struct pci_ops sh7751_pci_ops; | ||
40 | |||
41 | struct pci_channel board_pci_channels[] = { | ||
42 | { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff }, | ||
43 | { NULL, NULL, NULL, 0, 0 }, | ||
44 | }; | ||
45 | |||
46 | EXPORT_SYMBOL(board_pci_channels); | ||
47 | |||
48 | static struct sh4_pci_address_map sh7751_pci_map = { | ||
49 | .window0 = { | ||
50 | .base = SH7751_CS3_BASE_ADDR, | ||
51 | .size = 0x04000000, | ||
52 | }, | ||
53 | .window1 = { | ||
54 | .base = 0x00000000, /* Unused */ | ||
55 | .size = 0x00000000, /* Unused */ | ||
56 | }, | ||
57 | .flags = SH4_PCIC_NO_RESET, | ||
58 | }; | ||
59 | |||
60 | int __init pcibios_init_platform(void) | ||
61 | { | ||
62 | return sh7751_pcic_init(&sh7751_pci_map); | ||
63 | } | ||
diff --git a/arch/sh/drivers/pci/ops-r7780rp.c b/arch/sh/drivers/pci/ops-r7780rp.c index eeea1577e112..f2216081ab85 100644 --- a/arch/sh/drivers/pci/ops-r7780rp.c +++ b/arch/sh/drivers/pci/ops-r7780rp.c | |||
@@ -17,18 +17,25 @@ | |||
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | #include "pci-sh4.h" | 18 | #include "pci-sh4.h" |
19 | 19 | ||
20 | static char r7780rp_irq_tab[] __initdata = { | ||
21 | 0, 1, 2, 3, | ||
22 | }; | ||
23 | |||
24 | static char r7780mp_irq_tab[] __initdata = { | ||
25 | 65, 66, 67, 68, | ||
26 | }; | ||
27 | |||
20 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) | 28 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) |
21 | { | 29 | { |
22 | switch (slot) { | 30 | if (mach_is_r7780rp()) |
23 | case 0: return IRQ_PCISLOT1; /* PCI Interrupt #1 */ | 31 | return r7780rp_irq_tab[slot]; |
24 | case 1: return IRQ_PCISLOT2; /* PCI Interrupt #2 */ | 32 | if (mach_is_r7780mp() || mach_is_r7785rp()) |
25 | case 2: return IRQ_PCISLOT3; /* PCI Interrupt #3 */ | 33 | return r7780mp_irq_tab[slot]; |
26 | case 3: return IRQ_PCISLOT4; /* PCI Interrupt E4 */ | 34 | |
27 | default: | 35 | printk(KERN_ERR "PCI: Bad IRQ mapping " |
28 | printk(KERN_ERR "PCI: Bad IRQ mapping " | 36 | "request for slot %d, func %d\n", slot, pin-1); |
29 | "request for slot %d, func %d\n", slot, pin-1); | 37 | |
30 | return -1; | 38 | return -1; |
31 | } | ||
32 | } | 39 | } |
33 | 40 | ||
34 | static struct resource sh7780_io_resource = { | 41 | static struct resource sh7780_io_resource = { |
diff --git a/arch/sh/drivers/pci/ops-se7780.c b/arch/sh/drivers/pci/ops-se7780.c new file mode 100644 index 000000000000..212674df5e13 --- /dev/null +++ b/arch/sh/drivers/pci/ops-se7780.c | |||
@@ -0,0 +1,96 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/drivers/pci/ops-se7780.c | ||
3 | * | ||
4 | * Copyright (C) 2006 Nobuhiro Iwamatsu | ||
5 | * | ||
6 | * PCI initialization for the Hitachi UL Solution Engine 7780SE03 | ||
7 | * | ||
8 | * May be copied or modified under the terms of the GNU General Public | ||
9 | * License. See linux/COPYING for more information. | ||
10 | */ | ||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/types.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/delay.h> | ||
15 | #include <linux/pci.h> | ||
16 | #include <asm/se7780.h> | ||
17 | #include <asm/io.h> | ||
18 | #include "pci-sh4.h" | ||
19 | |||
20 | /* | ||
21 | * IDSEL = AD16 PCI slot | ||
22 | * IDSEL = AD17 PCI slot | ||
23 | * IDSEL = AD18 Serial ATA Controller (Silicon Image SiL3512A) | ||
24 | * IDSEL = AD19 USB Host Controller (NEC uPD7210100A) | ||
25 | */ | ||
26 | |||
27 | /* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */ | ||
28 | static char se7780_irq_tab[4][16] __initdata = { | ||
29 | /* INTA */ | ||
30 | { 65, 68, 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, | ||
31 | /* INTB */ | ||
32 | { 66, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, | ||
33 | /* INTC */ | ||
34 | { 67, 66, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, | ||
35 | /* INTD */ | ||
36 | { 68, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, | ||
37 | }; | ||
38 | |||
39 | int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) | ||
40 | { | ||
41 | return se7780_irq_tab[pin-1][slot]; | ||
42 | } | ||
43 | |||
44 | static struct resource se7780_io_resource = { | ||
45 | .name = "SH7780_IO", | ||
46 | .start = 0x2000, | ||
47 | .end = 0x2000 + SH7780_PCI_IO_SIZE - 1, | ||
48 | .flags = IORESOURCE_IO | ||
49 | }; | ||
50 | |||
51 | static struct resource se7780_mem_resource = { | ||
52 | .name = "SH7780_mem", | ||
53 | .start = SH7780_PCI_MEMORY_BASE, | ||
54 | .end = SH7780_PCI_MEMORY_BASE + SH7780_PCI_MEM_SIZE - 1, | ||
55 | .flags = IORESOURCE_MEM | ||
56 | }; | ||
57 | |||
58 | extern struct pci_ops se7780_pci_ops; | ||
59 | |||
60 | struct pci_channel board_pci_channels[] = { | ||
61 | { &sh4_pci_ops, &se7780_io_resource, &se7780_mem_resource, 0, 0xff }, | ||
62 | { NULL, NULL, NULL, 0, 0 }, | ||
63 | }; | ||
64 | EXPORT_SYMBOL(board_pci_channels); | ||
65 | |||
66 | static struct sh4_pci_address_map se7780_pci_map = { | ||
67 | .window0 = { | ||
68 | .base = SH7780_CS2_BASE_ADDR, | ||
69 | .size = 0x04000000, | ||
70 | }, | ||
71 | .flags = SH4_PCIC_NO_RESET, | ||
72 | }; | ||
73 | |||
74 | int __init pcibios_init_platform(void) | ||
75 | { | ||
76 | printk("SH7780 PCI: Finished initialization of the PCI controller\n"); | ||
77 | |||
78 | /* | ||
79 | * FPGA PCISEL register initialize | ||
80 | * | ||
81 | * CPU || SLOT1 | SLOT2 | S-ATA | USB | ||
82 | * ------------------------------------- | ||
83 | * INTA || INTA | INTD | -- | INTB | ||
84 | * ------------------------------------- | ||
85 | * INTB || INTB | INTA | -- | INTC | ||
86 | * ------------------------------------- | ||
87 | * INTC || INTC | INTB | INTA | -- | ||
88 | * ------------------------------------- | ||
89 | * INTD || INTD | INTC | -- | INTA | ||
90 | * ------------------------------------- | ||
91 | */ | ||
92 | ctrl_outw(0x0013, FPGA_PCI_INTSEL1); | ||
93 | ctrl_outw(0xE402, FPGA_PCI_INTSEL2); | ||
94 | |||
95 | return sh7780_pcic_init(&se7780_pci_map); | ||
96 | } | ||
diff --git a/arch/sh/drivers/pci/ops-sh4.c b/arch/sh/drivers/pci/ops-sh4.c index 2d4371009a5e..54232f13e406 100644 --- a/arch/sh/drivers/pci/ops-sh4.c +++ b/arch/sh/drivers/pci/ops-sh4.c | |||
@@ -162,3 +162,9 @@ char * __init pcibios_setup(char *str) | |||
162 | 162 | ||
163 | return str; | 163 | return str; |
164 | } | 164 | } |
165 | |||
166 | int __attribute__((weak)) pci_fixup_pcic(void) | ||
167 | { | ||
168 | /* Nothing to do. */ | ||
169 | return 0; | ||
170 | } | ||
diff --git a/arch/sh/drivers/pci/pci-sh4.h b/arch/sh/drivers/pci/pci-sh4.h index 5a61d6041f2c..1901c33cde6a 100644 --- a/arch/sh/drivers/pci/pci-sh4.h +++ b/arch/sh/drivers/pci/pci-sh4.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef __PCI_SH4_H | 1 | #ifndef __PCI_SH4_H |
2 | #define __PCI_SH4_H | 2 | #define __PCI_SH4_H |
3 | 3 | ||
4 | #ifdef CONFIG_CPU_SUBTYPE_SH7780 | 4 | #if defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785) |
5 | #include "pci-sh7780.h" | 5 | #include "pci-sh7780.h" |
6 | #else | 6 | #else |
7 | #include "pci-sh7751.h" | 7 | #include "pci-sh7751.h" |
diff --git a/arch/sh/drivers/pci/pci-sh7751.c b/arch/sh/drivers/pci/pci-sh7751.c index 9ddff760d3c6..1aca7fe5783b 100644 --- a/arch/sh/drivers/pci/pci-sh7751.c +++ b/arch/sh/drivers/pci/pci-sh7751.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * License. See linux/COPYING for more information. | 12 | * License. See linux/COPYING for more information. |
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | |||
16 | #undef DEBUG | 15 | #undef DEBUG |
17 | 16 | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -28,7 +27,7 @@ | |||
28 | * Initialization. Try all known PCI access methods. Note that we support | 27 | * Initialization. Try all known PCI access methods. Note that we support |
29 | * using both PCI BIOS and direct access: in such cases, we use I/O ports | 28 | * using both PCI BIOS and direct access: in such cases, we use I/O ports |
30 | * to access config space. | 29 | * to access config space. |
31 | * | 30 | * |
32 | * Note that the platform specific initialization (BSC registers, and memory | 31 | * Note that the platform specific initialization (BSC registers, and memory |
33 | * space mapping) will be called via the platform defined function | 32 | * space mapping) will be called via the platform defined function |
34 | * pcibios_init_platform(). | 33 | * pcibios_init_platform(). |
@@ -115,7 +114,7 @@ int __init sh7751_pcic_init(struct sh4_pci_address_map *map) | |||
115 | * Wait Cycle Control + Parity Enable + Bus Master + | 114 | * Wait Cycle Control + Parity Enable + Bus Master + |
116 | * Mem space enable | 115 | * Mem space enable |
117 | */ | 116 | */ |
118 | word = SH7751_PCICONF1_WCC | SH7751_PCICONF1_PER | | 117 | word = SH7751_PCICONF1_WCC | SH7751_PCICONF1_PER | |
119 | SH7751_PCICONF1_BUM | SH7751_PCICONF1_MES; | 118 | SH7751_PCICONF1_BUM | SH7751_PCICONF1_MES; |
120 | pci_write_reg(word, SH7751_PCICONF1); | 119 | pci_write_reg(word, SH7751_PCICONF1); |
121 | 120 | ||
@@ -123,10 +122,10 @@ int __init sh7751_pcic_init(struct sh4_pci_address_map *map) | |||
123 | word = PCI_BASE_CLASS_BRIDGE << 24; | 122 | word = PCI_BASE_CLASS_BRIDGE << 24; |
124 | pci_write_reg(word, SH7751_PCICONF2); | 123 | pci_write_reg(word, SH7751_PCICONF2); |
125 | 124 | ||
126 | /* Set IO and Mem windows to local address | 125 | /* Set IO and Mem windows to local address |
127 | * Make PCI and local address the same for easy 1 to 1 mapping | 126 | * Make PCI and local address the same for easy 1 to 1 mapping |
128 | * Window0 = map->window0.size @ non-cached area base = SDRAM | 127 | * Window0 = map->window0.size @ non-cached area base = SDRAM |
129 | * Window1 = map->window1.size @ cached area base = SDRAM | 128 | * Window1 = map->window1.size @ cached area base = SDRAM |
130 | */ | 129 | */ |
131 | word = map->window0.size - 1; | 130 | word = map->window0.size - 1; |
132 | pci_write_reg(word, SH4_PCILSR0); | 131 | pci_write_reg(word, SH4_PCILSR0); |
@@ -175,7 +174,7 @@ int __init sh7751_pcic_init(struct sh4_pci_address_map *map) | |||
175 | case SH7751_CS5_BASE_ADDR: word = __area_sdram_check(5); break; | 174 | case SH7751_CS5_BASE_ADDR: word = __area_sdram_check(5); break; |
176 | case SH7751_CS6_BASE_ADDR: word = __area_sdram_check(6); break; | 175 | case SH7751_CS6_BASE_ADDR: word = __area_sdram_check(6); break; |
177 | } | 176 | } |
178 | 177 | ||
179 | if (!word) | 178 | if (!word) |
180 | return 0; | 179 | return 0; |
181 | 180 | ||
@@ -194,9 +193,7 @@ int __init sh7751_pcic_init(struct sh4_pci_address_map *map) | |||
194 | * DMA interrupts... | 193 | * DMA interrupts... |
195 | */ | 194 | */ |
196 | 195 | ||
197 | #ifdef CONFIG_SH_RTS7751R2D | ||
198 | pci_fixup_pcic(); | 196 | pci_fixup_pcic(); |
199 | #endif | ||
200 | 197 | ||
201 | /* SH7751 init done, set central function init complete */ | 198 | /* SH7751 init done, set central function init complete */ |
202 | /* use round robin mode to stop a device starving/overruning */ | 199 | /* use round robin mode to stop a device starving/overruning */ |
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c index 602b644c35ad..5508e45d4838 100644 --- a/arch/sh/drivers/pci/pci-sh7780.c +++ b/arch/sh/drivers/pci/pci-sh7780.c | |||
@@ -48,7 +48,7 @@ | |||
48 | static int __init sh7780_pci_init(void) | 48 | static int __init sh7780_pci_init(void) |
49 | { | 49 | { |
50 | unsigned int id; | 50 | unsigned int id; |
51 | int ret; | 51 | int ret, match = 0; |
52 | 52 | ||
53 | pr_debug("PCI: Starting intialization.\n"); | 53 | pr_debug("PCI: Starting intialization.\n"); |
54 | 54 | ||
@@ -56,19 +56,43 @@ static int __init sh7780_pci_init(void) | |||
56 | 56 | ||
57 | /* check for SH7780/SH7780R hardware */ | 57 | /* check for SH7780/SH7780R hardware */ |
58 | id = pci_read_reg(SH7780_PCIVID); | 58 | id = pci_read_reg(SH7780_PCIVID); |
59 | if ((id != ((SH7780_DEVICE_ID << 16) | SH7780_VENDOR_ID)) && | 59 | if ((id & 0xffff) == SH7780_VENDOR_ID) { |
60 | (id != ((SH7781_DEVICE_ID << 16) | SH7780_VENDOR_ID))) { | 60 | switch ((id >> 16) & 0xffff) { |
61 | case SH7780_DEVICE_ID: | ||
62 | case SH7781_DEVICE_ID: | ||
63 | case SH7785_DEVICE_ID: | ||
64 | match = 1; | ||
65 | break; | ||
66 | } | ||
67 | } | ||
68 | |||
69 | if (unlikely(!match)) { | ||
61 | printk(KERN_ERR "PCI: This is not an SH7780 (%x)\n", id); | 70 | printk(KERN_ERR "PCI: This is not an SH7780 (%x)\n", id); |
62 | return -ENODEV; | 71 | return -ENODEV; |
63 | } | 72 | } |
64 | 73 | ||
65 | /* Setup the INTC */ | 74 | /* Setup the INTC */ |
66 | ctrl_outl(0x00200000, INTC_ICR0); /* INTC SH-4 Mode */ | 75 | if (mach_is_7780se()) { |
67 | ctrl_outl(0x00078000, INTC_INT2MSKCR); /* enable PCIINTA - PCIINTD */ | 76 | /* ICR0: IRL=use separately */ |
68 | ctrl_outl(0x40000000, INTC_INTMSK1); /* disable IRL4-7 Interrupt */ | 77 | ctrl_outl(0x00C00020, INTC_ICR0); |
69 | ctrl_outl(0x0000fffe, INTC_INTMSK2); /* disable IRL4-7 Interrupt */ | 78 | /* ICR1: detect low level(for 2ndcut) */ |
70 | ctrl_outl(0x80000000, INTC_INTMSKCLR1); /* enable IRL0-3 Interrupt */ | 79 | ctrl_outl(0xAAAA0000, INTC_ICR1); |
71 | ctrl_outl(0xfffe0000, INTC_INTMSKCLR2); /* enable IRL0-3 Interrupt */ | 80 | /* INTPRI: priority=3(all) */ |
81 | ctrl_outl(0x33333333, INTC_INTPRI); | ||
82 | } else { | ||
83 | /* INTC SH-4 Mode */ | ||
84 | ctrl_outl(0x00200000, INTC_ICR0); | ||
85 | /* enable PCIINTA - PCIINTD */ | ||
86 | ctrl_outl(0x00078000, INTC_INT2MSKCR); | ||
87 | /* disable IRL4-7 Interrupt */ | ||
88 | ctrl_outl(0x40000000, INTC_INTMSK1); | ||
89 | /* disable IRL4-7 Interrupt */ | ||
90 | ctrl_outl(0x0000fffe, INTC_INTMSK2); | ||
91 | /* enable IRL0-3 Interrupt */ | ||
92 | ctrl_outl(0x80000000, INTC_INTMSKCLR1); | ||
93 | /* enable IRL0-3 Interrupt */ | ||
94 | ctrl_outl(0xfffe0000, INTC_INTMSKCLR2); | ||
95 | } | ||
72 | 96 | ||
73 | if ((ret = sh4_pci_check_direct()) != 0) | 97 | if ((ret = sh4_pci_check_direct()) != 0) |
74 | return ret; | 98 | return ret; |
@@ -138,9 +162,8 @@ int __init sh7780_pcic_init(struct sh4_pci_address_map *map) | |||
138 | * DMA interrupts... | 162 | * DMA interrupts... |
139 | */ | 163 | */ |
140 | 164 | ||
141 | #ifdef CONFIG_SH_R7780RP | 165 | /* Apply any last-minute PCIC fixups */ |
142 | pci_fixup_pcic(); | 166 | pci_fixup_pcic(); |
143 | #endif | ||
144 | 167 | ||
145 | /* SH7780 init done, set central function init complete */ | 168 | /* SH7780 init done, set central function init complete */ |
146 | /* use round robin mode to stop a device starving/overruning */ | 169 | /* use round robin mode to stop a device starving/overruning */ |
diff --git a/arch/sh/drivers/pci/pci-sh7780.h b/arch/sh/drivers/pci/pci-sh7780.h index f02d2180a4bc..00d12d0f8c1f 100644 --- a/arch/sh/drivers/pci/pci-sh7780.h +++ b/arch/sh/drivers/pci/pci-sh7780.h | |||
@@ -14,8 +14,9 @@ | |||
14 | 14 | ||
15 | /* Platform Specific Values */ | 15 | /* Platform Specific Values */ |
16 | #define SH7780_VENDOR_ID 0x1912 | 16 | #define SH7780_VENDOR_ID 0x1912 |
17 | #define SH7780_DEVICE_ID 0x0002 | ||
18 | #define SH7781_DEVICE_ID 0x0001 | 17 | #define SH7781_DEVICE_ID 0x0001 |
18 | #define SH7780_DEVICE_ID 0x0002 | ||
19 | #define SH7785_DEVICE_ID 0x0007 | ||
19 | 20 | ||
20 | /* SH7780 Control Registers */ | 21 | /* SH7780 Control Registers */ |
21 | #define SH7780_PCI_VCR0 0xFE000000 | 22 | #define SH7780_PCI_VCR0 0xFE000000 |
@@ -65,6 +66,22 @@ | |||
65 | #define SH7780_PCIPMCSR_BSE 0x046 | 66 | #define SH7780_PCIPMCSR_BSE 0x046 |
66 | #define SH7780_PCICDD 0x047 | 67 | #define SH7780_PCICDD 0x047 |
67 | 68 | ||
69 | #define SH7780_PCICR 0x100 /* PCI Control Register */ | ||
70 | #define SH7780_PCILSR 0x104 /* PCI Local Space Register0 */ | ||
71 | #define SH7780_PCILSR1 0x108 /* PCI Local Space Register1 */ | ||
72 | #define SH7780_PCILAR0 0x10C /* PCI Local Address Register1 */ | ||
73 | #define SH7780_PCILAR1 0x110 /* PCI Local Address Register1 */ | ||
74 | #define SH7780_PCIIR 0x114 /* PCI Interrupt Register */ | ||
75 | #define SH7780_PCIIMR 0x118 /* PCI Interrupt Mask Register */ | ||
76 | #define SH7780_PCIAIR 0x11C /* Error Address Register */ | ||
77 | #define SH7780_PCICIR 0x120 /* Error Command/Data Register */ | ||
78 | #define SH7780_PCIAINT 0x130 /* Arbiter Interrupt Register */ | ||
79 | #define SH7780_PCIAINTM 0x134 /* Arbiter Int. Mask Register */ | ||
80 | #define SH7780_PCIBMIR 0x138 /* Error Bus Master Register */ | ||
81 | #define SH7780_PCIPAR 0x1C0 /* PIO Address Register */ | ||
82 | #define SH7780_PCIPINT 0x1CC /* Power Mgmnt Int. Register */ | ||
83 | #define SH7780_PCIPINTM 0x1D0 /* Power Mgmnt Mask Register */ | ||
84 | |||
68 | #define SH7780_PCIMBR0 0x1E0 | 85 | #define SH7780_PCIMBR0 0x1E0 |
69 | #define SH7780_PCIMBMR0 0x1E4 | 86 | #define SH7780_PCIMBMR0 0x1E4 |
70 | #define SH7780_PCIMBR2 0x1F0 | 87 | #define SH7780_PCIMBR2 0x1F0 |
diff --git a/arch/sh/kernel/Makefile b/arch/sh/kernel/Makefile index ff30d7f58043..9104b6257644 100644 --- a/arch/sh/kernel/Makefile +++ b/arch/sh/kernel/Makefile | |||
@@ -20,5 +20,6 @@ obj-$(CONFIG_SH_CPU_FREQ) += cpufreq.o | |||
20 | obj-$(CONFIG_MODULES) += module.o | 20 | obj-$(CONFIG_MODULES) += module.o |
21 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 21 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
22 | obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o | 22 | obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o |
23 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o | ||
23 | obj-$(CONFIG_PM) += pm.o | 24 | obj-$(CONFIG_PM) += pm.o |
24 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 25 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c index 3e5fa1e24df0..0758d48147a0 100644 --- a/arch/sh/kernel/cf-enabler.c +++ b/arch/sh/kernel/cf-enabler.c | |||
@@ -29,7 +29,7 @@ | |||
29 | * 0xB8001000 : Common Memory | 29 | * 0xB8001000 : Common Memory |
30 | * 0xBA000000 : I/O | 30 | * 0xBA000000 : I/O |
31 | */ | 31 | */ |
32 | #if defined(CONFIG_IDE) && defined(CONFIG_CPU_SH4) | 32 | #if defined(CONFIG_CPU_SH4) |
33 | /* SH4 can't access PCMCIA interface through P2 area. | 33 | /* SH4 can't access PCMCIA interface through P2 area. |
34 | * we must remap it with appropreate attribute bit of the page set. | 34 | * we must remap it with appropreate attribute bit of the page set. |
35 | * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */ | 35 | * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */ |
@@ -71,7 +71,7 @@ static int __init cf_init_default(void) | |||
71 | /* You must have enabled the card, and set the level interrupt | 71 | /* You must have enabled the card, and set the level interrupt |
72 | * before reaching this point. Possibly in boot ROM or boot loader. | 72 | * before reaching this point. Possibly in boot ROM or boot loader. |
73 | */ | 73 | */ |
74 | #if defined(CONFIG_IDE) && defined(CONFIG_CPU_SH4) | 74 | #if defined(CONFIG_CPU_SH4) |
75 | allocate_cf_area(); | 75 | allocate_cf_area(); |
76 | #endif | 76 | #endif |
77 | #if defined(CONFIG_SH_UNKNOWN) | 77 | #if defined(CONFIG_SH_UNKNOWN) |
@@ -84,15 +84,25 @@ static int __init cf_init_default(void) | |||
84 | 84 | ||
85 | #if defined(CONFIG_SH_SOLUTION_ENGINE) | 85 | #if defined(CONFIG_SH_SOLUTION_ENGINE) |
86 | #include <asm/se.h> | 86 | #include <asm/se.h> |
87 | #elif defined(CONFIG_SH_7722_SOLUTION_ENGINE) | ||
88 | #include <asm/se7722.h> | ||
89 | #endif | ||
87 | 90 | ||
88 | /* | 91 | /* |
89 | * SolutionEngine | 92 | * SolutionEngine Seriese |
90 | * | 93 | * |
94 | * about MS770xSE | ||
91 | * 0xB8400000 : Common Memory | 95 | * 0xB8400000 : Common Memory |
92 | * 0xB8500000 : Attribute | 96 | * 0xB8500000 : Attribute |
93 | * 0xB8600000 : I/O | 97 | * 0xB8600000 : I/O |
98 | * | ||
99 | * about MS7722SE | ||
100 | * 0xB0400000 : Common Memory | ||
101 | * 0xB0500000 : Attribute | ||
102 | * 0xB0600000 : I/O | ||
94 | */ | 103 | */ |
95 | 104 | ||
105 | #if defined(CONFIG_SH_SOLUTION_ENGINE) || defined(CONFIG_SH_7722_SOLUTION_ENGINE) | ||
96 | static int __init cf_init_se(void) | 106 | static int __init cf_init_se(void) |
97 | { | 107 | { |
98 | if ((ctrl_inw(MRSHPC_CSR) & 0x000c) != 0) | 108 | if ((ctrl_inw(MRSHPC_CSR) & 0x000c) != 0) |
@@ -109,7 +119,7 @@ static int __init cf_init_se(void) | |||
109 | * flag == COMMON/ATTRIBUTE/IO | 119 | * flag == COMMON/ATTRIBUTE/IO |
110 | */ | 120 | */ |
111 | /* common window open */ | 121 | /* common window open */ |
112 | ctrl_outw(0x8a84, MRSHPC_MW0CR1);/* window 0xb8400000 */ | 122 | ctrl_outw(0x8a84, MRSHPC_MW0CR1); |
113 | if((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) | 123 | if((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) |
114 | /* common mode & bus width 16bit SWAP = 1*/ | 124 | /* common mode & bus width 16bit SWAP = 1*/ |
115 | ctrl_outw(0x0b00, MRSHPC_MW0CR2); | 125 | ctrl_outw(0x0b00, MRSHPC_MW0CR2); |
@@ -118,7 +128,7 @@ static int __init cf_init_se(void) | |||
118 | ctrl_outw(0x0300, MRSHPC_MW0CR2); | 128 | ctrl_outw(0x0300, MRSHPC_MW0CR2); |
119 | 129 | ||
120 | /* attribute window open */ | 130 | /* attribute window open */ |
121 | ctrl_outw(0x8a85, MRSHPC_MW1CR1);/* window 0xb8500000 */ | 131 | ctrl_outw(0x8a85, MRSHPC_MW1CR1); |
122 | if ((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) | 132 | if ((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) |
123 | /* attribute mode & bus width 16bit SWAP = 1*/ | 133 | /* attribute mode & bus width 16bit SWAP = 1*/ |
124 | ctrl_outw(0x0a00, MRSHPC_MW1CR2); | 134 | ctrl_outw(0x0a00, MRSHPC_MW1CR2); |
@@ -127,7 +137,7 @@ static int __init cf_init_se(void) | |||
127 | ctrl_outw(0x0200, MRSHPC_MW1CR2); | 137 | ctrl_outw(0x0200, MRSHPC_MW1CR2); |
128 | 138 | ||
129 | /* I/O window open */ | 139 | /* I/O window open */ |
130 | ctrl_outw(0x8a86, MRSHPC_IOWCR1);/* I/O window 0xb8600000 */ | 140 | ctrl_outw(0x8a86, MRSHPC_IOWCR1); |
131 | ctrl_outw(0x0008, MRSHPC_CDCR); /* I/O card mode */ | 141 | ctrl_outw(0x0008, MRSHPC_CDCR); /* I/O card mode */ |
132 | if ((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) | 142 | if ((ctrl_inw(MRSHPC_CSR) & 0x4000) != 0) |
133 | ctrl_outw(0x0a00, MRSHPC_IOWCR2); /* bus width 16bit SWAP = 1*/ | 143 | ctrl_outw(0x0a00, MRSHPC_IOWCR2); /* bus width 16bit SWAP = 1*/ |
@@ -143,10 +153,10 @@ static int __init cf_init_se(void) | |||
143 | 153 | ||
144 | int __init cf_init(void) | 154 | int __init cf_init(void) |
145 | { | 155 | { |
146 | #if defined(CONFIG_SH_SOLUTION_ENGINE) | 156 | if( mach_is_se() || mach_is_7722se() ){ |
147 | if (MACH_SE) | ||
148 | return cf_init_se(); | 157 | return cf_init_se(); |
149 | #endif | 158 | } |
159 | |||
150 | return cf_init_default(); | 160 | return cf_init_default(); |
151 | } | 161 | } |
152 | 162 | ||
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c index abb586b12565..014f318f5a05 100644 --- a/arch/sh/kernel/cpu/clock.c +++ b/arch/sh/kernel/cpu/clock.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/kernel/cpu/clock.c - SuperH clock framework | 2 | * arch/sh/kernel/cpu/clock.c - SuperH clock framework |
3 | * | 3 | * |
4 | * Copyright (C) 2005, 2006 Paul Mundt | 4 | * Copyright (C) 2005, 2006, 2007 Paul Mundt |
5 | * | 5 | * |
6 | * This clock framework is derived from the OMAP version by: | 6 | * This clock framework is derived from the OMAP version by: |
7 | * | 7 | * |
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/seq_file.h> | 23 | #include <linux/seq_file.h> |
24 | #include <linux/err.h> | 24 | #include <linux/err.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/proc_fs.h> | ||
26 | #include <asm/clock.h> | 27 | #include <asm/clock.h> |
27 | #include <asm/timer.h> | 28 | #include <asm/timer.h> |
28 | 29 | ||
@@ -98,15 +99,17 @@ int __clk_enable(struct clk *clk) | |||
98 | if (clk->ops && clk->ops->init) | 99 | if (clk->ops && clk->ops->init) |
99 | clk->ops->init(clk); | 100 | clk->ops->init(clk); |
100 | 101 | ||
102 | kref_get(&clk->kref); | ||
103 | |||
101 | if (clk->flags & CLK_ALWAYS_ENABLED) | 104 | if (clk->flags & CLK_ALWAYS_ENABLED) |
102 | return 0; | 105 | return 0; |
103 | 106 | ||
104 | if (likely(clk->ops && clk->ops->enable)) | 107 | if (likely(clk->ops && clk->ops->enable)) |
105 | clk->ops->enable(clk); | 108 | clk->ops->enable(clk); |
106 | 109 | ||
107 | kref_get(&clk->kref); | ||
108 | return 0; | 110 | return 0; |
109 | } | 111 | } |
112 | EXPORT_SYMBOL_GPL(__clk_enable); | ||
110 | 113 | ||
111 | int clk_enable(struct clk *clk) | 114 | int clk_enable(struct clk *clk) |
112 | { | 115 | { |
@@ -119,6 +122,7 @@ int clk_enable(struct clk *clk) | |||
119 | 122 | ||
120 | return ret; | 123 | return ret; |
121 | } | 124 | } |
125 | EXPORT_SYMBOL_GPL(clk_enable); | ||
122 | 126 | ||
123 | static void clk_kref_release(struct kref *kref) | 127 | static void clk_kref_release(struct kref *kref) |
124 | { | 128 | { |
@@ -127,11 +131,17 @@ static void clk_kref_release(struct kref *kref) | |||
127 | 131 | ||
128 | void __clk_disable(struct clk *clk) | 132 | void __clk_disable(struct clk *clk) |
129 | { | 133 | { |
134 | int count = kref_put(&clk->kref, clk_kref_release); | ||
135 | |||
130 | if (clk->flags & CLK_ALWAYS_ENABLED) | 136 | if (clk->flags & CLK_ALWAYS_ENABLED) |
131 | return; | 137 | return; |
132 | 138 | ||
133 | kref_put(&clk->kref, clk_kref_release); | 139 | if (!count) { /* count reaches zero, disable the clock */ |
140 | if (likely(clk->ops && clk->ops->disable)) | ||
141 | clk->ops->disable(clk); | ||
142 | } | ||
134 | } | 143 | } |
144 | EXPORT_SYMBOL_GPL(__clk_disable); | ||
135 | 145 | ||
136 | void clk_disable(struct clk *clk) | 146 | void clk_disable(struct clk *clk) |
137 | { | 147 | { |
@@ -141,6 +151,7 @@ void clk_disable(struct clk *clk) | |||
141 | __clk_disable(clk); | 151 | __clk_disable(clk); |
142 | spin_unlock_irqrestore(&clock_lock, flags); | 152 | spin_unlock_irqrestore(&clock_lock, flags); |
143 | } | 153 | } |
154 | EXPORT_SYMBOL_GPL(clk_disable); | ||
144 | 155 | ||
145 | int clk_register(struct clk *clk) | 156 | int clk_register(struct clk *clk) |
146 | { | 157 | { |
@@ -151,8 +162,18 @@ int clk_register(struct clk *clk) | |||
151 | 162 | ||
152 | mutex_unlock(&clock_list_sem); | 163 | mutex_unlock(&clock_list_sem); |
153 | 164 | ||
165 | if (clk->flags & CLK_ALWAYS_ENABLED) { | ||
166 | pr_debug( "Clock '%s' is ALWAYS_ENABLED\n", clk->name); | ||
167 | if (clk->ops && clk->ops->init) | ||
168 | clk->ops->init(clk); | ||
169 | if (clk->ops && clk->ops->enable) | ||
170 | clk->ops->enable(clk); | ||
171 | pr_debug( "Enabled."); | ||
172 | } | ||
173 | |||
154 | return 0; | 174 | return 0; |
155 | } | 175 | } |
176 | EXPORT_SYMBOL_GPL(clk_register); | ||
156 | 177 | ||
157 | void clk_unregister(struct clk *clk) | 178 | void clk_unregister(struct clk *clk) |
158 | { | 179 | { |
@@ -160,21 +181,29 @@ void clk_unregister(struct clk *clk) | |||
160 | list_del(&clk->node); | 181 | list_del(&clk->node); |
161 | mutex_unlock(&clock_list_sem); | 182 | mutex_unlock(&clock_list_sem); |
162 | } | 183 | } |
184 | EXPORT_SYMBOL_GPL(clk_unregister); | ||
163 | 185 | ||
164 | inline unsigned long clk_get_rate(struct clk *clk) | 186 | unsigned long clk_get_rate(struct clk *clk) |
165 | { | 187 | { |
166 | return clk->rate; | 188 | return clk->rate; |
167 | } | 189 | } |
190 | EXPORT_SYMBOL_GPL(clk_get_rate); | ||
168 | 191 | ||
169 | int clk_set_rate(struct clk *clk, unsigned long rate) | 192 | int clk_set_rate(struct clk *clk, unsigned long rate) |
170 | { | 193 | { |
194 | return clk_set_rate_ex(clk, rate, 0); | ||
195 | } | ||
196 | EXPORT_SYMBOL_GPL(clk_set_rate); | ||
197 | |||
198 | int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id) | ||
199 | { | ||
171 | int ret = -EOPNOTSUPP; | 200 | int ret = -EOPNOTSUPP; |
172 | 201 | ||
173 | if (likely(clk->ops && clk->ops->set_rate)) { | 202 | if (likely(clk->ops && clk->ops->set_rate)) { |
174 | unsigned long flags; | 203 | unsigned long flags; |
175 | 204 | ||
176 | spin_lock_irqsave(&clock_lock, flags); | 205 | spin_lock_irqsave(&clock_lock, flags); |
177 | ret = clk->ops->set_rate(clk, rate); | 206 | ret = clk->ops->set_rate(clk, rate, algo_id); |
178 | spin_unlock_irqrestore(&clock_lock, flags); | 207 | spin_unlock_irqrestore(&clock_lock, flags); |
179 | } | 208 | } |
180 | 209 | ||
@@ -183,6 +212,7 @@ int clk_set_rate(struct clk *clk, unsigned long rate) | |||
183 | 212 | ||
184 | return ret; | 213 | return ret; |
185 | } | 214 | } |
215 | EXPORT_SYMBOL_GPL(clk_set_rate_ex); | ||
186 | 216 | ||
187 | void clk_recalc_rate(struct clk *clk) | 217 | void clk_recalc_rate(struct clk *clk) |
188 | { | 218 | { |
@@ -197,6 +227,7 @@ void clk_recalc_rate(struct clk *clk) | |||
197 | if (unlikely(clk->flags & CLK_RATE_PROPAGATES)) | 227 | if (unlikely(clk->flags & CLK_RATE_PROPAGATES)) |
198 | propagate_rate(clk); | 228 | propagate_rate(clk); |
199 | } | 229 | } |
230 | EXPORT_SYMBOL_GPL(clk_recalc_rate); | ||
200 | 231 | ||
201 | /* | 232 | /* |
202 | * Returns a clock. Note that we first try to use device id on the bus | 233 | * Returns a clock. Note that we first try to use device id on the bus |
@@ -233,18 +264,43 @@ found: | |||
233 | 264 | ||
234 | return clk; | 265 | return clk; |
235 | } | 266 | } |
267 | EXPORT_SYMBOL_GPL(clk_get); | ||
236 | 268 | ||
237 | void clk_put(struct clk *clk) | 269 | void clk_put(struct clk *clk) |
238 | { | 270 | { |
239 | if (clk && !IS_ERR(clk)) | 271 | if (clk && !IS_ERR(clk)) |
240 | module_put(clk->owner); | 272 | module_put(clk->owner); |
241 | } | 273 | } |
274 | EXPORT_SYMBOL_GPL(clk_put); | ||
242 | 275 | ||
243 | void __init __attribute__ ((weak)) | 276 | void __init __attribute__ ((weak)) |
244 | arch_init_clk_ops(struct clk_ops **ops, int type) | 277 | arch_init_clk_ops(struct clk_ops **ops, int type) |
245 | { | 278 | { |
246 | } | 279 | } |
247 | 280 | ||
281 | static int show_clocks(char *buf, char **start, off_t off, | ||
282 | int len, int *eof, void *data) | ||
283 | { | ||
284 | struct clk *clk; | ||
285 | char *p = buf; | ||
286 | |||
287 | list_for_each_entry_reverse(clk, &clock_list, node) { | ||
288 | unsigned long rate = clk_get_rate(clk); | ||
289 | |||
290 | /* | ||
291 | * Don't bother listing dummy clocks with no ancestry | ||
292 | * that only support enable and disable ops. | ||
293 | */ | ||
294 | if (unlikely(!rate && !clk->parent)) | ||
295 | continue; | ||
296 | |||
297 | p += sprintf(p, "%-12s\t: %ld.%02ldMHz\n", clk->name, | ||
298 | rate / 1000000, (rate % 1000000) / 10000); | ||
299 | } | ||
300 | |||
301 | return p - buf; | ||
302 | } | ||
303 | |||
248 | int __init clk_init(void) | 304 | int __init clk_init(void) |
249 | { | 305 | { |
250 | int i, ret = 0; | 306 | int i, ret = 0; |
@@ -256,7 +312,6 @@ int __init clk_init(void) | |||
256 | 312 | ||
257 | arch_init_clk_ops(&clk->ops, i); | 313 | arch_init_clk_ops(&clk->ops, i); |
258 | ret |= clk_register(clk); | 314 | ret |= clk_register(clk); |
259 | clk_enable(clk); | ||
260 | } | 315 | } |
261 | 316 | ||
262 | /* Kick the child clocks.. */ | 317 | /* Kick the child clocks.. */ |
@@ -266,35 +321,14 @@ int __init clk_init(void) | |||
266 | return ret; | 321 | return ret; |
267 | } | 322 | } |
268 | 323 | ||
269 | int show_clocks(struct seq_file *m) | 324 | static int __init clk_proc_init(void) |
270 | { | 325 | { |
271 | struct clk *clk; | 326 | struct proc_dir_entry *p; |
272 | 327 | p = create_proc_read_entry("clocks", S_IRUSR, NULL, | |
273 | list_for_each_entry_reverse(clk, &clock_list, node) { | 328 | show_clocks, NULL); |
274 | unsigned long rate = clk_get_rate(clk); | 329 | if (unlikely(!p)) |
275 | 330 | return -EINVAL; | |
276 | /* | ||
277 | * Don't bother listing dummy clocks with no ancestry | ||
278 | * that only support enable and disable ops. | ||
279 | */ | ||
280 | if (unlikely(!rate && !clk->parent)) | ||
281 | continue; | ||
282 | |||
283 | seq_printf(m, "%-12s\t: %ld.%02ldMHz\n", clk->name, | ||
284 | rate / 1000000, (rate % 1000000) / 10000); | ||
285 | } | ||
286 | 331 | ||
287 | return 0; | 332 | return 0; |
288 | } | 333 | } |
289 | 334 | subsys_initcall(clk_proc_init); | |
290 | EXPORT_SYMBOL_GPL(clk_register); | ||
291 | EXPORT_SYMBOL_GPL(clk_unregister); | ||
292 | EXPORT_SYMBOL_GPL(clk_get); | ||
293 | EXPORT_SYMBOL_GPL(clk_put); | ||
294 | EXPORT_SYMBOL_GPL(clk_enable); | ||
295 | EXPORT_SYMBOL_GPL(clk_disable); | ||
296 | EXPORT_SYMBOL_GPL(__clk_enable); | ||
297 | EXPORT_SYMBOL_GPL(__clk_disable); | ||
298 | EXPORT_SYMBOL_GPL(clk_get_rate); | ||
299 | EXPORT_SYMBOL_GPL(clk_set_rate); | ||
300 | EXPORT_SYMBOL_GPL(clk_recalc_rate); | ||
diff --git a/arch/sh/kernel/cpu/init.c b/arch/sh/kernel/cpu/init.c index 726acfcb9b77..6451ad630174 100644 --- a/arch/sh/kernel/cpu/init.c +++ b/arch/sh/kernel/cpu/init.c | |||
@@ -41,6 +41,23 @@ __setup("no" __stringify(x), x##_setup); | |||
41 | onchip_setup(fpu); | 41 | onchip_setup(fpu); |
42 | onchip_setup(dsp); | 42 | onchip_setup(dsp); |
43 | 43 | ||
44 | #ifdef CONFIG_SPECULATIVE_EXECUTION | ||
45 | #define CPUOPM 0xff2f0000 | ||
46 | #define CPUOPM_RABD (1 << 5) | ||
47 | |||
48 | static void __init speculative_execution_init(void) | ||
49 | { | ||
50 | /* Clear RABD */ | ||
51 | ctrl_outl(ctrl_inl(CPUOPM) & ~CPUOPM_RABD, CPUOPM); | ||
52 | |||
53 | /* Flush the update */ | ||
54 | (void)ctrl_inl(CPUOPM); | ||
55 | ctrl_barrier(); | ||
56 | } | ||
57 | #else | ||
58 | #define speculative_execution_init() do { } while (0) | ||
59 | #endif | ||
60 | |||
44 | /* | 61 | /* |
45 | * Generic first-level cache init | 62 | * Generic first-level cache init |
46 | */ | 63 | */ |
@@ -261,4 +278,6 @@ asmlinkage void __init sh_cpu_init(void) | |||
261 | */ | 278 | */ |
262 | ubc_wakeup(); | 279 | ubc_wakeup(); |
263 | #endif | 280 | #endif |
281 | |||
282 | speculative_execution_init(); | ||
264 | } | 283 | } |
diff --git a/arch/sh/kernel/cpu/irq/Makefile b/arch/sh/kernel/cpu/irq/Makefile index 0049d217561a..1c23308cfc25 100644 --- a/arch/sh/kernel/cpu/irq/Makefile +++ b/arch/sh/kernel/cpu/irq/Makefile | |||
@@ -4,6 +4,6 @@ | |||
4 | obj-y += imask.o | 4 | obj-y += imask.o |
5 | 5 | ||
6 | obj-$(CONFIG_CPU_HAS_IPR_IRQ) += ipr.o | 6 | obj-$(CONFIG_CPU_HAS_IPR_IRQ) += ipr.o |
7 | obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o | 7 | obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o |
8 | obj-$(CONFIG_CPU_HAS_MASKREG_IRQ) += maskreg.o | 8 | obj-$(CONFIG_CPU_HAS_MASKREG_IRQ) += maskreg.o |
9 | obj-$(CONFIG_CPU_HAS_INTC2_IRQ) += intc2.o | 9 | obj-$(CONFIG_CPU_HAS_INTC2_IRQ) += intc2.o |
diff --git a/arch/sh/kernel/cpu/irq/intc2.c b/arch/sh/kernel/cpu/irq/intc2.c index 74defe76a058..d8e22f4ff0f0 100644 --- a/arch/sh/kernel/cpu/irq/intc2.c +++ b/arch/sh/kernel/cpu/irq/intc2.c | |||
@@ -18,7 +18,8 @@ | |||
18 | #define INTC2_BASE 0xfe080000 | 18 | #define INTC2_BASE 0xfe080000 |
19 | #define INTC2_INTMSK (INTC2_BASE + 0x40) | 19 | #define INTC2_INTMSK (INTC2_BASE + 0x40) |
20 | #define INTC2_INTMSKCLR (INTC2_BASE + 0x60) | 20 | #define INTC2_INTMSKCLR (INTC2_BASE + 0x60) |
21 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) | 21 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) || \ |
22 | defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
22 | #define INTC2_BASE 0xffd40000 | 23 | #define INTC2_BASE 0xffd40000 |
23 | #define INTC2_INTMSK (INTC2_BASE + 0x38) | 24 | #define INTC2_INTMSK (INTC2_BASE + 0x38) |
24 | #define INTC2_INTMSKCLR (INTC2_BASE + 0x3c) | 25 | #define INTC2_INTMSKCLR (INTC2_BASE + 0x3c) |
diff --git a/arch/sh/kernel/cpu/irq/pint.c b/arch/sh/kernel/cpu/irq/pint.c index f60007783a21..67602685df1a 100644 --- a/arch/sh/kernel/cpu/irq/pint.c +++ b/arch/sh/kernel/cpu/irq/pint.c | |||
@@ -18,6 +18,58 @@ | |||
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/machvec.h> | 19 | #include <asm/machvec.h> |
20 | 20 | ||
21 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
22 | #define INTC_INTER 0xA4000014UL | ||
23 | #define INTC_IPRD 0xA4000018UL | ||
24 | #define INTC_ICR2 0xA4000012UL | ||
25 | |||
26 | /* PFC */ | ||
27 | #define PORT_PACR 0xA4000100UL | ||
28 | #define PORT_PBCR 0xA4000102UL | ||
29 | #define PORT_PCCR 0xA4000104UL | ||
30 | #define PORT_PDCR 0xA4000106UL | ||
31 | #define PORT_PECR 0xA4000108UL | ||
32 | #define PORT_PFCR 0xA400010AUL | ||
33 | #define PORT_PGCR 0xA400010CUL | ||
34 | #define PORT_PHCR 0xA400010EUL | ||
35 | #define PORT_PJCR 0xA4000110UL | ||
36 | #define PORT_PKCR 0xA4000112UL | ||
37 | #define PORT_PLCR 0xA4000114UL | ||
38 | #define PORT_PMCR 0xA4000118UL | ||
39 | #define PORT_PNCR 0xA400011AUL | ||
40 | #define PORT_PECR2 0xA4050148UL | ||
41 | #define PORT_PFCR2 0xA405014AUL | ||
42 | #define PORT_PNCR2 0xA405015AUL | ||
43 | |||
44 | /* I/O port */ | ||
45 | #define PORT_PADR 0xA4000120UL | ||
46 | #define PORT_PBDR 0xA4000122UL | ||
47 | #define PORT_PCDR 0xA4000124UL | ||
48 | #define PORT_PDDR 0xA4000126UL | ||
49 | #define PORT_PEDR 0xA4000128UL | ||
50 | #define PORT_PFDR 0xA400012AUL | ||
51 | #define PORT_PGDR 0xA400012CUL | ||
52 | #define PORT_PHDR 0xA400012EUL | ||
53 | #define PORT_PJDR 0xA4000130UL | ||
54 | #define PORT_PKDR 0xA4000132UL | ||
55 | #define PORT_PLDR 0xA4000134UL | ||
56 | #define PORT_PMDR 0xA4000138UL | ||
57 | #define PORT_PNDR 0xA400013AUL | ||
58 | |||
59 | #define PINT0_IRQ 40 | ||
60 | #define PINT8_IRQ 41 | ||
61 | #define PINT_IRQ_BASE 86 | ||
62 | |||
63 | #define PINT0_IPR_ADDR INTC_IPRD | ||
64 | #define PINT0_IPR_POS 3 | ||
65 | #define PINT0_PRIORITY 2 | ||
66 | |||
67 | #define PINT8_IPR_ADDR INTC_IPRD | ||
68 | #define PINT8_IPR_POS 2 | ||
69 | #define PINT8_PRIORITY 2 | ||
70 | |||
71 | #endif /* CONFIG_CPU_SUBTYPE_SH7705 */ | ||
72 | |||
21 | static unsigned char pint_map[256]; | 73 | static unsigned char pint_map[256]; |
22 | static unsigned long portcr_mask; | 74 | static unsigned long portcr_mask; |
23 | 75 | ||
@@ -126,7 +178,7 @@ int ipr_irq_demux(int irq) | |||
126 | unsigned long creg, dreg, d, sav; | 178 | unsigned long creg, dreg, d, sav; |
127 | 179 | ||
128 | if (irq == PINT0_IRQ) { | 180 | if (irq == PINT0_IRQ) { |
129 | #if defined(CONFIG_CPU_SUBTYPE_SH7707) | 181 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) |
130 | creg = PORT_PACR; | 182 | creg = PORT_PACR; |
131 | dreg = PORT_PADR; | 183 | dreg = PORT_PADR; |
132 | #else | 184 | #else |
@@ -144,7 +196,7 @@ int ipr_irq_demux(int irq) | |||
144 | 196 | ||
145 | return PINT_IRQ_BASE + pint_map[d]; | 197 | return PINT_IRQ_BASE + pint_map[d]; |
146 | } else if (irq == PINT8_IRQ) { | 198 | } else if (irq == PINT8_IRQ) { |
147 | #if defined(CONFIG_CPU_SUBTYPE_SH7707) | 199 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) |
148 | creg = PORT_PBCR; | 200 | creg = PORT_PBCR; |
149 | dreg = PORT_PBDR; | 201 | dreg = PORT_PBDR; |
150 | #else | 202 | #else |
diff --git a/arch/sh/kernel/cpu/sh3/Makefile b/arch/sh/kernel/cpu/sh3/Makefile index 83905e4e4387..09faa056cd43 100644 --- a/arch/sh/kernel/cpu/sh3/Makefile +++ b/arch/sh/kernel/cpu/sh3/Makefile | |||
@@ -12,6 +12,7 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7708) += setup-sh7708.o | |||
12 | obj-$(CONFIG_CPU_SUBTYPE_SH7709) += setup-sh7709.o | 12 | obj-$(CONFIG_CPU_SUBTYPE_SH7709) += setup-sh7709.o |
13 | obj-$(CONFIG_CPU_SUBTYPE_SH7300) += setup-sh7300.o | 13 | obj-$(CONFIG_CPU_SUBTYPE_SH7300) += setup-sh7300.o |
14 | obj-$(CONFIG_CPU_SUBTYPE_SH7710) += setup-sh7710.o | 14 | obj-$(CONFIG_CPU_SUBTYPE_SH7710) += setup-sh7710.o |
15 | obj-$(CONFIG_CPU_SUBTYPE_SH7712) += setup-sh7710.o | ||
15 | 16 | ||
16 | # Primary on-chip clocks (common) | 17 | # Primary on-chip clocks (common) |
17 | clock-$(CONFIG_CPU_SH3) := clock-sh3.o | 18 | clock-$(CONFIG_CPU_SH3) := clock-sh3.o |
diff --git a/arch/sh/kernel/cpu/sh3/probe.c b/arch/sh/kernel/cpu/sh3/probe.c index 821b0ab7b528..647623b22edc 100644 --- a/arch/sh/kernel/cpu/sh3/probe.c +++ b/arch/sh/kernel/cpu/sh3/probe.c | |||
@@ -78,6 +78,9 @@ int __init detect_cpu_and_cache_system(void) | |||
78 | #if defined(CONFIG_CPU_SUBTYPE_SH7710) | 78 | #if defined(CONFIG_CPU_SUBTYPE_SH7710) |
79 | current_cpu_data.type = CPU_SH7710; | 79 | current_cpu_data.type = CPU_SH7710; |
80 | #endif | 80 | #endif |
81 | #if defined(CONFIG_CPU_SUBTYPE_SH7712) | ||
82 | current_cpu_data.type = CPU_SH7712; | ||
83 | #endif | ||
81 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | 84 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) |
82 | current_cpu_data.type = CPU_SH7705; | 85 | current_cpu_data.type = CPU_SH7705; |
83 | 86 | ||
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c index a8e41c5241fa..1983fb7ad6ea 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * SH7705 Setup | 2 | * SH7705 Setup |
3 | * | 3 | * |
4 | * Copyright (C) 2006 Paul Mundt | 4 | * Copyright (C) 2006 Paul Mundt |
5 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | 6 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 7 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file "COPYING" in the main directory of this archive | 8 | * License. See the file "COPYING" in the main directory of this archive |
@@ -14,15 +15,15 @@ | |||
14 | 15 | ||
15 | static struct plat_sci_port sci_platform_data[] = { | 16 | static struct plat_sci_port sci_platform_data[] = { |
16 | { | 17 | { |
17 | .mapbase = 0xa4400000, | 18 | .mapbase = 0xa4410000, |
18 | .flags = UPF_BOOT_AUTOCONF, | 19 | .flags = UPF_BOOT_AUTOCONF, |
19 | .type = PORT_SCIF, | 20 | .type = PORT_SCIF, |
20 | .irqs = { 52, 53, 55, 54 }, | 21 | .irqs = { 56, 57, 59 }, |
21 | }, { | 22 | }, { |
22 | .mapbase = 0xa4410000, | 23 | .mapbase = 0xa4400000, |
23 | .flags = UPF_BOOT_AUTOCONF, | 24 | .flags = UPF_BOOT_AUTOCONF, |
24 | .type = PORT_SCIF, | 25 | .type = PORT_SCIF, |
25 | .irqs = { 56, 57, 59, 58 }, | 26 | .irqs = { 52, 53, 55 }, |
26 | }, { | 27 | }, { |
27 | .flags = 0, | 28 | .flags = 0, |
28 | } | 29 | } |
@@ -46,3 +47,48 @@ static int __init sh7705_devices_setup(void) | |||
46 | ARRAY_SIZE(sh7705_devices)); | 47 | ARRAY_SIZE(sh7705_devices)); |
47 | } | 48 | } |
48 | __initcall(sh7705_devices_setup); | 49 | __initcall(sh7705_devices_setup); |
50 | |||
51 | static struct ipr_data sh7705_ipr_map[] = { | ||
52 | /* IRQ, IPR-idx, shift, priority */ | ||
53 | { 16, 0, 12, 2 }, /* TMU0 TUNI*/ | ||
54 | { 17, 0, 8, 2 }, /* TMU1 TUNI */ | ||
55 | { 18, 0, 4, 2 }, /* TMU2 TUNI */ | ||
56 | { 27, 1, 12, 2 }, /* WDT ITI */ | ||
57 | { 20, 0, 0, 2 }, /* RTC ATI (alarm) */ | ||
58 | { 21, 0, 0, 2 }, /* RTC PRI (period) */ | ||
59 | { 22, 0, 0, 2 }, /* RTC CUI (carry) */ | ||
60 | { 48, 4, 12, 7 }, /* DMAC DMTE0 */ | ||
61 | { 49, 4, 12, 7 }, /* DMAC DMTE1 */ | ||
62 | { 50, 4, 12, 7 }, /* DMAC DMTE2 */ | ||
63 | { 51, 4, 12, 7 }, /* DMAC DMTE3 */ | ||
64 | { 52, 4, 8, 3 }, /* SCIF0 ERI */ | ||
65 | { 53, 4, 8, 3 }, /* SCIF0 RXI */ | ||
66 | { 55, 4, 8, 3 }, /* SCIF0 TXI */ | ||
67 | { 56, 4, 4, 3 }, /* SCIF1 ERI */ | ||
68 | { 57, 4, 4, 3 }, /* SCIF1 RXI */ | ||
69 | { 59, 4, 4, 3 }, /* SCIF1 TXI */ | ||
70 | }; | ||
71 | |||
72 | static unsigned long ipr_offsets[] = { | ||
73 | 0xFFFFFEE2 /* 0: IPRA */ | ||
74 | , 0xFFFFFEE4 /* 1: IPRB */ | ||
75 | , 0xA4000016 /* 2: IPRC */ | ||
76 | , 0xA4000018 /* 3: IPRD */ | ||
77 | , 0xA400001A /* 4: IPRE */ | ||
78 | , 0xA4080000 /* 5: IPRF */ | ||
79 | , 0xA4080002 /* 6: IPRG */ | ||
80 | , 0xA4080004 /* 7: IPRH */ | ||
81 | }; | ||
82 | |||
83 | /* given the IPR index return the address of the IPR register */ | ||
84 | unsigned int map_ipridx_to_addr(int idx) | ||
85 | { | ||
86 | if (idx >= ARRAY_SIZE(ipr_offsets)) | ||
87 | return 0; | ||
88 | return ipr_offsets[idx]; | ||
89 | } | ||
90 | |||
91 | void __init init_IRQ_ipr() | ||
92 | { | ||
93 | make_ipr_irq(sh7705_ipr_map, ARRAY_SIZE(sh7705_ipr_map)); | ||
94 | } | ||
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7709.c b/arch/sh/kernel/cpu/sh3/setup-sh7709.c index dc9b211cf87f..c7d7c35fc834 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7709.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7709.c | |||
@@ -48,24 +48,33 @@ static struct platform_device *sh7709_devices[] __initdata = { | |||
48 | static int __init sh7709_devices_setup(void) | 48 | static int __init sh7709_devices_setup(void) |
49 | { | 49 | { |
50 | return platform_add_devices(sh7709_devices, | 50 | return platform_add_devices(sh7709_devices, |
51 | ARRAY_SIZE(sh7709_devices)); | 51 | ARRAY_SIZE(sh7709_devices)); |
52 | } | 52 | } |
53 | __initcall(sh7709_devices_setup); | 53 | __initcall(sh7709_devices_setup); |
54 | 54 | ||
55 | #define IPRx(A,N) .addr=A, .shift=0*N*-1 | 55 | #define IPRx(A,N) .addr=A, .shift=N |
56 | #define IPRA(N) IPRx(0xfffffee2UL,N) | 56 | #define IPRA(N) IPRx(0xfffffee2UL,N) |
57 | #define IPRB(N) IPRx(0xfffffee4UL,N) | 57 | #define IPRB(N) IPRx(0xfffffee4UL,N) |
58 | #define IPRC(N) IPRx(0xa4000016UL,N) | ||
59 | #define IPRD(N) IPRx(0xa4000018UL,N) | ||
58 | #define IPRE(N) IPRx(0xa400001aUL,N) | 60 | #define IPRE(N) IPRx(0xa400001aUL,N) |
59 | 61 | ||
60 | static struct ipr_data sh7709_ipr_map[] = { | 62 | static struct ipr_data sh7709_ipr_map[] = { |
61 | [16] = { IPRA(15-12), 2 }, /* TMU TUNI0 */ | 63 | [16] = { IPRA(12), 2 }, /* TMU TUNI0 */ |
62 | [17] = { IPRA(11-8), 4 }, /* TMU TUNI1 */ | 64 | [17] = { IPRA(8), 4 }, /* TMU TUNI1 */ |
63 | [22] = { IPRA(3-0), 2 }, /* RTC CUI */ | 65 | [18 ... 19] = { IPRA(4), 1 }, /* TMU TUNI1 */ |
64 | [23 ... 26] = { IPRB(7-4), 3 }, /* SCI */ | 66 | [20 ... 22] = { IPRA(0), 2 }, /* RTC CUI */ |
65 | [27] = { IPRB(15-12), 2 }, /* WDT ITI */ | 67 | [23 ... 26] = { IPRB(4), 3 }, /* SCI */ |
66 | [48 ... 51] = { IPRE(15-12), 7 }, /* DMA */ | 68 | [27] = { IPRB(12), 2 }, /* WDT ITI */ |
67 | [52 ... 55] = { IPRE(11-8), 3 }, /* IRDA */ | 69 | [32] = { IPRC(0), 1 }, /* IRQ 0 */ |
68 | [56 ... 59] = { IPRE(7-4), 3 }, /* SCIF */ | 70 | [33] = { IPRC(4), 1 }, /* IRQ 1 */ |
71 | [34] = { IPRC(8), 1 }, /* IRQ 2 APM */ | ||
72 | [35] = { IPRC(12), 1 }, /* IRQ 3 TOUCHSCREEN */ | ||
73 | [36] = { IPRD(0), 1 }, /* IRQ 4 */ | ||
74 | [37] = { IPRD(4), 1 }, /* IRQ 5 */ | ||
75 | [48 ... 51] = { IPRE(12), 7 }, /* DMA */ | ||
76 | [52 ... 55] = { IPRE(8), 3 }, /* IRDA */ | ||
77 | [56 ... 59] = { IPRE(4), 3 }, /* SCIF */ | ||
69 | }; | 78 | }; |
70 | 79 | ||
71 | void __init init_IRQ_ipr() | 80 | void __init init_IRQ_ipr() |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c index 895f99ee6a95..51760a7e7f1c 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * SH7710 Setup | 2 | * SH7710 Setup |
3 | * | 3 | * |
4 | * Copyright (C) 2006 Paul Mundt | 4 | * Copyright (C) 2006 Paul Mundt |
5 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
5 | * | 6 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 7 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file "COPYING" in the main directory of this archive | 8 | * License. See the file "COPYING" in the main directory of this archive |
@@ -19,6 +20,12 @@ static struct plat_sci_port sci_platform_data[] = { | |||
19 | .type = PORT_SCIF, | 20 | .type = PORT_SCIF, |
20 | .irqs = { 52, 53, 55, 54 }, | 21 | .irqs = { 52, 53, 55, 54 }, |
21 | }, { | 22 | }, { |
23 | .mapbase = 0xa4420000, | ||
24 | .flags = UPF_BOOT_AUTOCONF, | ||
25 | .type = PORT_SCIF, | ||
26 | .irqs = { 56, 57, 59, 58 }, | ||
27 | }, { | ||
28 | |||
22 | .flags = 0, | 29 | .flags = 0, |
23 | } | 30 | } |
24 | }; | 31 | }; |
@@ -41,3 +48,56 @@ static int __init sh7710_devices_setup(void) | |||
41 | ARRAY_SIZE(sh7710_devices)); | 48 | ARRAY_SIZE(sh7710_devices)); |
42 | } | 49 | } |
43 | __initcall(sh7710_devices_setup); | 50 | __initcall(sh7710_devices_setup); |
51 | |||
52 | static struct ipr_data sh7710_ipr_map[] = { | ||
53 | /* IRQ, IPR-idx, shift, priority */ | ||
54 | { 16, 0, 12, 2 }, /* TMU0 TUNI*/ | ||
55 | { 17, 0, 8, 2 }, /* TMU1 TUNI */ | ||
56 | { 18, 0, 4, 2 }, /* TMU2 TUNI */ | ||
57 | { 27, 1, 12, 2 }, /* WDT ITI */ | ||
58 | { 20, 0, 0, 2 }, /* RTC ATI (alarm) */ | ||
59 | { 21, 0, 0, 2 }, /* RTC PRI (period) */ | ||
60 | { 22, 0, 0, 2 }, /* RTC CUI (carry) */ | ||
61 | { 48, 4, 12, 7 }, /* DMAC DMTE0 */ | ||
62 | { 49, 4, 12, 7 }, /* DMAC DMTE1 */ | ||
63 | { 50, 4, 12, 7 }, /* DMAC DMTE2 */ | ||
64 | { 51, 4, 12, 7 }, /* DMAC DMTE3 */ | ||
65 | { 52, 4, 8, 3 }, /* SCIF0 ERI */ | ||
66 | { 53, 4, 8, 3 }, /* SCIF0 RXI */ | ||
67 | { 54, 4, 8, 3 }, /* SCIF0 BRI */ | ||
68 | { 55, 4, 8, 3 }, /* SCIF0 TXI */ | ||
69 | { 56, 4, 4, 3 }, /* SCIF1 ERI */ | ||
70 | { 57, 4, 4, 3 }, /* SCIF1 RXI */ | ||
71 | { 58, 4, 4, 3 }, /* SCIF1 BRI */ | ||
72 | { 59, 4, 4, 3 }, /* SCIF1 TXI */ | ||
73 | { 76, 5, 8, 7 }, /* DMAC DMTE4 */ | ||
74 | { 77, 5, 8, 7 }, /* DMAC DMTE5 */ | ||
75 | { 80, 6, 12, 5 }, /* EDMAC EINT0 */ | ||
76 | { 81, 6, 8, 5 }, /* EDMAC EINT1 */ | ||
77 | { 82, 6, 4, 5 }, /* EDMAC EINT2 */ | ||
78 | }; | ||
79 | |||
80 | static unsigned long ipr_offsets[] = { | ||
81 | 0xA414FEE2 /* 0: IPRA */ | ||
82 | , 0xA414FEE4 /* 1: IPRB */ | ||
83 | , 0xA4140016 /* 2: IPRC */ | ||
84 | , 0xA4140018 /* 3: IPRD */ | ||
85 | , 0xA414001A /* 4: IPRE */ | ||
86 | , 0xA4080000 /* 5: IPRF */ | ||
87 | , 0xA4080002 /* 6: IPRG */ | ||
88 | , 0xA4080004 /* 7: IPRH */ | ||
89 | , 0xA4080006 /* 8: IPRI */ | ||
90 | }; | ||
91 | |||
92 | /* given the IPR index return the address of the IPR register */ | ||
93 | unsigned int map_ipridx_to_addr(int idx) | ||
94 | { | ||
95 | if (idx >= ARRAY_SIZE(ipr_offsets)) | ||
96 | return 0; | ||
97 | return ipr_offsets[idx]; | ||
98 | } | ||
99 | |||
100 | void __init init_IRQ_ipr() | ||
101 | { | ||
102 | make_ipr_irq(sh7710_ipr_map, ARRAY_SIZE(sh7710_ipr_map)); | ||
103 | } | ||
diff --git a/arch/sh/kernel/cpu/sh4/clock-sh4-202.c b/arch/sh/kernel/cpu/sh4/clock-sh4-202.c index fa2019aabd74..fcb2c41bc34e 100644 --- a/arch/sh/kernel/cpu/sh4/clock-sh4-202.c +++ b/arch/sh/kernel/cpu/sh4/clock-sh4-202.c | |||
@@ -82,7 +82,8 @@ static void shoc_clk_init(struct clk *clk) | |||
82 | for (i = 0; i < ARRAY_SIZE(frqcr3_divisors); i++) { | 82 | for (i = 0; i < ARRAY_SIZE(frqcr3_divisors); i++) { |
83 | int divisor = frqcr3_divisors[i]; | 83 | int divisor = frqcr3_divisors[i]; |
84 | 84 | ||
85 | if (clk->ops->set_rate(clk, clk->parent->rate / divisor) == 0) | 85 | if (clk->ops->set_rate(clk, clk->parent->rate / |
86 | divisor, 0) == 0) | ||
86 | break; | 87 | break; |
87 | } | 88 | } |
88 | 89 | ||
diff --git a/arch/sh/kernel/cpu/sh4/probe.c b/arch/sh/kernel/cpu/sh4/probe.c index 58950de2696d..8cd04904c77a 100644 --- a/arch/sh/kernel/cpu/sh4/probe.c +++ b/arch/sh/kernel/cpu/sh4/probe.c | |||
@@ -124,6 +124,14 @@ int __init detect_cpu_and_cache_system(void) | |||
124 | current_cpu_data.dcache.ways = 4; | 124 | current_cpu_data.dcache.ways = 4; |
125 | current_cpu_data.flags |= CPU_HAS_LLSC; | 125 | current_cpu_data.flags |= CPU_HAS_LLSC; |
126 | break; | 126 | break; |
127 | case 0x3004: | ||
128 | case 0x3007: | ||
129 | current_cpu_data.type = CPU_SH7785; | ||
130 | current_cpu_data.icache.ways = 4; | ||
131 | current_cpu_data.dcache.ways = 4; | ||
132 | current_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_PERF_COUNTER | | ||
133 | CPU_HAS_LLSC; | ||
134 | break; | ||
127 | case 0x3008: | 135 | case 0x3008: |
128 | if (prr == 0xa0) { | 136 | if (prr == 0xa0) { |
129 | current_cpu_data.type = CPU_SH7722; | 137 | current_cpu_data.type = CPU_SH7722; |
diff --git a/arch/sh/kernel/cpu/sh4a/Makefile b/arch/sh/kernel/cpu/sh4a/Makefile index a8f493f2f21f..ab7422f8f820 100644 --- a/arch/sh/kernel/cpu/sh4a/Makefile +++ b/arch/sh/kernel/cpu/sh4a/Makefile | |||
@@ -5,6 +5,7 @@ | |||
5 | # CPU subtype setup | 5 | # CPU subtype setup |
6 | obj-$(CONFIG_CPU_SUBTYPE_SH7770) += setup-sh7770.o | 6 | obj-$(CONFIG_CPU_SUBTYPE_SH7770) += setup-sh7770.o |
7 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += setup-sh7780.o | 7 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += setup-sh7780.o |
8 | obj-$(CONFIG_CPU_SUBTYPE_SH7785) += setup-sh7785.o | ||
8 | obj-$(CONFIG_CPU_SUBTYPE_SH73180) += setup-sh73180.o | 9 | obj-$(CONFIG_CPU_SUBTYPE_SH73180) += setup-sh73180.o |
9 | obj-$(CONFIG_CPU_SUBTYPE_SH7343) += setup-sh7343.o | 10 | obj-$(CONFIG_CPU_SUBTYPE_SH7343) += setup-sh7343.o |
10 | obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o | 11 | obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o |
@@ -13,7 +14,8 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o | |||
13 | clock-$(CONFIG_CPU_SUBTYPE_SH73180) := clock-sh73180.o | 14 | clock-$(CONFIG_CPU_SUBTYPE_SH73180) := clock-sh73180.o |
14 | clock-$(CONFIG_CPU_SUBTYPE_SH7770) := clock-sh7770.o | 15 | clock-$(CONFIG_CPU_SUBTYPE_SH7770) := clock-sh7770.o |
15 | clock-$(CONFIG_CPU_SUBTYPE_SH7780) := clock-sh7780.o | 16 | clock-$(CONFIG_CPU_SUBTYPE_SH7780) := clock-sh7780.o |
17 | clock-$(CONFIG_CPU_SUBTYPE_SH7785) := clock-sh7785.o | ||
16 | clock-$(CONFIG_CPU_SUBTYPE_SH7343) := clock-sh7343.o | 18 | clock-$(CONFIG_CPU_SUBTYPE_SH7343) := clock-sh7343.o |
17 | clock-$(CONFIG_CPU_SUBTYPE_SH7722) := clock-sh7343.o | 19 | clock-$(CONFIG_CPU_SUBTYPE_SH7722) := clock-sh7722.o |
18 | 20 | ||
19 | obj-y += $(clock-y) | 21 | obj-y += $(clock-y) |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c new file mode 100644 index 000000000000..29090035bc5b --- /dev/null +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c | |||
@@ -0,0 +1,600 @@ | |||
1 | /* | ||
2 | * arch/sh/kernel/cpu/sh4a/clock-sh7722.c | ||
3 | * | ||
4 | * SH7722 support for the clock framework | ||
5 | * | ||
6 | * Copyright (c) 2006-2007 Nomad Global Solutions Inc | ||
7 | * Based on code for sh7343 by Paul Mundt | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General Public | ||
10 | * License. See the file "COPYING" in the main directory of this archive | ||
11 | * for more details. | ||
12 | */ | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <linux/errno.h> | ||
17 | #include <asm/clock.h> | ||
18 | #include <asm/freq.h> | ||
19 | |||
20 | #define SH7722_PLL_FREQ (32000000/8) | ||
21 | #define N (-1) | ||
22 | #define NM (-2) | ||
23 | #define ROUND_NEAREST 0 | ||
24 | #define ROUND_DOWN -1 | ||
25 | #define ROUND_UP +1 | ||
26 | |||
27 | static int adjust_algos[][3] = { | ||
28 | {}, /* NO_CHANGE */ | ||
29 | { NM, N, 1 }, /* N:1, N:1 */ | ||
30 | { 3, 2, 2 }, /* 3:2:2 */ | ||
31 | { 5, 2, 2 }, /* 5:2:2 */ | ||
32 | { N, 1, 1 }, /* N:1:1 */ | ||
33 | |||
34 | { N, 1 }, /* N:1 */ | ||
35 | |||
36 | { N, 1 }, /* N:1 */ | ||
37 | { 3, 2 }, | ||
38 | { 4, 3 }, | ||
39 | { 5, 4 }, | ||
40 | |||
41 | { N, 1 } | ||
42 | }; | ||
43 | |||
44 | static unsigned long adjust_pair_of_clocks(unsigned long r1, unsigned long r2, | ||
45 | int m1, int m2, int round_flag) | ||
46 | { | ||
47 | unsigned long rem, div; | ||
48 | int the_one = 0; | ||
49 | |||
50 | pr_debug( "Actual values: r1 = %ld\n", r1); | ||
51 | pr_debug( "...............r2 = %ld\n", r2); | ||
52 | |||
53 | if (m1 == m2) { | ||
54 | r2 = r1; | ||
55 | pr_debug( "setting equal rates: r2 now %ld\n", r2); | ||
56 | } else if ((m2 == N && m1 == 1) || | ||
57 | (m2 == NM && m1 == N)) { /* N:1 or NM:N */ | ||
58 | pr_debug( "Setting rates as 1:N (N:N*M)\n"); | ||
59 | rem = r2 % r1; | ||
60 | pr_debug( "...remainder = %ld\n", rem); | ||
61 | if (rem) { | ||
62 | div = r2 / r1; | ||
63 | pr_debug( "...div = %ld\n", div); | ||
64 | switch (round_flag) { | ||
65 | case ROUND_NEAREST: | ||
66 | the_one = rem >= r1/2 ? 1 : 0; break; | ||
67 | case ROUND_UP: | ||
68 | the_one = 1; break; | ||
69 | case ROUND_DOWN: | ||
70 | the_one = 0; break; | ||
71 | } | ||
72 | |||
73 | r2 = r1 * (div + the_one); | ||
74 | pr_debug( "...setting r2 to %ld\n", r2); | ||
75 | } | ||
76 | } else if ((m2 == 1 && m1 == N) || | ||
77 | (m2 == N && m1 == NM)) { /* 1:N or N:NM */ | ||
78 | pr_debug( "Setting rates as N:1 (N*M:N)\n"); | ||
79 | rem = r1 % r2; | ||
80 | pr_debug( "...remainder = %ld\n", rem); | ||
81 | if (rem) { | ||
82 | div = r1 / r2; | ||
83 | pr_debug( "...div = %ld\n", div); | ||
84 | switch (round_flag) { | ||
85 | case ROUND_NEAREST: | ||
86 | the_one = rem > r2/2 ? 1 : 0; break; | ||
87 | case ROUND_UP: | ||
88 | the_one = 0; break; | ||
89 | case ROUND_DOWN: | ||
90 | the_one = 1; break; | ||
91 | } | ||
92 | |||
93 | r2 = r1 / (div + the_one); | ||
94 | pr_debug( "...setting r2 to %ld\n", r2); | ||
95 | } | ||
96 | } else { /* value:value */ | ||
97 | pr_debug( "Setting rates as %d:%d\n", m1, m2); | ||
98 | div = r1 / m1; | ||
99 | r2 = div * m2; | ||
100 | pr_debug( "...div = %ld\n", div); | ||
101 | pr_debug( "...setting r2 to %ld\n", r2); | ||
102 | } | ||
103 | |||
104 | return r2; | ||
105 | } | ||
106 | |||
107 | static void adjust_clocks(int originate, int *l, unsigned long v[], | ||
108 | int n_in_line) | ||
109 | { | ||
110 | int x; | ||
111 | |||
112 | pr_debug( "Go down from %d...\n", originate); | ||
113 | /* go up recalculation clocks */ | ||
114 | for (x = originate; x>0; x -- ) | ||
115 | v[x-1] = adjust_pair_of_clocks(v[x], v[x-1], | ||
116 | l[x], l[x-1], | ||
117 | ROUND_UP); | ||
118 | |||
119 | pr_debug( "Go up from %d...\n", originate); | ||
120 | /* go down recalculation clocks */ | ||
121 | for (x = originate; x<n_in_line - 1; x ++ ) | ||
122 | v[x+1] = adjust_pair_of_clocks(v[x], v[x+1], | ||
123 | l[x], l[x+1], | ||
124 | ROUND_UP); | ||
125 | } | ||
126 | |||
127 | |||
128 | /* | ||
129 | * SH7722 uses a common set of multipliers and divisors, so this | ||
130 | * is quite simple.. | ||
131 | */ | ||
132 | |||
133 | /* | ||
134 | * Instead of having two separate multipliers/divisors set, like this: | ||
135 | * | ||
136 | * static int multipliers[] = { 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; | ||
137 | * static int divisors[] = { 1, 3, 2, 5, 3, 4, 5, 6, 8, 10, 12, 16, 20 }; | ||
138 | * | ||
139 | * I created the divisors2 array, which is used to calculate rate like | ||
140 | * rate = parent * 2 / divisors2[ divisor ]; | ||
141 | */ | ||
142 | static int divisors2[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40 }; | ||
143 | |||
144 | static void master_clk_init(struct clk *clk) | ||
145 | { | ||
146 | clk_set_rate(clk, clk_get_rate(clk)); | ||
147 | } | ||
148 | |||
149 | static void master_clk_recalc(struct clk *clk) | ||
150 | { | ||
151 | unsigned long frqcr = ctrl_inl(FRQCR); | ||
152 | |||
153 | clk->rate = CONFIG_SH_PCLK_FREQ * (1 + (frqcr >> 24 & 0xF)); | ||
154 | } | ||
155 | |||
156 | static int master_clk_setrate(struct clk *clk, unsigned long rate, int id) | ||
157 | { | ||
158 | int div = rate / SH7722_PLL_FREQ; | ||
159 | int master_divs[] = { 2, 3, 4, 6, 8, 16 }; | ||
160 | int index; | ||
161 | unsigned long frqcr; | ||
162 | |||
163 | if (rate < SH7722_PLL_FREQ * 2) | ||
164 | return -EINVAL; | ||
165 | |||
166 | for (index = 1; index < ARRAY_SIZE(master_divs); index++) | ||
167 | if (div >= master_divs[index - 1] && div < master_divs[index]) | ||
168 | break; | ||
169 | |||
170 | if (index >= ARRAY_SIZE(master_divs)) | ||
171 | index = ARRAY_SIZE(master_divs); | ||
172 | div = master_divs[index - 1]; | ||
173 | |||
174 | frqcr = ctrl_inl(FRQCR); | ||
175 | frqcr &= ~(0xF << 24); | ||
176 | frqcr |= ( (div-1) << 24); | ||
177 | ctrl_outl(frqcr, FRQCR); | ||
178 | |||
179 | return 0; | ||
180 | } | ||
181 | |||
182 | static struct clk_ops sh7722_master_clk_ops = { | ||
183 | .init = master_clk_init, | ||
184 | .recalc = master_clk_recalc, | ||
185 | .set_rate = master_clk_setrate, | ||
186 | }; | ||
187 | |||
188 | struct frqcr_context { | ||
189 | unsigned mask; | ||
190 | unsigned shift; | ||
191 | }; | ||
192 | |||
193 | struct frqcr_context sh7722_get_clk_context(const char *name) | ||
194 | { | ||
195 | struct frqcr_context ctx = { 0, }; | ||
196 | |||
197 | if (!strcmp(name, "peripheral_clk")) { | ||
198 | ctx.shift = 0; | ||
199 | ctx.mask = 0xF; | ||
200 | } else if (!strcmp(name, "sdram_clk")) { | ||
201 | ctx.shift = 4; | ||
202 | ctx.mask = 0xF; | ||
203 | } else if (!strcmp(name, "bus_clk")) { | ||
204 | ctx.shift = 8; | ||
205 | ctx.mask = 0xF; | ||
206 | } else if (!strcmp(name, "sh_clk")) { | ||
207 | ctx.shift = 12; | ||
208 | ctx.mask = 0xF; | ||
209 | } else if (!strcmp(name, "umem_clk")) { | ||
210 | ctx.shift = 16; | ||
211 | ctx.mask = 0xF; | ||
212 | } else if (!strcmp(name, "cpu_clk")) { | ||
213 | ctx.shift = 20; | ||
214 | ctx.mask = 7; | ||
215 | } | ||
216 | return ctx; | ||
217 | } | ||
218 | |||
219 | /** | ||
220 | * sh7722_find_divisors - find divisor for setting rate | ||
221 | * | ||
222 | * All sh7722 clocks use the same set of multipliers/divisors. This function | ||
223 | * chooses correct divisor to set the rate of clock with parent clock that | ||
224 | * generates frequency of 'parent_rate' | ||
225 | * | ||
226 | * @parent_rate: rate of parent clock | ||
227 | * @rate: requested rate to be set | ||
228 | */ | ||
229 | static int sh7722_find_divisors(unsigned long parent_rate, unsigned rate) | ||
230 | { | ||
231 | unsigned div2 = parent_rate * 2 / rate; | ||
232 | int index; | ||
233 | |||
234 | if (rate > parent_rate) | ||
235 | return -EINVAL; | ||
236 | |||
237 | for (index = 1; index < ARRAY_SIZE(divisors2); index++) { | ||
238 | if (div2 > divisors2[index] && div2 <= divisors2[index]) | ||
239 | break; | ||
240 | } | ||
241 | if (index >= ARRAY_SIZE(divisors2)) | ||
242 | index = ARRAY_SIZE(divisors2) - 1; | ||
243 | return divisors2[index]; | ||
244 | } | ||
245 | |||
246 | static void sh7722_frqcr_recalc(struct clk *clk) | ||
247 | { | ||
248 | struct frqcr_context ctx = sh7722_get_clk_context(clk->name); | ||
249 | unsigned long frqcr = ctrl_inl(FRQCR); | ||
250 | int index; | ||
251 | |||
252 | index = (frqcr >> ctx.shift) & ctx.mask; | ||
253 | clk->rate = clk->parent->rate * 2 / divisors2[index]; | ||
254 | } | ||
255 | |||
256 | static int sh7722_frqcr_set_rate(struct clk *clk, unsigned long rate, | ||
257 | int algo_id) | ||
258 | { | ||
259 | struct frqcr_context ctx = sh7722_get_clk_context(clk->name); | ||
260 | unsigned long parent_rate = clk->parent->rate; | ||
261 | int div; | ||
262 | unsigned long frqcr; | ||
263 | int err = 0; | ||
264 | |||
265 | /* pretty invalid */ | ||
266 | if (parent_rate < rate) | ||
267 | return -EINVAL; | ||
268 | |||
269 | /* look for multiplier/divisor pair */ | ||
270 | div = sh7722_find_divisors(parent_rate, rate); | ||
271 | if (div<0) | ||
272 | return div; | ||
273 | |||
274 | /* calculate new value of clock rate */ | ||
275 | clk->rate = parent_rate * 2 / div; | ||
276 | frqcr = ctrl_inl(FRQCR); | ||
277 | |||
278 | /* FIXME: adjust as algo_id specifies */ | ||
279 | if (algo_id != NO_CHANGE) { | ||
280 | int originator; | ||
281 | char *algo_group_1[] = { "cpu_clk", "umem_clk", "sh_clk" }; | ||
282 | char *algo_group_2[] = { "sh_clk", "bus_clk" }; | ||
283 | char *algo_group_3[] = { "sh_clk", "sdram_clk" }; | ||
284 | char *algo_group_4[] = { "bus_clk", "peripheral_clk" }; | ||
285 | char *algo_group_5[] = { "cpu_clk", "peripheral_clk" }; | ||
286 | char **algo_current = NULL; | ||
287 | /* 3 is the maximum number of clocks in relation */ | ||
288 | struct clk *ck[3]; | ||
289 | unsigned long values[3]; /* the same comment as above */ | ||
290 | int part_length = -1; | ||
291 | int i; | ||
292 | |||
293 | /* | ||
294 | * all the steps below only required if adjustion was | ||
295 | * requested | ||
296 | */ | ||
297 | if (algo_id == IUS_N1_N1 || | ||
298 | algo_id == IUS_322 || | ||
299 | algo_id == IUS_522 || | ||
300 | algo_id == IUS_N11) { | ||
301 | algo_current = algo_group_1; | ||
302 | part_length = 3; | ||
303 | } | ||
304 | if (algo_id == SB_N1) { | ||
305 | algo_current = algo_group_2; | ||
306 | part_length = 2; | ||
307 | } | ||
308 | if (algo_id == SB3_N1 || | ||
309 | algo_id == SB3_32 || | ||
310 | algo_id == SB3_43 || | ||
311 | algo_id == SB3_54) { | ||
312 | algo_current = algo_group_3; | ||
313 | part_length = 2; | ||
314 | } | ||
315 | if (algo_id == BP_N1) { | ||
316 | algo_current = algo_group_4; | ||
317 | part_length = 2; | ||
318 | } | ||
319 | if (algo_id == IP_N1) { | ||
320 | algo_current = algo_group_5; | ||
321 | part_length = 2; | ||
322 | } | ||
323 | if (!algo_current) | ||
324 | goto incorrect_algo_id; | ||
325 | |||
326 | originator = -1; | ||
327 | for (i = 0; i < part_length; i ++ ) { | ||
328 | if (originator >= 0 && !strcmp(clk->name, | ||
329 | algo_current[i])) | ||
330 | originator = i; | ||
331 | ck[i] = clk_get(NULL, algo_current[i]); | ||
332 | values[i] = clk_get_rate(ck[i]); | ||
333 | } | ||
334 | |||
335 | if (originator >= 0) | ||
336 | adjust_clocks(originator, adjust_algos[algo_id], | ||
337 | values, part_length); | ||
338 | |||
339 | for (i = 0; i < part_length; i ++ ) { | ||
340 | struct frqcr_context part_ctx; | ||
341 | int part_div; | ||
342 | |||
343 | if (likely(!err)) { | ||
344 | part_div = sh7722_find_divisors(parent_rate, | ||
345 | rate); | ||
346 | if (part_div > 0) { | ||
347 | part_ctx = sh7722_get_clk_context( | ||
348 | ck[i]->name); | ||
349 | frqcr &= ~(part_ctx.mask << | ||
350 | part_ctx.shift); | ||
351 | frqcr |= part_div << part_ctx.shift; | ||
352 | } else | ||
353 | err = part_div; | ||
354 | } | ||
355 | |||
356 | ck[i]->ops->recalc(ck[i]); | ||
357 | clk_put(ck[i]); | ||
358 | } | ||
359 | } | ||
360 | |||
361 | /* was there any error during recalculation ? If so, bail out.. */ | ||
362 | if (unlikely(err!=0)) | ||
363 | goto out_err; | ||
364 | |||
365 | /* clear FRQCR bits */ | ||
366 | frqcr &= ~(ctx.mask << ctx.shift); | ||
367 | frqcr |= div << ctx.shift; | ||
368 | |||
369 | /* ...and perform actual change */ | ||
370 | ctrl_outl(frqcr, FRQCR); | ||
371 | return 0; | ||
372 | |||
373 | incorrect_algo_id: | ||
374 | return -EINVAL; | ||
375 | out_err: | ||
376 | return err; | ||
377 | } | ||
378 | |||
379 | static struct clk_ops sh7722_frqcr_clk_ops = { | ||
380 | .recalc = sh7722_frqcr_recalc, | ||
381 | .set_rate = sh7722_frqcr_set_rate, | ||
382 | }; | ||
383 | |||
384 | /* | ||
385 | * clock ops methods for SIU A/B and IrDA clock | ||
386 | * | ||
387 | */ | ||
388 | static int sh7722_siu_which(struct clk *clk) | ||
389 | { | ||
390 | if (!strcmp(clk->name, "siu_a_clk")) | ||
391 | return 0; | ||
392 | if (!strcmp(clk->name, "siu_b_clk")) | ||
393 | return 1; | ||
394 | if (!strcmp(clk->name, "irda_clk")) | ||
395 | return 2; | ||
396 | return -EINVAL; | ||
397 | } | ||
398 | |||
399 | static unsigned long sh7722_siu_regs[] = { | ||
400 | [0] = SCLKACR, | ||
401 | [1] = SCLKBCR, | ||
402 | [2] = IrDACLKCR, | ||
403 | }; | ||
404 | |||
405 | static int sh7722_siu_start_stop(struct clk *clk, int enable) | ||
406 | { | ||
407 | int siu = sh7722_siu_which(clk); | ||
408 | unsigned long r; | ||
409 | |||
410 | if (siu < 0) | ||
411 | return siu; | ||
412 | BUG_ON(siu > 2); | ||
413 | r = ctrl_inl(sh7722_siu_regs[siu]); | ||
414 | if (enable) | ||
415 | ctrl_outl(r & ~(1 << 8), sh7722_siu_regs[siu]); | ||
416 | else | ||
417 | ctrl_outl(r | (1 << 8), sh7722_siu_regs[siu]); | ||
418 | return 0; | ||
419 | } | ||
420 | |||
421 | static void sh7722_siu_enable(struct clk *clk) | ||
422 | { | ||
423 | sh7722_siu_start_stop(clk, 1); | ||
424 | } | ||
425 | |||
426 | static void sh7722_siu_disable(struct clk *clk) | ||
427 | { | ||
428 | sh7722_siu_start_stop(clk, 0); | ||
429 | } | ||
430 | |||
431 | static void sh7722_video_enable(struct clk *clk) | ||
432 | { | ||
433 | unsigned long r; | ||
434 | |||
435 | r = ctrl_inl(VCLKCR); | ||
436 | ctrl_outl( r & ~(1<<8), VCLKCR); | ||
437 | } | ||
438 | |||
439 | static void sh7722_video_disable(struct clk *clk) | ||
440 | { | ||
441 | unsigned long r; | ||
442 | |||
443 | r = ctrl_inl(VCLKCR); | ||
444 | ctrl_outl( r | (1<<8), VCLKCR); | ||
445 | } | ||
446 | |||
447 | static int sh7722_video_set_rate(struct clk *clk, unsigned long rate, | ||
448 | int algo_id) | ||
449 | { | ||
450 | unsigned long r; | ||
451 | |||
452 | r = ctrl_inl(VCLKCR); | ||
453 | r &= ~0x3F; | ||
454 | r |= ((clk->parent->rate / rate - 1) & 0x3F); | ||
455 | ctrl_outl(r, VCLKCR); | ||
456 | return 0; | ||
457 | } | ||
458 | |||
459 | static void sh7722_video_recalc(struct clk *clk) | ||
460 | { | ||
461 | unsigned long r; | ||
462 | |||
463 | r = ctrl_inl(VCLKCR); | ||
464 | clk->rate = clk->parent->rate / ((r & 0x3F) + 1); | ||
465 | } | ||
466 | |||
467 | static int sh7722_siu_set_rate(struct clk *clk, unsigned long rate, int algo_id) | ||
468 | { | ||
469 | int siu = sh7722_siu_which(clk); | ||
470 | unsigned long r; | ||
471 | int div; | ||
472 | |||
473 | if (siu < 0) | ||
474 | return siu; | ||
475 | BUG_ON(siu > 2); | ||
476 | r = ctrl_inl(sh7722_siu_regs[siu]); | ||
477 | div = sh7722_find_divisors(clk->parent->rate, rate); | ||
478 | if (div < 0) | ||
479 | return div; | ||
480 | r = (r & ~0xF) | div; | ||
481 | ctrl_outl(r, sh7722_siu_regs[siu]); | ||
482 | return 0; | ||
483 | } | ||
484 | |||
485 | static void sh7722_siu_recalc(struct clk *clk) | ||
486 | { | ||
487 | int siu = sh7722_siu_which(clk); | ||
488 | unsigned long r; | ||
489 | |||
490 | if (siu < 0) | ||
491 | return /* siu */ ; | ||
492 | BUG_ON(siu > 1); | ||
493 | r = ctrl_inl(sh7722_siu_regs[siu]); | ||
494 | clk->rate = clk->parent->rate * 2 / divisors2[r & 0xF]; | ||
495 | } | ||
496 | |||
497 | static struct clk_ops sh7722_siu_clk_ops = { | ||
498 | .recalc = sh7722_siu_recalc, | ||
499 | .set_rate = sh7722_siu_set_rate, | ||
500 | .enable = sh7722_siu_enable, | ||
501 | .disable = sh7722_siu_disable, | ||
502 | }; | ||
503 | |||
504 | static struct clk_ops sh7722_video_clk_ops = { | ||
505 | .recalc = sh7722_video_recalc, | ||
506 | .set_rate = sh7722_video_set_rate, | ||
507 | .enable = sh7722_video_enable, | ||
508 | .disable = sh7722_video_disable, | ||
509 | }; | ||
510 | /* | ||
511 | * and at last, clock definitions themselves | ||
512 | */ | ||
513 | static struct clk sh7722_umem_clock = { | ||
514 | .name = "umem_clk", | ||
515 | .ops = &sh7722_frqcr_clk_ops, | ||
516 | }; | ||
517 | |||
518 | static struct clk sh7722_sh_clock = { | ||
519 | .name = "sh_clk", | ||
520 | .ops = &sh7722_frqcr_clk_ops, | ||
521 | }; | ||
522 | |||
523 | static struct clk sh7722_peripheral_clock = { | ||
524 | .name = "peripheral_clk", | ||
525 | .ops = &sh7722_frqcr_clk_ops, | ||
526 | }; | ||
527 | |||
528 | static struct clk sh7722_sdram_clock = { | ||
529 | .name = "sdram_clk", | ||
530 | .ops = &sh7722_frqcr_clk_ops, | ||
531 | }; | ||
532 | |||
533 | /* | ||
534 | * these three clocks - SIU A, SIU B, IrDA - share the same clk_ops | ||
535 | * methods of clk_ops determine which register they should access by | ||
536 | * examining clk->name field | ||
537 | */ | ||
538 | static struct clk sh7722_siu_a_clock = { | ||
539 | .name = "siu_a_clk", | ||
540 | .ops = &sh7722_siu_clk_ops, | ||
541 | }; | ||
542 | |||
543 | static struct clk sh7722_siu_b_clock = { | ||
544 | .name = "siu_b_clk", | ||
545 | .ops = &sh7722_siu_clk_ops, | ||
546 | }; | ||
547 | |||
548 | static struct clk sh7722_irda_clock = { | ||
549 | .name = "irda_clk", | ||
550 | .ops = &sh7722_siu_clk_ops, | ||
551 | }; | ||
552 | |||
553 | static struct clk sh7722_video_clock = { | ||
554 | .name = "video_clk", | ||
555 | .ops = &sh7722_video_clk_ops, | ||
556 | }; | ||
557 | |||
558 | static struct clk *sh7722_clocks[] = { | ||
559 | &sh7722_umem_clock, | ||
560 | &sh7722_sh_clock, | ||
561 | &sh7722_peripheral_clock, | ||
562 | &sh7722_sdram_clock, | ||
563 | &sh7722_siu_a_clock, | ||
564 | &sh7722_siu_b_clock, | ||
565 | &sh7722_irda_clock, | ||
566 | &sh7722_video_clock, | ||
567 | }; | ||
568 | |||
569 | /* | ||
570 | * init in order: master, module, bus, cpu | ||
571 | */ | ||
572 | struct clk_ops *onchip_ops[] = { | ||
573 | &sh7722_master_clk_ops, | ||
574 | &sh7722_frqcr_clk_ops, | ||
575 | &sh7722_frqcr_clk_ops, | ||
576 | &sh7722_frqcr_clk_ops, | ||
577 | }; | ||
578 | |||
579 | void __init | ||
580 | arch_init_clk_ops(struct clk_ops **ops, int type) | ||
581 | { | ||
582 | BUG_ON(type < 0 || type > ARRAY_SIZE(onchip_ops)); | ||
583 | *ops = onchip_ops[type]; | ||
584 | } | ||
585 | |||
586 | int __init sh7722_clock_init(void) | ||
587 | { | ||
588 | struct clk *master; | ||
589 | int i; | ||
590 | |||
591 | master = clk_get(NULL, "master_clk"); | ||
592 | for (i = 0; i < ARRAY_SIZE(sh7722_clocks); i++) { | ||
593 | pr_debug( "Registering clock '%s'\n", sh7722_clocks[i]->name); | ||
594 | sh7722_clocks[i]->parent = master; | ||
595 | clk_register(sh7722_clocks[i]); | ||
596 | } | ||
597 | clk_put(master); | ||
598 | return 0; | ||
599 | } | ||
600 | arch_initcall(sh7722_clock_init); | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c new file mode 100644 index 000000000000..805535aa505e --- /dev/null +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c | |||
@@ -0,0 +1,162 @@ | |||
1 | /* | ||
2 | * arch/sh/kernel/cpu/sh4a/clock-sh7785.c | ||
3 | * | ||
4 | * SH7785 support for the clock framework | ||
5 | * | ||
6 | * Copyright (C) 2007 Paul Mundt | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <asm/clock.h> | ||
15 | #include <asm/freq.h> | ||
16 | #include <asm/io.h> | ||
17 | |||
18 | static int ifc_divisors[] = { 1, 2, 4, 6 }; | ||
19 | static int ufc_divisors[] = { 1, 1, 4, 6 }; | ||
20 | static int sfc_divisors[] = { 1, 1, 4, 6 }; | ||
21 | static int bfc_divisors[] = { 1, 1, 1, 1, 1, 12, 16, 18, | ||
22 | 24, 32, 36, 48, 1, 1, 1, 1 }; | ||
23 | static int mfc_divisors[] = { 1, 1, 4, 6 }; | ||
24 | static int pfc_divisors[] = { 1, 1, 1, 1, 1, 1, 1, 18, | ||
25 | 24, 32, 36, 48, 1, 1, 1, 1 }; | ||
26 | |||
27 | static void master_clk_init(struct clk *clk) | ||
28 | { | ||
29 | clk->rate *= 36; | ||
30 | } | ||
31 | |||
32 | static struct clk_ops sh7785_master_clk_ops = { | ||
33 | .init = master_clk_init, | ||
34 | }; | ||
35 | |||
36 | static void module_clk_recalc(struct clk *clk) | ||
37 | { | ||
38 | int idx = (ctrl_inl(FRQMR1) & 0x000f); | ||
39 | clk->rate = clk->parent->rate / pfc_divisors[idx]; | ||
40 | } | ||
41 | |||
42 | static struct clk_ops sh7785_module_clk_ops = { | ||
43 | .recalc = module_clk_recalc, | ||
44 | }; | ||
45 | |||
46 | static void bus_clk_recalc(struct clk *clk) | ||
47 | { | ||
48 | int idx = ((ctrl_inl(FRQMR1) >> 16) & 0x000f); | ||
49 | clk->rate = clk->parent->rate / bfc_divisors[idx]; | ||
50 | } | ||
51 | |||
52 | static struct clk_ops sh7785_bus_clk_ops = { | ||
53 | .recalc = bus_clk_recalc, | ||
54 | }; | ||
55 | |||
56 | static void cpu_clk_recalc(struct clk *clk) | ||
57 | { | ||
58 | int idx = ((ctrl_inl(FRQMR1) >> 28) & 0x0003); | ||
59 | clk->rate = clk->parent->rate / ifc_divisors[idx]; | ||
60 | } | ||
61 | |||
62 | static struct clk_ops sh7785_cpu_clk_ops = { | ||
63 | .recalc = cpu_clk_recalc, | ||
64 | }; | ||
65 | |||
66 | static struct clk_ops *sh7785_clk_ops[] = { | ||
67 | &sh7785_master_clk_ops, | ||
68 | &sh7785_module_clk_ops, | ||
69 | &sh7785_bus_clk_ops, | ||
70 | &sh7785_cpu_clk_ops, | ||
71 | }; | ||
72 | |||
73 | void __init arch_init_clk_ops(struct clk_ops **ops, int idx) | ||
74 | { | ||
75 | if (idx < ARRAY_SIZE(sh7785_clk_ops)) | ||
76 | *ops = sh7785_clk_ops[idx]; | ||
77 | } | ||
78 | |||
79 | static void shyway_clk_recalc(struct clk *clk) | ||
80 | { | ||
81 | int idx = ((ctrl_inl(FRQMR1) >> 20) & 0x0003); | ||
82 | clk->rate = clk->parent->rate / sfc_divisors[idx]; | ||
83 | } | ||
84 | |||
85 | static struct clk_ops sh7785_shyway_clk_ops = { | ||
86 | .recalc = shyway_clk_recalc, | ||
87 | }; | ||
88 | |||
89 | static struct clk sh7785_shyway_clk = { | ||
90 | .name = "shyway_clk", | ||
91 | .flags = CLK_ALWAYS_ENABLED, | ||
92 | .ops = &sh7785_shyway_clk_ops, | ||
93 | }; | ||
94 | |||
95 | static void ddr_clk_recalc(struct clk *clk) | ||
96 | { | ||
97 | int idx = ((ctrl_inl(FRQMR1) >> 12) & 0x0003); | ||
98 | clk->rate = clk->parent->rate / mfc_divisors[idx]; | ||
99 | } | ||
100 | |||
101 | static struct clk_ops sh7785_ddr_clk_ops = { | ||
102 | .recalc = ddr_clk_recalc, | ||
103 | }; | ||
104 | |||
105 | static struct clk sh7785_ddr_clk = { | ||
106 | .name = "ddr_clk", | ||
107 | .flags = CLK_ALWAYS_ENABLED, | ||
108 | .ops = &sh7785_ddr_clk_ops, | ||
109 | }; | ||
110 | |||
111 | static void ram_clk_recalc(struct clk *clk) | ||
112 | { | ||
113 | int idx = ((ctrl_inl(FRQMR1) >> 24) & 0x0003); | ||
114 | clk->rate = clk->parent->rate / ufc_divisors[idx]; | ||
115 | } | ||
116 | |||
117 | static struct clk_ops sh7785_ram_clk_ops = { | ||
118 | .recalc = ram_clk_recalc, | ||
119 | }; | ||
120 | |||
121 | static struct clk sh7785_ram_clk = { | ||
122 | .name = "ram_clk", | ||
123 | .flags = CLK_ALWAYS_ENABLED, | ||
124 | .ops = &sh7785_ram_clk_ops, | ||
125 | }; | ||
126 | |||
127 | /* | ||
128 | * Additional SH7785-specific on-chip clocks that aren't already part of the | ||
129 | * clock framework | ||
130 | */ | ||
131 | static struct clk *sh7785_onchip_clocks[] = { | ||
132 | &sh7785_shyway_clk, | ||
133 | &sh7785_ddr_clk, | ||
134 | &sh7785_ram_clk, | ||
135 | }; | ||
136 | |||
137 | static int __init sh7785_clk_init(void) | ||
138 | { | ||
139 | struct clk *clk = clk_get(NULL, "master_clk"); | ||
140 | int i; | ||
141 | |||
142 | for (i = 0; i < ARRAY_SIZE(sh7785_onchip_clocks); i++) { | ||
143 | struct clk *clkp = sh7785_onchip_clocks[i]; | ||
144 | |||
145 | clkp->parent = clk; | ||
146 | clk_register(clkp); | ||
147 | clk_enable(clkp); | ||
148 | } | ||
149 | |||
150 | /* | ||
151 | * Now that we have the rest of the clocks registered, we need to | ||
152 | * force the parent clock to propagate so that these clocks will | ||
153 | * automatically figure out their rate. We cheat by handing the | ||
154 | * parent clock its current rate and forcing child propagation. | ||
155 | */ | ||
156 | clk_set_rate(clk, clk_get_rate(clk)); | ||
157 | |||
158 | clk_put(clk); | ||
159 | |||
160 | return 0; | ||
161 | } | ||
162 | arch_initcall(sh7785_clk_init); | ||
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c new file mode 100644 index 000000000000..07b0de82cfe6 --- /dev/null +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | |||
@@ -0,0 +1,103 @@ | |||
1 | /* | ||
2 | * SH7785 Setup | ||
3 | * | ||
4 | * Copyright (C) 2007 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #include <linux/platform_device.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/serial.h> | ||
13 | #include <asm/sci.h> | ||
14 | |||
15 | static struct plat_sci_port sci_platform_data[] = { | ||
16 | { | ||
17 | .mapbase = 0xffea0000, | ||
18 | .flags = UPF_BOOT_AUTOCONF, | ||
19 | .type = PORT_SCIF, | ||
20 | .irqs = { 40, 41, 43, 42 }, | ||
21 | }, { | ||
22 | .mapbase = 0xffeb0000, | ||
23 | .flags = UPF_BOOT_AUTOCONF, | ||
24 | .type = PORT_SCIF, | ||
25 | .irqs = { 44, 45, 47, 46 }, | ||
26 | }, | ||
27 | |||
28 | /* | ||
29 | * The rest of these all have multiplexed IRQs | ||
30 | */ | ||
31 | { | ||
32 | .mapbase = 0xffec0000, | ||
33 | .flags = UPF_BOOT_AUTOCONF, | ||
34 | .type = PORT_SCIF, | ||
35 | .irqs = { 60, 60, 60, 60 }, | ||
36 | }, { | ||
37 | .mapbase = 0xffed0000, | ||
38 | .flags = UPF_BOOT_AUTOCONF, | ||
39 | .type = PORT_SCIF, | ||
40 | .irqs = { 61, 61, 61, 61 }, | ||
41 | }, { | ||
42 | .mapbase = 0xffee0000, | ||
43 | .flags = UPF_BOOT_AUTOCONF, | ||
44 | .type = PORT_SCIF, | ||
45 | .irqs = { 62, 62, 62, 62 }, | ||
46 | }, { | ||
47 | .mapbase = 0xffef0000, | ||
48 | .flags = UPF_BOOT_AUTOCONF, | ||
49 | .type = PORT_SCIF, | ||
50 | .irqs = { 63, 63, 63, 63 }, | ||
51 | }, { | ||
52 | .flags = 0, | ||
53 | } | ||
54 | }; | ||
55 | |||
56 | static struct platform_device sci_device = { | ||
57 | .name = "sh-sci", | ||
58 | .id = -1, | ||
59 | .dev = { | ||
60 | .platform_data = sci_platform_data, | ||
61 | }, | ||
62 | }; | ||
63 | |||
64 | static struct platform_device *sh7785_devices[] __initdata = { | ||
65 | &sci_device, | ||
66 | }; | ||
67 | |||
68 | static int __init sh7785_devices_setup(void) | ||
69 | { | ||
70 | return platform_add_devices(sh7785_devices, | ||
71 | ARRAY_SIZE(sh7785_devices)); | ||
72 | } | ||
73 | __initcall(sh7785_devices_setup); | ||
74 | |||
75 | static struct intc2_data intc2_irq_table[] = { | ||
76 | { 28, 0, 24, 0, 0, 2 }, /* TMU0 */ | ||
77 | |||
78 | { 40, 8, 24, 0, 2, 3 }, /* SCIF0 ERI */ | ||
79 | { 41, 8, 24, 0, 2, 3 }, /* SCIF0 RXI */ | ||
80 | { 42, 8, 24, 0, 2, 3 }, /* SCIF0 BRI */ | ||
81 | { 43, 8, 24, 0, 2, 3 }, /* SCIF0 TXI */ | ||
82 | |||
83 | { 44, 8, 16, 0, 3, 3 }, /* SCIF1 ERI */ | ||
84 | { 45, 8, 16, 0, 3, 3 }, /* SCIF1 RXI */ | ||
85 | { 46, 8, 16, 0, 3, 3 }, /* SCIF1 BRI */ | ||
86 | { 47, 8, 16, 0, 3, 3 }, /* SCIF1 TXI */ | ||
87 | |||
88 | { 64, 0x14, 8, 0, 14, 2 }, /* PCIC0 */ | ||
89 | { 65, 0x14, 0, 0, 15, 2 }, /* PCIC1 */ | ||
90 | { 66, 0x18, 24, 0, 16, 2 }, /* PCIC2 */ | ||
91 | { 67, 0x18, 16, 0, 17, 2 }, /* PCIC3 */ | ||
92 | { 68, 0x18, 8, 0, 18, 2 }, /* PCIC4 */ | ||
93 | |||
94 | { 60, 8, 8, 0, 4, 3 }, /* SCIF2 ERI, RXI, BRI, TXI */ | ||
95 | { 60, 8, 0, 0, 5, 3 }, /* SCIF3 ERI, RXI, BRI, TXI */ | ||
96 | { 60, 12, 24, 0, 6, 3 }, /* SCIF4 ERI, RXI, BRI, TXI */ | ||
97 | { 60, 12, 16, 0, 7, 3 }, /* SCIF5 ERI, RXI, BRI, TXI */ | ||
98 | }; | ||
99 | |||
100 | void __init init_IRQ_intc2(void) | ||
101 | { | ||
102 | make_intc2_irq(intc2_irq_table, ARRAY_SIZE(intc2_irq_table)); | ||
103 | } | ||
diff --git a/arch/sh/kernel/crash_dump.c b/arch/sh/kernel/crash_dump.c new file mode 100644 index 000000000000..4a2ecbe27d8e --- /dev/null +++ b/arch/sh/kernel/crash_dump.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * crash_dump.c - Memory preserving reboot related code. | ||
3 | * | ||
4 | * Created by: Hariprasad Nellitheertha (hari@in.ibm.com) | ||
5 | * Copyright (C) IBM Corporation, 2004. All rights reserved | ||
6 | */ | ||
7 | |||
8 | #include <linux/errno.h> | ||
9 | #include <linux/crash_dump.h> | ||
10 | #include <linux/io.h> | ||
11 | #include <asm/uaccess.h> | ||
12 | |||
13 | /** | ||
14 | * copy_oldmem_page - copy one page from "oldmem" | ||
15 | * @pfn: page frame number to be copied | ||
16 | * @buf: target memory address for the copy; this can be in kernel address | ||
17 | * space or user address space (see @userbuf) | ||
18 | * @csize: number of bytes to copy | ||
19 | * @offset: offset in bytes into the page (based on pfn) to begin the copy | ||
20 | * @userbuf: if set, @buf is in user address space, use copy_to_user(), | ||
21 | * otherwise @buf is in kernel address space, use memcpy(). | ||
22 | * | ||
23 | * Copy a page from "oldmem". For this page, there is no pte mapped | ||
24 | * in the current kernel. We stitch up a pte, similar to kmap_atomic. | ||
25 | */ | ||
26 | ssize_t copy_oldmem_page(unsigned long pfn, char *buf, | ||
27 | size_t csize, unsigned long offset, int userbuf) | ||
28 | { | ||
29 | void *vaddr; | ||
30 | |||
31 | if (!csize) | ||
32 | return 0; | ||
33 | |||
34 | vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); | ||
35 | |||
36 | if (userbuf) { | ||
37 | if (copy_to_user(buf, (vaddr + offset), csize)) { | ||
38 | iounmap(vaddr); | ||
39 | return -EFAULT; | ||
40 | } | ||
41 | } else | ||
42 | memcpy(buf, (vaddr + offset), csize); | ||
43 | |||
44 | iounmap(vaddr); | ||
45 | return csize; | ||
46 | } | ||
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 9bdd8a00cd4a..27b923c45b3d 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/seq_file.h> | 13 | #include <linux/seq_file.h> |
14 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
15 | #include <asm/processor.h> | 15 | #include <asm/processor.h> |
16 | #include <asm/machvec.h> | ||
16 | #include <asm/uaccess.h> | 17 | #include <asm/uaccess.h> |
17 | #include <asm/thread_info.h> | 18 | #include <asm/thread_info.h> |
18 | #include <asm/cpu/mmu_context.h> | 19 | #include <asm/cpu/mmu_context.h> |
@@ -44,7 +45,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
44 | seq_putc(p, '\n'); | 45 | seq_putc(p, '\n'); |
45 | } | 46 | } |
46 | 47 | ||
47 | if (i < NR_IRQS) { | 48 | if (i < sh_mv.mv_nr_irqs) { |
48 | spin_lock_irqsave(&irq_desc[i].lock, flags); | 49 | spin_lock_irqsave(&irq_desc[i].lock, flags); |
49 | action = irq_desc[i].action; | 50 | action = irq_desc[i].action; |
50 | if (!action) | 51 | if (!action) |
@@ -61,7 +62,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
61 | seq_putc(p, '\n'); | 62 | seq_putc(p, '\n'); |
62 | unlock: | 63 | unlock: |
63 | spin_unlock_irqrestore(&irq_desc[i].lock, flags); | 64 | spin_unlock_irqrestore(&irq_desc[i].lock, flags); |
64 | } else if (i == NR_IRQS) | 65 | } else if (i == sh_mv.mv_nr_irqs) |
65 | seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); | 66 | seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); |
66 | 67 | ||
67 | return 0; | 68 | return 0; |
diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c index d8927d85492e..a5323364cbca 100644 --- a/arch/sh/kernel/kgdb_stub.c +++ b/arch/sh/kernel/kgdb_stub.c | |||
@@ -6,11 +6,11 @@ | |||
6 | * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>, | 6 | * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>, |
7 | * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>, | 7 | * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>, |
8 | * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>. | 8 | * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>. |
9 | * | 9 | * |
10 | * This version by Henry Bell <henry.bell@st.com> | 10 | * This version by Henry Bell <henry.bell@st.com> |
11 | * Minor modifications by Jeremy Siegel <jsiegel@mvista.com> | 11 | * Minor modifications by Jeremy Siegel <jsiegel@mvista.com> |
12 | * | 12 | * |
13 | * Contains low-level support for remote debug using GDB. | 13 | * Contains low-level support for remote debug using GDB. |
14 | * | 14 | * |
15 | * To enable debugger support, two things need to happen. A call to | 15 | * To enable debugger support, two things need to happen. A call to |
16 | * set_debug_traps() is necessary in order to allow any breakpoints | 16 | * set_debug_traps() is necessary in order to allow any breakpoints |
@@ -48,7 +48,7 @@ | |||
48 | * k kill (Detach GDB) | 48 | * k kill (Detach GDB) |
49 | * | 49 | * |
50 | * d Toggle debug flag | 50 | * d Toggle debug flag |
51 | * D Detach GDB | 51 | * D Detach GDB |
52 | * | 52 | * |
53 | * Hct Set thread t for operations, OK or ENN | 53 | * Hct Set thread t for operations, OK or ENN |
54 | * c = 'c' (step, cont), c = 'g' (other | 54 | * c = 'c' (step, cont), c = 'g' (other |
@@ -58,7 +58,7 @@ | |||
58 | * qfThreadInfo Get list of current threads (first) m<id> | 58 | * qfThreadInfo Get list of current threads (first) m<id> |
59 | * qsThreadInfo " " " " " (subsequent) | 59 | * qsThreadInfo " " " " " (subsequent) |
60 | * qOffsets Get section offsets Text=x;Data=y;Bss=z | 60 | * qOffsets Get section offsets Text=x;Data=y;Bss=z |
61 | * | 61 | * |
62 | * TXX Find if thread XX is alive OK or ENN | 62 | * TXX Find if thread XX is alive OK or ENN |
63 | * ? What was the last sigval ? SNN (signal NN) | 63 | * ? What was the last sigval ? SNN (signal NN) |
64 | * O Output to GDB console | 64 | * O Output to GDB console |
@@ -74,7 +74,7 @@ | |||
74 | * '$' or '#'. If <data> starts with two characters followed by | 74 | * '$' or '#'. If <data> starts with two characters followed by |
75 | * ':', then the existing stubs interpret this as a sequence number. | 75 | * ':', then the existing stubs interpret this as a sequence number. |
76 | * | 76 | * |
77 | * CSUM1 and CSUM2 are ascii hex representation of an 8-bit | 77 | * CSUM1 and CSUM2 are ascii hex representation of an 8-bit |
78 | * checksum of <data>, the most significant nibble is sent first. | 78 | * checksum of <data>, the most significant nibble is sent first. |
79 | * the hex digits 0-9,a-f are used. | 79 | * the hex digits 0-9,a-f are used. |
80 | * | 80 | * |
@@ -86,8 +86,8 @@ | |||
86 | * Responses can be run-length encoded to save space. A '*' means that | 86 | * Responses can be run-length encoded to save space. A '*' means that |
87 | * the next character is an ASCII encoding giving a repeat count which | 87 | * the next character is an ASCII encoding giving a repeat count which |
88 | * stands for that many repititions of the character preceding the '*'. | 88 | * stands for that many repititions of the character preceding the '*'. |
89 | * The encoding is n+29, yielding a printable character where n >=3 | 89 | * The encoding is n+29, yielding a printable character where n >=3 |
90 | * (which is where RLE starts to win). Don't use an n > 126. | 90 | * (which is where RLE starts to win). Don't use an n > 126. |
91 | * | 91 | * |
92 | * So "0* " means the same as "0000". | 92 | * So "0* " means the same as "0000". |
93 | */ | 93 | */ |
@@ -100,12 +100,10 @@ | |||
100 | #include <linux/delay.h> | 100 | #include <linux/delay.h> |
101 | #include <linux/linkage.h> | 101 | #include <linux/linkage.h> |
102 | #include <linux/init.h> | 102 | #include <linux/init.h> |
103 | |||
104 | #ifdef CONFIG_SH_KGDB_CONSOLE | ||
105 | #include <linux/console.h> | 103 | #include <linux/console.h> |
106 | #endif | 104 | #include <linux/sysrq.h> |
107 | |||
108 | #include <asm/system.h> | 105 | #include <asm/system.h> |
106 | #include <asm/cacheflush.h> | ||
109 | #include <asm/current.h> | 107 | #include <asm/current.h> |
110 | #include <asm/signal.h> | 108 | #include <asm/signal.h> |
111 | #include <asm/pgtable.h> | 109 | #include <asm/pgtable.h> |
@@ -153,7 +151,6 @@ char kgdb_in_gdb_mode; | |||
153 | char in_nmi; /* Set during NMI to prevent reentry */ | 151 | char in_nmi; /* Set during NMI to prevent reentry */ |
154 | int kgdb_nofault; /* Boolean to ignore bus errs (i.e. in GDB) */ | 152 | int kgdb_nofault; /* Boolean to ignore bus errs (i.e. in GDB) */ |
155 | int kgdb_enabled = 1; /* Default to enabled, cmdline can disable */ | 153 | int kgdb_enabled = 1; /* Default to enabled, cmdline can disable */ |
156 | int kgdb_halt; | ||
157 | 154 | ||
158 | /* Exposed for user access */ | 155 | /* Exposed for user access */ |
159 | struct task_struct *kgdb_current; | 156 | struct task_struct *kgdb_current; |
@@ -246,14 +243,6 @@ static char out_buffer[OUTBUFMAX]; | |||
246 | 243 | ||
247 | static void kgdb_to_gdb(const char *s); | 244 | static void kgdb_to_gdb(const char *s); |
248 | 245 | ||
249 | #ifdef CONFIG_KGDB_THREAD | ||
250 | static struct task_struct *trapped_thread; | ||
251 | static struct task_struct *current_thread; | ||
252 | typedef unsigned char threadref[8]; | ||
253 | #define BUF_THREAD_ID_SIZE 16 | ||
254 | #endif | ||
255 | |||
256 | |||
257 | /* Convert ch to hex */ | 246 | /* Convert ch to hex */ |
258 | static int hex(const char ch) | 247 | static int hex(const char ch) |
259 | { | 248 | { |
@@ -328,7 +317,7 @@ static int hex_to_int(char **ptr, int *int_value) | |||
328 | } | 317 | } |
329 | 318 | ||
330 | /* Copy the binary array pointed to by buf into mem. Fix $, #, | 319 | /* Copy the binary array pointed to by buf into mem. Fix $, #, |
331 | and 0x7d escaped with 0x7d. Return a pointer to the character | 320 | and 0x7d escaped with 0x7d. Return a pointer to the character |
332 | after the last byte written. */ | 321 | after the last byte written. */ |
333 | static char *ebin_to_mem(const char *buf, char *mem, int count) | 322 | static char *ebin_to_mem(const char *buf, char *mem, int count) |
334 | { | 323 | { |
@@ -349,66 +338,6 @@ static char *pack_hex_byte(char *pkt, int byte) | |||
349 | return pkt; | 338 | return pkt; |
350 | } | 339 | } |
351 | 340 | ||
352 | #ifdef CONFIG_KGDB_THREAD | ||
353 | |||
354 | /* Pack a thread ID */ | ||
355 | static char *pack_threadid(char *pkt, threadref * id) | ||
356 | { | ||
357 | char *limit; | ||
358 | unsigned char *altid; | ||
359 | |||
360 | altid = (unsigned char *) id; | ||
361 | |||
362 | limit = pkt + BUF_THREAD_ID_SIZE; | ||
363 | while (pkt < limit) | ||
364 | pkt = pack_hex_byte(pkt, *altid++); | ||
365 | return pkt; | ||
366 | } | ||
367 | |||
368 | /* Convert an integer into our threadref */ | ||
369 | static void int_to_threadref(threadref * id, const int value) | ||
370 | { | ||
371 | unsigned char *scan = (unsigned char *) id; | ||
372 | int i = 4; | ||
373 | |||
374 | while (i--) | ||
375 | *scan++ = 0; | ||
376 | |||
377 | *scan++ = (value >> 24) & 0xff; | ||
378 | *scan++ = (value >> 16) & 0xff; | ||
379 | *scan++ = (value >> 8) & 0xff; | ||
380 | *scan++ = (value & 0xff); | ||
381 | } | ||
382 | |||
383 | /* Return a task structure ptr for a particular pid */ | ||
384 | static struct task_struct *get_thread(int pid) | ||
385 | { | ||
386 | struct task_struct *thread; | ||
387 | |||
388 | /* Use PID_MAX w/gdb for pid 0 */ | ||
389 | if (pid == PID_MAX) pid = 0; | ||
390 | |||
391 | /* First check via PID */ | ||
392 | thread = find_task_by_pid(pid); | ||
393 | |||
394 | if (thread) | ||
395 | return thread; | ||
396 | |||
397 | /* Start at the start */ | ||
398 | thread = init_tasks[0]; | ||
399 | |||
400 | /* Walk along the linked list of tasks */ | ||
401 | do { | ||
402 | if (thread->pid == pid) | ||
403 | return thread; | ||
404 | thread = thread->next_task; | ||
405 | } while (thread != init_tasks[0]); | ||
406 | |||
407 | return NULL; | ||
408 | } | ||
409 | |||
410 | #endif /* CONFIG_KGDB_THREAD */ | ||
411 | |||
412 | /* Scan for the start char '$', read the packet and check the checksum */ | 341 | /* Scan for the start char '$', read the packet and check the checksum */ |
413 | static void get_packet(char *buffer, int buflen) | 342 | static void get_packet(char *buffer, int buflen) |
414 | { | 343 | { |
@@ -452,7 +381,7 @@ static void get_packet(char *buffer, int buflen) | |||
452 | /* Ack successful transfer */ | 381 | /* Ack successful transfer */ |
453 | put_debug_char('+'); | 382 | put_debug_char('+'); |
454 | 383 | ||
455 | /* If a sequence char is present, reply | 384 | /* If a sequence char is present, reply |
456 | the sequence ID */ | 385 | the sequence ID */ |
457 | if (buffer[2] == ':') { | 386 | if (buffer[2] == ':') { |
458 | put_debug_char(buffer[0]); | 387 | put_debug_char(buffer[0]); |
@@ -611,74 +540,6 @@ static void gdb_regs_to_kgdb_regs(const int *gdb_regs, | |||
611 | regs->vbr = gdb_regs[VBR]; | 540 | regs->vbr = gdb_regs[VBR]; |
612 | } | 541 | } |
613 | 542 | ||
614 | #ifdef CONFIG_KGDB_THREAD | ||
615 | /* Make a local copy of registers from the specified thread */ | ||
616 | asmlinkage void ret_from_fork(void); | ||
617 | static void thread_regs_to_gdb_regs(const struct task_struct *thread, | ||
618 | int *gdb_regs) | ||
619 | { | ||
620 | int regno; | ||
621 | int *tregs; | ||
622 | |||
623 | /* Initialize to zero */ | ||
624 | for (regno = 0; regno < MAXREG; regno++) | ||
625 | gdb_regs[regno] = 0; | ||
626 | |||
627 | /* Just making sure... */ | ||
628 | if (thread == NULL) | ||
629 | return; | ||
630 | |||
631 | /* A new fork has pt_regs on the stack from a fork() call */ | ||
632 | if (thread->thread.pc == (unsigned long)ret_from_fork) { | ||
633 | |||
634 | int vbr_val; | ||
635 | struct pt_regs *kregs; | ||
636 | kregs = (struct pt_regs*)thread->thread.sp; | ||
637 | |||
638 | gdb_regs[R0] = kregs->regs[R0]; | ||
639 | gdb_regs[R1] = kregs->regs[R1]; | ||
640 | gdb_regs[R2] = kregs->regs[R2]; | ||
641 | gdb_regs[R3] = kregs->regs[R3]; | ||
642 | gdb_regs[R4] = kregs->regs[R4]; | ||
643 | gdb_regs[R5] = kregs->regs[R5]; | ||
644 | gdb_regs[R6] = kregs->regs[R6]; | ||
645 | gdb_regs[R7] = kregs->regs[R7]; | ||
646 | gdb_regs[R8] = kregs->regs[R8]; | ||
647 | gdb_regs[R9] = kregs->regs[R9]; | ||
648 | gdb_regs[R10] = kregs->regs[R10]; | ||
649 | gdb_regs[R11] = kregs->regs[R11]; | ||
650 | gdb_regs[R12] = kregs->regs[R12]; | ||
651 | gdb_regs[R13] = kregs->regs[R13]; | ||
652 | gdb_regs[R14] = kregs->regs[R14]; | ||
653 | gdb_regs[R15] = kregs->regs[R15]; | ||
654 | gdb_regs[PC] = kregs->pc; | ||
655 | gdb_regs[PR] = kregs->pr; | ||
656 | gdb_regs[GBR] = kregs->gbr; | ||
657 | gdb_regs[MACH] = kregs->mach; | ||
658 | gdb_regs[MACL] = kregs->macl; | ||
659 | gdb_regs[SR] = kregs->sr; | ||
660 | |||
661 | asm("stc vbr, %0":"=r"(vbr_val)); | ||
662 | gdb_regs[VBR] = vbr_val; | ||
663 | return; | ||
664 | } | ||
665 | |||
666 | /* Otherwise, we have only some registers from switch_to() */ | ||
667 | tregs = (int *)thread->thread.sp; | ||
668 | gdb_regs[R15] = (int)tregs; | ||
669 | gdb_regs[R14] = *tregs++; | ||
670 | gdb_regs[R13] = *tregs++; | ||
671 | gdb_regs[R12] = *tregs++; | ||
672 | gdb_regs[R11] = *tregs++; | ||
673 | gdb_regs[R10] = *tregs++; | ||
674 | gdb_regs[R9] = *tregs++; | ||
675 | gdb_regs[R8] = *tregs++; | ||
676 | gdb_regs[PR] = *tregs++; | ||
677 | gdb_regs[GBR] = *tregs++; | ||
678 | gdb_regs[PC] = thread->thread.pc; | ||
679 | } | ||
680 | #endif /* CONFIG_KGDB_THREAD */ | ||
681 | |||
682 | /* Calculate the new address for after a step */ | 543 | /* Calculate the new address for after a step */ |
683 | static short *get_step_address(void) | 544 | static short *get_step_address(void) |
684 | { | 545 | { |
@@ -759,7 +620,7 @@ static short *get_step_address(void) | |||
759 | return (short *) addr; | 620 | return (short *) addr; |
760 | } | 621 | } |
761 | 622 | ||
762 | /* Set up a single-step. Replace the instruction immediately after the | 623 | /* Set up a single-step. Replace the instruction immediately after the |
763 | current instruction (i.e. next in the expected flow of control) with a | 624 | current instruction (i.e. next in the expected flow of control) with a |
764 | trap instruction, so that returning will cause only a single instruction | 625 | trap instruction, so that returning will cause only a single instruction |
765 | to be executed. Note that this model is slightly broken for instructions | 626 | to be executed. Note that this model is slightly broken for instructions |
@@ -797,37 +658,11 @@ static void undo_single_step(void) | |||
797 | /* Send a signal message */ | 658 | /* Send a signal message */ |
798 | static void send_signal_msg(const int signum) | 659 | static void send_signal_msg(const int signum) |
799 | { | 660 | { |
800 | #ifndef CONFIG_KGDB_THREAD | ||
801 | out_buffer[0] = 'S'; | 661 | out_buffer[0] = 'S'; |
802 | out_buffer[1] = highhex(signum); | 662 | out_buffer[1] = highhex(signum); |
803 | out_buffer[2] = lowhex(signum); | 663 | out_buffer[2] = lowhex(signum); |
804 | out_buffer[3] = 0; | 664 | out_buffer[3] = 0; |
805 | put_packet(out_buffer); | 665 | put_packet(out_buffer); |
806 | #else /* CONFIG_KGDB_THREAD */ | ||
807 | int threadid; | ||
808 | threadref thref; | ||
809 | char *out = out_buffer; | ||
810 | const char *tstring = "thread"; | ||
811 | |||
812 | *out++ = 'T'; | ||
813 | *out++ = highhex(signum); | ||
814 | *out++ = lowhex(signum); | ||
815 | |||
816 | while (*tstring) { | ||
817 | *out++ = *tstring++; | ||
818 | } | ||
819 | *out++ = ':'; | ||
820 | |||
821 | threadid = trapped_thread->pid; | ||
822 | if (threadid == 0) threadid = PID_MAX; | ||
823 | int_to_threadref(&thref, threadid); | ||
824 | pack_threadid(out, &thref); | ||
825 | out += BUF_THREAD_ID_SIZE; | ||
826 | *out++ = ';'; | ||
827 | |||
828 | *out = 0; | ||
829 | put_packet(out_buffer); | ||
830 | #endif /* CONFIG_KGDB_THREAD */ | ||
831 | } | 666 | } |
832 | 667 | ||
833 | /* Reply that all was well */ | 668 | /* Reply that all was well */ |
@@ -962,15 +797,7 @@ static void step_with_sig_msg(void) | |||
962 | /* Send register contents */ | 797 | /* Send register contents */ |
963 | static void send_regs_msg(void) | 798 | static void send_regs_msg(void) |
964 | { | 799 | { |
965 | #ifdef CONFIG_KGDB_THREAD | ||
966 | if (!current_thread) | ||
967 | kgdb_regs_to_gdb_regs(&trap_registers, registers); | ||
968 | else | ||
969 | thread_regs_to_gdb_regs(current_thread, registers); | ||
970 | #else | ||
971 | kgdb_regs_to_gdb_regs(&trap_registers, registers); | 800 | kgdb_regs_to_gdb_regs(&trap_registers, registers); |
972 | #endif | ||
973 | |||
974 | mem_to_hex((char *) registers, out_buffer, NUMREGBYTES); | 801 | mem_to_hex((char *) registers, out_buffer, NUMREGBYTES); |
975 | put_packet(out_buffer); | 802 | put_packet(out_buffer); |
976 | } | 803 | } |
@@ -978,201 +805,13 @@ static void send_regs_msg(void) | |||
978 | /* Set register contents - currently can't set other thread's registers */ | 805 | /* Set register contents - currently can't set other thread's registers */ |
979 | static void set_regs_msg(void) | 806 | static void set_regs_msg(void) |
980 | { | 807 | { |
981 | #ifdef CONFIG_KGDB_THREAD | 808 | kgdb_regs_to_gdb_regs(&trap_registers, registers); |
982 | if (!current_thread) { | 809 | hex_to_mem(&in_buffer[1], (char *) registers, NUMREGBYTES); |
983 | #endif | 810 | gdb_regs_to_kgdb_regs(registers, &trap_registers); |
984 | kgdb_regs_to_gdb_regs(&trap_registers, registers); | 811 | send_ok_msg(); |
985 | hex_to_mem(&in_buffer[1], (char *) registers, NUMREGBYTES); | ||
986 | gdb_regs_to_kgdb_regs(registers, &trap_registers); | ||
987 | send_ok_msg(); | ||
988 | #ifdef CONFIG_KGDB_THREAD | ||
989 | } else | ||
990 | send_err_msg(); | ||
991 | #endif | ||
992 | } | ||
993 | |||
994 | |||
995 | #ifdef CONFIG_KGDB_THREAD | ||
996 | |||
997 | /* Set the status for a thread */ | ||
998 | void set_thread_msg(void) | ||
999 | { | ||
1000 | int threadid; | ||
1001 | struct task_struct *thread = NULL; | ||
1002 | char *ptr; | ||
1003 | |||
1004 | switch (in_buffer[1]) { | ||
1005 | |||
1006 | /* To select which thread for gG etc messages, i.e. supported */ | ||
1007 | case 'g': | ||
1008 | |||
1009 | ptr = &in_buffer[2]; | ||
1010 | hex_to_int(&ptr, &threadid); | ||
1011 | thread = get_thread(threadid); | ||
1012 | |||
1013 | /* If we haven't found it */ | ||
1014 | if (!thread) { | ||
1015 | send_err_msg(); | ||
1016 | break; | ||
1017 | } | ||
1018 | |||
1019 | /* Set current_thread (or not) */ | ||
1020 | if (thread == trapped_thread) | ||
1021 | current_thread = NULL; | ||
1022 | else | ||
1023 | current_thread = thread; | ||
1024 | send_ok_msg(); | ||
1025 | break; | ||
1026 | |||
1027 | /* To select which thread for cCsS messages, i.e. unsupported */ | ||
1028 | case 'c': | ||
1029 | send_ok_msg(); | ||
1030 | break; | ||
1031 | |||
1032 | default: | ||
1033 | send_empty_msg(); | ||
1034 | break; | ||
1035 | } | ||
1036 | } | ||
1037 | |||
1038 | /* Is a thread alive? */ | ||
1039 | static void thread_status_msg(void) | ||
1040 | { | ||
1041 | char *ptr; | ||
1042 | int threadid; | ||
1043 | struct task_struct *thread = NULL; | ||
1044 | |||
1045 | ptr = &in_buffer[1]; | ||
1046 | hex_to_int(&ptr, &threadid); | ||
1047 | thread = get_thread(threadid); | ||
1048 | if (thread) | ||
1049 | send_ok_msg(); | ||
1050 | else | ||
1051 | send_err_msg(); | ||
1052 | } | ||
1053 | /* Send the current thread ID */ | ||
1054 | static void thread_id_msg(void) | ||
1055 | { | ||
1056 | int threadid; | ||
1057 | threadref thref; | ||
1058 | |||
1059 | out_buffer[0] = 'Q'; | ||
1060 | out_buffer[1] = 'C'; | ||
1061 | |||
1062 | if (current_thread) | ||
1063 | threadid = current_thread->pid; | ||
1064 | else if (trapped_thread) | ||
1065 | threadid = trapped_thread->pid; | ||
1066 | else /* Impossible, but just in case! */ | ||
1067 | { | ||
1068 | send_err_msg(); | ||
1069 | return; | ||
1070 | } | ||
1071 | |||
1072 | /* Translate pid 0 to PID_MAX for gdb */ | ||
1073 | if (threadid == 0) threadid = PID_MAX; | ||
1074 | |||
1075 | int_to_threadref(&thref, threadid); | ||
1076 | pack_threadid(out_buffer + 2, &thref); | ||
1077 | out_buffer[2 + BUF_THREAD_ID_SIZE] = '\0'; | ||
1078 | put_packet(out_buffer); | ||
1079 | } | ||
1080 | |||
1081 | /* Send thread info */ | ||
1082 | static void thread_info_msg(void) | ||
1083 | { | ||
1084 | struct task_struct *thread = NULL; | ||
1085 | int threadid; | ||
1086 | char *pos; | ||
1087 | threadref thref; | ||
1088 | |||
1089 | /* Start with 'm' */ | ||
1090 | out_buffer[0] = 'm'; | ||
1091 | pos = &out_buffer[1]; | ||
1092 | |||
1093 | /* For all possible thread IDs - this will overrun if > 44 threads! */ | ||
1094 | /* Start at 1 and include PID_MAX (since GDB won't use pid 0...) */ | ||
1095 | for (threadid = 1; threadid <= PID_MAX; threadid++) { | ||
1096 | |||
1097 | read_lock(&tasklist_lock); | ||
1098 | thread = get_thread(threadid); | ||
1099 | read_unlock(&tasklist_lock); | ||
1100 | |||
1101 | /* If it's a valid thread */ | ||
1102 | if (thread) { | ||
1103 | int_to_threadref(&thref, threadid); | ||
1104 | pack_threadid(pos, &thref); | ||
1105 | pos += BUF_THREAD_ID_SIZE; | ||
1106 | *pos++ = ','; | ||
1107 | } | ||
1108 | } | ||
1109 | *--pos = 0; /* Lose final comma */ | ||
1110 | put_packet(out_buffer); | ||
1111 | |||
1112 | } | ||
1113 | |||
1114 | /* Return printable info for gdb's 'info threads' command */ | ||
1115 | static void thread_extra_info_msg(void) | ||
1116 | { | ||
1117 | int threadid; | ||
1118 | struct task_struct *thread = NULL; | ||
1119 | char buffer[20], *ptr; | ||
1120 | int i; | ||
1121 | |||
1122 | /* Extract thread ID */ | ||
1123 | ptr = &in_buffer[17]; | ||
1124 | hex_to_int(&ptr, &threadid); | ||
1125 | thread = get_thread(threadid); | ||
1126 | |||
1127 | /* If we don't recognise it, say so */ | ||
1128 | if (thread == NULL) | ||
1129 | strcpy(buffer, "(unknown)"); | ||
1130 | else | ||
1131 | strcpy(buffer, thread->comm); | ||
1132 | |||
1133 | /* Construct packet */ | ||
1134 | for (i = 0, ptr = out_buffer; buffer[i]; i++) | ||
1135 | ptr = pack_hex_byte(ptr, buffer[i]); | ||
1136 | |||
1137 | if (thread->thread.pc == (unsigned long)ret_from_fork) { | ||
1138 | strcpy(buffer, "<new fork>"); | ||
1139 | for (i = 0; buffer[i]; i++) | ||
1140 | ptr = pack_hex_byte(ptr, buffer[i]); | ||
1141 | } | ||
1142 | |||
1143 | *ptr = '\0'; | ||
1144 | put_packet(out_buffer); | ||
1145 | } | ||
1146 | |||
1147 | /* Handle all qFooBarBaz messages - have to use an if statement as | ||
1148 | opposed to a switch because q messages can have > 1 char id. */ | ||
1149 | static void query_msg(void) | ||
1150 | { | ||
1151 | const char *q_start = &in_buffer[1]; | ||
1152 | |||
1153 | /* qC = return current thread ID */ | ||
1154 | if (strncmp(q_start, "C", 1) == 0) | ||
1155 | thread_id_msg(); | ||
1156 | |||
1157 | /* qfThreadInfo = query all threads (first) */ | ||
1158 | else if (strncmp(q_start, "fThreadInfo", 11) == 0) | ||
1159 | thread_info_msg(); | ||
1160 | |||
1161 | /* qsThreadInfo = query all threads (subsequent). We know we have sent | ||
1162 | them all after the qfThreadInfo message, so there are no to send */ | ||
1163 | else if (strncmp(q_start, "sThreadInfo", 11) == 0) | ||
1164 | put_packet("l"); /* el = last */ | ||
1165 | |||
1166 | /* qThreadExtraInfo = supply printable information per thread */ | ||
1167 | else if (strncmp(q_start, "ThreadExtraInfo", 15) == 0) | ||
1168 | thread_extra_info_msg(); | ||
1169 | |||
1170 | /* Unsupported - empty message as per spec */ | ||
1171 | else | ||
1172 | send_empty_msg(); | ||
1173 | } | 812 | } |
1174 | #endif /* CONFIG_KGDB_THREAD */ | ||
1175 | 813 | ||
814 | #ifdef CONFIG_SH_KGDB_CONSOLE | ||
1176 | /* | 815 | /* |
1177 | * Bring up the ports.. | 816 | * Bring up the ports.. |
1178 | */ | 817 | */ |
@@ -1185,6 +824,9 @@ static int kgdb_serial_setup(void) | |||
1185 | 824 | ||
1186 | return 0; | 825 | return 0; |
1187 | } | 826 | } |
827 | #else | ||
828 | #define kgdb_serial_setup() 0 | ||
829 | #endif | ||
1188 | 830 | ||
1189 | /* The command loop, read and act on requests */ | 831 | /* The command loop, read and act on requests */ |
1190 | static void kgdb_command_loop(const int excep_code, const int trapa_value) | 832 | static void kgdb_command_loop(const int excep_code, const int trapa_value) |
@@ -1193,7 +835,7 @@ static void kgdb_command_loop(const int excep_code, const int trapa_value) | |||
1193 | 835 | ||
1194 | if (excep_code == NMI_VEC) { | 836 | if (excep_code == NMI_VEC) { |
1195 | #ifndef CONFIG_KGDB_NMI | 837 | #ifndef CONFIG_KGDB_NMI |
1196 | KGDB_PRINTK("Ignoring unexpected NMI?\n"); | 838 | printk(KERN_NOTICE "KGDB: Ignoring unexpected NMI?\n"); |
1197 | return; | 839 | return; |
1198 | #else /* CONFIG_KGDB_NMI */ | 840 | #else /* CONFIG_KGDB_NMI */ |
1199 | if (!kgdb_enabled) { | 841 | if (!kgdb_enabled) { |
@@ -1207,19 +849,10 @@ static void kgdb_command_loop(const int excep_code, const int trapa_value) | |||
1207 | if (!kgdb_enabled) | 849 | if (!kgdb_enabled) |
1208 | return; | 850 | return; |
1209 | 851 | ||
1210 | #ifdef CONFIG_KGDB_THREAD | ||
1211 | /* Until GDB specifies a thread */ | ||
1212 | current_thread = NULL; | ||
1213 | trapped_thread = current; | ||
1214 | #endif | ||
1215 | |||
1216 | /* Enter GDB mode (e.g. after detach) */ | 852 | /* Enter GDB mode (e.g. after detach) */ |
1217 | if (!kgdb_in_gdb_mode) { | 853 | if (!kgdb_in_gdb_mode) { |
1218 | /* Do serial setup, notify user, issue preemptive ack */ | 854 | /* Do serial setup, notify user, issue preemptive ack */ |
1219 | kgdb_serial_setup(); | 855 | printk(KERN_NOTICE "KGDB: Waiting for GDB\n"); |
1220 | KGDB_PRINTK("Waiting for GDB (on %s%d at %d baud)\n", | ||
1221 | (kgdb_porttype ? kgdb_porttype->name : ""), | ||
1222 | kgdb_portnum, kgdb_baud); | ||
1223 | kgdb_in_gdb_mode = 1; | 856 | kgdb_in_gdb_mode = 1; |
1224 | put_debug_char('+'); | 857 | put_debug_char('+'); |
1225 | } | 858 | } |
@@ -1233,21 +866,18 @@ static void kgdb_command_loop(const int excep_code, const int trapa_value) | |||
1233 | will later be replaced by its original one. Do NOT do this for | 866 | will later be replaced by its original one. Do NOT do this for |
1234 | trap 0xff, since that indicates a compiled-in breakpoint which | 867 | trap 0xff, since that indicates a compiled-in breakpoint which |
1235 | will not be replaced (and we would retake the trap forever) */ | 868 | will not be replaced (and we would retake the trap forever) */ |
1236 | if ((excep_code == TRAP_VEC) && (trapa_value != (0xff << 2))) { | 869 | if ((excep_code == TRAP_VEC) && (trapa_value != (0x3c << 2))) |
1237 | trap_registers.pc -= 2; | 870 | trap_registers.pc -= 2; |
1238 | } | ||
1239 | 871 | ||
1240 | /* Undo any stepping we may have done */ | 872 | /* Undo any stepping we may have done */ |
1241 | undo_single_step(); | 873 | undo_single_step(); |
1242 | 874 | ||
1243 | while (1) { | 875 | while (1) { |
1244 | |||
1245 | out_buffer[0] = 0; | 876 | out_buffer[0] = 0; |
1246 | get_packet(in_buffer, BUFMAX); | 877 | get_packet(in_buffer, BUFMAX); |
1247 | 878 | ||
1248 | /* Examine first char of buffer to see what we need to do */ | 879 | /* Examine first char of buffer to see what we need to do */ |
1249 | switch (in_buffer[0]) { | 880 | switch (in_buffer[0]) { |
1250 | |||
1251 | case '?': /* Send which signal we've received */ | 881 | case '?': /* Send which signal we've received */ |
1252 | send_signal_msg(sigval); | 882 | send_signal_msg(sigval); |
1253 | break; | 883 | break; |
@@ -1291,21 +921,6 @@ static void kgdb_command_loop(const int excep_code, const int trapa_value) | |||
1291 | step_msg(); | 921 | step_msg(); |
1292 | return; | 922 | return; |
1293 | 923 | ||
1294 | #ifdef CONFIG_KGDB_THREAD | ||
1295 | |||
1296 | case 'H': /* Task related */ | ||
1297 | set_thread_msg(); | ||
1298 | break; | ||
1299 | |||
1300 | case 'T': /* Query thread status */ | ||
1301 | thread_status_msg(); | ||
1302 | break; | ||
1303 | |||
1304 | case 'q': /* Handle query - currently thread-related */ | ||
1305 | query_msg(); | ||
1306 | break; | ||
1307 | #endif | ||
1308 | |||
1309 | case 'k': /* 'Kill the program' with a kernel ? */ | 924 | case 'k': /* 'Kill the program' with a kernel ? */ |
1310 | break; | 925 | break; |
1311 | 926 | ||
@@ -1323,11 +938,8 @@ static void kgdb_command_loop(const int excep_code, const int trapa_value) | |||
1323 | } | 938 | } |
1324 | 939 | ||
1325 | /* There has been an exception, most likely a breakpoint. */ | 940 | /* There has been an exception, most likely a breakpoint. */ |
1326 | asmlinkage void kgdb_handle_exception(unsigned long r4, unsigned long r5, | 941 | static void handle_exception(struct pt_regs *regs) |
1327 | unsigned long r6, unsigned long r7, | ||
1328 | struct pt_regs __regs) | ||
1329 | { | 942 | { |
1330 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); | ||
1331 | int excep_code, vbr_val; | 943 | int excep_code, vbr_val; |
1332 | int count; | 944 | int count; |
1333 | int trapa_value = ctrl_inl(TRA); | 945 | int trapa_value = ctrl_inl(TRA); |
@@ -1355,7 +967,7 @@ asmlinkage void kgdb_handle_exception(unsigned long r4, unsigned long r5, | |||
1355 | kgdb_trapa_val = trapa_value; | 967 | kgdb_trapa_val = trapa_value; |
1356 | 968 | ||
1357 | /* Act on the exception */ | 969 | /* Act on the exception */ |
1358 | kgdb_command_loop(excep_code >> 5, trapa_value); | 970 | kgdb_command_loop(excep_code, trapa_value); |
1359 | 971 | ||
1360 | kgdb_current = NULL; | 972 | kgdb_current = NULL; |
1361 | 973 | ||
@@ -1373,14 +985,12 @@ asmlinkage void kgdb_handle_exception(unsigned long r4, unsigned long r5, | |||
1373 | asm("ldc %0, vbr": :"r"(vbr_val)); | 985 | asm("ldc %0, vbr": :"r"(vbr_val)); |
1374 | } | 986 | } |
1375 | 987 | ||
1376 | /* Trigger a breakpoint by function */ | 988 | asmlinkage void kgdb_handle_exception(unsigned long r4, unsigned long r5, |
1377 | void breakpoint(void) | 989 | unsigned long r6, unsigned long r7, |
990 | struct pt_regs __regs) | ||
1378 | { | 991 | { |
1379 | if (!kgdb_enabled) { | 992 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); |
1380 | kgdb_enabled = 1; | 993 | handle_exception(regs); |
1381 | kgdb_init(); | ||
1382 | } | ||
1383 | BREAKPOINT(); | ||
1384 | } | 994 | } |
1385 | 995 | ||
1386 | /* Initialise the KGDB data structures and serial configuration */ | 996 | /* Initialise the KGDB data structures and serial configuration */ |
@@ -1395,24 +1005,16 @@ int kgdb_init(void) | |||
1395 | kgdb_in_gdb_mode = 0; | 1005 | kgdb_in_gdb_mode = 0; |
1396 | 1006 | ||
1397 | if (kgdb_serial_setup() != 0) { | 1007 | if (kgdb_serial_setup() != 0) { |
1398 | KGDB_PRINTK("serial setup error\n"); | 1008 | printk(KERN_NOTICE "KGDB: serial setup error\n"); |
1399 | return -1; | 1009 | return -1; |
1400 | } | 1010 | } |
1401 | 1011 | ||
1402 | /* Init ptr to exception handler */ | 1012 | /* Init ptr to exception handler */ |
1403 | kgdb_debug_hook = kgdb_handle_exception; | 1013 | kgdb_debug_hook = handle_exception; |
1404 | kgdb_bus_err_hook = kgdb_handle_bus_error; | 1014 | kgdb_bus_err_hook = kgdb_handle_bus_error; |
1405 | 1015 | ||
1406 | /* Enter kgdb now if requested, or just report init done */ | 1016 | /* Enter kgdb now if requested, or just report init done */ |
1407 | if (kgdb_halt) { | 1017 | printk(KERN_NOTICE "KGDB: stub is initialized.\n"); |
1408 | kgdb_in_gdb_mode = 1; | ||
1409 | put_debug_char('+'); | ||
1410 | breakpoint(); | ||
1411 | } | ||
1412 | else | ||
1413 | { | ||
1414 | KGDB_PRINTK("stub is initialized.\n"); | ||
1415 | } | ||
1416 | 1018 | ||
1417 | return 0; | 1019 | return 0; |
1418 | } | 1020 | } |
@@ -1437,7 +1039,7 @@ static void kgdb_msg_write(const char *s, unsigned count) | |||
1437 | 1039 | ||
1438 | /* Calculate how many this time */ | 1040 | /* Calculate how many this time */ |
1439 | wcount = (count > MAXOUT) ? MAXOUT : count; | 1041 | wcount = (count > MAXOUT) ? MAXOUT : count; |
1440 | 1042 | ||
1441 | /* Pack in hex chars */ | 1043 | /* Pack in hex chars */ |
1442 | for (i = 0; i < wcount; i++) | 1044 | for (i = 0; i < wcount; i++) |
1443 | bufptr = pack_hex_byte(bufptr, s[i]); | 1045 | bufptr = pack_hex_byte(bufptr, s[i]); |
@@ -1467,3 +1069,25 @@ void kgdb_console_write(struct console *co, const char *s, unsigned count) | |||
1467 | kgdb_msg_write(s, count); | 1069 | kgdb_msg_write(s, count); |
1468 | } | 1070 | } |
1469 | #endif | 1071 | #endif |
1072 | |||
1073 | #ifdef CONFIG_KGDB_SYSRQ | ||
1074 | static void sysrq_handle_gdb(int key, struct tty_struct *tty) | ||
1075 | { | ||
1076 | printk("Entering GDB stub\n"); | ||
1077 | breakpoint(); | ||
1078 | } | ||
1079 | |||
1080 | static struct sysrq_key_op sysrq_gdb_op = { | ||
1081 | .handler = sysrq_handle_gdb, | ||
1082 | .help_msg = "Gdb", | ||
1083 | .action_msg = "GDB", | ||
1084 | }; | ||
1085 | |||
1086 | static int gdb_register_sysrq(void) | ||
1087 | { | ||
1088 | printk("Registering GDB sysrq handler\n"); | ||
1089 | register_sysrq_key('g', &sysrq_gdb_op); | ||
1090 | return 0; | ||
1091 | } | ||
1092 | module_init(gdb_register_sysrq); | ||
1093 | #endif | ||
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c index 08587cdb64d6..790ed69b8666 100644 --- a/arch/sh/kernel/machine_kexec.c +++ b/arch/sh/kernel/machine_kexec.c | |||
@@ -59,13 +59,13 @@ static void kexec_info(struct kimage *image) | |||
59 | printk(" segment[%d]: 0x%08x - 0x%08x (0x%08x)\n", | 59 | printk(" segment[%d]: 0x%08x - 0x%08x (0x%08x)\n", |
60 | i, | 60 | i, |
61 | (unsigned int)image->segment[i].mem, | 61 | (unsigned int)image->segment[i].mem, |
62 | (unsigned int)image->segment[i].mem + image->segment[i].memsz, | 62 | (unsigned int)image->segment[i].mem + |
63 | image->segment[i].memsz, | ||
63 | (unsigned int)image->segment[i].memsz); | 64 | (unsigned int)image->segment[i].memsz); |
64 | } | 65 | } |
65 | printk(" start : 0x%08x\n\n", (unsigned int)image->start); | 66 | printk(" start : 0x%08x\n\n", (unsigned int)image->start); |
66 | } | 67 | } |
67 | 68 | ||
68 | |||
69 | /* | 69 | /* |
70 | * Do not allocate memory (or fail in any way) in machine_kexec(). | 70 | * Do not allocate memory (or fail in any way) in machine_kexec(). |
71 | * We are past the point of no return, committed to rebooting now. | 71 | * We are past the point of no return, committed to rebooting now. |
@@ -101,6 +101,27 @@ NORET_TYPE void machine_kexec(struct kimage *image) | |||
101 | 101 | ||
102 | /* now call it */ | 102 | /* now call it */ |
103 | rnk = (relocate_new_kernel_t) reboot_code_buffer; | 103 | rnk = (relocate_new_kernel_t) reboot_code_buffer; |
104 | (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); | 104 | (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); |
105 | } | 105 | } |
106 | 106 | ||
107 | /* crashkernel=size@addr specifies the location to reserve for | ||
108 | * a crash kernel. By reserving this memory we guarantee | ||
109 | * that linux never sets it up as a DMA target. | ||
110 | * Useful for holding code to do something appropriate | ||
111 | * after a kernel panic. | ||
112 | */ | ||
113 | static int __init parse_crashkernel(char *arg) | ||
114 | { | ||
115 | unsigned long size, base; | ||
116 | size = memparse(arg, &arg); | ||
117 | if (*arg == '@') { | ||
118 | base = memparse(arg+1, &arg); | ||
119 | /* FIXME: Do I want a sanity check | ||
120 | * to validate the memory range? | ||
121 | */ | ||
122 | crashk_res.start = base; | ||
123 | crashk_res.end = base + size - 1; | ||
124 | } | ||
125 | return 0; | ||
126 | } | ||
127 | early_param("crashkernel", parse_crashkernel); | ||
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index e7607366ac4e..329b3f3051de 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * SuperH version: Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima | 8 | * SuperH version: Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima |
9 | * Copyright (C) 2006 Lineo Solutions Inc. support SH4A UBC | 9 | * Copyright (C) 2006 Lineo Solutions Inc. support SH4A UBC |
10 | * Copyright (C) 2002 - 2006 Paul Mundt | 10 | * Copyright (C) 2002 - 2007 Paul Mundt |
11 | */ | 11 | */ |
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/pm.h> | 15 | #include <linux/pm.h> |
16 | #include <linux/kallsyms.h> | 16 | #include <linux/kallsyms.h> |
17 | #include <linux/kexec.h> | 17 | #include <linux/kexec.h> |
18 | #include <asm/kdebug.h> | ||
18 | #include <asm/uaccess.h> | 19 | #include <asm/uaccess.h> |
19 | #include <asm/mmu_context.h> | 20 | #include <asm/mmu_context.h> |
20 | #include <asm/ubc.h> | 21 | #include <asm/ubc.h> |
@@ -299,7 +300,8 @@ static void ubc_set_tracing(int asid, unsigned long pc) | |||
299 | ctrl_outl(0, UBC_BAMRA); | 300 | ctrl_outl(0, UBC_BAMRA); |
300 | 301 | ||
301 | if (current_cpu_data.type == CPU_SH7729 || | 302 | if (current_cpu_data.type == CPU_SH7729 || |
302 | current_cpu_data.type == CPU_SH7710) { | 303 | current_cpu_data.type == CPU_SH7710 || |
304 | current_cpu_data.type == CPU_SH7712) { | ||
303 | ctrl_outw(BBR_INST | BBR_READ | BBR_CPU, UBC_BBRA); | 305 | ctrl_outw(BBR_INST | BBR_READ | BBR_CPU, UBC_BBRA); |
304 | ctrl_outl(BRCR_PCBA | BRCR_PCTE, UBC_BRCR); | 306 | ctrl_outl(BRCR_PCBA | BRCR_PCTE, UBC_BRCR); |
305 | } else { | 307 | } else { |
@@ -495,6 +497,10 @@ asmlinkage void debug_trap_handler(unsigned long r4, unsigned long r5, | |||
495 | /* Rewind */ | 497 | /* Rewind */ |
496 | regs->pc -= 2; | 498 | regs->pc -= 2; |
497 | 499 | ||
500 | if (notify_die(DIE_TRAP, regs, regs->tra & 0xff, | ||
501 | SIGTRAP) == NOTIFY_STOP) | ||
502 | return; | ||
503 | |||
498 | force_sig(SIGTRAP, current); | 504 | force_sig(SIGTRAP, current); |
499 | } | 505 | } |
500 | 506 | ||
@@ -510,6 +516,10 @@ asmlinkage void bug_trap_handler(unsigned long r4, unsigned long r5, | |||
510 | /* Rewind */ | 516 | /* Rewind */ |
511 | regs->pc -= 2; | 517 | regs->pc -= 2; |
512 | 518 | ||
519 | if (notify_die(DIE_TRAP, regs, TRAPA_BUG_OPCODE & 0xff, | ||
520 | SIGTRAP) == NOTIFY_STOP) | ||
521 | return; | ||
522 | |||
513 | #ifdef CONFIG_BUG | 523 | #ifdef CONFIG_BUG |
514 | if (__kernel_text_address(instruction_pointer(regs))) { | 524 | if (__kernel_text_address(instruction_pointer(regs))) { |
515 | u16 insn = *(u16 *)instruction_pointer(regs); | 525 | u16 insn = *(u16 *)instruction_pointer(regs); |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 98802ab28211..477d2a854fc4 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * This file handles the architecture-dependent parts of initialization | 4 | * This file handles the architecture-dependent parts of initialization |
5 | * | 5 | * |
6 | * Copyright (C) 1999 Niibe Yutaka | 6 | * Copyright (C) 1999 Niibe Yutaka |
7 | * Copyright (C) 2002 - 2006 Paul Mundt | 7 | * Copyright (C) 2002 - 2007 Paul Mundt |
8 | */ | 8 | */ |
9 | #include <linux/screen_info.h> | 9 | #include <linux/screen_info.h> |
10 | #include <linux/ioport.h> | 10 | #include <linux/ioport.h> |
@@ -15,21 +15,22 @@ | |||
15 | #include <linux/seq_file.h> | 15 | #include <linux/seq_file.h> |
16 | #include <linux/root_dev.h> | 16 | #include <linux/root_dev.h> |
17 | #include <linux/utsname.h> | 17 | #include <linux/utsname.h> |
18 | #include <linux/nodemask.h> | ||
18 | #include <linux/cpu.h> | 19 | #include <linux/cpu.h> |
19 | #include <linux/pfn.h> | 20 | #include <linux/pfn.h> |
20 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
22 | #include <linux/mm.h> | ||
23 | #include <linux/kexec.h> | ||
21 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
22 | #include <asm/io.h> | 25 | #include <asm/io.h> |
23 | #include <asm/sections.h> | 26 | #include <asm/sections.h> |
24 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
25 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
26 | #include <asm/clock.h> | 29 | #include <asm/clock.h> |
30 | #include <asm/mmu_context.h> | ||
27 | 31 | ||
28 | #ifdef CONFIG_SH_KGDB | ||
29 | #include <asm/kgdb.h> | ||
30 | static int kgdb_parse_options(char *options); | ||
31 | #endif | ||
32 | extern void * __rd_start, * __rd_end; | 32 | extern void * __rd_start, * __rd_end; |
33 | |||
33 | /* | 34 | /* |
34 | * Machine setup.. | 35 | * Machine setup.. |
35 | */ | 36 | */ |
@@ -205,53 +206,33 @@ static int __init sh_mv_setup(char **cmdline_p) | |||
205 | return 0; | 206 | return 0; |
206 | } | 207 | } |
207 | 208 | ||
208 | void __init setup_arch(char **cmdline_p) | 209 | /* |
210 | * Register fully available low RAM pages with the bootmem allocator. | ||
211 | */ | ||
212 | static void __init register_bootmem_low_pages(void) | ||
209 | { | 213 | { |
210 | unsigned long bootmap_size; | 214 | unsigned long curr_pfn, last_pfn, pages; |
211 | unsigned long start_pfn, max_pfn, max_low_pfn; | ||
212 | |||
213 | #ifdef CONFIG_CMDLINE_BOOL | ||
214 | strcpy(COMMAND_LINE, CONFIG_CMDLINE); | ||
215 | #endif | ||
216 | |||
217 | ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); | ||
218 | |||
219 | #ifdef CONFIG_BLK_DEV_RAM | ||
220 | rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK; | ||
221 | rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0); | ||
222 | rd_doload = ((RAMDISK_FLAGS & RAMDISK_LOAD_FLAG) != 0); | ||
223 | #endif | ||
224 | |||
225 | if (!MOUNT_ROOT_RDONLY) | ||
226 | root_mountflags &= ~MS_RDONLY; | ||
227 | init_mm.start_code = (unsigned long) _text; | ||
228 | init_mm.end_code = (unsigned long) _etext; | ||
229 | init_mm.end_data = (unsigned long) _edata; | ||
230 | init_mm.brk = (unsigned long) _end; | ||
231 | |||
232 | code_resource.start = (unsigned long)virt_to_phys(_text); | ||
233 | code_resource.end = (unsigned long)virt_to_phys(_etext)-1; | ||
234 | data_resource.start = (unsigned long)virt_to_phys(_etext); | ||
235 | data_resource.end = (unsigned long)virt_to_phys(_edata)-1; | ||
236 | |||
237 | sh_mv_setup(cmdline_p); | ||
238 | |||
239 | 215 | ||
240 | /* | 216 | /* |
241 | * Find the highest page frame number we have available | 217 | * We are rounding up the start address of usable memory: |
242 | */ | 218 | */ |
243 | max_pfn = PFN_DOWN(__pa(memory_end)); | 219 | curr_pfn = PFN_UP(__MEMORY_START); |
244 | 220 | ||
245 | /* | 221 | /* |
246 | * Determine low and high memory ranges: | 222 | * ... and at the end of the usable range downwards: |
247 | */ | 223 | */ |
248 | max_low_pfn = max_pfn; | 224 | last_pfn = PFN_DOWN(__pa(memory_end)); |
249 | 225 | ||
250 | /* | 226 | if (last_pfn > max_low_pfn) |
251 | * Partially used pages are not usable - thus | 227 | last_pfn = max_low_pfn; |
252 | * we are rounding upwards: | 228 | |
253 | */ | 229 | pages = last_pfn - curr_pfn; |
254 | start_pfn = PFN_UP(__pa(_end)); | 230 | free_bootmem(PFN_PHYS(curr_pfn), PFN_PHYS(pages)); |
231 | } | ||
232 | |||
233 | void __init setup_bootmem_allocator(unsigned long start_pfn) | ||
234 | { | ||
235 | unsigned long bootmap_size; | ||
255 | 236 | ||
256 | /* | 237 | /* |
257 | * Find a proper area for the bootmem bitmap. After this | 238 | * Find a proper area for the bootmem bitmap. After this |
@@ -259,31 +240,11 @@ void __init setup_arch(char **cmdline_p) | |||
259 | * is intact) must be done via bootmem_alloc(). | 240 | * is intact) must be done via bootmem_alloc(). |
260 | */ | 241 | */ |
261 | bootmap_size = init_bootmem_node(NODE_DATA(0), start_pfn, | 242 | bootmap_size = init_bootmem_node(NODE_DATA(0), start_pfn, |
262 | __MEMORY_START>>PAGE_SHIFT, | 243 | min_low_pfn, max_low_pfn); |
263 | max_low_pfn); | ||
264 | /* | ||
265 | * Register fully available low RAM pages with the bootmem allocator. | ||
266 | */ | ||
267 | { | ||
268 | unsigned long curr_pfn, last_pfn, pages; | ||
269 | |||
270 | /* | ||
271 | * We are rounding up the start address of usable memory: | ||
272 | */ | ||
273 | curr_pfn = PFN_UP(__MEMORY_START); | ||
274 | /* | ||
275 | * ... and at the end of the usable range downwards: | ||
276 | */ | ||
277 | last_pfn = PFN_DOWN(__pa(memory_end)); | ||
278 | 244 | ||
279 | if (last_pfn > max_low_pfn) | 245 | register_bootmem_low_pages(); |
280 | last_pfn = max_low_pfn; | ||
281 | |||
282 | pages = last_pfn - curr_pfn; | ||
283 | free_bootmem_node(NODE_DATA(0), PFN_PHYS(curr_pfn), | ||
284 | PFN_PHYS(pages)); | ||
285 | } | ||
286 | 246 | ||
247 | node_set_online(0); | ||
287 | 248 | ||
288 | /* | 249 | /* |
289 | * Reserve the kernel text and | 250 | * Reserve the kernel text and |
@@ -292,14 +253,14 @@ void __init setup_arch(char **cmdline_p) | |||
292 | * case of us accidentally initializing the bootmem allocator with | 253 | * case of us accidentally initializing the bootmem allocator with |
293 | * an invalid RAM area. | 254 | * an invalid RAM area. |
294 | */ | 255 | */ |
295 | reserve_bootmem_node(NODE_DATA(0), __MEMORY_START+PAGE_SIZE, | 256 | reserve_bootmem(__MEMORY_START+PAGE_SIZE, |
296 | (PFN_PHYS(start_pfn)+bootmap_size+PAGE_SIZE-1)-__MEMORY_START); | 257 | (PFN_PHYS(start_pfn)+bootmap_size+PAGE_SIZE-1)-__MEMORY_START); |
297 | 258 | ||
298 | /* | 259 | /* |
299 | * reserve physical page 0 - it's a special BIOS page on many boxes, | 260 | * reserve physical page 0 - it's a special BIOS page on many boxes, |
300 | * enabling clean reboots, SMP operation, laptop functions. | 261 | * enabling clean reboots, SMP operation, laptop functions. |
301 | */ | 262 | */ |
302 | reserve_bootmem_node(NODE_DATA(0), __MEMORY_START, PAGE_SIZE); | 263 | reserve_bootmem(__MEMORY_START, PAGE_SIZE); |
303 | 264 | ||
304 | #ifdef CONFIG_BLK_DEV_INITRD | 265 | #ifdef CONFIG_BLK_DEV_INITRD |
305 | ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); | 266 | ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); |
@@ -313,8 +274,8 @@ void __init setup_arch(char **cmdline_p) | |||
313 | 274 | ||
314 | if (LOADER_TYPE && INITRD_START) { | 275 | if (LOADER_TYPE && INITRD_START) { |
315 | if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) { | 276 | if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) { |
316 | reserve_bootmem_node(NODE_DATA(0), INITRD_START + | 277 | reserve_bootmem(INITRD_START + __MEMORY_START, |
317 | __MEMORY_START, INITRD_SIZE); | 278 | INITRD_SIZE); |
318 | initrd_start = INITRD_START + PAGE_OFFSET + | 279 | initrd_start = INITRD_START + PAGE_OFFSET + |
319 | __MEMORY_START; | 280 | __MEMORY_START; |
320 | initrd_end = initrd_start + INITRD_SIZE; | 281 | initrd_end = initrd_start + INITRD_SIZE; |
@@ -327,6 +288,76 @@ void __init setup_arch(char **cmdline_p) | |||
327 | } | 288 | } |
328 | } | 289 | } |
329 | #endif | 290 | #endif |
291 | #ifdef CONFIG_KEXEC | ||
292 | if (crashk_res.start != crashk_res.end) | ||
293 | reserve_bootmem(crashk_res.start, | ||
294 | crashk_res.end - crashk_res.start + 1); | ||
295 | #endif | ||
296 | } | ||
297 | |||
298 | #ifndef CONFIG_NEED_MULTIPLE_NODES | ||
299 | static void __init setup_memory(void) | ||
300 | { | ||
301 | unsigned long start_pfn; | ||
302 | |||
303 | /* | ||
304 | * Partially used pages are not usable - thus | ||
305 | * we are rounding upwards: | ||
306 | */ | ||
307 | start_pfn = PFN_UP(__pa(_end)); | ||
308 | setup_bootmem_allocator(start_pfn); | ||
309 | } | ||
310 | #else | ||
311 | extern void __init setup_memory(void); | ||
312 | #endif | ||
313 | |||
314 | void __init setup_arch(char **cmdline_p) | ||
315 | { | ||
316 | enable_mmu(); | ||
317 | |||
318 | #ifdef CONFIG_CMDLINE_BOOL | ||
319 | strcpy(COMMAND_LINE, CONFIG_CMDLINE); | ||
320 | #endif | ||
321 | |||
322 | ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); | ||
323 | |||
324 | #ifdef CONFIG_BLK_DEV_RAM | ||
325 | rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK; | ||
326 | rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0); | ||
327 | rd_doload = ((RAMDISK_FLAGS & RAMDISK_LOAD_FLAG) != 0); | ||
328 | #endif | ||
329 | |||
330 | if (!MOUNT_ROOT_RDONLY) | ||
331 | root_mountflags &= ~MS_RDONLY; | ||
332 | init_mm.start_code = (unsigned long) _text; | ||
333 | init_mm.end_code = (unsigned long) _etext; | ||
334 | init_mm.end_data = (unsigned long) _edata; | ||
335 | init_mm.brk = (unsigned long) _end; | ||
336 | |||
337 | code_resource.start = virt_to_phys(_text); | ||
338 | code_resource.end = virt_to_phys(_etext)-1; | ||
339 | data_resource.start = virt_to_phys(_etext); | ||
340 | data_resource.end = virt_to_phys(_edata)-1; | ||
341 | |||
342 | parse_early_param(); | ||
343 | |||
344 | sh_mv_setup(cmdline_p); | ||
345 | |||
346 | /* | ||
347 | * Find the highest page frame number we have available | ||
348 | */ | ||
349 | max_pfn = PFN_DOWN(__pa(memory_end)); | ||
350 | |||
351 | /* | ||
352 | * Determine low and high memory ranges: | ||
353 | */ | ||
354 | max_low_pfn = max_pfn; | ||
355 | min_low_pfn = __MEMORY_START >> PAGE_SHIFT; | ||
356 | |||
357 | nodes_clear(node_online_map); | ||
358 | setup_memory(); | ||
359 | paging_init(); | ||
360 | sparse_init(); | ||
330 | 361 | ||
331 | #ifdef CONFIG_DUMMY_CONSOLE | 362 | #ifdef CONFIG_DUMMY_CONSOLE |
332 | conswitchp = &dummy_con; | 363 | conswitchp = &dummy_con; |
@@ -335,8 +366,6 @@ void __init setup_arch(char **cmdline_p) | |||
335 | /* Perform the machine specific initialisation */ | 366 | /* Perform the machine specific initialisation */ |
336 | if (likely(sh_mv.mv_setup)) | 367 | if (likely(sh_mv.mv_setup)) |
337 | sh_mv.mv_setup(cmdline_p); | 368 | sh_mv.mv_setup(cmdline_p); |
338 | |||
339 | paging_init(); | ||
340 | } | 369 | } |
341 | 370 | ||
342 | struct sh_machine_vector* __init get_mv_byname(const char* name) | 371 | struct sh_machine_vector* __init get_mv_byname(const char* name) |
@@ -380,6 +409,7 @@ static const char *cpu_name[] = { | |||
380 | [CPU_SH7705] = "SH7705", [CPU_SH7706] = "SH7706", | 409 | [CPU_SH7705] = "SH7705", [CPU_SH7706] = "SH7706", |
381 | [CPU_SH7707] = "SH7707", [CPU_SH7708] = "SH7708", | 410 | [CPU_SH7707] = "SH7707", [CPU_SH7708] = "SH7708", |
382 | [CPU_SH7709] = "SH7709", [CPU_SH7710] = "SH7710", | 411 | [CPU_SH7709] = "SH7709", [CPU_SH7710] = "SH7710", |
412 | [CPU_SH7712] = "SH7712", | ||
383 | [CPU_SH7729] = "SH7729", [CPU_SH7750] = "SH7750", | 413 | [CPU_SH7729] = "SH7729", [CPU_SH7750] = "SH7750", |
384 | [CPU_SH7750S] = "SH7750S", [CPU_SH7750R] = "SH7750R", | 414 | [CPU_SH7750S] = "SH7750S", [CPU_SH7750R] = "SH7750R", |
385 | [CPU_SH7751] = "SH7751", [CPU_SH7751R] = "SH7751R", | 415 | [CPU_SH7751] = "SH7751", [CPU_SH7751R] = "SH7751R", |
@@ -477,7 +507,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
477 | c->loops_per_jiffy/(500000/HZ), | 507 | c->loops_per_jiffy/(500000/HZ), |
478 | (c->loops_per_jiffy/(5000/HZ)) % 100); | 508 | (c->loops_per_jiffy/(5000/HZ)) % 100); |
479 | 509 | ||
480 | return show_clocks(m); | 510 | return 0; |
481 | } | 511 | } |
482 | 512 | ||
483 | static void *c_start(struct seq_file *m, loff_t *pos) | 513 | static void *c_start(struct seq_file *m, loff_t *pos) |
@@ -499,92 +529,3 @@ struct seq_operations cpuinfo_op = { | |||
499 | .show = show_cpuinfo, | 529 | .show = show_cpuinfo, |
500 | }; | 530 | }; |
501 | #endif /* CONFIG_PROC_FS */ | 531 | #endif /* CONFIG_PROC_FS */ |
502 | |||
503 | #ifdef CONFIG_SH_KGDB | ||
504 | /* | ||
505 | * Parse command-line kgdb options. By default KGDB is enabled, | ||
506 | * entered on error (or other action) using default serial info. | ||
507 | * The command-line option can include a serial port specification | ||
508 | * and an action to override default or configured behavior. | ||
509 | */ | ||
510 | struct kgdb_sermap kgdb_sci_sermap = | ||
511 | { "ttySC", 5, kgdb_sci_setup, NULL }; | ||
512 | |||
513 | struct kgdb_sermap *kgdb_serlist = &kgdb_sci_sermap; | ||
514 | struct kgdb_sermap *kgdb_porttype = &kgdb_sci_sermap; | ||
515 | |||
516 | void kgdb_register_sermap(struct kgdb_sermap *map) | ||
517 | { | ||
518 | struct kgdb_sermap *last; | ||
519 | |||
520 | for (last = kgdb_serlist; last->next; last = last->next) | ||
521 | ; | ||
522 | last->next = map; | ||
523 | if (!map->namelen) { | ||
524 | map->namelen = strlen(map->name); | ||
525 | } | ||
526 | } | ||
527 | |||
528 | static int __init kgdb_parse_options(char *options) | ||
529 | { | ||
530 | char c; | ||
531 | int baud; | ||
532 | |||
533 | /* Check for port spec (or use default) */ | ||
534 | |||
535 | /* Determine port type and instance */ | ||
536 | if (!memcmp(options, "tty", 3)) { | ||
537 | struct kgdb_sermap *map = kgdb_serlist; | ||
538 | |||
539 | while (map && memcmp(options, map->name, map->namelen)) | ||
540 | map = map->next; | ||
541 | |||
542 | if (!map) { | ||
543 | KGDB_PRINTK("unknown port spec in %s\n", options); | ||
544 | return -1; | ||
545 | } | ||
546 | |||
547 | kgdb_porttype = map; | ||
548 | kgdb_serial_setup = map->setup_fn; | ||
549 | kgdb_portnum = options[map->namelen] - '0'; | ||
550 | options += map->namelen + 1; | ||
551 | |||
552 | options = (*options == ',') ? options+1 : options; | ||
553 | |||
554 | /* Read optional parameters (baud/parity/bits) */ | ||
555 | baud = simple_strtoul(options, &options, 10); | ||
556 | if (baud != 0) { | ||
557 | kgdb_baud = baud; | ||
558 | |||
559 | c = toupper(*options); | ||
560 | if (c == 'E' || c == 'O' || c == 'N') { | ||
561 | kgdb_parity = c; | ||
562 | options++; | ||
563 | } | ||
564 | |||
565 | c = *options; | ||
566 | if (c == '7' || c == '8') { | ||
567 | kgdb_bits = c; | ||
568 | options++; | ||
569 | } | ||
570 | options = (*options == ',') ? options+1 : options; | ||
571 | } | ||
572 | } | ||
573 | |||
574 | /* Check for action specification */ | ||
575 | if (!memcmp(options, "halt", 4)) { | ||
576 | kgdb_halt = 1; | ||
577 | options += 4; | ||
578 | } else if (!memcmp(options, "disabled", 8)) { | ||
579 | kgdb_enabled = 0; | ||
580 | options += 8; | ||
581 | } | ||
582 | |||
583 | if (*options) { | ||
584 | KGDB_PRINTK("ignored unknown options: %s\n", options); | ||
585 | return 0; | ||
586 | } | ||
587 | return 1; | ||
588 | } | ||
589 | __setup("kgdb=", kgdb_parse_options); | ||
590 | #endif /* CONFIG_SH_KGDB */ | ||
diff --git a/arch/sh/kernel/sh_ksyms.c b/arch/sh/kernel/sh_ksyms.c index 6e0d10fac4a8..17f0b50c5678 100644 --- a/arch/sh/kernel/sh_ksyms.c +++ b/arch/sh/kernel/sh_ksyms.c | |||
@@ -65,7 +65,6 @@ EXPORT_SYMBOL(__div64_32); | |||
65 | 65 | ||
66 | /* These symbols are generated by the compiler itself */ | 66 | /* These symbols are generated by the compiler itself */ |
67 | DECLARE_EXPORT(__udivsi3); | 67 | DECLARE_EXPORT(__udivsi3); |
68 | DECLARE_EXPORT(__udivdi3); | ||
69 | DECLARE_EXPORT(__sdivsi3); | 68 | DECLARE_EXPORT(__sdivsi3); |
70 | DECLARE_EXPORT(__ashrdi3); | 69 | DECLARE_EXPORT(__ashrdi3); |
71 | DECLARE_EXPORT(__ashldi3); | 70 | DECLARE_EXPORT(__ashldi3); |
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c index e060e71d0785..ad1ede52fc9c 100644 --- a/arch/sh/kernel/timers/timer-tmu.c +++ b/arch/sh/kernel/timers/timer-tmu.c | |||
@@ -148,7 +148,9 @@ static int tmu_timer_init(void) | |||
148 | 148 | ||
149 | /* Start TMU0 */ | 149 | /* Start TMU0 */ |
150 | tmu_timer_stop(); | 150 | tmu_timer_stop(); |
151 | #if !defined(CONFIG_CPU_SUBTYPE_SH7300) && !defined(CONFIG_CPU_SUBTYPE_SH7760) | 151 | #if !defined(CONFIG_CPU_SUBTYPE_SH7300) && \ |
152 | !defined(CONFIG_CPU_SUBTYPE_SH7760) && \ | ||
153 | !defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
152 | ctrl_outb(TMU_TOCR_INIT, TMU_TOCR); | 154 | ctrl_outb(TMU_TOCR_INIT, TMU_TOCR); |
153 | #endif | 155 | #endif |
154 | 156 | ||
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index e9f168f60f95..7b40f0ff3dfc 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * SuperH version: Copyright (C) 1999 Niibe Yutaka | 5 | * SuperH version: Copyright (C) 1999 Niibe Yutaka |
6 | * Copyright (C) 2000 Philipp Rumpf | 6 | * Copyright (C) 2000 Philipp Rumpf |
7 | * Copyright (C) 2000 David Howells | 7 | * Copyright (C) 2000 David Howells |
8 | * Copyright (C) 2002 - 2006 Paul Mundt | 8 | * Copyright (C) 2002 - 2007 Paul Mundt |
9 | * | 9 | * |
10 | * This file is subject to the terms and conditions of the GNU General Public | 10 | * This file is subject to the terms and conditions of the GNU General Public |
11 | * License. See the file "COPYING" in the main directory of this archive | 11 | * License. See the file "COPYING" in the main directory of this archive |
@@ -18,10 +18,12 @@ | |||
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/kallsyms.h> | 19 | #include <linux/kallsyms.h> |
20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
21 | #include <linux/bug.h> | ||
21 | #include <linux/debug_locks.h> | 22 | #include <linux/debug_locks.h> |
22 | #include <linux/limits.h> | 23 | #include <linux/limits.h> |
23 | #include <asm/system.h> | 24 | #include <asm/system.h> |
24 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
26 | #include <asm/kdebug.h> | ||
25 | 27 | ||
26 | #ifdef CONFIG_SH_KGDB | 28 | #ifdef CONFIG_SH_KGDB |
27 | #include <asm/kgdb.h> | 29 | #include <asm/kgdb.h> |
@@ -74,7 +76,21 @@ static void dump_mem(const char *str, unsigned long bottom, unsigned long top) | |||
74 | } | 76 | } |
75 | } | 77 | } |
76 | 78 | ||
77 | DEFINE_SPINLOCK(die_lock); | 79 | ATOMIC_NOTIFIER_HEAD(shdie_chain); |
80 | |||
81 | int register_die_notifier(struct notifier_block *nb) | ||
82 | { | ||
83 | return atomic_notifier_chain_register(&shdie_chain, nb); | ||
84 | } | ||
85 | EXPORT_SYMBOL(register_die_notifier); | ||
86 | |||
87 | int unregister_die_notifier(struct notifier_block *nb) | ||
88 | { | ||
89 | return atomic_notifier_chain_unregister(&shdie_chain, nb); | ||
90 | } | ||
91 | EXPORT_SYMBOL(unregister_die_notifier); | ||
92 | |||
93 | static DEFINE_SPINLOCK(die_lock); | ||
78 | 94 | ||
79 | void die(const char * str, struct pt_regs * regs, long err) | 95 | void die(const char * str, struct pt_regs * regs, long err) |
80 | { | 96 | { |
@@ -130,40 +146,6 @@ static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err) | |||
130 | return -EFAULT; | 146 | return -EFAULT; |
131 | } | 147 | } |
132 | 148 | ||
133 | #ifdef CONFIG_BUG | ||
134 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
135 | static inline void do_bug_verbose(struct pt_regs *regs) | ||
136 | { | ||
137 | struct bug_frame f; | ||
138 | long len; | ||
139 | |||
140 | if (__copy_from_user(&f, (const void __user *)regs->pc, | ||
141 | sizeof(struct bug_frame))) | ||
142 | return; | ||
143 | |||
144 | len = __strnlen_user(f.file, PATH_MAX) - 1; | ||
145 | if (unlikely(len < 0 || len >= PATH_MAX)) | ||
146 | f.file = "<bad filename>"; | ||
147 | len = __strnlen_user(f.func, PATH_MAX) - 1; | ||
148 | if (unlikely(len < 0 || len >= PATH_MAX)) | ||
149 | f.func = "<bad function>"; | ||
150 | |||
151 | printk(KERN_ALERT "kernel BUG in %s() at %s:%d!\n", | ||
152 | f.func, f.file, f.line); | ||
153 | } | ||
154 | #else | ||
155 | static inline void do_bug_verbose(struct pt_regs *regs) | ||
156 | { | ||
157 | } | ||
158 | #endif /* CONFIG_DEBUG_BUGVERBOSE */ | ||
159 | |||
160 | void handle_BUG(struct pt_regs *regs) | ||
161 | { | ||
162 | do_bug_verbose(regs); | ||
163 | die("Kernel BUG", regs, TRAPA_BUG_OPCODE & 0xff); | ||
164 | } | ||
165 | #endif /* CONFIG_BUG */ | ||
166 | |||
167 | /* | 149 | /* |
168 | * handle an instruction that does an unaligned memory access by emulating the | 150 | * handle an instruction that does an unaligned memory access by emulating the |
169 | * desired behaviour | 151 | * desired behaviour |
@@ -888,6 +870,25 @@ void __init trap_init(void) | |||
888 | per_cpu_trap_init(); | 870 | per_cpu_trap_init(); |
889 | } | 871 | } |
890 | 872 | ||
873 | #ifdef CONFIG_BUG | ||
874 | void handle_BUG(struct pt_regs *regs) | ||
875 | { | ||
876 | enum bug_trap_type tt; | ||
877 | tt = report_bug(regs->pc); | ||
878 | if (tt == BUG_TRAP_TYPE_WARN) { | ||
879 | regs->pc += 2; | ||
880 | return; | ||
881 | } | ||
882 | |||
883 | die("Kernel BUG", regs, TRAPA_BUG_OPCODE & 0xff); | ||
884 | } | ||
885 | |||
886 | int is_valid_bugaddr(unsigned long addr) | ||
887 | { | ||
888 | return addr >= PAGE_OFFSET; | ||
889 | } | ||
890 | #endif | ||
891 | |||
891 | void show_trace(struct task_struct *tsk, unsigned long *sp, | 892 | void show_trace(struct task_struct *tsk, unsigned long *sp, |
892 | struct pt_regs *regs) | 893 | struct pt_regs *regs) |
893 | { | 894 | { |
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 2f606d0ce1f6..d83143cc5ca9 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -34,9 +34,11 @@ SECTIONS | |||
34 | __ex_table : { *(__ex_table) } | 34 | __ex_table : { *(__ex_table) } |
35 | __stop___ex_table = .; | 35 | __stop___ex_table = .; |
36 | 36 | ||
37 | _etext = .; /* End of text section */ | ||
38 | |||
37 | RODATA | 39 | RODATA |
38 | 40 | ||
39 | _etext = .; /* End of text section */ | 41 | BUG_TABLE |
40 | 42 | ||
41 | .data : { /* Data */ | 43 | .data : { /* Data */ |
42 | *(.data) | 44 | *(.data) |
@@ -53,6 +55,10 @@ SECTIONS | |||
53 | 55 | ||
54 | . = ALIGN(PAGE_SIZE); | 56 | . = ALIGN(PAGE_SIZE); |
55 | .data.page_aligned : { *(.data.page_aligned) } | 57 | .data.page_aligned : { *(.data.page_aligned) } |
58 | __nosave_begin = .; | ||
59 | .data_nosave : { *(.data.nosave) } | ||
60 | . = ALIGN(PAGE_SIZE); | ||
61 | __nosave_end = .; | ||
56 | 62 | ||
57 | . = ALIGN(PAGE_SIZE); | 63 | . = ALIGN(PAGE_SIZE); |
58 | __per_cpu_start = .; | 64 | __per_cpu_start = .; |
@@ -110,43 +116,10 @@ SECTIONS | |||
110 | * it's a module. | 116 | * it's a module. |
111 | */ | 117 | */ |
112 | /DISCARD/ : { | 118 | /DISCARD/ : { |
113 | *(.exit.text) | ||
114 | *(.exit.data) | ||
115 | *(.exitcall.exit) | 119 | *(.exitcall.exit) |
116 | } | 120 | } |
117 | 121 | ||
118 | /* Stabs debugging sections. */ | 122 | STABS_DEBUG |
119 | .stab 0 : { *(.stab) } | 123 | |
120 | .stabstr 0 : { *(.stabstr) } | 124 | DWARF_DEBUG |
121 | .stab.excl 0 : { *(.stab.excl) } | ||
122 | .stab.exclstr 0 : { *(.stab.exclstr) } | ||
123 | .stab.index 0 : { *(.stab.index) } | ||
124 | .stab.indexstr 0 : { *(.stab.indexstr) } | ||
125 | .comment 0 : { *(.comment) } | ||
126 | /* DWARF debug sections. | ||
127 | Symbols in the DWARF debugging section are relative to the beginning | ||
128 | of the section so we begin .debug at 0. */ | ||
129 | /* DWARF 1 */ | ||
130 | .debug 0 : { *(.debug) } | ||
131 | .line 0 : { *(.line) } | ||
132 | /* GNU DWARF 1 extensions */ | ||
133 | .debug_srcinfo 0 : { *(.debug_srcinfo) } | ||
134 | .debug_sfnames 0 : { *(.debug_sfnames) } | ||
135 | /* DWARF 1.1 and DWARF 2 */ | ||
136 | .debug_aranges 0 : { *(.debug_aranges) } | ||
137 | .debug_pubnames 0 : { *(.debug_pubnames) } | ||
138 | /* DWARF 2 */ | ||
139 | .debug_info 0 : { *(.debug_info) } | ||
140 | .debug_abbrev 0 : { *(.debug_abbrev) } | ||
141 | .debug_line 0 : { *(.debug_line) } | ||
142 | .debug_frame 0 : { *(.debug_frame) } | ||
143 | .debug_str 0 : { *(.debug_str) } | ||
144 | .debug_loc 0 : { *(.debug_loc) } | ||
145 | .debug_macinfo 0 : { *(.debug_macinfo) } | ||
146 | /* SGI/MIPS DWARF 2 extensions */ | ||
147 | .debug_weaknames 0 : { *(.debug_weaknames) } | ||
148 | .debug_funcnames 0 : { *(.debug_funcnames) } | ||
149 | .debug_typenames 0 : { *(.debug_typenames) } | ||
150 | .debug_varnames 0 : { *(.debug_varnames) } | ||
151 | /* These must appear regardless of . */ | ||
152 | } | 125 | } |
diff --git a/arch/sh/lib/Makefile b/arch/sh/lib/Makefile index 0b9cca5c7cb4..e23dd1a3fccd 100644 --- a/arch/sh/lib/Makefile +++ b/arch/sh/lib/Makefile | |||
@@ -3,11 +3,9 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | lib-y = delay.o memset.o memmove.o memchr.o \ | 5 | lib-y = delay.o memset.o memmove.o memchr.o \ |
6 | checksum.o strlen.o div64.o udivdi3.o \ | 6 | checksum.o strlen.o div64.o div64-generic.o |
7 | div64-generic.o | ||
8 | 7 | ||
9 | memcpy-y := memcpy.o | 8 | memcpy-y := memcpy.o |
10 | memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o | 9 | memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o |
11 | 10 | ||
12 | lib-y += $(memcpy-y) | 11 | lib-y += $(memcpy-y) |
13 | |||
diff --git a/arch/sh/lib/udivdi3.c b/arch/sh/lib/udivdi3.c deleted file mode 100644 index 68f038bf3c50..000000000000 --- a/arch/sh/lib/udivdi3.c +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /* | ||
2 | * Simple __udivdi3 function which doesn't use FPU. | ||
3 | */ | ||
4 | |||
5 | #include <linux/types.h> | ||
6 | |||
7 | extern u64 __xdiv64_32(u64 n, u32 d); | ||
8 | extern void panic(const char * fmt, ...); | ||
9 | |||
10 | u64 __udivdi3(u64 n, u64 d) | ||
11 | { | ||
12 | if (d & ~0xffffffff) | ||
13 | panic("Need true 64-bit/64-bit division"); | ||
14 | return __xdiv64_32(n, (u32)d); | ||
15 | } | ||
16 | |||
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index 6b0d28ac9241..12f3d394dc28 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -67,6 +67,7 @@ config CPU_SUBTYPE_SH7300 | |||
67 | config CPU_SUBTYPE_SH7705 | 67 | config CPU_SUBTYPE_SH7705 |
68 | bool "Support SH7705 processor" | 68 | bool "Support SH7705 processor" |
69 | select CPU_SH3 | 69 | select CPU_SH3 |
70 | select CPU_HAS_IPR_IRQ | ||
70 | select CPU_HAS_PINT_IRQ | 71 | select CPU_HAS_PINT_IRQ |
71 | 72 | ||
72 | config CPU_SUBTYPE_SH7706 | 73 | config CPU_SUBTYPE_SH7706 |
@@ -101,9 +102,17 @@ config CPU_SUBTYPE_SH7709 | |||
101 | config CPU_SUBTYPE_SH7710 | 102 | config CPU_SUBTYPE_SH7710 |
102 | bool "Support SH7710 processor" | 103 | bool "Support SH7710 processor" |
103 | select CPU_SH3 | 104 | select CPU_SH3 |
105 | select CPU_HAS_IPR_IRQ | ||
104 | help | 106 | help |
105 | Select SH7710 if you have a SH3-DSP SH7710 CPU. | 107 | Select SH7710 if you have a SH3-DSP SH7710 CPU. |
106 | 108 | ||
109 | config CPU_SUBTYPE_SH7712 | ||
110 | bool "Support SH7712 processor" | ||
111 | select CPU_SH3 | ||
112 | select CPU_HAS_IPR_IRQ | ||
113 | help | ||
114 | Select SH7712 if you have a SH3-DSP SH7712 CPU. | ||
115 | |||
107 | comment "SH-4 Processor Support" | 116 | comment "SH-4 Processor Support" |
108 | 117 | ||
109 | config CPU_SUBTYPE_SH7750 | 118 | config CPU_SUBTYPE_SH7750 |
@@ -283,6 +292,17 @@ config VSYSCALL | |||
283 | For systems with an MMU that can afford to give up a page, | 292 | For systems with an MMU that can afford to give up a page, |
284 | (the default value) say Y. | 293 | (the default value) say Y. |
285 | 294 | ||
295 | config NODES_SHIFT | ||
296 | int | ||
297 | default "1" | ||
298 | depends on NEED_MULTIPLE_NODES | ||
299 | |||
300 | config ARCH_FLATMEM_ENABLE | ||
301 | def_bool y | ||
302 | |||
303 | config ARCH_POPULATES_NODE_MAP | ||
304 | def_bool y | ||
305 | |||
286 | choice | 306 | choice |
287 | prompt "Kernel page size" | 307 | prompt "Kernel page size" |
288 | default PAGE_SIZE_4KB | 308 | default PAGE_SIZE_4KB |
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index fa5d7f0b9f18..0ecc117cade4 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Page fault handler for SH with an MMU. | 2 | * Page fault handler for SH with an MMU. |
3 | * | 3 | * |
4 | * Copyright (C) 1999 Niibe Yutaka | 4 | * Copyright (C) 1999 Niibe Yutaka |
5 | * Copyright (C) 2003 Paul Mundt | 5 | * Copyright (C) 2003 - 2007 Paul Mundt |
6 | * | 6 | * |
7 | * Based on linux/arch/i386/mm/fault.c: | 7 | * Based on linux/arch/i386/mm/fault.c: |
8 | * Copyright (C) 1995 Linus Torvalds | 8 | * Copyright (C) 1995 Linus Torvalds |
@@ -15,12 +15,42 @@ | |||
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/hardirq.h> | 16 | #include <linux/hardirq.h> |
17 | #include <linux/kprobes.h> | 17 | #include <linux/kprobes.h> |
18 | #include <asm/kdebug.h> | ||
18 | #include <asm/system.h> | 19 | #include <asm/system.h> |
19 | #include <asm/mmu_context.h> | 20 | #include <asm/mmu_context.h> |
20 | #include <asm/tlbflush.h> | 21 | #include <asm/tlbflush.h> |
21 | #include <asm/kgdb.h> | 22 | #include <asm/kgdb.h> |
22 | 23 | ||
23 | extern void die(const char *,struct pt_regs *,long); | 24 | #ifdef CONFIG_KPROBES |
25 | ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); | ||
26 | |||
27 | /* Hook to register for page fault notifications */ | ||
28 | int register_page_fault_notifier(struct notifier_block *nb) | ||
29 | { | ||
30 | return atomic_notifier_chain_register(¬ify_page_fault_chain, nb); | ||
31 | } | ||
32 | |||
33 | int unregister_page_fault_notifier(struct notifier_block *nb) | ||
34 | { | ||
35 | return atomic_notifier_chain_unregister(¬ify_page_fault_chain, nb); | ||
36 | } | ||
37 | |||
38 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | ||
39 | int trap, int sig) | ||
40 | { | ||
41 | struct die_args args = { | ||
42 | .regs = regs, | ||
43 | .trapnr = trap, | ||
44 | }; | ||
45 | return atomic_notifier_call_chain(¬ify_page_fault_chain, val, &args); | ||
46 | } | ||
47 | #else | ||
48 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | ||
49 | int trap, int sig) | ||
50 | { | ||
51 | return NOTIFY_DONE; | ||
52 | } | ||
53 | #endif | ||
24 | 54 | ||
25 | /* | 55 | /* |
26 | * This routine handles page faults. It determines the address, | 56 | * This routine handles page faults. It determines the address, |
@@ -39,6 +69,11 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, | |||
39 | siginfo_t info; | 69 | siginfo_t info; |
40 | 70 | ||
41 | trace_hardirqs_on(); | 71 | trace_hardirqs_on(); |
72 | |||
73 | if (notify_page_fault(DIE_PAGE_FAULT, regs, | ||
74 | writeaccess, SIGSEGV) == NOTIFY_STOP) | ||
75 | return; | ||
76 | |||
42 | local_irq_enable(); | 77 | local_irq_enable(); |
43 | 78 | ||
44 | #ifdef CONFIG_SH_KGDB | 79 | #ifdef CONFIG_SH_KGDB |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index ae957a932375..4d030988b368 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -1,37 +1,20 @@ | |||
1 | /* $Id: init.c,v 1.19 2004/02/21 04:42:16 kkojima Exp $ | 1 | /* |
2 | * | 2 | * linux/arch/sh/mm/init.c |
3 | * linux/arch/sh/mm/init.c | ||
4 | * | 3 | * |
5 | * Copyright (C) 1999 Niibe Yutaka | 4 | * Copyright (C) 1999 Niibe Yutaka |
6 | * Copyright (C) 2002, 2004 Paul Mundt | 5 | * Copyright (C) 2002 - 2007 Paul Mundt |
7 | * | 6 | * |
8 | * Based on linux/arch/i386/mm/init.c: | 7 | * Based on linux/arch/i386/mm/init.c: |
9 | * Copyright (C) 1995 Linus Torvalds | 8 | * Copyright (C) 1995 Linus Torvalds |
10 | */ | 9 | */ |
11 | |||
12 | #include <linux/signal.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/errno.h> | ||
16 | #include <linux/string.h> | ||
17 | #include <linux/types.h> | ||
18 | #include <linux/ptrace.h> | ||
19 | #include <linux/mman.h> | ||
20 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
21 | #include <linux/swap.h> | 11 | #include <linux/swap.h> |
22 | #include <linux/smp.h> | ||
23 | #include <linux/init.h> | 12 | #include <linux/init.h> |
24 | #include <linux/highmem.h> | ||
25 | #include <linux/bootmem.h> | 13 | #include <linux/bootmem.h> |
26 | #include <linux/pagemap.h> | ||
27 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
28 | #include <asm/processor.h> | 15 | #include <linux/percpu.h> |
29 | #include <asm/system.h> | 16 | #include <linux/io.h> |
30 | #include <asm/uaccess.h> | ||
31 | #include <asm/pgtable.h> | ||
32 | #include <asm/pgalloc.h> | ||
33 | #include <asm/mmu_context.h> | 17 | #include <asm/mmu_context.h> |
34 | #include <asm/io.h> | ||
35 | #include <asm/tlb.h> | 18 | #include <asm/tlb.h> |
36 | #include <asm/cacheflush.h> | 19 | #include <asm/cacheflush.h> |
37 | #include <asm/cache.h> | 20 | #include <asm/cache.h> |
@@ -39,37 +22,51 @@ | |||
39 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 22 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
40 | pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 23 | pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
41 | 24 | ||
42 | #ifdef CONFIG_MMU | ||
43 | /* It'd be good if these lines were in the standard header file. */ | ||
44 | #define START_PFN (NODE_DATA(0)->bdata->node_boot_start >> PAGE_SHIFT) | ||
45 | #define MAX_LOW_PFN (NODE_DATA(0)->bdata->node_low_pfn) | ||
46 | #endif | ||
47 | |||
48 | void (*copy_page)(void *from, void *to); | 25 | void (*copy_page)(void *from, void *to); |
49 | void (*clear_page)(void *to); | 26 | void (*clear_page)(void *to); |
50 | 27 | ||
51 | void show_mem(void) | 28 | void show_mem(void) |
52 | { | 29 | { |
53 | int i, total = 0, reserved = 0; | 30 | int total = 0, reserved = 0, free = 0; |
54 | int shared = 0, cached = 0; | 31 | int shared = 0, cached = 0, slab = 0; |
32 | pg_data_t *pgdat; | ||
55 | 33 | ||
56 | printk("Mem-info:\n"); | 34 | printk("Mem-info:\n"); |
57 | show_free_areas(); | 35 | show_free_areas(); |
58 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); | 36 | |
59 | i = max_mapnr; | 37 | for_each_online_pgdat(pgdat) { |
60 | while (i-- > 0) { | 38 | struct page *page, *end; |
61 | total++; | 39 | unsigned long flags; |
62 | if (PageReserved(mem_map+i)) | 40 | |
63 | reserved++; | 41 | pgdat_resize_lock(pgdat, &flags); |
64 | else if (PageSwapCache(mem_map+i)) | 42 | page = pgdat->node_mem_map; |
65 | cached++; | 43 | end = page + pgdat->node_spanned_pages; |
66 | else if (page_count(mem_map+i)) | 44 | |
67 | shared += page_count(mem_map+i) - 1; | 45 | do { |
46 | total++; | ||
47 | if (PageReserved(page)) | ||
48 | reserved++; | ||
49 | else if (PageSwapCache(page)) | ||
50 | cached++; | ||
51 | else if (PageSlab(page)) | ||
52 | slab++; | ||
53 | else if (!page_count(page)) | ||
54 | free++; | ||
55 | else | ||
56 | shared += page_count(page) - 1; | ||
57 | page++; | ||
58 | } while (page < end); | ||
59 | |||
60 | pgdat_resize_unlock(pgdat, &flags); | ||
68 | } | 61 | } |
69 | printk("%d pages of RAM\n",total); | 62 | |
70 | printk("%d reserved pages\n",reserved); | 63 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); |
71 | printk("%d pages shared\n",shared); | 64 | printk("%d pages of RAM\n", total); |
72 | printk("%d pages swap cached\n",cached); | 65 | printk("%d free pages\n", free); |
66 | printk("%d reserved pages\n", reserved); | ||
67 | printk("%d slab pages\n", slab); | ||
68 | printk("%d pages shared\n", shared); | ||
69 | printk("%d pages swap cached\n", cached); | ||
73 | } | 70 | } |
74 | 71 | ||
75 | #ifdef CONFIG_MMU | 72 | #ifdef CONFIG_MMU |
@@ -147,52 +144,38 @@ extern char __init_begin, __init_end; | |||
147 | */ | 144 | */ |
148 | void __init paging_init(void) | 145 | void __init paging_init(void) |
149 | { | 146 | { |
150 | unsigned long zones_size[MAX_NR_ZONES] = { 0, }; | 147 | int nid; |
151 | 148 | ||
152 | /* | 149 | /* We don't need to map the kernel through the TLB, as |
153 | * Setup some defaults for the zone sizes.. these should be safe | 150 | * it is permanatly mapped using P1. So clear the |
154 | * regardless of distcontiguous memory or MMU settings. | 151 | * entire pgd. */ |
155 | */ | 152 | memset(swapper_pg_dir, 0, sizeof(swapper_pg_dir)); |
156 | zones_size[ZONE_NORMAL] = __MEMORY_SIZE >> PAGE_SHIFT; | ||
157 | #ifdef CONFIG_HIGHMEM | ||
158 | zones_size[ZONE_HIGHMEM] = 0 >> PAGE_SHIFT; | ||
159 | #endif | ||
160 | |||
161 | #ifdef CONFIG_MMU | ||
162 | /* | ||
163 | * If we have an MMU, and want to be using it .. we need to adjust | ||
164 | * the zone sizes accordingly, in addition to turning it on. | ||
165 | */ | ||
166 | { | ||
167 | /* We don't need to map the kernel through the TLB, as | ||
168 | * it is permanatly mapped using P1. So clear the | ||
169 | * entire pgd. */ | ||
170 | memset(swapper_pg_dir, 0, sizeof(swapper_pg_dir)); | ||
171 | |||
172 | /* Turn on the MMU */ | ||
173 | enable_mmu(); | ||
174 | zones_size[ZONE_NORMAL] = MAX_LOW_PFN - START_PFN; | ||
175 | } | ||
176 | 153 | ||
177 | /* Set an initial value for the MMU.TTB so we don't have to | 154 | /* Set an initial value for the MMU.TTB so we don't have to |
178 | * check for a null value. */ | 155 | * check for a null value. */ |
179 | set_TTB(swapper_pg_dir); | 156 | set_TTB(swapper_pg_dir); |
180 | 157 | ||
181 | #elif defined(CONFIG_CPU_SH3) || defined(CONFIG_CPU_SH4) | 158 | for_each_online_node(nid) { |
182 | /* | 159 | pg_data_t *pgdat = NODE_DATA(nid); |
183 | * If we don't have CONFIG_MMU set and the processor in question | 160 | unsigned long max_zone_pfns[MAX_NR_ZONES]; |
184 | * still has an MMU, care needs to be taken to make sure it doesn't | 161 | unsigned long low, start_pfn; |
185 | * stay on.. Since the boot loader could have potentially already | 162 | |
186 | * turned it on, and we clearly don't want it, we simply turn it off. | 163 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
187 | * | 164 | |
188 | * We don't need to do anything special for the zone sizes, since the | 165 | start_pfn = pgdat->bdata->node_boot_start >> PAGE_SHIFT; |
189 | * default values that were already configured up above should be | 166 | low = pgdat->bdata->node_low_pfn; |
190 | * satisfactory. | 167 | |
191 | */ | 168 | max_zone_pfns[ZONE_NORMAL] = low; |
192 | disable_mmu(); | 169 | add_active_range(nid, start_pfn, low); |
193 | #endif | 170 | |
194 | NODE_DATA(0)->node_mem_map = NULL; | 171 | printk("Node %u: start_pfn = 0x%lx, low = 0x%lx\n", |
195 | free_area_init_node(0, NODE_DATA(0), zones_size, __MEMORY_START >> PAGE_SHIFT, 0); | 172 | nid, start_pfn, low); |
173 | |||
174 | free_area_init_nodes(max_zone_pfns); | ||
175 | |||
176 | printk("Node %u: mem_map starts at %p\n", | ||
177 | pgdat->node_id, pgdat->node_mem_map); | ||
178 | } | ||
196 | } | 179 | } |
197 | 180 | ||
198 | static struct kcore_list kcore_mem, kcore_vmalloc; | 181 | static struct kcore_list kcore_mem, kcore_vmalloc; |
@@ -200,18 +183,33 @@ static struct kcore_list kcore_mem, kcore_vmalloc; | |||
200 | void __init mem_init(void) | 183 | void __init mem_init(void) |
201 | { | 184 | { |
202 | int codesize, reservedpages, datasize, initsize; | 185 | int codesize, reservedpages, datasize, initsize; |
203 | int tmp; | 186 | int nid; |
204 | extern unsigned long memory_start; | ||
205 | 187 | ||
206 | #ifdef CONFIG_MMU | 188 | reservedpages = 0; |
207 | high_memory = (void *)__va(MAX_LOW_PFN * PAGE_SIZE); | ||
208 | #else | ||
209 | extern unsigned long memory_end; | ||
210 | 189 | ||
211 | high_memory = (void *)(memory_end & PAGE_MASK); | 190 | for_each_online_node(nid) { |
212 | #endif | 191 | pg_data_t *pgdat = NODE_DATA(nid); |
192 | unsigned long node_pages = 0; | ||
193 | void *node_high_memory; | ||
194 | int i; | ||
195 | |||
196 | num_physpages += pgdat->node_present_pages; | ||
197 | |||
198 | if (pgdat->node_spanned_pages) | ||
199 | node_pages = free_all_bootmem_node(pgdat); | ||
200 | |||
201 | totalram_pages += node_pages; | ||
213 | 202 | ||
214 | max_mapnr = num_physpages = MAP_NR(high_memory) - MAP_NR(memory_start); | 203 | for (i = 0; i < node_pages; i++) |
204 | if (PageReserved(pgdat->node_mem_map + i)) | ||
205 | reservedpages++; | ||
206 | |||
207 | node_high_memory = (void *)((pgdat->node_start_pfn + | ||
208 | pgdat->node_spanned_pages) << | ||
209 | PAGE_SHIFT); | ||
210 | if (node_high_memory > high_memory) | ||
211 | high_memory = node_high_memory; | ||
212 | } | ||
215 | 213 | ||
216 | /* clear the zero-page */ | 214 | /* clear the zero-page */ |
217 | memset(empty_zero_page, 0, PAGE_SIZE); | 215 | memset(empty_zero_page, 0, PAGE_SIZE); |
@@ -229,16 +227,6 @@ void __init mem_init(void) | |||
229 | clear_page = clear_page_nommu; | 227 | clear_page = clear_page_nommu; |
230 | #endif | 228 | #endif |
231 | 229 | ||
232 | /* this will put all low memory onto the freelists */ | ||
233 | totalram_pages += free_all_bootmem_node(NODE_DATA(0)); | ||
234 | reservedpages = 0; | ||
235 | for (tmp = 0; tmp < num_physpages; tmp++) | ||
236 | /* | ||
237 | * Only count reserved RAM pages | ||
238 | */ | ||
239 | if (PageReserved(mem_map+tmp)) | ||
240 | reservedpages++; | ||
241 | |||
242 | codesize = (unsigned long) &_etext - (unsigned long) &_text; | 230 | codesize = (unsigned long) &_etext - (unsigned long) &_text; |
243 | datasize = (unsigned long) &_edata - (unsigned long) &_etext; | 231 | datasize = (unsigned long) &_edata - (unsigned long) &_etext; |
244 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; | 232 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; |
@@ -250,7 +238,7 @@ void __init mem_init(void) | |||
250 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " | 238 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " |
251 | "%dk reserved, %dk data, %dk init)\n", | 239 | "%dk reserved, %dk data, %dk init)\n", |
252 | (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), | 240 | (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), |
253 | max_mapnr << (PAGE_SHIFT-10), | 241 | totalram_pages << (PAGE_SHIFT-10), |
254 | codesize >> 10, | 242 | codesize >> 10, |
255 | reservedpages << (PAGE_SHIFT-10), | 243 | reservedpages << (PAGE_SHIFT-10), |
256 | datasize >> 10, | 244 | datasize >> 10, |
@@ -289,4 +277,3 @@ void free_initrd_mem(unsigned long start, unsigned long end) | |||
289 | printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); | 277 | printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); |
290 | } | 278 | } |
291 | #endif | 279 | #endif |
292 | |||
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types index 4fe0f94cbf42..554f801db67b 100644 --- a/arch/sh/tools/mach-types +++ b/arch/sh/tools/mach-types | |||
@@ -9,6 +9,7 @@ SE SH_SOLUTION_ENGINE | |||
9 | 7751SE SH_7751_SOLUTION_ENGINE | 9 | 7751SE SH_7751_SOLUTION_ENGINE |
10 | 7300SE SH_7300_SOLUTION_ENGINE | 10 | 7300SE SH_7300_SOLUTION_ENGINE |
11 | 7343SE SH_7343_SOLUTION_ENGINE | 11 | 7343SE SH_7343_SOLUTION_ENGINE |
12 | 7780SE SH_7780_SOLUTION_ENGINE | ||
12 | 73180SE SH_73180_SOLUTION_ENGINE | 13 | 73180SE SH_73180_SOLUTION_ENGINE |
13 | 7751SYSTEMH SH_7751_SYSTEMH | 14 | 7751SYSTEMH SH_7751_SYSTEMH |
14 | HP6XX SH_HP6XX | 15 | HP6XX SH_HP6XX |
@@ -26,6 +27,7 @@ SH03 SH_SH03 | |||
26 | LANDISK SH_LANDISK | 27 | LANDISK SH_LANDISK |
27 | R7780RP SH_R7780RP | 28 | R7780RP SH_R7780RP |
28 | R7780MP SH_R7780MP | 29 | R7780MP SH_R7780MP |
30 | R7785RP SH_R7785RP | ||
29 | TITAN SH_TITAN | 31 | TITAN SH_TITAN |
30 | SHMIN SH_SHMIN | 32 | SHMIN SH_SHMIN |
31 | 7710VOIPGW SH_7710VOIPGW | 33 | 7710VOIPGW SH_7710VOIPGW |
diff --git a/drivers/input/touchscreen/hp680_ts_input.c b/drivers/input/touchscreen/hp680_ts_input.c index 249087472740..61c15024c2a0 100644 --- a/drivers/input/touchscreen/hp680_ts_input.c +++ b/drivers/input/touchscreen/hp680_ts_input.c | |||
@@ -21,7 +21,7 @@ | |||
21 | static void do_softint(void *data); | 21 | static void do_softint(void *data); |
22 | 22 | ||
23 | static struct input_dev *hp680_ts_dev; | 23 | static struct input_dev *hp680_ts_dev; |
24 | static DECLARE_WORK(work, do_softint, 0); | 24 | static DECLARE_WORK(work, do_softint); |
25 | 25 | ||
26 | static void do_softint(void *data) | 26 | static void do_softint(void *data) |
27 | { | 27 | { |
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 46c40bbc4bc6..1f89496d530e 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | 48 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) |
49 | #include <linux/ctype.h> | ||
49 | #include <asm/clock.h> | 50 | #include <asm/clock.h> |
50 | #include <asm/sh_bios.h> | 51 | #include <asm/sh_bios.h> |
51 | #include <asm/kgdb.h> | 52 | #include <asm/kgdb.h> |
@@ -61,7 +62,7 @@ struct sci_port { | |||
61 | unsigned int type; | 62 | unsigned int type; |
62 | 63 | ||
63 | /* Port IRQs: ERI, RXI, TXI, BRI (optional) */ | 64 | /* Port IRQs: ERI, RXI, TXI, BRI (optional) */ |
64 | unsigned int irqs[SCIx_NR_IRQS]; | 65 | unsigned int irqs[SCIx_NR_IRQS]; |
65 | 66 | ||
66 | /* Port pin configuration */ | 67 | /* Port pin configuration */ |
67 | void (*init_pins)(struct uart_port *port, | 68 | void (*init_pins)(struct uart_port *port, |
@@ -76,6 +77,11 @@ struct sci_port { | |||
76 | /* Break timer */ | 77 | /* Break timer */ |
77 | struct timer_list break_timer; | 78 | struct timer_list break_timer; |
78 | int break_flag; | 79 | int break_flag; |
80 | |||
81 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | ||
82 | /* Port clock */ | ||
83 | struct clk *clk; | ||
84 | #endif | ||
79 | }; | 85 | }; |
80 | 86 | ||
81 | #ifdef CONFIG_SH_KGDB | 87 | #ifdef CONFIG_SH_KGDB |
@@ -163,7 +169,7 @@ static void put_string(struct sci_port *sci_port, const char *buffer, int count) | |||
163 | usegdb |= sh_bios_in_gdb_mode(); | 169 | usegdb |= sh_bios_in_gdb_mode(); |
164 | #endif | 170 | #endif |
165 | #ifdef CONFIG_SH_KGDB | 171 | #ifdef CONFIG_SH_KGDB |
166 | usegdb |= (kgdb_in_gdb_mode && (port == kgdb_sci_port)); | 172 | usegdb |= (kgdb_in_gdb_mode && (sci_port == kgdb_sci_port)); |
167 | #endif | 173 | #endif |
168 | 174 | ||
169 | if (usegdb) { | 175 | if (usegdb) { |
@@ -204,7 +210,7 @@ static int kgdb_sci_getchar(void) | |||
204 | int c; | 210 | int c; |
205 | 211 | ||
206 | /* Keep trying to read a character, this could be neater */ | 212 | /* Keep trying to read a character, this could be neater */ |
207 | while ((c = get_char(kgdb_sci_port)) < 0) | 213 | while ((c = get_char(&kgdb_sci_port->port)) < 0) |
208 | cpu_relax(); | 214 | cpu_relax(); |
209 | 215 | ||
210 | return c; | 216 | return c; |
@@ -212,7 +218,7 @@ static int kgdb_sci_getchar(void) | |||
212 | 218 | ||
213 | static inline void kgdb_sci_putchar(int c) | 219 | static inline void kgdb_sci_putchar(int c) |
214 | { | 220 | { |
215 | put_char(kgdb_sci_port, c); | 221 | put_char(&kgdb_sci_port->port, c); |
216 | } | 222 | } |
217 | #endif /* CONFIG_SH_KGDB */ | 223 | #endif /* CONFIG_SH_KGDB */ |
218 | 224 | ||
@@ -283,12 +289,23 @@ static void sci_init_pins_irda(struct uart_port *port, unsigned int cflag) | |||
283 | #endif | 289 | #endif |
284 | 290 | ||
285 | #if defined(SCIF_ONLY) || defined(SCI_AND_SCIF) | 291 | #if defined(SCIF_ONLY) || defined(SCI_AND_SCIF) |
286 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || defined(CONFIG_CPU_SUBTYPE_SH7710) | 292 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) |
287 | /* SH7300 doesn't use RTS/CTS */ | 293 | /* SH7300 doesn't use RTS/CTS */ |
288 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | 294 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) |
289 | { | 295 | { |
290 | sci_out(port, SCFCR, 0); | 296 | sci_out(port, SCFCR, 0); |
291 | } | 297 | } |
298 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) | ||
299 | static void sci_init_pins_scif(struct uart_port* port, unsigned int cflag) | ||
300 | { | ||
301 | unsigned int fcr_val = 0; | ||
302 | |||
303 | set_sh771x_scif_pfc(port); | ||
304 | if (cflag & CRTSCTS) { | ||
305 | fcr_val |= SCFCR_MCE; | ||
306 | } | ||
307 | sci_out(port, SCFCR, fcr_val); | ||
308 | } | ||
292 | #elif defined(CONFIG_CPU_SH3) | 309 | #elif defined(CONFIG_CPU_SH3) |
293 | /* For SH7705, SH7706, SH7707, SH7709, SH7709A, SH7729 */ | 310 | /* For SH7705, SH7706, SH7707, SH7709, SH7709A, SH7729 */ |
294 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | 311 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) |
@@ -350,7 +367,7 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | |||
350 | } else { | 367 | } else { |
351 | #ifdef CONFIG_CPU_SUBTYPE_SH7343 | 368 | #ifdef CONFIG_CPU_SUBTYPE_SH7343 |
352 | /* Nothing */ | 369 | /* Nothing */ |
353 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) | 370 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785) |
354 | ctrl_outw(0x0080, SCSPTR0); /* Set RTS = 1 */ | 371 | ctrl_outw(0x0080, SCSPTR0); /* Set RTS = 1 */ |
355 | #else | 372 | #else |
356 | ctrl_outw(0x0080, SCSPTR2); /* Set RTS = 1 */ | 373 | ctrl_outw(0x0080, SCSPTR2); /* Set RTS = 1 */ |
@@ -360,7 +377,9 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | |||
360 | } | 377 | } |
361 | #endif | 378 | #endif |
362 | 379 | ||
363 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780) | 380 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || \ |
381 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
382 | defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
364 | static inline int scif_txroom(struct uart_port *port) | 383 | static inline int scif_txroom(struct uart_port *port) |
365 | { | 384 | { |
366 | return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f); | 385 | return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f); |
@@ -735,12 +754,6 @@ static irqreturn_t sci_br_interrupt(int irq, void *ptr) | |||
735 | 754 | ||
736 | /* Handle BREAKs */ | 755 | /* Handle BREAKs */ |
737 | sci_handle_breaks(port); | 756 | sci_handle_breaks(port); |
738 | |||
739 | #ifdef CONFIG_SH_KGDB | ||
740 | /* Break into the debugger if a break is detected */ | ||
741 | BREAKPOINT(); | ||
742 | #endif | ||
743 | |||
744 | sci_out(port, SCxSR, SCxSR_BREAK_CLEAR(port)); | 757 | sci_out(port, SCxSR, SCxSR_BREAK_CLEAR(port)); |
745 | 758 | ||
746 | return IRQ_HANDLED; | 759 | return IRQ_HANDLED; |
@@ -947,6 +960,10 @@ static int sci_startup(struct uart_port *port) | |||
947 | if (s->enable) | 960 | if (s->enable) |
948 | s->enable(port); | 961 | s->enable(port); |
949 | 962 | ||
963 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | ||
964 | s->clk = clk_get(NULL, "module_clk"); | ||
965 | #endif | ||
966 | |||
950 | sci_request_irq(s); | 967 | sci_request_irq(s); |
951 | sci_start_tx(port); | 968 | sci_start_tx(port); |
952 | sci_start_rx(port, 1); | 969 | sci_start_rx(port, 1); |
@@ -964,6 +981,11 @@ static void sci_shutdown(struct uart_port *port) | |||
964 | 981 | ||
965 | if (s->disable) | 982 | if (s->disable) |
966 | s->disable(port); | 983 | s->disable(port); |
984 | |||
985 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | ||
986 | clk_put(s->clk); | ||
987 | s->clk = NULL; | ||
988 | #endif | ||
967 | } | 989 | } |
968 | 990 | ||
969 | static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | 991 | static void sci_set_termios(struct uart_port *port, struct ktermios *termios, |
@@ -971,7 +993,6 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | |||
971 | { | 993 | { |
972 | struct sci_port *s = &sci_ports[port->line]; | 994 | struct sci_port *s = &sci_ports[port->line]; |
973 | unsigned int status, baud, smr_val; | 995 | unsigned int status, baud, smr_val; |
974 | unsigned long flags; | ||
975 | int t; | 996 | int t; |
976 | 997 | ||
977 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); | 998 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); |
@@ -983,18 +1004,14 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | |||
983 | default: | 1004 | default: |
984 | { | 1005 | { |
985 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | 1006 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) |
986 | struct clk *clk = clk_get(NULL, "module_clk"); | 1007 | t = SCBRR_VALUE(baud, clk_get_rate(s->clk)); |
987 | t = SCBRR_VALUE(baud, clk_get_rate(clk)); | ||
988 | clk_put(clk); | ||
989 | #else | 1008 | #else |
990 | t = SCBRR_VALUE(baud); | 1009 | t = SCBRR_VALUE(baud); |
991 | #endif | 1010 | #endif |
992 | } | ||
993 | break; | 1011 | break; |
1012 | } | ||
994 | } | 1013 | } |
995 | 1014 | ||
996 | spin_lock_irqsave(&port->lock, flags); | ||
997 | |||
998 | do { | 1015 | do { |
999 | status = sci_in(port, SCxSR); | 1016 | status = sci_in(port, SCxSR); |
1000 | } while (!(status & SCxSR_TEND(port))); | 1017 | } while (!(status & SCxSR_TEND(port))); |
@@ -1038,8 +1055,6 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | |||
1038 | 1055 | ||
1039 | if ((termios->c_cflag & CREAD) != 0) | 1056 | if ((termios->c_cflag & CREAD) != 0) |
1040 | sci_start_rx(port,0); | 1057 | sci_start_rx(port,0); |
1041 | |||
1042 | spin_unlock_irqrestore(&port->lock, flags); | ||
1043 | } | 1058 | } |
1044 | 1059 | ||
1045 | static const char *sci_type(struct uart_port *port) | 1060 | static const char *sci_type(struct uart_port *port) |
@@ -1220,10 +1235,13 @@ static int __init serial_console_setup(struct console *co, char *options) | |||
1220 | if (!port->membase || !port->mapbase) | 1235 | if (!port->membase || !port->mapbase) |
1221 | return -ENODEV; | 1236 | return -ENODEV; |
1222 | 1237 | ||
1223 | spin_lock_init(&port->lock); | ||
1224 | |||
1225 | port->type = serial_console_port->type; | 1238 | port->type = serial_console_port->type; |
1226 | 1239 | ||
1240 | #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64) | ||
1241 | if (!serial_console_port->clk) | ||
1242 | serial_console_port->clk = clk_get(NULL, "module_clk"); | ||
1243 | #endif | ||
1244 | |||
1227 | if (port->flags & UPF_IOREMAP) | 1245 | if (port->flags & UPF_IOREMAP) |
1228 | sci_config_port(port, 0); | 1246 | sci_config_port(port, 0); |
1229 | 1247 | ||
@@ -1247,7 +1265,7 @@ static struct console serial_console = { | |||
1247 | .device = uart_console_device, | 1265 | .device = uart_console_device, |
1248 | .write = serial_console_write, | 1266 | .write = serial_console_write, |
1249 | .setup = serial_console_setup, | 1267 | .setup = serial_console_setup, |
1250 | .flags = CON_PRINTBUFFER, | 1268 | .flags = CON_PRINTBUFFER, |
1251 | .index = -1, | 1269 | .index = -1, |
1252 | .data = &sci_uart_driver, | 1270 | .data = &sci_uart_driver, |
1253 | }; | 1271 | }; |
@@ -1292,11 +1310,23 @@ int __init kgdb_console_setup(struct console *co, char *options) | |||
1292 | int parity = 'n'; | 1310 | int parity = 'n'; |
1293 | int flow = 'n'; | 1311 | int flow = 'n'; |
1294 | 1312 | ||
1295 | spin_lock_init(&port->lock); | ||
1296 | |||
1297 | if (co->index != kgdb_portnum) | 1313 | if (co->index != kgdb_portnum) |
1298 | co->index = kgdb_portnum; | 1314 | co->index = kgdb_portnum; |
1299 | 1315 | ||
1316 | kgdb_sci_port = &sci_ports[co->index]; | ||
1317 | port = &kgdb_sci_port->port; | ||
1318 | |||
1319 | /* | ||
1320 | * Also need to check port->type, we don't actually have any | ||
1321 | * UPIO_PORT ports, but uart_report_port() handily misreports | ||
1322 | * it anyways if we don't have a port available by the time this is | ||
1323 | * called. | ||
1324 | */ | ||
1325 | if (!port->type) | ||
1326 | return -ENODEV; | ||
1327 | if (!port->membase || !port->mapbase) | ||
1328 | return -ENODEV; | ||
1329 | |||
1300 | if (options) | 1330 | if (options) |
1301 | uart_parse_options(options, &baud, &parity, &bits, &flow); | 1331 | uart_parse_options(options, &baud, &parity, &bits, &flow); |
1302 | else | 1332 | else |
@@ -1311,11 +1341,12 @@ int __init kgdb_console_setup(struct console *co, char *options) | |||
1311 | 1341 | ||
1312 | #ifdef CONFIG_SH_KGDB_CONSOLE | 1342 | #ifdef CONFIG_SH_KGDB_CONSOLE |
1313 | static struct console kgdb_console = { | 1343 | static struct console kgdb_console = { |
1314 | .name = "ttySC", | 1344 | .name = "ttySC", |
1315 | .write = kgdb_console_write, | 1345 | .device = uart_console_device, |
1316 | .setup = kgdb_console_setup, | 1346 | .write = kgdb_console_write, |
1317 | .flags = CON_PRINTBUFFER | CON_ENABLED, | 1347 | .setup = kgdb_console_setup, |
1318 | .index = -1, | 1348 | .flags = CON_PRINTBUFFER, |
1349 | .index = -1, | ||
1319 | .data = &sci_uart_driver, | 1350 | .data = &sci_uart_driver, |
1320 | }; | 1351 | }; |
1321 | 1352 | ||
@@ -1361,9 +1392,19 @@ static int __devinit sci_probe(struct platform_device *dev) | |||
1361 | struct plat_sci_port *p = dev->dev.platform_data; | 1392 | struct plat_sci_port *p = dev->dev.platform_data; |
1362 | int i; | 1393 | int i; |
1363 | 1394 | ||
1364 | for (i = 0; p && p->flags != 0 && i < SCI_NPORTS; p++, i++) { | 1395 | for (i = 0; p && p->flags != 0; p++, i++) { |
1365 | struct sci_port *sciport = &sci_ports[i]; | 1396 | struct sci_port *sciport = &sci_ports[i]; |
1366 | 1397 | ||
1398 | /* Sanity check */ | ||
1399 | if (unlikely(i == SCI_NPORTS)) { | ||
1400 | dev_notice(&dev->dev, "Attempting to register port " | ||
1401 | "%d when only %d are available.\n", | ||
1402 | i+1, SCI_NPORTS); | ||
1403 | dev_notice(&dev->dev, "Consider bumping " | ||
1404 | "CONFIG_SERIAL_SH_SCI_NR_UARTS!\n"); | ||
1405 | break; | ||
1406 | } | ||
1407 | |||
1367 | sciport->port.mapbase = p->mapbase; | 1408 | sciport->port.mapbase = p->mapbase; |
1368 | 1409 | ||
1369 | /* | 1410 | /* |
@@ -1386,6 +1427,12 @@ static int __devinit sci_probe(struct platform_device *dev) | |||
1386 | uart_add_one_port(&sci_uart_driver, &sciport->port); | 1427 | uart_add_one_port(&sci_uart_driver, &sciport->port); |
1387 | } | 1428 | } |
1388 | 1429 | ||
1430 | #if defined(CONFIG_SH_KGDB) && !defined(CONFIG_SH_KGDB_CONSOLE) | ||
1431 | kgdb_sci_port = &sci_ports[kgdb_portnum]; | ||
1432 | kgdb_getchar = kgdb_sci_getchar; | ||
1433 | kgdb_putchar = kgdb_sci_putchar; | ||
1434 | #endif | ||
1435 | |||
1389 | #ifdef CONFIG_CPU_FREQ | 1436 | #ifdef CONFIG_CPU_FREQ |
1390 | cpufreq_register_notifier(&sci_nb, CPUFREQ_TRANSITION_NOTIFIER); | 1437 | cpufreq_register_notifier(&sci_nb, CPUFREQ_TRANSITION_NOTIFIER); |
1391 | dev_info(&dev->dev, "sci: CPU frequency notifier registered\n"); | 1438 | dev_info(&dev->dev, "sci: CPU frequency notifier registered\n"); |
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h index 77f7d6351ab1..fb04fb5f9843 100644 --- a/drivers/serial/sh-sci.h +++ b/drivers/serial/sh-sci.h | |||
@@ -73,9 +73,13 @@ | |||
73 | # define SCPDR 0xA4050136 /* 16 bit SCIF */ | 73 | # define SCPDR 0xA4050136 /* 16 bit SCIF */ |
74 | # define SCSCR_INIT(port) 0x0030 /* TIE=0,RIE=0,TE=1,RE=1 */ | 74 | # define SCSCR_INIT(port) 0x0030 /* TIE=0,RIE=0,TE=1,RE=1 */ |
75 | # define SCIF_ONLY | 75 | # define SCIF_ONLY |
76 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) | 76 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) |
77 | # define SCSPTR0 0xA4400000 /* 16 bit SCIF */ | 77 | # define SCSPTR0 0xA4400000 /* 16 bit SCIF */ |
78 | # define SCSCR_INIT(port) 0x0030 /* TIE=0,RIE=0,TE=1,RE=1 */ | 78 | # define SCI_NPORTS 2 |
79 | # define SCIF_ORER 0x0001 /* overrun error bit */ | ||
80 | # define PACR 0xa4050100 | ||
81 | # define PBCR 0xa4050102 | ||
82 | # define SCSCR_INIT(port) 0x3B | ||
79 | # define SCIF_ONLY | 83 | # define SCIF_ONLY |
80 | #elif defined(CONFIG_CPU_SUBTYPE_SH73180) | 84 | #elif defined(CONFIG_CPU_SUBTYPE_SH73180) |
81 | # define SCPDR 0xA4050138 /* 16 bit SCIF */ | 85 | # define SCPDR 0xA4050138 /* 16 bit SCIF */ |
@@ -140,6 +144,16 @@ | |||
140 | # define SCIF_ORER 0x0001 /* Overrun error bit */ | 144 | # define SCIF_ORER 0x0001 /* Overrun error bit */ |
141 | # define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ | 145 | # define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ |
142 | # define SCIF_ONLY | 146 | # define SCIF_ONLY |
147 | #elif defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
148 | # define SCSPTR0 0xffea0024 /* 16 bit SCIF */ | ||
149 | # define SCSPTR1 0xffeb0024 /* 16 bit SCIF */ | ||
150 | # define SCSPTR2 0xffec0024 /* 16 bit SCIF */ | ||
151 | # define SCSPTR3 0xffed0024 /* 16 bit SCIF */ | ||
152 | # define SCSPTR4 0xffee0024 /* 16 bit SCIF */ | ||
153 | # define SCSPTR5 0xffef0024 /* 16 bit SCIF */ | ||
154 | # define SCIF_OPER 0x0001 /* Overrun error bit */ | ||
155 | # define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ | ||
156 | # define SCIF_ONLY | ||
143 | #elif defined(CONFIG_CPU_SUBTYPE_SH7206) | 157 | #elif defined(CONFIG_CPU_SUBTYPE_SH7206) |
144 | # define SCSPTR0 0xfffe8020 /* 16 bit SCIF */ | 158 | # define SCSPTR0 0xfffe8020 /* 16 bit SCIF */ |
145 | # define SCSPTR1 0xfffe8820 /* 16 bit SCIF */ | 159 | # define SCSPTR1 0xfffe8820 /* 16 bit SCIF */ |
@@ -163,7 +177,10 @@ | |||
163 | #define SCI_CTRL_FLAGS_RIE 0x40 /* all */ | 177 | #define SCI_CTRL_FLAGS_RIE 0x40 /* all */ |
164 | #define SCI_CTRL_FLAGS_TE 0x20 /* all */ | 178 | #define SCI_CTRL_FLAGS_TE 0x20 /* all */ |
165 | #define SCI_CTRL_FLAGS_RE 0x10 /* all */ | 179 | #define SCI_CTRL_FLAGS_RE 0x10 /* all */ |
166 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || defined(CONFIG_CPU_SUBTYPE_SH7751) || defined(CONFIG_CPU_SUBTYPE_SH7780) | 180 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || \ |
181 | defined(CONFIG_CPU_SUBTYPE_SH7751) || \ | ||
182 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
183 | defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
167 | #define SCI_CTRL_FLAGS_REIE 0x08 /* 7750 SCIF */ | 184 | #define SCI_CTRL_FLAGS_REIE 0x08 /* 7750 SCIF */ |
168 | #else | 185 | #else |
169 | #define SCI_CTRL_FLAGS_REIE 0 | 186 | #define SCI_CTRL_FLAGS_REIE 0 |
@@ -333,9 +350,15 @@ | |||
333 | } | 350 | } |
334 | 351 | ||
335 | #ifdef CONFIG_CPU_SH3 | 352 | #ifdef CONFIG_CPU_SH3 |
336 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || \ | 353 | #if defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) |
337 | defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | 354 | #define SCIx_FNS(name, sh3_sci_offset, sh3_sci_size, sh4_sci_offset, sh4_sci_size, \ |
338 | defined(CONFIG_CPU_SUBTYPE_SH7710) | 355 | sh3_scif_offset, sh3_scif_size, sh4_scif_offset, sh4_scif_size, \ |
356 | h8_sci_offset, h8_sci_size) \ | ||
357 | CPU_SCIx_FNS(name, sh4_sci_offset, sh4_sci_size, sh4_scif_offset, sh4_scif_size) | ||
358 | #define SCIF_FNS(name, sh3_scif_offset, sh3_scif_size, sh4_scif_offset, sh4_scif_size) \ | ||
359 | CPU_SCIF_FNS(name, sh4_scif_offset, sh4_scif_size) | ||
360 | #elif defined(CONFIG_CPU_SUBTYPE_SH7300) || \ | ||
361 | defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
339 | #define SCIF_FNS(name, scif_offset, scif_size) \ | 362 | #define SCIF_FNS(name, scif_offset, scif_size) \ |
340 | CPU_SCIF_FNS(name, scif_offset, scif_size) | 363 | CPU_SCIF_FNS(name, scif_offset, scif_size) |
341 | #else | 364 | #else |
@@ -362,8 +385,8 @@ | |||
362 | #endif | 385 | #endif |
363 | 386 | ||
364 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || \ | 387 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || \ |
365 | defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | 388 | defined(CONFIG_CPU_SUBTYPE_SH7705) |
366 | defined(CONFIG_CPU_SUBTYPE_SH7710) | 389 | |
367 | SCIF_FNS(SCSMR, 0x00, 16) | 390 | SCIF_FNS(SCSMR, 0x00, 16) |
368 | SCIF_FNS(SCBRR, 0x04, 8) | 391 | SCIF_FNS(SCBRR, 0x04, 8) |
369 | SCIF_FNS(SCSCR, 0x08, 16) | 392 | SCIF_FNS(SCSCR, 0x08, 16) |
@@ -385,7 +408,9 @@ SCIx_FNS(SCxTDR, 0x06, 8, 0x0c, 8, 0x06, 8, 0x0C, 8, 0x03, 8) | |||
385 | SCIx_FNS(SCxSR, 0x08, 8, 0x10, 8, 0x08, 16, 0x10, 16, 0x04, 8) | 408 | SCIx_FNS(SCxSR, 0x08, 8, 0x10, 8, 0x08, 16, 0x10, 16, 0x04, 8) |
386 | SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8) | 409 | SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8) |
387 | SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16) | 410 | SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16) |
388 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780) | 411 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || \ |
412 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
413 | defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
389 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) | 414 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) |
390 | SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16) | 415 | SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16) |
391 | SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) | 416 | SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) |
@@ -471,13 +496,24 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
471 | return ctrl_inb(SCPDR)&0x10 ? 1 : 0; /* SCIF */ | 496 | return ctrl_inb(SCPDR)&0x10 ? 1 : 0; /* SCIF */ |
472 | return 1; | 497 | return 1; |
473 | } | 498 | } |
474 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) | 499 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) |
475 | static inline int sci_rxd_in(struct uart_port *port) | 500 | static inline int sci_rxd_in(struct uart_port *port) |
476 | { | 501 | { |
477 | if (port->mapbase == SCSPTR0) | 502 | return sci_in(port,SCxSR)&0x0010 ? 1 : 0; |
478 | return ctrl_inw(SCSPTR0 + 0x10) & 0x01 ? 1 : 0; | 503 | } |
479 | return 1; | 504 | static inline void set_sh771x_scif_pfc(struct uart_port *port) |
505 | { | ||
506 | if (port->mapbase == 0xA4400000){ | ||
507 | ctrl_outw(ctrl_inw(PACR)&0xffc0,PACR); | ||
508 | ctrl_outw(ctrl_inw(PBCR)&0x0fff,PBCR); | ||
509 | return; | ||
510 | } | ||
511 | if (port->mapbase == 0xA4410000){ | ||
512 | ctrl_outw(ctrl_inw(PBCR)&0xf003,PBCR); | ||
513 | return; | ||
514 | } | ||
480 | } | 515 | } |
516 | |||
481 | #elif defined(CONFIG_CPU_SUBTYPE_SH7750) || \ | 517 | #elif defined(CONFIG_CPU_SUBTYPE_SH7750) || \ |
482 | defined(CONFIG_CPU_SUBTYPE_SH7751) || \ | 518 | defined(CONFIG_CPU_SUBTYPE_SH7751) || \ |
483 | defined(CONFIG_CPU_SUBTYPE_SH4_202) | 519 | defined(CONFIG_CPU_SUBTYPE_SH4_202) |
@@ -576,6 +612,23 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
576 | return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ | 612 | return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ |
577 | return 1; | 613 | return 1; |
578 | } | 614 | } |
615 | #elif defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
616 | static inline int sci_rxd_in(struct uart_port *port) | ||
617 | { | ||
618 | if (port->mapbase == 0xffea0000) | ||
619 | return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ | ||
620 | if (port->mapbase == 0xffeb0000) | ||
621 | return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ | ||
622 | if (port->mapbase == 0xffec0000) | ||
623 | return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ | ||
624 | if (port->mapbase == 0xffed0000) | ||
625 | return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ | ||
626 | if (port->mapbase == 0xffee0000) | ||
627 | return ctrl_inw(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF */ | ||
628 | if (port->mapbase == 0xffef0000) | ||
629 | return ctrl_inw(SCSPTR5) & 0x0001 ? 1 : 0; /* SCIF */ | ||
630 | return 1; | ||
631 | } | ||
579 | #elif defined(CONFIG_CPU_SUBTYPE_SH7206) | 632 | #elif defined(CONFIG_CPU_SUBTYPE_SH7206) |
580 | static inline int sci_rxd_in(struct uart_port *port) | 633 | static inline int sci_rxd_in(struct uart_port *port) |
581 | { | 634 | { |
@@ -634,7 +687,9 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
634 | * -- Mitch Davis - 15 Jul 2000 | 687 | * -- Mitch Davis - 15 Jul 2000 |
635 | */ | 688 | */ |
636 | 689 | ||
637 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || defined(CONFIG_CPU_SUBTYPE_SH7780) | 690 | #if defined(CONFIG_CPU_SUBTYPE_SH7300) || \ |
691 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
692 | defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
638 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) | 693 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) |
639 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) | 694 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) |
640 | #define SCBRR_VALUE(bps, clk) (((clk*2)+16*bps)/(32*bps)-1) | 695 | #define SCBRR_VALUE(bps, clk) (((clk*2)+16*bps)/(32*bps)-1) |
diff --git a/include/asm-sh/bug.h b/include/asm-sh/bug.h index 2f89dd06d0cd..794c36daf06d 100644 --- a/include/asm-sh/bug.h +++ b/include/asm-sh/bug.h | |||
@@ -2,50 +2,80 @@ | |||
2 | #define __ASM_SH_BUG_H | 2 | #define __ASM_SH_BUG_H |
3 | 3 | ||
4 | #ifdef CONFIG_BUG | 4 | #ifdef CONFIG_BUG |
5 | 5 | #define HAVE_ARCH_BUG | |
6 | struct bug_frame { | 6 | #define HAVE_ARCH_WARN_ON |
7 | unsigned short opcode; | ||
8 | unsigned short line; | ||
9 | const char *file; | ||
10 | const char *func; | ||
11 | }; | ||
12 | |||
13 | struct pt_regs; | ||
14 | |||
15 | extern void handle_BUG(struct pt_regs *); | ||
16 | 7 | ||
17 | #define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */ | 8 | #define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */ |
18 | 9 | ||
10 | /** | ||
11 | * _EMIT_BUG_ENTRY | ||
12 | * %1 - __FILE__ | ||
13 | * %2 - __LINE__ | ||
14 | * %3 - trap type | ||
15 | * %4 - sizeof(struct bug_entry) | ||
16 | * | ||
17 | * The trapa opcode itself sits in %0. | ||
18 | * The %O notation is used to avoid # generation. | ||
19 | * | ||
20 | * The offending file and line are encoded in the __bug_table section. | ||
21 | */ | ||
19 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 22 | #ifdef CONFIG_DEBUG_BUGVERBOSE |
23 | #define _EMIT_BUG_ENTRY \ | ||
24 | "\t.pushsection __bug_table,\"a\"\n" \ | ||
25 | "2:\t.long 1b, %O1\n" \ | ||
26 | "\t.short %O2, %O3\n" \ | ||
27 | "\t.org 2b+%O4\n" \ | ||
28 | "\t.popsection\n" | ||
29 | #else | ||
30 | #define _EMIT_BUG_ENTRY \ | ||
31 | "\t.pushsection __bug_table,\"a\"\n" \ | ||
32 | "2:\t.long 1b\n" \ | ||
33 | "\t.short %O3\n" \ | ||
34 | "\t.org 2b+%O4\n" \ | ||
35 | "\t.popsection\n" | ||
36 | #endif | ||
20 | 37 | ||
21 | #define BUG() \ | 38 | #define BUG() \ |
22 | do { \ | 39 | do { \ |
23 | __asm__ __volatile__ ( \ | 40 | __asm__ __volatile__ ( \ |
24 | ".align 2\n\t" \ | 41 | "1:\t.short %O0\n" \ |
25 | ".short %O0\n\t" \ | 42 | _EMIT_BUG_ENTRY \ |
26 | ".short %O1\n\t" \ | 43 | : \ |
27 | ".long %O2\n\t" \ | 44 | : "n" (TRAPA_BUG_OPCODE), \ |
28 | ".long %O3\n\t" \ | 45 | "i" (__FILE__), \ |
29 | : \ | 46 | "i" (__LINE__), "i" (0), \ |
30 | : "n" (TRAPA_BUG_OPCODE), \ | 47 | "i" (sizeof(struct bug_entry))); \ |
31 | "i" (__LINE__), "X" (__FILE__), \ | ||
32 | "X" (__FUNCTION__)); \ | ||
33 | } while (0) | 48 | } while (0) |
34 | 49 | ||
35 | #else | 50 | #define __WARN() \ |
36 | 51 | do { \ | |
37 | #define BUG() \ | 52 | __asm__ __volatile__ ( \ |
38 | do { \ | 53 | "1:\t.short %O0\n" \ |
39 | __asm__ __volatile__ ( \ | 54 | _EMIT_BUG_ENTRY \ |
40 | ".align 2\n\t" \ | 55 | : \ |
41 | ".short %O0\n\t" \ | 56 | : "n" (TRAPA_BUG_OPCODE), \ |
42 | : \ | 57 | "i" (__FILE__), \ |
43 | : "n" (TRAPA_BUG_OPCODE)); \ | 58 | "i" (__LINE__), \ |
59 | "i" (BUGFLAG_WARNING), \ | ||
60 | "i" (sizeof(struct bug_entry))); \ | ||
44 | } while (0) | 61 | } while (0) |
45 | 62 | ||
46 | #endif /* CONFIG_DEBUG_BUGVERBOSE */ | 63 | #define WARN_ON(x) ({ \ |
64 | typeof(x) __ret_warn_on = (x); \ | ||
65 | if (__builtin_constant_p(__ret_warn_on)) { \ | ||
66 | if (__ret_warn_on) \ | ||
67 | __WARN(); \ | ||
68 | } else { \ | ||
69 | if (unlikely(__ret_warn_on)) \ | ||
70 | __WARN(); \ | ||
71 | } \ | ||
72 | unlikely(__ret_warn_on); \ | ||
73 | }) | ||
47 | 74 | ||
48 | #define HAVE_ARCH_BUG | 75 | struct pt_regs; |
76 | |||
77 | /* arch/sh/kernel/traps.c */ | ||
78 | void handle_BUG(struct pt_regs *); | ||
49 | 79 | ||
50 | #endif /* CONFIG_BUG */ | 80 | #endif /* CONFIG_BUG */ |
51 | 81 | ||
diff --git a/include/asm-sh/clock.h b/include/asm-sh/clock.h index 1df92807f8c5..386d797d86b7 100644 --- a/include/asm-sh/clock.h +++ b/include/asm-sh/clock.h | |||
@@ -13,7 +13,7 @@ struct clk_ops { | |||
13 | void (*enable)(struct clk *clk); | 13 | void (*enable)(struct clk *clk); |
14 | void (*disable)(struct clk *clk); | 14 | void (*disable)(struct clk *clk); |
15 | void (*recalc)(struct clk *clk); | 15 | void (*recalc)(struct clk *clk); |
16 | int (*set_rate)(struct clk *clk, unsigned long rate); | 16 | int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id); |
17 | }; | 17 | }; |
18 | 18 | ||
19 | struct clk { | 19 | struct clk { |
@@ -48,6 +48,34 @@ void clk_recalc_rate(struct clk *); | |||
48 | int clk_register(struct clk *); | 48 | int clk_register(struct clk *); |
49 | void clk_unregister(struct clk *); | 49 | void clk_unregister(struct clk *); |
50 | 50 | ||
51 | int show_clocks(struct seq_file *m); | 51 | /* the exported API, in addition to clk_set_rate */ |
52 | /** | ||
53 | * clk_set_rate_ex - set the clock rate for a clock source, with additional parameter | ||
54 | * @clk: clock source | ||
55 | * @rate: desired clock rate in Hz | ||
56 | * @algo_id: algorithm id to be passed down to ops->set_rate | ||
57 | * | ||
58 | * Returns success (0) or negative errno. | ||
59 | */ | ||
60 | int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id); | ||
52 | 61 | ||
62 | enum clk_sh_algo_id { | ||
63 | NO_CHANGE = 0, | ||
64 | |||
65 | IUS_N1_N1, | ||
66 | IUS_322, | ||
67 | IUS_522, | ||
68 | IUS_N11, | ||
69 | |||
70 | SB_N1, | ||
71 | |||
72 | SB3_N1, | ||
73 | SB3_32, | ||
74 | SB3_43, | ||
75 | SB3_54, | ||
76 | |||
77 | BP_N1, | ||
78 | |||
79 | IP_N1, | ||
80 | }; | ||
53 | #endif /* __ASM_SH_CLOCK_H */ | 81 | #endif /* __ASM_SH_CLOCK_H */ |
diff --git a/include/asm-sh/cpu-sh3/mmu_context.h b/include/asm-sh/cpu-sh3/mmu_context.h index bccb7ddb438b..4704e86dff5b 100644 --- a/include/asm-sh/cpu-sh3/mmu_context.h +++ b/include/asm-sh/cpu-sh3/mmu_context.h | |||
@@ -32,6 +32,7 @@ | |||
32 | defined(CONFIG_CPU_SUBTYPE_SH7706) || \ | 32 | defined(CONFIG_CPU_SUBTYPE_SH7706) || \ |
33 | defined(CONFIG_CPU_SUBTYPE_SH7300) || \ | 33 | defined(CONFIG_CPU_SUBTYPE_SH7300) || \ |
34 | defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | 34 | defined(CONFIG_CPU_SUBTYPE_SH7705) || \ |
35 | defined(CONFIG_CPU_SUBTYPE_SH7712) || \ | ||
35 | defined(CONFIG_CPU_SUBTYPE_SH7710) | 36 | defined(CONFIG_CPU_SUBTYPE_SH7710) |
36 | #define INTEVT 0xa4000000 /* INTEVTE2(0xa4000000) */ | 37 | #define INTEVT 0xa4000000 /* INTEVTE2(0xa4000000) */ |
37 | #else | 38 | #else |
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h index 602d061ca2dc..86564e7a26ae 100644 --- a/include/asm-sh/cpu-sh4/freq.h +++ b/include/asm-sh/cpu-sh4/freq.h | |||
@@ -12,8 +12,16 @@ | |||
12 | 12 | ||
13 | #if defined(CONFIG_CPU_SUBTYPE_SH73180) || defined(CONFIG_CPU_SUBTYPE_SH7722) | 13 | #if defined(CONFIG_CPU_SUBTYPE_SH73180) || defined(CONFIG_CPU_SUBTYPE_SH7722) |
14 | #define FRQCR 0xa4150000 | 14 | #define FRQCR 0xa4150000 |
15 | #define VCLKCR 0xa4150004 | ||
16 | #define SCLKACR 0xa4150008 | ||
17 | #define SCLKBCR 0xa415000c | ||
18 | #define IrDACLKCR 0xa4150010 | ||
15 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) | 19 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) |
16 | #define FRQCR 0xffc80000 | 20 | #define FRQCR 0xffc80000 |
21 | #elif defined(CONFIG_CPU_SUBTYPE_SH7785) | ||
22 | #define FRQCR0 0xffc80000 | ||
23 | #define FRQCR1 0xffc80004 | ||
24 | #define FRQMR1 0xffc80014 | ||
17 | #else | 25 | #else |
18 | #define FRQCR 0xffc00000 | 26 | #define FRQCR 0xffc00000 |
19 | #endif | 27 | #endif |
diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h index afe188f0ad5f..e81bf21c801e 100644 --- a/include/asm-sh/irq.h +++ b/include/asm-sh/irq.h | |||
@@ -2,94 +2,13 @@ | |||
2 | #define __ASM_SH_IRQ_H | 2 | #define __ASM_SH_IRQ_H |
3 | 3 | ||
4 | #include <asm/machvec.h> | 4 | #include <asm/machvec.h> |
5 | #include <asm/ptrace.h> /* for pt_regs */ | ||
6 | 5 | ||
7 | /* NR_IRQS is made from three components: | 6 | /* |
8 | * 1. ONCHIP_NR_IRQS - number of IRLS + on-chip peripherial modules | 7 | * A sane default based on a reasonable vector table size, platforms are |
9 | * 2. PINT_NR_IRQS - number of PINT interrupts | 8 | * advised to cap this at the hard limit that they're interested in |
10 | * 3. OFFCHIP_NR_IRQS - numbe of IRQs from off-chip peripherial modules | 9 | * through the machvec. |
11 | */ | 10 | */ |
12 | 11 | #define NR_IRQS 256 | |
13 | /* 1. ONCHIP_NR_IRQS */ | ||
14 | #if defined(CONFIG_CPU_SUBTYPE_SH7604) | ||
15 | # define ONCHIP_NR_IRQS 24 // Actually 21 | ||
16 | #elif defined(CONFIG_CPU_SUBTYPE_SH7707) | ||
17 | # define ONCHIP_NR_IRQS 64 | ||
18 | # define PINT_NR_IRQS 16 | ||
19 | #elif defined(CONFIG_CPU_SUBTYPE_SH7708) | ||
20 | # define ONCHIP_NR_IRQS 32 | ||
21 | #elif defined(CONFIG_CPU_SUBTYPE_SH7709) || \ | ||
22 | defined(CONFIG_CPU_SUBTYPE_SH7706) || \ | ||
23 | defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
24 | # define ONCHIP_NR_IRQS 64 // Actually 61 | ||
25 | # define PINT_NR_IRQS 16 | ||
26 | #elif defined(CONFIG_CPU_SUBTYPE_SH7710) | ||
27 | # define ONCHIP_NR_IRQS 104 | ||
28 | #elif defined(CONFIG_CPU_SUBTYPE_SH7750) | ||
29 | # define ONCHIP_NR_IRQS 48 // Actually 44 | ||
30 | #elif defined(CONFIG_CPU_SUBTYPE_SH7751) | ||
31 | # define ONCHIP_NR_IRQS 72 | ||
32 | #elif defined(CONFIG_CPU_SUBTYPE_SH7760) | ||
33 | # define ONCHIP_NR_IRQS 112 /* XXX */ | ||
34 | #elif defined(CONFIG_CPU_SUBTYPE_SH4_202) | ||
35 | # define ONCHIP_NR_IRQS 72 | ||
36 | #elif defined(CONFIG_CPU_SUBTYPE_ST40STB1) | ||
37 | # define ONCHIP_NR_IRQS 144 | ||
38 | #elif defined(CONFIG_CPU_SUBTYPE_SH7300) || \ | ||
39 | defined(CONFIG_CPU_SUBTYPE_SH73180) || \ | ||
40 | defined(CONFIG_CPU_SUBTYPE_SH7343) || \ | ||
41 | defined(CONFIG_CPU_SUBTYPE_SH7722) | ||
42 | # define ONCHIP_NR_IRQS 109 | ||
43 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) | ||
44 | # define ONCHIP_NR_IRQS 111 | ||
45 | #elif defined(CONFIG_CPU_SUBTYPE_SH7206) | ||
46 | # define ONCHIP_NR_IRQS 256 | ||
47 | #elif defined(CONFIG_CPU_SUBTYPE_SH7619) | ||
48 | # define ONCHIP_NR_IRQS 128 | ||
49 | #elif defined(CONFIG_SH_UNKNOWN) /* Most be last */ | ||
50 | # define ONCHIP_NR_IRQS 144 | ||
51 | #endif | ||
52 | |||
53 | /* 2. PINT_NR_IRQS */ | ||
54 | #ifdef CONFIG_SH_UNKNOWN | ||
55 | # define PINT_NR_IRQS 16 | ||
56 | #else | ||
57 | # ifndef PINT_NR_IRQS | ||
58 | # define PINT_NR_IRQS 0 | ||
59 | # endif | ||
60 | #endif | ||
61 | |||
62 | #if PINT_NR_IRQS > 0 | ||
63 | # define PINT_IRQ_BASE ONCHIP_NR_IRQS | ||
64 | #endif | ||
65 | |||
66 | /* 3. OFFCHIP_NR_IRQS */ | ||
67 | #if defined(CONFIG_HD64461) | ||
68 | # define OFFCHIP_NR_IRQS 18 | ||
69 | #elif defined(CONFIG_HD64465) | ||
70 | # define OFFCHIP_NR_IRQS 16 | ||
71 | #elif defined (CONFIG_SH_DREAMCAST) | ||
72 | # define OFFCHIP_NR_IRQS 96 | ||
73 | #elif defined (CONFIG_SH_TITAN) | ||
74 | # define OFFCHIP_NR_IRQS 4 | ||
75 | #elif defined(CONFIG_SH_R7780RP) | ||
76 | # define OFFCHIP_NR_IRQS 16 | ||
77 | #elif defined(CONFIG_SH_7343_SOLUTION_ENGINE) | ||
78 | # define OFFCHIP_NR_IRQS 12 | ||
79 | #elif defined(CONFIG_SH_7722_SOLUTION_ENGINE) | ||
80 | # define OFFCHIP_NR_IRQS 14 | ||
81 | #elif defined(CONFIG_SH_UNKNOWN) | ||
82 | # define OFFCHIP_NR_IRQS 16 /* Must also be last */ | ||
83 | #else | ||
84 | # define OFFCHIP_NR_IRQS 0 | ||
85 | #endif | ||
86 | |||
87 | #if OFFCHIP_NR_IRQS > 0 | ||
88 | # define OFFCHIP_IRQ_BASE (ONCHIP_NR_IRQS + PINT_NR_IRQS) | ||
89 | #endif | ||
90 | |||
91 | /* NR_IRQS. 1+2+3 */ | ||
92 | #define NR_IRQS (ONCHIP_NR_IRQS + PINT_NR_IRQS + OFFCHIP_NR_IRQS) | ||
93 | 12 | ||
94 | /* | 13 | /* |
95 | * Convert back and forth between INTEVT and IRQ values. | 14 | * Convert back and forth between INTEVT and IRQ values. |
diff --git a/include/asm-sh/kdebug.h b/include/asm-sh/kdebug.h new file mode 100644 index 000000000000..ef009baf5a11 --- /dev/null +++ b/include/asm-sh/kdebug.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef __ASM_SH_KDEBUG_H | ||
2 | #define __ASM_SH_KDEBUG_H | ||
3 | |||
4 | #include <linux/notifier.h> | ||
5 | |||
6 | struct pt_regs; | ||
7 | |||
8 | struct die_args { | ||
9 | struct pt_regs *regs; | ||
10 | int trapnr; | ||
11 | }; | ||
12 | |||
13 | int register_die_notifier(struct notifier_block *nb); | ||
14 | int unregister_die_notifier(struct notifier_block *nb); | ||
15 | int register_page_fault_notifier(struct notifier_block *nb); | ||
16 | int unregister_page_fault_notifier(struct notifier_block *nb); | ||
17 | extern struct atomic_notifier_head shdie_chain; | ||
18 | |||
19 | /* Grossly misnamed. */ | ||
20 | enum die_val { | ||
21 | DIE_TRAP, | ||
22 | DIE_PAGE_FAULT, | ||
23 | }; | ||
24 | |||
25 | static inline int notify_die(enum die_val val, struct pt_regs *regs, | ||
26 | int trap, int sig) | ||
27 | { | ||
28 | struct die_args args = { | ||
29 | .regs = regs, | ||
30 | .trapnr = trap, | ||
31 | }; | ||
32 | |||
33 | return atomic_notifier_call_chain(&shdie_chain, val, &args); | ||
34 | } | ||
35 | #endif /* __ASM_SH_KDEBUG_H */ | ||
diff --git a/include/asm-sh/kexec.h b/include/asm-sh/kexec.h index 9d235af20cdd..da36a7548601 100644 --- a/include/asm-sh/kexec.h +++ b/include/asm-sh/kexec.h | |||
@@ -1,5 +1,8 @@ | |||
1 | #ifndef _SH_KEXEC_H | 1 | #ifndef __ASM_SH_KEXEC_H |
2 | #define _SH_KEXEC_H | 2 | #define __ASM_SH_KEXEC_H |
3 | |||
4 | #include <asm/ptrace.h> | ||
5 | #include <asm/string.h> | ||
3 | 6 | ||
4 | /* | 7 | /* |
5 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. | 8 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. |
@@ -25,8 +28,37 @@ | |||
25 | 28 | ||
26 | #define MAX_NOTE_BYTES 1024 | 29 | #define MAX_NOTE_BYTES 1024 |
27 | 30 | ||
28 | /* Provide a dummy definition to avoid build failures. */ | ||
29 | static inline void crash_setup_regs(struct pt_regs *newregs, | 31 | static inline void crash_setup_regs(struct pt_regs *newregs, |
30 | struct pt_regs *oldregs) { } | 32 | struct pt_regs *oldregs) |
33 | { | ||
34 | if (oldregs) | ||
35 | memcpy(newregs, oldregs, sizeof(*newregs)); | ||
36 | else { | ||
37 | __asm__ __volatile__ ("mov r0, %0" : "=r" (newregs->regs[0])); | ||
38 | __asm__ __volatile__ ("mov r1, %0" : "=r" (newregs->regs[1])); | ||
39 | __asm__ __volatile__ ("mov r2, %0" : "=r" (newregs->regs[2])); | ||
40 | __asm__ __volatile__ ("mov r3, %0" : "=r" (newregs->regs[3])); | ||
41 | __asm__ __volatile__ ("mov r4, %0" : "=r" (newregs->regs[4])); | ||
42 | __asm__ __volatile__ ("mov r5, %0" : "=r" (newregs->regs[5])); | ||
43 | __asm__ __volatile__ ("mov r6, %0" : "=r" (newregs->regs[6])); | ||
44 | __asm__ __volatile__ ("mov r7, %0" : "=r" (newregs->regs[7])); | ||
45 | __asm__ __volatile__ ("mov r8, %0" : "=r" (newregs->regs[8])); | ||
46 | __asm__ __volatile__ ("mov r9, %0" : "=r" (newregs->regs[9])); | ||
47 | __asm__ __volatile__ ("mov r10, %0" : "=r" (newregs->regs[10])); | ||
48 | __asm__ __volatile__ ("mov r11, %0" : "=r" (newregs->regs[11])); | ||
49 | __asm__ __volatile__ ("mov r12, %0" : "=r" (newregs->regs[12])); | ||
50 | __asm__ __volatile__ ("mov r13, %0" : "=r" (newregs->regs[13])); | ||
51 | __asm__ __volatile__ ("mov r14, %0" : "=r" (newregs->regs[14])); | ||
52 | __asm__ __volatile__ ("mov r15, %0" : "=r" (newregs->regs[15])); | ||
53 | |||
54 | __asm__ __volatile__ ("sts pr, %0" : "=r" (newregs->pr)); | ||
55 | __asm__ __volatile__ ("sts macl, %0" : "=r" (newregs->macl)); | ||
56 | __asm__ __volatile__ ("sts mach, %0" : "=r" (newregs->mach)); | ||
57 | |||
58 | __asm__ __volatile__ ("stc gbr, %0" : "=r" (newregs->gbr)); | ||
59 | __asm__ __volatile__ ("stc sr, %0" : "=r" (newregs->sr)); | ||
31 | 60 | ||
32 | #endif /* _SH_KEXEC_H */ | 61 | newregs->pc = (unsigned long)current_text_addr(); |
62 | } | ||
63 | } | ||
64 | #endif /* __ASM_SH_KEXEC_H */ | ||
diff --git a/include/asm-sh/kgdb.h b/include/asm-sh/kgdb.h index 0095c665d272..74bd0953e5ce 100644 --- a/include/asm-sh/kgdb.h +++ b/include/asm-sh/kgdb.h | |||
@@ -17,6 +17,7 @@ | |||
17 | #define __KGDB_H | 17 | #define __KGDB_H |
18 | 18 | ||
19 | #include <asm/ptrace.h> | 19 | #include <asm/ptrace.h> |
20 | #include <asm/cacheflush.h> | ||
20 | 21 | ||
21 | struct console; | 22 | struct console; |
22 | 23 | ||
@@ -45,35 +46,21 @@ extern int kgdb_portnum; | |||
45 | extern int kgdb_baud; | 46 | extern int kgdb_baud; |
46 | extern char kgdb_parity; | 47 | extern char kgdb_parity; |
47 | extern char kgdb_bits; | 48 | extern char kgdb_bits; |
48 | extern int kgdb_console_setup(struct console *, char *); | ||
49 | 49 | ||
50 | /* Init and interface stuff */ | 50 | /* Init and interface stuff */ |
51 | extern int kgdb_init(void); | 51 | extern int kgdb_init(void); |
52 | extern int (*kgdb_serial_setup)(void); | ||
53 | extern int (*kgdb_getchar)(void); | 52 | extern int (*kgdb_getchar)(void); |
54 | extern void (*kgdb_putchar)(int); | 53 | extern void (*kgdb_putchar)(int); |
55 | 54 | ||
56 | struct kgdb_sermap { | ||
57 | char *name; | ||
58 | int namelen; | ||
59 | int (*setup_fn)(struct console *, char *); | ||
60 | struct kgdb_sermap *next; | ||
61 | }; | ||
62 | extern void kgdb_register_sermap(struct kgdb_sermap *map); | ||
63 | extern struct kgdb_sermap *kgdb_porttype; | ||
64 | |||
65 | /* Trap functions */ | 55 | /* Trap functions */ |
66 | typedef void (kgdb_debug_hook_t)(struct pt_regs *regs); | 56 | typedef void (kgdb_debug_hook_t)(struct pt_regs *regs); |
67 | typedef void (kgdb_bus_error_hook_t)(void); | 57 | typedef void (kgdb_bus_error_hook_t)(void); |
68 | extern kgdb_debug_hook_t *kgdb_debug_hook; | 58 | extern kgdb_debug_hook_t *kgdb_debug_hook; |
69 | extern kgdb_bus_error_hook_t *kgdb_bus_err_hook; | 59 | extern kgdb_bus_error_hook_t *kgdb_bus_err_hook; |
70 | 60 | ||
71 | extern void breakpoint(void); | ||
72 | |||
73 | /* Console */ | 61 | /* Console */ |
74 | struct console; | ||
75 | void kgdb_console_write(struct console *co, const char *s, unsigned count); | 62 | void kgdb_console_write(struct console *co, const char *s, unsigned count); |
76 | void kgdb_console_init(void); | 63 | extern int kgdb_console_setup(struct console *, char *); |
77 | 64 | ||
78 | /* Prototypes for jmp fns */ | 65 | /* Prototypes for jmp fns */ |
79 | #define _JBLEN 9 | 66 | #define _JBLEN 9 |
@@ -81,11 +68,8 @@ typedef int jmp_buf[_JBLEN]; | |||
81 | extern void longjmp(jmp_buf __jmpb, int __retval); | 68 | extern void longjmp(jmp_buf __jmpb, int __retval); |
82 | extern int setjmp(jmp_buf __jmpb); | 69 | extern int setjmp(jmp_buf __jmpb); |
83 | 70 | ||
84 | /* Variadic macro to print our own message to the console */ | ||
85 | #define KGDB_PRINTK(...) printk("KGDB: " __VA_ARGS__) | ||
86 | |||
87 | /* Forced breakpoint */ | 71 | /* Forced breakpoint */ |
88 | #define BREAKPOINT() \ | 72 | #define breakpoint() \ |
89 | do { \ | 73 | do { \ |
90 | if (kgdb_enabled) \ | 74 | if (kgdb_enabled) \ |
91 | __asm__ __volatile__("trapa #0x3c"); \ | 75 | __asm__ __volatile__("trapa #0x3c"); \ |
@@ -95,7 +79,6 @@ do { \ | |||
95 | #if defined(CONFIG_CPU_SH4) | 79 | #if defined(CONFIG_CPU_SH4) |
96 | #define kgdb_flush_icache_range(start, end) \ | 80 | #define kgdb_flush_icache_range(start, end) \ |
97 | { \ | 81 | { \ |
98 | extern void __flush_purge_region(void *, int); \ | ||
99 | __flush_purge_region((void*)(start), (int)(end) - (int)(start));\ | 82 | __flush_purge_region((void*)(start), (int)(end) - (int)(start));\ |
100 | flush_icache_range((start), (end)); \ | 83 | flush_icache_range((start), (end)); \ |
101 | } | 84 | } |
@@ -103,31 +86,6 @@ do { \ | |||
103 | #define kgdb_flush_icache_range(start, end) do { } while (0) | 86 | #define kgdb_flush_icache_range(start, end) do { } while (0) |
104 | #endif | 87 | #endif |
105 | 88 | ||
106 | /* Kernel assert macros */ | ||
107 | #ifdef CONFIG_KGDB_KERNEL_ASSERTS | ||
108 | |||
109 | /* Predefined conditions */ | ||
110 | #define KA_VALID_ERRNO(errno) ((errno) > 0 && (errno) <= EMEDIUMTYPE) | ||
111 | #define KA_VALID_PTR_ERR(ptr) KA_VALID_ERRNO(-PTR_ERR(ptr)) | ||
112 | #define KA_VALID_KPTR(ptr) (!(ptr) || \ | ||
113 | ((void *)(ptr) >= (void *)PAGE_OFFSET && \ | ||
114 | (void *)(ptr) < ERR_PTR(-EMEDIUMTYPE))) | ||
115 | #define KA_VALID_PTRORERR(errptr) \ | ||
116 | (KA_VALID_KPTR(errptr) || KA_VALID_PTR_ERR(errptr)) | ||
117 | #define KA_HELD_GKL() (current->lock_depth >= 0) | ||
118 | |||
119 | /* The actual assert */ | ||
120 | #define KGDB_ASSERT(condition, message) do { \ | ||
121 | if (!(condition) && (kgdb_enabled)) { \ | ||
122 | KGDB_PRINTK("Assertion failed at %s:%d: %s\n", \ | ||
123 | __FILE__, __LINE__, message);\ | ||
124 | BREAKPOINT(); \ | ||
125 | } \ | ||
126 | } while (0) | ||
127 | #else | ||
128 | #define KGDB_ASSERT(condition, message) | ||
129 | #endif | ||
130 | |||
131 | /* Taken from sh-stub.c of GDB 4.18 */ | 89 | /* Taken from sh-stub.c of GDB 4.18 */ |
132 | static const char hexchars[] = "0123456789abcdef"; | 90 | static const char hexchars[] = "0123456789abcdef"; |
133 | 91 | ||
@@ -142,5 +100,4 @@ static inline char lowhex(const int x) | |||
142 | { | 100 | { |
143 | return hexchars[x & 0xf]; | 101 | return hexchars[x & 0xf]; |
144 | } | 102 | } |
145 | |||
146 | #endif | 103 | #endif |
diff --git a/include/asm-sh/lboxre2.h b/include/asm-sh/lboxre2.h new file mode 100644 index 000000000000..e6d160504923 --- /dev/null +++ b/include/asm-sh/lboxre2.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifndef __ASM_SH_LBOXRE2_H | ||
2 | #define __ASM_SH_LBOXRE2_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
6 | * | ||
7 | * NTT COMWARE L-BOX RE2 support | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General Public | ||
10 | * License. See the file "COPYING" in the main directory of this archive | ||
11 | * for more details. | ||
12 | * | ||
13 | */ | ||
14 | |||
15 | #define IRQ_CF1 9 /* CF1 */ | ||
16 | #define IRQ_CF0 10 /* CF0 */ | ||
17 | #define IRQ_INTD 11 /* INTD */ | ||
18 | #define IRQ_ETH1 12 /* Ether1 */ | ||
19 | #define IRQ_ETH0 13 /* Ether0 */ | ||
20 | #define IRQ_INTA 14 /* INTA */ | ||
21 | |||
22 | void init_lboxre2_IRQ(void); | ||
23 | |||
24 | #define __IO_PREFIX lboxre2 | ||
25 | #include <asm/io_generic.h> | ||
26 | |||
27 | #endif /* __ASM_SH_LBOXRE2_H */ | ||
diff --git a/include/asm-sh/mmu_context.h b/include/asm-sh/mmu_context.h index 01acaaae9751..199662bb35c6 100644 --- a/include/asm-sh/mmu_context.h +++ b/include/asm-sh/mmu_context.h | |||
@@ -169,6 +169,8 @@ enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) | |||
169 | #define destroy_context(mm) do { } while (0) | 169 | #define destroy_context(mm) do { } while (0) |
170 | #define set_asid(asid) do { } while (0) | 170 | #define set_asid(asid) do { } while (0) |
171 | #define get_asid() (0) | 171 | #define get_asid() (0) |
172 | #define set_TTB(pgd) do { } while (0) | ||
173 | #define get_TTB() (0) | ||
172 | #define activate_context(mm,cpu) do { } while (0) | 174 | #define activate_context(mm,cpu) do { } while (0) |
173 | #define switch_mm(prev,next,tsk) do { } while (0) | 175 | #define switch_mm(prev,next,tsk) do { } while (0) |
174 | #define deactivate_mm(tsk,mm) do { } while (0) | 176 | #define deactivate_mm(tsk,mm) do { } while (0) |
@@ -211,8 +213,8 @@ static inline void disable_mmu(void) | |||
211 | * MMU control handlers for processors lacking memory | 213 | * MMU control handlers for processors lacking memory |
212 | * management hardware. | 214 | * management hardware. |
213 | */ | 215 | */ |
214 | #define enable_mmu() do { BUG(); } while (0) | 216 | #define enable_mmu() do { } while (0) |
215 | #define disable_mmu() do { BUG(); } while (0) | 217 | #define disable_mmu() do { } while (0) |
216 | #endif | 218 | #endif |
217 | 219 | ||
218 | #endif /* __KERNEL__ */ | 220 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h index ac4b4677f28c..7464de4ba07d 100644 --- a/include/asm-sh/page.h +++ b/include/asm-sh/page.h | |||
@@ -59,6 +59,7 @@ extern void (*clear_page)(void *to); | |||
59 | extern void (*copy_page)(void *to, void *from); | 59 | extern void (*copy_page)(void *to, void *from); |
60 | 60 | ||
61 | extern unsigned long shm_align_mask; | 61 | extern unsigned long shm_align_mask; |
62 | extern unsigned long max_low_pfn, min_low_pfn; | ||
62 | 63 | ||
63 | #ifdef CONFIG_MMU | 64 | #ifdef CONFIG_MMU |
64 | extern void clear_page_slow(void *to); | 65 | extern void clear_page_slow(void *to); |
@@ -124,17 +125,16 @@ typedef struct { unsigned long pgd; } pgd_t; | |||
124 | #define PAGE_OFFSET CONFIG_PAGE_OFFSET | 125 | #define PAGE_OFFSET CONFIG_PAGE_OFFSET |
125 | #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) | 126 | #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) |
126 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | 127 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) |
128 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | ||
127 | 129 | ||
128 | #define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT) | 130 | #define phys_to_page(phys) (pfn_to_page(phys >> PAGE_SHIFT)) |
129 | 131 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) | |
130 | #define phys_to_page(phys) (mem_map + (((phys)-__MEMORY_START) >> PAGE_SHIFT)) | ||
131 | #define page_to_phys(page) (((page - mem_map) << PAGE_SHIFT) + __MEMORY_START) | ||
132 | 132 | ||
133 | /* PFN start number, because of __MEMORY_START */ | 133 | /* PFN start number, because of __MEMORY_START */ |
134 | #define PFN_START (__MEMORY_START >> PAGE_SHIFT) | 134 | #define PFN_START (__MEMORY_START >> PAGE_SHIFT) |
135 | #define ARCH_PFN_OFFSET (PFN_START) | 135 | #define ARCH_PFN_OFFSET (PFN_START) |
136 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 136 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
137 | #define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr) | 137 | #define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn) |
138 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 138 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
139 | 139 | ||
140 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 140 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
diff --git a/include/asm-sh/param.h b/include/asm-sh/param.h index ce13064fec21..1012296e07ab 100644 --- a/include/asm-sh/param.h +++ b/include/asm-sh/param.h | |||
@@ -5,7 +5,7 @@ | |||
5 | # ifdef CONFIG_SH_WDT | 5 | # ifdef CONFIG_SH_WDT |
6 | # define HZ 1000 /* Needed for high-res WOVF */ | 6 | # define HZ 1000 /* Needed for high-res WOVF */ |
7 | # else | 7 | # else |
8 | # define HZ 100 | 8 | # define HZ CONFIG_HZ |
9 | # endif | 9 | # endif |
10 | # define USER_HZ 100 /* User interfaces are in "ticks" */ | 10 | # define USER_HZ 100 /* User interfaces are in "ticks" */ |
11 | # define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */ | 11 | # define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */ |
diff --git a/include/asm-sh/pci.h b/include/asm-sh/pci.h index 6ccc948fe216..b1f9a9e0231e 100644 --- a/include/asm-sh/pci.h +++ b/include/asm-sh/pci.h | |||
@@ -35,7 +35,7 @@ extern struct pci_channel board_pci_channels[]; | |||
35 | /* | 35 | /* |
36 | * I/O routine helpers | 36 | * I/O routine helpers |
37 | */ | 37 | */ |
38 | #ifdef CONFIG_CPU_SUBTYPE_SH7780 | 38 | #if defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785) |
39 | #define PCI_IO_AREA 0xFE400000 | 39 | #define PCI_IO_AREA 0xFE400000 |
40 | #define PCI_IO_SIZE 0x00400000 | 40 | #define PCI_IO_SIZE 0x00400000 |
41 | #else | 41 | #else |
diff --git a/include/asm-sh/processor.h b/include/asm-sh/processor.h index 3e46a7afe764..d42f68e724fa 100644 --- a/include/asm-sh/processor.h +++ b/include/asm-sh/processor.h | |||
@@ -44,7 +44,7 @@ enum cpu_type { | |||
44 | /* SH-3 types */ | 44 | /* SH-3 types */ |
45 | CPU_SH7705, CPU_SH7706, CPU_SH7707, | 45 | CPU_SH7705, CPU_SH7706, CPU_SH7707, |
46 | CPU_SH7708, CPU_SH7708S, CPU_SH7708R, | 46 | CPU_SH7708, CPU_SH7708S, CPU_SH7708R, |
47 | CPU_SH7709, CPU_SH7709A, CPU_SH7710, | 47 | CPU_SH7709, CPU_SH7709A, CPU_SH7710, CPU_SH7712, |
48 | CPU_SH7729, CPU_SH7300, | 48 | CPU_SH7729, CPU_SH7300, |
49 | 49 | ||
50 | /* SH-4 types */ | 50 | /* SH-4 types */ |
diff --git a/include/asm-sh/r7780rp.h b/include/asm-sh/r7780rp.h index c18f648a7995..4083b5949928 100644 --- a/include/asm-sh/r7780rp.h +++ b/include/asm-sh/r7780rp.h | |||
@@ -1,17 +1,11 @@ | |||
1 | #ifndef __ASM_SH_RENESAS_R7780RP_H | 1 | #ifndef __ASM_SH_RENESAS_R7780RP_H |
2 | #define __ASM_SH_RENESAS_R7780RP_H | 2 | #define __ASM_SH_RENESAS_R7780RP_H |
3 | 3 | ||
4 | /* | ||
5 | * linux/include/asm-sh/r7780rp.h | ||
6 | * | ||
7 | * Copyright (C) 2000 Atom Create Engineering Co., Ltd. | ||
8 | * | ||
9 | * Renesas Solutions Highlander R7780RP support | ||
10 | */ | ||
11 | |||
12 | /* Box specific addresses. */ | 4 | /* Box specific addresses. */ |
13 | #if defined(CONFIG_SH_R7780MP) | 5 | #if defined(CONFIG_SH_R7780MP) |
14 | #define PA_BCR 0xa4000000 /* FPGA */ | 6 | #define PA_BCR 0xa4000000 /* FPGA */ |
7 | #define PA_SDPOW (-1) | ||
8 | |||
15 | #define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ | 9 | #define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ |
16 | #define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */ | 10 | #define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */ |
17 | #define PA_IRLPRI1 (PA_BCR+0x0004) /* Interrupt Priorty 1 */ | 11 | #define PA_IRLPRI1 (PA_BCR+0x0004) /* Interrupt Priorty 1 */ |
@@ -70,18 +64,12 @@ | |||
70 | #define PA_POFF (PA_BCR+0x0800) /* System Power Off control */ | 64 | #define PA_POFF (PA_BCR+0x0800) /* System Power Off control */ |
71 | #define PA_PMR (PA_BCR+0x0900) /* */ | 65 | #define PA_PMR (PA_BCR+0x0900) /* */ |
72 | 66 | ||
73 | #define PA_AX88796L 0xa4100400 /* AX88796L Area */ | ||
74 | #define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */ | ||
75 | #define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */ | ||
76 | #define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */ | ||
77 | |||
78 | #define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */ | 67 | #define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */ |
79 | 68 | ||
80 | #define IRQ_PCISLOT1 65 /* PCI Slot #1 IRQ */ | 69 | #define IRQ_PCISLOT1 65 /* PCI Slot #1 IRQ */ |
81 | #define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */ | 70 | #define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */ |
82 | #define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */ | 71 | #define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */ |
83 | #define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */ | 72 | #define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */ |
84 | // #define IRQ_CFINST 0 /* CF Card Insert IRQ */ | ||
85 | #define IRQ_TP 2 /* Touch Panel IRQ */ | 73 | #define IRQ_TP 2 /* Touch Panel IRQ */ |
86 | #define IRQ_SCI1 3 /* SCI1 IRQ */ | 74 | #define IRQ_SCI1 3 /* SCI1 IRQ */ |
87 | #define IRQ_SCI0 4 /* SCI0 IRQ */ | 75 | #define IRQ_SCI0 4 /* SCI0 IRQ */ |
@@ -95,7 +83,10 @@ | |||
95 | #define IRQ_ONETH 13 /* On board Ethernet IRQ */ | 83 | #define IRQ_ONETH 13 /* On board Ethernet IRQ */ |
96 | #define IRQ_PSW 14 /* Push Switch IRQ */ | 84 | #define IRQ_PSW 14 /* Push Switch IRQ */ |
97 | 85 | ||
98 | #else /* R7780RP */ | 86 | #define IVDR_CK_ON 8 /* iVDR Clock ON */ |
87 | |||
88 | #elif defined(CONFIG_SH_R7780RP) | ||
89 | #define PA_POFF (-1) | ||
99 | 90 | ||
100 | #define PA_BCR 0xa5000000 /* FPGA */ | 91 | #define PA_BCR 0xa5000000 /* FPGA */ |
101 | #define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ | 92 | #define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ |
@@ -163,7 +154,60 @@ | |||
163 | #define IRQ_PSW 13 /* Push Switch IRQ */ | 154 | #define IRQ_PSW 13 /* Push Switch IRQ */ |
164 | #define IRQ_ZIGBEE 14 /* Ziggbee IO IRQ */ | 155 | #define IRQ_ZIGBEE 14 /* Ziggbee IO IRQ */ |
165 | 156 | ||
166 | #endif /* CONFIG_SH_R7780MP */ | 157 | #define IVDR_CK_ON 8 /* iVDR Clock ON */ |
158 | |||
159 | #elif defined(CONFIG_SH_R7785RP) | ||
160 | #define PA_BCR 0xa4000000 /* FPGA */ | ||
161 | #define PA_SDPOW (-1) | ||
162 | |||
163 | #define PA_PCISCR (PA_BCR+0x0000) | ||
164 | #define PA_IRLPRA (PA_BCR+0x0002) | ||
165 | #define PA_IRLPRB (PA_BCR+0x0004) | ||
166 | #define PA_IRLPRC (PA_BCR+0x0006) | ||
167 | #define PA_IRLPRD (PA_BCR+0x0008) | ||
168 | #define IRLCNTR1 (PA_BCR+0x0010) | ||
169 | #define PA_IRLPRE (PA_BCR+0x000a) | ||
170 | #define PA_IRLPRF (PA_BCR+0x000c) | ||
171 | #define PA_EXIRLCR (PA_BCR+0x000e) | ||
172 | #define PA_IRLMCR1 (PA_BCR+0x0010) | ||
173 | #define PA_IRLMCR2 (PA_BCR+0x0012) | ||
174 | #define PA_IRLSSR1 (PA_BCR+0x0014) | ||
175 | #define PA_IRLSSR2 (PA_BCR+0x0016) | ||
176 | #define PA_CFTCR (PA_BCR+0x0100) | ||
177 | #define PA_CFPCR (PA_BCR+0x0102) | ||
178 | #define PA_PCICR (PA_BCR+0x0110) | ||
179 | #define PA_IVDRCTL (PA_BCR+0x0112) | ||
180 | #define PA_IVDRSR (PA_BCR+0x0114) | ||
181 | #define PA_PDRSTCR (PA_BCR+0x0116) | ||
182 | #define PA_POFF (PA_BCR+0x0120) | ||
183 | #define PA_LCDCR (PA_BCR+0x0130) | ||
184 | #define PA_TPCR (PA_BCR+0x0140) | ||
185 | #define PA_TPCKCR (PA_BCR+0x0142) | ||
186 | #define PA_TPRSTR (PA_BCR+0x0144) | ||
187 | #define PA_TPXPDR (PA_BCR+0x0146) | ||
188 | #define PA_TPYPDR (PA_BCR+0x0148) | ||
189 | #define PA_GPIOPFR (PA_BCR+0x0150) | ||
190 | #define PA_GPIODR (PA_BCR+0x0152) | ||
191 | #define PA_OBLED (PA_BCR+0x0154) | ||
192 | #define PA_SWSR (PA_BCR+0x0156) | ||
193 | #define PA_VERREG (PA_BCR+0x0158) | ||
194 | #define PA_SMCR (PA_BCR+0x0200) | ||
195 | #define PA_SMSMADR (PA_BCR+0x0202) | ||
196 | #define PA_SMMR (PA_BCR+0x0204) | ||
197 | #define PA_SMSADR1 (PA_BCR+0x0206) | ||
198 | #define PA_SMSADR32 (PA_BCR+0x0244) | ||
199 | #define PA_SMTRDR1 (PA_BCR+0x0246) | ||
200 | #define PA_SMTRDR16 (PA_BCR+0x0264) | ||
201 | #define PA_CU3MDR (PA_BCR+0x0300) | ||
202 | #define PA_CU5MDR (PA_BCR+0x0302) | ||
203 | #define PA_MMSR (PA_BCR+0x0400) | ||
204 | |||
205 | #define IVDR_CK_ON 4 /* iVDR Clock ON */ | ||
206 | |||
207 | #endif | ||
208 | |||
209 | void make_r7780rp_irq(unsigned int irq); | ||
210 | void highlander_init_irq(void); | ||
167 | 211 | ||
168 | #define __IO_PREFIX r7780rp | 212 | #define __IO_PREFIX r7780rp |
169 | #include <asm/io_generic.h> | 213 | #include <asm/io_generic.h> |
diff --git a/include/asm-sh/se.h b/include/asm-sh/se.h index a1832154a3aa..bd2596c014a9 100644 --- a/include/asm-sh/se.h +++ b/include/asm-sh/se.h | |||
@@ -69,9 +69,11 @@ | |||
69 | #define BCR_ILCRG (PA_BCR + 12) | 69 | #define BCR_ILCRG (PA_BCR + 12) |
70 | 70 | ||
71 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | 71 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) |
72 | #define IRQ_STNIC 12 | 72 | #define IRQ_STNIC 12 |
73 | #define IRQ_CFCARD 14 | ||
73 | #else | 74 | #else |
74 | #define IRQ_STNIC 10 | 75 | #define IRQ_STNIC 10 |
76 | #define IRQ_CFCARD 7 | ||
75 | #endif | 77 | #endif |
76 | 78 | ||
77 | #define __IO_PREFIX se | 79 | #define __IO_PREFIX se |
diff --git a/include/asm-sh/se7722.h b/include/asm-sh/se7722.h new file mode 100644 index 000000000000..b3b31e4725c6 --- /dev/null +++ b/include/asm-sh/se7722.h | |||
@@ -0,0 +1,118 @@ | |||
1 | #ifndef __ASM_SH_SE7722_H | ||
2 | #define __ASM_SH_SE7722_H | ||
3 | |||
4 | /* | ||
5 | * linux/include/asm-sh/se7722.h | ||
6 | * | ||
7 | * Copyright (C) 2007 Nobuhiro Iwamatsu | ||
8 | * | ||
9 | * Hitachi UL SolutionEngine 7722 Support. | ||
10 | * | ||
11 | * This file is subject to the terms and conditions of the GNU General Public | ||
12 | * License. See the file "COPYING" in the main directory of this archive | ||
13 | * for more details. | ||
14 | * | ||
15 | */ | ||
16 | #include <asm/addrspace.h> | ||
17 | |||
18 | /* Box specific addresses. */ | ||
19 | #define SE_AREA0_WIDTH 4 /* Area0: 32bit */ | ||
20 | #define PA_ROM 0xa0000000 /* EPROM */ | ||
21 | #define PA_ROM_SIZE 0x00200000 /* EPROM size 2M byte */ | ||
22 | #define PA_FROM 0xa1000000 /* Flash-ROM */ | ||
23 | #define PA_FROM_SIZE 0x01000000 /* Flash-ROM size 16M byte */ | ||
24 | #define PA_EXT1 0xa4000000 | ||
25 | #define PA_EXT1_SIZE 0x04000000 | ||
26 | #define PA_SDRAM 0xaC000000 /* DDR-SDRAM(Area3) 64MB */ | ||
27 | #define PA_SDRAM_SIZE 0x04000000 | ||
28 | |||
29 | #define PA_EXT4 0xb0000000 | ||
30 | #define PA_EXT4_SIZE 0x04000000 | ||
31 | |||
32 | #define PA_PERIPHERAL 0xB0000000 | ||
33 | |||
34 | #define PA_PCIC PA_PERIPHERAL /* MR-SHPC-01 PCMCIA */ | ||
35 | #define PA_MRSHPC (PA_PERIPHERAL + 0x003fffe0) /* MR-SHPC-01 PCMCIA controller */ | ||
36 | #define PA_MRSHPC_MW1 (PA_PERIPHERAL + 0x00400000) /* MR-SHPC-01 memory window base */ | ||
37 | #define PA_MRSHPC_MW2 (PA_PERIPHERAL + 0x00500000) /* MR-SHPC-01 attribute window base */ | ||
38 | #define PA_MRSHPC_IO (PA_PERIPHERAL + 0x00600000) /* MR-SHPC-01 I/O window base */ | ||
39 | #define MRSHPC_OPTION (PA_MRSHPC + 6) | ||
40 | #define MRSHPC_CSR (PA_MRSHPC + 8) | ||
41 | #define MRSHPC_ISR (PA_MRSHPC + 10) | ||
42 | #define MRSHPC_ICR (PA_MRSHPC + 12) | ||
43 | #define MRSHPC_CPWCR (PA_MRSHPC + 14) | ||
44 | #define MRSHPC_MW0CR1 (PA_MRSHPC + 16) | ||
45 | #define MRSHPC_MW1CR1 (PA_MRSHPC + 18) | ||
46 | #define MRSHPC_IOWCR1 (PA_MRSHPC + 20) | ||
47 | #define MRSHPC_MW0CR2 (PA_MRSHPC + 22) | ||
48 | #define MRSHPC_MW1CR2 (PA_MRSHPC + 24) | ||
49 | #define MRSHPC_IOWCR2 (PA_MRSHPC + 26) | ||
50 | #define MRSHPC_CDCR (PA_MRSHPC + 28) | ||
51 | #define MRSHPC_PCIC_INFO (PA_MRSHPC + 30) | ||
52 | |||
53 | #define PA_LED (PA_PERIPHERAL + 0x00800000) /* 8bit LED */ | ||
54 | #define PA_FPGA (PA_PERIPHERAL + 0x01800000) /* FPGA base address */ | ||
55 | |||
56 | #define PA_LAN (PA_AREA6_IO + 0) /* SMC LAN91C111 */ | ||
57 | /* GPIO */ | ||
58 | #define MSTPCR0 0xA4150030UL | ||
59 | #define MSTPCR1 0xA4150034UL | ||
60 | #define MSTPCR2 0xA4150038UL | ||
61 | |||
62 | #define FPGA_IN 0xb1840000UL | ||
63 | #define FPGA_OUT 0xb1840004UL | ||
64 | |||
65 | #define PORT_PECR 0xA4050108UL | ||
66 | #define PORT_PJCR 0xA4050110UL | ||
67 | #define PORT_PSELD 0xA4050154UL | ||
68 | #define PORT_PSELB 0xA4050150UL | ||
69 | |||
70 | #define PORT_PSELC 0xA4050152UL | ||
71 | #define PORT_PKCR 0xA4050112UL | ||
72 | #define PORT_PHCR 0xA405010EUL | ||
73 | #define PORT_PLCR 0xA4050114UL | ||
74 | #define PORT_PMCR 0xA4050116UL | ||
75 | #define PORT_PRCR 0xA405011CUL | ||
76 | #define PORT_PXCR 0xA4050148UL | ||
77 | #define PORT_PSELA 0xA405014EUL | ||
78 | #define PORT_PYCR 0xA405014AUL | ||
79 | #define PORT_PZCR 0xA405014CUL | ||
80 | |||
81 | /* IRQ */ | ||
82 | #define IRQ0_IRQ 32 | ||
83 | #define IRQ1_IRQ 33 | ||
84 | #define INTC_ICR0 0xA4140000UL | ||
85 | #define INTC_ICR1 0xA414001CUL | ||
86 | |||
87 | #define INTMSK0 0xa4140044 | ||
88 | #define INTMSKCLR0 0xa4140064 | ||
89 | #define INTC_INTPRI0 0xa4140010 | ||
90 | |||
91 | #define IRQ01_MODE 0xb1800000 | ||
92 | #define IRQ01_STS 0xb1800004 | ||
93 | #define IRQ01_MASK 0xb1800008 | ||
94 | #define EXT_BIT (0x3fc0) /* SH IRQ1 */ | ||
95 | #define MRSHPC_BIT0 (0x0004) /* SH IRQ1 */ | ||
96 | #define MRSHPC_BIT1 (0x0008) /* SH IRQ1 */ | ||
97 | #define MRSHPC_BIT2 (0x0010) /* SH IRQ1 */ | ||
98 | #define MRSHPC_BIT3 (0x0020) /* SH IRQ1 */ | ||
99 | #define SMC_BIT (0x0002) /* SH IRQ0 */ | ||
100 | #define USB_BIT (0x0001) /* SH IRQ0 */ | ||
101 | |||
102 | #define MRSHPC_IRQ3 11 | ||
103 | #define MRSHPC_IRQ2 12 | ||
104 | #define MRSHPC_IRQ1 13 | ||
105 | #define MRSHPC_IRQ0 14 | ||
106 | #define SMC_IRQ 10 | ||
107 | #define EXT_IRQ 5 | ||
108 | #define USB_IRQ 6 | ||
109 | |||
110 | |||
111 | /* arch/sh/boards/se/7722/irq.c */ | ||
112 | void init_se7722_IRQ(void); | ||
113 | int se7722_irq_demux(int); | ||
114 | |||
115 | #define __IO_PREFIX se7722 | ||
116 | #include <asm/io_generic.h> | ||
117 | |||
118 | #endif /* __ASM_SH_SE7722_H */ | ||
diff --git a/include/asm-sh/se7751.h b/include/asm-sh/se7751.h index 88cd379d9084..02ca9347f043 100644 --- a/include/asm-sh/se7751.h +++ b/include/asm-sh/se7751.h | |||
@@ -65,6 +65,8 @@ | |||
65 | 65 | ||
66 | #define IRQ_79C973 13 | 66 | #define IRQ_79C973 13 |
67 | 67 | ||
68 | void init_7751se_IRQ(void); | ||
69 | |||
68 | #define __IO_PREFIX sh7751se | 70 | #define __IO_PREFIX sh7751se |
69 | #include <asm/io_generic.h> | 71 | #include <asm/io_generic.h> |
70 | 72 | ||
diff --git a/include/asm-sh/se7780.h b/include/asm-sh/se7780.h new file mode 100644 index 000000000000..40e9b41458cd --- /dev/null +++ b/include/asm-sh/se7780.h | |||
@@ -0,0 +1,108 @@ | |||
1 | #ifndef __ASM_SH_SE7780_H | ||
2 | #define __ASM_SH_SE7780_H | ||
3 | |||
4 | /* | ||
5 | * linux/include/asm-sh/se7780.h | ||
6 | * | ||
7 | * Copyright (C) 2006,2007 Nobuhiro Iwamatsu | ||
8 | * | ||
9 | * Hitachi UL SolutionEngine 7780 Support. | ||
10 | * | ||
11 | * This file is subject to the terms and conditions of the GNU General Public | ||
12 | * License. See the file "COPYING" in the main directory of this archive | ||
13 | * for more details. | ||
14 | */ | ||
15 | #include <asm/addrspace.h> | ||
16 | |||
17 | /* Box specific addresses. */ | ||
18 | #define SE_AREA0_WIDTH 4 /* Area0: 32bit */ | ||
19 | #define PA_ROM 0xa0000000 /* EPROM */ | ||
20 | #define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte */ | ||
21 | #define PA_FROM 0xa1000000 /* Flash-ROM */ | ||
22 | #define PA_FROM_SIZE 0x01000000 /* Flash-ROM size 16M byte */ | ||
23 | #define PA_EXT1 0xa4000000 | ||
24 | #define PA_EXT1_SIZE 0x04000000 | ||
25 | #define PA_SM501 PA_EXT1 /* Graphic IC (SM501) */ | ||
26 | #define PA_SM501_SIZE PA_EXT1_SIZE /* Graphic IC (SM501) */ | ||
27 | #define PA_SDRAM 0xa8000000 /* DDR-SDRAM(Area2/3) 128MB */ | ||
28 | #define PA_SDRAM_SIZE 0x08000000 | ||
29 | |||
30 | #define PA_EXT4 0xb0000000 | ||
31 | #define PA_EXT4_SIZE 0x04000000 | ||
32 | #define PA_EXT_FLASH PA_EXT4 /* Expansion Flash-ROM */ | ||
33 | |||
34 | #define PA_PERIPHERAL PA_AREA6_IO /* SW6-6=ON */ | ||
35 | |||
36 | #define PA_LAN (PA_PERIPHERAL + 0) /* SMC LAN91C111 */ | ||
37 | #define PA_LED_DISP (PA_PERIPHERAL + 0x02000000) /* 8words LED Display */ | ||
38 | #define DISP_CHAR_RAM (7 << 3) | ||
39 | #define DISP_SEL0_ADDR (DISP_CHAR_RAM + 0) | ||
40 | #define DISP_SEL1_ADDR (DISP_CHAR_RAM + 1) | ||
41 | #define DISP_SEL2_ADDR (DISP_CHAR_RAM + 2) | ||
42 | #define DISP_SEL3_ADDR (DISP_CHAR_RAM + 3) | ||
43 | #define DISP_SEL4_ADDR (DISP_CHAR_RAM + 4) | ||
44 | #define DISP_SEL5_ADDR (DISP_CHAR_RAM + 5) | ||
45 | #define DISP_SEL6_ADDR (DISP_CHAR_RAM + 6) | ||
46 | #define DISP_SEL7_ADDR (DISP_CHAR_RAM + 7) | ||
47 | |||
48 | #define DISP_UDC_RAM (5 << 3) | ||
49 | #define PA_FPGA (PA_PERIPHERAL + 0x03000000) /* FPGA base address */ | ||
50 | |||
51 | /* FPGA register address and bit */ | ||
52 | #define FPGA_SFTRST (PA_FPGA + 0) /* Soft reset register */ | ||
53 | #define FPGA_INTMSK1 (PA_FPGA + 2) /* Interrupt Mask register 1 */ | ||
54 | #define FPGA_INTMSK2 (PA_FPGA + 4) /* Interrupt Mask register 2 */ | ||
55 | #define FPGA_INTSEL1 (PA_FPGA + 6) /* Interrupt select register 1 */ | ||
56 | #define FPGA_INTSEL2 (PA_FPGA + 8) /* Interrupt select register 2 */ | ||
57 | #define FPGA_INTSEL3 (PA_FPGA + 10) /* Interrupt select register 3 */ | ||
58 | #define FPGA_PCI_INTSEL1 (PA_FPGA + 12) /* PCI Interrupt select register 1 */ | ||
59 | #define FPGA_PCI_INTSEL2 (PA_FPGA + 14) /* PCI Interrupt select register 2 */ | ||
60 | #define FPGA_INTSET (PA_FPGA + 16) /* IRQ/IRL select register */ | ||
61 | #define FPGA_INTSTS1 (PA_FPGA + 18) /* Interrupt status register 1 */ | ||
62 | #define FPGA_INTSTS2 (PA_FPGA + 20) /* Interrupt status register 2 */ | ||
63 | #define FPGA_REQSEL (PA_FPGA + 22) /* REQ/GNT select register */ | ||
64 | #define FPGA_DBG_LED (PA_FPGA + 32) /* Debug LED(D-LED[8:1] */ | ||
65 | #define PA_LED FPGA_DBG_LED | ||
66 | #define FPGA_IVDRID (PA_FPGA + 36) /* iVDR ID Register */ | ||
67 | #define FPGA_IVDRPW (PA_FPGA + 38) /* iVDR Power ON Register */ | ||
68 | #define FPGA_MMCID (PA_FPGA + 40) /* MMC ID Register */ | ||
69 | |||
70 | /* FPGA INTSEL position */ | ||
71 | /* INTSEL1 */ | ||
72 | #define IRQPOS_SMC91CX (0 * 4) | ||
73 | #define IRQPOS_SM501 (1 * 4) | ||
74 | /* INTSEL2 */ | ||
75 | #define IRQPOS_EXTINT1 (0 * 4) | ||
76 | #define IRQPOS_EXTINT2 (1 * 4) | ||
77 | #define IRQPOS_EXTINT3 (2 * 4) | ||
78 | #define IRQPOS_EXTINT4 (3 * 4) | ||
79 | /* INTSEL3 */ | ||
80 | #define IRQPOS_PCCPW (0 * 4) | ||
81 | |||
82 | /* IDE interrupt */ | ||
83 | #define IRQ_IDE0 67 /* iVDR */ | ||
84 | |||
85 | /* SMC interrupt */ | ||
86 | #define SMC_IRQ 8 | ||
87 | |||
88 | /* SM501 interrupt */ | ||
89 | #define SM501_IRQ 0 | ||
90 | |||
91 | /* interrupt pin */ | ||
92 | #define IRQPIN_EXTINT1 0 /* IRQ0 pin */ | ||
93 | #define IRQPIN_EXTINT2 1 /* IRQ1 pin */ | ||
94 | #define IRQPIN_EXTINT3 2 /* IRQ2 pin */ | ||
95 | #define IRQPIN_SMC91CX 3 /* IRQ3 pin */ | ||
96 | #define IRQPIN_EXTINT4 4 /* IRQ4 pin */ | ||
97 | #define IRQPIN_PCC0 5 /* IRQ5 pin */ | ||
98 | #define IRQPIN_PCC2 6 /* IRQ6 pin */ | ||
99 | #define IRQPIN_SM501 7 /* IRQ7 pin */ | ||
100 | #define IRQPIN_PCCPW 7 /* IRQ7 pin */ | ||
101 | |||
102 | /* arch/sh/boards/se/7780/irq.c */ | ||
103 | void init_se7780_IRQ(void); | ||
104 | |||
105 | #define __IO_PREFIX se7780 | ||
106 | #include <asm/io_generic.h> | ||
107 | |||
108 | #endif /* __ASM_SH_SE7780_H */ | ||
diff --git a/include/asm-sh/stat.h b/include/asm-sh/stat.h index 6c41a60657f1..6d6ad26e3a2a 100644 --- a/include/asm-sh/stat.h +++ b/include/asm-sh/stat.h | |||
@@ -16,15 +16,13 @@ struct __old_kernel_stat { | |||
16 | }; | 16 | }; |
17 | 17 | ||
18 | struct stat { | 18 | struct stat { |
19 | unsigned short st_dev; | 19 | unsigned long st_dev; |
20 | unsigned short __pad1; | 20 | unsigned long st_ino; |
21 | unsigned long st_ino; | ||
22 | unsigned short st_mode; | 21 | unsigned short st_mode; |
23 | unsigned short st_nlink; | 22 | unsigned short st_nlink; |
24 | unsigned short st_uid; | 23 | unsigned short st_uid; |
25 | unsigned short st_gid; | 24 | unsigned short st_gid; |
26 | unsigned short st_rdev; | 25 | unsigned long st_rdev; |
27 | unsigned short __pad2; | ||
28 | unsigned long st_size; | 26 | unsigned long st_size; |
29 | unsigned long st_blksize; | 27 | unsigned long st_blksize; |
30 | unsigned long st_blocks; | 28 | unsigned long st_blocks; |
@@ -38,8 +36,6 @@ struct stat { | |||
38 | unsigned long __unused5; | 36 | unsigned long __unused5; |
39 | }; | 37 | }; |
40 | 38 | ||
41 | #define STAT_HAVE_NSEC 1 | ||
42 | |||
43 | /* This matches struct stat64 in glibc2.1, hence the absolutely | 39 | /* This matches struct stat64 in glibc2.1, hence the absolutely |
44 | * insane amounts of padding around dev_t's. | 40 | * insane amounts of padding around dev_t's. |
45 | */ | 41 | */ |
@@ -47,7 +43,9 @@ struct stat64 { | |||
47 | unsigned long long st_dev; | 43 | unsigned long long st_dev; |
48 | unsigned char __pad0[4]; | 44 | unsigned char __pad0[4]; |
49 | 45 | ||
50 | unsigned long st_ino; | 46 | #define STAT64_HAS_BROKEN_ST_INO 1 |
47 | unsigned long __st_ino; | ||
48 | |||
51 | unsigned int st_mode; | 49 | unsigned int st_mode; |
52 | unsigned int st_nlink; | 50 | unsigned int st_nlink; |
53 | 51 | ||
@@ -71,8 +69,9 @@ struct stat64 { | |||
71 | unsigned long st_ctime; | 69 | unsigned long st_ctime; |
72 | unsigned long st_ctime_nsec; | 70 | unsigned long st_ctime_nsec; |
73 | 71 | ||
74 | unsigned long __unused1; | 72 | unsigned long long st_ino; |
75 | unsigned long __unused2; | ||
76 | }; | 73 | }; |
77 | 74 | ||
75 | #define STAT_HAVE_NSEC 1 | ||
76 | |||
78 | #endif /* __ASM_SH_STAT_H */ | 77 | #endif /* __ASM_SH_STAT_H */ |
diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h index 4a6a19f4f8a4..127af304865f 100644 --- a/include/asm-sh/system.h +++ b/include/asm-sh/system.h | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/irqflags.h> | 9 | #include <linux/irqflags.h> |
10 | #include <linux/compiler.h> | 10 | #include <linux/compiler.h> |
11 | #include <asm/types.h> | 11 | #include <asm/types.h> |
12 | #include <asm/ptrace.h> | ||
12 | 13 | ||
13 | /* | 14 | /* |
14 | * switch_to() should switch tasks to task nr n, first | 15 | * switch_to() should switch tasks to task nr n, first |
@@ -255,6 +256,8 @@ static inline unsigned long __cmpxchg(volatile void * ptr, unsigned long old, | |||
255 | (unsigned long)_n_, sizeof(*(ptr))); \ | 256 | (unsigned long)_n_, sizeof(*(ptr))); \ |
256 | }) | 257 | }) |
257 | 258 | ||
259 | extern void die(const char *str, struct pt_regs *regs, long err) __attribute__ ((noreturn)); | ||
260 | |||
258 | extern void *set_exception_table_vec(unsigned int vec, void *handler); | 261 | extern void *set_exception_table_vec(unsigned int vec, void *handler); |
259 | 262 | ||
260 | static inline void *set_exception_table_evt(unsigned int evt, void *handler) | 263 | static inline void *set_exception_table_evt(unsigned int evt, void *handler) |
diff --git a/sound/oss/sh_dac_audio.c b/sound/oss/sh_dac_audio.c index 7ea9accc2ba4..b493660deb36 100644 --- a/sound/oss/sh_dac_audio.c +++ b/sound/oss/sh_dac_audio.c | |||
@@ -104,7 +104,7 @@ static void dac_audio_set_rate(void) | |||
104 | unsigned long interval; | 104 | unsigned long interval; |
105 | struct clk *clk; | 105 | struct clk *clk; |
106 | 106 | ||
107 | clk = clk_get("module_clk"); | 107 | clk = clk_get(NULL, "module_clk"); |
108 | interval = (clk_get_rate(clk) / 4) / rate; | 108 | interval = (clk_get_rate(clk) / 4) / rate; |
109 | clk_put(clk); | 109 | clk_put(clk); |
110 | ctrl_outl(interval, TMU1_TCOR); | 110 | ctrl_outl(interval, TMU1_TCOR); |