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); | 
