diff options
276 files changed, 12 insertions, 27059 deletions
@@ -1034,6 +1034,10 @@ S: 2037 Walnut #6 S: Boulder, Colorado 80302 S: USA +N: Hans-Christian Noren Egtvedt +E: egtvedt@samfundet.no +D: AVR32 architecture maintainer. + N: Heiko Eißfeldt E: heiko@colossus.escape.de heiko@unifix.de D: verify_area stuff, generic SCSI fixes @@ -3398,6 +3402,10 @@ S: Suite 101 S: Markham, Ontario L3R 2Z6 S: Canada +N: Haavard Skinnemoen +M: Haavard Skinnemoen <hskinnemoen@gmail.com> +D: AVR32 architecture port to Linux and maintainer. + N: Rick Sladkey E: jrs@world.std.com D: utility hacker: Emacs, NFS server, mount, kmem-ps, UPS debugger, strace, GDB diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst index 697a00ccec25..02f639aab06e 100644 --- a/Documentation/admin-guide/README.rst +++ b/Documentation/admin-guide/README.rst @@ -27,7 +27,7 @@ On what hardware does it run? today Linux also runs on (at least) the Compaq Alpha AXP, Sun SPARC and UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS, - Xtensa, Tilera TILE, AVR32, ARC and Renesas M32R architectures. + Xtensa, Tilera TILE, ARC and Renesas M32R architectures. Linux is easily portable to most general-purpose 32- or 64-bit architectures as long as they have a paged memory management unit (PMMU) and a port of the diff --git a/Documentation/admin-guide/kernel-parameters.rst b/Documentation/admin-guide/kernel-parameters.rst index b516164999a8..c74933ccf7c9 100644 --- a/Documentation/admin-guide/kernel-parameters.rst +++ b/Documentation/admin-guide/kernel-parameters.rst @@ -86,7 +86,6 @@ parameter is applicable:: APIC APIC support is enabled. APM Advanced Power Management support is enabled. ARM ARM architecture is enabled. - AVR32 AVR32 architecture is enabled. AX25 Appropriate AX.25 support is enabled. BLACKFIN Blackfin architecture is enabled. CLK Common clock infrastructure is enabled. diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index facc20a3f962..51d4dddde0b3 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -531,7 +531,6 @@ [ACPI] acpi_pm [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, pxa_timer,timer3,32k_counter,timer0_1 - [AVR32] avr32 [X86-32] pit,hpet,tsc; scx200_hrt on Geode; cyclone on IBM x440 [MIPS] MIPS @@ -2425,7 +2424,7 @@ osd-targets. Please see: Documentation/filesystems/pnfs.txt for more explanations - nmi_debug= [KNL,AVR32,SH] Specify one or more actions to take + nmi_debug= [KNL,SH] Specify one or more actions to take when a NMI is triggered. Format: [state][,regs][,debounce][,die] diff --git a/Documentation/features/core/BPF-JIT/arch-support.txt b/Documentation/features/core/BPF-JIT/arch-support.txt index c1b4f917238f..5575d2d09625 100644 --- a/Documentation/features/core/BPF-JIT/arch-support.txt +++ b/Documentation/features/core/BPF-JIT/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt index 6d930fcbe519..abb5f271a792 100644 --- a/Documentation/features/core/generic-idle-thread/arch-support.txt +++ b/Documentation/features/core/generic-idle-thread/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt index 136868b636e6..dbdaffcc5110 100644 --- a/Documentation/features/core/jump-labels/arch-support.txt +++ b/Documentation/features/core/jump-labels/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt index 728061d763b1..5e97a89420ef 100644 --- a/Documentation/features/core/tracehook/arch-support.txt +++ b/Documentation/features/core/tracehook/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | ok | | c6x: | ok | | cris: | TODO | diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt index 703f5784bc90..76bbd7fe27b3 100644 --- a/Documentation/features/debug/KASAN/arch-support.txt +++ b/Documentation/features/debug/KASAN/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt index 38dea8eeba0a..830dbe801aaf 100644 --- a/Documentation/features/debug/gcov-profile-all/arch-support.txt +++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt index 862e15d6f79e..0217bf6e942d 100644 --- a/Documentation/features/debug/kgdb/arch-support.txt +++ b/Documentation/features/debug/kgdb/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt index 40f44d041fb4..f9133a921d5a 100644 --- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt +++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt index a44bfff6940b..529f66eda679 100644 --- a/Documentation/features/debug/kprobes/arch-support.txt +++ b/Documentation/features/debug/kprobes/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | TODO | - | avr32: | ok | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt index d87c1ce24204..43353242e439 100644 --- a/Documentation/features/debug/kretprobes/arch-support.txt +++ b/Documentation/features/debug/kretprobes/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt index b8999d8544ca..f559f1ba5416 100644 --- a/Documentation/features/debug/optprobes/arch-support.txt +++ b/Documentation/features/debug/optprobes/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt index 0fa423313409..d7acd7bd3619 100644 --- a/Documentation/features/debug/stackprotector/arch-support.txt +++ b/Documentation/features/debug/stackprotector/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt index d605c3fc38fd..53ed42b0e7e5 100644 --- a/Documentation/features/debug/uprobes/arch-support.txt +++ b/Documentation/features/debug/uprobes/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt index 44cc1ff3f603..149443936de9 100644 --- a/Documentation/features/debug/user-ret-profiler/arch-support.txt +++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/io/dma-api-debug/arch-support.txt b/Documentation/features/io/dma-api-debug/arch-support.txt index ffa522a9bdfd..6be920643be6 100644 --- a/Documentation/features/io/dma-api-debug/arch-support.txt +++ b/Documentation/features/io/dma-api-debug/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | ok | | cris: | TODO | diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt index 83d2cf989ea3..0eb08e1e32b8 100644 --- a/Documentation/features/io/dma-contiguous/arch-support.txt +++ b/Documentation/features/io/dma-contiguous/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/io/sg-chain/arch-support.txt b/Documentation/features/io/sg-chain/arch-support.txt index 6ca98f9911bb..514ad3468aa5 100644 --- a/Documentation/features/io/sg-chain/arch-support.txt +++ b/Documentation/features/io/sg-chain/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/lib/strncasecmp/arch-support.txt b/Documentation/features/lib/strncasecmp/arch-support.txt index 12b1c9358e57..532c6f0fc15c 100644 --- a/Documentation/features/lib/strncasecmp/arch-support.txt +++ b/Documentation/features/lib/strncasecmp/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt index d9c310889bc1..f3eec26c8cf8 100644 --- a/Documentation/features/locking/cmpxchg-local/arch-support.txt +++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt index cf90635bdcbb..9756abc680a7 100644 --- a/Documentation/features/locking/lockdep/arch-support.txt +++ b/Documentation/features/locking/lockdep/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | ok | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt index 68c3a5ddd9b9..62f4ee5c156c 100644 --- a/Documentation/features/locking/queued-rwlocks/arch-support.txt +++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt index e973b1a9572f..321b32f6e63c 100644 --- a/Documentation/features/locking/queued-spinlocks/arch-support.txt +++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/locking/rwsem-optimized/arch-support.txt b/Documentation/features/locking/rwsem-optimized/arch-support.txt index ac93d7ab66c4..79bfa4d6e41f 100644 --- a/Documentation/features/locking/rwsem-optimized/arch-support.txt +++ b/Documentation/features/locking/rwsem-optimized/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt index 4660bf222db1..00f1606bbf45 100644 --- a/Documentation/features/perf/kprobes-event/arch-support.txt +++ b/Documentation/features/perf/kprobes-event/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt index f179b1fb26ef..7d516eacf7b9 100644 --- a/Documentation/features/perf/perf-regs/arch-support.txt +++ b/Documentation/features/perf/perf-regs/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt index 85777c5c6353..f974b8df5d82 100644 --- a/Documentation/features/perf/perf-stackdump/arch-support.txt +++ b/Documentation/features/perf/perf-stackdump/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt index ac7cd6b1502b..1d3c0f669152 100644 --- a/Documentation/features/sched/numa-balancing/arch-support.txt +++ b/Documentation/features/sched/numa-balancing/arch-support.txt @@ -10,7 +10,6 @@ | arc: | .. | | arm: | .. | | arm64: | .. | - | avr32: | .. | | blackfin: | .. | | c6x: | .. | | cris: | .. | diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt index 4f66ec133951..a32d5b207679 100644 --- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt +++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt index 8acb439a4a17..caee8f64d1bc 100644 --- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt +++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt index ff670b2207f1..1cd87f6cd07d 100644 --- a/Documentation/features/time/clockevents/arch-support.txt +++ b/Documentation/features/time/clockevents/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | ok | | blackfin: | ok | | c6x: | ok | | cris: | ok | diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt index a1e3eea7003f..e6d7c7b2253c 100644 --- a/Documentation/features/time/context-tracking/arch-support.txt +++ b/Documentation/features/time/context-tracking/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt index 4199ffecc0ff..15c6071788ae 100644 --- a/Documentation/features/time/irq-time-acct/arch-support.txt +++ b/Documentation/features/time/irq-time-acct/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/time/modern-timekeeping/arch-support.txt b/Documentation/features/time/modern-timekeeping/arch-support.txt index 17f68a02e84d..baee7611ba3d 100644 --- a/Documentation/features/time/modern-timekeeping/arch-support.txt +++ b/Documentation/features/time/modern-timekeeping/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | TODO | | arm64: | ok | - | avr32: | ok | | blackfin: | TODO | | c6x: | ok | | cris: | TODO | diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt index cf3c3e383d15..9129530cb73c 100644 --- a/Documentation/features/time/virt-cpuacct/arch-support.txt +++ b/Documentation/features/time/virt-cpuacct/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt index ec4dd28e1297..f6829af3255f 100644 --- a/Documentation/features/vm/ELF-ASLR/arch-support.txt +++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt index 991974275a3e..1a09ea99d486 100644 --- a/Documentation/features/vm/PG_uncached/arch-support.txt +++ b/Documentation/features/vm/PG_uncached/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt index 523f8307b9cd..d170e6236503 100644 --- a/Documentation/features/vm/THP/arch-support.txt +++ b/Documentation/features/vm/THP/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | .. | | blackfin: | .. | | c6x: | .. | | cris: | .. | diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt index 261b92e2fb1a..abfab4080a91 100644 --- a/Documentation/features/vm/TLB/arch-support.txt +++ b/Documentation/features/vm/TLB/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | TODO | - | avr32: | .. | | blackfin: | TODO | | c6x: | .. | | cris: | .. | diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt index df1d1f3c9af2..f81f09b22b08 100644 --- a/Documentation/features/vm/huge-vmap/arch-support.txt +++ b/Documentation/features/vm/huge-vmap/arch-support.txt @@ -10,7 +10,6 @@ | arc: | TODO | | arm: | TODO | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt index 90c53749fde7..0cc3e11c42e2 100644 --- a/Documentation/features/vm/ioremap_prot/arch-support.txt +++ b/Documentation/features/vm/ioremap_prot/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | TODO | | arm64: | TODO | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/features/vm/numa-memblock/arch-support.txt b/Documentation/features/vm/numa-memblock/arch-support.txt index e7c252a0c531..9a3fdac42ce1 100644 --- a/Documentation/features/vm/numa-memblock/arch-support.txt +++ b/Documentation/features/vm/numa-memblock/arch-support.txt @@ -10,7 +10,6 @@ | arc: | .. | | arm: | .. | | arm64: | .. | - | avr32: | .. | | blackfin: | .. | | c6x: | .. | | cris: | .. | diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt index 3de5434c857c..dfaa39e664ff 100644 --- a/Documentation/features/vm/pte_special/arch-support.txt +++ b/Documentation/features/vm/pte_special/arch-support.txt @@ -10,7 +10,6 @@ | arc: | ok | | arm: | ok | | arm64: | ok | - | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | diff --git a/Documentation/media/v4l-drivers/soc-camera.rst b/Documentation/media/v4l-drivers/soc-camera.rst index ba0c15dd092c..79d09e423700 100644 --- a/Documentation/media/v4l-drivers/soc-camera.rst +++ b/Documentation/media/v4l-drivers/soc-camera.rst @@ -12,7 +12,7 @@ The following terms are used in this document: control and configuration, and a parallel or a serial bus for data. - camera host - an interface, to which a camera is connected. Typically a specialised interface, present on many SoCs, e.g. PXA27x and PXA3xx, SuperH, - AVR32, i.MX27, i.MX31. + i.MX27, i.MX31. - camera host bus - a connection between a camera host and a camera. Can be parallel or serial, consists of data and control lines, e.g. clock, vertical and horizontal synchronization signals. diff --git a/MAINTAINERS b/MAINTAINERS index 0f6df84fec54..2eefd8c48b75 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2327,21 +2327,6 @@ S: Maintained F: drivers/auxdisplay/ F: include/linux/cfag12864b.h -AVR32 ARCHITECTURE -M: Haavard Skinnemoen <hskinnemoen@gmail.com> -M: Hans-Christian Egtvedt <egtvedt@samfundet.no> -W: http://www.atmel.com/products/AVR32/ -W: http://mirror.egtvedt.no/avr32linux.org/ -W: http://avrfreaks.net/ -S: Maintained -F: arch/avr32/ - -AVR32/AT32AP MACHINE SUPPORT -M: Haavard Skinnemoen <hskinnemoen@gmail.com> -M: Hans-Christian Egtvedt <egtvedt@samfundet.no> -S: Maintained -F: arch/avr32/mach-at32ap/ - AX.25 NETWORK LAYER M: Ralf Baechle <ralf@linux-mips.org> L: linux-hams@vger.kernel.org diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig deleted file mode 100644 index 7e75d45e20cd..000000000000 --- a/arch/avr32/Kconfig +++ /dev/null @@ -1,288 +0,0 @@ -config AVR32 - def_bool y - # With EXPERT=n, we get lots of stuff automatically selected - # that we usually don't need on AVR32. - select EXPERT - select HAVE_CLK - select HAVE_EXIT_THREAD - select HAVE_OPROFILE - select HAVE_KPROBES - select VIRT_TO_BUS - select GENERIC_IRQ_PROBE - select GENERIC_ATOMIC64 - select HARDIRQS_SW_RESEND - select GENERIC_IRQ_SHOW - select ARCH_HAVE_CUSTOM_GPIO_H - select ARCH_WANT_IPC_PARSE_VERSION - select ARCH_HAVE_NMI_SAFE_CMPXCHG - select GENERIC_CLOCKEVENTS - select HAVE_MOD_ARCH_SPECIFIC - select MODULES_USE_ELF_RELA - select HAVE_NMI - help - AVR32 is a high-performance 32-bit RISC microprocessor core, - designed for cost-sensitive embedded applications, with particular - emphasis on low power consumption and high code density. - - There is an AVR32 Linux project with a web page at - http://avr32linux.org/. - -config STACKTRACE_SUPPORT - def_bool y - -config LOCKDEP_SUPPORT - def_bool y - -config TRACE_IRQFLAGS_SUPPORT - def_bool y - -config RWSEM_GENERIC_SPINLOCK - def_bool y - -config RWSEM_XCHGADD_ALGORITHM - def_bool n - -config ARCH_HAS_ILOG2_U32 - def_bool n - -config ARCH_HAS_ILOG2_U64 - def_bool n - -config GENERIC_HWEIGHT - def_bool y - -config GENERIC_CALIBRATE_DELAY - def_bool y - -config GENERIC_BUG - def_bool y - depends on BUG - -source "init/Kconfig" - -source "kernel/Kconfig.freezer" - -menu "System Type and features" - -config SUBARCH_AVR32B - bool -config MMU - bool -config PERFORMANCE_COUNTERS - bool - -config PLATFORM_AT32AP - bool - select SUBARCH_AVR32B - select MMU - select PERFORMANCE_COUNTERS - select GPIOLIB - select GENERIC_ALLOCATOR - select HAVE_FB_ATMEL - -# -# CPU types -# - -# AP7000 derivatives -config CPU_AT32AP700X - bool - select PLATFORM_AT32AP -config CPU_AT32AP7000 - bool - select CPU_AT32AP700X -config CPU_AT32AP7001 - bool - select CPU_AT32AP700X -config CPU_AT32AP7002 - bool - select CPU_AT32AP700X - -# AP700X boards -config BOARD_ATNGW100_COMMON - bool - select CPU_AT32AP7000 - -choice - prompt "AVR32 board type" - default BOARD_ATSTK1000 - -config BOARD_ATSTK1000 - bool "ATSTK1000 evaluation board" - -config BOARD_ATNGW100_MKI - bool "ATNGW100 Network Gateway" - select BOARD_ATNGW100_COMMON - -config BOARD_ATNGW100_MKII - bool "ATNGW100 mkII Network Gateway" - select BOARD_ATNGW100_COMMON - -config BOARD_HAMMERHEAD - bool "Hammerhead board" - select CPU_AT32AP7000 - select USB_ARCH_HAS_HCD - help - The Hammerhead platform is built around an AVR32 32-bit microcontroller from Atmel. - It offers versatile peripherals, such as ethernet, usb device, usb host etc. - - The board also incorporates a power supply and is a Power over Ethernet (PoE) Powered - Device (PD). - - Additionally, a Cyclone III FPGA from Altera is integrated on the board. The FPGA is - mapped into the 32-bit AVR memory bus. The FPGA offers two DDR2 SDRAM interfaces, which - will cover even the most exceptional need of memory bandwidth. Together with the onboard - video decoder the board is ready for video processing. - - For more information see: http://www.miromico.ch/index.php/hammerhead.html - -config BOARD_FAVR_32 - bool "Favr-32 LCD-board" - select CPU_AT32AP7000 - -config BOARD_MERISC - bool "Merisc board" - select CPU_AT32AP7000 - help - Merisc is the family name for a range of AVR32-based boards. - - The boards are designed to be used in a man-machine - interfacing environment, utilizing a touch-based graphical - user interface. They host a vast range of I/O peripherals as - well as a large SDRAM & Flash memory bank. - - For more information see: http://www.martinsson.se/merisc - -config BOARD_MIMC200 - bool "MIMC200 CPU board" - select CPU_AT32AP7000 -endchoice - -source "arch/avr32/boards/atstk1000/Kconfig" -source "arch/avr32/boards/atngw100/Kconfig" -source "arch/avr32/boards/hammerhead/Kconfig" -source "arch/avr32/boards/favr-32/Kconfig" -source "arch/avr32/boards/merisc/Kconfig" - -choice - prompt "Boot loader type" - default LOADER_U_BOOT - -config LOADER_U_BOOT - bool "U-Boot (or similar) bootloader" -endchoice - -source "arch/avr32/mach-at32ap/Kconfig" - -config LOAD_ADDRESS - hex - default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y - -config ENTRY_ADDRESS - hex - default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y - -config PHYS_OFFSET - hex - default 0x10000000 if CPU_AT32AP700X=y - -source "kernel/Kconfig.preempt" - -config QUICKLIST - def_bool y - -config ARCH_HAVE_MEMORY_PRESENT - def_bool n - -config NEED_NODE_MEMMAP_SIZE - def_bool n - -config ARCH_FLATMEM_ENABLE - def_bool y - -config ARCH_DISCONTIGMEM_ENABLE - def_bool n - -config ARCH_SPARSEMEM_ENABLE - def_bool n - -config NODES_SHIFT - int - default "2" - depends on NEED_MULTIPLE_NODES - -source "mm/Kconfig" - -config OWNERSHIP_TRACE - bool "Ownership trace support" - default y - help - Say Y to generate an Ownership Trace message on every context switch, - enabling Nexus-compliant debuggers to keep track of the PID of the - currently executing task. - -config NMI_DEBUGGING - bool "NMI Debugging" - default n - help - Say Y here and pass the nmi_debug command-line parameter to - the kernel to turn on NMI debugging. Depending on the value - of the nmi_debug option, various pieces of information will - be dumped to the console when a Non-Maskable Interrupt - happens. - -# FPU emulation goes here - -source "kernel/Kconfig.hz" - -config CMDLINE - string "Default kernel command line" - default "" - help - If you don't have a boot loader capable of passing a command line string - to the kernel, you may specify one here. As a minimum, you should specify - the memory size and the root device (e.g., mem=8M, root=/dev/nfs). - -endmenu - -menu "Power management options" - -source "kernel/power/Kconfig" - -config ARCH_SUSPEND_POSSIBLE - def_bool y - -menu "CPU Frequency scaling" -source "drivers/cpufreq/Kconfig" -endmenu - -endmenu - -menu "Bus options" - -config PCI - bool - -source "drivers/pci/Kconfig" - -source "drivers/pcmcia/Kconfig" - -endmenu - -menu "Executable file formats" -source "fs/Kconfig.binfmt" -endmenu - -source "net/Kconfig" - -source "drivers/Kconfig" - -source "fs/Kconfig" - -source "arch/avr32/Kconfig.debug" - -source "security/Kconfig" - -source "crypto/Kconfig" - -source "lib/Kconfig" diff --git a/arch/avr32/Kconfig.debug b/arch/avr32/Kconfig.debug deleted file mode 100644 index 2283933a9a93..000000000000 --- a/arch/avr32/Kconfig.debug +++ /dev/null @@ -1,9 +0,0 @@ -menu "Kernel hacking" - -config TRACE_IRQFLAGS_SUPPORT - bool - default y - -source "lib/Kconfig.debug" - -endmenu diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile deleted file mode 100644 index dba48a5d5bb9..000000000000 --- a/arch/avr32/Makefile +++ /dev/null @@ -1,84 +0,0 @@ -# -# This file is subject to the terms and conditions of the GNU General Public -# License. See the file "COPYING" in the main directory of this archive -# for more details. -# -# Copyright (C) 2004-2006 Atmel Corporation. - -# Default target when executing plain make -.PHONY: all -all: uImage vmlinux.elf - -KBUILD_DEFCONFIG := atstk1002_defconfig - -KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic -D__linux__ -KBUILD_AFLAGS += -mrelax -mno-pic -KBUILD_CFLAGS_MODULE += -mno-relax -LDFLAGS_vmlinux += --relax - -cpuflags-$(CONFIG_PLATFORM_AT32AP) += -march=ap - -KBUILD_CFLAGS += $(cpuflags-y) -KBUILD_AFLAGS += $(cpuflags-y) - -CHECKFLAGS += -D__avr32__ -D__BIG_ENDIAN - -machine-$(CONFIG_PLATFORM_AT32AP) := at32ap -machdirs := $(patsubst %,arch/avr32/mach-%/, $(machine-y)) - -KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) - -head-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/head.o -head-y += arch/avr32/kernel/head.o -core-y += $(machdirs) -core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ -core-$(CONFIG_BOARD_ATNGW100_COMMON) += arch/avr32/boards/atngw100/ -core-$(CONFIG_BOARD_HAMMERHEAD) += arch/avr32/boards/hammerhead/ -core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ -core-$(CONFIG_BOARD_MERISC) += arch/avr32/boards/merisc/ -core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ -core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ -core-y += arch/avr32/kernel/ -core-y += arch/avr32/mm/ -drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/ -libs-y += arch/avr32/lib/ - -BOOT_TARGETS := vmlinux.elf vmlinux.bin uImage uImage.srec - -.PHONY: $(BOOT_TARGETS) install - -boot := arch/$(ARCH)/boot/images - - KBUILD_IMAGE := $(boot)/uImage -vmlinux.elf: KBUILD_IMAGE := $(boot)/vmlinux.elf -vmlinux.cso: KBUILD_IMAGE := $(boot)/vmlinux.cso -uImage.srec: KBUILD_IMAGE := $(boot)/uImage.srec -uImage: KBUILD_IMAGE := $(boot)/uImage - -quiet_cmd_listing = LST $@ - cmd_listing = avr32-linux-objdump $(OBJDUMPFLAGS) -lS $< > $@ -quiet_cmd_disasm = DIS $@ - cmd_disasm = avr32-linux-objdump $(OBJDUMPFLAGS) -d $< > $@ - -vmlinux.elf vmlinux.bin uImage.srec uImage vmlinux.cso: vmlinux - $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ - -install: vmlinux - $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@ - -vmlinux.s: vmlinux - $(call if_changed,disasm) - -vmlinux.lst: vmlinux - $(call if_changed,listing) - -CLEAN_FILES += vmlinux.s vmlinux.lst - -archclean: - $(Q)$(MAKE) $(clean)=$(boot) - -define archhelp - @echo '* vmlinux.elf - ELF image with load address 0' - @echo ' vmlinux.cso - PathFinder CSO image' - @echo '* uImage - Create a bootable image for U-Boot' -endef diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig deleted file mode 100644 index 4e55617ade2d..000000000000 --- a/arch/avr32/boards/atngw100/Kconfig +++ /dev/null @@ -1,65 +0,0 @@ -# NGW100 customization - -if BOARD_ATNGW100_COMMON - -config BOARD_ATNGW100_MKII_LCD - bool "Enable ATNGW100 mkII LCD interface" - depends on BOARD_ATNGW100_MKII - help - This enables the LCD controller (LCDC) in the AT32AP7000. Since the - LCDC is multiplexed with MACB1 (LAN) Ethernet port, only one can be - enabled at a time. - - This choice enables the LCDC and disables the MACB1 interface marked - LAN on the PCB. - -choice - prompt "Select an NGW100 add-on board to support" - default BOARD_ATNGW100_ADDON_NONE - -config BOARD_ATNGW100_ADDON_NONE - bool "None" - -config BOARD_ATNGW100_EVKLCD10X - bool "EVKLCD10X addon board" - depends on BOARD_ATNGW100_MKI || BOARD_ATNGW100_MKII_LCD - help - This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA) - addon board for the NGW100 and NGW100 mkII. By enabling this the LCD - controller and AC97 controller is added as platform devices. - -config BOARD_ATNGW100_MRMT - bool "Mediama RMT1/2 add-on board" - help - This enables support for the Mediama RMT1 or RMT2 board. - RMT provides LCD support, AC97 codec and other - optional peripherals to the Atmel NGW100. - - This choice disables the detect pin and the write-protect pin for the - MCI platform device, since it conflicts with the LCD platform device. - The MCI pins can be reenabled by editing the "add device function" but - this may break the setup for other displays that use these pins. - -endchoice - -choice - prompt "LCD panel resolution on EVKLCD10X" - depends on BOARD_ATNGW100_EVKLCD10X - default BOARD_ATNGW100_EVKLCD10X_VGA - -config BOARD_ATNGW100_EVKLCD10X_QVGA - bool "QVGA (320x240)" - -config BOARD_ATNGW100_EVKLCD10X_VGA - bool "VGA (640x480)" - -config BOARD_ATNGW100_EVKLCD10X_POW_QVGA - bool "Powertip QVGA (320x240)" - -endchoice - -if BOARD_ATNGW100_MRMT -source "arch/avr32/boards/atngw100/Kconfig_mrmt" -endif - -endif # BOARD_ATNGW100_COMMON diff --git a/arch/avr32/boards/atngw100/Kconfig_mrmt b/arch/avr32/boards/atngw100/Kconfig_mrmt deleted file mode 100644 index 9a199a207f3c..000000000000 --- a/arch/avr32/boards/atngw100/Kconfig_mrmt +++ /dev/null @@ -1,80 +0,0 @@ -# RMT for NGW100 customization - -choice - prompt "RMT Version" - help - Select the RMTx board version. - -config BOARD_MRMT_REV1 - bool "RMT1" -config BOARD_MRMT_REV2 - bool "RMT2" - -endchoice - -config BOARD_MRMT_AC97 - bool "Enable AC97 CODEC" - help - Enable the UCB1400 AC97 CODEC driver. - -choice - prompt "Touchscreen Driver" - default BOARD_MRMT_ADS7846_TS - -config BOARD_MRMT_UCB1400_TS - bool "Use UCB1400 Touchscreen" - -config BOARD_MRMT_ADS7846_TS - bool "Use ADS7846 Touchscreen" - -endchoice - -choice - prompt "RMTx LCD Selection" - default BOARD_MRMT_LCD_DISABLE - -config BOARD_MRMT_LCD_DISABLE - bool "LCD Disabled" - -config BOARD_MRMT_LCD_LQ043T3DX0X - bool "Sharp LQ043T3DX0x or compatible" - help - If using RMT2, be sure to load the resistor pack selectors accordingly - -if BOARD_MRMT_REV2 -config BOARD_MRMT_LCD_KWH043GM08 - bool "Formike KWH043GM08 or compatible" - help - Be sure to load the RMT2 resistor pack selectors accordingly -endif - -endchoice - -if !BOARD_MRMT_LCD_DISABLE -config BOARD_MRMT_BL_PWM - bool "Use PWM control for LCD Backlight" - help - Use PWM driver for controlling LCD Backlight. - Otherwise, LCD Backlight is always on. -endif - -config BOARD_MRMT_RTC_I2C - bool "Use External RTC on I2C Bus" - help - RMT1 has an optional RTC device on the I2C bus. - It is a SII S35390A. Be sure to select the - matching RTC driver. - -choice - prompt "Wireless Module on ttyS2" - default BOARD_MRMT_WIRELESS_ZB - -config BOARD_MRMT_WIRELESS_ZB - bool "Use ZigBee/802.15.4 Module" - -config BOARD_MRMT_WIRELESS_BT - bool "Use Bluetooth (HCI) Module" - -config BOARD_MRMT_WIRELESS_NONE - bool "Not Installed" -endchoice diff --git a/arch/avr32/boards/atngw100/Makefile b/arch/avr32/boards/atngw100/Makefile deleted file mode 100644 index f4ebe42a8254..000000000000 --- a/arch/avr32/boards/atngw100/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-y += setup.o flash.o -obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o -obj-$(CONFIG_BOARD_ATNGW100_MRMT) += mrmt.o diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c deleted file mode 100644 index 64919b0da7aa..000000000000 --- a/arch/avr32/boards/atngw100/evklcd10x.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100 - * Network Gateway - * - * Copyright (C) 2008 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - */ - -#include <linux/init.h> -#include <linux/linkage.h> -#include <linux/gpio.h> -#include <linux/fb.h> -#include <linux/platform_device.h> - -#include <video/atmel_lcdc.h> - -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/portmux.h> -#include <mach/board.h> - -#include <sound/atmel-ac97c.h> - -static struct ac97c_platform_data __initdata ac97c0_data = { - .reset_pin = GPIO_PIN_PB(19), -}; - -#ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA -static struct fb_videomode __initdata tcg057vglad_modes[] = { - { - .name = "640x480 @ 50", - .refresh = 50, - .xres = 640, .yres = 480, - .pixclock = KHZ2PICOS(25180), - - .left_margin = 64, .right_margin = 96, - .upper_margin = 34, .lower_margin = 11, - .hsync_len = 64, .vsync_len = 15, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { - .manufacturer = "KYO", - .monitor = "TCG057VGLAD", - .modedb = tcg057vglad_modes, - .modedb_len = ARRAY_SIZE(tcg057vglad_modes), - .hfmin = 19948, - .hfmax = 31478, - .vfmin = 50, - .vfmax = 67, - .dclkmax = 28330000, -}; - -static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = { - .default_bpp = 16, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &atevklcd10x_default_monspecs, - .guard_time = 2, -}; -#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA -static struct fb_videomode __initdata tcg057qvlad_modes[] = { - { - .name = "320x240 @ 50", - .refresh = 50, - .xres = 320, .yres = 240, - .pixclock = KHZ2PICOS(6300), - - .left_margin = 34, .right_margin = 46, - .upper_margin = 7, .lower_margin = 15, - .hsync_len = 64, .vsync_len = 12, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { - .manufacturer = "KYO", - .monitor = "TCG057QVLAD", - .modedb = tcg057qvlad_modes, - .modedb_len = ARRAY_SIZE(tcg057qvlad_modes), - .hfmin = 19948, - .hfmax = 31478, - .vfmin = 50, - .vfmax = 67, - .dclkmax = 7000000, -}; - -static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = { - .default_bpp = 16, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &atevklcd10x_default_monspecs, - .guard_time = 2, -}; -#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA -static struct fb_videomode __initdata ph320240t_modes[] = { - { - .name = "320x240 @ 60", - .refresh = 60, - .xres = 320, .yres = 240, - .pixclock = KHZ2PICOS(6300), - - .left_margin = 38, .right_margin = 20, - .upper_margin = 15, .lower_margin = 5, - .hsync_len = 30, .vsync_len = 3, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { - .manufacturer = "POW", - .monitor = "PH320240T", - .modedb = ph320240t_modes, - .modedb_len = ARRAY_SIZE(ph320240t_modes), - .hfmin = 14400, - .hfmax = 21600, - .vfmin = 50, - .vfmax = 90, - .dclkmax = 6400000, -}; - -static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = { - .default_bpp = 16, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &atevklcd10x_default_monspecs, - .guard_time = 2, -}; -#endif - -static void atevklcd10x_lcdc_power_control(struct atmel_lcdfb_pdata *pdata, int on) -{ - gpio_set_value(GPIO_PIN_PB(15), on); -} - -static int __init atevklcd10x_init(void) -{ - /* PB15 is connected to the enable line on the boost regulator - * controlling the backlight for the LCD panel. - */ - at32_select_gpio(GPIO_PIN_PB(15), AT32_GPIOF_OUTPUT); - gpio_request(GPIO_PIN_PB(15), "backlight"); - gpio_direction_output(GPIO_PIN_PB(15), 0); - - atevklcd10x_lcdc_data.atmel_lcdfb_power_control = - atevklcd10x_lcdc_power_control; - - at32_add_device_lcdc(0, &atevklcd10x_lcdc_data, - fbmem_start, fbmem_size, -#ifdef CONFIG_BOARD_ATNGW100_MKII - ATMEL_LCDC_PRI_18BIT | ATMEL_LCDC_PC_DVAL -#else - ATMEL_LCDC_ALT_18BIT | ATMEL_LCDC_PE_DVAL -#endif - ); - - at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH); - - return 0; -} -postcore_initcall(atevklcd10x_init); diff --git a/arch/avr32/boards/atngw100/flash.c b/arch/avr32/boards/atngw100/flash.c deleted file mode 100644 index 55ccc9ce4892..000000000000 --- a/arch/avr32/boards/atngw100/flash.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * ATNGW100 board-specific flash initialization - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> - -#include <mach/smc.h> - -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 40, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 80, - .nrd_pulse = 40, - .ncs_write_pulse = 65, - .nwe_pulse = 55, - - .read_cycle = 120, - .write_cycle = 120, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, -}; - -static struct mtd_partition flash_parts[] = { - { - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ - .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", - .offset = 0x00020000, - .size = 0x007d0000, - }, - { - .name = "env", - .offset = 0x007f0000, - .size = 0x00010000, - .mask_flags = MTD_WRITEABLE, - }, -}; - -static struct physmap_flash_data flash_data = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts), - .parts = flash_parts, -}; - -static struct resource flash_resource = { - .start = 0x00000000, - .end = 0x007fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device = { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource, - .num_resources = 1, - .dev = { - .platform_data = &flash_data, - }, -}; - -/* This needs to be called after the SMC has been initialized */ -static int __init atngw100_flash_init(void) -{ - int ret; - - smc_set_timing(&flash_config, &flash_timing); - ret = smc_set_configuration(0, &flash_config); - if (ret < 0) { - printk(KERN_ERR "atngw100: failed to set NOR flash timing\n"); - return ret; - } - - platform_device_register(&flash_device); - - return 0; -} -device_initcall(atngw100_flash_init); diff --git a/arch/avr32/boards/atngw100/mrmt.c b/arch/avr32/boards/atngw100/mrmt.c deleted file mode 100644 index 99b0a7984950..000000000000 --- a/arch/avr32/boards/atngw100/mrmt.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - * Board-specific setup code for Remote Media Terminal 1 (RMT1) - * add-on board for the ATNGW100 Network Gateway - * - * Copyright (C) 2008 Mediama Technologies - * Based on ATNGW100 Network Gateway (Copyright (C) Atmel) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/gpio.h> -#include <linux/init.h> -#include <linux/irq.h> -#include <linux/linkage.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/fb.h> -#include <linux/leds.h> -#include <linux/pwm.h> -#include <linux/leds_pwm.h> -#include <linux/input.h> -#include <linux/gpio_keys.h> -#include <linux/spi/spi.h> -#include <linux/spi/ads7846.h> - -#include <video/atmel_lcdc.h> -#include <sound/atmel-ac97c.h> - -#include <asm/delay.h> -#include <asm/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -/* Define board-specifoic GPIO assignments */ -#define PIN_LCD_BL GPIO_PIN_PA(28) -#define PWM_CH_BL 0 /* Must match with GPIO pin definition */ -#define PIN_LCD_DISP GPIO_PIN_PA(31) -#define PIN_AC97_RST_N GPIO_PIN_PA(30) -#define PB_EXTINT_BASE 25 -#define TS_IRQ 0 -#define PIN_TS_EXTINT GPIO_PIN_PB(PB_EXTINT_BASE+TS_IRQ) -#define PIN_PB_LEFT GPIO_PIN_PB(11) -#define PIN_PB_RIGHT GPIO_PIN_PB(12) -#define PIN_PWR_SW_N GPIO_PIN_PB(14) -#define PIN_PWR_ON GPIO_PIN_PB(13) -#define PIN_ZB_RST_N GPIO_PIN_PA(21) -#define PIN_BT_RST GPIO_PIN_PA(22) -#define PIN_LED_SYS GPIO_PIN_PA(16) -#define PIN_LED_A GPIO_PIN_PA(19) -#define PIN_LED_B GPIO_PIN_PE(19) - -#ifdef CONFIG_BOARD_MRMT_LCD_LQ043T3DX0X -/* Sharp LQ043T3DX0x (or compatible) panel */ -static struct fb_videomode __initdata lcd_fb_modes[] = { - { - .name = "480x272 @ 59.94Hz", - .refresh = 59.94, - .xres = 480, .yres = 272, - .pixclock = KHZ2PICOS(9000), - - .left_margin = 2, .right_margin = 2, - .upper_margin = 3, .lower_margin = 9, - .hsync_len = 41, .vsync_len = 1, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata lcd_fb_default_monspecs = { - .manufacturer = "SHA", - .monitor = "LQ043T3DX02", - .modedb = lcd_fb_modes, - .modedb_len = ARRAY_SIZE(lcd_fb_modes), - .hfmin = 14915, - .hfmax = 17638, - .vfmin = 53, - .vfmax = 61, - .dclkmax = 9260000, -}; - -static struct atmel_lcdfb_pdata __initdata rmt_lcdc_data = { - .default_bpp = 24, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_INVCLK_NORMAL - | ATMEL_LCDC_MEMOR_BIG), - .lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB, - .default_monspecs = &lcd_fb_default_monspecs, - .guard_time = 2, -}; -#endif - -#ifdef CONFIG_BOARD_MRMT_LCD_KWH043GM08 -/* Sharp KWH043GM08-Fxx (or compatible) panel */ -static struct fb_videomode __initdata lcd_fb_modes[] = { - { - .name = "480x272 @ 59.94Hz", - .refresh = 59.94, - .xres = 480, .yres = 272, - .pixclock = KHZ2PICOS(9000), - - .left_margin = 2, .right_margin = 2, - .upper_margin = 3, .lower_margin = 9, - .hsync_len = 41, .vsync_len = 1, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata lcd_fb_default_monspecs = { - .manufacturer = "FOR", - .monitor = "KWH043GM08", - .modedb = lcd_fb_modes, - .modedb_len = ARRAY_SIZE(lcd_fb_modes), - .hfmin = 14915, - .hfmax = 17638, - .vfmin = 53, - .vfmax = 61, - .dclkmax = 9260000, -}; - -static struct atmel_lcdfb_pdata __initdata rmt_lcdc_data = { - .default_bpp = 24, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_INVCLK_INVERTED - | ATMEL_LCDC_MEMOR_BIG), - .lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB, - .default_monspecs = &lcd_fb_default_monspecs, - .guard_time = 2, -}; -#endif - -#ifdef CONFIG_BOARD_MRMT_AC97 -static struct ac97c_platform_data __initdata ac97c0_data = { - .reset_pin = PIN_AC97_RST_N, -}; -#endif - -#ifdef CONFIG_BOARD_MRMT_UCB1400_TS -/* NOTE: IRQ assignment relies on kernel module parameter */ -static struct platform_device rmt_ts_device = { - .name = "ucb1400_ts", - .id = -1, -}; -#endif - -#ifdef CONFIG_BOARD_MRMT_BL_PWM -/* PWM LEDs: LCD Backlight, etc */ -static struct pwm_lookup pwm_lookup[] = { - PWM_LOOKUP("at91sam9rl-pwm", PWM_CH_BL, "leds_pwm", "ds1", - 5000, PWM_POLARITY_INVERSED), -}; - -static struct led_pwm pwm_leds[] = { - { - .name = "backlight", - .max_brightness = 255, - }, -}; - -static struct led_pwm_platform_data pwm_data = { - .num_leds = ARRAY_SIZE(pwm_leds), - .leds = pwm_leds, -}; - -static struct platform_device leds_pwm = { - .name = "leds_pwm", - .id = -1, - .dev = { - .platform_data = &pwm_data, - }, -}; -#endif - -#ifdef CONFIG_BOARD_MRMT_ADS7846_TS -static int ads7846_pendown_state(void) -{ - return !gpio_get_value( PIN_TS_EXTINT ); /* PENIRQ.*/ -} - -static struct ads7846_platform_data ads_info = { - .model = 7846, - .keep_vref_on = 0, /* Use external VREF pin */ - .vref_delay_usecs = 0, - .vref_mv = 3300, /* VREF = 3.3V */ - .settle_delay_usecs = 800, - .penirq_recheck_delay_usecs = 800, - .x_plate_ohms = 750, - .y_plate_ohms = 300, - .pressure_max = 4096, - .debounce_max = 1, - .debounce_rep = 0, - .debounce_tol = (~0), - .get_pendown_state = ads7846_pendown_state, - .filter = NULL, - .filter_init = NULL, -}; - -static struct spi_board_info spi01_board_info[] __initdata = { - { - .modalias = "ads7846", - .max_speed_hz = 31250*26, - .bus_num = 0, - .chip_select = 1, - .platform_data = &ads_info, - .irq = AT32_EXTINT(TS_IRQ), - }, -}; -#endif - -/* GPIO Keys: left, right, power, etc */ -static const struct gpio_keys_button rmt_gpio_keys_buttons[] = { - [0] = { - .type = EV_KEY, - .code = KEY_POWER, - .gpio = PIN_PWR_SW_N, - .active_low = 1, - .desc = "power button", - }, - [1] = { - .type = EV_KEY, - .code = KEY_LEFT, - .gpio = PIN_PB_LEFT, - .active_low = 1, - .desc = "left button", - }, - [2] = { - .type = EV_KEY, - .code = KEY_RIGHT, - .gpio = PIN_PB_RIGHT, - .active_low = 1, - .desc = "right button", - }, -}; - -static const struct gpio_keys_platform_data rmt_gpio_keys_data = { - .nbuttons = ARRAY_SIZE(rmt_gpio_keys_buttons), - .buttons = (void *) rmt_gpio_keys_buttons, -}; - -static struct platform_device rmt_gpio_keys = { - .name = "gpio-keys", - .id = -1, - .dev = { - .platform_data = (void *) &rmt_gpio_keys_data, - } -}; - -#ifdef CONFIG_BOARD_MRMT_RTC_I2C -static struct i2c_board_info __initdata mrmt1_i2c_rtc = { - I2C_BOARD_INFO("s35390a", 0x30), - .irq = 0, -}; -#endif - -static void mrmt_power_off(void) -{ - /* PWR_ON=0 will force power off */ - gpio_set_value( PIN_PWR_ON, 0 ); -} - -static int __init mrmt1_init(void) -{ - gpio_set_value( PIN_PWR_ON, 1 ); /* Ensure PWR_ON is enabled */ - - pm_power_off = mrmt_power_off; - - /* Setup USARTS (other than console) */ - at32_map_usart(2, 1, 0); /* USART 2: /dev/ttyS1, RMT1:DB9M */ - at32_map_usart(3, 2, ATMEL_USART_RTS | ATMEL_USART_CTS); - /* USART 3: /dev/ttyS2, RMT1:Wireless, w/ RTS/CTS */ - at32_add_device_usart(1); - at32_add_device_usart(2); - - /* Select GPIO Key pins */ - at32_select_gpio( PIN_PWR_SW_N, AT32_GPIOF_DEGLITCH); - at32_select_gpio( PIN_PB_LEFT, AT32_GPIOF_DEGLITCH); - at32_select_gpio( PIN_PB_RIGHT, AT32_GPIOF_DEGLITCH); - platform_device_register(&rmt_gpio_keys); - -#ifdef CONFIG_BOARD_MRMT_RTC_I2C - i2c_register_board_info(0, &mrmt1_i2c_rtc, 1); -#endif - -#ifndef CONFIG_BOARD_MRMT_LCD_DISABLE - /* User "alternate" LCDC inferface on Port E & D */ - /* NB: exclude LCDC_CC pin, as NGW100 reserves it for other use */ - at32_add_device_lcdc(0, &rmt_lcdc_data, - fbmem_start, fbmem_size, - (ATMEL_LCDC_ALT_24BIT | ATMEL_LCDC_PE_DVAL ) ); -#endif - -#ifdef CONFIG_BOARD_MRMT_AC97 - at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH); -#endif - -#ifdef CONFIG_BOARD_MRMT_ADS7846_TS - /* Select the Touchscreen interrupt pin mode */ - at32_select_periph( GPIO_PIOB_BASE, 1 << (PB_EXTINT_BASE+TS_IRQ), - GPIO_PERIPH_A, AT32_GPIOF_DEGLITCH); - irq_set_irq_type(AT32_EXTINT(TS_IRQ), IRQ_TYPE_EDGE_FALLING); - at32_spi_setup_slaves(0,spi01_board_info,ARRAY_SIZE(spi01_board_info)); - spi_register_board_info(spi01_board_info,ARRAY_SIZE(spi01_board_info)); -#endif - -#ifdef CONFIG_BOARD_MRMT_UCB1400_TS - /* Select the Touchscreen interrupt pin mode */ - at32_select_periph( GPIO_PIOB_BASE, 1 << (PB_EXTINT_BASE+TS_IRQ), - GPIO_PERIPH_A, AT32_GPIOF_DEGLITCH); - platform_device_register(&rmt_ts_device); -#endif - - at32_select_gpio( PIN_LCD_DISP, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_LCD_DISP, "LCD_DISP" ); - gpio_direction_output( PIN_LCD_DISP, 0 ); /* LCD DISP */ -#ifdef CONFIG_BOARD_MRMT_LCD_DISABLE - /* Keep Backlight and DISP off */ - at32_select_gpio( PIN_LCD_BL, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_LCD_BL, "LCD_BL" ); - gpio_direction_output( PIN_LCD_BL, 0 ); /* Backlight */ -#else - gpio_set_value( PIN_LCD_DISP, 1 ); /* DISP asserted first */ -#ifdef CONFIG_BOARD_MRMT_BL_PWM - /* Use PWM for Backlight controls */ - at32_add_device_pwm(1 << PWM_CH_BL); - pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); - platform_device_register(&leds_pwm); -#else - /* Backlight always on */ - udelay( 1 ); - at32_select_gpio( PIN_LCD_BL, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_LCD_BL, "LCD_BL" ); - gpio_direction_output( PIN_LCD_BL, 1 ); -#endif -#endif - - /* Make sure BT and Zigbee modules in reset */ - at32_select_gpio( PIN_BT_RST, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_BT_RST, "BT_RST" ); - gpio_direction_output( PIN_BT_RST, 1 ); - /* BT Module in Reset */ - - at32_select_gpio( PIN_ZB_RST_N, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_ZB_RST_N, "ZB_RST_N" ); - gpio_direction_output( PIN_ZB_RST_N, 0 ); - /* XBee Module in Reset */ - -#ifdef CONFIG_BOARD_MRMT_WIRELESS_ZB - udelay( 1000 ); - /* Unreset the XBee Module */ - gpio_set_value( PIN_ZB_RST_N, 1 ); -#endif -#ifdef CONFIG_BOARD_MRMT_WIRELESS_BT - udelay( 1000 ); - /* Unreset the BT Module */ - gpio_set_value( PIN_BT_RST, 0 ); -#endif - - return 0; -} -arch_initcall(mrmt1_init); - -static int __init mrmt1_early_init(void) -{ - /* To maintain power-on signal in case boot loader did not already */ - at32_select_gpio( PIN_PWR_ON, AT32_GPIOF_OUTPUT ); - gpio_request( PIN_PWR_ON, "PIN_PWR_ON" ); - gpio_direction_output( PIN_PWR_ON, 1 ); - - return 0; -} -core_initcall(mrmt1_early_init); diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c deleted file mode 100644 index afeae8978a8d..000000000000 --- a/arch/avr32/boards/atngw100/setup.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Board-specific setup code for the ATNGW100 Network Gateway - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/etherdevice.h> -#include <linux/gpio.h> -#include <linux/irq.h> -#include <linux/i2c.h> -#include <linux/i2c-gpio.h> -#include <linux/init.h> -#include <linux/linkage.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/leds.h> -#include <linux/spi/spi.h> -#include <linux/atmel-mci.h> -#include <linux/usb/atmel_usba_udc.h> - -#include <asm/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -/* Oscillator frequencies. These are board-specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -/* - * The ATNGW100 mkII is very similar to the ATNGW100. Both have the AT32AP7000 - * chip on board; the difference is that the ATNGW100 mkII has 128 MB 32-bit - * SDRAM (the ATNGW100 has 32 MB 16-bit SDRAM) and 256 MB 16-bit NAND flash - * (the ATNGW100 has none.) - * - * The RAM difference is handled by the boot loader, so the only difference we - * end up handling here is the NAND flash, EBI pin reservation and if LCDC or - * MACB1 should be enabled. - */ -#ifdef CONFIG_BOARD_ATNGW100_MKII -#include <linux/mtd/partitions.h> -#include <mach/smc.h> - -static struct smc_timing nand_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 10, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 30, - .nrd_pulse = 15, - .ncs_write_pulse = 30, - .nwe_pulse = 15, - - .read_cycle = 30, - .write_cycle = 30, - - .ncs_read_recover = 0, - .nrd_recover = 15, - .ncs_write_recover = 0, - /* WE# high -> RE# low min 60 ns */ - .nwe_recover = 50, -}; - -static struct smc_config nand_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .nwait_mode = 0, - .byte_write = 0, - .tdf_cycles = 2, - .tdf_mode = 0, -}; - -static struct mtd_partition nand_partitions[] = { - { - .name = "main", - .offset = 0x00000000, - .size = MTDPART_SIZ_FULL, - }, -}; - - -static struct atmel_nand_data atngw100mkii_nand_data __initdata = { - .cle = 21, - .ale = 22, - .rdy_pin = GPIO_PIN_PB(28), - .enable_pin = GPIO_PIN_PE(23), - .bus_width_16 = true, - .ecc_mode = NAND_ECC_SOFT, - .parts = nand_partitions, - .num_parts = ARRAY_SIZE(nand_partitions), -}; -#endif - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -struct eth_addr { - u8 addr[6]; -}; -static struct eth_addr __initdata hw_addr[2]; -static struct macb_platform_data __initdata eth_data[2]; - -static struct spi_board_info spi0_board_info[] __initdata = { - { - .modalias = "mtd_dataflash", - .max_speed_hz = 8000000, - .chip_select = 0, - }, -}; - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, -#if defined(CONFIG_BOARD_ATNGW100_MKII) - .detect_pin = GPIO_PIN_PC(25), - .wp_pin = GPIO_PIN_PE(22), -#else - .detect_pin = GPIO_PIN_PC(25), - .wp_pin = GPIO_PIN_PE(0), -#endif - }, -}; - -static struct usba_platform_data atngw100_usba_data __initdata = { -#if defined(CONFIG_BOARD_ATNGW100_MKII) - .vbus_pin = GPIO_PIN_PE(26), -#else - .vbus_pin = -ENODEV, -#endif -}; - -/* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid - * ethernet address. But we need to keep it around for a while until - * we can be reasonably sure the boot loader does this. - * - * The phy_id is ignored as the driver will probe for it. - */ -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i; - - i = tag->u.ethernet.mac_index; - if (i < ARRAY_SIZE(hw_addr)) - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - if (!is_valid_ether_addr(addr)) - return; - - /* - * Since this is board-specific code, we'll cheat and use the - * physical address directly as we happen to know that it's - * the same as the virtual address. - */ - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - __raw_writel((addr[3] << 24) | (addr[2] << 16) - | (addr[1] << 8) | addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - clk_disable(pclk); - clk_put(pclk); -} - -void __init setup_board(void) -{ - at32_map_usart(1, 0, 0); /* USART 1: /dev/ttyS0, DB9 */ - at32_setup_serial_console(0); -} - -static const struct gpio_led ngw_leds[] = { - { .name = "sys", .gpio = GPIO_PIN_PA(16), .active_low = 1, - .default_trigger = "heartbeat", - }, - { .name = "a", .gpio = GPIO_PIN_PA(19), .active_low = 1, }, - { .name = "b", .gpio = GPIO_PIN_PE(19), .active_low = 1, }, -}; - -static const struct gpio_led_platform_data ngw_led_data = { - .num_leds = ARRAY_SIZE(ngw_leds), - .leds = (void *) ngw_leds, -}; - -static struct platform_device ngw_gpio_leds = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = (void *) &ngw_led_data, - } -}; - -static struct i2c_gpio_platform_data i2c_gpio_data = { - .sda_pin = GPIO_PIN_PA(6), - .scl_pin = GPIO_PIN_PA(7), - .sda_is_open_drain = 1, - .scl_is_open_drain = 1, - .udelay = 2, /* close to 100 kHz */ -}; - -static struct platform_device i2c_gpio_device = { - .name = "i2c-gpio", - .id = 0, - .dev = { - .platform_data = &i2c_gpio_data, - }, -}; - -static struct i2c_board_info __initdata i2c_info[] = { - /* NOTE: original ATtiny24 firmware is at address 0x0b */ -}; - -static int __init atngw100_init(void) -{ - unsigned i; - - /* - * ATNGW100 mkII uses 32-bit SDRAM interface. Reserve the - * SDRAM-specific pins so that nobody messes with them. - */ -#ifdef CONFIG_BOARD_ATNGW100_MKII - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL); - - smc_set_timing(&nand_config, &nand_timing); - smc_set_configuration(3, &nand_config); - at32_add_device_nand(0, &atngw100mkii_nand_data); -#endif - - at32_add_device_usart(0); - - set_hw_addr(at32_add_device_eth(0, ð_data[0])); -#ifndef CONFIG_BOARD_ATNGW100_MKII_LCD - set_hw_addr(at32_add_device_eth(1, ð_data[1])); -#endif - - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); - at32_add_device_mci(0, &mci0_data); - at32_add_device_usba(0, &atngw100_usba_data); - - for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) { - at32_select_gpio(ngw_leds[i].gpio, - AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - } - platform_device_register(&ngw_gpio_leds); - - /* all these i2c/smbus pins should have external pullups for - * open-drain sharing among all I2C devices. SDA and SCL do; - * PB28/EXTINT3 (ATNGW100) and PE21 (ATNGW100 mkII) doesn't; it should - * be SMBALERT# (for PMBus), but it's not available off-board. - */ -#ifdef CONFIG_BOARD_ATNGW100_MKII - at32_select_periph(GPIO_PIOE_BASE, 1 << 21, 0, AT32_GPIOF_PULLUP); -#else - at32_select_periph(GPIO_PIOB_BASE, 1 << 28, 0, AT32_GPIOF_PULLUP); -#endif - at32_select_gpio(i2c_gpio_data.sda_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - at32_select_gpio(i2c_gpio_data.scl_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - platform_device_register(&i2c_gpio_device); - i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); - - return 0; -} -postcore_initcall(atngw100_init); - -static int __init atngw100_arch_init(void) -{ - /* PB30 (ATNGW100) and PE30 (ATNGW100 mkII) is the otherwise unused - * jumper on the mainboard, with an external pullup; the jumper grounds - * it. Use it however you like, including letting U-Boot or Linux tweak - * boot sequences. - */ -#ifdef CONFIG_BOARD_ATNGW100_MKII - at32_select_gpio(GPIO_PIN_PE(30), 0); - gpio_request(GPIO_PIN_PE(30), "j15"); - gpio_direction_input(GPIO_PIN_PE(30)); - gpio_export(GPIO_PIN_PE(30), false); -#else - at32_select_gpio(GPIO_PIN_PB(30), 0); - gpio_request(GPIO_PIN_PB(30), "j15"); - gpio_direction_input(GPIO_PIN_PB(30)); - gpio_export(GPIO_PIN_PB(30), false); -#endif - - /* set_irq_type() after the arch_initcall for EIC has run, and - * before the I2C subsystem could try using this IRQ. - */ - return irq_set_irq_type(AT32_EXTINT(3), IRQ_TYPE_EDGE_FALLING); -} -arch_initcall(atngw100_arch_init); diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig deleted file mode 100644 index 8dc48214f0b7..000000000000 --- a/arch/avr32/boards/atstk1000/Kconfig +++ /dev/null @@ -1,109 +0,0 @@ -# STK1000 customization - -if BOARD_ATSTK1000 - -choice - prompt "ATSTK1000 CPU daughterboard type" - default BOARD_ATSTK1002 - -config BOARD_ATSTK1002 - bool "ATSTK1002" - select CPU_AT32AP7000 - -config BOARD_ATSTK1003 - bool "ATSTK1003" - select CPU_AT32AP7001 - -config BOARD_ATSTK1004 - bool "ATSTK1004" - select CPU_AT32AP7002 - -config BOARD_ATSTK1006 - bool "ATSTK1006" - select CPU_AT32AP7000 - -endchoice - - -config BOARD_ATSTK100X_CUSTOM - bool "Non-default STK1002/STK1003/STK1004 jumper settings" - help - You will normally leave the jumpers on the CPU card at their - default settings. If you need to use certain peripherals, - you will need to change some of those jumpers. - -if BOARD_ATSTK100X_CUSTOM - -config BOARD_ATSTK100X_SW1_CUSTOM - bool "SW1: use SSC1 (not SPI0)" - help - This also prevents using the external DAC as an audio interface, - and means you can't initialize the on-board QVGA display. - -config BOARD_ATSTK100X_SW2_CUSTOM - bool "SW2: use IRDA or TIMER0 (not UART-A, MMC/SD, and PS2-A)" - help - If you change this you'll want an updated boot loader putting - the console on UART-C not UART-A. - -config BOARD_ATSTK100X_SW3_CUSTOM - bool "SW3: use TIMER1 (not SSC0 and GCLK)" - help - This also prevents using the external DAC as an audio interface. - -config BOARD_ATSTK100X_SW4_CUSTOM - bool "SW4: use ISI/Camera (not GPIOs, SPI1, and PS2-B)" - help - To use the camera interface you'll need a custom card (on the - PCI-format connector) connect a video sensor. - -config BOARD_ATSTK1002_SW5_CUSTOM - bool "SW5: use MACB1 (not LCDC)" - depends on BOARD_ATSTK1002 - -config BOARD_ATSTK1002_SW6_CUSTOM - bool "SW6: more GPIOs (not MACB0)" - depends on BOARD_ATSTK1002 - -endif # custom - -config BOARD_ATSTK100X_SPI1 - bool "Configure SPI1 controller" - depends on !BOARD_ATSTK100X_SW4_CUSTOM - help - All the signals for the second SPI controller are available on - GPIO lines and accessed through the J1 jumper block. Say "y" - here to configure that SPI controller. - -config BOARD_ATSTK1000_J2_LED - bool - default BOARD_ATSTK1000_J2_LED8 || BOARD_ATSTK1000_J2_RGB - -choice - prompt "LEDs connected to J2:" - depends on LEDS_GPIO && !BOARD_ATSTK100X_SW4_CUSTOM - optional - help - Select this if you have jumpered the J2 jumper block to the - LED0..LED7 amber leds, or to the RGB leds, using a ten-pin - IDC cable. A default "heartbeat" trigger is provided, but - you can of course override this. - -config BOARD_ATSTK1000_J2_LED8 - bool "LED0..LED7" - help - Select this if J2 is jumpered to LED0..LED7 amber leds. - -config BOARD_ATSTK1000_J2_RGB - bool "RGB leds" - help - Select this if J2 is jumpered to the RGB leds. - -endchoice - -config BOARD_ATSTK1000_EXTDAC - bool - depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM - default y - -endif # stk 1000 diff --git a/arch/avr32/boards/atstk1000/Makefile b/arch/avr32/boards/atstk1000/Makefile deleted file mode 100644 index edecee03742d..000000000000 --- a/arch/avr32/boards/atstk1000/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -obj-y += setup.o flash.o -obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o -obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o -obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o -obj-$(CONFIG_BOARD_ATSTK1006) += atstk1002.o diff --git a/arch/avr32/boards/atstk1000/atstk1000.h b/arch/avr32/boards/atstk1000/atstk1000.h deleted file mode 100644 index 653cc09e536c..000000000000 --- a/arch/avr32/boards/atstk1000/atstk1000.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * ATSTK1000 setup code: Daughterboard interface - * - * Copyright (C) 2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H -#define __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H - -extern struct atmel_lcdfb_pdata atstk1000_lcdc_data; - -void atstk1000_setup_j2_leds(void); - -#endif /* __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H */ diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c deleted file mode 100644 index 6c80aba7bf96..000000000000 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * ATSTK1002/ATSTK1006 daughterboard-specific init code - * - * Copyright (C) 2005-2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/etherdevice.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/platform_device.h> -#include <linux/string.h> -#include <linux/types.h> -#include <linux/spi/spi.h> -#include <linux/spi/at73c213.h> -#include <linux/atmel-mci.h> - -#include <video/atmel_lcdc.h> - -#include <asm/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -#include "atstk1000.h" - -/* Oscillator frequencies. These are board specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -/* - * The ATSTK1006 daughterboard is very similar to the ATSTK1002. Both - * have the AT32AP7000 chip on board; the difference is that the - * STK1006 has 128 MB SDRAM (the STK1002 uses the 8 MB SDRAM chip on - * the STK1000 motherboard) and 256 MB NAND flash (the STK1002 has - * none.) - * - * The RAM difference is handled by the boot loader, so the only - * difference we end up handling here is the NAND flash. - */ -#ifdef CONFIG_BOARD_ATSTK1006 -#include <linux/mtd/partitions.h> -#include <mach/smc.h> - -static struct smc_timing nand_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 10, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 30, - .nrd_pulse = 15, - .ncs_write_pulse = 30, - .nwe_pulse = 15, - - .read_cycle = 30, - .write_cycle = 30, - - .ncs_read_recover = 0, - .nrd_recover = 15, - .ncs_write_recover = 0, - /* WE# high -> RE# low min 60 ns */ - .nwe_recover = 50, -}; - -static struct smc_config nand_config __initdata = { - .bus_width = 1, - .nrd_controlled = 1, - .nwe_controlled = 1, - .nwait_mode = 0, - .byte_write = 0, - .tdf_cycles = 2, - .tdf_mode = 0, -}; - -static struct mtd_partition nand_partitions[] = { - { - .name = "main", - .offset = 0x00000000, - .size = MTDPART_SIZ_FULL, - }, -}; - -static struct atmel_nand_data atstk1006_nand_data __initdata = { - .cle = 21, - .ale = 22, - .rdy_pin = GPIO_PIN_PB(30), - .enable_pin = GPIO_PIN_PB(29), - .ecc_mode = NAND_ECC_SOFT, - .parts = nand_partitions, - .num_parts = ARRAY_SIZE(nand_partitions), -}; -#endif - -struct eth_addr { - u8 addr[6]; -}; - -static struct eth_addr __initdata hw_addr[2]; -static struct macb_platform_data __initdata eth_data[2] = { - { - /* - * The MDIO pullups on STK1000 are a bit too weak for - * the autodetection to work properly, so we have to - * mask out everything but the correct address. - */ - .phy_mask = ~(1U << 16), - }, - { - .phy_mask = ~(1U << 17), - }, -}; - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static struct at73c213_board_info at73c213_data = { - .ssc_id = 0, - .shortname = "AVR32 STK1000 external DAC", -}; -#endif - -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM -static struct spi_board_info spi0_board_info[] __initdata = { -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - { - /* AT73C213 */ - .modalias = "at73c213", - .max_speed_hz = 200000, - .chip_select = 0, - .mode = SPI_MODE_1, - .platform_data = &at73c213_data, - }, -#endif - { - /* QVGA display */ - .modalias = "ltv350qv", - .max_speed_hz = 16000000, - .chip_select = 1, - .mode = SPI_MODE_3, - }, -}; -#endif - -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 -static struct spi_board_info spi1_board_info[] __initdata = { { - /* patch in custom entries here */ -} }; -#endif - -/* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid - * ethernet address. But we need to keep it around for a while until - * we can be reasonably sure the boot loader does this. - * - * The phy_id is ignored as the driver will probe for it. - */ -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i; - - i = tag->u.ethernet.mac_index; - if (i < ARRAY_SIZE(hw_addr)) - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - if (!is_valid_ether_addr(addr)) - return; - - /* - * Since this is board-specific code, we'll cheat and use the - * physical address directly as we happen to know that it's - * the same as the virtual address. - */ - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - __raw_writel((addr[3] << 24) | (addr[2] << 16) - | (addr[1] << 8) | addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - clk_disable(pclk); - clk_put(pclk); -} - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static void __init atstk1002_setup_extdac(void) -{ - struct clk *gclk; - struct clk *pll; - - gclk = clk_get(NULL, "gclk0"); - if (IS_ERR(gclk)) - goto err_gclk; - pll = clk_get(NULL, "pll0"); - if (IS_ERR(pll)) - goto err_pll; - - if (clk_set_parent(gclk, pll)) { - pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n"); - goto err_set_clk; - } - - at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0); - at73c213_data.dac_clk = gclk; - -err_set_clk: - clk_put(pll); -err_pll: - clk_put(gclk); -err_gclk: - return; -} -#else -static void __init atstk1002_setup_extdac(void) -{ - -} -#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */ - -void __init setup_board(void) -{ -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ -#else - at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ -#endif - /* USART 2/unused: expansion connector */ - at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ - - at32_setup_serial_console(0); -} - -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - -/* MMC card detect requires MACB0 *NOT* be used */ -#ifdef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM - .detect_pin = GPIO_PIN_PC(14), /* gpio30/sdcd */ - .wp_pin = GPIO_PIN_PC(15), /* gpio31/sdwp */ -#else - .detect_pin = -ENODEV, - .wp_pin = -ENODEV, -#endif /* SW6 for sd{cd,wp} routing */ - }, -}; - -#endif /* SW2 for MMC signal routing */ - -static int __init atstk1002_init(void) -{ - /* - * ATSTK1000 uses 32-bit SDRAM interface. Reserve the - * SDRAM-specific pins so that nobody messes with them. - */ - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL); - -#ifdef CONFIG_BOARD_ATSTK1006 - smc_set_timing(&nand_config, &nand_timing); - smc_set_configuration(3, &nand_config); - at32_add_device_nand(0, &atstk1006_nand_data); -#endif - -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_usart(1); -#else - at32_add_device_usart(0); -#endif - at32_add_device_usart(2); - -#ifndef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM - set_hw_addr(at32_add_device_eth(0, ð_data[0])); -#endif -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); -#endif -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); -#endif -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_mci(0, &mci0_data); -#endif -#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM - set_hw_addr(at32_add_device_eth(1, ð_data[1])); -#else - at32_add_device_lcdc(0, &atstk1000_lcdc_data, - fbmem_start, fbmem_size, - ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL); -#endif - at32_add_device_usba(0, NULL); -#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); -#endif - - atstk1000_setup_j2_leds(); - atstk1002_setup_extdac(); - - return 0; -} -postcore_initcall(atstk1002_init); diff --git a/arch/avr32/boards/atstk1000/atstk1003.c b/arch/avr32/boards/atstk1000/atstk1003.c deleted file mode 100644 index ff7e23298827..000000000000 --- a/arch/avr32/boards/atstk1000/atstk1003.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * ATSTK1003 daughterboard-specific init code - * - * Copyright (C) 2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/err.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/platform_device.h> -#include <linux/string.h> -#include <linux/types.h> - -#include <linux/spi/at73c213.h> -#include <linux/spi/spi.h> -#include <linux/atmel-mci.h> - -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -#include "atstk1000.h" - -/* Oscillator frequencies. These are board specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static struct at73c213_board_info at73c213_data = { - .ssc_id = 0, - .shortname = "AVR32 STK1000 external DAC", -}; -#endif - -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM -static struct spi_board_info spi0_board_info[] __initdata = { -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - { - /* AT73C213 */ - .modalias = "at73c213", - .max_speed_hz = 200000, - .chip_select = 0, - .mode = SPI_MODE_1, - .platform_data = &at73c213_data, - }, -#endif - /* - * We can control the LTV350QV LCD panel, but it isn't much - * point since we don't have an LCD controller... - */ -}; -#endif - -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 -static struct spi_board_info spi1_board_info[] __initdata = { { - /* patch in custom entries here */ -} }; -#endif - -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = -ENODEV, - .wp_pin = -ENODEV, - }, -}; -#endif - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static void __init atstk1003_setup_extdac(void) -{ - struct clk *gclk; - struct clk *pll; - - gclk = clk_get(NULL, "gclk0"); - if (IS_ERR(gclk)) - goto err_gclk; - pll = clk_get(NULL, "pll0"); - if (IS_ERR(pll)) - goto err_pll; - - if (clk_set_parent(gclk, pll)) { - pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n"); - goto err_set_clk; - } - - at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0); - at73c213_data.dac_clk = gclk; - -err_set_clk: - clk_put(pll); -err_pll: - clk_put(gclk); -err_gclk: - return; -} -#else -static void __init atstk1003_setup_extdac(void) -{ - -} -#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */ - -void __init setup_board(void) -{ -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ -#else - at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ -#endif - /* USART 2/unused: expansion connector */ - at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ - - at32_setup_serial_console(0); -} - -static int __init atstk1003_init(void) -{ - /* - * ATSTK1000 uses 32-bit SDRAM interface. Reserve the - * SDRAM-specific pins so that nobody messes with them. - */ - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL); - -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_usart(1); -#else - at32_add_device_usart(0); -#endif - at32_add_device_usart(2); - -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); -#endif -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); -#endif -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_mci(0, &mci0_data); -#endif - at32_add_device_usba(0, NULL); -#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); -#endif - - atstk1000_setup_j2_leds(); - atstk1003_setup_extdac(); - - return 0; -} -postcore_initcall(atstk1003_init); diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c deleted file mode 100644 index 69a9f0f08c6e..000000000000 --- a/arch/avr32/boards/atstk1000/atstk1004.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * ATSTK1003 daughterboard-specific init code - * - * Copyright (C) 2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/err.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/platform_device.h> -#include <linux/string.h> -#include <linux/types.h> - -#include <linux/spi/at73c213.h> -#include <linux/spi/spi.h> -#include <linux/atmel-mci.h> - -#include <video/atmel_lcdc.h> - -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -#include "atstk1000.h" - -/* Oscillator frequencies. These are board specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static struct at73c213_board_info at73c213_data = { - .ssc_id = 0, - .shortname = "AVR32 STK1000 external DAC", -}; -#endif - -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM -static struct spi_board_info spi0_board_info[] __initdata = { -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - { - /* AT73C213 */ - .modalias = "at73c213", - .max_speed_hz = 200000, - .chip_select = 0, - .mode = SPI_MODE_1, - .platform_data = &at73c213_data, - }, -#endif - { - /* QVGA display */ - .modalias = "ltv350qv", - .max_speed_hz = 16000000, - .chip_select = 1, - .mode = SPI_MODE_3, - }, -}; -#endif - -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 -static struct spi_board_info spi1_board_info[] __initdata = { { - /* patch in custom entries here */ -} }; -#endif - -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = -ENODEV, - .wp_pin = -ENODEV, - }, -}; -#endif - -#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC -static void __init atstk1004_setup_extdac(void) -{ - struct clk *gclk; - struct clk *pll; - - gclk = clk_get(NULL, "gclk0"); - if (IS_ERR(gclk)) - goto err_gclk; - pll = clk_get(NULL, "pll0"); - if (IS_ERR(pll)) - goto err_pll; - - if (clk_set_parent(gclk, pll)) { - pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n"); - goto err_set_clk; - } - - at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0); - at73c213_data.dac_clk = gclk; - -err_set_clk: - clk_put(pll); -err_pll: - clk_put(gclk); -err_gclk: - return; -} -#else -static void __init atstk1004_setup_extdac(void) -{ - -} -#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */ - -void __init setup_board(void) -{ -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ -#else - at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ -#endif - /* USART 2/unused: expansion connector */ - at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ - - at32_setup_serial_console(0); -} - -static int __init atstk1004_init(void) -{ -#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_usart(1); -#else - at32_add_device_usart(0); -#endif - at32_add_device_usart(2); - -#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); -#endif -#ifdef CONFIG_BOARD_ATSTK100X_SPI1 - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); -#endif -#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_mci(0, &mci0_data); -#endif - at32_add_device_lcdc(0, &atstk1000_lcdc_data, - fbmem_start, fbmem_size, - ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL); - at32_add_device_usba(0, NULL); -#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); -#endif - - atstk1000_setup_j2_leds(); - atstk1004_setup_extdac(); - - return 0; -} -postcore_initcall(atstk1004_init); diff --git a/arch/avr32/boards/atstk1000/flash.c b/arch/avr32/boards/atstk1000/flash.c deleted file mode 100644 index 6e4d561977ff..000000000000 --- a/arch/avr32/boards/atstk1000/flash.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * ATSTK1000 board-specific flash initialization - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> - -#include <mach/smc.h> - -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 40, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 80, - .nrd_pulse = 40, - .ncs_write_pulse = 65, - .nwe_pulse = 55, - - .read_cycle = 120, - .write_cycle = 120, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, -}; - -static struct mtd_partition flash_parts[] = { - { - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ - .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", - .offset = 0x00020000, - .size = 0x007d0000, - }, - { - .name = "env", - .offset = 0x007f0000, - .size = 0x00010000, - .mask_flags = MTD_WRITEABLE, - }, -}; - -static struct physmap_flash_data flash_data = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts), - .parts = flash_parts, -}; - -static struct resource flash_resource = { - .start = 0x00000000, - .end = 0x007fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device = { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource, - .num_resources = 1, - .dev = { - .platform_data = &flash_data, - }, -}; - -/* This needs to be called after the SMC has been initialized */ -static int __init atstk1000_flash_init(void) -{ - int ret; - - smc_set_timing(&flash_config, &flash_timing); - ret = smc_set_configuration(0, &flash_config); - if (ret < 0) { - printk(KERN_ERR "atstk1000: failed to set NOR flash timing\n"); - return ret; - } - - platform_device_register(&flash_device); - - return 0; -} -device_initcall(atstk1000_flash_init); diff --git a/arch/avr32/boards/atstk1000/setup.c b/arch/avr32/boards/atstk1000/setup.c deleted file mode 100644 index b6b88f5e0b43..000000000000 --- a/arch/avr32/boards/atstk1000/setup.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * ATSTK1000 board-specific setup code. - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/bootmem.h> -#include <linux/fb.h> -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/linkage.h> - -#include <video/atmel_lcdc.h> - -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/portmux.h> - -#include "atstk1000.h" - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -static struct fb_videomode __initdata ltv350qv_modes[] = { - { - .name = "320x240 @ 75", - .refresh = 75, - .xres = 320, .yres = 240, - .pixclock = KHZ2PICOS(6891), - - .left_margin = 17, .right_margin = 33, - .upper_margin = 10, .lower_margin = 10, - .hsync_len = 16, .vsync_len = 1, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata atstk1000_default_monspecs = { - .manufacturer = "SNG", - .monitor = "LTV350QV", - .modedb = ltv350qv_modes, - .modedb_len = ARRAY_SIZE(ltv350qv_modes), - .hfmin = 14820, - .hfmax = 22230, - .vfmin = 60, - .vfmax = 90, - .dclkmax = 30000000, -}; - -struct atmel_lcdfb_pdata __initdata atstk1000_lcdc_data = { - .default_bpp = 24, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_INVCLK - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &atstk1000_default_monspecs, - .guard_time = 2, -}; - -#ifdef CONFIG_BOARD_ATSTK1000_J2_LED -#include <linux/leds.h> - -static struct gpio_led stk1000_j2_led[] = { -#ifdef CONFIG_BOARD_ATSTK1000_J2_LED8 -#define LEDSTRING "J2 jumpered to LED8" - { .name = "led0:amber", .gpio = GPIO_PIN_PB( 8), }, - { .name = "led1:amber", .gpio = GPIO_PIN_PB( 9), }, - { .name = "led2:amber", .gpio = GPIO_PIN_PB(10), }, - { .name = "led3:amber", .gpio = GPIO_PIN_PB(13), }, - { .name = "led4:amber", .gpio = GPIO_PIN_PB(14), }, - { .name = "led5:amber", .gpio = GPIO_PIN_PB(15), }, - { .name = "led6:amber", .gpio = GPIO_PIN_PB(16), }, - { .name = "led7:amber", .gpio = GPIO_PIN_PB(30), - .default_trigger = "heartbeat", }, -#else /* RGB */ -#define LEDSTRING "J2 jumpered to RGB LEDs" - { .name = "r1:red", .gpio = GPIO_PIN_PB( 8), }, - { .name = "g1:green", .gpio = GPIO_PIN_PB(10), }, - { .name = "b1:blue", .gpio = GPIO_PIN_PB(14), }, - - { .name = "r2:red", .gpio = GPIO_PIN_PB( 9), - .default_trigger = "heartbeat", }, - { .name = "g2:green", .gpio = GPIO_PIN_PB(13), }, - { .name = "b2:blue", .gpio = GPIO_PIN_PB(15), - .default_trigger = "heartbeat", }, - /* PB16, PB30 unused */ -#endif -}; - -static struct gpio_led_platform_data stk1000_j2_led_data = { - .num_leds = ARRAY_SIZE(stk1000_j2_led), - .leds = stk1000_j2_led, -}; - -static struct platform_device stk1000_j2_led_dev = { - .name = "leds-gpio", - .id = 2, /* gpio block J2 */ - .dev = { - .platform_data = &stk1000_j2_led_data, - }, -}; - -void __init atstk1000_setup_j2_leds(void) -{ - unsigned i; - - for (i = 0; i < ARRAY_SIZE(stk1000_j2_led); i++) - at32_select_gpio(stk1000_j2_led[i].gpio, AT32_GPIOF_OUTPUT); - - printk("STK1000: " LEDSTRING "\n"); - platform_device_register(&stk1000_j2_led_dev); -} -#else /* CONFIG_BOARD_ATSTK1000_J2_LED */ -void __init atstk1000_setup_j2_leds(void) -{ - -} -#endif /* CONFIG_BOARD_ATSTK1000_J2_LED */ diff --git a/arch/avr32/boards/favr-32/Kconfig b/arch/avr32/boards/favr-32/Kconfig deleted file mode 100644 index 2c83d1ddcaec..000000000000 --- a/arch/avr32/boards/favr-32/Kconfig +++ /dev/null @@ -1,22 +0,0 @@ -# Favr-32 customization - -if BOARD_FAVR_32 - -config BOARD_FAVR32_ABDAC_RATE - int "DAC target rate" - default 44100 - range 32000 50000 - help - Specify the target rate the internal DAC should try to match. This - will use PLL1 to generate a frequency as close as possible to this - rate. - - Must be within the range 32000 to 50000, which should be suitable to - generate most other frequencies in power of 2 steps. - - Ex: - 48000 will also suit 24000 and 12000 - 44100 will also suit 22050 and 11025 - 32000 will also suit 16000 and 8000 - -endif # BOARD_FAVR_32 diff --git a/arch/avr32/boards/favr-32/Makefile b/arch/avr32/boards/favr-32/Makefile deleted file mode 100644 index 234f21508e4b..000000000000 --- a/arch/avr32/boards/favr-32/Makefile +++ /dev/null @@ -1 +0,0 @@ -obj-y += setup.o flash.o diff --git a/arch/avr32/boards/favr-32/flash.c b/arch/avr32/boards/favr-32/flash.c deleted file mode 100644 index 604bbd5e41d9..000000000000 --- a/arch/avr32/boards/favr-32/flash.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Favr-32 board-specific flash initialization - * - * Copyright (C) 2008 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> - -#include <mach/smc.h> - -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 40, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 80, - .nrd_pulse = 40, - .ncs_write_pulse = 65, - .nwe_pulse = 55, - - .read_cycle = 120, - .write_cycle = 120, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, -}; - -static struct mtd_partition flash_parts[] = { - { - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ - .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", - .offset = 0x00020000, - .size = 0x007d0000, - }, - { - .name = "env", - .offset = 0x007f0000, - .size = 0x00010000, - .mask_flags = MTD_WRITEABLE, - }, -}; - -static struct physmap_flash_data flash_data = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts), - .parts = flash_parts, -}; - -static struct resource flash_resource = { - .start = 0x00000000, - .end = 0x007fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device = { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource, - .num_resources = 1, - .dev = { - .platform_data = &flash_data, - }, -}; - -/* This needs to be called after the SMC has been initialized */ -static int __init favr32_flash_init(void) -{ - int ret; - - smc_set_timing(&flash_config, &flash_timing); - ret = smc_set_configuration(0, &flash_config); - if (ret < 0) { - printk(KERN_ERR "Favr-32: failed to set NOR flash timing\n"); - return ret; - } - - platform_device_register(&flash_device); - - return 0; -} -device_initcall(favr32_flash_init); diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c deleted file mode 100644 index 234cb071c601..000000000000 --- a/arch/avr32/boards/favr-32/setup.c +++ /dev/null @@ -1,366 +0,0 @@ -/* - * Favr-32 board-specific setup code. - * - * Copyright (C) 2008 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/etherdevice.h> -#include <linux/bootmem.h> -#include <linux/fb.h> -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/linkage.h> -#include <linux/gpio.h> -#include <linux/leds.h> -#include <linux/atmel-mci.h> -#include <linux/pwm.h> -#include <linux/pwm_backlight.h> -#include <linux/regulator/fixed.h> -#include <linux/regulator/machine.h> -#include <linux/spi/spi.h> -#include <linux/spi/ads7846.h> - -#include <sound/atmel-abdac.h> - -#include <video/atmel_lcdc.h> - -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/init.h> -#include <mach/board.h> -#include <mach/portmux.h> - -#define PWM_BL_CH 2 - -/* Oscillator frequencies. These are board-specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -static struct atmel_abdac_pdata __initdata abdac0_data = { -}; - -struct eth_addr { - u8 addr[6]; -}; -static struct eth_addr __initdata hw_addr[1]; -static struct macb_platform_data __initdata eth_data[1] = { - { - .phy_mask = ~(1U << 1), - }, -}; - -static int ads7843_get_pendown_state(void) -{ - return !gpio_get_value(GPIO_PIN_PB(3)); -} - -static struct ads7846_platform_data ads7843_data = { - .model = 7843, - .get_pendown_state = ads7843_get_pendown_state, - .pressure_max = 255, - /* - * Values below are for debounce filtering, these can be experimented - * with further. - */ - .debounce_max = 20, - .debounce_rep = 4, - .debounce_tol = 5, - - .keep_vref_on = true, - .settle_delay_usecs = 500, - .penirq_recheck_delay_usecs = 100, -}; - -static struct spi_board_info __initdata spi1_board_info[] = { - { - /* ADS7843 touch controller */ - .modalias = "ads7846", - .max_speed_hz = 2000000, - .chip_select = 0, - .bus_num = 1, - .platform_data = &ads7843_data, - }, -}; - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = -ENODEV, - .wp_pin = -ENODEV, - }, -}; - -static struct fb_videomode __initdata lb104v03_modes[] = { - { - .name = "640x480 @ 50", - .refresh = 50, - .xres = 640, .yres = 480, - .pixclock = KHZ2PICOS(25100), - - .left_margin = 90, .right_margin = 70, - .upper_margin = 30, .lower_margin = 15, - .hsync_len = 12, .vsync_len = 2, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata favr32_default_monspecs = { - .manufacturer = "LG", - .monitor = "LB104V03", - .modedb = lb104v03_modes, - .modedb_len = ARRAY_SIZE(lb104v03_modes), - .hfmin = 27273, - .hfmax = 31111, - .vfmin = 45, - .vfmax = 60, - .dclkmax = 28000000, -}; - -struct atmel_lcdfb_pdata __initdata favr32_lcdc_data = { - .default_bpp = 16, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &favr32_default_monspecs, - .guard_time = 2, -}; - -static struct gpio_led favr32_leds[] = { - { - .name = "green", - .gpio = GPIO_PIN_PE(19), - .default_trigger = "heartbeat", - .active_low = 1, - }, - { - .name = "red", - .gpio = GPIO_PIN_PE(20), - .active_low = 1, - }, -}; - -static struct gpio_led_platform_data favr32_led_data = { - .num_leds = ARRAY_SIZE(favr32_leds), - .leds = favr32_leds, -}; - -static struct platform_device favr32_led_dev = { - .name = "leds-gpio", - .id = 0, - .dev = { - .platform_data = &favr32_led_data, - }, -}; - -/* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid - * ethernet address. But we need to keep it around for a while until - * we can be reasonably sure the boot loader does this. - * - * The phy_id is ignored as the driver will probe for it. - */ -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i; - - i = tag->u.ethernet.mac_index; - if (i < ARRAY_SIZE(hw_addr)) - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - if (!is_valid_ether_addr(addr)) - return; - - /* - * Since this is board-specific code, we'll cheat and use the - * physical address directly as we happen to know that it's - * the same as the virtual address. - */ - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - __raw_writel((addr[3] << 24) | (addr[2] << 16) - | (addr[1] << 8) | addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - clk_disable(pclk); - clk_put(pclk); -} - -void __init favr32_setup_leds(void) -{ - unsigned i; - - for (i = 0; i < ARRAY_SIZE(favr32_leds); i++) - at32_select_gpio(favr32_leds[i].gpio, AT32_GPIOF_OUTPUT); - - platform_device_register(&favr32_led_dev); -} - -static struct pwm_lookup pwm_lookup[] = { - PWM_LOOKUP("at91sam9rl-pwm", PWM_BL_CH, "pwm-backlight.0", NULL, - 5000, PWM_POLARITY_INVERSED), -}; - -static struct regulator_consumer_supply fixed_power_consumers[] = { - REGULATOR_SUPPLY("power", "pwm-backlight.0"), -}; - -static struct platform_pwm_backlight_data pwm_bl_data = { - .enable_gpio = GPIO_PIN_PA(28), - .max_brightness = 255, - .dft_brightness = 255, - .lth_brightness = 50, -}; - -static struct platform_device pwm_bl_device = { - .name = "pwm-backlight", - .dev = { - .platform_data = &pwm_bl_data, - }, -}; - -static void __init favr32_setup_atmel_pwm_bl(void) -{ - pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); - regulator_register_always_on(0, "fixed", fixed_power_consumers, - ARRAY_SIZE(fixed_power_consumers), 3300000); - platform_device_register(&pwm_bl_device); - at32_select_gpio(pwm_bl_data.enable_gpio, 0); -} - -void __init setup_board(void) -{ - at32_map_usart(3, 0, 0); /* USART 3 => /dev/ttyS0 */ - at32_setup_serial_console(0); -} - -static int __init set_abdac_rate(struct platform_device *pdev) -{ - int retval; - struct clk *osc1; - struct clk *pll1; - struct clk *abdac; - - if (pdev == NULL) - return -ENXIO; - - osc1 = clk_get(NULL, "osc1"); - if (IS_ERR(osc1)) { - retval = PTR_ERR(osc1); - goto out; - } - - pll1 = clk_get(NULL, "pll1"); - if (IS_ERR(pll1)) { - retval = PTR_ERR(pll1); - goto out_osc1; - } - - abdac = clk_get(&pdev->dev, "sample_clk"); - if (IS_ERR(abdac)) { - retval = PTR_ERR(abdac); - goto out_pll1; - } - - retval = clk_set_parent(pll1, osc1); - if (retval != 0) - goto out_abdac; - - /* - * Rate is 32000 to 50000 and ABDAC oversamples 256x. Multiply, in - * power of 2, to a value above 80 MHz. Power of 2 so it is possible - * for the generic clock to divide it down again and 80 MHz is the - * lowest frequency for the PLL. - */ - retval = clk_round_rate(pll1, - CONFIG_BOARD_FAVR32_ABDAC_RATE * 256 * 16); - if (retval <= 0) { - retval = -EINVAL; - goto out_abdac; - } - - retval = clk_set_rate(pll1, retval); - if (retval != 0) - goto out_abdac; - - retval = clk_set_parent(abdac, pll1); - if (retval != 0) - goto out_abdac; - -out_abdac: - clk_put(abdac); -out_pll1: - clk_put(pll1); -out_osc1: - clk_put(osc1); -out: - return retval; -} - -static int __init favr32_init(void) -{ - /* - * Favr-32 uses 32-bit SDRAM interface. Reserve the SDRAM-specific - * pins so that nobody messes with them. - */ - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL); - - at32_select_gpio(GPIO_PIN_PB(3), 0); /* IRQ from ADS7843 */ - - at32_add_device_usart(0); - - set_hw_addr(at32_add_device_eth(0, ð_data[0])); - - spi1_board_info[0].irq = gpio_to_irq(GPIO_PIN_PB(3)); - - set_abdac_rate(at32_add_device_abdac(0, &abdac0_data)); - - at32_add_device_pwm(1 << PWM_BL_CH); - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); - at32_add_device_mci(0, &mci0_data); - at32_add_device_usba(0, NULL); - at32_add_device_lcdc(0, &favr32_lcdc_data, fbmem_start, fbmem_size, 0); - - favr32_setup_leds(); - - favr32_setup_atmel_pwm_bl(); - - return 0; -} -postcore_initcall(favr32_init); diff --git a/arch/avr32/boards/hammerhead/Kconfig b/arch/avr32/boards/hammerhead/Kconfig deleted file mode 100644 index 5c13d785cc70..000000000000 --- a/arch/avr32/boards/hammerhead/Kconfig +++ /dev/null @@ -1,43 +0,0 @@ -# Hammerhead customization - -if BOARD_HAMMERHEAD - -config BOARD_HAMMERHEAD_USB - bool "Philips ISP116x-hcd USB support" - help - This enables USB support for Hammerheads internal ISP116x - controller from Philips. - - Choose 'Y' here if you want to have your board USB driven. - -config BOARD_HAMMERHEAD_LCD - bool "Atmel AT91/AT32 LCD support" - help - This enables LCD support for the Hammerhead board. You may - also add support for framebuffer devices (AT91/AT32 LCD Controller) - and framebuffer console support to get the most out of your LCD. - - Choose 'Y' here if you have ordered a Corona daugther board and - want to have support for your Hantronix HDA-351T-LV LCD. - -config BOARD_HAMMERHEAD_SND - bool "Atmel AC97 Sound support" - help - This enables Sound support for the Hammerhead board. You may - also go through the ALSA settings to get it working. - - Choose 'Y' here if you have ordered a Corona daugther board and - want to make your board funky. - -config BOARD_HAMMERHEAD_FPGA - bool "Hammerhead FPGA Support" - default y - help - This adds support for the Cyclone III FPGA from Altera - found on Miromico's Hammerhead board. - - Choose 'Y' here if you want to have FPGA support enabled. - You will have to choose the "Hammerhead FPGA Device Support" in - Device Drivers->Misc to be able to use FPGA functionality. - -endif # BOARD_ATNGW100 diff --git a/arch/avr32/boards/hammerhead/Makefile b/arch/avr32/boards/hammerhead/Makefile deleted file mode 100644 index c740aa116755..000000000000 --- a/arch/avr32/boards/hammerhead/Makefile +++ /dev/null @@ -1 +0,0 @@ -obj-y += setup.o flash.o diff --git a/arch/avr32/boards/hammerhead/flash.c b/arch/avr32/boards/hammerhead/flash.c deleted file mode 100644 index e86280ccd8fa..000000000000 --- a/arch/avr32/boards/hammerhead/flash.c +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Hammerhead board-specific flash initialization - * - * Copyright (C) 2008 Miromico AG - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> -#include <linux/usb/isp116x.h> -#include <linux/dma-mapping.h> -#include <linux/delay.h> - -#include <mach/portmux.h> -#include <mach/at32ap700x.h> -#include <mach/smc.h> - -#include "../../mach-at32ap/clock.h" -#include "flash.h" - - -#define HAMMERHEAD_USB_PERIPH_GCLK0 0x40000000 -#define HAMMERHEAD_USB_PERIPH_CS2 0x02000000 -#define HAMMERHEAD_USB_PERIPH_EXTINT0 0x02000000 - -#define HAMMERHEAD_FPGA_PERIPH_MOSI 0x00000002 -#define HAMMERHEAD_FPGA_PERIPH_SCK 0x00000020 -#define HAMMERHEAD_FPGA_PERIPH_EXTINT3 0x10000000 - -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 40, - .ncs_write_setup = 0, - .nwe_setup = 10, - - .ncs_read_pulse = 80, - .nrd_pulse = 40, - .ncs_write_pulse = 65, - .nwe_pulse = 55, - - .read_cycle = 120, - .write_cycle = 120, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, -}; - -static struct mtd_partition flash_parts[] = { - { - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ - .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", - .offset = 0x00020000, - .size = 0x007d0000, - }, - { - .name = "env", - .offset = 0x007f0000, - .size = 0x00010000, - .mask_flags = MTD_WRITEABLE, - }, -}; - -static struct physmap_flash_data flash_data = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts), - .parts = flash_parts, -}; - -static struct resource flash_resource = { - .start = 0x00000000, - .end = 0x007fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device = { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource, - .num_resources = 1, - .dev = { .platform_data = &flash_data, }, -}; - -#ifdef CONFIG_BOARD_HAMMERHEAD_USB - -static struct smc_timing isp1160_timing __initdata = { - .ncs_read_setup = 75, - .nrd_setup = 75, - .ncs_write_setup = 75, - .nwe_setup = 75, - - - /* We use conservative timing settings, as the minimal settings aren't - stable. There may be room for tweaking. */ - .ncs_read_pulse = 75, /* min. 33ns */ - .nrd_pulse = 75, /* min. 33ns */ - .ncs_write_pulse = 75, /* min. 26ns */ - .nwe_pulse = 75, /* min. 26ns */ - - .read_cycle = 225, /* min. 143ns */ - .write_cycle = 225, /* min. 136ns */ -}; - -static struct smc_config isp1160_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 0, -}; - -/* - * The platform delay function is only used to enforce the strange - * read to write delay. This can not be configured in the SMC. All other - * timings are controlled by the SMC (see timings obove) - * So in isp116x-hcd.c we should comment out USE_PLATFORM_DELAY - */ -void isp116x_delay(struct device *dev, int delay) -{ - if (delay > 150) - ndelay(delay - 150); -} - -static struct isp116x_platform_data isp1160_data = { - .sel15Kres = 1, /* use internal downstream resistors */ - .oc_enable = 0, /* external overcurrent detection */ - .int_edge_triggered = 0, /* interrupt is level triggered */ - .int_act_high = 0, /* interrupt is active low */ - .delay = isp116x_delay, /* platform delay function */ -}; - -static struct resource isp1160_resource[] = { - { - .start = 0x08000000, - .end = 0x08000001, - .flags = IORESOURCE_MEM, - }, - { - .start = 0x08000002, - .end = 0x08000003, - .flags = IORESOURCE_MEM, - }, - { - .start = 64, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device isp1160_device = { - .name = "isp116x-hcd", - .id = 0, - .resource = isp1160_resource, - .num_resources = 3, - .dev = { - .platform_data = &isp1160_data, - }, -}; -#endif - -#ifdef CONFIG_BOARD_HAMMERHEAD_USB -static int __init hammerhead_usbh_init(void) -{ - struct clk *gclk; - struct clk *osc; - - int ret; - - /* setup smc for usbh */ - smc_set_timing(&isp1160_config, &isp1160_timing); - ret = smc_set_configuration(2, &isp1160_config); - - if (ret < 0) { - printk(KERN_ERR - "hammerhead: failed to set ISP1160 USBH timing\n"); - return ret; - } - - /* setup gclk0 to run from osc1 */ - gclk = clk_get(NULL, "gclk0"); - if (IS_ERR(gclk)) { - ret = PTR_ERR(gclk); - goto err_gclk; - } - - osc = clk_get(NULL, "osc1"); - if (IS_ERR(osc)) { - ret = PTR_ERR(osc); - goto err_osc; - } - - ret = clk_set_parent(gclk, osc); - if (ret < 0) { - pr_debug("hammerhead: failed to set osc1 for USBH clock\n"); - goto err_set_clk; - } - - /* set clock to 6MHz */ - clk_set_rate(gclk, 6000000); - - /* and enable */ - clk_enable(gclk); - - /* select GCLK0 peripheral function */ - at32_select_periph(GPIO_PIOA_BASE, HAMMERHEAD_USB_PERIPH_GCLK0, - GPIO_PERIPH_A, 0); - - /* enable CS2 peripheral function */ - at32_select_periph(GPIO_PIOE_BASE, HAMMERHEAD_USB_PERIPH_CS2, - GPIO_PERIPH_A, 0); - - /* H_WAKEUP must be driven low */ - at32_select_gpio(GPIO_PIN_PA(8), AT32_GPIOF_OUTPUT); - - /* Select EXTINT0 for PB25 */ - at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_USB_PERIPH_EXTINT0, - GPIO_PERIPH_A, 0); - - /* register usbh device driver */ - platform_device_register(&isp1160_device); - - err_set_clk: - clk_put(osc); - err_osc: - clk_put(gclk); - err_gclk: - return ret; -} -#endif - -#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA -static struct smc_timing fpga_timing __initdata = { - .ncs_read_setup = 16, - .nrd_setup = 32, - .ncs_read_pulse = 48, - .nrd_pulse = 32, - .read_cycle = 64, - - .ncs_write_setup = 16, - .nwe_setup = 16, - .ncs_write_pulse = 32, - .nwe_pulse = 32, - .write_cycle = 64, -}; - -static struct smc_config fpga_config __initdata = { - .bus_width = 4, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 0, -}; - -static struct resource hh_fpga0_resource[] = { - { - .start = 0xffe00400, - .end = 0xffe00400 + 0x3ff, - .flags = IORESOURCE_MEM, - }, - { - .start = 4, - .end = 4, - .flags = IORESOURCE_IRQ, - }, - { - .start = 0x0c000000, - .end = 0x0c000100, - .flags = IORESOURCE_MEM, - }, - { - .start = 67, - .end = 67, - .flags = IORESOURCE_IRQ, - }, -}; - -static u64 hh_fpga0_dma_mask = DMA_BIT_MASK(32); -static struct platform_device hh_fpga0_device = { - .name = "hh_fpga", - .id = 0, - .dev = { - .dma_mask = &hh_fpga0_dma_mask, - .coherent_dma_mask = DMA_BIT_MASK(32), - }, - .resource = hh_fpga0_resource, - .num_resources = ARRAY_SIZE(hh_fpga0_resource), -}; - -static struct clk hh_fpga0_spi_clk = { - .name = "spi_clk", - .dev = &hh_fpga0_device.dev, - .mode = pba_clk_mode, - .get_rate = pba_clk_get_rate, - .index = 1, -}; - -struct platform_device *__init at32_add_device_hh_fpga(void) -{ - /* Select peripheral functionallity for SPI SCK and MOSI */ - at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_SCK, - GPIO_PERIPH_B, 0); - at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_MOSI, - GPIO_PERIPH_B, 0); - - /* reserve all other needed gpio - * We have on board pull ups, so there is no need - * to enable gpio pull ups */ - /* INIT_DONE (input) */ - at32_select_gpio(GPIO_PIN_PB(0), 0); - - /* nSTATUS (input) */ - at32_select_gpio(GPIO_PIN_PB(2), 0); - - /* nCONFIG (output, low) */ - at32_select_gpio(GPIO_PIN_PB(3), AT32_GPIOF_OUTPUT); - - /* CONF_DONE (input) */ - at32_select_gpio(GPIO_PIN_PB(4), 0); - - /* Select EXTINT3 for PB28 (Interrupt from FPGA) */ - at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_EXTINT3, - GPIO_PERIPH_A, 0); - - /* Get our parent clock */ - hh_fpga0_spi_clk.parent = clk_get(NULL, "pba"); - clk_put(hh_fpga0_spi_clk.parent); - - /* Register clock in at32 clock tree */ - at32_clk_register(&hh_fpga0_spi_clk); - - platform_device_register(&hh_fpga0_device); - return &hh_fpga0_device; -} -#endif - -/* This needs to be called after the SMC has been initialized */ -static int __init hammerhead_flash_init(void) -{ - int ret; - - smc_set_timing(&flash_config, &flash_timing); - ret = smc_set_configuration(0, &flash_config); - - if (ret < 0) { - printk(KERN_ERR "hammerhead: failed to set NOR flash timing\n"); - return ret; - } - - platform_device_register(&flash_device); - -#ifdef CONFIG_BOARD_HAMMERHEAD_USB - hammerhead_usbh_init(); -#endif - -#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA - /* Setup SMC for FPGA interface */ - smc_set_timing(&fpga_config, &fpga_timing); - ret = smc_set_configuration(3, &fpga_config); -#endif - - - if (ret < 0) { - printk(KERN_ERR "hammerhead: failed to set FPGA timing\n"); - return ret; - } - - return 0; -} - -device_initcall(hammerhead_flash_init); diff --git a/arch/avr32/boards/hammerhead/flash.h b/arch/avr32/boards/hammerhead/flash.h deleted file mode 100644 index ea70c626587b..000000000000 --- a/arch/avr32/boards/hammerhead/flash.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __BOARDS_HAMMERHEAD_FLASH_H -#define __BOARDS_HAMMERHEAD_FLASH_H - -struct platform_device *at32_add_device_hh_fpga(void); - -#endif /* __BOARDS_HAMMERHEAD_FLASH_H */ diff --git a/arch/avr32/boards/hammerhead/setup.c b/arch/avr32/boards/hammerhead/setup.c deleted file mode 100644 index dc0e317f2ecd..000000000000 --- a/arch/avr32/boards/hammerhead/setup.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Board-specific setup code for the Miromico Hammerhead board - * - * Copyright (C) 2008 Miromico AG - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/atmel-mci.h> -#include <linux/clk.h> -#include <linux/fb.h> -#include <linux/etherdevice.h> -#include <linux/i2c.h> -#include <linux/i2c-gpio.h> -#include <linux/init.h> -#include <linux/linkage.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/spi/spi.h> - -#include <video/atmel_lcdc.h> - -#include <linux/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -#include <sound/atmel-ac97c.h> - -#include "../../mach-at32ap/clock.h" -#include "flash.h" - -/* Oscillator frequencies. These are board-specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 25000000, /* 25MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -#ifdef CONFIG_BOARD_HAMMERHEAD_LCD -static struct fb_videomode __initdata hda350tlv_modes[] = { - { - .name = "320x240 @ 75", - .refresh = 75, - .xres = 320, - .yres = 240, - .pixclock = KHZ2PICOS(6891), - - .left_margin = 48, - .right_margin = 18, - .upper_margin = 18, - .lower_margin = 4, - .hsync_len = 20, - .vsync_len = 2, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata hammerhead_hda350t_monspecs = { - .manufacturer = "HAN", - .monitor = "HDA350T-LV", - .modedb = hda350tlv_modes, - .modedb_len = ARRAY_SIZE(hda350tlv_modes), - .hfmin = 14900, - .hfmax = 22350, - .vfmin = 60, - .vfmax = 90, - .dclkmax = 10000000, -}; - -struct atmel_lcdfb_pdata __initdata hammerhead_lcdc_data = { - .default_bpp = 24, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_INVCLK - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &hammerhead_hda350t_monspecs, - .guard_time = 2, -}; -#endif - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = -ENODEV, - .wp_pin = -ENODEV, - }, -}; - -struct eth_addr { - u8 addr[6]; -}; - -static struct eth_addr __initdata hw_addr[1]; -static struct macb_platform_data __initdata eth_data[1]; - -/* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid - * ethernet address. But we need to keep it around for a while until - * we can be reasonably sure the boot loader does this. - * - * The phy_id is ignored as the driver will probe for it. - */ -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i = tag->u.ethernet.mac_index; - - if (i < ARRAY_SIZE(hw_addr)) - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - - if (!is_valid_ether_addr(addr)) - return; - - /* - * Since this is board-specific code, we'll cheat and use the - * physical address directly as we happen to know that it's - * the same as the virtual address. - */ - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - - __raw_writel((addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) | - addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - - clk_disable(pclk); - clk_put(pclk); -} - -void __init setup_board(void) -{ - at32_map_usart(1, 0, 0); /* USART 1: /dev/ttyS0, DB9 */ - at32_setup_serial_console(0); -} - -static struct i2c_gpio_platform_data i2c_gpio_data = { - .sda_pin = GPIO_PIN_PA(6), - .scl_pin = GPIO_PIN_PA(7), - .sda_is_open_drain = 1, - .scl_is_open_drain = 1, - .udelay = 2, /* close to 100 kHz */ -}; - -static struct platform_device i2c_gpio_device = { - .name = "i2c-gpio", - .id = 0, - .dev = { .platform_data = &i2c_gpio_data, }, -}; - -static struct i2c_board_info __initdata i2c_info[] = {}; - -#ifdef CONFIG_BOARD_HAMMERHEAD_SND -static struct ac97c_platform_data ac97c_data = { - .reset_pin = GPIO_PIN_PA(16), -}; -#endif - -static int __init hammerhead_init(void) -{ - /* - * Hammerhead uses 32-bit SDRAM interface. Reserve the - * SDRAM-specific pins so that nobody messes with them. - */ - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL); - - at32_add_device_usart(0); - - /* Reserve PB29 (GCLK3). This pin is used as clock source - * for ETH PHY (25MHz). GCLK3 setup is done by U-Boot. - */ - at32_reserve_pin(GPIO_PIOB_BASE, (1<<29)); - - /* - * Hammerhead uses only one ethernet port, so we don't set - * address of second port - */ - set_hw_addr(at32_add_device_eth(0, ð_data[0])); - -#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA - at32_add_device_hh_fpga(); -#endif - at32_add_device_mci(0, &mci0_data); - -#ifdef CONFIG_BOARD_HAMMERHEAD_USB - at32_add_device_usba(0, NULL); -#endif -#ifdef CONFIG_BOARD_HAMMERHEAD_LCD - at32_add_device_lcdc(0, &hammerhead_lcdc_data, fbmem_start, - fbmem_size, ATMEL_LCDC_PRI_24BIT); -#endif - - at32_select_gpio(i2c_gpio_data.sda_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | - AT32_GPIOF_HIGH); - at32_select_gpio(i2c_gpio_data.scl_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | - AT32_GPIOF_HIGH); - platform_device_register(&i2c_gpio_device); - i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); - -#ifdef CONFIG_BOARD_HAMMERHEAD_SND - at32_add_device_ac97c(0, &ac97c_data, AC97C_BOTH); -#endif - - /* Select the Touchscreen interrupt pin mode */ - at32_select_periph(GPIO_PIOB_BASE, 0x08000000, GPIO_PERIPH_A, 0); - - return 0; -} - -postcore_initcall(hammerhead_init); diff --git a/arch/avr32/boards/merisc/Kconfig b/arch/avr32/boards/merisc/Kconfig deleted file mode 100644 index 7e043275d5a9..000000000000 --- a/arch/avr32/boards/merisc/Kconfig +++ /dev/null @@ -1,5 +0,0 @@ -# Merisc customization - -if BOARD_MERISC - -endif # BOARD_MERISC diff --git a/arch/avr32/boards/merisc/Makefile b/arch/avr32/boards/merisc/Makefile deleted file mode 100644 index d24c78729bd1..000000000000 --- a/arch/avr32/boards/merisc/Makefile +++ /dev/null @@ -1 +0,0 @@ -obj-y += setup.o flash.o display.o merisc_sysfs.o diff --git a/arch/avr32/boards/merisc/display.c b/arch/avr32/boards/merisc/display.c deleted file mode 100644 index e7683ee7ed40..000000000000 --- a/arch/avr32/boards/merisc/display.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Display setup code for the Merisc board - * - * Copyright (C) 2008 Martinsson Elektronik AB - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/fb.h> -#include <video/atmel_lcdc.h> -#include <asm/setup.h> -#include <mach/board.h> -#include "merisc.h" - -static struct fb_videomode merisc_fb_videomode[] = { - { - .refresh = 44, - .xres = 640, - .yres = 480, - .left_margin = 96, - .right_margin = 96, - .upper_margin = 34, - .lower_margin = 8, - .hsync_len = 64, - .vsync_len = 64, - .name = "640x480 @ 44", - .pixclock = KHZ2PICOS(25180), - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs merisc_fb_monspecs = { - .manufacturer = "Kyo", - .monitor = "TCG075VG2AD", - .modedb = merisc_fb_videomode, - .modedb_len = ARRAY_SIZE(merisc_fb_videomode), - .hfmin = 30000, - .hfmax = 33333, - .vfmin = 60, - .vfmax = 90, - .dclkmax = 30000000, -}; - -struct atmel_lcdfb_pdata merisc_lcdc_data = { - .default_bpp = 24, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &merisc_fb_monspecs, - .guard_time = 2, -}; - -static int __init merisc_display_init(void) -{ - at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start, - fbmem_size, 0); - - return 0; -} -device_initcall(merisc_display_init); diff --git a/arch/avr32/boards/merisc/flash.c b/arch/avr32/boards/merisc/flash.c deleted file mode 100644 index 8e856fd6f013..000000000000 --- a/arch/avr32/boards/merisc/flash.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Merisc board-specific flash initialization - * - * Copyright (C) 2008 Martinsson Elektronik AB - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> -#include <mach/smc.h> - -/* Will be translated to units of 14.3 ns, rounded up */ -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 1 * 14, - .nrd_setup = 5 * 14, - .ncs_write_setup = 1 * 14, - .nwe_setup = 2 * 14, - - .ncs_read_pulse = 12 * 14, - .nrd_pulse = 7 * 14, - .ncs_write_pulse = 8 * 14, - .nwe_pulse = 4 * 14, - - .read_cycle = 14 * 14, - .write_cycle = 10 * 14, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, - .tdf_cycles = 3, -}; - -static struct mtd_partition flash_0_parts[] = { - { - .name = "boot", - .offset = 0x00000000, - .size = 0x00060000, - .mask_flags = 0, - }, - { - .name = "kernel", - .offset = 0x00060000, - .size = 0x00200000, - .mask_flags = 0, - }, - { - .name = "root", - .offset = 0x00260000, - .size = MTDPART_SIZ_FULL, - .mask_flags = 0, - }, -}; - -static struct mtd_partition flash_1_parts[] = { - { - .name = "2ndflash", - .offset = 0x00000000, - .size = MTDPART_SIZ_FULL, - .mask_flags = 0, - }, -}; - -static struct physmap_flash_data flash_data[] = { - { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_0_parts), - .parts = flash_0_parts, - }, - { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_1_parts), - .parts = flash_1_parts, - } -}; - -static struct resource flash_resource[] = { - { - .start = 0x00000000, - .end = 0x03ffffff, - .flags = IORESOURCE_MEM, - }, - { - .start = 0x04000000, - .end = 0x07ffffff, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device flash_device[] = { - { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource[0], - .num_resources = 1, - .dev = { - .platform_data = &flash_data[0], - }, - }, - { - .name = "physmap-flash", - .id = 1, - .resource = &flash_resource[1], - .num_resources = 1, - .dev = { - .platform_data = &flash_data[1], - }, - }, -}; - -static int __init merisc_flash_init(void) -{ - int ret; - smc_set_timing(&flash_config, &flash_timing); - - ret = smc_set_configuration(0, &flash_config); - if (ret < 0) { - printk(KERN_ERR "Merisc: failed to set NOR flash timing #0\n"); - return ret; - } - - ret = smc_set_configuration(4, &flash_config); - if (ret < 0) { - printk(KERN_ERR "Merisc: failed to set NOR flash timing #1\n"); - return ret; - } - - platform_device_register(&flash_device[0]); - platform_device_register(&flash_device[1]); - return 0; -} -device_initcall(merisc_flash_init); diff --git a/arch/avr32/boards/merisc/merisc.h b/arch/avr32/boards/merisc/merisc.h deleted file mode 100644 index 50ffb2f3fcbf..000000000000 --- a/arch/avr32/boards/merisc/merisc.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Merisc exports - * - * Copyright (C) 2008 Martinsson Elektronik AB - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ARCH_AVR32_BOARDS_MERISC_MERISC_H -#define __ARCH_AVR32_BOARDS_MERISC_MERISC_H - -const char *merisc_revision(void); -const char *merisc_model(void); - -extern struct class merisc_class; - -#endif /* __ARCH_AVR32_BOARDS_MERISC_MERISC_H */ diff --git a/arch/avr32/boards/merisc/merisc_sysfs.c b/arch/avr32/boards/merisc/merisc_sysfs.c deleted file mode 100644 index 5a252318f4bd..000000000000 --- a/arch/avr32/boards/merisc/merisc_sysfs.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Merisc sysfs exports - * - * Copyright (C) 2008 Martinsson Elektronik AB - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/module.h> -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/list.h> -#include <linux/spinlock.h> -#include <linux/device.h> -#include <linux/timer.h> -#include <linux/err.h> -#include <linux/ctype.h> -#include "merisc.h" - -static ssize_t merisc_model_show(struct class *class, char *buf) -{ - ssize_t ret = 0; - - sprintf(buf, "%s\n", merisc_model()); - ret = strlen(buf) + 1; - - return ret; -} - -static ssize_t merisc_revision_show(struct class *class, char *buf) -{ - ssize_t ret = 0; - - sprintf(buf, "%s\n", merisc_revision()); - ret = strlen(buf) + 1; - - return ret; -} - -static struct class_attribute merisc_class_attrs[] = { - __ATTR(model, S_IRUGO, merisc_model_show, NULL), - __ATTR(revision, S_IRUGO, merisc_revision_show, NULL), - __ATTR_NULL, -}; - -struct class merisc_class = { - .name = "merisc", - .owner = THIS_MODULE, - .class_attrs = merisc_class_attrs, -}; - -static int __init merisc_sysfs_init(void) -{ - int status; - - status = class_register(&merisc_class); - if (status < 0) - return status; - - return 0; -} - -postcore_initcall(merisc_sysfs_init); diff --git a/arch/avr32/boards/merisc/setup.c b/arch/avr32/boards/merisc/setup.c deleted file mode 100644 index 718a6d7eb808..000000000000 --- a/arch/avr32/boards/merisc/setup.c +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Board-specific setup code for the Merisc - * - * Copyright (C) 2008 Martinsson Elektronik AB - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/clk.h> -#include <linux/etherdevice.h> -#include <linux/i2c.h> -#include <linux/i2c-gpio.h> -#include <linux/gpio.h> -#include <linux/init.h> -#include <linux/linkage.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/leds.h> -#include <linux/spi/spi.h> -#include <linux/spi/ads7846.h> -#include <linux/irq.h> -#include <linux/fb.h> -#include <linux/atmel-mci.h> -#include <linux/pwm.h> -#include <linux/leds_pwm.h> - -#include <asm/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -#include "merisc.h" - -/* Holds the autodetected board model and revision */ -static int merisc_board_id; - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -/* Oscillator frequencies. These are board specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 20000000, /* 20 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -struct eth_addr { - u8 addr[6]; -}; - -static struct eth_addr __initdata hw_addr[2]; -static struct macb_platform_data __initdata eth_data[2]; - -static int ads7846_get_pendown_state_PB26(void) -{ - return !gpio_get_value(GPIO_PIN_PB(26)); -} - -static int ads7846_get_pendown_state_PB28(void) -{ - return !gpio_get_value(GPIO_PIN_PB(28)); -} - -static struct ads7846_platform_data __initdata ads7846_data = { - .model = 7846, - .vref_delay_usecs = 100, - .vref_mv = 0, - .keep_vref_on = 0, - .settle_delay_usecs = 150, - .penirq_recheck_delay_usecs = 1, - .x_plate_ohms = 800, - .debounce_rep = 4, - .debounce_max = 10, - .debounce_tol = 50, - .get_pendown_state = ads7846_get_pendown_state_PB26, - .filter_init = NULL, - .filter = NULL, - .filter_cleanup = NULL, -}; - -static struct spi_board_info __initdata spi0_board_info[] = { - { - .modalias = "ads7846", - .max_speed_hz = 3250000, - .chip_select = 0, - .bus_num = 0, - .platform_data = &ads7846_data, - .mode = SPI_MODE_0, - }, -}; - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = GPIO_PIN_PE(19), - .wp_pin = GPIO_PIN_PE(20), - .detect_is_active_high = true, - }, -}; - -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i; - - i = tag->u.ethernet.mac_index; - if (i < ARRAY_SIZE(hw_addr)) { - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - } - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - if (!is_valid_ether_addr(addr)) - return; - - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - __raw_writel((addr[3] << 24) | (addr[2] << 16) - | (addr[1] << 8) | addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - clk_disable(pclk); - clk_put(pclk); -} - -static struct i2c_gpio_platform_data i2c_gpio_data = { - .sda_pin = GPIO_PIN_PA(6), - .scl_pin = GPIO_PIN_PA(7), - .sda_is_open_drain = 1, - .scl_is_open_drain = 1, - .udelay = 2, -}; - -static struct platform_device i2c_gpio_device = { - .name = "i2c-gpio", - .id = 0, - .dev = { - .platform_data = &i2c_gpio_data, - }, -}; - -static struct i2c_board_info __initdata i2c_info[] = { - { - I2C_BOARD_INFO("pcf8563", 0x51) - }, -}; - -#if IS_ENABLED(CONFIG_LEDS_PWM) -static struct pwm_lookup pwm_lookup[] = { - PWM_LOOKUP("at91sam9rl-pwm", 0, "leds_pwm", "backlight", - 5000, PWM_POLARITY_NORMAL), -}; - -static struct led_pwm pwm_leds[] = { - { - .name = "backlight", - .max_brightness = 255, - }, -}; - -static struct led_pwm_platform_data pwm_data = { - .num_leds = ARRAY_SIZE(pwm_leds), - .leds = pwm_leds, -}; - -static struct platform_device leds_pwm = { - .name = "leds_pwm", - .id = -1, - .dev = { - .platform_data = &pwm_data, - }, -}; -#endif - -const char *merisc_model(void) -{ - switch (merisc_board_id) { - case 0: - case 1: - return "500-01"; - case 2: - return "BT"; - default: - return "Unknown"; - } -} - -const char *merisc_revision(void) -{ - switch (merisc_board_id) { - case 0: - return "B"; - case 1: - return "D"; - case 2: - return "A"; - default: - return "Unknown"; - } -} - -static void detect_merisc_board_id(void) -{ - /* Board ID pins MUST be set as input or the board may be damaged */ - at32_select_gpio(GPIO_PIN_PA(24), AT32_GPIOF_PULLUP); - at32_select_gpio(GPIO_PIN_PA(25), AT32_GPIOF_PULLUP); - at32_select_gpio(GPIO_PIN_PA(26), AT32_GPIOF_PULLUP); - at32_select_gpio(GPIO_PIN_PA(27), AT32_GPIOF_PULLUP); - - merisc_board_id = !gpio_get_value(GPIO_PIN_PA(24)) + - !gpio_get_value(GPIO_PIN_PA(25)) * 2 + - !gpio_get_value(GPIO_PIN_PA(26)) * 4 + - !gpio_get_value(GPIO_PIN_PA(27)) * 8; -} - -void __init setup_board(void) -{ - at32_map_usart(0, 0, 0); - at32_map_usart(1, 1, 0); - at32_map_usart(3, 3, 0); - at32_setup_serial_console(1); -} - -static int __init merisc_init(void) -{ - detect_merisc_board_id(); - - printk(KERN_NOTICE "BOARD: Merisc %s revision %s\n", merisc_model(), - merisc_revision()); - - /* Reserve pins for SDRAM */ - at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL | (1 << 26)); - - if (merisc_board_id >= 1) - at32_map_usart(2, 2, 0); - - at32_add_device_usart(0); - at32_add_device_usart(1); - if (merisc_board_id >= 1) - at32_add_device_usart(2); - at32_add_device_usart(3); - set_hw_addr(at32_add_device_eth(0, ð_data[0])); - - /* ADS7846 PENIRQ */ - if (merisc_board_id == 0) { - ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB26; - at32_select_periph(GPIO_PIOB_BASE, 1 << 26, - GPIO_PERIPH_A, AT32_GPIOF_PULLUP); - spi0_board_info[0].irq = AT32_EXTINT(1); - } else { - ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB28; - at32_select_periph(GPIO_PIOB_BASE, 1 << 28, GPIO_PERIPH_A, - AT32_GPIOF_PULLUP); - spi0_board_info[0].irq = AT32_EXTINT(3); - } - - /* ADS7846 busy pin */ - at32_select_gpio(GPIO_PIN_PA(4), AT32_GPIOF_PULLUP); - - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); - - at32_add_device_mci(0, &mci0_data); - -#if IS_ENABLED(CONFIG_LEDS_PWM) - pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); - at32_add_device_pwm((1 << 0) | (1 << 2)); - platform_device_register(&leds_pwm); -#else - at32_add_device_pwm((1 << 2)); -#endif - - at32_select_gpio(i2c_gpio_data.sda_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - at32_select_gpio(i2c_gpio_data.scl_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - platform_device_register(&i2c_gpio_device); - - i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); - - return 0; -} -postcore_initcall(merisc_init); diff --git a/arch/avr32/boards/mimc200/Makefile b/arch/avr32/boards/mimc200/Makefile deleted file mode 100644 index c740aa116755..000000000000 --- a/arch/avr32/boards/mimc200/Makefile +++ /dev/null @@ -1 +0,0 @@ -obj-y += setup.o flash.o diff --git a/arch/avr32/boards/mimc200/flash.c b/arch/avr32/boards/mimc200/flash.c deleted file mode 100644 index d83d650fc13f..000000000000 --- a/arch/avr32/boards/mimc200/flash.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * MIMC200 board-specific flash initialization - * - * Copyright (C) 2008 Mercury IMC Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/platform_device.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> -#include <linux/mtd/physmap.h> - -#include <mach/smc.h> - -static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 15, - .ncs_write_setup = 0, - .nwe_setup = 0, - - .ncs_read_pulse = 115, - .nrd_pulse = 110, - .ncs_write_pulse = 60, - .nwe_pulse = 60, - - .read_cycle = 115, - .write_cycle = 100, -}; - -static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, - .byte_write = 1, -}; - -/* system flash definition */ - -static struct mtd_partition flash_parts_system[] = { - { - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ - .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", - .offset = 0x00020000, - .size = 0x007c0000, - }, - { - .name = "splash", - .offset = 0x007e0000, - .size = 0x00010000, /* 64KiB */ - }, - { - .name = "env", - .offset = 0x007f0000, - .size = 0x00010000, - .mask_flags = MTD_WRITEABLE, - }, -}; - -static struct physmap_flash_data flash_system = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts_system), - .parts = flash_parts_system, -}; - -static struct resource flash_resource_system = { - .start = 0x00000000, - .end = 0x007fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device_system = { - .name = "physmap-flash", - .id = 0, - .resource = &flash_resource_system, - .num_resources = 1, - .dev = { - .platform_data = &flash_system, - }, -}; - -/* data flash definition */ - -static struct mtd_partition flash_parts_data[] = { - { - .name = "data", - .offset = 0x00000000, - .size = 0x00800000, - }, -}; - -static struct physmap_flash_data flash_data = { - .width = 2, - .nr_parts = ARRAY_SIZE(flash_parts_data), - .parts = flash_parts_data, -}; - -static struct resource flash_resource_data = { - .start = 0x08000000, - .end = 0x087fffff, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device flash_device_data = { - .name = "physmap-flash", - .id = 1, - .resource = &flash_resource_data, - .num_resources = 1, - .dev = { - .platform_data = &flash_data, - }, -}; - -/* This needs to be called after the SMC has been initialized */ -static int __init mimc200_flash_init(void) -{ - int ret; - - smc_set_timing(&flash_config, &flash_timing); - ret = smc_set_configuration(0, &flash_config); - if (ret < 0) { - printk(KERN_ERR "mimc200: failed to set 'System' NOR flash timing\n"); - return ret; - } - ret = smc_set_configuration(1, &flash_config); - if (ret < 0) { - printk(KERN_ERR "mimc200: failed to set 'Data' NOR flash timing\n"); - return ret; - } - - platform_device_register(&flash_device_system); - platform_device_register(&flash_device_data); - - return 0; -} -device_initcall(mimc200_flash_init); diff --git a/arch/avr32/boards/mimc200/setup.c b/arch/avr32/boards/mimc200/setup.c deleted file mode 100644 index 1cb8e9cc5cfa..000000000000 --- a/arch/avr32/boards/mimc200/setup.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Board-specific setup code for the MIMC200 - * - * Copyright (C) 2008 Mercury IMC Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -extern struct atmel_lcdfb_pdata mimc200_lcdc_data; - -#include <linux/clk.h> -#include <linux/etherdevice.h> -#include <linux/i2c-gpio.h> -#include <linux/init.h> -#include <linux/linkage.h> -#include <linux/platform_device.h> -#include <linux/types.h> -#include <linux/leds.h> -#include <linux/spi/spi.h> -#include <linux/spi/eeprom.h> - -#include <video/atmel_lcdc.h> -#include <linux/fb.h> - -#include <linux/atmel-mci.h> -#include <linux/io.h> -#include <asm/setup.h> - -#include <mach/at32ap700x.h> -#include <mach/board.h> -#include <mach/init.h> -#include <mach/portmux.h> - -/* Oscillator frequencies. These are board-specific */ -unsigned long at32_board_osc_rates[3] = { - [0] = 32768, /* 32.768 kHz on RTC osc */ - [1] = 10000000, /* 10 MHz on osc0 */ - [2] = 12000000, /* 12 MHz on osc1 */ -}; - -/* Initialized by bootloader-specific startup code. */ -struct tag *bootloader_tags __initdata; - -static struct fb_videomode __initdata pt0434827_modes[] = { - { - .name = "480x272 @ 72", - .refresh = 72, - .xres = 480, .yres = 272, - .pixclock = KHZ2PICOS(10000), - - .left_margin = 1, .right_margin = 1, - .upper_margin = 12, .lower_margin = 1, - .hsync_len = 42, .vsync_len = 1, - - .sync = 0, - .vmode = FB_VMODE_NONINTERLACED, - }, -}; - -static struct fb_monspecs __initdata mimc200_default_monspecs = { - .manufacturer = "PT", - .monitor = "PT0434827-A401", - .modedb = pt0434827_modes, - .modedb_len = ARRAY_SIZE(pt0434827_modes), - .hfmin = 14820, - .hfmax = 22230, - .vfmin = 60, - .vfmax = 85, - .dclkmax = 25200000, -}; - -struct atmel_lcdfb_pdata __initdata mimc200_lcdc_data = { - .default_bpp = 16, - .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, - .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT - | ATMEL_LCDC_INVCLK - | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE - | ATMEL_LCDC_MEMOR_BIG), - .default_monspecs = &mimc200_default_monspecs, - .guard_time = 2, -}; - -struct eth_addr { - u8 addr[6]; -}; -static struct eth_addr __initdata hw_addr[2]; -static struct macb_platform_data __initdata eth_data[2]; - -static struct spi_eeprom eeprom_25lc010 = { - .name = "25lc010", - .byte_len = 128, - .page_size = 16, - .flags = EE_ADDR1, -}; - -static struct spi_board_info spi0_board_info[] __initdata = { - { - .modalias = "rtc-ds1390", - .max_speed_hz = 4000000, - .chip_select = 2, - }, - { - .modalias = "at25", - .max_speed_hz = 1000000, - .chip_select = 1, - .mode = SPI_MODE_3, - .platform_data = &eeprom_25lc010, - }, -}; - -static struct mci_platform_data __initdata mci0_data = { - .slot[0] = { - .bus_width = 4, - .detect_pin = GPIO_PIN_PA(26), - .wp_pin = GPIO_PIN_PA(27), - }, -}; - -/* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid - * ethernet address. But we need to keep it around for a while until - * we can be reasonably sure the boot loader does this. - * - * The phy_id is ignored as the driver will probe for it. - */ -static int __init parse_tag_ethernet(struct tag *tag) -{ - int i; - - i = tag->u.ethernet.mac_index; - if (i < ARRAY_SIZE(hw_addr)) - memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, - sizeof(hw_addr[i].addr)); - - return 0; -} -__tagtable(ATAG_ETHERNET, parse_tag_ethernet); - -static void __init set_hw_addr(struct platform_device *pdev) -{ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - const u8 *addr; - void __iomem *regs; - struct clk *pclk; - - if (!res) - return; - if (pdev->id >= ARRAY_SIZE(hw_addr)) - return; - - addr = hw_addr[pdev->id].addr; - if (!is_valid_ether_addr(addr)) - return; - - /* - * Since this is board-specific code, we'll cheat and use the - * physical address directly as we happen to know that it's - * the same as the virtual address. - */ - regs = (void __iomem __force *)res->start; - pclk = clk_get(&pdev->dev, "pclk"); - if (IS_ERR(pclk)) - return; - - clk_enable(pclk); - __raw_writel((addr[3] << 24) | (addr[2] << 16) - | (addr[1] << 8) | addr[0], regs + 0x98); - __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); - clk_disable(pclk); - clk_put(pclk); -} - -void __init setup_board(void) -{ - at32_map_usart(0, 0, 0); /* USART 0: /dev/ttyS0 (TTL --> Altera) */ - at32_map_usart(1, 1, 0); /* USART 1: /dev/ttyS1 (RS232) */ - at32_map_usart(2, 2, 0); /* USART 2: /dev/ttyS2 (RS485) */ - at32_map_usart(3, 3, 0); /* USART 3: /dev/ttyS3 (RS422 Multidrop) */ -} - -static struct i2c_gpio_platform_data i2c_gpio_data = { - .sda_pin = GPIO_PIN_PA(6), - .scl_pin = GPIO_PIN_PA(7), - .sda_is_open_drain = 1, - .scl_is_open_drain = 1, - .udelay = 2, /* close to 100 kHz */ -}; - -static struct platform_device i2c_gpio_device = { - .name = "i2c-gpio", - .id = 0, - .dev = { - .platform_data = &i2c_gpio_data, - }, -}; - -static struct i2c_board_info __initdata i2c_info[] = { -}; - -static int __init mimc200_init(void) -{ - /* - * MIMC200 uses 16-bit SDRAM interface, so we don't need to - * reserve any pins for it. - */ - - at32_add_device_usart(0); - at32_add_device_usart(1); - at32_add_device_usart(2); - at32_add_device_usart(3); - - set_hw_addr(at32_add_device_eth(0, ð_data[0])); - set_hw_addr(at32_add_device_eth(1, ð_data[1])); - - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); - at32_add_device_mci(0, &mci0_data); - at32_add_device_usba(0, NULL); - - at32_select_periph(GPIO_PIOB_BASE, 1 << 28, 0, AT32_GPIOF_PULLUP); - at32_select_gpio(i2c_gpio_data.sda_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - at32_select_gpio(i2c_gpio_data.scl_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - platform_device_register(&i2c_gpio_device); - i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); - - at32_add_device_lcdc(0, &mimc200_lcdc_data, - fbmem_start, fbmem_size, - ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_CONTROL | ATMEL_LCDC_ALT_24B_DATA); - - return 0; -} -postcore_initcall(mimc200_init); diff --git a/arch/avr32/boot/images/.gitignore b/arch/avr32/boot/images/.gitignore deleted file mode 100644 index 64ea9d0141d2..000000000000 --- a/arch/avr32/boot/images/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -uImage -uImage.srec -vmlinux.cso -sfdwarf.log diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile deleted file mode 100644 index 2a3b53978a3b..000000000000 --- a/arch/avr32/boot/images/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (C) 2004-2006 Atmel Corporation -# -# This file is subject to the terms and conditions of the GNU General Public -# License. See the file "COPYING" in the main directory of this archive -# for more details. -# - -extra-y := vmlinux.bin vmlinux.gz - -OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id -$(obj)/vmlinux.bin: vmlinux FORCE - $(call if_changed,objcopy) - -$(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE - $(call if_changed,gzip) - -UIMAGE_LOADADDR = $(CONFIG_LOAD_ADDRESS) -UIMAGE_ENTRYADDR = $(CONFIG_ENTRY_ADDRESS) -UIMAGE_COMPRESSION = gzip - -targets += uImage uImage.srec -$(obj)/uImage: $(obj)/vmlinux.gz - $(call if_changed,uimage) - @echo ' Image $@ is ready' - -OBJCOPYFLAGS_uImage.srec := -I binary -O srec -$(obj)/uImage.srec: $(obj)/uImage - $(call if_changed,objcopy) - -OBJCOPYFLAGS_vmlinux.elf := --change-section-lma .text-0x80000000 \ - --change-section-lma __ex_table-0x80000000 \ - --change-section-lma .rodata-0x80000000 \ - --change-section-lma .data-0x80000000 \ - --change-section-lma .init-0x80000000 \ - --change-section-lma .bss-0x80000000 \ - --change-section-lma __param-0x80000000 \ - --change-section-lma __ksymtab-0x80000000 \ - --change-section-lma __ksymtab_gpl-0x80000000 \ - --change-section-lma __kcrctab-0x80000000 \ - --change-section-lma __kcrctab_gpl-0x80000000 \ - --change-section-lma __ksymtab_strings-0x80000000 \ - --set-start 0xa0000000 -$(obj)/vmlinux.elf: vmlinux FORCE - $(call if_changed,objcopy) - -quiet_cmd_sfdwarf = SFDWARF $@ - cmd_sfdwarf = sfdwarf $< TO $@ GNUAVR IW $(SFDWARF_FLAGS) > $(obj)/sfdwarf.log - -$(obj)/vmlinux.cso: $(obj)/vmlinux.elf FORCE - $(call if_changed,sfdwarf) - -install: $(BOOTIMAGE) - sh $(srctree)/install-kernel.sh $< - -# Generated files to be removed upon make clean -clean-files := vmlinux.elf vmlinux.bin vmlinux.gz uImage uImage.srec diff --git a/arch/avr32/boot/u-boot/Makefile b/arch/avr32/boot/u-boot/Makefile deleted file mode 100644 index 125ddc96c275..000000000000 --- a/arch/avr32/boot/u-boot/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -extra-y := head.o - -obj-y := empty.o diff --git a/arch/avr32/boot/u-boot/empty.S b/arch/avr32/boot/u-boot/empty.S deleted file mode 100644 index 8ac91a5f12f0..000000000000 --- a/arch/avr32/boot/u-boot/empty.S +++ /dev/null @@ -1 +0,0 @@ -/* Empty file */ diff --git a/arch/avr32/boot/u-boot/head.S b/arch/avr32/boot/u-boot/head.S deleted file mode 100644 index 2ffc298f061b..000000000000 --- a/arch/avr32/boot/u-boot/head.S +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Startup code for use with the u-boot bootloader. - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <asm/setup.h> -#include <asm/thread_info.h> -#include <asm/sysreg.h> - - /* - * The kernel is loaded where we want it to be and all caches - * have just been flushed. We get two parameters from u-boot: - * - * r12 contains a magic number (ATAG_MAGIC) - * r11 points to a tag table providing information about - * the system. - */ - .section .init.text,"ax" - .global _start -_start: - /* Initialize .bss */ - lddpc r2, bss_start_addr - lddpc r3, end_addr - mov r0, 0 - mov r1, 0 -1: st.d r2++, r0 - cp r2, r3 - brlo 1b - - /* Initialize status register */ - lddpc r0, init_sr - mtsr SYSREG_SR, r0 - - /* Set initial stack pointer */ - lddpc sp, stack_addr - sub sp, -THREAD_SIZE - -#ifdef CONFIG_FRAME_POINTER - /* Mark last stack frame */ - mov lr, 0 - mov r7, 0 -#endif - - /* Check if the boot loader actually provided a tag table */ - lddpc r0, magic_number - cp.w r12, r0 - brne no_tag_table - - /* - * Save the tag table address for later use. This must be done - * _after_ .bss has been initialized... - */ - lddpc r0, tag_table_addr - st.w r0[0], r11 - - /* Jump to loader-independent setup code */ - rjmp kernel_entry - - .align 2 -magic_number: - .long ATAG_MAGIC -tag_table_addr: - .long bootloader_tags -bss_start_addr: - .long __bss_start -end_addr: - .long _end -init_sr: - .long 0x007f0000 /* Supervisor mode, everything masked */ -stack_addr: - .long init_thread_union -panic_addr: - .long panic - -no_tag_table: - sub r12, pc, (. - 2f) - /* branch to panic() which can be far away with that construct */ - lddpc pc, panic_addr -2: .asciz "Boot loader didn't provide correct magic number\n" diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig deleted file mode 100644 index ce0030020c25..000000000000 --- a/arch/avr32/configs/atngw100_defconfig +++ /dev/null @@ -1,142 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKI=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT is not set -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig deleted file mode 100644 index 01ff632249c0..000000000000 --- a/arch/avr32/configs/atngw100_evklcd100_defconfig +++ /dev/null @@ -1,158 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKI=y -CONFIG_BOARD_ATNGW100_EVKLCD10X=y -CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=m -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_WM97XX=m -# CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_HRTIMER=y -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_ATMEL_AC97C=m -# CONFIG_SND_SPI is not set -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig deleted file mode 100644 index c4021dfd5347..000000000000 --- a/arch/avr32/configs/atngw100_evklcd101_defconfig +++ /dev/null @@ -1,157 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKI=y -CONFIG_BOARD_ATNGW100_EVKLCD10X=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=m -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_WM97XX=m -# CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_HRTIMER=y -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_ATMEL_AC97C=m -# CONFIG_SND_SPI is not set -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atngw100_mrmt_defconfig b/arch/avr32/configs/atngw100_mrmt_defconfig deleted file mode 100644 index ffcc28df9dbc..000000000000 --- a/arch/avr32/configs/atngw100_mrmt_defconfig +++ /dev/null @@ -1,136 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_SLUB_DEBUG is not set -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_OWNERSHIP_TRACE is not set -# CONFIG_SUSPEND is not set -CONFIG_PM=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_SYN_COOKIES=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_IPV6 is not set -CONFIG_BT=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_HIDP=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_NETDEVICES=y -CONFIG_MACB=y -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=y -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=m -# CONFIG_SERIO is not set -CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_GPIO=y -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=y -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -CONFIG_SND_ATMEL_AC97C=m -# CONFIG_SND_SPI is not set -CONFIG_USB_GADGET=m -CONFIG_USB_GADGET_DEBUG_FILES=y -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_MMC=y -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_AT32AP700X=m -CONFIG_DMADEVICES=y -CONFIG_UIO=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=y -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_DNOTIFY is not set -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_NTFS_FS=m -CONFIG_NTFS_RW=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_WEAK_PW_HASH=y -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_850=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_UTF8=y -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y -CONFIG_CRC_CCITT=y diff --git a/arch/avr32/configs/atngw100mkii_defconfig b/arch/avr32/configs/atngw100mkii_defconfig deleted file mode 100644 index 04962641c936..000000000000 --- a/arch/avr32/configs/atngw100mkii_defconfig +++ /dev/null @@ -1,144 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKII=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_INTELEXT=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ATMEL=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT is not set -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atngw100mkii_evklcd100_defconfig b/arch/avr32/configs/atngw100mkii_evklcd100_defconfig deleted file mode 100644 index 89c2cda573da..000000000000 --- a/arch/avr32/configs/atngw100mkii_evklcd100_defconfig +++ /dev/null @@ -1,161 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKII=y -CONFIG_BOARD_ATNGW100_MKII_LCD=y -CONFIG_BOARD_ATNGW100_EVKLCD10X=y -CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_INTELEXT=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ATMEL=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=m -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_WM97XX=m -# CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_HRTIMER=y -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_ATMEL_AC97C=m -# CONFIG_SND_SPI is not set -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atngw100mkii_evklcd101_defconfig b/arch/avr32/configs/atngw100mkii_evklcd101_defconfig deleted file mode 100644 index 1b4d4a87a356..000000000000 --- a/arch/avr32/configs/atngw100mkii_evklcd101_defconfig +++ /dev/null @@ -1,160 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATNGW100_MKII=y -CONFIG_BOARD_ATNGW100_MKII_LCD=y -CONFIG_BOARD_ATNGW100_EVKLCD10X=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_INTELEXT=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ATMEL=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPP_ASYNC=m -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=m -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_WM97XX=m -# CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_HRTIMER=y -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_ATMEL_AC97C=m -# CONFIG_SND_SPI is not set -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_VBUS_DRAW=350 -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig deleted file mode 100644 index 9b8b52e54b79..000000000000 --- a/arch/avr32/configs/atstk1002_defconfig +++ /dev/null @@ -1,157 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -# CONFIG_INET_LRO is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_TUNNEL=m -CONFIG_BRIDGE=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_ATMEL_SSC=m -# CONFIG_SCSI_PROC_FS is not set -CONFIG_BLK_DEV_SD=m -CONFIG_BLK_DEV_SR=m -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=m -# CONFIG_SATA_PMP is not set -CONFIG_PATA_AT32=m -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_ASYNC=m -CONFIG_INPUT=m -CONFIG_INPUT_EVDEV=m -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=m -# CONFIG_MOUSE_PS2 is not set -CONFIG_MOUSE_GPIO=m -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_LTV350QV=y -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -CONFIG_SND_AT73C213=m -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_PWM=m -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=m -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig deleted file mode 100644 index ccce1a0b7917..000000000000 --- a/arch/avr32/configs/atstk1003_defconfig +++ /dev/null @@ -1,137 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATSTK1003=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# CONFIG_IPV6 is not set -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_ATMEL_SSC=m -# CONFIG_SCSI_PROC_FS is not set -CONFIG_BLK_DEV_SD=m -CONFIG_BLK_DEV_SR=m -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=m -# CONFIG_SATA_PMP is not set -CONFIG_PATA_AT32=m -CONFIG_NETDEVICES=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_ASYNC=m -CONFIG_INPUT=m -CONFIG_INPUT_EVDEV=m -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=m -# CONFIG_MOUSE_PS2 is not set -CONFIG_MOUSE_GPIO=m -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_AT73C213=m -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_PWM=m -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=m -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -# CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig deleted file mode 100644 index e64288fc794d..000000000000 --- a/arch/avr32/configs/atstk1004_defconfig +++ /dev/null @@ -1,135 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATSTK1004=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# CONFIG_IPV6 is not set -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_ATMEL_SSC=m -# CONFIG_SCSI_PROC_FS is not set -CONFIG_BLK_DEV_SD=m -CONFIG_BLK_DEV_SR=m -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=m -# CONFIG_SATA_PMP is not set -CONFIG_PATA_AT32=m -CONFIG_NETDEVICES=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_ASYNC=m -CONFIG_INPUT=m -CONFIG_INPUT_EVDEV=m -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=m -# CONFIG_MOUSE_PS2 is not set -CONFIG_MOUSE_GPIO=m -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_LTV350QV=y -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_PWM=m -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=m -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -# CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig deleted file mode 100644 index 7d669f79ff74..000000000000 --- a/arch/avr32/configs/atstk1006_defconfig +++ /dev/null @@ -1,160 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_ATSTK1006=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -# CONFIG_INET_LRO is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_TUNNEL=m -CONFIG_BRIDGE=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ATMEL=y -CONFIG_MTD_UBI=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_ATMEL_SSC=m -# CONFIG_SCSI_PROC_FS is not set -CONFIG_BLK_DEV_SD=m -CONFIG_BLK_DEV_SR=m -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=m -# CONFIG_SATA_PMP is not set -CONFIG_PATA_AT32=m -CONFIG_NETDEVICES=y -CONFIG_TUN=m -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_ASYNC=m -CONFIG_INPUT=m -CONFIG_INPUT_EVDEV=m -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=m -# CONFIG_MOUSE_PS2 is not set -CONFIG_MOUSE_GPIO=m -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_LTV350QV=y -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -CONFIG_SND_AT73C213=m -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_TEST=m -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_PWM=m -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=m -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_EXT4_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_UBIFS_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_CIFS=m -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DETECT_HUNG_TASK=y diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig deleted file mode 100644 index 560c52f87d45..000000000000 --- a/arch/avr32/configs/favr-32_defconfig +++ /dev/null @@ -1,143 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_FAVR_32=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_NET_IPIP=m -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -# CONFIG_INET_LRO is not set -CONFIG_IPV6=y -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_IPV6_SIT=m -CONFIG_IPV6_TUNNEL=m -CONFIG_BRIDGE=m -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_ATMEL_SSC=m -CONFIG_NETDEVICES=y -CONFIG_MACB=y -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_ASYNC=m -CONFIG_INPUT_MOUSEDEV=m -CONFIG_INPUT_EVDEV=m -# CONFIG_KEYBOARD_ATKBD is not set -CONFIG_KEYBOARD_GPIO=m -# CONFIG_MOUSE_PS2 is not set -CONFIG_MOUSE_GPIO=m -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=m -# CONFIG_SERIO is not set -# CONFIG_CONSOLE_TRANSLATIONS is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_PWM=m -CONFIG_SOUND=m -CONFIG_SOUND_PRIME=m -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_MMC=y -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_DMADEVICES=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_PROC_KCORE=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -# CONFIG_JFFS2_FS_WRITEBUFFER is not set -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_DEBUG_FS=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_CRYPTO_HW is not set diff --git a/arch/avr32/configs/hammerhead_defconfig b/arch/avr32/configs/hammerhead_defconfig deleted file mode 100644 index d57fadb9e6b6..000000000000 --- a/arch/avr32/configs/hammerhead_defconfig +++ /dev/null @@ -1,145 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -CONFIG_OPROFILE=m -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_HAMMERHEAD=y -CONFIG_BOARD_HAMMERHEAD_USB=y -CONFIG_BOARD_HAMMERHEAD_LCD=y -CONFIG_BOARD_HAMMERHEAD_SND=y -# CONFIG_BOARD_HAMMERHEAD_FPGA is not set -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -# CONFIG_IPV6 is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set -CONFIG_NETFILTER_XTABLES=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_BLK_DEV_RAM=m -CONFIG_ATMEL_TCLIB=y -CONFIG_SCSI=m -CONFIG_BLK_DEV_SD=m -CONFIG_NETDEVICES=y -CONFIG_MACB=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_EVDEV=m -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_GPIO=m -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=m -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_SEQUENCER=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_HID_A4TECH=m -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_EZKEY=m -CONFIG_HID_GYRATION=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_PANTHERLORD=m -CONFIG_HID_PETALYNX=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SUNPLUS=m -CONFIG_USB=m -CONFIG_USB_MON=m -CONFIG_USB_ISP116X_HCD=m -CONFIG_USB_STORAGE=m -CONFIG_USB_GADGET=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_G_SERIAL=m -CONFIG_MMC=m -CONFIG_MMC_ATMELMCI=m -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_AT32AP700X=y -CONFIG_EXT2_FS=m -# CONFIG_DNOTIFY is not set -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_UTF8=m -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRC_CCITT=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC7=m diff --git a/arch/avr32/configs/merisc_defconfig b/arch/avr32/configs/merisc_defconfig deleted file mode 100644 index e6a9cb7d574e..000000000000 --- a/arch/avr32/configs/merisc_defconfig +++ /dev/null @@ -1,115 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_MERISC=y -CONFIG_AP700X_32_BIT_SMC=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -# CONFIG_IPV6 is not set -CONFIG_CAN=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_JEDECPROBE=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_ABSENT=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_BLOCK2MTD=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_ATMEL_SSC=y -CONFIG_SCSI=y -CONFIG_BLK_DEV_SD=y -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_NETDEVICES=y -CONFIG_MACB=y -# CONFIG_INPUT_MOUSEDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=y -CONFIG_INPUT_MISC=y -CONFIG_INPUT_UINPUT=y -# CONFIG_SERIO is not set -# CONFIG_CONSOLE_TRANSLATIONS is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_GPIO=y -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_SPI_SPIDEV=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_LOGO=y -CONFIG_MMC=y -CONFIG_MMC_ATMELMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_PWM=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_HCTOSYS is not set -CONFIG_RTC_DRV_PCF8563=y -CONFIG_DMADEVICES=y -CONFIG_UIO=y -CONFIG_PWM=y -CONFIG_PWM_ATMEL=m -CONFIG_EXT2_FS=y -# CONFIG_DNOTIFY is not set -CONFIG_FUSE_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_WBUF_VERIFY=y -CONFIG_CRAMFS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_850=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_UTF8=y -# CONFIG_CRYPTO_ANSI_CPRNG is not set -# CONFIG_CRYPTO_HW is not set diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig deleted file mode 100644 index 49c7e890af7b..000000000000 --- a/arch/avr32/configs/mimc200_defconfig +++ /dev/null @@ -1,114 +0,0 @@ -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_BASE_FULL is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_PROFILING=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_BOARD_MIMC200=y -# CONFIG_OWNERSHIP_TRACE is not set -CONFIG_NMI_DEBUGGING=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_AVR32_AT32AP_CPUFREQ=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM_USER=y -CONFIG_NET_KEY=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -CONFIG_INET_IPCOMP=y -# CONFIG_INET_LRO is not set -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_CFI=y -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_DATAFLASH=y -CONFIG_ATMEL_TCLIB=y -CONFIG_EEPROM_AT24=y -CONFIG_EEPROM_AT25=y -CONFIG_NETDEVICES=y -CONFIG_MACB=y -# CONFIG_INPUT is not set -# CONFIG_SERIO is not set -# CONFIG_VT is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_DEVKMEM is not set -CONFIG_SERIAL_ATMEL=y -CONFIG_SERIAL_ATMEL_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_GPIO=y -CONFIG_SPI=y -CONFIG_SPI_ATMEL=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_AT32AP700X_WDT=y -CONFIG_FB=y -CONFIG_FB_ATMEL=y -# CONFIG_USB_SUPPORT is not set -CONFIG_MMC=y -CONFIG_MMC_TEST=y -CONFIG_MMC_ATMELMCI=y -CONFIG_MMC_SPI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_DS1390=y -CONFIG_DMADEVICES=y -CONFIG_EXT2_FS=y -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_DNOTIFY is not set -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=y -CONFIG_JFFS2_FS=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_850=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_UTF8=y -CONFIG_FRAME_POINTER=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_PCBC=y -CONFIG_CRYPTO_ARC4=y -CONFIG_CRC_CCITT=y diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild deleted file mode 100644 index ff7d7393b25c..000000000000 --- a/arch/avr32/include/asm/Kbuild +++ /dev/null @@ -1,24 +0,0 @@ - -generic-y += clkdev.h -generic-y += delay.h -generic-y += device.h -generic-y += div64.h -generic-y += emergency-restart.h -generic-y += exec.h -generic-y += extable.h -generic-y += futex.h -generic-y += irq_regs.h -generic-y += irq_work.h -generic-y += local.h -generic-y += local64.h -generic-y += mcs_spinlock.h -generic-y += mm-arch-hooks.h -generic-y += param.h -generic-y += percpu.h -generic-y += preempt.h -generic-y += sections.h -generic-y += topology.h -generic-y += trace_clock.h -generic-y += vga.h -generic-y += word-at-a-time.h -generic-y += xor.h diff --git a/arch/avr32/include/asm/addrspace.h b/arch/avr32/include/asm/addrspace.h deleted file mode 100644 index 5a47a7979648..000000000000 --- a/arch/avr32/include/asm/addrspace.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Definitions for the address spaces of the AVR32 CPUs. Heavily based on - * include/asm-sh/addrspace.h - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_ADDRSPACE_H -#define __ASM_AVR32_ADDRSPACE_H - -#ifdef CONFIG_MMU - -/* Memory segments when segmentation is enabled */ -#define P0SEG 0x00000000 -#define P1SEG 0x80000000 -#define P2SEG 0xa0000000 -#define P3SEG 0xc0000000 -#define P4SEG 0xe0000000 - -/* Returns the privileged segment base of a given address */ -#define PXSEG(a) (((unsigned long)(a)) & 0xe0000000) - -/* Returns the physical address of a PnSEG (n=1,2) address */ -#define PHYSADDR(a) (((unsigned long)(a)) & 0x1fffffff) - -/* - * Map an address to a certain privileged segment - */ -#define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \ - | P1SEG)) -#define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \ - | P2SEG)) -#define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \ - | P3SEG)) -#define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \ - | P4SEG)) - -#endif /* CONFIG_MMU */ - -#endif /* __ASM_AVR32_ADDRSPACE_H */ diff --git a/arch/avr32/include/asm/asm-offsets.h b/arch/avr32/include/asm/asm-offsets.h deleted file mode 100644 index d370ee36a182..000000000000 --- a/arch/avr32/include/asm/asm-offsets.h +++ /dev/null @@ -1 +0,0 @@ -#include <generated/asm-offsets.h> diff --git a/arch/avr32/include/asm/asm.h b/arch/avr32/include/asm/asm.h deleted file mode 100644 index a2c64f404b98..000000000000 --- a/arch/avr32/include/asm/asm.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_ASM_H__ -#define __ASM_AVR32_ASM_H__ - -#include <asm/sysreg.h> -#include <asm/asm-offsets.h> -#include <asm/thread_info.h> - -#define mask_interrupts ssrf SYSREG_GM_OFFSET -#define mask_exceptions ssrf SYSREG_EM_OFFSET -#define unmask_interrupts csrf SYSREG_GM_OFFSET -#define unmask_exceptions csrf SYSREG_EM_OFFSET - -#ifdef CONFIG_FRAME_POINTER - .macro save_fp - st.w --sp, r7 - .endm - .macro restore_fp - ld.w r7, sp++ - .endm - .macro zero_fp - mov r7, 0 - .endm -#else - .macro save_fp - .endm - .macro restore_fp - .endm - .macro zero_fp - .endm -#endif - .macro get_thread_info reg - mov \reg, sp - andl \reg, ~(THREAD_SIZE - 1) & 0xffff - .endm - - /* Save and restore registers */ - .macro save_min sr, tmp=lr - pushm lr - mfsr \tmp, \sr - zero_fp - st.w --sp, \tmp - .endm - - .macro restore_min sr, tmp=lr - ld.w \tmp, sp++ - mtsr \sr, \tmp - popm lr - .endm - - .macro save_half sr, tmp=lr - save_fp - pushm r8-r9,r10,r11,r12,lr - zero_fp - mfsr \tmp, \sr - st.w --sp, \tmp - .endm - - .macro restore_half sr, tmp=lr - ld.w \tmp, sp++ - mtsr \sr, \tmp - popm r8-r9,r10,r11,r12,lr - restore_fp - .endm - - .macro save_full_user sr, tmp=lr - stmts --sp, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr - st.w --sp, lr - zero_fp - mfsr \tmp, \sr - st.w --sp, \tmp - .endm - - .macro restore_full_user sr, tmp=lr - ld.w \tmp, sp++ - mtsr \sr, \tmp - ld.w lr, sp++ - ldmts sp++, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr - .endm - - /* uaccess macros */ - .macro branch_if_kernel scratch, label - get_thread_info \scratch - ld.w \scratch, \scratch[TI_flags] - bld \scratch, TIF_USERSPACE - brcc \label - .endm - - .macro ret_if_privileged scratch, addr, size, ret - sub \scratch, \size, 1 - add \scratch, \addr - retcs \ret - retmi \ret - .endm - -#endif /* __ASM_AVR32_ASM_H__ */ diff --git a/arch/avr32/include/asm/atomic.h b/arch/avr32/include/asm/atomic.h deleted file mode 100644 index 3d5ce38a6f0b..000000000000 --- a/arch/avr32/include/asm/atomic.h +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Atomic operations that C can't guarantee us. Useful for - * resource counting etc. - * - * But use these as seldom as possible since they are slower than - * regular operations. - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_ATOMIC_H -#define __ASM_AVR32_ATOMIC_H - -#include <linux/types.h> -#include <asm/cmpxchg.h> - -#define ATOMIC_INIT(i) { (i) } - -#define atomic_read(v) READ_ONCE((v)->counter) -#define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i)) - -#define ATOMIC_OP_RETURN(op, asm_op, asm_con) \ -static inline int __atomic_##op##_return(int i, atomic_t *v) \ -{ \ - int result; \ - \ - asm volatile( \ - "/* atomic_" #op "_return */\n" \ - "1: ssrf 5\n" \ - " ld.w %0, %2\n" \ - " " #asm_op " %0, %3\n" \ - " stcond %1, %0\n" \ - " brne 1b" \ - : "=&r" (result), "=o" (v->counter) \ - : "m" (v->counter), #asm_con (i) \ - : "cc"); \ - \ - return result; \ -} - -#define ATOMIC_FETCH_OP(op, asm_op, asm_con) \ -static inline int __atomic_fetch_##op(int i, atomic_t *v) \ -{ \ - int result, val; \ - \ - asm volatile( \ - "/* atomic_fetch_" #op " */\n" \ - "1: ssrf 5\n" \ - " ld.w %0, %3\n" \ - " mov %1, %0\n" \ - " " #asm_op " %1, %4\n" \ - " stcond %2, %1\n" \ - " brne 1b" \ - : "=&r" (result), "=&r" (val), "=o" (v->counter) \ - : "m" (v->counter), #asm_con (i) \ - : "cc"); \ - \ - return result; \ -} - -ATOMIC_OP_RETURN(sub, sub, rKs21) -ATOMIC_OP_RETURN(add, add, r) -ATOMIC_FETCH_OP (sub, sub, rKs21) -ATOMIC_FETCH_OP (add, add, r) - -#define ATOMIC_OPS(op, asm_op) \ -ATOMIC_OP_RETURN(op, asm_op, r) \ -static inline void atomic_##op(int i, atomic_t *v) \ -{ \ - (void)__atomic_##op##_return(i, v); \ -} \ -ATOMIC_FETCH_OP(op, asm_op, r) \ -static inline int atomic_fetch_##op(int i, atomic_t *v) \ -{ \ - return __atomic_fetch_##op(i, v); \ -} - -ATOMIC_OPS(and, and) -ATOMIC_OPS(or, or) -ATOMIC_OPS(xor, eor) - -#undef ATOMIC_OPS -#undef ATOMIC_FETCH_OP -#undef ATOMIC_OP_RETURN - -/* - * Probably found the reason why we want to use sub with the signed 21-bit - * limit, it uses one less register than the add instruction that can add up to - * 32-bit values. - * - * Both instructions are 32-bit, to use a 16-bit instruction the immediate is - * very small; 4 bit. - * - * sub 32-bit, type IV, takes a register and subtracts a 21-bit immediate. - * add 32-bit, type II, adds two register values together. - */ -#define IS_21BIT_CONST(i) \ - (__builtin_constant_p(i) && ((i) >= -1048575) && ((i) <= 1048576)) - -/* - * atomic_add_return - add integer to atomic variable - * @i: integer value to add - * @v: pointer of type atomic_t - * - * Atomically adds @i to @v. Returns the resulting value. - */ -static inline int atomic_add_return(int i, atomic_t *v) -{ - if (IS_21BIT_CONST(i)) - return __atomic_sub_return(-i, v); - - return __atomic_add_return(i, v); -} - -static inline int atomic_fetch_add(int i, atomic_t *v) -{ - if (IS_21BIT_CONST(i)) - return __atomic_fetch_sub(-i, v); - - return __atomic_fetch_add(i, v); -} - -/* - * atomic_sub_return - subtract the atomic variable - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically subtracts @i from @v. Returns the resulting value. - */ -static inline int atomic_sub_return(int i, atomic_t *v) -{ - if (IS_21BIT_CONST(i)) - return __atomic_sub_return(i, v); - - return __atomic_add_return(-i, v); -} - -static inline int atomic_fetch_sub(int i, atomic_t *v) -{ - if (IS_21BIT_CONST(i)) - return __atomic_fetch_sub(i, v); - - return __atomic_fetch_add(-i, v); -} - -/* - * __atomic_add_unless - add unless the number is a given value - * @v: pointer of type atomic_t - * @a: the amount to add to v... - * @u: ...unless v is equal to u. - * - * Atomically adds @a to @v, so long as it was not @u. - * Returns the old value of @v. -*/ -static inline int __atomic_add_unless(atomic_t *v, int a, int u) -{ - int tmp, old = atomic_read(v); - - if (IS_21BIT_CONST(a)) { - asm volatile( - "/* __atomic_sub_unless */\n" - "1: ssrf 5\n" - " ld.w %0, %2\n" - " cp.w %0, %4\n" - " breq 1f\n" - " sub %0, %3\n" - " stcond %1, %0\n" - " brne 1b\n" - "1:" - : "=&r"(tmp), "=o"(v->counter) - : "m"(v->counter), "rKs21"(-a), "rKs21"(u) - : "cc", "memory"); - } else { - asm volatile( - "/* __atomic_add_unless */\n" - "1: ssrf 5\n" - " ld.w %0, %2\n" - " cp.w %0, %4\n" - " breq 1f\n" - " add %0, %3\n" - " stcond %1, %0\n" - " brne 1b\n" - "1:" - : "=&r"(tmp), "=o"(v->counter) - : "m"(v->counter), "r"(a), "ir"(u) - : "cc", "memory"); - } - - return old; -} - -#undef IS_21BIT_CONST - -/* - * atomic_sub_if_positive - conditionally subtract integer from atomic variable - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically test @v and subtract @i if @v is greater or equal than @i. - * The function returns the old value of @v minus @i. - */ -static inline int atomic_sub_if_positive(int i, atomic_t *v) -{ - int result; - - asm volatile( - "/* atomic_sub_if_positive */\n" - "1: ssrf 5\n" - " ld.w %0, %2\n" - " sub %0, %3\n" - " brlt 1f\n" - " stcond %1, %0\n" - " brne 1b\n" - "1:" - : "=&r"(result), "=o"(v->counter) - : "m"(v->counter), "ir"(i) - : "cc", "memory"); - - return result; -} - -#define atomic_xchg(v, new) (xchg(&((v)->counter), new)) -#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) - -#define atomic_sub(i, v) (void)atomic_sub_return(i, v) -#define atomic_add(i, v) (void)atomic_add_return(i, v) -#define atomic_dec(v) atomic_sub(1, (v)) -#define atomic_inc(v) atomic_add(1, (v)) - -#define atomic_dec_return(v) atomic_sub_return(1, v) -#define atomic_inc_return(v) atomic_add_return(1, v) - -#define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0) -#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) -#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) -#define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0) - -#define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v) - -#endif /* __ASM_AVR32_ATOMIC_H */ diff --git a/arch/avr32/include/asm/barrier.h b/arch/avr32/include/asm/barrier.h deleted file mode 100644 index 715100790fd0..000000000000 --- a/arch/avr32/include/asm/barrier.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_BARRIER_H -#define __ASM_AVR32_BARRIER_H - -/* - * Weirdest thing ever.. no full barrier, but it has a write barrier! - */ -#define wmb() asm volatile("sync 0" : : : "memory") - -#ifdef CONFIG_SMP -# error "The AVR32 port does not support SMP" -#endif - -#include <asm-generic/barrier.h> - -#endif /* __ASM_AVR32_BARRIER_H */ diff --git a/arch/avr32/include/asm/bitops.h b/arch/avr32/include/asm/bitops.h deleted file mode 100644 index 910d5374ce59..000000000000 --- a/arch/avr32/include/asm/bitops.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_BITOPS_H -#define __ASM_AVR32_BITOPS_H - -#ifndef _LINUX_BITOPS_H -#error only <linux/bitops.h> can be included directly -#endif - -#include <asm/byteorder.h> -#include <asm/barrier.h> - -/* - * set_bit - Atomically set a bit in memory - * @nr: the bit to set - * @addr: the address to start counting from - * - * This function is atomic and may not be reordered. See __set_bit() - * if you do not require the atomic guarantees. - * - * Note that @nr may be almost arbitrarily large; this function is not - * restricted to acting on a single-word quantity. - */ -static inline void set_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long tmp; - - if (__builtin_constant_p(nr)) { - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %2\n" - " sbr %0, %3\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p) - : "m"(*p), "i"(nr) - : "cc"); - } else { - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %2\n" - " or %0, %3\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p) - : "m"(*p), "r"(mask) - : "cc"); - } -} - -/* - * clear_bit - Clears a bit in memory - * @nr: Bit to clear - * @addr: Address to start counting from - * - * clear_bit() is atomic and may not be reordered. However, it does - * not contain a memory barrier, so if it is used for locking purposes, - * you should call smp_mb__before_atomic() and/or smp_mb__after_atomic() - * in order to ensure changes are visible on other processors. - */ -static inline void clear_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long tmp; - - if (__builtin_constant_p(nr)) { - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %2\n" - " cbr %0, %3\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p) - : "m"(*p), "i"(nr) - : "cc"); - } else { - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %2\n" - " andn %0, %3\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p) - : "m"(*p), "r"(mask) - : "cc"); - } -} - -/* - * change_bit - Toggle a bit in memory - * @nr: Bit to change - * @addr: Address to start counting from - * - * change_bit() is atomic and may not be reordered. - * Note that @nr may be almost arbitrarily large; this function is not - * restricted to acting on a single-word quantity. - */ -static inline void change_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - unsigned long tmp; - - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %2\n" - " eor %0, %3\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p) - : "m"(*p), "r"(mask) - : "cc"); -} - -/* - * test_and_set_bit - Set a bit and return its old value - * @nr: Bit to set - * @addr: Address to count from - * - * This operation is atomic and cannot be reordered. - * It also implies a memory barrier. - */ -static inline int test_and_set_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - unsigned long tmp, old; - - if (__builtin_constant_p(nr)) { - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %3\n" - " mov %2, %0\n" - " sbr %0, %4\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p), "=&r"(old) - : "m"(*p), "i"(nr) - : "memory", "cc"); - } else { - asm volatile( - "1: ssrf 5\n" - " ld.w %2, %3\n" - " or %0, %2, %4\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p), "=&r"(old) - : "m"(*p), "r"(mask) - : "memory", "cc"); - } - - return (old & mask) != 0; -} - -/* - * test_and_clear_bit - Clear a bit and return its old value - * @nr: Bit to clear - * @addr: Address to count from - * - * This operation is atomic and cannot be reordered. - * It also implies a memory barrier. - */ -static inline int test_and_clear_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - unsigned long tmp, old; - - if (__builtin_constant_p(nr)) { - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %3\n" - " mov %2, %0\n" - " cbr %0, %4\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p), "=&r"(old) - : "m"(*p), "i"(nr) - : "memory", "cc"); - } else { - asm volatile( - "1: ssrf 5\n" - " ld.w %0, %3\n" - " mov %2, %0\n" - " andn %0, %4\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p), "=&r"(old) - : "m"(*p), "r"(mask) - : "memory", "cc"); - } - - return (old & mask) != 0; -} - -/* - * test_and_change_bit - Change a bit and return its old value - * @nr: Bit to change - * @addr: Address to count from - * - * This operation is atomic and cannot be reordered. - * It also implies a memory barrier. - */ -static inline int test_and_change_bit(int nr, volatile void * addr) -{ - unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG; - unsigned long mask = 1UL << (nr % BITS_PER_LONG); - unsigned long tmp, old; - - asm volatile( - "1: ssrf 5\n" - " ld.w %2, %3\n" - " eor %0, %2, %4\n" - " stcond %1, %0\n" - " brne 1b" - : "=&r"(tmp), "=o"(*p), "=&r"(old) - : "m"(*p), "r"(mask) - : "memory", "cc"); - - return (old & mask) != 0; -} - -#include <asm-generic/bitops/non-atomic.h> - -/* Find First bit Set */ -static inline unsigned long __ffs(unsigned long word) -{ - unsigned long result; - - asm("brev %1\n\t" - "clz %0,%1" - : "=r"(result), "=&r"(word) - : "1"(word)); - return result; -} - -/* Find First Zero */ -static inline unsigned long ffz(unsigned long word) -{ - return __ffs(~word); -} - -/* Find Last bit Set */ -static inline int fls(unsigned long word) -{ - unsigned long result; - - asm("clz %0,%1" : "=r"(result) : "r"(word)); - return 32 - result; -} - -static inline int __fls(unsigned long word) -{ - return fls(word) - 1; -} - -unsigned long find_first_zero_bit(const unsigned long *addr, - unsigned long size); -#define find_first_zero_bit find_first_zero_bit - -unsigned long find_next_zero_bit(const unsigned long *addr, - unsigned long size, - unsigned long offset); -#define find_next_zero_bit find_next_zero_bit - -unsigned long find_first_bit(const unsigned long *addr, - unsigned long size); -#define find_first_bit find_first_bit - -unsigned long find_next_bit(const unsigned long *addr, - unsigned long size, - unsigned long offset); -#define find_next_bit find_next_bit - -/* - * ffs: find first bit set. This is defined the same way as - * the libc and compiler builtin ffs routines, therefore - * differs in spirit from the above ffz (man ffs). - * - * The difference is that bit numbering starts at 1, and if no bit is set, - * the function returns 0. - */ -static inline int ffs(unsigned long word) -{ - if(word == 0) - return 0; - return __ffs(word) + 1; -} - -#include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/sched.h> -#include <asm-generic/bitops/hweight.h> -#include <asm-generic/bitops/lock.h> - -extern unsigned long find_next_zero_bit_le(const void *addr, - unsigned long size, unsigned long offset); -#define find_next_zero_bit_le find_next_zero_bit_le - -extern unsigned long find_next_bit_le(const void *addr, - unsigned long size, unsigned long offset); -#define find_next_bit_le find_next_bit_le - -#include <asm-generic/bitops/le.h> -#include <asm-generic/bitops/ext2-atomic.h> - -#endif /* __ASM_AVR32_BITOPS_H */ diff --git a/arch/avr32/include/asm/bug.h b/arch/avr32/include/asm/bug.h deleted file mode 100644 index 85a92d099adb..000000000000 --- a/arch/avr32/include/asm/bug.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_BUG_H -#define __ASM_AVR32_BUG_H - -#ifdef CONFIG_BUG - -/* - * According to our Chief Architect, this compact opcode is very - * unlikely to ever be implemented. - */ -#define AVR32_BUG_OPCODE 0x5df0 - -#ifdef CONFIG_DEBUG_BUGVERBOSE - -#define _BUG_OR_WARN(flags) \ - asm volatile( \ - "1: .hword %0\n" \ - " .section __bug_table,\"a\",@progbits\n" \ - "2: .long 1b\n" \ - " .long %1\n" \ - " .short %2\n" \ - " .short %3\n" \ - " .org 2b + %4\n" \ - " .previous" \ - : \ - : "i"(AVR32_BUG_OPCODE), "i"(__FILE__), \ - "i"(__LINE__), "i"(flags), \ - "i"(sizeof(struct bug_entry))) - -#else - -#define _BUG_OR_WARN(flags) \ - asm volatile( \ - "1: .hword %0\n" \ - " .section __bug_table,\"a\",@progbits\n" \ - "2: .long 1b\n" \ - " .short %1\n" \ - " .org 2b + %2\n" \ - " .previous" \ - : \ - : "i"(AVR32_BUG_OPCODE), "i"(flags), \ - "i"(sizeof(struct bug_entry))) - -#endif /* CONFIG_DEBUG_BUGVERBOSE */ - -#define BUG() \ - do { \ - _BUG_OR_WARN(0); \ - unreachable(); \ - } while (0) - -#define WARN_ON(condition) \ - ({ \ - int __ret_warn_on = !!(condition); \ - if (unlikely(__ret_warn_on)) \ - _BUG_OR_WARN(BUGFLAG_WARNING); \ - unlikely(__ret_warn_on); \ - }) - -#define HAVE_ARCH_BUG -#define HAVE_ARCH_WARN_ON - -#endif /* CONFIG_BUG */ - -#include <asm-generic/bug.h> - -struct pt_regs; -void die(const char *str, struct pt_regs *regs, long err); -void _exception(long signr, struct pt_regs *regs, int code, - unsigned long addr); - -#endif /* __ASM_AVR32_BUG_H */ diff --git a/arch/avr32/include/asm/bugs.h b/arch/avr32/include/asm/bugs.h deleted file mode 100644 index 278661bbd1b0..000000000000 --- a/arch/avr32/include/asm/bugs.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * This is included by init/main.c to check for architecture-dependent bugs. - * - * Needs: - * void check_bugs(void); - */ -#ifndef __ASM_AVR32_BUGS_H -#define __ASM_AVR32_BUGS_H - -static void __init check_bugs(void) -{ - boot_cpu_data.loops_per_jiffy = loops_per_jiffy; -} - -#endif /* __ASM_AVR32_BUGS_H */ diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h deleted file mode 100644 index c3a58a189a91..000000000000 --- a/arch/avr32/include/asm/cache.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __ASM_AVR32_CACHE_H -#define __ASM_AVR32_CACHE_H - -#define L1_CACHE_SHIFT 5 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) - -/* - * Memory returned by kmalloc() may be used for DMA, so we must make - * sure that all such allocations are cache aligned. Otherwise, - * unrelated code may cause parts of the buffer to be read into the - * cache before the transfer is done, causing old data to be seen by - * the CPU. - */ -#define ARCH_DMA_MINALIGN L1_CACHE_BYTES - -#ifndef __ASSEMBLER__ -struct cache_info { - unsigned int ways; - unsigned int sets; - unsigned int linesz; -}; -#endif /* __ASSEMBLER */ - -/* Cache operation constants */ -#define ICACHE_FLUSH 0x00 -#define ICACHE_INVALIDATE 0x01 -#define ICACHE_LOCK 0x02 -#define ICACHE_UNLOCK 0x03 -#define ICACHE_PREFETCH 0x04 - -#define DCACHE_FLUSH 0x08 -#define DCACHE_LOCK 0x09 -#define DCACHE_UNLOCK 0x0a -#define DCACHE_INVALIDATE 0x0b -#define DCACHE_CLEAN 0x0c -#define DCACHE_CLEAN_INVAL 0x0d - -#endif /* __ASM_AVR32_CACHE_H */ diff --git a/arch/avr32/include/asm/cacheflush.h b/arch/avr32/include/asm/cacheflush.h deleted file mode 100644 index 96e53820bbbd..000000000000 --- a/arch/avr32/include/asm/cacheflush.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_CACHEFLUSH_H -#define __ASM_AVR32_CACHEFLUSH_H - -/* Keep includes the same across arches. */ -#include <linux/mm.h> - -#define CACHE_OP_ICACHE_INVALIDATE 0x01 -#define CACHE_OP_DCACHE_INVALIDATE 0x0b -#define CACHE_OP_DCACHE_CLEAN 0x0c -#define CACHE_OP_DCACHE_CLEAN_INVAL 0x0d - -/* - * Invalidate any cacheline containing virtual address vaddr without - * writing anything back to memory. - * - * Note that this function may corrupt unrelated data structures when - * applied on buffers that are not cacheline aligned in both ends. - */ -static inline void invalidate_dcache_line(void *vaddr) -{ - asm volatile("cache %0[0], %1" - : - : "r"(vaddr), "n"(CACHE_OP_DCACHE_INVALIDATE) - : "memory"); -} - -/* - * Make sure any cacheline containing virtual address vaddr is written - * to memory. - */ -static inline void clean_dcache_line(void *vaddr) -{ - asm volatile("cache %0[0], %1" - : - : "r"(vaddr), "n"(CACHE_OP_DCACHE_CLEAN) - : "memory"); -} - -/* - * Make sure any cacheline containing virtual address vaddr is written - * to memory and then invalidate it. - */ -static inline void flush_dcache_line(void *vaddr) -{ - asm volatile("cache %0[0], %1" - : - : "r"(vaddr), "n"(CACHE_OP_DCACHE_CLEAN_INVAL) - : "memory"); -} - -/* - * Invalidate any instruction cacheline containing virtual address - * vaddr. - */ -static inline void invalidate_icache_line(void *vaddr) -{ - asm volatile("cache %0[0], %1" - : - : "r"(vaddr), "n"(CACHE_OP_ICACHE_INVALIDATE) - : "memory"); -} - -/* - * Applies the above functions on all lines that are touched by the - * specified virtual address range. - */ -void invalidate_dcache_region(void *start, size_t len); -void clean_dcache_region(void *start, size_t len); -void flush_dcache_region(void *start, size_t len); -void invalidate_icache_region(void *start, size_t len); - -/* - * Make sure any pending writes are completed before continuing. - */ -#define flush_write_buffer() asm volatile("sync 0" : : : "memory") - -/* - * The following functions are called when a virtual mapping changes. - * We do not need to flush anything in this case. - */ -#define flush_cache_all() do { } while (0) -#define flush_cache_mm(mm) do { } while (0) -#define flush_cache_dup_mm(mm) do { } while (0) -#define flush_cache_range(vma, start, end) do { } while (0) -#define flush_cache_page(vma, vmaddr, pfn) do { } while (0) -#define flush_cache_vmap(start, end) do { } while (0) -#define flush_cache_vunmap(start, end) do { } while (0) - -/* - * I think we need to implement this one to be able to reliably - * execute pages from RAMDISK. However, if we implement the - * flush_dcache_*() functions, it might not be needed anymore. - * - * #define flush_icache_page(vma, page) do { } while (0) - */ -extern void flush_icache_page(struct vm_area_struct *vma, struct page *page); - -/* - * These are (I think) related to D-cache aliasing. We might need to - * do something here, but only for certain configurations. No such - * configurations exist at this time. - */ -#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0 -#define flush_dcache_page(page) do { } while (0) -#define flush_dcache_mmap_lock(page) do { } while (0) -#define flush_dcache_mmap_unlock(page) do { } while (0) - -/* - * These are for I/D cache coherency. In this case, we do need to - * flush with all configurations. - */ -extern void flush_icache_range(unsigned long start, unsigned long end); - -extern void copy_to_user_page(struct vm_area_struct *vma, struct page *page, - unsigned long vaddr, void *dst, const void *src, - unsigned long len); - -static inline void copy_from_user_page(struct vm_area_struct *vma, - struct page *page, unsigned long vaddr, void *dst, - const void *src, unsigned long len) -{ - memcpy(dst, src, len); -} - -#endif /* __ASM_AVR32_CACHEFLUSH_H */ diff --git a/arch/avr32/include/asm/checksum.h b/arch/avr32/include/asm/checksum.h deleted file mode 100644 index 4ab7d5bdaf53..000000000000 --- a/arch/avr32/include/asm/checksum.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_CHECKSUM_H -#define __ASM_AVR32_CHECKSUM_H - -/* - * computes the checksum of a memory block at buff, length len, - * and adds in "sum" (32-bit) - * - * returns a 32-bit number suitable for feeding into itself - * or csum_tcpudp_magic - * - * this function must be called with even lengths, except - * for the last fragment, which may be odd - * - * it's best to have buff aligned on a 32-bit boundary - */ -__wsum csum_partial(const void *buff, int len, __wsum sum); - -/* - * the same as csum_partial, but copies from src while it - * checksums, and handles user-space pointer exceptions correctly, when needed. - * - * here even more important to align src and dst on a 32-bit (or even - * better 64-bit) boundary - */ -__wsum csum_partial_copy_generic(const void *src, void *dst, int len, - __wsum sum, int *src_err_ptr, - int *dst_err_ptr); - -/* - * Note: when you get a NULL pointer exception here this means someone - * passed in an incorrect kernel address to one of these functions. - * - * If you use these functions directly please don't forget the - * access_ok(). - */ -static inline -__wsum csum_partial_copy_nocheck(const void *src, void *dst, - int len, __wsum sum) -{ - return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL); -} - -static inline -__wsum csum_partial_copy_from_user(const void __user *src, void *dst, - int len, __wsum sum, int *err_ptr) -{ - return csum_partial_copy_generic((const void __force *)src, dst, len, - sum, err_ptr, NULL); -} - -/* - * This is a version of ip_compute_csum() optimized for IP headers, - * which always checksum on 4 octet boundaries. - */ -static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) -{ - unsigned int sum, tmp; - - __asm__ __volatile__( - " ld.w %0, %1++\n" - " ld.w %3, %1++\n" - " sub %2, 4\n" - " add %0, %3\n" - " ld.w %3, %1++\n" - " adc %0, %0, %3\n" - " ld.w %3, %1++\n" - " adc %0, %0, %3\n" - " acr %0\n" - "1: ld.w %3, %1++\n" - " add %0, %3\n" - " acr %0\n" - " sub %2, 1\n" - " brne 1b\n" - " lsl %3, %0, 16\n" - " andl %0, 0\n" - " mov %2, 0xffff\n" - " add %0, %3\n" - " adc %0, %0, %2\n" - " com %0\n" - " lsr %0, 16\n" - : "=r"(sum), "=r"(iph), "=r"(ihl), "=r"(tmp) - : "1"(iph), "2"(ihl) - : "memory", "cc"); - return (__force __sum16)sum; -} - -/* - * Fold a partial checksum - */ - -static inline __sum16 csum_fold(__wsum sum) -{ - unsigned int tmp; - - asm(" bfextu %1, %0, 0, 16\n" - " lsr %0, 16\n" - " add %0, %1\n" - " bfextu %1, %0, 16, 16\n" - " add %0, %1" - : "=&r"(sum), "=&r"(tmp) - : "0"(sum)); - - return (__force __sum16)~sum; -} - -static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, - __u32 len, __u8 proto, - __wsum sum) -{ - asm(" add %0, %1\n" - " adc %0, %0, %2\n" - " adc %0, %0, %3\n" - " acr %0" - : "=r"(sum) - : "r"(daddr), "r"(saddr), "r"(len + proto), - "0"(sum) - : "cc"); - - return sum; -} - -/* - * computes the checksum of the TCP/UDP pseudo-header - * returns a 16-bit checksum, already complemented - */ -static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, - __u32 len, __u8 proto, - __wsum sum) -{ - return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); -} - -/* - * this routine is used for miscellaneous IP-like checksums, mainly - * in icmp.c - */ - -static inline __sum16 ip_compute_csum(const void *buff, int len) -{ - return csum_fold(csum_partial(buff, len, 0)); -} - -#endif /* __ASM_AVR32_CHECKSUM_H */ diff --git a/arch/avr32/include/asm/cmpxchg.h b/arch/avr32/include/asm/cmpxchg.h deleted file mode 100644 index 572739b4c4b4..000000000000 --- a/arch/avr32/include/asm/cmpxchg.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Atomic operations that C can't guarantee us. Useful for - * resource counting etc. - * - * But use these as seldom as possible since they are slower than - * regular operations. - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_CMPXCHG_H -#define __ASM_AVR32_CMPXCHG_H - -#define xchg(ptr,x) \ - ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) - -extern void __xchg_called_with_bad_pointer(void); - -static inline unsigned long xchg_u32(u32 val, volatile u32 *m) -{ - u32 ret; - - asm volatile("xchg %[ret], %[m], %[val]" - : [ret] "=&r"(ret), "=m"(*m) - : "m"(*m), [m] "r"(m), [val] "r"(val) - : "memory"); - return ret; -} - -static inline unsigned long __xchg(unsigned long x, - volatile void *ptr, - int size) -{ - switch(size) { - case 4: - return xchg_u32(x, ptr); - default: - __xchg_called_with_bad_pointer(); - return x; - } -} - -static inline unsigned long __cmpxchg_u32(volatile int *m, unsigned long old, - unsigned long new) -{ - __u32 ret; - - asm volatile( - "1: ssrf 5\n" - " ld.w %[ret], %[m]\n" - " cp.w %[ret], %[old]\n" - " brne 2f\n" - " stcond %[m], %[new]\n" - " brne 1b\n" - "2:\n" - : [ret] "=&r"(ret), [m] "=m"(*m) - : "m"(m), [old] "Ks21r"(old), [new] "r"(new) - : "memory", "cc"); - return ret; -} - -extern unsigned long __cmpxchg_u64_unsupported_on_32bit_kernels( - volatile int * m, unsigned long old, unsigned long new); -#define __cmpxchg_u64 __cmpxchg_u64_unsupported_on_32bit_kernels - -/* This function doesn't exist, so you'll get a linker error - if something tries to do an invalid cmpxchg(). */ -extern void __cmpxchg_called_with_bad_pointer(void); - -static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, - unsigned long new, int size) -{ - switch (size) { - case 4: - return __cmpxchg_u32(ptr, old, new); - case 8: - return __cmpxchg_u64(ptr, old, new); - } - - __cmpxchg_called_with_bad_pointer(); - return old; -} - -#define cmpxchg(ptr, old, new) \ - ((typeof(*(ptr)))__cmpxchg((ptr), (unsigned long)(old), \ - (unsigned long)(new), \ - sizeof(*(ptr)))) - -#include <asm-generic/cmpxchg-local.h> - -static inline unsigned long __cmpxchg_local(volatile void *ptr, - unsigned long old, - unsigned long new, int size) -{ - switch (size) { - case 4: - return __cmpxchg_u32(ptr, old, new); - default: - return __cmpxchg_local_generic(ptr, old, new, size); - } - - return old; -} - -#define cmpxchg_local(ptr, old, new) \ - ((typeof(*(ptr)))__cmpxchg_local((ptr), (unsigned long)(old), \ - (unsigned long)(new), \ - sizeof(*(ptr)))) - -#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) - -#endif /* __ASM_AVR32_CMPXCHG_H */ diff --git a/arch/avr32/include/asm/current.h b/arch/avr32/include/asm/current.h deleted file mode 100644 index c7b0549eab8a..000000000000 --- a/arch/avr32/include/asm/current.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __ASM_AVR32_CURRENT_H -#define __ASM_AVR32_CURRENT_H - -#include <linux/thread_info.h> - -struct task_struct; - -inline static struct task_struct * get_current(void) -{ - return current_thread_info()->task; -} - -#define current get_current() - -#endif /* __ASM_AVR32_CURRENT_H */ diff --git a/arch/avr32/include/asm/dma-mapping.h b/arch/avr32/include/asm/dma-mapping.h deleted file mode 100644 index 7388451f9905..000000000000 --- a/arch/avr32/include/asm/dma-mapping.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __ASM_AVR32_DMA_MAPPING_H -#define __ASM_AVR32_DMA_MAPPING_H - -extern void dma_cache_sync(struct device *dev, void *vaddr, size_t size, - int direction); - -extern const struct dma_map_ops avr32_dma_ops; - -static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) -{ - return &avr32_dma_ops; -} - -#endif /* __ASM_AVR32_DMA_MAPPING_H */ diff --git a/arch/avr32/include/asm/dma.h b/arch/avr32/include/asm/dma.h deleted file mode 100644 index 9e91205590ac..000000000000 --- a/arch/avr32/include/asm/dma.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __ASM_AVR32_DMA_H -#define __ASM_AVR32_DMA_H - -/* The maximum address that we can perform a DMA transfer to on this platform. - * Not really applicable to AVR32, but some functions need it. */ -#define MAX_DMA_ADDRESS 0xffffffff - -#endif /* __ASM_AVR32_DMA_H */ diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h deleted file mode 100644 index 0388ece75b02..000000000000 --- a/arch/avr32/include/asm/elf.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef __ASM_AVR32_ELF_H -#define __ASM_AVR32_ELF_H - -/* AVR32 relocation numbers */ -#define R_AVR32_NONE 0 -#define R_AVR32_32 1 -#define R_AVR32_16 2 -#define R_AVR32_8 3 -#define R_AVR32_32_PCREL 4 -#define R_AVR32_16_PCREL 5 -#define R_AVR32_8_PCREL 6 -#define R_AVR32_DIFF32 7 -#define R_AVR32_DIFF16 8 -#define R_AVR32_DIFF8 9 -#define R_AVR32_GOT32 10 -#define R_AVR32_GOT16 11 -#define R_AVR32_GOT8 12 -#define R_AVR32_21S 13 -#define R_AVR32_16U 14 -#define R_AVR32_16S 15 -#define R_AVR32_8S 16 -#define R_AVR32_8S_EXT 17 -#define R_AVR32_22H_PCREL 18 -#define R_AVR32_18W_PCREL 19 -#define R_AVR32_16B_PCREL 20 -#define R_AVR32_16N_PCREL 21 -#define R_AVR32_14UW_PCREL 22 -#define R_AVR32_11H_PCREL 23 -#define R_AVR32_10UW_PCREL 24 -#define R_AVR32_9H_PCREL 25 -#define R_AVR32_9UW_PCREL 26 -#define R_AVR32_HI16 27 -#define R_AVR32_LO16 28 -#define R_AVR32_GOTPC 29 -#define R_AVR32_GOTCALL 30 -#define R_AVR32_LDA_GOT 31 -#define R_AVR32_GOT21S 32 -#define R_AVR32_GOT18SW 33 -#define R_AVR32_GOT16S 34 -#define R_AVR32_GOT7UW 35 -#define R_AVR32_32_CPENT 36 -#define R_AVR32_CPCALL 37 -#define R_AVR32_16_CP 38 -#define R_AVR32_9W_CP 39 -#define R_AVR32_RELATIVE 40 -#define R_AVR32_GLOB_DAT 41 -#define R_AVR32_JMP_SLOT 42 -#define R_AVR32_ALIGN 43 - -/* - * ELF register definitions.. - */ - -#include <asm/ptrace.h> -#include <asm/user.h> - -typedef unsigned long elf_greg_t; - -#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t)) -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -typedef struct user_fpu_struct elf_fpregset_t; - -/* - * This is used to ensure we don't load something for the wrong architecture. - */ -#define elf_check_arch(x) ( (x)->e_machine == EM_AVR32 ) - -/* - * These are used to set parameters in the core dumps. - */ -#define ELF_CLASS ELFCLASS32 -#ifdef __LITTLE_ENDIAN__ -#define ELF_DATA ELFDATA2LSB -#else -#define ELF_DATA ELFDATA2MSB -#endif -#define ELF_ARCH EM_AVR32 - -#define ELF_EXEC_PAGESIZE 4096 - -/* This is the location that an ET_DYN program is loaded if exec'ed. Typical - use of this is to invoke "./ld.so someprog" to test out a new version of - the loader. We need to make sure that it is out of the way of the program - that it will "exec", and that there is sufficient room for the brk. */ - -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) - - -/* This yields a mask that user programs can use to figure out what - instruction set this CPU supports. This could be done in user space, - but it's not easy, and we've already done it here. */ - -#define ELF_HWCAP (0) - -/* This yields a string that ld.so will use to load implementation - specific libraries for optimization. This is more specific in - intent than poking at uname or /proc/cpuinfo. - - For the moment, we have only optimizations for the Intel generations, - but that could change... */ - -#define ELF_PLATFORM (NULL) - -#endif /* __ASM_AVR32_ELF_H */ diff --git a/arch/avr32/include/asm/fb.h b/arch/avr32/include/asm/fb.h deleted file mode 100644 index 41baf84ad402..000000000000 --- a/arch/avr32/include/asm/fb.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _ASM_FB_H_ -#define _ASM_FB_H_ - -#include <linux/fb.h> -#include <linux/fs.h> -#include <asm/page.h> - -static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma, - unsigned long off) -{ - vma->vm_page_prot = __pgprot((pgprot_val(vma->vm_page_prot) - & ~_PAGE_CACHABLE) - | (_PAGE_BUFFER | _PAGE_DIRTY)); -} - -static inline int fb_is_primary_device(struct fb_info *info) -{ - return 0; -} - -#endif /* _ASM_FB_H_ */ diff --git a/arch/avr32/include/asm/ftrace.h b/arch/avr32/include/asm/ftrace.h deleted file mode 100644 index 40a8c178f10d..000000000000 --- a/arch/avr32/include/asm/ftrace.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/avr32/include/asm/gpio.h b/arch/avr32/include/asm/gpio.h deleted file mode 100644 index b771f7105964..000000000000 --- a/arch/avr32/include/asm/gpio.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASM_AVR32_GPIO_H -#define __ASM_AVR32_GPIO_H - -#include <mach/gpio.h> - -#endif /* __ASM_AVR32_GPIO_H */ diff --git a/arch/avr32/include/asm/hardirq.h b/arch/avr32/include/asm/hardirq.h deleted file mode 100644 index 9e36e3ff77d2..000000000000 --- a/arch/avr32/include/asm/hardirq.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASM_AVR32_HARDIRQ_H -#define __ASM_AVR32_HARDIRQ_H -#ifndef __ASSEMBLY__ -#include <asm-generic/hardirq.h> -#endif /* __ASSEMBLY__ */ -#endif /* __ASM_AVR32_HARDIRQ_H */ diff --git a/arch/avr32/include/asm/hw_irq.h b/arch/avr32/include/asm/hw_irq.h deleted file mode 100644 index a36f9fcb8fcd..000000000000 --- a/arch/avr32/include/asm/hw_irq.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __ASM_AVR32_HW_IRQ_H -#define __ASM_AVR32_HW_IRQ_H - -static inline void hw_resend_irq(struct irq_chip *h, unsigned int i) -{ - /* Nothing to do */ -} - -#endif /* __ASM_AVR32_HW_IRQ_H */ diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h deleted file mode 100644 index f855646e0db7..000000000000 --- a/arch/avr32/include/asm/io.h +++ /dev/null @@ -1,329 +0,0 @@ -#ifndef __ASM_AVR32_IO_H -#define __ASM_AVR32_IO_H - -#include <linux/bug.h> -#include <linux/kernel.h> -#include <linux/string.h> -#include <linux/types.h> - -#include <asm/addrspace.h> -#include <asm/byteorder.h> - -#include <mach/io.h> - -/* virt_to_phys will only work when address is in P1 or P2 */ -static __inline__ unsigned long virt_to_phys(volatile void *address) -{ - return PHYSADDR(address); -} - -static __inline__ void * phys_to_virt(unsigned long address) -{ - return (void *)P1SEGADDR(address); -} - -#define cached_to_phys(addr) ((unsigned long)PHYSADDR(addr)) -#define uncached_to_phys(addr) ((unsigned long)PHYSADDR(addr)) -#define phys_to_cached(addr) ((void *)P1SEGADDR(addr)) -#define phys_to_uncached(addr) ((void *)P2SEGADDR(addr)) - -/* - * Generic IO read/write. These perform native-endian accesses. Note - * that some architectures will want to re-define __raw_{read,write}w. - */ -extern void __raw_writesb(void __iomem *addr, const void *data, int bytelen); -extern void __raw_writesw(void __iomem *addr, const void *data, int wordlen); -extern void __raw_writesl(void __iomem *addr, const void *data, int longlen); - -extern void __raw_readsb(const void __iomem *addr, void *data, int bytelen); -extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen); -extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); - -static inline void __raw_writeb(u8 v, volatile void __iomem *addr) -{ - *(volatile u8 __force *)addr = v; -} -static inline void __raw_writew(u16 v, volatile void __iomem *addr) -{ - *(volatile u16 __force *)addr = v; -} -static inline void __raw_writel(u32 v, volatile void __iomem *addr) -{ - *(volatile u32 __force *)addr = v; -} - -static inline u8 __raw_readb(const volatile void __iomem *addr) -{ - return *(const volatile u8 __force *)addr; -} -static inline u16 __raw_readw(const volatile void __iomem *addr) -{ - return *(const volatile u16 __force *)addr; -} -static inline u32 __raw_readl(const volatile void __iomem *addr) -{ - return *(const volatile u32 __force *)addr; -} - -/* Convert I/O port address to virtual address */ -#ifndef __io -# define __io(p) ((void *)phys_to_uncached(p)) -#endif - -/* - * Not really sure about the best way to slow down I/O on - * AVR32. Defining it as a no-op until we have an actual test case. - */ -#define SLOW_DOWN_IO do { } while (0) - -#define __BUILD_MEMORY_SINGLE(pfx, bwl, type) \ -static inline void \ -pfx##write##bwl(type val, volatile void __iomem *addr) \ -{ \ - volatile type *__addr; \ - type __val; \ - \ - __addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr)); \ - __val = pfx##ioswab##bwl(__addr, val); \ - \ - BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \ - \ - *__addr = __val; \ -} \ - \ -static inline type pfx##read##bwl(const volatile void __iomem *addr) \ -{ \ - volatile type *__addr; \ - type __val; \ - \ - __addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr)); \ - \ - BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \ - \ - __val = *__addr; \ - return pfx##ioswab##bwl(__addr, __val); \ -} - -#define __BUILD_IOPORT_SINGLE(pfx, bwl, type, p, slow) \ -static inline void pfx##out##bwl##p(type val, unsigned long port) \ -{ \ - volatile type *__addr; \ - type __val; \ - \ - __addr = __io(__swizzle_addr_##bwl(port)); \ - __val = pfx##ioswab##bwl(__addr, val); \ - \ - BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \ - \ - *__addr = __val; \ - slow; \ -} \ - \ -static inline type pfx##in##bwl##p(unsigned long port) \ -{ \ - volatile type *__addr; \ - type __val; \ - \ - __addr = __io(__swizzle_addr_##bwl(port)); \ - \ - BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \ - \ - __val = *__addr; \ - slow; \ - \ - return pfx##ioswab##bwl(__addr, __val); \ -} - -#define __BUILD_MEMORY_PFX(bus, bwl, type) \ - __BUILD_MEMORY_SINGLE(bus, bwl, type) - -#define BUILDIO_MEM(bwl, type) \ - __BUILD_MEMORY_PFX(, bwl, type) \ - __BUILD_MEMORY_PFX(__mem_, bwl, type) - -#define __BUILD_IOPORT_PFX(bus, bwl, type) \ - __BUILD_IOPORT_SINGLE(bus, bwl, type, ,) \ - __BUILD_IOPORT_SINGLE(bus, bwl, type, _p, SLOW_DOWN_IO) - -#define BUILDIO_IOPORT(bwl, type) \ - __BUILD_IOPORT_PFX(, bwl, type) \ - __BUILD_IOPORT_PFX(__mem_, bwl, type) - -BUILDIO_MEM(b, u8) -BUILDIO_MEM(w, u16) -BUILDIO_MEM(l, u32) - -BUILDIO_IOPORT(b, u8) -BUILDIO_IOPORT(w, u16) -BUILDIO_IOPORT(l, u32) - -#define readb_relaxed readb -#define readw_relaxed readw -#define readl_relaxed readl - -#define readb_be __raw_readb -#define readw_be __raw_readw -#define readl_be __raw_readl - -#define writeb_relaxed writeb -#define writew_relaxed writew -#define writel_relaxed writel - -#define writeb_be __raw_writeb -#define writew_be __raw_writew -#define writel_be __raw_writel - -#define __BUILD_MEMORY_STRING(bwl, type) \ -static inline void writes##bwl(volatile void __iomem *addr, \ - const void *data, unsigned int count) \ -{ \ - const type *__data = data; \ - \ - while (count--) \ - __mem_write##bwl(*__data++, addr); \ -} \ - \ -static inline void reads##bwl(const volatile void __iomem *addr, \ - void *data, unsigned int count) \ -{ \ - type *__data = data; \ - \ - while (count--) \ - *__data++ = __mem_read##bwl(addr); \ -} - -#define __BUILD_IOPORT_STRING(bwl, type) \ -static inline void outs##bwl(unsigned long port, const void *data, \ - unsigned int count) \ -{ \ - const type *__data = data; \ - \ - while (count--) \ - __mem_out##bwl(*__data++, port); \ -} \ - \ -static inline void ins##bwl(unsigned long port, void *data, \ - unsigned int count) \ -{ \ - type *__data = data; \ - \ - while (count--) \ - *__data++ = __mem_in##bwl(port); \ -} - -#define BUILDSTRING(bwl, type) \ - __BUILD_MEMORY_STRING(bwl, type) \ - __BUILD_IOPORT_STRING(bwl, type) - -BUILDSTRING(b, u8) -BUILDSTRING(w, u16) -BUILDSTRING(l, u32) - -/* - * io{read,write}{8,16,32} macros in both le (for PCI style consumers) and native be - */ -#ifndef ioread8 - -#define ioread8(p) ((unsigned int)readb(p)) - -#define ioread16(p) ((unsigned int)readw(p)) -#define ioread16be(p) ((unsigned int)__raw_readw(p)) - -#define ioread32(p) ((unsigned int)readl(p)) -#define ioread32be(p) ((unsigned int)__raw_readl(p)) - -#define iowrite8(v,p) writeb(v, p) - -#define iowrite16(v,p) writew(v, p) -#define iowrite16be(v,p) __raw_writew(v, p) - -#define iowrite32(v,p) writel(v, p) -#define iowrite32be(v,p) __raw_writel(v, p) - -#define ioread8_rep(p,d,c) readsb(p,d,c) -#define ioread16_rep(p,d,c) readsw(p,d,c) -#define ioread32_rep(p,d,c) readsl(p,d,c) - -#define iowrite8_rep(p,s,c) writesb(p,s,c) -#define iowrite16_rep(p,s,c) writesw(p,s,c) -#define iowrite32_rep(p,s,c) writesl(p,s,c) - -#endif - -static inline void memcpy_fromio(void * to, const volatile void __iomem *from, - unsigned long count) -{ - memcpy(to, (const void __force *)from, count); -} - -static inline void memcpy_toio(volatile void __iomem *to, const void * from, - unsigned long count) -{ - memcpy((void __force *)to, from, count); -} - -static inline void memset_io(volatile void __iomem *addr, unsigned char val, - unsigned long count) -{ - memset((void __force *)addr, val, count); -} - -#define mmiowb() - -#define IO_SPACE_LIMIT 0xffffffff - -extern void __iomem *__ioremap(unsigned long offset, size_t size, - unsigned long flags); -extern void __iounmap(void __iomem *addr); - -/* - * ioremap - map bus memory into CPU space - * @offset bus address of the memory - * @size size of the resource to map - * - * ioremap performs a platform specific sequence of operations to make - * bus memory CPU accessible via the readb/.../writel functions and - * the other mmio helpers. The returned address is not guaranteed to - * be usable directly as a virtual address. - */ -#define ioremap(offset, size) \ - __ioremap((offset), (size), 0) - -#define ioremap_nocache(offset, size) \ - __ioremap((offset), (size), 0) - -#define iounmap(addr) \ - __iounmap(addr) - -#define ioremap_wc ioremap_nocache -#define ioremap_wt ioremap_nocache -#define ioremap_uc ioremap_nocache - -#define cached(addr) P1SEGADDR(addr) -#define uncached(addr) P2SEGADDR(addr) - -#define virt_to_bus virt_to_phys -#define bus_to_virt phys_to_virt -#define page_to_bus page_to_phys -#define bus_to_page phys_to_page - -/* - * Create a virtual mapping cookie for an IO port range. There exists - * no such thing as port-based I/O on AVR32, so a regular ioremap() - * should do what we need. - */ -#define ioport_map(port, nr) ioremap(port, nr) -#define ioport_unmap(port) iounmap(port) - -/* - * Convert a physical pointer to a virtual kernel pointer for /dev/mem - * access - */ -#define xlate_dev_mem_ptr(p) __va(p) - -/* - * Convert a virtual cached pointer to an uncached pointer - */ -#define xlate_dev_kmem_ptr(p) p - -#endif /* __ASM_AVR32_IO_H */ diff --git a/arch/avr32/include/asm/irq.h b/arch/avr32/include/asm/irq.h deleted file mode 100644 index 6fa8913f8548..000000000000 --- a/arch/avr32/include/asm/irq.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __ASM_AVR32_IRQ_H -#define __ASM_AVR32_IRQ_H - -#define NR_INTERNAL_IRQS 64 - -#include <mach/irq.h> - -#ifndef NR_IRQS -#define NR_IRQS (NR_INTERNAL_IRQS) -#endif - -#define irq_canonicalize(i) (i) - -#ifndef __ASSEMBLER__ -int nmi_enable(void); -void nmi_disable(void); - -/* - * Returns a bitmask of pending interrupts in a group. - */ -extern unsigned long intc_get_pending(unsigned int group); -#endif - -#endif /* __ASM_AVR32_IOCTLS_H */ diff --git a/arch/avr32/include/asm/irqflags.h b/arch/avr32/include/asm/irqflags.h deleted file mode 100644 index 006e9487372d..000000000000 --- a/arch/avr32/include/asm/irqflags.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_IRQFLAGS_H -#define __ASM_AVR32_IRQFLAGS_H - -#include <linux/types.h> -#include <asm/sysreg.h> - -static inline unsigned long arch_local_save_flags(void) -{ - return sysreg_read(SR); -} - -/* - * This will restore ALL status register flags, not only the interrupt - * mask flag. - * - * The empty asm statement informs the compiler of this fact while - * also serving as a barrier. - */ -static inline void arch_local_irq_restore(unsigned long flags) -{ - sysreg_write(SR, flags); - asm volatile("" : : : "memory", "cc"); -} - -static inline void arch_local_irq_disable(void) -{ - asm volatile("ssrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory"); -} - -static inline void arch_local_irq_enable(void) -{ - asm volatile("csrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory"); -} - -static inline bool arch_irqs_disabled_flags(unsigned long flags) -{ - return (flags & SYSREG_BIT(GM)) != 0; -} - -static inline bool arch_irqs_disabled(void) -{ - return arch_irqs_disabled_flags(arch_local_save_flags()); -} - -static inline unsigned long arch_local_irq_save(void) -{ - unsigned long flags = arch_local_save_flags(); - - arch_local_irq_disable(); - - return flags; -} - -#endif /* __ASM_AVR32_IRQFLAGS_H */ diff --git a/arch/avr32/include/asm/kdebug.h b/arch/avr32/include/asm/kdebug.h deleted file mode 100644 index f930ce286803..000000000000 --- a/arch/avr32/include/asm/kdebug.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __ASM_AVR32_KDEBUG_H -#define __ASM_AVR32_KDEBUG_H - -/* Grossly misnamed. */ -enum die_val { - DIE_BREAKPOINT, - DIE_SSTEP, - DIE_NMI, - DIE_OOPS, -}; - -#endif /* __ASM_AVR32_KDEBUG_H */ diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h deleted file mode 100644 index 479330b89796..000000000000 --- a/arch/avr32/include/asm/kmap_types.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __ASM_AVR32_KMAP_TYPES_H -#define __ASM_AVR32_KMAP_TYPES_H - -#ifdef CONFIG_DEBUG_HIGHMEM -# define KM_TYPE_NR 29 -#else -# define KM_TYPE_NR 14 -#endif - -#endif /* __ASM_AVR32_KMAP_TYPES_H */ diff --git a/arch/avr32/include/asm/kprobes.h b/arch/avr32/include/asm/kprobes.h deleted file mode 100644 index 28dfc61ad384..000000000000 --- a/arch/avr32/include/asm/kprobes.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Kernel Probes (KProbes) - * - * Copyright (C) 2005-2006 Atmel Corporation - * Copyright (C) IBM Corporation, 2002, 2004 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_KPROBES_H -#define __ASM_AVR32_KPROBES_H - -#include <asm-generic/kprobes.h> - -#define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */ - -#ifdef CONFIG_KPROBES -#include <linux/types.h> - -typedef u16 kprobe_opcode_t; -#define MAX_INSN_SIZE 2 -#define MAX_STACK_SIZE 64 /* 32 would probably be OK */ - -#define kretprobe_blacklist_size 0 - -#define arch_remove_kprobe(p) do { } while (0) - -/* Architecture specific copy of original instruction */ -struct arch_specific_insn { - kprobe_opcode_t insn[MAX_INSN_SIZE]; -}; - -struct prev_kprobe { - struct kprobe *kp; - unsigned int status; -}; - -/* per-cpu kprobe control block */ -struct kprobe_ctlblk { - unsigned int kprobe_status; - struct prev_kprobe prev_kprobe; - struct pt_regs jprobe_saved_regs; - char jprobes_stack[MAX_STACK_SIZE]; -}; - -extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); -extern int kprobe_exceptions_notify(struct notifier_block *self, - unsigned long val, void *data); - -#define flush_insn_slot(p) do { } while (0) - -#endif /* CONFIG_KPROBES */ -#endif /* __ASM_AVR32_KPROBES_H */ diff --git a/arch/avr32/include/asm/linkage.h b/arch/avr32/include/asm/linkage.h deleted file mode 100644 index f7b285e910d4..000000000000 --- a/arch/avr32/include/asm/linkage.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __ASM_LINKAGE_H -#define __ASM_LINKAGE_H - -#define __ALIGN .balign 2 -#define __ALIGN_STR ".balign 2" - -#endif /* __ASM_LINKAGE_H */ diff --git a/arch/avr32/include/asm/mmu.h b/arch/avr32/include/asm/mmu.h deleted file mode 100644 index 60c2d2650d32..000000000000 --- a/arch/avr32/include/asm/mmu.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __ASM_AVR32_MMU_H -#define __ASM_AVR32_MMU_H - -/* Default "unsigned long" context */ -typedef unsigned long mm_context_t; - -#define MMU_ITLB_ENTRIES 64 -#define MMU_DTLB_ENTRIES 64 - -#endif /* __ASM_AVR32_MMU_H */ diff --git a/arch/avr32/include/asm/mmu_context.h b/arch/avr32/include/asm/mmu_context.h deleted file mode 100644 index cd87abba8db7..000000000000 --- a/arch/avr32/include/asm/mmu_context.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * ASID handling taken from SH implementation. - * Copyright (C) 1999 Niibe Yutaka - * Copyright (C) 2003 Paul Mundt - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_MMU_CONTEXT_H -#define __ASM_AVR32_MMU_CONTEXT_H - -#include <linux/mm_types.h> - -#include <asm/tlbflush.h> -#include <asm/sysreg.h> -#include <asm-generic/mm_hooks.h> - -/* - * The MMU "context" consists of two things: - * (a) TLB cache version - * (b) ASID (Address Space IDentifier) - */ -#define MMU_CONTEXT_ASID_MASK 0x000000ff -#define MMU_CONTEXT_VERSION_MASK 0xffffff00 -#define MMU_CONTEXT_FIRST_VERSION 0x00000100 -#define NO_CONTEXT 0 - -#define MMU_NO_ASID 0x100 - -/* Virtual Page Number mask */ -#define MMU_VPN_MASK 0xfffff000 - -/* Cache of MMU context last used */ -extern unsigned long mmu_context_cache; - -/* - * Get MMU context if needed - */ -static inline void -get_mmu_context(struct mm_struct *mm) -{ - unsigned long mc = mmu_context_cache; - - if (((mm->context ^ mc) & MMU_CONTEXT_VERSION_MASK) == 0) - /* It's up to date, do nothing */ - return; - - /* It's old, we need to get new context with new version */ - mc = ++mmu_context_cache; - if (!(mc & MMU_CONTEXT_ASID_MASK)) { - /* - * We have exhausted all ASIDs of this version. - * Flush the TLB and start new cycle. - */ - flush_tlb_all(); - /* - * Fix version. Note that we avoid version #0 - * to distinguish NO_CONTEXT. - */ - if (!mc) - mmu_context_cache = mc = MMU_CONTEXT_FIRST_VERSION; - } - mm->context = mc; -} - -/* - * Initialize the context related info for a new mm_struct - * instance. - */ -static inline int init_new_context(struct task_struct *tsk, - struct mm_struct *mm) -{ - mm->context = NO_CONTEXT; - return 0; -} - -/* - * Destroy context related info for an mm_struct that is about - * to be put to rest. - */ -static inline void destroy_context(struct mm_struct *mm) -{ - /* Do nothing */ -} - -static inline void set_asid(unsigned long asid) -{ - /* XXX: We're destroying TLBEHI[8:31] */ - sysreg_write(TLBEHI, asid & MMU_CONTEXT_ASID_MASK); - cpu_sync_pipeline(); -} - -static inline unsigned long get_asid(void) -{ - unsigned long asid; - - asid = sysreg_read(TLBEHI); - return asid & MMU_CONTEXT_ASID_MASK; -} - -static inline void activate_context(struct mm_struct *mm) -{ - get_mmu_context(mm); - set_asid(mm->context & MMU_CONTEXT_ASID_MASK); -} - -static inline void switch_mm(struct mm_struct *prev, - struct mm_struct *next, - struct task_struct *tsk) -{ - if (likely(prev != next)) { - unsigned long __pgdir = (unsigned long)next->pgd; - - sysreg_write(PTBR, __pgdir); - activate_context(next); - } -} - -#define deactivate_mm(tsk,mm) do { } while(0) - -#define activate_mm(prev, next) switch_mm((prev), (next), NULL) - -static inline void -enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) -{ -} - - -static inline void enable_mmu(void) -{ - sysreg_write(MMUCR, (SYSREG_BIT(MMUCR_S) - | SYSREG_BIT(E) - | SYSREG_BIT(MMUCR_I))); - nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); - - if (mmu_context_cache == NO_CONTEXT) - mmu_context_cache = MMU_CONTEXT_FIRST_VERSION; - - set_asid(mmu_context_cache & MMU_CONTEXT_ASID_MASK); -} - -static inline void disable_mmu(void) -{ - sysreg_write(MMUCR, SYSREG_BIT(MMUCR_S)); -} - -#endif /* __ASM_AVR32_MMU_CONTEXT_H */ diff --git a/arch/avr32/include/asm/module.h b/arch/avr32/include/asm/module.h deleted file mode 100644 index 3f083d385a64..000000000000 --- a/arch/avr32/include/asm/module.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __ASM_AVR32_MODULE_H -#define __ASM_AVR32_MODULE_H - -#include <asm-generic/module.h> - -struct mod_arch_syminfo { - unsigned long got_offset; - int got_initialized; -}; - -struct mod_arch_specific { - /* Starting offset of got in the module core memory. */ - unsigned long got_offset; - /* Size of the got. */ - unsigned long got_size; - /* Number of symbols in syminfo. */ - int nsyms; - /* Additional symbol information (got offsets). */ - struct mod_arch_syminfo *syminfo; -}; - -#define MODULE_PROC_FAMILY "AVR32v1" - -#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY - -#endif /* __ASM_AVR32_MODULE_H */ diff --git a/arch/avr32/include/asm/ocd.h b/arch/avr32/include/asm/ocd.h deleted file mode 100644 index 6bef09490235..000000000000 --- a/arch/avr32/include/asm/ocd.h +++ /dev/null @@ -1,543 +0,0 @@ -/* - * AVR32 OCD Interface and register definitions - * - * Copyright (C) 2004-2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_OCD_H -#define __ASM_AVR32_OCD_H - -/* OCD Register offsets. Abbreviations used below: - * - * BP Breakpoint - * Comm Communication - * DT Data Trace - * PC Program Counter - * PID Process ID - * R/W Read/Write - * WP Watchpoint - */ -#define OCD_DID 0x0000 /* Device ID */ -#define OCD_DC 0x0008 /* Development Control */ -#define OCD_DS 0x0010 /* Development Status */ -#define OCD_RWCS 0x001c /* R/W Access Control */ -#define OCD_RWA 0x0024 /* R/W Access Address */ -#define OCD_RWD 0x0028 /* R/W Access Data */ -#define OCD_WT 0x002c /* Watchpoint Trigger */ -#define OCD_DTC 0x0034 /* Data Trace Control */ -#define OCD_DTSA0 0x0038 /* DT Start Addr Channel 0 */ -#define OCD_DTSA1 0x003c /* DT Start Addr Channel 1 */ -#define OCD_DTEA0 0x0048 /* DT End Addr Channel 0 */ -#define OCD_DTEA1 0x004c /* DT End Addr Channel 1 */ -#define OCD_BWC0A 0x0058 /* PC BP/WP Control 0A */ -#define OCD_BWC0B 0x005c /* PC BP/WP Control 0B */ -#define OCD_BWC1A 0x0060 /* PC BP/WP Control 1A */ -#define OCD_BWC1B 0x0064 /* PC BP/WP Control 1B */ -#define OCD_BWC2A 0x0068 /* PC BP/WP Control 2A */ -#define OCD_BWC2B 0x006c /* PC BP/WP Control 2B */ -#define OCD_BWC3A 0x0070 /* Data BP/WP Control 3A */ -#define OCD_BWC3B 0x0074 /* Data BP/WP Control 3B */ -#define OCD_BWA0A 0x0078 /* PC BP/WP Address 0A */ -#define OCD_BWA0B 0x007c /* PC BP/WP Address 0B */ -#define OCD_BWA1A 0x0080 /* PC BP/WP Address 1A */ -#define OCD_BWA1B 0x0084 /* PC BP/WP Address 1B */ -#define OCD_BWA2A 0x0088 /* PC BP/WP Address 2A */ -#define OCD_BWA2B 0x008c /* PC BP/WP Address 2B */ -#define OCD_BWA3A 0x0090 /* Data BP/WP Address 3A */ -#define OCD_BWA3B 0x0094 /* Data BP/WP Address 3B */ -#define OCD_NXCFG 0x0100 /* Nexus Configuration */ -#define OCD_DINST 0x0104 /* Debug Instruction */ -#define OCD_DPC 0x0108 /* Debug Program Counter */ -#define OCD_CPUCM 0x010c /* CPU Control Mask */ -#define OCD_DCCPU 0x0110 /* Debug Comm CPU */ -#define OCD_DCEMU 0x0114 /* Debug Comm Emulator */ -#define OCD_DCSR 0x0118 /* Debug Comm Status */ -#define OCD_PID 0x011c /* Ownership Trace PID */ -#define OCD_EPC0 0x0120 /* Event Pair Control 0 */ -#define OCD_EPC1 0x0124 /* Event Pair Control 1 */ -#define OCD_EPC2 0x0128 /* Event Pair Control 2 */ -#define OCD_EPC3 0x012c /* Event Pair Control 3 */ -#define OCD_AXC 0x0130 /* AUX port Control */ - -/* Bits in DID */ -#define OCD_DID_MID_START 1 -#define OCD_DID_MID_SIZE 11 -#define OCD_DID_PN_START 12 -#define OCD_DID_PN_SIZE 16 -#define OCD_DID_RN_START 28 -#define OCD_DID_RN_SIZE 4 - -/* Bits in DC */ -#define OCD_DC_TM_START 0 -#define OCD_DC_TM_SIZE 2 -#define OCD_DC_EIC_START 3 -#define OCD_DC_EIC_SIZE 2 -#define OCD_DC_OVC_START 5 -#define OCD_DC_OVC_SIZE 3 -#define OCD_DC_SS_BIT 8 -#define OCD_DC_DBR_BIT 12 -#define OCD_DC_DBE_BIT 13 -#define OCD_DC_EOS_START 20 -#define OCD_DC_EOS_SIZE 2 -#define OCD_DC_SQA_BIT 22 -#define OCD_DC_IRP_BIT 23 -#define OCD_DC_IFM_BIT 24 -#define OCD_DC_TOZ_BIT 25 -#define OCD_DC_TSR_BIT 26 -#define OCD_DC_RID_BIT 27 -#define OCD_DC_ORP_BIT 28 -#define OCD_DC_MM_BIT 29 -#define OCD_DC_RES_BIT 30 -#define OCD_DC_ABORT_BIT 31 - -/* Bits in DS */ -#define OCD_DS_SSS_BIT 0 -#define OCD_DS_SWB_BIT 1 -#define OCD_DS_HWB_BIT 2 -#define OCD_DS_HWE_BIT 3 -#define OCD_DS_STP_BIT 4 -#define OCD_DS_DBS_BIT 5 -#define OCD_DS_BP_START 8 -#define OCD_DS_BP_SIZE 8 -#define OCD_DS_INC_BIT 24 -#define OCD_DS_BOZ_BIT 25 -#define OCD_DS_DBA_BIT 26 -#define OCD_DS_EXB_BIT 27 -#define OCD_DS_NTBF_BIT 28 - -/* Bits in RWCS */ -#define OCD_RWCS_DV_BIT 0 -#define OCD_RWCS_ERR_BIT 1 -#define OCD_RWCS_CNT_START 2 -#define OCD_RWCS_CNT_SIZE 14 -#define OCD_RWCS_CRC_BIT 19 -#define OCD_RWCS_NTBC_START 20 -#define OCD_RWCS_NTBC_SIZE 2 -#define OCD_RWCS_NTE_BIT 22 -#define OCD_RWCS_NTAP_BIT 23 -#define OCD_RWCS_WRAPPED_BIT 24 -#define OCD_RWCS_CCTRL_START 25 -#define OCD_RWCS_CCTRL_SIZE 2 -#define OCD_RWCS_SZ_START 27 -#define OCD_RWCS_SZ_SIZE 3 -#define OCD_RWCS_RW_BIT 30 -#define OCD_RWCS_AC_BIT 31 - -/* Bits in RWA */ -#define OCD_RWA_RWA_START 0 -#define OCD_RWA_RWA_SIZE 32 - -/* Bits in RWD */ -#define OCD_RWD_RWD_START 0 -#define OCD_RWD_RWD_SIZE 32 - -/* Bits in WT */ -#define OCD_WT_DTE_START 20 -#define OCD_WT_DTE_SIZE 3 -#define OCD_WT_DTS_START 23 -#define OCD_WT_DTS_SIZE 3 -#define OCD_WT_PTE_START 26 -#define OCD_WT_PTE_SIZE 3 -#define OCD_WT_PTS_START 29 -#define OCD_WT_PTS_SIZE 3 - -/* Bits in DTC */ -#define OCD_DTC_T0WP_BIT 0 -#define OCD_DTC_T1WP_BIT 1 -#define OCD_DTC_ASID0EN_BIT 2 -#define OCD_DTC_ASID0_START 3 -#define OCD_DTC_ASID0_SIZE 8 -#define OCD_DTC_ASID1EN_BIT 11 -#define OCD_DTC_ASID1_START 12 -#define OCD_DTC_ASID1_SIZE 8 -#define OCD_DTC_RWT1_START 28 -#define OCD_DTC_RWT1_SIZE 2 -#define OCD_DTC_RWT0_START 30 -#define OCD_DTC_RWT0_SIZE 2 - -/* Bits in DTSA0 */ -#define OCD_DTSA0_DTSA_START 0 -#define OCD_DTSA0_DTSA_SIZE 32 - -/* Bits in DTSA1 */ -#define OCD_DTSA1_DTSA_START 0 -#define OCD_DTSA1_DTSA_SIZE 32 - -/* Bits in DTEA0 */ -#define OCD_DTEA0_DTEA_START 0 -#define OCD_DTEA0_DTEA_SIZE 32 - -/* Bits in DTEA1 */ -#define OCD_DTEA1_DTEA_START 0 -#define OCD_DTEA1_DTEA_SIZE 32 - -/* Bits in BWC0A */ -#define OCD_BWC0A_ASIDEN_BIT 0 -#define OCD_BWC0A_ASID_START 1 -#define OCD_BWC0A_ASID_SIZE 8 -#define OCD_BWC0A_EOC_BIT 14 -#define OCD_BWC0A_AME_BIT 25 -#define OCD_BWC0A_BWE_START 30 -#define OCD_BWC0A_BWE_SIZE 2 - -/* Bits in BWC0B */ -#define OCD_BWC0B_ASIDEN_BIT 0 -#define OCD_BWC0B_ASID_START 1 -#define OCD_BWC0B_ASID_SIZE 8 -#define OCD_BWC0B_EOC_BIT 14 -#define OCD_BWC0B_AME_BIT 25 -#define OCD_BWC0B_BWE_START 30 -#define OCD_BWC0B_BWE_SIZE 2 - -/* Bits in BWC1A */ -#define OCD_BWC1A_ASIDEN_BIT 0 -#define OCD_BWC1A_ASID_START 1 -#define OCD_BWC1A_ASID_SIZE 8 -#define OCD_BWC1A_EOC_BIT 14 -#define OCD_BWC1A_AME_BIT 25 -#define OCD_BWC1A_BWE_START 30 -#define OCD_BWC1A_BWE_SIZE 2 - -/* Bits in BWC1B */ -#define OCD_BWC1B_ASIDEN_BIT 0 -#define OCD_BWC1B_ASID_START 1 -#define OCD_BWC1B_ASID_SIZE 8 -#define OCD_BWC1B_EOC_BIT 14 -#define OCD_BWC1B_AME_BIT 25 -#define OCD_BWC1B_BWE_START 30 -#define OCD_BWC1B_BWE_SIZE 2 - -/* Bits in BWC2A */ -#define OCD_BWC2A_ASIDEN_BIT 0 -#define OCD_BWC2A_ASID_START 1 -#define OCD_BWC2A_ASID_SIZE 8 -#define OCD_BWC2A_EOC_BIT 14 -#define OCD_BWC2A_AMB_START 20 -#define OCD_BWC2A_AMB_SIZE 5 -#define OCD_BWC2A_AME_BIT 25 -#define OCD_BWC2A_BWE_START 30 -#define OCD_BWC2A_BWE_SIZE 2 - -/* Bits in BWC2B */ -#define OCD_BWC2B_ASIDEN_BIT 0 -#define OCD_BWC2B_ASID_START 1 -#define OCD_BWC2B_ASID_SIZE 8 -#define OCD_BWC2B_EOC_BIT 14 -#define OCD_BWC2B_AME_BIT 25 -#define OCD_BWC2B_BWE_START 30 -#define OCD_BWC2B_BWE_SIZE 2 - -/* Bits in BWC3A */ -#define OCD_BWC3A_ASIDEN_BIT 0 -#define OCD_BWC3A_ASID_START 1 -#define OCD_BWC3A_ASID_SIZE 8 -#define OCD_BWC3A_SIZE_START 9 -#define OCD_BWC3A_SIZE_SIZE 3 -#define OCD_BWC3A_EOC_BIT 14 -#define OCD_BWC3A_BWO_START 16 -#define OCD_BWC3A_BWO_SIZE 2 -#define OCD_BWC3A_BME_START 20 -#define OCD_BWC3A_BME_SIZE 4 -#define OCD_BWC3A_BRW_START 28 -#define OCD_BWC3A_BRW_SIZE 2 -#define OCD_BWC3A_BWE_START 30 -#define OCD_BWC3A_BWE_SIZE 2 - -/* Bits in BWC3B */ -#define OCD_BWC3B_ASIDEN_BIT 0 -#define OCD_BWC3B_ASID_START 1 -#define OCD_BWC3B_ASID_SIZE 8 -#define OCD_BWC3B_SIZE_START 9 -#define OCD_BWC3B_SIZE_SIZE 3 -#define OCD_BWC3B_EOC_BIT 14 -#define OCD_BWC3B_BWO_START 16 -#define OCD_BWC3B_BWO_SIZE 2 -#define OCD_BWC3B_BME_START 20 -#define OCD_BWC3B_BME_SIZE 4 -#define OCD_BWC3B_BRW_START 28 -#define OCD_BWC3B_BRW_SIZE 2 -#define OCD_BWC3B_BWE_START 30 -#define OCD_BWC3B_BWE_SIZE 2 - -/* Bits in BWA0A */ -#define OCD_BWA0A_BWA_START 0 -#define OCD_BWA0A_BWA_SIZE 32 - -/* Bits in BWA0B */ -#define OCD_BWA0B_BWA_START 0 -#define OCD_BWA0B_BWA_SIZE 32 - -/* Bits in BWA1A */ -#define OCD_BWA1A_BWA_START 0 -#define OCD_BWA1A_BWA_SIZE 32 - -/* Bits in BWA1B */ -#define OCD_BWA1B_BWA_START 0 -#define OCD_BWA1B_BWA_SIZE 32 - -/* Bits in BWA2A */ -#define OCD_BWA2A_BWA_START 0 -#define OCD_BWA2A_BWA_SIZE 32 - -/* Bits in BWA2B */ -#define OCD_BWA2B_BWA_START 0 -#define OCD_BWA2B_BWA_SIZE 32 - -/* Bits in BWA3A */ -#define OCD_BWA3A_BWA_START 0 -#define OCD_BWA3A_BWA_SIZE 32 - -/* Bits in BWA3B */ -#define OCD_BWA3B_BWA_START 0 -#define OCD_BWA3B_BWA_SIZE 32 - -/* Bits in NXCFG */ -#define OCD_NXCFG_NXARCH_START 0 -#define OCD_NXCFG_NXARCH_SIZE 4 -#define OCD_NXCFG_NXOCD_START 4 -#define OCD_NXCFG_NXOCD_SIZE 4 -#define OCD_NXCFG_NXPCB_START 8 -#define OCD_NXCFG_NXPCB_SIZE 4 -#define OCD_NXCFG_NXDB_START 12 -#define OCD_NXCFG_NXDB_SIZE 4 -#define OCD_NXCFG_MXMSEO_BIT 16 -#define OCD_NXCFG_NXMDO_START 17 -#define OCD_NXCFG_NXMDO_SIZE 4 -#define OCD_NXCFG_NXPT_BIT 21 -#define OCD_NXCFG_NXOT_BIT 22 -#define OCD_NXCFG_NXDWT_BIT 23 -#define OCD_NXCFG_NXDRT_BIT 24 -#define OCD_NXCFG_NXDTC_START 25 -#define OCD_NXCFG_NXDTC_SIZE 3 -#define OCD_NXCFG_NXDMA_BIT 28 - -/* Bits in DINST */ -#define OCD_DINST_DINST_START 0 -#define OCD_DINST_DINST_SIZE 32 - -/* Bits in CPUCM */ -#define OCD_CPUCM_BEM_BIT 1 -#define OCD_CPUCM_FEM_BIT 2 -#define OCD_CPUCM_REM_BIT 3 -#define OCD_CPUCM_IBEM_BIT 4 -#define OCD_CPUCM_IEEM_BIT 5 - -/* Bits in DCCPU */ -#define OCD_DCCPU_DATA_START 0 -#define OCD_DCCPU_DATA_SIZE 32 - -/* Bits in DCEMU */ -#define OCD_DCEMU_DATA_START 0 -#define OCD_DCEMU_DATA_SIZE 32 - -/* Bits in DCSR */ -#define OCD_DCSR_CPUD_BIT 0 -#define OCD_DCSR_EMUD_BIT 1 - -/* Bits in PID */ -#define OCD_PID_PROCESS_START 0 -#define OCD_PID_PROCESS_SIZE 32 - -/* Bits in EPC0 */ -#define OCD_EPC0_RNG_START 0 -#define OCD_EPC0_RNG_SIZE 2 -#define OCD_EPC0_CE_BIT 4 -#define OCD_EPC0_ECNT_START 16 -#define OCD_EPC0_ECNT_SIZE 16 - -/* Bits in EPC1 */ -#define OCD_EPC1_RNG_START 0 -#define OCD_EPC1_RNG_SIZE 2 -#define OCD_EPC1_ATB_BIT 5 -#define OCD_EPC1_AM_BIT 6 - -/* Bits in EPC2 */ -#define OCD_EPC2_RNG_START 0 -#define OCD_EPC2_RNG_SIZE 2 -#define OCD_EPC2_DB_START 2 -#define OCD_EPC2_DB_SIZE 2 - -/* Bits in EPC3 */ -#define OCD_EPC3_RNG_START 0 -#define OCD_EPC3_RNG_SIZE 2 -#define OCD_EPC3_DWE_BIT 2 - -/* Bits in AXC */ -#define OCD_AXC_DIV_START 0 -#define OCD_AXC_DIV_SIZE 4 -#define OCD_AXC_AXE_BIT 8 -#define OCD_AXC_AXS_BIT 9 -#define OCD_AXC_DDR_BIT 10 -#define OCD_AXC_LS_BIT 11 -#define OCD_AXC_REX_BIT 12 -#define OCD_AXC_REXTEN_BIT 13 - -/* Constants for DC:EIC */ -#define OCD_EIC_PROGRAM_AND_DATA_TRACE 0 -#define OCD_EIC_BREAKPOINT 1 -#define OCD_EIC_NOP 2 - -/* Constants for DC:OVC */ -#define OCD_OVC_OVERRUN 0 -#define OCD_OVC_DELAY_CPU_BTM 1 -#define OCD_OVC_DELAY_CPU_DTM 2 -#define OCD_OVC_DELAY_CPU_BTM_DTM 3 - -/* Constants for DC:EOS */ -#define OCD_EOS_NOP 0 -#define OCD_EOS_DEBUG_MODE 1 -#define OCD_EOS_BREAKPOINT_WATCHPOINT 2 -#define OCD_EOS_THQ 3 - -/* Constants for RWCS:NTBC */ -#define OCD_NTBC_OVERWRITE 0 -#define OCD_NTBC_DISABLE 1 -#define OCD_NTBC_BREAKPOINT 2 - -/* Constants for RWCS:CCTRL */ -#define OCD_CCTRL_AUTO 0 -#define OCD_CCTRL_CACHED 1 -#define OCD_CCTRL_UNCACHED 2 - -/* Constants for RWCS:SZ */ -#define OCD_SZ_BYTE 0 -#define OCD_SZ_HALFWORD 1 -#define OCD_SZ_WORD 2 - -/* Constants for WT:PTS */ -#define OCD_PTS_DISABLED 0 -#define OCD_PTS_PROGRAM_0B 1 -#define OCD_PTS_PROGRAM_1A 2 -#define OCD_PTS_PROGRAM_1B 3 -#define OCD_PTS_PROGRAM_2A 4 -#define OCD_PTS_PROGRAM_2B 5 -#define OCD_PTS_DATA_3A 6 -#define OCD_PTS_DATA_3B 7 - -/* Constants for DTC:RWT1 */ -#define OCD_RWT1_NO_TRACE 0 -#define OCD_RWT1_DATA_READ 1 -#define OCD_RWT1_DATA_WRITE 2 -#define OCD_RWT1_DATA_READ_WRITE 3 - -/* Constants for DTC:RWT0 */ -#define OCD_RWT0_NO_TRACE 0 -#define OCD_RWT0_DATA_READ 1 -#define OCD_RWT0_DATA_WRITE 2 -#define OCD_RWT0_DATA_READ_WRITE 3 - -/* Constants for BWC0A:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC0B:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC1A:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC1B:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC2A:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC2B:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC3A:SIZE */ -#define OCD_SIZE_BYTE_ACCESS 4 -#define OCD_SIZE_HALFWORD_ACCESS 5 -#define OCD_SIZE_WORD_ACCESS 6 -#define OCD_SIZE_DOUBLE_WORD_ACCESS 7 - -/* Constants for BWC3A:BRW */ -#define OCD_BRW_READ_BREAK 0 -#define OCD_BRW_WRITE_BREAK 1 -#define OCD_BRW_ANY_ACCES_BREAK 2 - -/* Constants for BWC3A:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for BWC3B:SIZE */ -#define OCD_SIZE_BYTE_ACCESS 4 -#define OCD_SIZE_HALFWORD_ACCESS 5 -#define OCD_SIZE_WORD_ACCESS 6 -#define OCD_SIZE_DOUBLE_WORD_ACCESS 7 - -/* Constants for BWC3B:BRW */ -#define OCD_BRW_READ_BREAK 0 -#define OCD_BRW_WRITE_BREAK 1 -#define OCD_BRW_ANY_ACCES_BREAK 2 - -/* Constants for BWC3B:BWE */ -#define OCD_BWE_DISABLED 0 -#define OCD_BWE_BREAKPOINT_ENABLED 1 -#define OCD_BWE_WATCHPOINT_ENABLED 3 - -/* Constants for EPC0:RNG */ -#define OCD_RNG_DISABLED 0 -#define OCD_RNG_EXCLUSIVE 1 -#define OCD_RNG_INCLUSIVE 2 - -/* Constants for EPC1:RNG */ -#define OCD_RNG_DISABLED 0 -#define OCD_RNG_EXCLUSIVE 1 -#define OCD_RNG_INCLUSIVE 2 - -/* Constants for EPC2:RNG */ -#define OCD_RNG_DISABLED 0 -#define OCD_RNG_EXCLUSIVE 1 -#define OCD_RNG_INCLUSIVE 2 - -/* Constants for EPC2:DB */ -#define OCD_DB_DISABLED 0 -#define OCD_DB_CHAINED_B 1 -#define OCD_DB_CHAINED_A 2 -#define OCD_DB_AHAINED_A_AND_B 3 - -/* Constants for EPC3:RNG */ -#define OCD_RNG_DISABLED 0 -#define OCD_RNG_EXCLUSIVE 1 -#define OCD_RNG_INCLUSIVE 2 - -#ifndef __ASSEMBLER__ - -/* Register access macros */ -static inline unsigned long __ocd_read(unsigned int reg) -{ - return __builtin_mfdr(reg); -} - -static inline void __ocd_write(unsigned int reg, unsigned long value) -{ - __builtin_mtdr(reg, value); -} - -#define ocd_read(reg) __ocd_read(OCD_##reg) -#define ocd_write(reg, value) __ocd_write(OCD_##reg, value) - -struct task_struct; - -void ocd_enable(struct task_struct *child); -void ocd_disable(struct task_struct *child); - -#endif /* !__ASSEMBLER__ */ - -#endif /* __ASM_AVR32_OCD_H */ diff --git a/arch/avr32/include/asm/page.h b/arch/avr32/include/asm/page.h deleted file mode 100644 index c5d2a3e2c62f..000000000000 --- a/arch/avr32/include/asm/page.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PAGE_H -#define __ASM_AVR32_PAGE_H - -#include <linux/const.h> - -/* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 -#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) -#define PAGE_MASK (~(PAGE_SIZE-1)) -#define PTE_MASK PAGE_MASK - -#ifndef __ASSEMBLY__ - -#include <asm/addrspace.h> - -extern void clear_page(void *to); -extern void copy_page(void *to, void *from); - -#define clear_user_page(page, vaddr, pg) clear_page(page) -#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) - -/* - * These are used to make use of C type-checking.. - */ -typedef struct { unsigned long pte; } pte_t; -typedef struct { unsigned long pgd; } pgd_t; -typedef struct { unsigned long pgprot; } pgprot_t; -typedef struct page *pgtable_t; - -#define pte_val(x) ((x).pte) -#define pgd_val(x) ((x).pgd) -#define pgprot_val(x) ((x).pgprot) - -#define __pte(x) ((pte_t) { (x) }) -#define __pgd(x) ((pgd_t) { (x) }) -#define __pgprot(x) ((pgprot_t) { (x) }) - -/* FIXME: These should be removed soon */ -extern unsigned long memory_start, memory_end; - -/* Pure 2^n version of get_order */ -static inline int get_order(unsigned long size) -{ - unsigned lz; - - size = (size - 1) >> PAGE_SHIFT; - asm("clz %0, %1" : "=r"(lz) : "r"(size)); - return 32 - lz; -} - -#endif /* !__ASSEMBLY__ */ - -/* - * The hardware maps the virtual addresses 0x80000000 -> 0x9fffffff - * permanently to the physical addresses 0x00000000 -> 0x1fffffff when - * segmentation is enabled. We want to make use of this in order to - * minimize TLB pressure. - */ -#define PAGE_OFFSET (0x80000000UL) - -/* - * ALSA uses virt_to_page() on DMA pages, which I'm not entirely sure - * is a good idea. Anyway, we can't simply subtract PAGE_OFFSET here - * in that case, so we'll have to mask out the three most significant - * bits of the address instead... - * - * What's the difference between __pa() and virt_to_phys() anyway? - */ -#define __pa(x) PHYSADDR(x) -#define __va(x) ((void *)(P1SEGADDR(x))) - -#define MAP_NR(addr) (((unsigned long)(addr) - PAGE_OFFSET) >> PAGE_SHIFT) - -#define phys_to_page(phys) (pfn_to_page(phys >> PAGE_SHIFT)) -#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) - -#ifndef CONFIG_NEED_MULTIPLE_NODES - -#define ARCH_PFN_OFFSET (CONFIG_PHYS_OFFSET >> PAGE_SHIFT) - -#define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && (pfn) < (ARCH_PFN_OFFSET + max_mapnr)) -#endif /* CONFIG_NEED_MULTIPLE_NODES */ - -#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) -#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) - -#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | \ - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) - -/* - * Memory above this physical address will be considered highmem. - */ -#define HIGHMEM_START 0x20000000UL - -#include <asm-generic/memory_model.h> - -#endif /* __ASM_AVR32_PAGE_H */ diff --git a/arch/avr32/include/asm/pci.h b/arch/avr32/include/asm/pci.h deleted file mode 100644 index 0f5f134b896a..000000000000 --- a/arch/avr32/include/asm/pci.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __ASM_AVR32_PCI_H__ -#define __ASM_AVR32_PCI_H__ - -/* We don't support PCI yet, but some drivers require this file anyway */ - -#define PCI_DMA_BUS_IS_PHYS (1) - -#endif /* __ASM_AVR32_PCI_H__ */ diff --git a/arch/avr32/include/asm/pgalloc.h b/arch/avr32/include/asm/pgalloc.h deleted file mode 100644 index db039cb368be..000000000000 --- a/arch/avr32/include/asm/pgalloc.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PGALLOC_H -#define __ASM_AVR32_PGALLOC_H - -#include <linux/mm.h> -#include <linux/quicklist.h> -#include <asm/page.h> -#include <asm/pgtable.h> - -#define QUICK_PGD 0 /* Preserve kernel mappings over free */ -#define QUICK_PT 1 /* Zero on free */ - -static inline void pmd_populate_kernel(struct mm_struct *mm, - pmd_t *pmd, pte_t *pte) -{ - set_pmd(pmd, __pmd((unsigned long)pte)); -} - -static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, - pgtable_t pte) -{ - set_pmd(pmd, __pmd((unsigned long)page_address(pte))); -} -#define pmd_pgtable(pmd) pmd_page(pmd) - -static inline void pgd_ctor(void *x) -{ - pgd_t *pgd = x; - - memcpy(pgd + USER_PTRS_PER_PGD, - swapper_pg_dir + USER_PTRS_PER_PGD, - (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); -} - -/* - * Allocate and free page tables - */ -static inline pgd_t *pgd_alloc(struct mm_struct *mm) -{ - return quicklist_alloc(QUICK_PGD, GFP_KERNEL, pgd_ctor); -} - -static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) -{ - quicklist_free(QUICK_PGD, NULL, pgd); -} - -static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, - unsigned long address) -{ - return quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL); -} - -static inline pgtable_t pte_alloc_one(struct mm_struct *mm, - unsigned long address) -{ - struct page *page; - void *pg; - - pg = quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL); - if (!pg) - return NULL; - - page = virt_to_page(pg); - if (!pgtable_page_ctor(page)) { - quicklist_free(QUICK_PT, NULL, pg); - return NULL; - } - - return page; -} - -static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) -{ - quicklist_free(QUICK_PT, NULL, pte); -} - -static inline void pte_free(struct mm_struct *mm, pgtable_t pte) -{ - pgtable_page_dtor(pte); - quicklist_free_page(QUICK_PT, NULL, pte); -} - -#define __pte_free_tlb(tlb,pte,addr) \ -do { \ - pgtable_page_dtor(pte); \ - tlb_remove_page((tlb), pte); \ -} while (0) - -static inline void check_pgt_cache(void) -{ - quicklist_trim(QUICK_PGD, NULL, 25, 16); - quicklist_trim(QUICK_PT, NULL, 25, 16); -} - -#endif /* __ASM_AVR32_PGALLOC_H */ diff --git a/arch/avr32/include/asm/pgtable-2level.h b/arch/avr32/include/asm/pgtable-2level.h deleted file mode 100644 index d5b1c63993ec..000000000000 --- a/arch/avr32/include/asm/pgtable-2level.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PGTABLE_2LEVEL_H -#define __ASM_AVR32_PGTABLE_2LEVEL_H - -#define __ARCH_USE_5LEVEL_HACK -#include <asm-generic/pgtable-nopmd.h> - -/* - * Traditional 2-level paging structure - */ -#define PGDIR_SHIFT 22 -#define PTRS_PER_PGD 1024 - -#define PTRS_PER_PTE 1024 - -#ifndef __ASSEMBLY__ -#define pte_ERROR(e) \ - printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e)) -#define pgd_ERROR(e) \ - printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) - -/* - * Certain architectures need to do special things when PTEs - * within a page table are directly modified. Thus, the following - * hook is made available. - */ -#define set_pte(pteptr, pteval) (*(pteptr) = pteval) -#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep, pteval) - -/* - * (pmds are folded into pgds so this doesn't get actually called, - * but the define is needed for a generic inline function.) - */ -#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) - -#define pte_pfn(x) ((unsigned long)(((x).pte >> PAGE_SHIFT))) -#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) -#define pfn_pmd(pfn, prot) __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) - -#endif /* !__ASSEMBLY__ */ - -#endif /* __ASM_AVR32_PGTABLE_2LEVEL_H */ diff --git a/arch/avr32/include/asm/pgtable.h b/arch/avr32/include/asm/pgtable.h deleted file mode 100644 index 35800664076e..000000000000 --- a/arch/avr32/include/asm/pgtable.h +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PGTABLE_H -#define __ASM_AVR32_PGTABLE_H - -#include <asm/addrspace.h> - -#ifndef __ASSEMBLY__ -#include <linux/sched.h> - -#endif /* !__ASSEMBLY__ */ - -/* - * Use two-level page tables just as the i386 (without PAE) - */ -#include <asm/pgtable-2level.h> - -/* - * The following code might need some cleanup when the values are - * final... - */ -#define PMD_SIZE (1UL << PMD_SHIFT) -#define PMD_MASK (~(PMD_SIZE-1)) -#define PGDIR_SIZE (1UL << PGDIR_SHIFT) -#define PGDIR_MASK (~(PGDIR_SIZE-1)) - -#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) -#define FIRST_USER_ADDRESS 0UL - -#ifndef __ASSEMBLY__ -extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; -extern void paging_init(void); - -/* - * ZERO_PAGE is a global shared page that is always zero: used for - * zero-mapped memory areas etc. - */ -extern struct page *empty_zero_page; -#define ZERO_PAGE(vaddr) (empty_zero_page) - -/* - * Just any arbitrary offset to the start of the vmalloc VM area: the - * current 8 MiB value just means that there will be a 8 MiB "hole" - * after the uncached physical memory (P2 segment) until the vmalloc - * area starts. That means that any out-of-bounds memory accesses will - * hopefully be caught; we don't know if the end of the P1/P2 segments - * are actually used for anything, but it is anyway safer to let the - * MMU catch these kinds of errors than to rely on the memory bus. - * - * A "hole" of the same size is added to the end of the P3 segment as - * well. It might seem wasteful to use 16 MiB of virtual address space - * on this, but we do have 512 MiB of it... - * - * The vmalloc() routines leave a hole of 4 KiB between each vmalloced - * area for the same reason. - */ -#define VMALLOC_OFFSET (8 * 1024 * 1024) -#define VMALLOC_START (P3SEG + VMALLOC_OFFSET) -#define VMALLOC_END (P4SEG - VMALLOC_OFFSET) -#endif /* !__ASSEMBLY__ */ - -/* - * Page flags. Some of these flags are not directly supported by - * hardware, so we have to emulate them. - */ -#define _TLBEHI_BIT_VALID 9 -#define _TLBEHI_VALID (1 << _TLBEHI_BIT_VALID) - -#define _PAGE_BIT_WT 0 /* W-bit : write-through */ -#define _PAGE_BIT_DIRTY 1 /* D-bit : page changed */ -#define _PAGE_BIT_SZ0 2 /* SZ0-bit : Size of page */ -#define _PAGE_BIT_SZ1 3 /* SZ1-bit : Size of page */ -#define _PAGE_BIT_EXECUTE 4 /* X-bit : execute access allowed */ -#define _PAGE_BIT_RW 5 /* AP0-bit : write access allowed */ -#define _PAGE_BIT_USER 6 /* AP1-bit : user space access allowed */ -#define _PAGE_BIT_BUFFER 7 /* B-bit : bufferable */ -#define _PAGE_BIT_GLOBAL 8 /* G-bit : global (ignore ASID) */ -#define _PAGE_BIT_CACHABLE 9 /* C-bit : cachable */ - -/* If we drop support for 1K pages, we get two extra bits */ -#define _PAGE_BIT_PRESENT 10 -#define _PAGE_BIT_ACCESSED 11 /* software: page was accessed */ - -#define _PAGE_WT (1 << _PAGE_BIT_WT) -#define _PAGE_DIRTY (1 << _PAGE_BIT_DIRTY) -#define _PAGE_EXECUTE (1 << _PAGE_BIT_EXECUTE) -#define _PAGE_RW (1 << _PAGE_BIT_RW) -#define _PAGE_USER (1 << _PAGE_BIT_USER) -#define _PAGE_BUFFER (1 << _PAGE_BIT_BUFFER) -#define _PAGE_GLOBAL (1 << _PAGE_BIT_GLOBAL) -#define _PAGE_CACHABLE (1 << _PAGE_BIT_CACHABLE) - -/* Software flags */ -#define _PAGE_ACCESSED (1 << _PAGE_BIT_ACCESSED) -#define _PAGE_PRESENT (1 << _PAGE_BIT_PRESENT) - -/* - * Page types, i.e. sizes. _PAGE_TYPE_NONE corresponds to what is - * usually called _PAGE_PROTNONE on other architectures. - * - * XXX: Find out if _PAGE_PROTNONE is equivalent with !_PAGE_USER. If - * so, we can encode all possible page sizes (although we can't really - * support 1K pages anyway due to the _PAGE_PRESENT and _PAGE_ACCESSED - * bits) - * - */ -#define _PAGE_TYPE_MASK ((1 << _PAGE_BIT_SZ0) | (1 << _PAGE_BIT_SZ1)) -#define _PAGE_TYPE_NONE (0 << _PAGE_BIT_SZ0) -#define _PAGE_TYPE_SMALL (1 << _PAGE_BIT_SZ0) -#define _PAGE_TYPE_MEDIUM (2 << _PAGE_BIT_SZ0) -#define _PAGE_TYPE_LARGE (3 << _PAGE_BIT_SZ0) - -/* - * Mask which drop software flags. We currently can't handle more than - * 512 MiB of physical memory, so we can use bits 29-31 for other - * stuff. With a fixed 4K page size, we can use bits 10-11 as well as - * bits 2-3 (SZ) - */ -#define _PAGE_FLAGS_HARDWARE_MASK 0xfffff3ff - -#define _PAGE_FLAGS_CACHE_MASK (_PAGE_CACHABLE | _PAGE_BUFFER | _PAGE_WT) - -/* Flags that may be modified by software */ -#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY \ - | _PAGE_FLAGS_CACHE_MASK) - -#define _PAGE_FLAGS_READ (_PAGE_CACHABLE | _PAGE_BUFFER) -#define _PAGE_FLAGS_WRITE (_PAGE_FLAGS_READ | _PAGE_RW | _PAGE_DIRTY) - -#define _PAGE_NORMAL(x) __pgprot((x) | _PAGE_PRESENT | _PAGE_TYPE_SMALL \ - | _PAGE_ACCESSED) - -#define PAGE_NONE (_PAGE_ACCESSED | _PAGE_TYPE_NONE) -#define PAGE_READ (_PAGE_FLAGS_READ | _PAGE_USER) -#define PAGE_EXEC (_PAGE_FLAGS_READ | _PAGE_EXECUTE | _PAGE_USER) -#define PAGE_WRITE (_PAGE_FLAGS_WRITE | _PAGE_USER) -#define PAGE_KERNEL _PAGE_NORMAL(_PAGE_FLAGS_WRITE | _PAGE_EXECUTE | _PAGE_GLOBAL) -#define PAGE_KERNEL_RO _PAGE_NORMAL(_PAGE_FLAGS_READ | _PAGE_EXECUTE | _PAGE_GLOBAL) - -#define _PAGE_P(x) _PAGE_NORMAL((x) & ~(_PAGE_RW | _PAGE_DIRTY)) -#define _PAGE_S(x) _PAGE_NORMAL(x) - -#define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ) -#define PAGE_SHARED _PAGE_S(PAGE_WRITE | PAGE_READ) - -#ifndef __ASSEMBLY__ -/* - * The hardware supports flags for write- and execute access. Read is - * always allowed if the page is loaded into the TLB, so the "-w-", - * "--x" and "-wx" mappings are implemented as "rw-", "r-x" and "rwx", - * respectively. - * - * The "---" case is handled by software; the page will simply not be - * loaded into the TLB if the page type is _PAGE_TYPE_NONE. - */ - -#define __P000 __pgprot(PAGE_NONE) -#define __P001 _PAGE_P(PAGE_READ) -#define __P010 _PAGE_P(PAGE_WRITE) -#define __P011 _PAGE_P(PAGE_WRITE | PAGE_READ) -#define __P100 _PAGE_P(PAGE_EXEC) -#define __P101 _PAGE_P(PAGE_EXEC | PAGE_READ) -#define __P110 _PAGE_P(PAGE_EXEC | PAGE_WRITE) -#define __P111 _PAGE_P(PAGE_EXEC | PAGE_WRITE | PAGE_READ) - -#define __S000 __pgprot(PAGE_NONE) -#define __S001 _PAGE_S(PAGE_READ) -#define __S010 _PAGE_S(PAGE_WRITE) -#define __S011 _PAGE_S(PAGE_WRITE | PAGE_READ) -#define __S100 _PAGE_S(PAGE_EXEC) -#define __S101 _PAGE_S(PAGE_EXEC | PAGE_READ) -#define __S110 _PAGE_S(PAGE_EXEC | PAGE_WRITE) -#define __S111 _PAGE_S(PAGE_EXEC | PAGE_WRITE | PAGE_READ) - -#define pte_none(x) (!pte_val(x)) -#define pte_present(x) (pte_val(x) & _PAGE_PRESENT) - -#define pte_clear(mm,addr,xp) \ - do { \ - set_pte_at(mm, addr, xp, __pte(0)); \ - } while (0) - -/* - * The following only work if pte_present() is true. - * Undefined behaviour if not.. - */ -static inline int pte_write(pte_t pte) -{ - return pte_val(pte) & _PAGE_RW; -} -static inline int pte_dirty(pte_t pte) -{ - return pte_val(pte) & _PAGE_DIRTY; -} -static inline int pte_young(pte_t pte) -{ - return pte_val(pte) & _PAGE_ACCESSED; -} -static inline int pte_special(pte_t pte) -{ - return 0; -} - -/* Mutator functions for PTE bits */ -static inline pte_t pte_wrprotect(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_RW)); - return pte; -} -static inline pte_t pte_mkclean(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); - return pte; -} -static inline pte_t pte_mkold(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_ACCESSED)); - return pte; -} -static inline pte_t pte_mkwrite(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) | _PAGE_RW)); - return pte; -} -static inline pte_t pte_mkdirty(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); - return pte; -} -static inline pte_t pte_mkyoung(pte_t pte) -{ - set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED)); - return pte; -} -static inline pte_t pte_mkspecial(pte_t pte) -{ - return pte; -} - -#define pmd_none(x) (!pmd_val(x)) -#define pmd_present(x) (pmd_val(x)) - -static inline void pmd_clear(pmd_t *pmdp) -{ - set_pmd(pmdp, __pmd(0)); -} - -#define pmd_bad(x) (pmd_val(x) & ~PAGE_MASK) - -/* - * Permanent address of a page. We don't support highmem, so this is - * trivial. - */ -#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) -#define pte_page(x) (pfn_to_page(pte_pfn(x))) - -/* - * Mark the prot value as uncacheable and unbufferable - */ -#define pgprot_noncached(prot) \ - __pgprot(pgprot_val(prot) & ~(_PAGE_BUFFER | _PAGE_CACHABLE)) - -/* - * Mark the prot value as uncacheable but bufferable - */ -#define pgprot_writecombine(prot) \ - __pgprot((pgprot_val(prot) & ~_PAGE_CACHABLE) | _PAGE_BUFFER) - -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - * - * extern pte_t mk_pte(struct page *page, pgprot_t pgprot) - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - -static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) -{ - set_pte(&pte, __pte((pte_val(pte) & _PAGE_CHG_MASK) - | pgprot_val(newprot))); - return pte; -} - -#define page_pte(page) page_pte_prot(page, __pgprot(0)) - -#define pmd_page_vaddr(pmd) pmd_val(pmd) -#define pmd_page(pmd) (virt_to_page(pmd_val(pmd))) - -/* to find an entry in a page-table-directory. */ -#define pgd_index(address) (((address) >> PGDIR_SHIFT) \ - & (PTRS_PER_PGD - 1)) -#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address)) - -/* to find an entry in a kernel page-table-directory */ -#define pgd_offset_k(address) pgd_offset(&init_mm, address) - -/* Find an entry in the third-level page table.. */ -#define pte_index(address) \ - ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) -#define pte_offset(dir, address) \ - ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address)) -#define pte_offset_kernel(dir, address) \ - ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address)) -#define pte_offset_map(dir, address) pte_offset_kernel(dir, address) -#define pte_unmap(pte) do { } while (0) - -struct vm_area_struct; -extern void update_mmu_cache(struct vm_area_struct * vma, - unsigned long address, pte_t *ptep); - -/* - * Encode and decode a swap entry - * - * Constraints: - * _PAGE_TYPE_* at bits 2-3 (for emulating _PAGE_PROTNONE) - * _PAGE_PRESENT at bit 10 - * - * We encode the type into bits 4-9 and offset into bits 11-31. This - * gives us a 21 bits offset, or 2**21 * 4K = 8G usable swap space per - * device, and 64 possible types. - * - * NOTE: We should set ZEROs at the position of _PAGE_PRESENT - * and _PAGE_PROTNONE bits - */ -#define __swp_type(x) (((x).val >> 4) & 0x3f) -#define __swp_offset(x) ((x).val >> 11) -#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 4) | ((offset) << 11) }) -#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) -#define __swp_entry_to_pte(x) ((pte_t) { (x).val }) - -typedef pte_t *pte_addr_t; - -#define kern_addr_valid(addr) (1) - -/* No page table caches to initialize (?) */ -#define pgtable_cache_init() do { } while(0) - -#include <asm-generic/pgtable.h> - -#endif /* !__ASSEMBLY__ */ - -#endif /* __ASM_AVR32_PGTABLE_H */ diff --git a/arch/avr32/include/asm/processor.h b/arch/avr32/include/asm/processor.h deleted file mode 100644 index 972adcc1e8f4..000000000000 --- a/arch/avr32/include/asm/processor.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PROCESSOR_H -#define __ASM_AVR32_PROCESSOR_H - -#include <asm/page.h> -#include <asm/cache.h> - -#define TASK_SIZE 0x80000000 - -#ifdef __KERNEL__ -#define STACK_TOP TASK_SIZE -#define STACK_TOP_MAX STACK_TOP -#endif - -#ifndef __ASSEMBLY__ - -static inline void *current_text_addr(void) -{ - register void *pc asm("pc"); - return pc; -} - -enum arch_type { - ARCH_AVR32A, - ARCH_AVR32B, - ARCH_MAX -}; - -enum cpu_type { - CPU_MORGAN, - CPU_AT32AP, - CPU_MAX -}; - -enum tlb_config { - TLB_NONE, - TLB_SPLIT, - TLB_UNIFIED, - TLB_INVALID -}; - -#define AVR32_FEATURE_RMW (1 << 0) -#define AVR32_FEATURE_DSP (1 << 1) -#define AVR32_FEATURE_SIMD (1 << 2) -#define AVR32_FEATURE_OCD (1 << 3) -#define AVR32_FEATURE_PCTR (1 << 4) -#define AVR32_FEATURE_JAVA (1 << 5) -#define AVR32_FEATURE_FPU (1 << 6) - -struct avr32_cpuinfo { - struct clk *clk; - unsigned long loops_per_jiffy; - enum arch_type arch_type; - enum cpu_type cpu_type; - unsigned short arch_revision; - unsigned short cpu_revision; - enum tlb_config tlb_config; - unsigned long features; - u32 device_id; - - struct cache_info icache; - struct cache_info dcache; -}; - -static inline unsigned int avr32_get_manufacturer_id(struct avr32_cpuinfo *cpu) -{ - return (cpu->device_id >> 1) & 0x7f; -} -static inline unsigned int avr32_get_product_number(struct avr32_cpuinfo *cpu) -{ - return (cpu->device_id >> 12) & 0xffff; -} -static inline unsigned int avr32_get_chip_revision(struct avr32_cpuinfo *cpu) -{ - return (cpu->device_id >> 28) & 0x0f; -} - -extern struct avr32_cpuinfo boot_cpu_data; - -/* No SMP support so far */ -#define current_cpu_data boot_cpu_data - -/* This decides where the kernel will search for a free chunk of vm - * space during mmap's - */ -#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) - -#define cpu_relax() barrier() -#define cpu_sync_pipeline() asm volatile("sub pc, -2" : : : "memory") - -struct cpu_context { - unsigned long sr; - unsigned long pc; - unsigned long ksp; /* Kernel stack pointer */ - unsigned long r7; - unsigned long r6; - unsigned long r5; - unsigned long r4; - unsigned long r3; - unsigned long r2; - unsigned long r1; - unsigned long r0; -}; - -/* This struct contains the CPU context as stored by switch_to() */ -struct thread_struct { - struct cpu_context cpu_context; - unsigned long single_step_addr; - u16 single_step_insn; -}; - -#define INIT_THREAD { \ - .cpu_context = { \ - .ksp = sizeof(init_stack) + (long)&init_stack, \ - }, \ -} - -/* - * Do necessary setup to start up a newly executed thread. - */ -#define start_thread(regs, new_pc, new_sp) \ - do { \ - memset(regs, 0, sizeof(*regs)); \ - regs->sr = MODE_USER; \ - regs->pc = new_pc & ~1; \ - regs->sp = new_sp; \ - } while(0) - -struct task_struct; - -/* Free all resources held by a thread */ -extern void release_thread(struct task_struct *); - -/* Return saved PC of a blocked thread */ -#define thread_saved_pc(tsk) ((tsk)->thread.cpu_context.pc) - -struct pt_regs; -extern unsigned long get_wchan(struct task_struct *p); -extern void show_regs_log_lvl(struct pt_regs *regs, const char *log_lvl); -extern void show_stack_log_lvl(struct task_struct *tsk, unsigned long sp, - struct pt_regs *regs, const char *log_lvl); - -#define task_pt_regs(p) \ - ((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1) - -#define KSTK_EIP(tsk) ((tsk)->thread.cpu_context.pc) -#define KSTK_ESP(tsk) ((tsk)->thread.cpu_context.ksp) - -#define ARCH_HAS_PREFETCH - -static inline void prefetch(const void *x) -{ - const char *c = x; - asm volatile("pref %0" : : "r"(c)); -} -#define PREFETCH_STRIDE L1_CACHE_BYTES - -#endif /* __ASSEMBLY__ */ - -#endif /* __ASM_AVR32_PROCESSOR_H */ diff --git a/arch/avr32/include/asm/ptrace.h b/arch/avr32/include/asm/ptrace.h deleted file mode 100644 index 630e4f9bf5f0..000000000000 --- a/arch/avr32/include/asm/ptrace.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_PTRACE_H -#define __ASM_AVR32_PTRACE_H - -#include <uapi/asm/ptrace.h> - -#ifndef __ASSEMBLY__ - -#include <asm/ocd.h> - -#define arch_has_single_step() (1) - -#define arch_ptrace_attach(child) ocd_enable(child) - -#define user_mode(regs) (((regs)->sr & MODE_MASK) == MODE_USER) -#define instruction_pointer(regs) ((regs)->pc) -#define profile_pc(regs) instruction_pointer(regs) -#define user_stack_pointer(regs) ((regs)->sp) - -static __inline__ int valid_user_regs(struct pt_regs *regs) -{ - /* - * Some of the Java bits might be acceptable if/when we - * implement some support for that stuff... - */ - if ((regs->sr & 0xffff0000) == 0) - return 1; - - /* - * Force status register flags to be sane and report this - * illegal behaviour... - */ - regs->sr &= 0x0000ffff; - return 0; -} - - -#endif /* ! __ASSEMBLY__ */ -#endif /* __ASM_AVR32_PTRACE_H */ diff --git a/arch/avr32/include/asm/serial.h b/arch/avr32/include/asm/serial.h deleted file mode 100644 index 5ecaebc22b02..000000000000 --- a/arch/avr32/include/asm/serial.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _ASM_SERIAL_H -#define _ASM_SERIAL_H - -/* - * This assumes you have a 1.8432 MHz clock for your UART. - * - * It'd be nice if someone built a serial card with a 24.576 MHz - * clock, since the 16550A is capable of handling a top speed of 1.5 - * megabits/second; but this requires the faster clock. - */ -#define BASE_BAUD (1843200 / 16) - -#endif /* _ASM_SERIAL_H */ diff --git a/arch/avr32/include/asm/setup.h b/arch/avr32/include/asm/setup.h deleted file mode 100644 index 73490ae0c476..000000000000 --- a/arch/avr32/include/asm/setup.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * Based on linux/include/asm-arm/setup.h - * Copyright (C) 1997-1999 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_SETUP_H__ -#define __ASM_AVR32_SETUP_H__ - -#include <uapi/asm/setup.h> - - -/* Magic number indicating that a tag table is present */ -#define ATAG_MAGIC 0xa2a25441 - -#ifndef __ASSEMBLY__ - -/* - * Generic memory range, used by several tags. - * - * addr is always physical. - * size is measured in bytes. - * next is for use by the OS, e.g. for grouping regions into - * linked lists. - */ -struct tag_mem_range { - u32 addr; - u32 size; - struct tag_mem_range * next; -}; - -/* The list ends with an ATAG_NONE node. */ -#define ATAG_NONE 0x00000000 - -struct tag_header { - u32 size; - u32 tag; -}; - -/* The list must start with an ATAG_CORE node */ -#define ATAG_CORE 0x54410001 - -struct tag_core { - u32 flags; - u32 pagesize; - u32 rootdev; -}; - -/* it is allowed to have multiple ATAG_MEM nodes */ -#define ATAG_MEM 0x54410002 -/* ATAG_MEM uses tag_mem_range */ - -/* command line: \0 terminated string */ -#define ATAG_CMDLINE 0x54410003 - -struct tag_cmdline { - char cmdline[1]; /* this is the minimum size */ -}; - -/* Ramdisk image (may be compressed) */ -#define ATAG_RDIMG 0x54410004 -/* ATAG_RDIMG uses tag_mem_range */ - -/* Information about various clocks present in the system */ -#define ATAG_CLOCK 0x54410005 - -struct tag_clock { - u32 clock_id; /* Which clock are we talking about? */ - u32 clock_flags; /* Special features */ - u64 clock_hz; /* Clock speed in Hz */ -}; - -/* The clock types we know about */ -#define CLOCK_BOOTCPU 0 - -/* Memory reserved for the system (e.g. the bootloader) */ -#define ATAG_RSVD_MEM 0x54410006 -/* ATAG_RSVD_MEM uses tag_mem_range */ - -/* Ethernet information */ - -#define ATAG_ETHERNET 0x54410007 - -struct tag_ethernet { - u8 mac_index; - u8 mii_phy_addr; - u8 hw_address[6]; -}; - -#define ETH_INVALID_PHY 0xff - -/* board information */ -#define ATAG_BOARDINFO 0x54410008 - -struct tag_boardinfo { - u32 board_number; -}; - -struct tag { - struct tag_header hdr; - union { - struct tag_core core; - struct tag_mem_range mem_range; - struct tag_cmdline cmdline; - struct tag_clock clock; - struct tag_ethernet ethernet; - struct tag_boardinfo boardinfo; - } u; -}; - -struct tagtable { - u32 tag; - int (*parse)(struct tag *); -}; - -#define __tag __used __attribute__((__section__(".taglist.init"))) -#define __tagtable(tag, fn) \ - static struct tagtable __tagtable_##fn __tag = { tag, fn } - -#define tag_member_present(tag,member) \ - ((unsigned long)(&((struct tag *)0L)->member + 1) \ - <= (tag)->hdr.size * 4) - -#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size)) -#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2) - -#define for_each_tag(t,base) \ - for (t = base; t->hdr.size; t = tag_next(t)) - -extern struct tag *bootloader_tags; - -extern resource_size_t fbmem_start; -extern resource_size_t fbmem_size; -extern u32 board_number; - -void setup_processor(void); - -#endif /* !__ASSEMBLY__ */ - -#endif /* __ASM_AVR32_SETUP_H__ */ diff --git a/arch/avr32/include/asm/shmparam.h b/arch/avr32/include/asm/shmparam.h deleted file mode 100644 index 3681266c77f7..000000000000 --- a/arch/avr32/include/asm/shmparam.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASM_AVR32_SHMPARAM_H -#define __ASM_AVR32_SHMPARAM_H - -#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ - -#endif /* __ASM_AVR32_SHMPARAM_H */ diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h deleted file mode 100644 index d875eb6a3f3c..000000000000 --- a/arch/avr32/include/asm/signal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_SIGNAL_H -#define __ASM_AVR32_SIGNAL_H - -#include <uapi/asm/signal.h> - -/* Most things should be clean enough to redefine this at will, if care - is taken to make libc match. */ - -#define _NSIG 64 -#define _NSIG_BPW 32 -#define _NSIG_WORDS (_NSIG / _NSIG_BPW) - -typedef unsigned long old_sigset_t; /* at least 32 bits */ - -typedef struct { - unsigned long sig[_NSIG_WORDS]; -} sigset_t; - -#define __ARCH_HAS_SA_RESTORER - -#include <asm/sigcontext.h> -#undef __HAVE_ARCH_SIG_BITOPS - -#endif diff --git a/arch/avr32/include/asm/string.h b/arch/avr32/include/asm/string.h deleted file mode 100644 index c91a623cd585..000000000000 --- a/arch/avr32/include/asm/string.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_STRING_H -#define __ASM_AVR32_STRING_H - -#define __HAVE_ARCH_MEMSET -extern void *memset(void *b, int c, size_t len); - -#define __HAVE_ARCH_MEMCPY -extern void *memcpy(void *to, const void *from, size_t len); - -#endif /* __ASM_AVR32_STRING_H */ diff --git a/arch/avr32/include/asm/switch_to.h b/arch/avr32/include/asm/switch_to.h deleted file mode 100644 index 6f00581c3d4f..000000000000 --- a/arch/avr32/include/asm/switch_to.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_SWITCH_TO_H -#define __ASM_AVR32_SWITCH_TO_H - -/* - * Help PathFinder and other Nexus-compliant debuggers keep track of - * the current PID by emitting an Ownership Trace Message each time we - * switch task. - */ -#ifdef CONFIG_OWNERSHIP_TRACE -#include <asm/ocd.h> -#define ocd_switch(prev, next) \ - do { \ - ocd_write(PID, prev->pid); \ - ocd_write(PID, next->pid); \ - } while(0) -#else -#define ocd_switch(prev, next) -#endif - -/* - * switch_to(prev, next, last) should switch from task `prev' to task - * `next'. `prev' will never be the same as `next'. - * - * We just delegate everything to the __switch_to assembly function, - * which is implemented in arch/avr32/kernel/switch_to.S - * - * mb() tells GCC not to cache `current' across this call. - */ -struct cpu_context; -struct task_struct; -extern struct task_struct *__switch_to(struct task_struct *, - struct cpu_context *, - struct cpu_context *); -#define switch_to(prev, next, last) \ - do { \ - ocd_switch(prev, next); \ - last = __switch_to(prev, &prev->thread.cpu_context + 1, \ - &next->thread.cpu_context); \ - } while (0) - - -#endif /* __ASM_AVR32_SWITCH_TO_H */ diff --git a/arch/avr32/include/asm/syscalls.h b/arch/avr32/include/asm/syscalls.h deleted file mode 100644 index 244f2acab546..000000000000 --- a/arch/avr32/include/asm/syscalls.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * syscalls.h - Linux syscall interfaces (arch-specific) - * - * Copyright (c) 2008 Jaswinder Singh - * - * This file is released under the GPLv2. - * See the file COPYING for more details. - */ - -#ifndef _ASM_AVR32_SYSCALLS_H -#define _ASM_AVR32_SYSCALLS_H - -#include <linux/compiler.h> -#include <linux/linkage.h> -#include <linux/types.h> -#include <linux/signal.h> - -/* mm/cache.c */ -asmlinkage int sys_cacheflush(int, void __user *, size_t); - -#endif /* _ASM_AVR32_SYSCALLS_H */ diff --git a/arch/avr32/include/asm/sysreg.h b/arch/avr32/include/asm/sysreg.h deleted file mode 100644 index d4e0950170ca..000000000000 --- a/arch/avr32/include/asm/sysreg.h +++ /dev/null @@ -1,291 +0,0 @@ -/* - * AVR32 System Registers - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_SYSREG_H -#define __ASM_AVR32_SYSREG_H - -/* sysreg register offsets */ -#define SYSREG_SR 0x0000 -#define SYSREG_EVBA 0x0004 -#define SYSREG_ACBA 0x0008 -#define SYSREG_CPUCR 0x000c -#define SYSREG_ECR 0x0010 -#define SYSREG_RSR_SUP 0x0014 -#define SYSREG_RSR_INT0 0x0018 -#define SYSREG_RSR_INT1 0x001c -#define SYSREG_RSR_INT2 0x0020 -#define SYSREG_RSR_INT3 0x0024 -#define SYSREG_RSR_EX 0x0028 -#define SYSREG_RSR_NMI 0x002c -#define SYSREG_RSR_DBG 0x0030 -#define SYSREG_RAR_SUP 0x0034 -#define SYSREG_RAR_INT0 0x0038 -#define SYSREG_RAR_INT1 0x003c -#define SYSREG_RAR_INT2 0x0040 -#define SYSREG_RAR_INT3 0x0044 -#define SYSREG_RAR_EX 0x0048 -#define SYSREG_RAR_NMI 0x004c -#define SYSREG_RAR_DBG 0x0050 -#define SYSREG_JECR 0x0054 -#define SYSREG_JOSP 0x0058 -#define SYSREG_JAVA_LV0 0x005c -#define SYSREG_JAVA_LV1 0x0060 -#define SYSREG_JAVA_LV2 0x0064 -#define SYSREG_JAVA_LV3 0x0068 -#define SYSREG_JAVA_LV4 0x006c -#define SYSREG_JAVA_LV5 0x0070 -#define SYSREG_JAVA_LV6 0x0074 -#define SYSREG_JAVA_LV7 0x0078 -#define SYSREG_JTBA 0x007c -#define SYSREG_JBCR 0x0080 -#define SYSREG_CONFIG0 0x0100 -#define SYSREG_CONFIG1 0x0104 -#define SYSREG_COUNT 0x0108 -#define SYSREG_COMPARE 0x010c -#define SYSREG_TLBEHI 0x0110 -#define SYSREG_TLBELO 0x0114 -#define SYSREG_PTBR 0x0118 -#define SYSREG_TLBEAR 0x011c -#define SYSREG_MMUCR 0x0120 -#define SYSREG_TLBARLO 0x0124 -#define SYSREG_TLBARHI 0x0128 -#define SYSREG_PCCNT 0x012c -#define SYSREG_PCNT0 0x0130 -#define SYSREG_PCNT1 0x0134 -#define SYSREG_PCCR 0x0138 -#define SYSREG_BEAR 0x013c -#define SYSREG_SABAL 0x0300 -#define SYSREG_SABAH 0x0304 -#define SYSREG_SABD 0x0308 - -/* Bitfields in SR */ -#define SYSREG_SR_C_OFFSET 0 -#define SYSREG_SR_C_SIZE 1 -#define SYSREG_Z_OFFSET 1 -#define SYSREG_Z_SIZE 1 -#define SYSREG_SR_N_OFFSET 2 -#define SYSREG_SR_N_SIZE 1 -#define SYSREG_SR_V_OFFSET 3 -#define SYSREG_SR_V_SIZE 1 -#define SYSREG_Q_OFFSET 4 -#define SYSREG_Q_SIZE 1 -#define SYSREG_L_OFFSET 5 -#define SYSREG_L_SIZE 1 -#define SYSREG_T_OFFSET 14 -#define SYSREG_T_SIZE 1 -#define SYSREG_SR_R_OFFSET 15 -#define SYSREG_SR_R_SIZE 1 -#define SYSREG_GM_OFFSET 16 -#define SYSREG_GM_SIZE 1 -#define SYSREG_I0M_OFFSET 17 -#define SYSREG_I0M_SIZE 1 -#define SYSREG_I1M_OFFSET 18 -#define SYSREG_I1M_SIZE 1 -#define SYSREG_I2M_OFFSET 19 -#define SYSREG_I2M_SIZE 1 -#define SYSREG_I3M_OFFSET 20 -#define SYSREG_I3M_SIZE 1 -#define SYSREG_EM_OFFSET 21 -#define SYSREG_EM_SIZE 1 -#define SYSREG_MODE_OFFSET 22 -#define SYSREG_MODE_SIZE 3 -#define SYSREG_M0_OFFSET 22 -#define SYSREG_M0_SIZE 1 -#define SYSREG_M1_OFFSET 23 -#define SYSREG_M1_SIZE 1 -#define SYSREG_M2_OFFSET 24 -#define SYSREG_M2_SIZE 1 -#define SYSREG_SR_D_OFFSET 26 -#define SYSREG_SR_D_SIZE 1 -#define SYSREG_DM_OFFSET 27 -#define SYSREG_DM_SIZE 1 -#define SYSREG_SR_J_OFFSET 28 -#define SYSREG_SR_J_SIZE 1 -#define SYSREG_H_OFFSET 29 -#define SYSREG_H_SIZE 1 - -/* Bitfields in CPUCR */ -#define SYSREG_BI_OFFSET 0 -#define SYSREG_BI_SIZE 1 -#define SYSREG_BE_OFFSET 1 -#define SYSREG_BE_SIZE 1 -#define SYSREG_FE_OFFSET 2 -#define SYSREG_FE_SIZE 1 -#define SYSREG_RE_OFFSET 3 -#define SYSREG_RE_SIZE 1 -#define SYSREG_IBE_OFFSET 4 -#define SYSREG_IBE_SIZE 1 -#define SYSREG_IEE_OFFSET 5 -#define SYSREG_IEE_SIZE 1 - -/* Bitfields in CONFIG0 */ -#define SYSREG_CONFIG0_R_OFFSET 0 -#define SYSREG_CONFIG0_R_SIZE 1 -#define SYSREG_CONFIG0_D_OFFSET 1 -#define SYSREG_CONFIG0_D_SIZE 1 -#define SYSREG_CONFIG0_S_OFFSET 2 -#define SYSREG_CONFIG0_S_SIZE 1 -#define SYSREG_CONFIG0_O_OFFSET 3 -#define SYSREG_CONFIG0_O_SIZE 1 -#define SYSREG_CONFIG0_P_OFFSET 4 -#define SYSREG_CONFIG0_P_SIZE 1 -#define SYSREG_CONFIG0_J_OFFSET 5 -#define SYSREG_CONFIG0_J_SIZE 1 -#define SYSREG_CONFIG0_F_OFFSET 6 -#define SYSREG_CONFIG0_F_SIZE 1 -#define SYSREG_MMUT_OFFSET 7 -#define SYSREG_MMUT_SIZE 3 -#define SYSREG_AR_OFFSET 10 -#define SYSREG_AR_SIZE 3 -#define SYSREG_AT_OFFSET 13 -#define SYSREG_AT_SIZE 3 -#define SYSREG_PROCESSORREVISION_OFFSET 16 -#define SYSREG_PROCESSORREVISION_SIZE 8 -#define SYSREG_PROCESSORID_OFFSET 24 -#define SYSREG_PROCESSORID_SIZE 8 - -/* Bitfields in CONFIG1 */ -#define SYSREG_DASS_OFFSET 0 -#define SYSREG_DASS_SIZE 3 -#define SYSREG_DLSZ_OFFSET 3 -#define SYSREG_DLSZ_SIZE 3 -#define SYSREG_DSET_OFFSET 6 -#define SYSREG_DSET_SIZE 4 -#define SYSREG_IASS_OFFSET 10 -#define SYSREG_IASS_SIZE 3 -#define SYSREG_ILSZ_OFFSET 13 -#define SYSREG_ILSZ_SIZE 3 -#define SYSREG_ISET_OFFSET 16 -#define SYSREG_ISET_SIZE 4 -#define SYSREG_DMMUSZ_OFFSET 20 -#define SYSREG_DMMUSZ_SIZE 6 -#define SYSREG_IMMUSZ_OFFSET 26 -#define SYSREG_IMMUSZ_SIZE 6 - -/* Bitfields in TLBEHI */ -#define SYSREG_ASID_OFFSET 0 -#define SYSREG_ASID_SIZE 8 -#define SYSREG_TLBEHI_I_OFFSET 8 -#define SYSREG_TLBEHI_I_SIZE 1 -#define SYSREG_TLBEHI_V_OFFSET 9 -#define SYSREG_TLBEHI_V_SIZE 1 -#define SYSREG_VPN_OFFSET 10 -#define SYSREG_VPN_SIZE 22 - -/* Bitfields in TLBELO */ -#define SYSREG_W_OFFSET 0 -#define SYSREG_W_SIZE 1 -#define SYSREG_TLBELO_D_OFFSET 1 -#define SYSREG_TLBELO_D_SIZE 1 -#define SYSREG_SZ_OFFSET 2 -#define SYSREG_SZ_SIZE 2 -#define SYSREG_AP_OFFSET 4 -#define SYSREG_AP_SIZE 3 -#define SYSREG_B_OFFSET 7 -#define SYSREG_B_SIZE 1 -#define SYSREG_G_OFFSET 8 -#define SYSREG_G_SIZE 1 -#define SYSREG_TLBELO_C_OFFSET 9 -#define SYSREG_TLBELO_C_SIZE 1 -#define SYSREG_PFN_OFFSET 10 -#define SYSREG_PFN_SIZE 22 - -/* Bitfields in MMUCR */ -#define SYSREG_E_OFFSET 0 -#define SYSREG_E_SIZE 1 -#define SYSREG_M_OFFSET 1 -#define SYSREG_M_SIZE 1 -#define SYSREG_MMUCR_I_OFFSET 2 -#define SYSREG_MMUCR_I_SIZE 1 -#define SYSREG_MMUCR_N_OFFSET 3 -#define SYSREG_MMUCR_N_SIZE 1 -#define SYSREG_MMUCR_S_OFFSET 4 -#define SYSREG_MMUCR_S_SIZE 1 -#define SYSREG_DLA_OFFSET 8 -#define SYSREG_DLA_SIZE 6 -#define SYSREG_DRP_OFFSET 14 -#define SYSREG_DRP_SIZE 6 -#define SYSREG_ILA_OFFSET 20 -#define SYSREG_ILA_SIZE 6 -#define SYSREG_IRP_OFFSET 26 -#define SYSREG_IRP_SIZE 6 - -/* Bitfields in PCCR */ -#define SYSREG_PCCR_E_OFFSET 0 -#define SYSREG_PCCR_E_SIZE 1 -#define SYSREG_PCCR_R_OFFSET 1 -#define SYSREG_PCCR_R_SIZE 1 -#define SYSREG_PCCR_C_OFFSET 2 -#define SYSREG_PCCR_C_SIZE 1 -#define SYSREG_PCCR_S_OFFSET 3 -#define SYSREG_PCCR_S_SIZE 1 -#define SYSREG_IEC_OFFSET 4 -#define SYSREG_IEC_SIZE 1 -#define SYSREG_IE0_OFFSET 5 -#define SYSREG_IE0_SIZE 1 -#define SYSREG_IE1_OFFSET 6 -#define SYSREG_IE1_SIZE 1 -#define SYSREG_FC_OFFSET 8 -#define SYSREG_FC_SIZE 1 -#define SYSREG_F0_OFFSET 9 -#define SYSREG_F0_SIZE 1 -#define SYSREG_F1_OFFSET 10 -#define SYSREG_F1_SIZE 1 -#define SYSREG_CONF0_OFFSET 12 -#define SYSREG_CONF0_SIZE 6 -#define SYSREG_CONF1_OFFSET 18 -#define SYSREG_CONF1_SIZE 6 - -/* Constants for ECR */ -#define ECR_UNRECOVERABLE 0 -#define ECR_TLB_MULTIPLE 1 -#define ECR_BUS_ERROR_WRITE 2 -#define ECR_BUS_ERROR_READ 3 -#define ECR_NMI 4 -#define ECR_ADDR_ALIGN_X 5 -#define ECR_PROTECTION_X 6 -#define ECR_DEBUG 7 -#define ECR_ILLEGAL_OPCODE 8 -#define ECR_UNIMPL_INSTRUCTION 9 -#define ECR_PRIVILEGE_VIOLATION 10 -#define ECR_FPE 11 -#define ECR_COPROC_ABSENT 12 -#define ECR_ADDR_ALIGN_R 13 -#define ECR_ADDR_ALIGN_W 14 -#define ECR_PROTECTION_R 15 -#define ECR_PROTECTION_W 16 -#define ECR_DTLB_MODIFIED 17 -#define ECR_TLB_MISS_X 20 -#define ECR_TLB_MISS_R 24 -#define ECR_TLB_MISS_W 28 - -/* Bit manipulation macros */ -#define SYSREG_BIT(name) \ - (1 << SYSREG_##name##_OFFSET) -#define SYSREG_BF(name,value) \ - (((value) & ((1 << SYSREG_##name##_SIZE) - 1)) \ - << SYSREG_##name##_OFFSET) -#define SYSREG_BFEXT(name,value)\ - (((value) >> SYSREG_##name##_OFFSET) \ - & ((1 << SYSREG_##name##_SIZE) - 1)) -#define SYSREG_BFINS(name,value,old) \ - (((old) & ~(((1 << SYSREG_##name##_SIZE) - 1) \ - << SYSREG_##name##_OFFSET)) \ - | SYSREG_BF(name,value)) - -/* Register access macros */ -#ifdef __CHECKER__ -extern unsigned long __builtin_mfsr(unsigned long reg); -extern void __builtin_mtsr(unsigned long reg, unsigned long value); -#endif - -#define sysreg_read(reg) __builtin_mfsr(SYSREG_##reg) -#define sysreg_write(reg, value) __builtin_mtsr(SYSREG_##reg, value) - -#endif /* __ASM_AVR32_SYSREG_H */ diff --git a/arch/avr32/include/asm/termios.h b/arch/avr32/include/asm/termios.h deleted file mode 100644 index 9d594376dbd6..000000000000 --- a/arch/avr32/include/asm/termios.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TERMIOS_H -#define __ASM_AVR32_TERMIOS_H - -#include <uapi/asm/termios.h> - -/* intr=^C quit=^\ erase=del kill=^U - eof=^D vtime=\0 vmin=\1 sxtc=\0 - start=^Q stop=^S susp=^Z eol=\0 - reprint=^R discard=^U werase=^W lnext=^V - eol2=\0 -*/ -#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" - -#include <asm-generic/termios-base.h> - -#endif /* __ASM_AVR32_TERMIOS_H */ diff --git a/arch/avr32/include/asm/thread_info.h b/arch/avr32/include/asm/thread_info.h deleted file mode 100644 index d4d3079541ea..000000000000 --- a/arch/avr32/include/asm/thread_info.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_THREAD_INFO_H -#define __ASM_AVR32_THREAD_INFO_H - -#include <asm/page.h> - -#define THREAD_SIZE_ORDER 1 -#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) - -#ifndef __ASSEMBLY__ -#include <asm/types.h> - -struct task_struct; - -struct thread_info { - struct task_struct *task; /* main task structure */ - unsigned long flags; /* low level flags */ - __u32 cpu; - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ - __u32 rar_saved; /* return address... */ - __u32 rsr_saved; /* ...and status register - saved by debug handler - when setting up - trampoline */ - __u8 supervisor_stack[0]; -}; - -#define INIT_THREAD_INFO(tsk) \ -{ \ - .task = &tsk, \ - .flags = 0, \ - .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ -} - -#define init_thread_info (init_thread_union.thread_info) -#define init_stack (init_thread_union.stack) - -/* - * Get the thread information struct from C. - * We do the usual trick and use the lower end of the stack for this - */ -static inline struct thread_info *current_thread_info(void) -{ - unsigned long addr = ~(THREAD_SIZE - 1); - - asm("and %0, sp" : "=r"(addr) : "0"(addr)); - return (struct thread_info *)addr; -} - -#define get_thread_info(ti) get_task_struct((ti)->task) -#define put_thread_info(ti) put_task_struct((ti)->task) - -#endif /* !__ASSEMBLY__ */ - -/* - * Thread information flags - * - these are process state flags that various assembly files may need to access - * - pending work-to-be-done flags are in LSW - * - other flags in MSW - */ -#define TIF_SYSCALL_TRACE 0 /* syscall trace active */ -#define TIF_SIGPENDING 1 /* signal pending */ -#define TIF_NEED_RESCHED 2 /* rescheduling necessary */ -#define TIF_BREAKPOINT 4 /* enter monitor mode on return */ -#define TIF_SINGLE_STEP 5 /* single step in progress */ -#define TIF_MEMDIE 6 /* is terminating due to OOM killer */ -#define TIF_RESTORE_SIGMASK 7 /* restore signal mask in do_signal */ -#define TIF_CPU_GOING_TO_SLEEP 8 /* CPU is entering sleep 0 mode */ -#define TIF_NOTIFY_RESUME 9 /* callback before returning to user */ -#define TIF_DEBUG 30 /* debugging enabled */ -#define TIF_USERSPACE 31 /* true if FS sets userspace */ - -#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) -#define _TIF_SIGPENDING (1 << TIF_SIGPENDING) -#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) -#define _TIF_BREAKPOINT (1 << TIF_BREAKPOINT) -#define _TIF_SINGLE_STEP (1 << TIF_SINGLE_STEP) -#define _TIF_MEMDIE (1 << TIF_MEMDIE) -#define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP) -#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) - -/* Note: The masks below must never span more than 16 bits! */ - -/* work to do on interrupt/exception return */ -#define _TIF_WORK_MASK \ - (_TIF_SIGPENDING \ - | _TIF_NOTIFY_RESUME \ - | _TIF_NEED_RESCHED \ - | _TIF_BREAKPOINT) - -/* work to do on any return to userspace */ -#define _TIF_ALLWORK_MASK (_TIF_WORK_MASK | _TIF_SYSCALL_TRACE) -/* work to do on return from debug mode */ -#define _TIF_DBGWORK_MASK (_TIF_WORK_MASK & ~_TIF_BREAKPOINT) - -#endif /* __ASM_AVR32_THREAD_INFO_H */ diff --git a/arch/avr32/include/asm/timex.h b/arch/avr32/include/asm/timex.h deleted file mode 100644 index 187dcf38b210..000000000000 --- a/arch/avr32/include/asm/timex.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TIMEX_H -#define __ASM_AVR32_TIMEX_H - -/* - * This is the frequency of the timer used for Linux's timer interrupt. - * The value should be defined as accurate as possible or under certain - * circumstances Linux timekeeping might become inaccurate or fail. - * - * For many system the exact clockrate of the timer isn't known but due to - * the way this value is used we can get away with a wrong value as long - * as this value is: - * - * - a multiple of HZ - * - a divisor of the actual rate - * - * 500000 is a good such cheat value. - * - * The obscure number 1193182 is the same as used by the original i8254 - * time in legacy PC hardware; the chip is never found in AVR32 systems. - */ -#define CLOCK_TICK_RATE 500000 /* Underlying HZ */ - -typedef unsigned long cycles_t; - -static inline cycles_t get_cycles (void) -{ - return 0; -} - -#define ARCH_HAS_READ_CURRENT_TIMER - -#endif /* __ASM_AVR32_TIMEX_H */ diff --git a/arch/avr32/include/asm/tlb.h b/arch/avr32/include/asm/tlb.h deleted file mode 100644 index 5c55f9ce7c7d..000000000000 --- a/arch/avr32/include/asm/tlb.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TLB_H -#define __ASM_AVR32_TLB_H - -#define tlb_start_vma(tlb, vma) \ - flush_cache_range(vma, vma->vm_start, vma->vm_end) - -#define tlb_end_vma(tlb, vma) \ - flush_tlb_range(vma, vma->vm_start, vma->vm_end) - -#define __tlb_remove_tlb_entry(tlb, pte, address) do { } while(0) - -/* - * Flush whole TLB for MM - */ -#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) - -#include <asm-generic/tlb.h> - -/* - * For debugging purposes - */ -extern void show_dtlb_entry(unsigned int index); -extern void dump_dtlb(void); - -#endif /* __ASM_AVR32_TLB_H */ diff --git a/arch/avr32/include/asm/tlbflush.h b/arch/avr32/include/asm/tlbflush.h deleted file mode 100644 index bf90a786f6be..000000000000 --- a/arch/avr32/include/asm/tlbflush.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TLBFLUSH_H -#define __ASM_AVR32_TLBFLUSH_H - -#include <asm/mmu.h> - -/* - * TLB flushing: - * - * - flush_tlb() flushes the current mm struct TLBs - * - flush_tlb_all() flushes all processes' TLB entries - * - flush_tlb_mm(mm) flushes the specified mm context TLBs - * - flush_tlb_page(vma, vmaddr) flushes one page - * - flush_tlb_range(vma, start, end) flushes a range of pages - * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages - */ -extern void flush_tlb(void); -extern void flush_tlb_all(void); -extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, - unsigned long end); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); - -extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); - -#endif /* __ASM_AVR32_TLBFLUSH_H */ diff --git a/arch/avr32/include/asm/traps.h b/arch/avr32/include/asm/traps.h deleted file mode 100644 index 6a8fb944f414..000000000000 --- a/arch/avr32/include/asm/traps.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TRAPS_H -#define __ASM_AVR32_TRAPS_H - -#include <linux/list.h> - -struct undef_hook { - struct list_head node; - u32 insn_mask; - u32 insn_val; - int (*fn)(struct pt_regs *regs, u32 insn); -}; - -void register_undef_hook(struct undef_hook *hook); -void unregister_undef_hook(struct undef_hook *hook); - -#endif /* __ASM_AVR32_TRAPS_H */ diff --git a/arch/avr32/include/asm/types.h b/arch/avr32/include/asm/types.h deleted file mode 100644 index 59324058069c..000000000000 --- a/arch/avr32/include/asm/types.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_TYPES_H -#define __ASM_AVR32_TYPES_H - -#include <uapi/asm/types.h> - -/* - * These aren't exported outside the kernel to avoid name space clashes - */ - -#define BITS_PER_LONG 32 - -#endif /* __ASM_AVR32_TYPES_H */ diff --git a/arch/avr32/include/asm/uaccess.h b/arch/avr32/include/asm/uaccess.h deleted file mode 100644 index 619d50e843a5..000000000000 --- a/arch/avr32/include/asm/uaccess.h +++ /dev/null @@ -1,312 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_UACCESS_H -#define __ASM_AVR32_UACCESS_H - -typedef struct { - unsigned int is_user_space; -} mm_segment_t; - -/* - * The fs value determines whether argument validity checking should be - * performed or not. If get_fs() == USER_DS, checking is performed, with - * get_fs() == KERNEL_DS, checking is bypassed. - * - * For historical reasons (Data Segment Register?), these macros are misnamed. - */ -#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) -#define segment_eq(a, b) ((a).is_user_space == (b).is_user_space) - -#define USER_ADDR_LIMIT 0x80000000 - -#define KERNEL_DS MAKE_MM_SEG(0) -#define USER_DS MAKE_MM_SEG(1) - -#define get_ds() (KERNEL_DS) - -static inline mm_segment_t get_fs(void) -{ - return MAKE_MM_SEG(test_thread_flag(TIF_USERSPACE)); -} - -static inline void set_fs(mm_segment_t s) -{ - if (s.is_user_space) - set_thread_flag(TIF_USERSPACE); - else - clear_thread_flag(TIF_USERSPACE); -} - -/* - * Test whether a block of memory is a valid user space address. - * Returns 0 if the range is valid, nonzero otherwise. - * - * We do the following checks: - * 1. Is the access from kernel space? - * 2. Does (addr + size) set the carry bit? - * 3. Is (addr + size) a negative number (i.e. >= 0x80000000)? - * - * If yes on the first check, access is granted. - * If no on any of the others, access is denied. - */ -#define __range_ok(addr, size) \ - (test_thread_flag(TIF_USERSPACE) \ - && (((unsigned long)(addr) >= 0x80000000) \ - || ((unsigned long)(size) > 0x80000000) \ - || (((unsigned long)(addr) + (unsigned long)(size)) > 0x80000000))) - -#define access_ok(type, addr, size) (likely(__range_ok(addr, size) == 0)) - -/* Generic arbitrary sized copy. Return the number of bytes NOT copied */ -extern __kernel_size_t __copy_user(void *to, const void *from, - __kernel_size_t n); - -static inline unsigned long -raw_copy_to_user(void __user *to, const void *from, unsigned long n) -{ - return __copy_user((void __force *)to, from, n); -} -static inline unsigned long -raw_copy_from_user(void *to, const void __user *from, unsigned long n) -{ - return __copy_user(to, (const void __force *)from, n); -} -#define INLINE_COPY_FROM_USER -#define INLINE_COPY_TO_USER - -/* - * put_user: - Write a simple value into user space. - * @x: Value to copy to user space. - * @ptr: Destination address, in user space. - * - * Context: User context only. This function may sleep if pagefaults are - * enabled. - * - * This macro copies a single simple value from kernel space to user - * space. It supports simple types like char and int, but not larger - * data types like structures or arrays. - * - * @ptr must have pointer-to-simple-variable type, and @x must be assignable - * to the result of dereferencing @ptr. - * - * Returns zero on success, or -EFAULT on error. - */ -#define put_user(x, ptr) \ - __put_user_check((x), (ptr), sizeof(*(ptr))) - -/* - * get_user: - Get a simple variable from user space. - * @x: Variable to store result. - * @ptr: Source address, in user space. - * - * Context: User context only. This function may sleep if pagefaults are - * enabled. - * - * This macro copies a single simple variable from user space to kernel - * space. It supports simple types like char and int, but not larger - * data types like structures or arrays. - * - * @ptr must have pointer-to-simple-variable type, and the result of - * dereferencing @ptr must be assignable to @x without a cast. - * - * Returns zero on success, or -EFAULT on error. - * On error, the variable @x is set to zero. - */ -#define get_user(x, ptr) \ - __get_user_check((x), (ptr), sizeof(*(ptr))) - -/* - * __put_user: - Write a simple value into user space, with less checking. - * @x: Value to copy to user space. - * @ptr: Destination address, in user space. - * - * Context: User context only. This function may sleep if pagefaults are - * enabled. - * - * This macro copies a single simple value from kernel space to user - * space. It supports simple types like char and int, but not larger - * data types like structures or arrays. - * - * @ptr must have pointer-to-simple-variable type, and @x must be assignable - * to the result of dereferencing @ptr. - * - * Caller must check the pointer with access_ok() before calling this - * function. - * - * Returns zero on success, or -EFAULT on error. - */ -#define __put_user(x, ptr) \ - __put_user_nocheck((x), (ptr), sizeof(*(ptr))) - -/* - * __get_user: - Get a simple variable from user space, with less checking. - * @x: Variable to store result. - * @ptr: Source address, in user space. - * - * Context: User context only. This function may sleep if pagefaults are - * enabled. - * - * This macro copies a single simple variable from user space to kernel - * space. It supports simple types like char and int, but not larger - * data types like structures or arrays. - * - * @ptr must have pointer-to-simple-variable type, and the result of - * dereferencing @ptr must be assignable to @x without a cast. - * - * Caller must check the pointer with access_ok() before calling this - * function. - * - * Returns zero on success, or -EFAULT on error. - * On error, the variable @x is set to zero. - */ -#define __get_user(x, ptr) \ - __get_user_nocheck((x), (ptr), sizeof(*(ptr))) - -extern int __get_user_bad(void); -extern int __put_user_bad(void); - -#define __get_user_nocheck(x, ptr, size) \ -({ \ - unsigned long __gu_val = 0; \ - int __gu_err = 0; \ - \ - switch (size) { \ - case 1: __get_user_asm("ub", __gu_val, ptr, __gu_err); break; \ - case 2: __get_user_asm("uh", __gu_val, ptr, __gu_err); break; \ - case 4: __get_user_asm("w", __gu_val, ptr, __gu_err); break; \ - default: __gu_err = __get_user_bad(); break; \ - } \ - \ - x = (__force typeof(*(ptr)))__gu_val; \ - __gu_err; \ -}) - -#define __get_user_check(x, ptr, size) \ -({ \ - unsigned long __gu_val = 0; \ - const typeof(*(ptr)) __user * __gu_addr = (ptr); \ - int __gu_err = 0; \ - \ - if (access_ok(VERIFY_READ, __gu_addr, size)) { \ - switch (size) { \ - case 1: \ - __get_user_asm("ub", __gu_val, __gu_addr, \ - __gu_err); \ - break; \ - case 2: \ - __get_user_asm("uh", __gu_val, __gu_addr, \ - __gu_err); \ - break; \ - case 4: \ - __get_user_asm("w", __gu_val, __gu_addr, \ - __gu_err); \ - break; \ - default: \ - __gu_err = __get_user_bad(); \ - break; \ - } \ - } else { \ - __gu_err = -EFAULT; \ - } \ - x = (__force typeof(*(ptr)))__gu_val; \ - __gu_err; \ -}) - -#define __get_user_asm(suffix, __gu_val, ptr, __gu_err) \ - asm volatile( \ - "1: ld." suffix " %1, %3 \n" \ - "2: \n" \ - " .subsection 1 \n" \ - "3: mov %0, %4 \n" \ - " rjmp 2b \n" \ - " .subsection 0 \n" \ - " .section __ex_table, \"a\" \n" \ - " .long 1b, 3b \n" \ - " .previous \n" \ - : "=r"(__gu_err), "=r"(__gu_val) \ - : "0"(__gu_err), "m"(*(ptr)), "i"(-EFAULT)) - -#define __put_user_nocheck(x, ptr, size) \ -({ \ - typeof(*(ptr)) __pu_val; \ - int __pu_err = 0; \ - \ - __pu_val = (x); \ - switch (size) { \ - case 1: __put_user_asm("b", ptr, __pu_val, __pu_err); break; \ - case 2: __put_user_asm("h", ptr, __pu_val, __pu_err); break; \ - case 4: __put_user_asm("w", ptr, __pu_val, __pu_err); break; \ - case 8: __put_user_asm("d", ptr, __pu_val, __pu_err); break; \ - default: __pu_err = __put_user_bad(); break; \ - } \ - __pu_err; \ -}) - -#define __put_user_check(x, ptr, size) \ -({ \ - typeof(*(ptr)) __pu_val; \ - typeof(*(ptr)) __user *__pu_addr = (ptr); \ - int __pu_err = 0; \ - \ - __pu_val = (x); \ - if (access_ok(VERIFY_WRITE, __pu_addr, size)) { \ - switch (size) { \ - case 1: \ - __put_user_asm("b", __pu_addr, __pu_val, \ - __pu_err); \ - break; \ - case 2: \ - __put_user_asm("h", __pu_addr, __pu_val, \ - __pu_err); \ - break; \ - case 4: \ - __put_user_asm("w", __pu_addr, __pu_val, \ - __pu_err); \ - break; \ - case 8: \ - __put_user_asm("d", __pu_addr, __pu_val, \ - __pu_err); \ - break; \ - default: \ - __pu_err = __put_user_bad(); \ - break; \ - } \ - } else { \ - __pu_err = -EFAULT; \ - } \ - __pu_err; \ -}) - -#define __put_user_asm(suffix, ptr, __pu_val, __gu_err) \ - asm volatile( \ - "1: st." suffix " %1, %3 \n" \ - "2: \n" \ - " .subsection 1 \n" \ - "3: mov %0, %4 \n" \ - " rjmp 2b \n" \ - " .subsection 0 \n" \ - " .section __ex_table, \"a\" \n" \ - " .long 1b, 3b \n" \ - " .previous \n" \ - : "=r"(__gu_err), "=m"(*(ptr)) \ - : "0"(__gu_err), "r"(__pu_val), "i"(-EFAULT)) - -extern __kernel_size_t clear_user(void __user *addr, __kernel_size_t size); -extern __kernel_size_t __clear_user(void __user *addr, __kernel_size_t size); - -extern long strncpy_from_user(char *dst, const char __user *src, long count); -extern long __strncpy_from_user(char *dst, const char __user *src, long count); - -extern long strnlen_user(const char __user *__s, long __n); -extern long __strnlen_user(const char __user *__s, long __n); - -#define strlen_user(s) strnlen_user(s, ~0UL >> 1) - -#include <asm/extable.h> - -#endif /* __ASM_AVR32_UACCESS_H */ diff --git a/arch/avr32/include/asm/ucontext.h b/arch/avr32/include/asm/ucontext.h deleted file mode 100644 index ac7259c2a799..000000000000 --- a/arch/avr32/include/asm/ucontext.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __ASM_AVR32_UCONTEXT_H -#define __ASM_AVR32_UCONTEXT_H - -struct ucontext { - unsigned long uc_flags; - struct ucontext * uc_link; - stack_t uc_stack; - struct sigcontext uc_mcontext; - sigset_t uc_sigmask; -}; - -#endif /* __ASM_AVR32_UCONTEXT_H */ diff --git a/arch/avr32/include/asm/unaligned.h b/arch/avr32/include/asm/unaligned.h deleted file mode 100644 index 041877290470..000000000000 --- a/arch/avr32/include/asm/unaligned.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _ASM_AVR32_UNALIGNED_H -#define _ASM_AVR32_UNALIGNED_H - -/* - * AVR32 can handle some unaligned accesses, depending on the - * implementation. The AVR32 AP implementation can handle unaligned - * words, but halfwords must be halfword-aligned, and doublewords must - * be word-aligned. - * - * However, swapped word loads must be word-aligned so we can't - * optimize word loads in general. - */ - -#include <linux/unaligned/be_struct.h> -#include <linux/unaligned/le_byteshift.h> -#include <linux/unaligned/generic.h> - -#define get_unaligned __get_unaligned_be -#define put_unaligned __put_unaligned_be - -#endif /* _ASM_AVR32_UNALIGNED_H */ diff --git a/arch/avr32/include/asm/unistd.h b/arch/avr32/include/asm/unistd.h deleted file mode 100644 index 2011bee3f252..000000000000 --- a/arch/avr32/include/asm/unistd.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_AVR32_UNISTD_H -#define __ASM_AVR32_UNISTD_H - -#include <uapi/asm/unistd.h> - -#define NR_syscalls 321 - -/* Old stuff */ -#define __IGNORE_uselib -#define __IGNORE_mmap - -/* NUMA stuff */ -#define __IGNORE_mbind -#define __IGNORE_get_mempolicy -#define __IGNORE_set_mempolicy -#define __IGNORE_migrate_pages -#define __IGNORE_move_pages - -/* SMP stuff */ -#define __IGNORE_getcpu - -#define __ARCH_WANT_STAT64 -#define __ARCH_WANT_SYS_ALARM -#define __ARCH_WANT_SYS_GETHOSTNAME -#define __ARCH_WANT_SYS_PAUSE -#define __ARCH_WANT_SYS_TIME -#define __ARCH_WANT_SYS_UTIME -#define __ARCH_WANT_SYS_WAITPID -#define __ARCH_WANT_SYS_FADVISE64 -#define __ARCH_WANT_SYS_GETPGRP -#define __ARCH_WANT_SYS_LLSEEK -#define __ARCH_WANT_SYS_GETPGRP -#define __ARCH_WANT_SYS_FORK -#define __ARCH_WANT_SYS_VFORK -#define __ARCH_WANT_SYS_CLONE - -#endif /* __ASM_AVR32_UNISTD_H */ diff --git a/arch/avr32/include/asm/user.h b/arch/avr32/include/asm/user.h deleted file mode 100644 index 7e9152f81f5e..000000000000 --- a/arch/avr32/include/asm/user.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Note: We may not need these definitions for AVR32, as we don't - * support a.out. - */ -#ifndef __ASM_AVR32_USER_H -#define __ASM_AVR32_USER_H - -#include <linux/types.h> -#include <asm/ptrace.h> -#include <asm/page.h> - -/* - * Core file format: The core file is written in such a way that gdb - * can understand it and provide useful information to the user (under - * linux we use the `trad-core' bfd). The file contents are as follows: - * - * upage: 1 page consisting of a user struct that tells gdb - * what is present in the file. Directly after this is a - * copy of the task_struct, which is currently not used by gdb, - * but it may come in handy at some point. All of the registers - * are stored as part of the upage. The upage should always be - * only one page long. - * data: The data segment follows next. We use current->end_text to - * current->brk to pick up all of the user variables, plus any memory - * that may have been sbrk'ed. No attempt is made to determine if a - * page is demand-zero or if a page is totally unused, we just cover - * the entire range. All of the addresses are rounded in such a way - * that an integral number of pages is written. - * stack: We need the stack information in order to get a meaningful - * backtrace. We need to write the data from usp to - * current->start_stack, so we round each of these in order to be able - * to write an integer number of pages. - */ - -struct user_fpu_struct { - /* We have no FPU (yet) */ -}; - -struct user { - struct pt_regs regs; /* entire machine state */ - size_t u_tsize; /* text size (pages) */ - size_t u_dsize; /* data size (pages) */ - size_t u_ssize; /* stack size (pages) */ - unsigned long start_code; /* text starting address */ - unsigned long start_data; /* data starting address */ - unsigned long start_stack; /* stack starting address */ - long int signal; /* signal causing core dump */ - unsigned long u_ar0; /* help gdb find registers */ - unsigned long magic; /* identifies a core file */ - char u_comm[32]; /* user command name */ -}; - -#define NBPG PAGE_SIZE -#define UPAGES 1 -#define HOST_TEXT_START_ADDR (u.start_code) -#define HOST_DATA_START_ADDR (u.start_data) -#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) - -#endif /* __ASM_AVR32_USER_H */ diff --git a/arch/avr32/include/uapi/asm/Kbuild b/arch/avr32/include/uapi/asm/Kbuild deleted file mode 100644 index 08d8a3d76ea8..000000000000 --- a/arch/avr32/include/uapi/asm/Kbuild +++ /dev/null @@ -1,36 +0,0 @@ -# UAPI Header export list -include include/uapi/asm-generic/Kbuild.asm - -header-y += auxvec.h -header-y += byteorder.h -header-y += cachectl.h -header-y += msgbuf.h -header-y += param.h -header-y += posix_types.h -header-y += ptrace.h -header-y += sembuf.h -header-y += setup.h -header-y += shmbuf.h -header-y += sigcontext.h -header-y += signal.h -header-y += socket.h -header-y += sockios.h -header-y += stat.h -header-y += swab.h -header-y += termbits.h -header-y += termios.h -header-y += types.h -header-y += unistd.h -generic-y += bitsperlong.h -generic-y += errno.h -generic-y += fcntl.h -generic-y += ioctl.h -generic-y += ioctls.h -generic-y += ipcbuf.h -generic-y += kvm_para.h -generic-y += mman.h -generic-y += param.h -generic-y += poll.h -generic-y += resource.h -generic-y += siginfo.h -generic-y += statfs.h diff --git a/arch/avr32/include/uapi/asm/auxvec.h b/arch/avr32/include/uapi/asm/auxvec.h deleted file mode 100644 index 4f02da3ffefa..000000000000 --- a/arch/avr32/include/uapi/asm/auxvec.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_AUXVEC_H -#define _UAPI__ASM_AVR32_AUXVEC_H - -#endif /* _UAPI__ASM_AVR32_AUXVEC_H */ diff --git a/arch/avr32/include/uapi/asm/byteorder.h b/arch/avr32/include/uapi/asm/byteorder.h deleted file mode 100644 index 71242f0d39c6..000000000000 --- a/arch/avr32/include/uapi/asm/byteorder.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * AVR32 endian-conversion functions. - */ -#ifndef _UAPI__ASM_AVR32_BYTEORDER_H -#define _UAPI__ASM_AVR32_BYTEORDER_H - -#include <linux/byteorder/big_endian.h> - -#endif /* _UAPI__ASM_AVR32_BYTEORDER_H */ diff --git a/arch/avr32/include/uapi/asm/cachectl.h b/arch/avr32/include/uapi/asm/cachectl.h deleted file mode 100644 index 573a9584dd57..000000000000 --- a/arch/avr32/include/uapi/asm/cachectl.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_CACHECTL_H -#define _UAPI__ASM_AVR32_CACHECTL_H - -/* - * Operations that can be performed through the cacheflush system call - */ - -/* Clean the data cache, then invalidate the icache */ -#define CACHE_IFLUSH 0 - -#endif /* _UAPI__ASM_AVR32_CACHECTL_H */ diff --git a/arch/avr32/include/uapi/asm/msgbuf.h b/arch/avr32/include/uapi/asm/msgbuf.h deleted file mode 100644 index 9eae6effad14..000000000000 --- a/arch/avr32/include/uapi/asm/msgbuf.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_MSGBUF_H -#define _UAPI__ASM_AVR32_MSGBUF_H - -/* - * The msqid64_ds structure for i386 architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct msqid64_ds { - struct ipc64_perm msg_perm; - __kernel_time_t msg_stime; /* last msgsnd time */ - unsigned long __unused1; - __kernel_time_t msg_rtime; /* last msgrcv time */ - unsigned long __unused2; - __kernel_time_t msg_ctime; /* last change time */ - unsigned long __unused3; - unsigned long msg_cbytes; /* current number of bytes on queue */ - unsigned long msg_qnum; /* number of messages in queue */ - unsigned long msg_qbytes; /* max number of bytes on queue */ - __kernel_pid_t msg_lspid; /* pid of last msgsnd */ - __kernel_pid_t msg_lrpid; /* last receive pid */ - unsigned long __unused4; - unsigned long __unused5; -}; - -#endif /* _UAPI__ASM_AVR32_MSGBUF_H */ diff --git a/arch/avr32/include/uapi/asm/posix_types.h b/arch/avr32/include/uapi/asm/posix_types.h deleted file mode 100644 index 5b813a8abf09..000000000000 --- a/arch/avr32/include/uapi/asm/posix_types.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_POSIX_TYPES_H -#define _UAPI__ASM_AVR32_POSIX_TYPES_H - -/* - * This file is generally used by user-level software, so you need to - * be a little careful about namespace pollution etc. Also, we cannot - * assume GCC is being used. - */ - -typedef unsigned short __kernel_mode_t; -#define __kernel_mode_t __kernel_mode_t - -typedef unsigned short __kernel_ipc_pid_t; -#define __kernel_ipc_pid_t __kernel_ipc_pid_t - -typedef unsigned long __kernel_size_t; -typedef long __kernel_ssize_t; -typedef int __kernel_ptrdiff_t; -#define __kernel_size_t __kernel_size_t - -typedef unsigned short __kernel_old_uid_t; -typedef unsigned short __kernel_old_gid_t; -#define __kernel_old_uid_t __kernel_old_uid_t - -typedef unsigned short __kernel_old_dev_t; -#define __kernel_old_dev_t __kernel_old_dev_t - -#include <asm-generic/posix_types.h> - -#endif /* _UAPI__ASM_AVR32_POSIX_TYPES_H */ diff --git a/arch/avr32/include/uapi/asm/ptrace.h b/arch/avr32/include/uapi/asm/ptrace.h deleted file mode 100644 index fe8c16275bc0..000000000000 --- a/arch/avr32/include/uapi/asm/ptrace.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_PTRACE_H -#define _UAPI__ASM_AVR32_PTRACE_H - -#define PTRACE_GETREGS 12 -#define PTRACE_SETREGS 13 - -/* - * Status Register bits - */ -#define SR_H 0x20000000 -#define SR_J 0x10000000 -#define SR_DM 0x08000000 -#define SR_D 0x04000000 -#define MODE_NMI 0x01c00000 -#define MODE_EXCEPTION 0x01800000 -#define MODE_INT3 0x01400000 -#define MODE_INT2 0x01000000 -#define MODE_INT1 0x00c00000 -#define MODE_INT0 0x00800000 -#define MODE_SUPERVISOR 0x00400000 -#define MODE_USER 0x00000000 -#define MODE_MASK 0x01c00000 -#define SR_EM 0x00200000 -#define SR_I3M 0x00100000 -#define SR_I2M 0x00080000 -#define SR_I1M 0x00040000 -#define SR_I0M 0x00020000 -#define SR_GM 0x00010000 - -#define SR_H_BIT 29 -#define SR_J_BIT 28 -#define SR_DM_BIT 27 -#define SR_D_BIT 26 -#define MODE_SHIFT 22 -#define SR_EM_BIT 21 -#define SR_I3M_BIT 20 -#define SR_I2M_BIT 19 -#define SR_I1M_BIT 18 -#define SR_I0M_BIT 17 -#define SR_GM_BIT 16 - -/* The user-visible part */ -#define SR_L 0x00000020 -#define SR_Q 0x00000010 -#define SR_V 0x00000008 -#define SR_N 0x00000004 -#define SR_Z 0x00000002 -#define SR_C 0x00000001 - -#define SR_L_BIT 5 -#define SR_Q_BIT 4 -#define SR_V_BIT 3 -#define SR_N_BIT 2 -#define SR_Z_BIT 1 -#define SR_C_BIT 0 - -/* - * The order is defined by the stmts instruction. r0 is stored first, - * so it gets the highest address. - * - * Registers 0-12 are general-purpose registers (r12 is normally used for - * the function return value). - * Register 13 is the stack pointer - * Register 14 is the link register - * Register 15 is the program counter (retrieved from the RAR sysreg) - */ -#define FRAME_SIZE_FULL 72 -#define REG_R12_ORIG 68 -#define REG_R0 64 -#define REG_R1 60 -#define REG_R2 56 -#define REG_R3 52 -#define REG_R4 48 -#define REG_R5 44 -#define REG_R6 40 -#define REG_R7 36 -#define REG_R8 32 -#define REG_R9 28 -#define REG_R10 24 -#define REG_R11 20 -#define REG_R12 16 -#define REG_SP 12 -#define REG_LR 8 - -#define FRAME_SIZE_MIN 8 -#define REG_PC 4 -#define REG_SR 0 - -#ifndef __ASSEMBLY__ -struct pt_regs { - /* These are always saved */ - unsigned long sr; - unsigned long pc; - - /* These are sometimes saved */ - unsigned long lr; - unsigned long sp; - unsigned long r12; - unsigned long r11; - unsigned long r10; - unsigned long r9; - unsigned long r8; - unsigned long r7; - unsigned long r6; - unsigned long r5; - unsigned long r4; - unsigned long r3; - unsigned long r2; - unsigned long r1; - unsigned long r0; - - /* Only saved on system call */ - unsigned long r12_orig; -}; - - -#endif /* ! __ASSEMBLY__ */ - -#endif /* _UAPI__ASM_AVR32_PTRACE_H */ diff --git a/arch/avr32/include/uapi/asm/sembuf.h b/arch/avr32/include/uapi/asm/sembuf.h deleted file mode 100644 index 6c6f7cf1e75a..000000000000 --- a/arch/avr32/include/uapi/asm/sembuf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_SEMBUF_H -#define _UAPI__ASM_AVR32_SEMBUF_H - -/* -* The semid64_ds structure for AVR32 architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct semid64_ds { - struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ - __kernel_time_t sem_otime; /* last semop time */ - unsigned long __unused1; - __kernel_time_t sem_ctime; /* last change time */ - unsigned long __unused2; - unsigned long sem_nsems; /* no. of semaphores in array */ - unsigned long __unused3; - unsigned long __unused4; -}; - -#endif /* _UAPI__ASM_AVR32_SEMBUF_H */ diff --git a/arch/avr32/include/uapi/asm/setup.h b/arch/avr32/include/uapi/asm/setup.h deleted file mode 100644 index a654df7dba46..000000000000 --- a/arch/avr32/include/uapi/asm/setup.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * Based on linux/include/asm-arm/setup.h - * Copyright (C) 1997-1999 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_SETUP_H__ -#define _UAPI__ASM_AVR32_SETUP_H__ - -#define COMMAND_LINE_SIZE 256 - -#endif /* _UAPI__ASM_AVR32_SETUP_H__ */ diff --git a/arch/avr32/include/uapi/asm/shmbuf.h b/arch/avr32/include/uapi/asm/shmbuf.h deleted file mode 100644 index b94cf8b60b73..000000000000 --- a/arch/avr32/include/uapi/asm/shmbuf.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_SHMBUF_H -#define _UAPI__ASM_AVR32_SHMBUF_H - -/* - * The shmid64_ds structure for i386 architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct shmid64_ds { - struct ipc64_perm shm_perm; /* operation perms */ - size_t shm_segsz; /* size of segment (bytes) */ - __kernel_time_t shm_atime; /* last attach time */ - unsigned long __unused1; - __kernel_time_t shm_dtime; /* last detach time */ - unsigned long __unused2; - __kernel_time_t shm_ctime; /* last change time */ - unsigned long __unused3; - __kernel_pid_t shm_cpid; /* pid of creator */ - __kernel_pid_t shm_lpid; /* pid of last operator */ - unsigned long shm_nattch; /* no. of current attaches */ - unsigned long __unused4; - unsigned long __unused5; -}; - -struct shminfo64 { - unsigned long shmmax; - unsigned long shmmin; - unsigned long shmmni; - unsigned long shmseg; - unsigned long shmall; - unsigned long __unused1; - unsigned long __unused2; - unsigned long __unused3; - unsigned long __unused4; -}; - -#endif /* _UAPI__ASM_AVR32_SHMBUF_H */ diff --git a/arch/avr32/include/uapi/asm/sigcontext.h b/arch/avr32/include/uapi/asm/sigcontext.h deleted file mode 100644 index 27e56bf6377f..000000000000 --- a/arch/avr32/include/uapi/asm/sigcontext.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_SIGCONTEXT_H -#define _UAPI__ASM_AVR32_SIGCONTEXT_H - -struct sigcontext { - unsigned long oldmask; - - /* CPU registers */ - unsigned long sr; - unsigned long pc; - unsigned long lr; - unsigned long sp; - unsigned long r12; - unsigned long r11; - unsigned long r10; - unsigned long r9; - unsigned long r8; - unsigned long r7; - unsigned long r6; - unsigned long r5; - unsigned long r4; - unsigned long r3; - unsigned long r2; - unsigned long r1; - unsigned long r0; -}; - -#endif /* _UAPI__ASM_AVR32_SIGCONTEXT_H */ diff --git a/arch/avr32/include/uapi/asm/signal.h b/arch/avr32/include/uapi/asm/signal.h deleted file mode 100644 index ffe8c770cafd..000000000000 --- a/arch/avr32/include/uapi/asm/signal.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_SIGNAL_H -#define _UAPI__ASM_AVR32_SIGNAL_H - -#include <linux/types.h> - -/* Avoid too many header ordering problems. */ -struct siginfo; - -#ifndef __KERNEL__ -/* Here we must cater to libcs that poke about in kernel headers. */ - -#define NSIG 32 -typedef unsigned long sigset_t; - -#endif /* __KERNEL__ */ - -#define SIGHUP 1 -#define SIGINT 2 -#define SIGQUIT 3 -#define SIGILL 4 -#define SIGTRAP 5 -#define SIGABRT 6 -#define SIGIOT 6 -#define SIGBUS 7 -#define SIGFPE 8 -#define SIGKILL 9 -#define SIGUSR1 10 -#define SIGSEGV 11 -#define SIGUSR2 12 -#define SIGPIPE 13 -#define SIGALRM 14 -#define SIGTERM 15 -#define SIGSTKFLT 16 -#define SIGCHLD 17 -#define SIGCONT 18 -#define SIGSTOP 19 -#define SIGTSTP 20 -#define SIGTTIN 21 -#define SIGTTOU 22 -#define SIGURG 23 -#define SIGXCPU 24 -#define SIGXFSZ 25 -#define SIGVTALRM 26 -#define SIGPROF 27 -#define SIGWINCH 28 -#define SIGIO 29 -#define SIGPOLL SIGIO -/* -#define SIGLOST 29 -*/ -#define SIGPWR 30 -#define SIGSYS 31 -#define SIGUNUSED 31 - -/* These should not be considered constants from userland. */ -#define SIGRTMIN 32 -#define SIGRTMAX (_NSIG-1) - -/* - * SA_FLAGS values: - * - * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. - * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. - * SA_SIGINFO deliver the signal with SIGINFO structs - * SA_ONSTACK indicates that a registered stack_t will be used. - * SA_RESTART flag to get restarting signals (which were the default long ago) - * SA_NODEFER prevents the current signal from being masked in the handler. - * SA_RESETHAND clears the handler when the signal is delivered. - * - * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single - * Unix names RESETHAND and NODEFER respectively. - */ -#define SA_NOCLDSTOP 0x00000001 -#define SA_NOCLDWAIT 0x00000002 -#define SA_SIGINFO 0x00000004 -#define SA_RESTORER 0x04000000 -#define SA_ONSTACK 0x08000000 -#define SA_RESTART 0x10000000 -#define SA_NODEFER 0x40000000 -#define SA_RESETHAND 0x80000000 - -#define SA_NOMASK SA_NODEFER -#define SA_ONESHOT SA_RESETHAND - -#define MINSIGSTKSZ 2048 -#define SIGSTKSZ 8192 - -#include <asm-generic/signal-defs.h> - -#ifndef __KERNEL__ -/* Here we must cater to libcs that poke about in kernel headers. */ - -struct sigaction { - union { - __sighandler_t _sa_handler; - void (*_sa_sigaction)(int, struct siginfo *, void *); - } _u; - sigset_t sa_mask; - unsigned long sa_flags; - void (*sa_restorer)(void); -}; - -#define sa_handler _u._sa_handler -#define sa_sigaction _u._sa_sigaction - -#endif /* __KERNEL__ */ - -typedef struct sigaltstack { - void __user *ss_sp; - int ss_flags; - size_t ss_size; -} stack_t; - -#endif /* _UAPI__ASM_AVR32_SIGNAL_H */ diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h deleted file mode 100644 index 5a650426f357..000000000000 --- a/arch/avr32/include/uapi/asm/socket.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_SOCKET_H -#define _UAPI__ASM_AVR32_SOCKET_H - -#include <asm/sockios.h> - -/* For setsockopt(2) */ -#define SOL_SOCKET 1 - -#define SO_DEBUG 1 -#define SO_REUSEADDR 2 -#define SO_TYPE 3 -#define SO_ERROR 4 -#define SO_DONTROUTE 5 -#define SO_BROADCAST 6 -#define SO_SNDBUF 7 -#define SO_RCVBUF 8 -#define SO_SNDBUFFORCE 32 -#define SO_RCVBUFFORCE 33 -#define SO_KEEPALIVE 9 -#define SO_OOBINLINE 10 -#define SO_NO_CHECK 11 -#define SO_PRIORITY 12 -#define SO_LINGER 13 -#define SO_BSDCOMPAT 14 -#define SO_REUSEPORT 15 -#define SO_PASSCRED 16 -#define SO_PEERCRED 17 -#define SO_RCVLOWAT 18 -#define SO_SNDLOWAT 19 -#define SO_RCVTIMEO 20 -#define SO_SNDTIMEO 21 - -/* Security levels - as per NRL IPv6 - don't actually do anything */ -#define SO_SECURITY_AUTHENTICATION 22 -#define SO_SECURITY_ENCRYPTION_TRANSPORT 23 -#define SO_SECURITY_ENCRYPTION_NETWORK 24 - -#define SO_BINDTODEVICE 25 - -/* Socket filtering */ -#define SO_ATTACH_FILTER 26 -#define SO_DETACH_FILTER 27 -#define SO_GET_FILTER SO_ATTACH_FILTER - -#define SO_PEERNAME 28 -#define SO_TIMESTAMP 29 -#define SCM_TIMESTAMP SO_TIMESTAMP - -#define SO_ACCEPTCONN 30 - -#define SO_PEERSEC 31 -#define SO_PASSSEC 34 -#define SO_TIMESTAMPNS 35 -#define SCM_TIMESTAMPNS SO_TIMESTAMPNS - -#define SO_MARK 36 - -#define SO_TIMESTAMPING 37 -#define SCM_TIMESTAMPING SO_TIMESTAMPING - -#define SO_PROTOCOL 38 -#define SO_DOMAIN 39 - -#define SO_RXQ_OVFL 40 - -#define SO_WIFI_STATUS 41 -#define SCM_WIFI_STATUS SO_WIFI_STATUS -#define SO_PEEK_OFF 42 - -/* Instruct lower device to use last 4-bytes of skb data as FCS */ -#define SO_NOFCS 43 - -#define SO_LOCK_FILTER 44 - -#define SO_SELECT_ERR_QUEUE 45 - -#define SO_BUSY_POLL 46 - -#define SO_MAX_PACING_RATE 47 - -#define SO_BPF_EXTENSIONS 48 - -#define SO_INCOMING_CPU 49 - -#define SO_ATTACH_BPF 50 -#define SO_DETACH_BPF SO_DETACH_FILTER - -#define SO_ATTACH_REUSEPORT_CBPF 51 -#define SO_ATTACH_REUSEPORT_EBPF 52 - -#define SO_CNX_ADVICE 53 - -#define SCM_TIMESTAMPING_OPT_STATS 54 - -#endif /* _UAPI__ASM_AVR32_SOCKET_H */ diff --git a/arch/avr32/include/uapi/asm/sockios.h b/arch/avr32/include/uapi/asm/sockios.h deleted file mode 100644 index d04785453532..000000000000 --- a/arch/avr32/include/uapi/asm/sockios.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_SOCKIOS_H -#define _UAPI__ASM_AVR32_SOCKIOS_H - -/* Socket-level I/O control calls. */ -#define FIOSETOWN 0x8901 -#define SIOCSPGRP 0x8902 -#define FIOGETOWN 0x8903 -#define SIOCGPGRP 0x8904 -#define SIOCATMARK 0x8905 -#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ -#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ - -#endif /* _UAPI__ASM_AVR32_SOCKIOS_H */ diff --git a/arch/avr32/include/uapi/asm/stat.h b/arch/avr32/include/uapi/asm/stat.h deleted file mode 100644 index c06acef7fce7..000000000000 --- a/arch/avr32/include/uapi/asm/stat.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_STAT_H -#define _UAPI__ASM_AVR32_STAT_H - -struct __old_kernel_stat { - unsigned short st_dev; - unsigned short st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned short st_rdev; - unsigned long st_size; - unsigned long st_atime; - unsigned long st_mtime; - unsigned long st_ctime; -}; - -struct stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned long st_rdev; - unsigned long st_size; - unsigned long st_blksize; - unsigned long st_blocks; - unsigned long st_atime; - unsigned long st_atime_nsec; - unsigned long st_mtime; - unsigned long st_mtime_nsec; - unsigned long st_ctime; - unsigned long st_ctime_nsec; - unsigned long __unused4; - unsigned long __unused5; -}; - -#define STAT_HAVE_NSEC 1 - -struct stat64 { - unsigned long long st_dev; - - unsigned long long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - - unsigned long st_uid; - unsigned long st_gid; - - unsigned long long st_rdev; - - long long st_size; - unsigned long __pad1; /* align 64-bit st_blocks */ - unsigned long st_blksize; - - unsigned long long st_blocks; /* Number 512-byte blocks allocated. */ - - unsigned long st_atime; - unsigned long st_atime_nsec; - - unsigned long st_mtime; - unsigned long st_mtime_nsec; - - unsigned long st_ctime; - unsigned long st_ctime_nsec; - - unsigned long __unused1; - unsigned long __unused2; -}; - -#endif /* _UAPI__ASM_AVR32_STAT_H */ diff --git a/arch/avr32/include/uapi/asm/swab.h b/arch/avr32/include/uapi/asm/swab.h deleted file mode 100644 index 1a03549e7dc5..000000000000 --- a/arch/avr32/include/uapi/asm/swab.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * AVR32 byteswapping functions. - */ -#ifndef _UAPI__ASM_AVR32_SWAB_H -#define _UAPI__ASM_AVR32_SWAB_H - -#include <linux/types.h> -#include <linux/compiler.h> - -#define __SWAB_64_THRU_32__ - -#ifdef __CHECKER__ -extern unsigned long __builtin_bswap_32(unsigned long x); -extern unsigned short __builtin_bswap_16(unsigned short x); -#endif - -/* - * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends - * the result. - */ -#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) -static inline __attribute_const__ __u16 __arch_swab16(__u16 val) -{ - return __builtin_bswap_16(val); -} -#define __arch_swab16 __arch_swab16 - -static inline __attribute_const__ __u32 __arch_swab32(__u32 val) -{ - return __builtin_bswap_32(val); -} -#define __arch_swab32 __arch_swab32 -#endif - -#endif /* _UAPI__ASM_AVR32_SWAB_H */ diff --git a/arch/avr32/include/uapi/asm/termbits.h b/arch/avr32/include/uapi/asm/termbits.h deleted file mode 100644 index 32789ccb38f8..000000000000 --- a/arch/avr32/include/uapi/asm/termbits.h +++ /dev/null @@ -1,196 +0,0 @@ -#ifndef _UAPI__ASM_AVR32_TERMBITS_H -#define _UAPI__ASM_AVR32_TERMBITS_H - -#include <linux/posix_types.h> - -typedef unsigned char cc_t; -typedef unsigned int speed_t; -typedef unsigned int tcflag_t; - -#define NCCS 19 -struct termios { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ -}; - -struct termios2 { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ -}; - -struct ktermios { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ -}; - -/* c_cc characters */ -#define VINTR 0 -#define VQUIT 1 -#define VERASE 2 -#define VKILL 3 -#define VEOF 4 -#define VTIME 5 -#define VMIN 6 -#define VSWTC 7 -#define VSTART 8 -#define VSTOP 9 -#define VSUSP 10 -#define VEOL 11 -#define VREPRINT 12 -#define VDISCARD 13 -#define VWERASE 14 -#define VLNEXT 15 -#define VEOL2 16 - -/* c_iflag bits */ -#define IGNBRK 0000001 -#define BRKINT 0000002 -#define IGNPAR 0000004 -#define PARMRK 0000010 -#define INPCK 0000020 -#define ISTRIP 0000040 -#define INLCR 0000100 -#define IGNCR 0000200 -#define ICRNL 0000400 -#define IUCLC 0001000 -#define IXON 0002000 -#define IXANY 0004000 -#define IXOFF 0010000 -#define IMAXBEL 0020000 -#define IUTF8 0040000 - -/* c_oflag bits */ -#define OPOST 0000001 -#define OLCUC 0000002 -#define ONLCR 0000004 -#define OCRNL 0000010 -#define ONOCR 0000020 -#define ONLRET 0000040 -#define OFILL 0000100 -#define OFDEL 0000200 -#define NLDLY 0000400 -#define NL0 0000000 -#define NL1 0000400 -#define CRDLY 0003000 -#define CR0 0000000 -#define CR1 0001000 -#define CR2 0002000 -#define CR3 0003000 -#define TABDLY 0014000 -#define TAB0 0000000 -#define TAB1 0004000 -#define TAB2 0010000 -#define TAB3 0014000 -#define XTABS 0014000 -#define BSDLY 0020000 -#define BS0 0000000 -#define BS1 0020000 -#define VTDLY 0040000 -#define VT0 0000000 -#define VT1 0040000 -#define FFDLY 0100000 -#define FF0 0000000 -#define FF1 0100000 - -/* c_cflag bit meaning */ -#define CBAUD 0010017 -#define B0 0000000 /* hang up */ -#define B50 0000001 -#define B75 0000002 -#define B110 0000003 -#define B134 0000004 -#define B150 0000005 -#define B200 0000006 -#define B300 0000007 -#define B600 0000010 -#define B1200 0000011 -#define B1800 0000012 -#define B2400 0000013 -#define B4800 0000014 -#define B9600 0000015 -#define B19200 0000016 -#define B38400 0000017 -#define EXTA B19200 -#define EXTB B38400 -#define CSIZE 0000060 -#define CS5 0000000 -#define CS6 0000020 -#define CS7 0000040 -#define CS8 0000060 -#define CSTOPB 0000100 -#define CREAD 0000200 -#define PARENB 0000400 -#define PARODD 0001000 -#define HUPCL 0002000 -#define CLOCAL 0004000 -#define CBAUDEX 0010000 -#define B57600 0010001 -#define B115200 0010002 -#define B230400 0010003 -#define B460800 0010004 -#define B500000 0010005 -#define B576000 0010006 -#define B921600 0010007 -#define B1000000 0010010 -#define B1152000 0010011 -#define B1500000 0010012 -#define B2000000 0010013 -#define B2500000 0010014 -#define B3000000 0010015 -#define B3500000 0010016 -#define B4000000 0010017 -#define CIBAUD 002003600000 /* input baud rate (not used) */ -#define CMSPAR 010000000000 /* mark or space (stick) parity */ -#define CRTSCTS 020000000000 /* flow control */ - -/* c_lflag bits */ -#define ISIG 0000001 -#define ICANON 0000002 -#define XCASE 0000004 -#define ECHO 0000010 -#define ECHOE 0000020 -#define ECHOK 0000040 -#define ECHONL 0000100 -#define NOFLSH 0000200 -#define TOSTOP 0000400 -#define ECHOCTL 0001000 -#define ECHOPRT 0002000 -#define ECHOKE 0004000 -#define FLUSHO 0010000 -#define PENDIN 0040000 -#define IEXTEN 0100000 -#define EXTPROC 0200000 - -/* tcflow() and TCXONC use these */ -#define TCOOFF 0 -#define TCOON 1 -#define TCIOFF 2 -#define TCION 3 - -/* tcflush() and TCFLSH use these */ -#define TCIFLUSH 0 -#define TCOFLUSH 1 -#define TCIOFLUSH 2 - -/* tcsetattr uses these */ -#define TCSANOW 0 -#define TCSADRAIN 1 -#define TCSAFLUSH 2 - -#endif /* _UAPI__ASM_AVR32_TERMBITS_H */ diff --git a/arch/avr32/include/uapi/asm/termios.h b/arch/avr32/include/uapi/asm/termios.h deleted file mode 100644 index c8a0081556c4..000000000000 --- a/arch/avr32/include/uapi/asm/termios.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_TERMIOS_H -#define _UAPI__ASM_AVR32_TERMIOS_H - -#include <asm/termbits.h> -#include <asm/ioctls.h> - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -#define NCC 8 -struct termio { - unsigned short c_iflag; /* input mode flags */ - unsigned short c_oflag; /* output mode flags */ - unsigned short c_cflag; /* control mode flags */ - unsigned short c_lflag; /* local mode flags */ - unsigned char c_line; /* line discipline */ - unsigned char c_cc[NCC]; /* control characters */ -}; - -/* modem lines */ -#define TIOCM_LE 0x001 -#define TIOCM_DTR 0x002 -#define TIOCM_RTS 0x004 -#define TIOCM_ST 0x008 -#define TIOCM_SR 0x010 -#define TIOCM_CTS 0x020 -#define TIOCM_CAR 0x040 -#define TIOCM_RNG 0x080 -#define TIOCM_DSR 0x100 -#define TIOCM_CD TIOCM_CAR -#define TIOCM_RI TIOCM_RNG -#define TIOCM_OUT1 0x2000 -#define TIOCM_OUT2 0x4000 -#define TIOCM_LOOP 0x8000 - -/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ - -#endif /* _UAPI__ASM_AVR32_TERMIOS_H */ diff --git a/arch/avr32/include/uapi/asm/types.h b/arch/avr32/include/uapi/asm/types.h deleted file mode 100644 index 7c986c4e99b5..000000000000 --- a/arch/avr32/include/uapi/asm/types.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_TYPES_H -#define _UAPI__ASM_AVR32_TYPES_H - -#include <asm-generic/int-ll64.h> - -#endif /* _UAPI__ASM_AVR32_TYPES_H */ diff --git a/arch/avr32/include/uapi/asm/unistd.h b/arch/avr32/include/uapi/asm/unistd.h deleted file mode 100644 index 236505d889d0..000000000000 --- a/arch/avr32/include/uapi/asm/unistd.h +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef _UAPI__ASM_AVR32_UNISTD_H -#define _UAPI__ASM_AVR32_UNISTD_H - -/* - * This file contains the system call numbers. - */ - -#define __NR_restart_syscall 0 -#define __NR_exit 1 -#define __NR_fork 2 -#define __NR_read 3 -#define __NR_write 4 -#define __NR_open 5 -#define __NR_close 6 -#define __NR_umask 7 -#define __NR_creat 8 -#define __NR_link 9 -#define __NR_unlink 10 -#define __NR_execve 11 -#define __NR_chdir 12 -#define __NR_time 13 -#define __NR_mknod 14 -#define __NR_chmod 15 -#define __NR_chown 16 -#define __NR_lchown 17 -#define __NR_lseek 18 -#define __NR__llseek 19 -#define __NR_getpid 20 -#define __NR_mount 21 -#define __NR_umount2 22 -#define __NR_setuid 23 -#define __NR_getuid 24 -#define __NR_stime 25 -#define __NR_ptrace 26 -#define __NR_alarm 27 -#define __NR_pause 28 -#define __NR_utime 29 -#define __NR_stat 30 -#define __NR_fstat 31 -#define __NR_lstat 32 -#define __NR_access 33 -#define __NR_chroot 34 -#define __NR_sync 35 -#define __NR_fsync 36 -#define __NR_kill 37 -#define __NR_rename 38 -#define __NR_mkdir 39 -#define __NR_rmdir 40 -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_times 43 -#define __NR_clone 44 -#define __NR_brk 45 -#define __NR_setgid 46 -#define __NR_getgid 47 -#define __NR_getcwd 48 -#define __NR_geteuid 49 -#define __NR_getegid 50 -#define __NR_acct 51 -#define __NR_setfsuid 52 -#define __NR_setfsgid 53 -#define __NR_ioctl 54 -#define __NR_fcntl 55 -#define __NR_setpgid 56 -#define __NR_mremap 57 -#define __NR_setresuid 58 -#define __NR_getresuid 59 -#define __NR_setreuid 60 -#define __NR_setregid 61 -#define __NR_ustat 62 -#define __NR_dup2 63 -#define __NR_getppid 64 -#define __NR_getpgrp 65 -#define __NR_setsid 66 -#define __NR_rt_sigaction 67 -#define __NR_rt_sigreturn 68 -#define __NR_rt_sigprocmask 69 -#define __NR_rt_sigpending 70 -#define __NR_rt_sigtimedwait 71 -#define __NR_rt_sigqueueinfo 72 -#define __NR_rt_sigsuspend 73 -#define __NR_sethostname 74 -#define __NR_setrlimit 75 -#define __NR_getrlimit 76 /* SuS compliant getrlimit */ -#define __NR_getrusage 77 -#define __NR_gettimeofday 78 -#define __NR_settimeofday 79 -#define __NR_getgroups 80 -#define __NR_setgroups 81 -#define __NR_select 82 -#define __NR_symlink 83 -#define __NR_fchdir 84 -#define __NR_readlink 85 -#define __NR_pread 86 -#define __NR_pwrite 87 -#define __NR_swapon 88 -#define __NR_reboot 89 -#define __NR_mmap2 90 -#define __NR_munmap 91 -#define __NR_truncate 92 -#define __NR_ftruncate 93 -#define __NR_fchmod 94 -#define __NR_fchown 95 -#define __NR_getpriority 96 -#define __NR_setpriority 97 -#define __NR_wait4 98 -#define __NR_statfs 99 -#define __NR_fstatfs 100 -#define __NR_vhangup 101 -#define __NR_sigaltstack 102 -#define __NR_syslog 103 -#define __NR_setitimer 104 -#define __NR_getitimer 105 -#define __NR_swapoff 106 -#define __NR_sysinfo 107 -/* 108 was __NR_ipc for a little while */ -#define __NR_sendfile 109 -#define __NR_setdomainname 110 -#define __NR_uname 111 -#define __NR_adjtimex 112 -#define __NR_mprotect 113 -#define __NR_vfork 114 -#define __NR_init_module 115 -#define __NR_delete_module 116 -#define __NR_quotactl 117 -#define __NR_getpgid 118 -#define __NR_bdflush 119 -#define __NR_sysfs 120 -#define __NR_personality 121 -#define __NR_afs_syscall 122 /* Syscall for Andrew File System */ -#define __NR_getdents 123 -#define __NR_flock 124 -#define __NR_msync 125 -#define __NR_readv 126 -#define __NR_writev 127 -#define __NR_getsid 128 -#define __NR_fdatasync 129 -#define __NR__sysctl 130 -#define __NR_mlock 131 -#define __NR_munlock 132 -#define __NR_mlockall 133 -#define __NR_munlockall 134 -#define __NR_sched_setparam 135 -#define __NR_sched_getparam 136 -#define __NR_sched_setscheduler 137 -#define __NR_sched_getscheduler 138 -#define __NR_sched_yield 139 -#define __NR_sched_get_priority_max 140 -#define __NR_sched_get_priority_min 141 -#define __NR_sched_rr_get_interval 142 -#define __NR_nanosleep 143 -#define __NR_poll 144 -#define __NR_nfsservctl 145 -#define __NR_setresgid 146 -#define __NR_getresgid 147 -#define __NR_prctl 148 -#define __NR_socket 149 -#define __NR_bind 150 -#define __NR_connect 151 -#define __NR_listen 152 -#define __NR_accept 153 -#define __NR_getsockname 154 -#define __NR_getpeername 155 -#define __NR_socketpair 156 -#define __NR_send 157 -#define __NR_recv 158 -#define __NR_sendto 159 -#define __NR_recvfrom 160 -#define __NR_shutdown 161 -#define __NR_setsockopt 162 -#define __NR_getsockopt 163 -#define __NR_sendmsg 164 -#define __NR_recvmsg 165 -#define __NR_truncate64 166 -#define __NR_ftruncate64 167 -#define __NR_stat64 168 -#define __NR_lstat64 169 -#define __NR_fstat64 170 -#define __NR_pivot_root 171 -#define __NR_mincore 172 -#define __NR_madvise 173 -#define __NR_getdents64 174 -#define __NR_fcntl64 175 -#define __NR_gettid 176 -#define __NR_readahead 177 -#define __NR_setxattr 178 -#define __NR_lsetxattr 179 -#define __NR_fsetxattr 180 -#define __NR_getxattr 181 -#define __NR_lgetxattr 182 -#define __NR_fgetxattr 183 -#define __NR_listxattr 184 -#define __NR_llistxattr 185 -#define __NR_flistxattr 186 -#define __NR_removexattr 187 -#define __NR_lremovexattr 188 -#define __NR_fremovexattr 189 -#define __NR_tkill 190 -#define __NR_sendfile64 191 -#define __NR_futex 192 -#define __NR_sched_setaffinity 193 -#define __NR_sched_getaffinity 194 -#define __NR_capget 195 -#define __NR_capset 196 -#define __NR_io_setup 197 -#define __NR_io_destroy 198 -#define __NR_io_getevents 199 -#define __NR_io_submit 200 -#define __NR_io_cancel 201 -#define __NR_fadvise64 202 -#define __NR_exit_group 203 -#define __NR_lookup_dcookie 204 -#define __NR_epoll_create 205 -#define __NR_epoll_ctl 206 -#define __NR_epoll_wait 207 -#define __NR_remap_file_pages 208 -#define __NR_set_tid_address 209 -#define __NR_timer_create 210 -#define __NR_timer_settime 211 -#define __NR_timer_gettime 212 -#define __NR_timer_getoverrun 213 -#define __NR_timer_delete 214 -#define __NR_clock_settime 215 -#define __NR_clock_gettime 216 -#define __NR_clock_getres 217 -#define __NR_clock_nanosleep 218 -#define __NR_statfs64 219 -#define __NR_fstatfs64 220 -#define __NR_tgkill 221 -/* 222 reserved for tux */ -#define __NR_utimes 223 -#define __NR_fadvise64_64 224 -#define __NR_cacheflush 225 -#define __NR_vserver 226 -#define __NR_mq_open 227 -#define __NR_mq_unlink 228 -#define __NR_mq_timedsend 229 -#define __NR_mq_timedreceive 230 -#define __NR_mq_notify 231 -#define __NR_mq_getsetattr 232 -#define __NR_kexec_load 233 -#define __NR_waitid 234 -#define __NR_add_key 235 -#define __NR_request_key 236 -#define __NR_keyctl 237 -#define __NR_ioprio_set 238 -#define __NR_ioprio_get 239 -#define __NR_inotify_init 240 -#define __NR_inotify_add_watch 241 -#define __NR_inotify_rm_watch 242 -#define __NR_openat 243 -#define __NR_mkdirat 244 -#define __NR_mknodat 245 -#define __NR_fchownat 246 -#define __NR_futimesat 247 -#define __NR_fstatat64 248 -#define __NR_unlinkat 249 -#define __NR_renameat 250 -#define __NR_linkat 251 -#define __NR_symlinkat 252 -#define __NR_readlinkat 253 -#define __NR_fchmodat 254 -#define __NR_faccessat 255 -#define __NR_pselect6 256 -#define __NR_ppoll 257 -#define __NR_unshare 258 -#define __NR_set_robust_list 259 -#define __NR_get_robust_list 260 -#define __NR_splice 261 -#define __NR_sync_file_range 262 -#define __NR_tee 263 -#define __NR_vmsplice 264 -#define __NR_epoll_pwait 265 -#define __NR_msgget 266 -#define __NR_msgsnd 267 -#define __NR_msgrcv 268 -#define __NR_msgctl 269 -#define __NR_semget 270 -#define __NR_semop 271 -#define __NR_semctl 272 -#define __NR_semtimedop 273 -#define __NR_shmat 274 -#define __NR_shmget 275 -#define __NR_shmdt 276 -#define __NR_shmctl 277 -#define __NR_utimensat 278 -#define __NR_signalfd 279 -/* 280 was __NR_timerfd */ -#define __NR_eventfd 281 -/* 282 was half-implemented __NR_recvmmsg */ -#define __NR_setns 283 -#define __NR_pread64 284 -#define __NR_pwrite64 285 -#define __NR_timerfd_create 286 -#define __NR_fallocate 287 -#define __NR_timerfd_settime 288 -#define __NR_timerfd_gettime 289 -#define __NR_signalfd4 290 -#define __NR_eventfd2 291 -#define __NR_epoll_create1 292 -#define __NR_dup3 293 -#define __NR_pipe2 294 -#define __NR_inotify_init1 295 -#define __NR_preadv 296 -#define __NR_pwritev 297 -#define __NR_rt_tgsigqueueinfo 298 -#define __NR_perf_event_open 299 -#define __NR_recvmmsg 300 -#define __NR_fanotify_init 301 -#define __NR_fanotify_mark 302 -#define __NR_prlimit64 303 -#define __NR_name_to_handle_at 304 -#define __NR_open_by_handle_at 305 -#define __NR_clock_adjtime 306 -#define __NR_syncfs 307 -#define __NR_sendmmsg 308 -#define __NR_process_vm_readv 309 -#define __NR_process_vm_writev 310 -#define __NR_kcmp 311 -#define __NR_finit_module 312 -#define __NR_sched_setattr 313 -#define __NR_sched_getattr 314 -#define __NR_renameat2 315 -#define __NR_seccomp 316 -#define __NR_getrandom 317 -#define __NR_memfd_create 318 -#define __NR_bpf 319 -#define __NR_execveat 320 -#define __NR_accept4 321 -#define __NR_userfaultfd 322 -#define __NR_membarrier 323 -#define __NR_mlock2 324 -#define __NR_copy_file_range 325 -#define __NR_preadv2 326 -#define __NR_pwritev2 327 -#define __NR_pkey_mprotect 328 -#define __NR_pkey_alloc 329 -#define __NR_pkey_free 330 - -#endif /* _UAPI__ASM_AVR32_UNISTD_H */ diff --git a/arch/avr32/kernel/.gitignore b/arch/avr32/kernel/.gitignore deleted file mode 100644 index c5f676c3c224..000000000000 --- a/arch/avr32/kernel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -vmlinux.lds diff --git a/arch/avr32/kernel/Makefile b/arch/avr32/kernel/Makefile deleted file mode 100644 index 119a2e41defe..000000000000 --- a/arch/avr32/kernel/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for the Linux/AVR32 kernel. -# - -extra-y := head.o vmlinux.lds - -obj-$(CONFIG_SUBARCH_AVR32B) += entry-avr32b.o -obj-y += syscall_table.o syscall-stubs.o irq.o -obj-y += setup.o traps.o ocd.o ptrace.o -obj-y += signal.o process.o time.o -obj-y += switch_to.o cpu.o -obj-$(CONFIG_MODULES) += module.o avr32_ksyms.o -obj-$(CONFIG_KPROBES) += kprobes.o -obj-$(CONFIG_STACKTRACE) += stacktrace.o -obj-$(CONFIG_NMI_DEBUGGING) += nmi_debug.o diff --git a/arch/avr32/kernel/asm-offsets.c b/arch/avr32/kernel/asm-offsets.c deleted file mode 100644 index 2c9764fe3532..000000000000 --- a/arch/avr32/kernel/asm-offsets.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Generate definitions needed by assembly language modules. - * This code generates raw asm output which is post-processed - * to extract and format the required data. - */ - -#include <linux/mm.h> -#include <linux/sched.h> -#include <linux/thread_info.h> -#include <linux/kbuild.h> - -void foo(void) -{ - OFFSET(TI_task, thread_info, task); - OFFSET(TI_flags, thread_info, flags); - OFFSET(TI_cpu, thread_info, cpu); - OFFSET(TI_preempt_count, thread_info, preempt_count); - OFFSET(TI_rar_saved, thread_info, rar_saved); - OFFSET(TI_rsr_saved, thread_info, rsr_saved); - BLANK(); - OFFSET(TSK_active_mm, task_struct, active_mm); - BLANK(); - OFFSET(MM_pgd, mm_struct, pgd); -} diff --git a/arch/avr32/kernel/avr32_ksyms.c b/arch/avr32/kernel/avr32_ksyms.c deleted file mode 100644 index 0cdae8eb0220..000000000000 --- a/arch/avr32/kernel/avr32_ksyms.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Export AVR32-specific functions for loadable modules. - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/delay.h> -#include <linux/io.h> -#include <linux/module.h> - -#include <asm/checksum.h> -#include <linux/uaccess.h> - -/* - * GCC functions - */ -extern unsigned long long __avr32_lsl64(unsigned long long u, unsigned long b); -extern unsigned long long __avr32_lsr64(unsigned long long u, unsigned long b); -extern unsigned long long __avr32_asr64(unsigned long long u, unsigned long b); -EXPORT_SYMBOL(__avr32_lsl64); -EXPORT_SYMBOL(__avr32_lsr64); -EXPORT_SYMBOL(__avr32_asr64); - -/* - * String functions - */ -EXPORT_SYMBOL(memset); -EXPORT_SYMBOL(memcpy); - -EXPORT_SYMBOL(clear_page); -EXPORT_SYMBOL(copy_page); - -/* - * Userspace access stuff. - */ -EXPORT_SYMBOL(__copy_user); -EXPORT_SYMBOL(strncpy_from_user); -EXPORT_SYMBOL(__strncpy_from_user); -EXPORT_SYMBOL(clear_user); -EXPORT_SYMBOL(__clear_user); -EXPORT_SYMBOL(strnlen_user); - -EXPORT_SYMBOL(csum_partial); -EXPORT_SYMBOL(csum_partial_copy_generic); - -/* Delay loops (lib/delay.S) */ -EXPORT_SYMBOL(__ndelay); -EXPORT_SYMBOL(__udelay); -EXPORT_SYMBOL(__const_udelay); - -/* Bit operations (lib/findbit.S) */ -EXPORT_SYMBOL(find_first_zero_bit); -EXPORT_SYMBOL(find_next_zero_bit); -EXPORT_SYMBOL(find_first_bit); -EXPORT_SYMBOL(find_next_bit); -EXPORT_SYMBOL(find_next_bit_le); -EXPORT_SYMBOL(find_next_zero_bit_le); - -/* I/O primitives (lib/io-*.S) */ -EXPORT_SYMBOL(__raw_readsb); -EXPORT_SYMBOL(__raw_readsw); -EXPORT_SYMBOL(__raw_readsl); -EXPORT_SYMBOL(__raw_writesb); -EXPORT_SYMBOL(__raw_writesw); -EXPORT_SYMBOL(__raw_writesl); diff --git a/arch/avr32/kernel/cpu.c b/arch/avr32/kernel/cpu.c deleted file mode 100644 index 0341ae27c9ec..000000000000 --- a/arch/avr32/kernel/cpu.c +++ /dev/null @@ -1,410 +0,0 @@ -/* - * Copyright (C) 2005-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/device.h> -#include <linux/seq_file.h> -#include <linux/cpu.h> -#include <linux/module.h> -#include <linux/percpu.h> -#include <linux/param.h> -#include <linux/errno.h> -#include <linux/clk.h> - -#include <asm/setup.h> -#include <asm/sysreg.h> - -static DEFINE_PER_CPU(struct cpu, cpu_devices); - -#ifdef CONFIG_PERFORMANCE_COUNTERS - -/* - * XXX: If/when a SMP-capable implementation of AVR32 will ever be - * made, we must make sure that the code executes on the correct CPU. - */ -static ssize_t show_pc0event(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pccr; - - pccr = sysreg_read(PCCR); - return sprintf(buf, "0x%lx\n", (pccr >> 12) & 0x3f); -} -static ssize_t store_pc0event(struct device *dev, - struct device_attribute *attr, const char *buf, - size_t count) -{ - unsigned long val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - if (val > 0x3f) - return -EINVAL; - val = (val << 12) | (sysreg_read(PCCR) & 0xfffc0fff); - sysreg_write(PCCR, val); - return count; -} -static ssize_t show_pc0count(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pcnt0; - - pcnt0 = sysreg_read(PCNT0); - return sprintf(buf, "%lu\n", pcnt0); -} -static ssize_t store_pc0count(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - unsigned long val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - sysreg_write(PCNT0, val); - - return count; -} - -static ssize_t show_pc1event(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pccr; - - pccr = sysreg_read(PCCR); - return sprintf(buf, "0x%lx\n", (pccr >> 18) & 0x3f); -} -static ssize_t store_pc1event(struct device *dev, - struct device_attribute *attr, const char *buf, - size_t count) -{ - unsigned long val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - if (val > 0x3f) - return -EINVAL; - val = (val << 18) | (sysreg_read(PCCR) & 0xff03ffff); - sysreg_write(PCCR, val); - return count; -} -static ssize_t show_pc1count(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pcnt1; - - pcnt1 = sysreg_read(PCNT1); - return sprintf(buf, "%lu\n", pcnt1); -} -static ssize_t store_pc1count(struct device *dev, - struct device_attribute *attr, const char *buf, - size_t count) -{ - unsigned long val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - sysreg_write(PCNT1, val); - - return count; -} - -static ssize_t show_pccycles(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pccnt; - - pccnt = sysreg_read(PCCNT); - return sprintf(buf, "%lu\n", pccnt); -} -static ssize_t store_pccycles(struct device *dev, - struct device_attribute *attr, const char *buf, - size_t count) -{ - unsigned long val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - sysreg_write(PCCNT, val); - - return count; -} - -static ssize_t show_pcenable(struct device *dev, - struct device_attribute *attr, char *buf) -{ - unsigned long pccr; - - pccr = sysreg_read(PCCR); - return sprintf(buf, "%c\n", (pccr & 1)?'1':'0'); -} -static ssize_t store_pcenable(struct device *dev, - struct device_attribute *attr, const char *buf, - size_t count) -{ - unsigned long pccr, val; - int ret; - - ret = kstrtoul(buf, 0, &val); - if (ret) - return ret; - if (val) - val = 1; - - pccr = sysreg_read(PCCR); - pccr = (pccr & ~1UL) | val; - sysreg_write(PCCR, pccr); - - return count; -} - -static DEVICE_ATTR(pc0event, 0600, show_pc0event, store_pc0event); -static DEVICE_ATTR(pc0count, 0600, show_pc0count, store_pc0count); -static DEVICE_ATTR(pc1event, 0600, show_pc1event, store_pc1event); -static DEVICE_ATTR(pc1count, 0600, show_pc1count, store_pc1count); -static DEVICE_ATTR(pccycles, 0600, show_pccycles, store_pccycles); -static DEVICE_ATTR(pcenable, 0600, show_pcenable, store_pcenable); - -#endif /* CONFIG_PERFORMANCE_COUNTERS */ - -static int __init topology_init(void) -{ - int cpu; - - for_each_possible_cpu(cpu) { - struct cpu *c = &per_cpu(cpu_devices, cpu); - - register_cpu(c, cpu); - -#ifdef CONFIG_PERFORMANCE_COUNTERS - device_create_file(&c->dev, &dev_attr_pc0event); - device_create_file(&c->dev, &dev_attr_pc0count); - device_create_file(&c->dev, &dev_attr_pc1event); - device_create_file(&c->dev, &dev_attr_pc1count); - device_create_file(&c->dev, &dev_attr_pccycles); - device_create_file(&c->dev, &dev_attr_pcenable); -#endif - } - - return 0; -} - -subsys_initcall(topology_init); - -struct chip_id_map { - u16 mid; - u16 pn; - const char *name; -}; - -static const struct chip_id_map chip_names[] = { - { .mid = 0x1f, .pn = 0x1e82, .name = "AT32AP700x" }, -}; -#define NR_CHIP_NAMES ARRAY_SIZE(chip_names) - -static const char *cpu_names[] = { - "Morgan", - "AP7", -}; -#define NR_CPU_NAMES ARRAY_SIZE(cpu_names) - -static const char *arch_names[] = { - "AVR32A", - "AVR32B", -}; -#define NR_ARCH_NAMES ARRAY_SIZE(arch_names) - -static const char *mmu_types[] = { - "No MMU", - "ITLB and DTLB", - "Shared TLB", - "MPU" -}; - -static const char *cpu_feature_flags[] = { - "rmw", "dsp", "simd", "ocd", "perfctr", "java", "fpu", -}; - -static const char *get_chip_name(struct avr32_cpuinfo *cpu) -{ - unsigned int i; - unsigned int mid = avr32_get_manufacturer_id(cpu); - unsigned int pn = avr32_get_product_number(cpu); - - for (i = 0; i < NR_CHIP_NAMES; i++) { - if (chip_names[i].mid == mid && chip_names[i].pn == pn) - return chip_names[i].name; - } - - return "(unknown)"; -} - -void __init setup_processor(void) -{ - unsigned long config0, config1; - unsigned long features; - unsigned cpu_id, cpu_rev, arch_id, arch_rev, mmu_type; - unsigned device_id; - unsigned tmp; - unsigned i; - - config0 = sysreg_read(CONFIG0); - config1 = sysreg_read(CONFIG1); - cpu_id = SYSREG_BFEXT(PROCESSORID, config0); - cpu_rev = SYSREG_BFEXT(PROCESSORREVISION, config0); - arch_id = SYSREG_BFEXT(AT, config0); - arch_rev = SYSREG_BFEXT(AR, config0); - mmu_type = SYSREG_BFEXT(MMUT, config0); - - device_id = ocd_read(DID); - - boot_cpu_data.arch_type = arch_id; - boot_cpu_data.cpu_type = cpu_id; - boot_cpu_data.arch_revision = arch_rev; - boot_cpu_data.cpu_revision = cpu_rev; - boot_cpu_data.tlb_config = mmu_type; - boot_cpu_data.device_id = device_id; - - tmp = SYSREG_BFEXT(ILSZ, config1); - if (tmp) { - boot_cpu_data.icache.ways = 1 << SYSREG_BFEXT(IASS, config1); - boot_cpu_data.icache.sets = 1 << SYSREG_BFEXT(ISET, config1); - boot_cpu_data.icache.linesz = 1 << (tmp + 1); - } - tmp = SYSREG_BFEXT(DLSZ, config1); - if (tmp) { - boot_cpu_data.dcache.ways = 1 << SYSREG_BFEXT(DASS, config1); - boot_cpu_data.dcache.sets = 1 << SYSREG_BFEXT(DSET, config1); - boot_cpu_data.dcache.linesz = 1 << (tmp + 1); - } - - if ((cpu_id >= NR_CPU_NAMES) || (arch_id >= NR_ARCH_NAMES)) { - printk ("Unknown CPU configuration (ID %02x, arch %02x), " - "continuing anyway...\n", - cpu_id, arch_id); - return; - } - - printk ("CPU: %s chip revision %c\n", get_chip_name(&boot_cpu_data), - avr32_get_chip_revision(&boot_cpu_data) + 'A'); - printk ("CPU: %s [%02x] core revision %d (%s arch revision %d)\n", - cpu_names[cpu_id], cpu_id, cpu_rev, - arch_names[arch_id], arch_rev); - printk ("CPU: MMU configuration: %s\n", mmu_types[mmu_type]); - - printk ("CPU: features:"); - features = 0; - if (config0 & SYSREG_BIT(CONFIG0_R)) - features |= AVR32_FEATURE_RMW; - if (config0 & SYSREG_BIT(CONFIG0_D)) - features |= AVR32_FEATURE_DSP; - if (config0 & SYSREG_BIT(CONFIG0_S)) - features |= AVR32_FEATURE_SIMD; - if (config0 & SYSREG_BIT(CONFIG0_O)) - features |= AVR32_FEATURE_OCD; - if (config0 & SYSREG_BIT(CONFIG0_P)) - features |= AVR32_FEATURE_PCTR; - if (config0 & SYSREG_BIT(CONFIG0_J)) - features |= AVR32_FEATURE_JAVA; - if (config0 & SYSREG_BIT(CONFIG0_F)) - features |= AVR32_FEATURE_FPU; - - for (i = 0; i < ARRAY_SIZE(cpu_feature_flags); i++) - if (features & (1 << i)) - printk(" %s", cpu_feature_flags[i]); - - printk("\n"); - boot_cpu_data.features = features; -} - -#ifdef CONFIG_PROC_FS -static int c_show(struct seq_file *m, void *v) -{ - unsigned int icache_size, dcache_size; - unsigned int cpu = smp_processor_id(); - unsigned int freq; - unsigned int i; - - icache_size = boot_cpu_data.icache.ways * - boot_cpu_data.icache.sets * - boot_cpu_data.icache.linesz; - dcache_size = boot_cpu_data.dcache.ways * - boot_cpu_data.dcache.sets * - boot_cpu_data.dcache.linesz; - - seq_printf(m, "processor\t: %d\n", cpu); - - seq_printf(m, "chip type\t: %s revision %c\n", - get_chip_name(&boot_cpu_data), - avr32_get_chip_revision(&boot_cpu_data) + 'A'); - if (boot_cpu_data.arch_type < NR_ARCH_NAMES) - seq_printf(m, "cpu arch\t: %s revision %d\n", - arch_names[boot_cpu_data.arch_type], - boot_cpu_data.arch_revision); - if (boot_cpu_data.cpu_type < NR_CPU_NAMES) - seq_printf(m, "cpu core\t: %s revision %d\n", - cpu_names[boot_cpu_data.cpu_type], - boot_cpu_data.cpu_revision); - - freq = (clk_get_rate(boot_cpu_data.clk) + 500) / 1000; - seq_printf(m, "cpu MHz\t\t: %u.%03u\n", freq / 1000, freq % 1000); - - seq_printf(m, "i-cache\t\t: %dK (%u ways x %u sets x %u)\n", - icache_size >> 10, - boot_cpu_data.icache.ways, - boot_cpu_data.icache.sets, - boot_cpu_data.icache.linesz); - seq_printf(m, "d-cache\t\t: %dK (%u ways x %u sets x %u)\n", - dcache_size >> 10, - boot_cpu_data.dcache.ways, - boot_cpu_data.dcache.sets, - boot_cpu_data.dcache.linesz); - - seq_printf(m, "features\t:"); - for (i = 0; i < ARRAY_SIZE(cpu_feature_flags); i++) - if (boot_cpu_data.features & (1 << i)) - seq_printf(m, " %s", cpu_feature_flags[i]); - - seq_printf(m, "\nbogomips\t: %lu.%02lu\n", - boot_cpu_data.loops_per_jiffy / (500000/HZ), - (boot_cpu_data.loops_per_jiffy / (5000/HZ)) % 100); - - return 0; -} - -static void *c_start(struct seq_file *m, loff_t *pos) -{ - return *pos < 1 ? (void *)1 : NULL; -} - -static void *c_next(struct seq_file *m, void *v, loff_t *pos) -{ - ++*pos; - return NULL; -} - -static void c_stop(struct seq_file *m, void *v) -{ - -} - -const struct seq_operations cpuinfo_op = { - .start = c_start, - .next = c_next, - .stop = c_stop, - .show = c_show -}; -#endif /* CONFIG_PROC_FS */ diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S deleted file mode 100644 index 7301f4806bbe..000000000000 --- a/arch/avr32/kernel/entry-avr32b.S +++ /dev/null @@ -1,877 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -/* - * This file contains the low-level entry-points into the kernel, that is, - * exception handlers, debug trap handlers, interrupt handlers and the - * system call handler. - */ -#include <linux/errno.h> - -#include <asm/asm.h> -#include <asm/hardirq.h> -#include <asm/irq.h> -#include <asm/ocd.h> -#include <asm/page.h> -#include <asm/pgtable.h> -#include <asm/ptrace.h> -#include <asm/sysreg.h> -#include <asm/thread_info.h> -#include <asm/unistd.h> - -#ifdef CONFIG_PREEMPT -# define preempt_stop mask_interrupts -#else -# define preempt_stop -# define fault_resume_kernel fault_restore_all -#endif - -#define __MASK(x) ((1 << (x)) - 1) -#define IRQ_MASK ((__MASK(SOFTIRQ_BITS) << SOFTIRQ_SHIFT) | \ - (__MASK(HARDIRQ_BITS) << HARDIRQ_SHIFT)) - - .section .ex.text,"ax",@progbits - .align 2 -exception_vectors: - bral handle_critical - .align 2 - bral handle_critical - .align 2 - bral do_bus_error_write - .align 2 - bral do_bus_error_read - .align 2 - bral do_nmi_ll - .align 2 - bral handle_address_fault - .align 2 - bral handle_protection_fault - .align 2 - bral handle_debug - .align 2 - bral do_illegal_opcode_ll - .align 2 - bral do_illegal_opcode_ll - .align 2 - bral do_illegal_opcode_ll - .align 2 - bral do_fpe_ll - .align 2 - bral do_illegal_opcode_ll - .align 2 - bral handle_address_fault - .align 2 - bral handle_address_fault - .align 2 - bral handle_protection_fault - .align 2 - bral handle_protection_fault - .align 2 - bral do_dtlb_modified - -#define tlbmiss_save pushm r0-r3 -#define tlbmiss_restore popm r0-r3 - - .org 0x50 - .global itlb_miss -itlb_miss: - tlbmiss_save - rjmp tlb_miss_common - - .org 0x60 -dtlb_miss_read: - tlbmiss_save - rjmp tlb_miss_common - - .org 0x70 -dtlb_miss_write: - tlbmiss_save - - .global tlb_miss_common - .align 2 -tlb_miss_common: - mfsr r0, SYSREG_TLBEAR - mfsr r1, SYSREG_PTBR - - /* - * First level lookup: The PGD contains virtual pointers to - * the second-level page tables, but they may be NULL if not - * present. - */ -pgtbl_lookup: - lsr r2, r0, PGDIR_SHIFT - ld.w r3, r1[r2 << 2] - bfextu r1, r0, PAGE_SHIFT, PGDIR_SHIFT - PAGE_SHIFT - cp.w r3, 0 - breq page_table_not_present - - /* Second level lookup */ - ld.w r2, r3[r1 << 2] - mfsr r0, SYSREG_TLBARLO - bld r2, _PAGE_BIT_PRESENT - brcc page_not_present - - /* Mark the page as accessed */ - sbr r2, _PAGE_BIT_ACCESSED - st.w r3[r1 << 2], r2 - - /* Drop software flags */ - andl r2, _PAGE_FLAGS_HARDWARE_MASK & 0xffff - mtsr SYSREG_TLBELO, r2 - - /* Figure out which entry we want to replace */ - mfsr r1, SYSREG_MMUCR - clz r2, r0 - brcc 1f - mov r3, -1 /* All entries have been accessed, */ - mov r2, 0 /* so start at 0 */ - mtsr SYSREG_TLBARLO, r3 /* and reset TLBAR */ - -1: bfins r1, r2, SYSREG_DRP_OFFSET, SYSREG_DRP_SIZE - mtsr SYSREG_MMUCR, r1 - tlbw - - tlbmiss_restore - rete - - /* The slow path of the TLB miss handler */ - .align 2 -page_table_not_present: - /* Do we need to synchronize with swapper_pg_dir? */ - bld r0, 31 - brcs sync_with_swapper_pg_dir - -page_not_present: - tlbmiss_restore - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mfsr r12, SYSREG_ECR - mov r11, sp - call do_page_fault - rjmp ret_from_exception - - .align 2 -sync_with_swapper_pg_dir: - /* - * If swapper_pg_dir contains a non-NULL second-level page - * table pointer, copy it into the current PGD. If not, we - * must handle it as a full-blown page fault. - * - * Jumping back to pgtbl_lookup causes an unnecessary lookup, - * but it is guaranteed to be a cache hit, it won't happen - * very often, and we absolutely do not want to sacrifice any - * performance in the fast path in order to improve this. - */ - mov r1, lo(swapper_pg_dir) - orh r1, hi(swapper_pg_dir) - ld.w r3, r1[r2 << 2] - cp.w r3, 0 - breq page_not_present - mfsr r1, SYSREG_PTBR - st.w r1[r2 << 2], r3 - rjmp pgtbl_lookup - - /* - * We currently have two bytes left at this point until we - * crash into the system call handler... - * - * Don't worry, the assembler will let us know. - */ - - - /* --- System Call --- */ - - .org 0x100 -system_call: -#ifdef CONFIG_PREEMPT - mask_interrupts -#endif - pushm r12 /* r12_orig */ - stmts --sp, r0-lr - - mfsr r0, SYSREG_RAR_SUP - mfsr r1, SYSREG_RSR_SUP -#ifdef CONFIG_PREEMPT - unmask_interrupts -#endif - zero_fp - stm --sp, r0-r1 - - /* check for syscall tracing */ - get_thread_info r0 - ld.w r1, r0[TI_flags] - bld r1, TIF_SYSCALL_TRACE - brcs syscall_trace_enter - -syscall_trace_cont: - cp.w r8, NR_syscalls - brhs syscall_badsys - - lddpc lr, syscall_table_addr - ld.w lr, lr[r8 << 2] - mov r8, r5 /* 5th argument (6th is pushed by stub) */ - icall lr - - .global syscall_return -syscall_return: - get_thread_info r0 - mask_interrupts /* make sure we don't miss an interrupt - setting need_resched or sigpending - between sampling and the rets */ - - /* Store the return value so that the correct value is loaded below */ - stdsp sp[REG_R12], r12 - - ld.w r1, r0[TI_flags] - andl r1, _TIF_ALLWORK_MASK, COH - brne syscall_exit_work - -syscall_exit_cont: - popm r8-r9 - mtsr SYSREG_RAR_SUP, r8 - mtsr SYSREG_RSR_SUP, r9 - ldmts sp++, r0-lr - sub sp, -4 /* r12_orig */ - rets - - .align 2 -syscall_table_addr: - .long sys_call_table - -syscall_badsys: - mov r12, -ENOSYS - rjmp syscall_return - - .global ret_from_fork -ret_from_fork: - call schedule_tail - mov r12, 0 - rjmp syscall_return - - .global ret_from_kernel_thread -ret_from_kernel_thread: - call schedule_tail - mov r12, r0 - mov lr, r2 /* syscall_return */ - mov pc, r1 - -syscall_trace_enter: - pushm r8-r12 - call syscall_trace - popm r8-r12 - rjmp syscall_trace_cont - -syscall_exit_work: - bld r1, TIF_SYSCALL_TRACE - brcc 1f - unmask_interrupts - call syscall_trace - mask_interrupts - ld.w r1, r0[TI_flags] - -1: bld r1, TIF_NEED_RESCHED - brcc 2f - unmask_interrupts - call schedule - mask_interrupts - ld.w r1, r0[TI_flags] - rjmp 1b - -2: mov r2, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME - tst r1, r2 - breq 3f - unmask_interrupts - mov r12, sp - mov r11, r0 - call do_notify_resume - mask_interrupts - ld.w r1, r0[TI_flags] - rjmp 1b - -3: bld r1, TIF_BREAKPOINT - brcc syscall_exit_cont - rjmp enter_monitor_mode - - /* This function expects to find offending PC in SYSREG_RAR_EX */ - .type save_full_context_ex, @function - .align 2 -save_full_context_ex: - mfsr r11, SYSREG_RAR_EX - sub r9, pc, . - debug_trampoline - mfsr r8, SYSREG_RSR_EX - cp.w r9, r11 - breq 3f - mov r12, r8 - andh r8, (MODE_MASK >> 16), COH - brne 2f - -1: pushm r11, r12 /* PC and SR */ - unmask_exceptions - ret r12 - -2: sub r10, sp, -(FRAME_SIZE_FULL - REG_LR) - stdsp sp[4], r10 /* replace saved SP */ - rjmp 1b - - /* - * The debug handler set up a trampoline to make us - * automatically enter monitor mode upon return, but since - * we're saving the full context, we must assume that the - * exception handler might want to alter the return address - * and/or status register. So we need to restore the original - * context and enter monitor mode manually after the exception - * has been handled. - */ -3: get_thread_info r8 - ld.w r11, r8[TI_rar_saved] - ld.w r12, r8[TI_rsr_saved] - rjmp 1b - .size save_full_context_ex, . - save_full_context_ex - - /* Low-level exception handlers */ -handle_critical: - /* - * AT32AP700x errata: - * - * After a Java stack overflow or underflow trap, any CPU - * memory access may cause erratic behavior. This will happen - * when the four least significant bits of the JOSP system - * register contains any value between 9 and 15 (inclusive). - * - * Possible workarounds: - * - Don't use the Java Extension Module - * - Ensure that the stack overflow and underflow trap - * handlers do not do any memory access or trigger any - * exceptions before the overflow/underflow condition is - * cleared (by incrementing or decrementing the JOSP) - * - Make sure that JOSP does not contain any problematic - * value before doing any exception or interrupt - * processing. - * - Set up a critical exception handler which writes a - * known-to-be-safe value, e.g. 4, to JOSP before doing - * any further processing. - * - * We'll use the last workaround for now since we cannot - * guarantee that user space processes don't use Java mode. - * Non-well-behaving userland will be terminated with extreme - * prejudice. - */ -#ifdef CONFIG_CPU_AT32AP700X - /* - * There's a chance we can't touch memory, so temporarily - * borrow PTBR to save the stack pointer while we fix things - * up... - */ - mtsr SYSREG_PTBR, sp - mov sp, 4 - mtsr SYSREG_JOSP, sp - mfsr sp, SYSREG_PTBR - sub pc, -2 - - /* Push most of pt_regs on stack. We'll do the rest later */ - sub sp, 4 - pushm r0-r12 - - /* PTBR mirrors current_thread_info()->task->active_mm->pgd */ - get_thread_info r0 - ld.w r1, r0[TI_task] - ld.w r2, r1[TSK_active_mm] - ld.w r3, r2[MM_pgd] - mtsr SYSREG_PTBR, r3 -#else - sub sp, 4 - pushm r0-r12 -#endif - sub r0, sp, -(14 * 4) - mov r1, lr - mfsr r2, SYSREG_RAR_EX - mfsr r3, SYSREG_RSR_EX - pushm r0-r3 - - mfsr r12, SYSREG_ECR - mov r11, sp - call do_critical_exception - - /* We should never get here... */ -bad_return: - sub r12, pc, (. - 1f) - lddpc pc, 2f - .align 2 -1: .asciz "Return from critical exception!" -2: .long panic - - .align 1 -do_bus_error_write: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mov r11, 1 - rjmp 1f - -do_bus_error_read: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mov r11, 0 -1: mfsr r12, SYSREG_BEAR - mov r10, sp - call do_bus_error - rjmp ret_from_exception - - .align 1 -do_nmi_ll: - sub sp, 4 - stmts --sp, r0-lr - mfsr r9, SYSREG_RSR_NMI - mfsr r8, SYSREG_RAR_NMI - bfextu r0, r9, MODE_SHIFT, 3 - brne 2f - -1: pushm r8, r9 /* PC and SR */ - mfsr r12, SYSREG_ECR - mov r11, sp - call do_nmi - popm r8-r9 - mtsr SYSREG_RAR_NMI, r8 - tst r0, r0 - mtsr SYSREG_RSR_NMI, r9 - brne 3f - - ldmts sp++, r0-lr - sub sp, -4 /* skip r12_orig */ - rete - -2: sub r10, sp, -(FRAME_SIZE_FULL - REG_LR) - stdsp sp[4], r10 /* replace saved SP */ - rjmp 1b - -3: popm lr - sub sp, -4 /* skip sp */ - popm r0-r12 - sub sp, -4 /* skip r12_orig */ - rete - -handle_address_fault: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mfsr r12, SYSREG_ECR - mov r11, sp - call do_address_exception - rjmp ret_from_exception - -handle_protection_fault: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mfsr r12, SYSREG_ECR - mov r11, sp - call do_page_fault - rjmp ret_from_exception - - .align 1 -do_illegal_opcode_ll: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - mfsr r12, SYSREG_ECR - mov r11, sp - call do_illegal_opcode - rjmp ret_from_exception - -do_dtlb_modified: - pushm r0-r3 - mfsr r1, SYSREG_TLBEAR - mfsr r0, SYSREG_PTBR - lsr r2, r1, PGDIR_SHIFT - ld.w r0, r0[r2 << 2] - lsl r1, (32 - PGDIR_SHIFT) - lsr r1, (32 - PGDIR_SHIFT) + PAGE_SHIFT - - /* Translate to virtual address in P1 */ - andl r0, 0xf000 - sbr r0, 31 - add r2, r0, r1 << 2 - ld.w r3, r2[0] - sbr r3, _PAGE_BIT_DIRTY - mov r0, r3 - st.w r2[0], r3 - - /* The page table is up-to-date. Update the TLB entry as well */ - andl r0, lo(_PAGE_FLAGS_HARDWARE_MASK) - mtsr SYSREG_TLBELO, r0 - - /* MMUCR[DRP] is updated automatically, so let's go... */ - tlbw - - popm r0-r3 - rete - -do_fpe_ll: - sub sp, 4 - stmts --sp, r0-lr - call save_full_context_ex - unmask_interrupts - mov r12, 26 - mov r11, sp - call do_fpe - rjmp ret_from_exception - -ret_from_exception: - mask_interrupts - lddsp r4, sp[REG_SR] - - andh r4, (MODE_MASK >> 16), COH - brne fault_resume_kernel - - get_thread_info r0 - ld.w r1, r0[TI_flags] - andl r1, _TIF_WORK_MASK, COH - brne fault_exit_work - -fault_resume_user: - popm r8-r9 - mask_exceptions - mtsr SYSREG_RAR_EX, r8 - mtsr SYSREG_RSR_EX, r9 - ldmts sp++, r0-lr - sub sp, -4 - rete - -fault_resume_kernel: -#ifdef CONFIG_PREEMPT - get_thread_info r0 - ld.w r2, r0[TI_preempt_count] - cp.w r2, 0 - brne 1f - ld.w r1, r0[TI_flags] - bld r1, TIF_NEED_RESCHED - brcc 1f - lddsp r4, sp[REG_SR] - bld r4, SYSREG_GM_OFFSET - brcs 1f - call preempt_schedule_irq -1: -#endif - - popm r8-r9 - mask_exceptions - mfsr r1, SYSREG_SR - mtsr SYSREG_RAR_EX, r8 - mtsr SYSREG_RSR_EX, r9 - popm lr - sub sp, -4 /* ignore SP */ - popm r0-r12 - sub sp, -4 /* ignore r12_orig */ - rete - -irq_exit_work: - /* Switch to exception mode so that we can share the same code. */ - mfsr r8, SYSREG_SR - cbr r8, SYSREG_M0_OFFSET - orh r8, hi(SYSREG_BIT(M1) | SYSREG_BIT(M2)) - mtsr SYSREG_SR, r8 - sub pc, -2 - get_thread_info r0 - ld.w r1, r0[TI_flags] - -fault_exit_work: - bld r1, TIF_NEED_RESCHED - brcc 1f - unmask_interrupts - call schedule - mask_interrupts - ld.w r1, r0[TI_flags] - rjmp fault_exit_work - -1: mov r2, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME - tst r1, r2 - breq 2f - unmask_interrupts - mov r12, sp - mov r11, r0 - call do_notify_resume - mask_interrupts - ld.w r1, r0[TI_flags] - rjmp fault_exit_work - -2: bld r1, TIF_BREAKPOINT - brcc fault_resume_user - rjmp enter_monitor_mode - - .section .kprobes.text, "ax", @progbits - .type handle_debug, @function -handle_debug: - sub sp, 4 /* r12_orig */ - stmts --sp, r0-lr - mfsr r8, SYSREG_RAR_DBG - mfsr r9, SYSREG_RSR_DBG - unmask_exceptions - pushm r8-r9 - bfextu r9, r9, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE - brne debug_fixup_regs - -.Ldebug_fixup_cont: -#ifdef CONFIG_TRACE_IRQFLAGS - call trace_hardirqs_off -#endif - mov r12, sp - call do_debug - mov sp, r12 - - lddsp r2, sp[REG_SR] - bfextu r3, r2, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE - brne debug_resume_kernel - - get_thread_info r0 - ld.w r1, r0[TI_flags] - mov r2, _TIF_DBGWORK_MASK - tst r1, r2 - brne debug_exit_work - - bld r1, TIF_SINGLE_STEP - brcc 1f - mfdr r4, OCD_DC - sbr r4, OCD_DC_SS_BIT - mtdr OCD_DC, r4 - -1: popm r10,r11 - mask_exceptions - mtsr SYSREG_RSR_DBG, r11 - mtsr SYSREG_RAR_DBG, r10 -#ifdef CONFIG_TRACE_IRQFLAGS - call trace_hardirqs_on -1: -#endif - ldmts sp++, r0-lr - sub sp, -4 - retd - .size handle_debug, . - handle_debug - - /* Mode of the trapped context is in r9 */ - .type debug_fixup_regs, @function -debug_fixup_regs: - mfsr r8, SYSREG_SR - mov r10, r8 - bfins r8, r9, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE - mtsr SYSREG_SR, r8 - sub pc, -2 - stdsp sp[REG_LR], lr - mtsr SYSREG_SR, r10 - sub pc, -2 - sub r8, sp, -FRAME_SIZE_FULL - stdsp sp[REG_SP], r8 - rjmp .Ldebug_fixup_cont - .size debug_fixup_regs, . - debug_fixup_regs - - .type debug_resume_kernel, @function -debug_resume_kernel: - mask_exceptions - popm r10, r11 - mtsr SYSREG_RAR_DBG, r10 - mtsr SYSREG_RSR_DBG, r11 -#ifdef CONFIG_TRACE_IRQFLAGS - bld r11, SYSREG_GM_OFFSET - brcc 1f - call trace_hardirqs_on -1: -#endif - mfsr r2, SYSREG_SR - mov r1, r2 - bfins r2, r3, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE - mtsr SYSREG_SR, r2 - sub pc, -2 - popm lr - mtsr SYSREG_SR, r1 - sub pc, -2 - sub sp, -4 /* skip SP */ - popm r0-r12 - sub sp, -4 - retd - .size debug_resume_kernel, . - debug_resume_kernel - - .type debug_exit_work, @function -debug_exit_work: - /* - * We must return from Monitor Mode using a retd, and we must - * not schedule since that involves the D bit in SR getting - * cleared by something other than the debug hardware. This - * may cause undefined behaviour according to the Architecture - * manual. - * - * So we fix up the return address and status and return to a - * stub below in Exception mode. From there, we can follow the - * normal exception return path. - * - * The real return address and status registers are stored on - * the stack in the way the exception return path understands, - * so no need to fix anything up there. - */ - sub r8, pc, . - fault_exit_work - mtsr SYSREG_RAR_DBG, r8 - mov r9, 0 - orh r9, hi(SR_EM | SR_GM | MODE_EXCEPTION) - mtsr SYSREG_RSR_DBG, r9 - sub pc, -2 - retd - .size debug_exit_work, . - debug_exit_work - - .set rsr_int0, SYSREG_RSR_INT0 - .set rsr_int1, SYSREG_RSR_INT1 - .set rsr_int2, SYSREG_RSR_INT2 - .set rsr_int3, SYSREG_RSR_INT3 - .set rar_int0, SYSREG_RAR_INT0 - .set rar_int1, SYSREG_RAR_INT1 - .set rar_int2, SYSREG_RAR_INT2 - .set rar_int3, SYSREG_RAR_INT3 - - .macro IRQ_LEVEL level - .type irq_level\level, @function -irq_level\level: - sub sp, 4 /* r12_orig */ - stmts --sp,r0-lr - mfsr r8, rar_int\level - mfsr r9, rsr_int\level - -#ifdef CONFIG_PREEMPT - sub r11, pc, (. - system_call) - cp.w r11, r8 - breq 4f -#endif - - pushm r8-r9 - - mov r11, sp - mov r12, \level - - call do_IRQ - - lddsp r4, sp[REG_SR] - bfextu r4, r4, SYSREG_M0_OFFSET, 3 - cp.w r4, MODE_SUPERVISOR >> SYSREG_M0_OFFSET - breq 2f - cp.w r4, MODE_USER >> SYSREG_M0_OFFSET -#ifdef CONFIG_PREEMPT - brne 3f -#else - brne 1f -#endif - - get_thread_info r0 - ld.w r1, r0[TI_flags] - andl r1, _TIF_WORK_MASK, COH - brne irq_exit_work - -1: -#ifdef CONFIG_TRACE_IRQFLAGS - call trace_hardirqs_on -#endif - popm r8-r9 - mtsr rar_int\level, r8 - mtsr rsr_int\level, r9 - ldmts sp++,r0-lr - sub sp, -4 /* ignore r12_orig */ - rete - -#ifdef CONFIG_PREEMPT -4: mask_interrupts - mfsr r8, rsr_int\level - sbr r8, 16 - mtsr rsr_int\level, r8 - ldmts sp++, r0-lr - sub sp, -4 /* ignore r12_orig */ - rete -#endif - -2: get_thread_info r0 - ld.w r1, r0[TI_flags] - bld r1, TIF_CPU_GOING_TO_SLEEP -#ifdef CONFIG_PREEMPT - brcc 3f -#else - brcc 1b -#endif - sub r1, pc, . - cpu_idle_skip_sleep - stdsp sp[REG_PC], r1 -#ifdef CONFIG_PREEMPT -3: get_thread_info r0 - ld.w r2, r0[TI_preempt_count] - cp.w r2, 0 - brne 1b - ld.w r1, r0[TI_flags] - bld r1, TIF_NEED_RESCHED - brcc 1b - lddsp r4, sp[REG_SR] - bld r4, SYSREG_GM_OFFSET - brcs 1b - call preempt_schedule_irq -#endif - rjmp 1b - .endm - - .section .irq.text,"ax",@progbits - - .global irq_level0 - .global irq_level1 - .global irq_level2 - .global irq_level3 - IRQ_LEVEL 0 - IRQ_LEVEL 1 - IRQ_LEVEL 2 - IRQ_LEVEL 3 - - .section .kprobes.text, "ax", @progbits - .type enter_monitor_mode, @function -enter_monitor_mode: - /* - * We need to enter monitor mode to do a single step. The - * monitor code will alter the return address so that we - * return directly to the user instead of returning here. - */ - breakpoint - rjmp breakpoint_failed - - .size enter_monitor_mode, . - enter_monitor_mode - - .type debug_trampoline, @function - .global debug_trampoline -debug_trampoline: - /* - * Save the registers on the stack so that the monitor code - * can find them easily. - */ - sub sp, 4 /* r12_orig */ - stmts --sp, r0-lr - get_thread_info r0 - ld.w r8, r0[TI_rar_saved] - ld.w r9, r0[TI_rsr_saved] - pushm r8-r9 - - /* - * The monitor code will alter the return address so we don't - * return here. - */ - breakpoint - rjmp breakpoint_failed - .size debug_trampoline, . - debug_trampoline - - .type breakpoint_failed, @function -breakpoint_failed: - /* - * Something went wrong. Perhaps the debug hardware isn't - * enabled? - */ - lda.w r12, msg_breakpoint_failed - mov r11, sp - mov r10, 9 /* SIGKILL */ - call die -1: rjmp 1b - -msg_breakpoint_failed: - .asciz "Failed to enter Debug Mode" diff --git a/arch/avr32/kernel/head.S b/arch/avr32/kernel/head.S deleted file mode 100644 index 59eae6dfbed2..000000000000 --- a/arch/avr32/kernel/head.S +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Non-board-specific low-level startup code - * - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/linkage.h> - -#include <asm/page.h> - - .section .init.text,"ax" - .global kernel_entry -kernel_entry: - /* Start the show */ - lddpc pc, kernel_start_addr - - .align 2 -kernel_start_addr: - .long start_kernel diff --git a/arch/avr32/kernel/irq.c b/arch/avr32/kernel/irq.c deleted file mode 100644 index 900e49b2258b..000000000000 --- a/arch/avr32/kernel/irq.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * Based on arch/i386/kernel/irq.c - * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/interrupt.h> -#include <linux/irq.h> -#include <linux/kernel_stat.h> -#include <linux/proc_fs.h> -#include <linux/seq_file.h> -#include <linux/device.h> - -/* May be overridden by platform code */ -int __weak nmi_enable(void) -{ - return -ENOSYS; -} - -void __weak nmi_disable(void) -{ - -} diff --git a/arch/avr32/kernel/kprobes.c b/arch/avr32/kernel/kprobes.c deleted file mode 100644 index a94ece4a72c8..000000000000 --- a/arch/avr32/kernel/kprobes.c +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Kernel Probes (KProbes) - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * Based on arch/ppc64/kernel/kprobes.c - * Copyright (C) IBM Corporation, 2002, 2004 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/kprobes.h> -#include <linux/ptrace.h> - -#include <asm/cacheflush.h> -#include <linux/kdebug.h> -#include <asm/ocd.h> - -DEFINE_PER_CPU(struct kprobe *, current_kprobe); -static unsigned long kprobe_status; -static struct pt_regs jprobe_saved_regs; - -struct kretprobe_blackpoint kretprobe_blacklist[] = {{NULL, NULL}}; - -int __kprobes arch_prepare_kprobe(struct kprobe *p) -{ - int ret = 0; - - if ((unsigned long)p->addr & 0x01) { - printk("Attempt to register kprobe at an unaligned address\n"); - ret = -EINVAL; - } - - /* XXX: Might be a good idea to check if p->addr is a valid - * kernel address as well... */ - - if (!ret) { - pr_debug("copy kprobe at %p\n", p->addr); - memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t)); - p->opcode = *p->addr; - } - - return ret; -} - -void __kprobes arch_arm_kprobe(struct kprobe *p) -{ - pr_debug("arming kprobe at %p\n", p->addr); - ocd_enable(NULL); - *p->addr = BREAKPOINT_INSTRUCTION; - flush_icache_range((unsigned long)p->addr, - (unsigned long)p->addr + sizeof(kprobe_opcode_t)); -} - -void __kprobes arch_disarm_kprobe(struct kprobe *p) -{ - pr_debug("disarming kprobe at %p\n", p->addr); - ocd_disable(NULL); - *p->addr = p->opcode; - flush_icache_range((unsigned long)p->addr, - (unsigned long)p->addr + sizeof(kprobe_opcode_t)); -} - -static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) -{ - unsigned long dc; - - pr_debug("preparing to singlestep over %p (PC=%08lx)\n", - p->addr, regs->pc); - - BUG_ON(!(sysreg_read(SR) & SYSREG_BIT(SR_D))); - - dc = ocd_read(DC); - dc |= 1 << OCD_DC_SS_BIT; - ocd_write(DC, dc); - - /* - * We must run the instruction from its original location - * since it may actually reference PC. - * - * TODO: Do the instruction replacement directly in icache. - */ - *p->addr = p->opcode; - flush_icache_range((unsigned long)p->addr, - (unsigned long)p->addr + sizeof(kprobe_opcode_t)); -} - -static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs) -{ - unsigned long dc; - - pr_debug("resuming execution at PC=%08lx\n", regs->pc); - - dc = ocd_read(DC); - dc &= ~(1 << OCD_DC_SS_BIT); - ocd_write(DC, dc); - - *p->addr = BREAKPOINT_INSTRUCTION; - flush_icache_range((unsigned long)p->addr, - (unsigned long)p->addr + sizeof(kprobe_opcode_t)); -} - -static void __kprobes set_current_kprobe(struct kprobe *p) -{ - __this_cpu_write(current_kprobe, p); -} - -static int __kprobes kprobe_handler(struct pt_regs *regs) -{ - struct kprobe *p; - void *addr = (void *)regs->pc; - int ret = 0; - - pr_debug("kprobe_handler: kprobe_running=%p\n", - kprobe_running()); - - /* - * We don't want to be preempted for the entire - * duration of kprobe processing - */ - preempt_disable(); - - /* Check that we're not recursing */ - if (kprobe_running()) { - p = get_kprobe(addr); - if (p) { - if (kprobe_status == KPROBE_HIT_SS) { - printk("FIXME: kprobe hit while single-stepping!\n"); - goto no_kprobe; - } - - printk("FIXME: kprobe hit while handling another kprobe\n"); - goto no_kprobe; - } else { - p = kprobe_running(); - if (p->break_handler && p->break_handler(p, regs)) - goto ss_probe; - } - /* If it's not ours, can't be delete race, (we hold lock). */ - goto no_kprobe; - } - - p = get_kprobe(addr); - if (!p) - goto no_kprobe; - - kprobe_status = KPROBE_HIT_ACTIVE; - set_current_kprobe(p); - if (p->pre_handler && p->pre_handler(p, regs)) - /* handler has already set things up, so skip ss setup */ - return 1; - -ss_probe: - prepare_singlestep(p, regs); - kprobe_status = KPROBE_HIT_SS; - return 1; - -no_kprobe: - preempt_enable_no_resched(); - return ret; -} - -static int __kprobes post_kprobe_handler(struct pt_regs *regs) -{ - struct kprobe *cur = kprobe_running(); - - pr_debug("post_kprobe_handler, cur=%p\n", cur); - - if (!cur) - return 0; - - if (cur->post_handler) { - kprobe_status = KPROBE_HIT_SSDONE; - cur->post_handler(cur, regs, 0); - } - - resume_execution(cur, regs); - reset_current_kprobe(); - preempt_enable_no_resched(); - - return 1; -} - -int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) -{ - struct kprobe *cur = kprobe_running(); - - pr_debug("kprobe_fault_handler: trapnr=%d\n", trapnr); - - if (cur->fault_handler && cur->fault_handler(cur, regs, trapnr)) - return 1; - - if (kprobe_status & KPROBE_HIT_SS) { - resume_execution(cur, regs); - preempt_enable_no_resched(); - } - return 0; -} - -/* - * Wrapper routine to for handling exceptions. - */ -int __kprobes kprobe_exceptions_notify(struct notifier_block *self, - unsigned long val, void *data) -{ - struct die_args *args = (struct die_args *)data; - int ret = NOTIFY_DONE; - - pr_debug("kprobe_exceptions_notify: val=%lu, data=%p\n", - val, data); - - switch (val) { - case DIE_BREAKPOINT: - if (kprobe_handler(args->regs)) - ret = NOTIFY_STOP; - break; - case DIE_SSTEP: - if (post_kprobe_handler(args->regs)) - ret = NOTIFY_STOP; - break; - default: - break; - } - - return ret; -} - -int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct jprobe *jp = container_of(p, struct jprobe, kp); - - memcpy(&jprobe_saved_regs, regs, sizeof(struct pt_regs)); - - /* - * TODO: We should probably save some of the stack here as - * well, since gcc may pass arguments on the stack for certain - * functions (lots of arguments, large aggregates, varargs) - */ - - /* setup return addr to the jprobe handler routine */ - regs->pc = (unsigned long)jp->entry; - return 1; -} - -void __kprobes jprobe_return(void) -{ - asm volatile("breakpoint" ::: "memory"); -} - -int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) -{ - /* - * FIXME - we should ideally be validating that we got here 'cos - * of the "trap" in jprobe_return() above, before restoring the - * saved regs... - */ - memcpy(regs, &jprobe_saved_regs, sizeof(struct pt_regs)); - return 1; -} - -int __init arch_init_kprobes(void) -{ - /* TODO: Register kretprobe trampoline */ - return 0; -} diff --git a/arch/avr32/kernel/module.c b/arch/avr32/kernel/module.c deleted file mode 100644 index 2b4c54c04cb6..000000000000 --- a/arch/avr32/kernel/module.c +++ /dev/null @@ -1,291 +0,0 @@ -/* - * AVR32-specific kernel module loader - * - * Copyright (C) 2005-2006 Atmel Corporation - * - * GOT initialization parts are based on the s390 version - * Copyright (C) 2002, 2003 IBM Deutschland Entwicklung GmbH, - * IBM Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/bug.h> -#include <linux/elf.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/moduleloader.h> -#include <linux/vmalloc.h> - -void module_arch_freeing_init(struct module *mod) -{ - vfree(mod->arch.syminfo); - mod->arch.syminfo = NULL; -} - -static inline int check_rela(Elf32_Rela *rela, struct module *module, - char *strings, Elf32_Sym *symbols) -{ - struct mod_arch_syminfo *info; - - info = module->arch.syminfo + ELF32_R_SYM(rela->r_info); - switch (ELF32_R_TYPE(rela->r_info)) { - case R_AVR32_GOT32: - case R_AVR32_GOT16: - case R_AVR32_GOT8: - case R_AVR32_GOT21S: - case R_AVR32_GOT18SW: /* mcall */ - case R_AVR32_GOT16S: /* ld.w */ - if (rela->r_addend != 0) { - printk(KERN_ERR - "GOT relocation against %s at offset %u with addend\n", - strings + symbols[ELF32_R_SYM(rela->r_info)].st_name, - rela->r_offset); - return -ENOEXEC; - } - if (info->got_offset == -1UL) { - info->got_offset = module->arch.got_size; - module->arch.got_size += sizeof(void *); - } - pr_debug("GOT[%3lu] %s\n", info->got_offset, - strings + symbols[ELF32_R_SYM(rela->r_info)].st_name); - break; - } - - return 0; -} - -int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, - char *secstrings, struct module *module) -{ - Elf32_Shdr *symtab; - Elf32_Sym *symbols; - Elf32_Rela *rela; - char *strings; - int nrela, i, j; - int ret; - - /* Find the symbol table */ - symtab = NULL; - for (i = 0; i < hdr->e_shnum; i++) - switch (sechdrs[i].sh_type) { - case SHT_SYMTAB: - symtab = &sechdrs[i]; - break; - } - if (!symtab) { - printk(KERN_ERR "module %s: no symbol table\n", module->name); - return -ENOEXEC; - } - - /* Allocate room for one syminfo structure per symbol. */ - module->arch.nsyms = symtab->sh_size / sizeof(Elf_Sym); - module->arch.syminfo = vmalloc(module->arch.nsyms - * sizeof(struct mod_arch_syminfo)); - if (!module->arch.syminfo) - return -ENOMEM; - - symbols = (void *)hdr + symtab->sh_offset; - strings = (void *)hdr + sechdrs[symtab->sh_link].sh_offset; - for (i = 0; i < module->arch.nsyms; i++) { - if (symbols[i].st_shndx == SHN_UNDEF && - strcmp(strings + symbols[i].st_name, - "_GLOBAL_OFFSET_TABLE_") == 0) - /* "Define" it as absolute. */ - symbols[i].st_shndx = SHN_ABS; - module->arch.syminfo[i].got_offset = -1UL; - module->arch.syminfo[i].got_initialized = 0; - } - - /* Allocate GOT entries for symbols that need it. */ - module->arch.got_size = 0; - for (i = 0; i < hdr->e_shnum; i++) { - if (sechdrs[i].sh_type != SHT_RELA) - continue; - nrela = sechdrs[i].sh_size / sizeof(Elf32_Rela); - rela = (void *)hdr + sechdrs[i].sh_offset; - for (j = 0; j < nrela; j++) { - ret = check_rela(rela + j, module, - strings, symbols); - if (ret) - goto out_free_syminfo; - } - } - - /* - * Increase core size to make room for GOT and set start - * offset for GOT. - */ - module->core_layout.size = ALIGN(module->core_layout.size, 4); - module->arch.got_offset = module->core_layout.size; - module->core_layout.size += module->arch.got_size; - - return 0; - -out_free_syminfo: - vfree(module->arch.syminfo); - module->arch.syminfo = NULL; - - return ret; -} - -static inline int reloc_overflow(struct module *module, const char *reloc_name, - Elf32_Addr relocation) -{ - printk(KERN_ERR "module %s: Value %lx does not fit relocation %s\n", - module->name, (unsigned long)relocation, reloc_name); - return -ENOEXEC; -} - -#define get_u16(loc) (*((uint16_t *)loc)) -#define put_u16(loc, val) (*((uint16_t *)loc) = (val)) - -int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, - unsigned int symindex, unsigned int relindex, - struct module *module) -{ - Elf32_Shdr *symsec = sechdrs + symindex; - Elf32_Shdr *relsec = sechdrs + relindex; - Elf32_Shdr *dstsec = sechdrs + relsec->sh_info; - Elf32_Rela *rel = (void *)relsec->sh_addr; - unsigned int i; - int ret = 0; - - for (i = 0; i < relsec->sh_size / sizeof(Elf32_Rela); i++, rel++) { - struct mod_arch_syminfo *info; - Elf32_Sym *sym; - Elf32_Addr relocation; - uint32_t *location; - uint32_t value; - - location = (void *)dstsec->sh_addr + rel->r_offset; - sym = (Elf32_Sym *)symsec->sh_addr + ELF32_R_SYM(rel->r_info); - relocation = sym->st_value + rel->r_addend; - - info = module->arch.syminfo + ELF32_R_SYM(rel->r_info); - - /* Initialize GOT entry if necessary */ - switch (ELF32_R_TYPE(rel->r_info)) { - case R_AVR32_GOT32: - case R_AVR32_GOT16: - case R_AVR32_GOT8: - case R_AVR32_GOT21S: - case R_AVR32_GOT18SW: - case R_AVR32_GOT16S: - if (!info->got_initialized) { - Elf32_Addr *gotent; - - gotent = (module->core_layout.base - + module->arch.got_offset - + info->got_offset); - *gotent = relocation; - info->got_initialized = 1; - } - - relocation = info->got_offset; - break; - } - - switch (ELF32_R_TYPE(rel->r_info)) { - case R_AVR32_32: - case R_AVR32_32_CPENT: - *location = relocation; - break; - case R_AVR32_22H_PCREL: - relocation -= (Elf32_Addr)location; - if ((relocation & 0xffe00001) != 0 - && (relocation & 0xffc00001) != 0xffc00000) - return reloc_overflow(module, - "R_AVR32_22H_PCREL", - relocation); - relocation >>= 1; - - value = *location; - value = ((value & 0xe1ef0000) - | (relocation & 0xffff) - | ((relocation & 0x10000) << 4) - | ((relocation & 0x1e0000) << 8)); - *location = value; - break; - case R_AVR32_11H_PCREL: - relocation -= (Elf32_Addr)location; - if ((relocation & 0xfffffc01) != 0 - && (relocation & 0xfffff801) != 0xfffff800) - return reloc_overflow(module, - "R_AVR32_11H_PCREL", - relocation); - value = get_u16(location); - value = ((value & 0xf00c) - | ((relocation & 0x1fe) << 3) - | ((relocation & 0x600) >> 9)); - put_u16(location, value); - break; - case R_AVR32_9H_PCREL: - relocation -= (Elf32_Addr)location; - if ((relocation & 0xffffff01) != 0 - && (relocation & 0xfffffe01) != 0xfffffe00) - return reloc_overflow(module, - "R_AVR32_9H_PCREL", - relocation); - value = get_u16(location); - value = ((value & 0xf00f) - | ((relocation & 0x1fe) << 3)); - put_u16(location, value); - break; - case R_AVR32_9UW_PCREL: - relocation -= ((Elf32_Addr)location) & 0xfffffffc; - if ((relocation & 0xfffffc03) != 0) - return reloc_overflow(module, - "R_AVR32_9UW_PCREL", - relocation); - value = get_u16(location); - value = ((value & 0xf80f) - | ((relocation & 0x1fc) << 2)); - put_u16(location, value); - break; - case R_AVR32_GOTPC: - /* - * R6 = PC - (PC - GOT) - * - * At this point, relocation contains the - * value of PC. Just subtract the value of - * GOT, and we're done. - */ - pr_debug("GOTPC: PC=0x%x, got_offset=0x%lx, core=0x%p\n", - relocation, module->arch.got_offset, - module->core_layout.base); - relocation -= ((unsigned long)module->core_layout.base - + module->arch.got_offset); - *location = relocation; - break; - case R_AVR32_GOT18SW: - if ((relocation & 0xfffe0003) != 0 - && (relocation & 0xfffc0000) != 0xfffc0000) - return reloc_overflow(module, "R_AVR32_GOT18SW", - relocation); - relocation >>= 2; - /* fall through */ - case R_AVR32_GOT16S: - if ((relocation & 0xffff8000) != 0 - && (relocation & 0xffff0000) != 0xffff0000) - return reloc_overflow(module, "R_AVR32_GOT16S", - relocation); - pr_debug("GOT reloc @ 0x%x -> %u\n", - rel->r_offset, relocation); - value = *location; - value = ((value & 0xffff0000) - | (relocation & 0xffff)); - *location = value; - break; - - default: - printk(KERN_ERR "module %s: Unknown relocation: %u\n", - module->name, ELF32_R_TYPE(rel->r_info)); - return -ENOEXEC; - } - } - - return ret; -} diff --git a/arch/avr32/kernel/nmi_debug.c b/arch/avr32/kernel/nmi_debug.c deleted file mode 100644 index 25823049bb99..000000000000 --- a/arch/avr32/kernel/nmi_debug.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/delay.h> -#include <linux/kdebug.h> -#include <linux/notifier.h> -#include <linux/sched.h> -#include <linux/sched/debug.h> - -#include <asm/irq.h> - -enum nmi_action { - NMI_SHOW_STATE = 1 << 0, - NMI_SHOW_REGS = 1 << 1, - NMI_DIE = 1 << 2, - NMI_DEBOUNCE = 1 << 3, -}; - -static unsigned long nmi_actions; - -static int nmi_debug_notify(struct notifier_block *self, - unsigned long val, void *data) -{ - struct die_args *args = data; - - if (likely(val != DIE_NMI)) - return NOTIFY_DONE; - - if (nmi_actions & NMI_SHOW_STATE) - show_state(); - if (nmi_actions & NMI_SHOW_REGS) - show_regs(args->regs); - if (nmi_actions & NMI_DEBOUNCE) - mdelay(10); - if (nmi_actions & NMI_DIE) - return NOTIFY_BAD; - - return NOTIFY_OK; -} - -static struct notifier_block nmi_debug_nb = { - .notifier_call = nmi_debug_notify, -}; - -static int __init nmi_debug_setup(char *str) -{ - char *p, *sep; - - register_die_notifier(&nmi_debug_nb); - if (nmi_enable()) { - printk(KERN_WARNING "Unable to enable NMI.\n"); - return 0; - } - - if (*str != '=') - return 0; - - for (p = str + 1; *p; p = sep + 1) { - sep = strchr(p, ','); - if (sep) - *sep = 0; - if (strcmp(p, "state") == 0) - nmi_actions |= NMI_SHOW_STATE; - else if (strcmp(p, "regs") == 0) - nmi_actions |= NMI_SHOW_REGS; - else if (strcmp(p, "debounce") == 0) - nmi_actions |= NMI_DEBOUNCE; - else if (strcmp(p, "die") == 0) - nmi_actions |= NMI_DIE; - else - printk(KERN_WARNING "NMI: Unrecognized action `%s'\n", - p); - if (!sep) - break; - } - - return 0; -} -__setup("nmi_debug", nmi_debug_setup); diff --git a/arch/avr32/kernel/ocd.c b/arch/avr32/kernel/ocd.c deleted file mode 100644 index 1b0245d4e0ca..000000000000 --- a/arch/avr32/kernel/ocd.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (C) 2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/init.h> -#include <linux/sched.h> -#include <linux/spinlock.h> - -#include <asm/ocd.h> - -static long ocd_count; -static spinlock_t ocd_lock; - -/** - * ocd_enable - enable on-chip debugging - * @child: task to be debugged - * - * If @child is non-NULL, ocd_enable() first checks if debugging has - * already been enabled for @child, and if it has, does nothing. - * - * If @child is NULL (e.g. when debugging the kernel), or debugging - * has not already been enabled for it, ocd_enable() increments the - * reference count and enables the debugging hardware. - */ -void ocd_enable(struct task_struct *child) -{ - u32 dc; - - if (child) - pr_debug("ocd_enable: child=%s [%u]\n", - child->comm, child->pid); - else - pr_debug("ocd_enable (no child)\n"); - - if (!child || !test_and_set_tsk_thread_flag(child, TIF_DEBUG)) { - spin_lock(&ocd_lock); - ocd_count++; - dc = ocd_read(DC); - dc |= (1 << OCD_DC_MM_BIT) | (1 << OCD_DC_DBE_BIT); - ocd_write(DC, dc); - spin_unlock(&ocd_lock); - } -} - -/** - * ocd_disable - disable on-chip debugging - * @child: task that was being debugged, but isn't anymore - * - * If @child is non-NULL, ocd_disable() checks if debugging is enabled - * for @child, and if it isn't, does nothing. - * - * If @child is NULL (e.g. when debugging the kernel), or debugging is - * enabled, ocd_disable() decrements the reference count, and if it - * reaches zero, disables the debugging hardware. - */ -void ocd_disable(struct task_struct *child) -{ - u32 dc; - - if (!child) - pr_debug("ocd_disable (no child)\n"); - else if (test_tsk_thread_flag(child, TIF_DEBUG)) - pr_debug("ocd_disable: child=%s [%u]\n", - child->comm, child->pid); - - if (!child || test_and_clear_tsk_thread_flag(child, TIF_DEBUG)) { - spin_lock(&ocd_lock); - ocd_count--; - - WARN_ON(ocd_count < 0); - - if (ocd_count <= 0) { - dc = ocd_read(DC); - dc &= ~((1 << OCD_DC_MM_BIT) | (1 << OCD_DC_DBE_BIT)); - ocd_write(DC, dc); - } - spin_unlock(&ocd_lock); - } -} - -#ifdef CONFIG_DEBUG_FS -#include <linux/debugfs.h> -#include <linux/module.h> - -static struct dentry *ocd_debugfs_root; -static struct dentry *ocd_debugfs_DC; -static struct dentry *ocd_debugfs_DS; -static struct dentry *ocd_debugfs_count; - -static int ocd_DC_get(void *data, u64 *val) -{ - *val = ocd_read(DC); - return 0; -} -static int ocd_DC_set(void *data, u64 val) -{ - ocd_write(DC, val); - return 0; -} -DEFINE_SIMPLE_ATTRIBUTE(fops_DC, ocd_DC_get, ocd_DC_set, "0x%08llx\n"); - -static int ocd_DS_get(void *data, u64 *val) -{ - *val = ocd_read(DS); - return 0; -} -DEFINE_SIMPLE_ATTRIBUTE(fops_DS, ocd_DS_get, NULL, "0x%08llx\n"); - -static int ocd_count_get(void *data, u64 *val) -{ - *val = ocd_count; - return 0; -} -DEFINE_SIMPLE_ATTRIBUTE(fops_count, ocd_count_get, NULL, "%lld\n"); - -static void ocd_debugfs_init(void) -{ - struct dentry *root; - - root = debugfs_create_dir("ocd", NULL); - if (IS_ERR(root) || !root) - goto err_root; - ocd_debugfs_root = root; - - ocd_debugfs_DC = debugfs_create_file("DC", S_IRUSR | S_IWUSR, - root, NULL, &fops_DC); - if (!ocd_debugfs_DC) - goto err_DC; - - ocd_debugfs_DS = debugfs_create_file("DS", S_IRUSR, root, - NULL, &fops_DS); - if (!ocd_debugfs_DS) - goto err_DS; - - ocd_debugfs_count = debugfs_create_file("count", S_IRUSR, root, - NULL, &fops_count); - if (!ocd_debugfs_count) - goto err_count; - - return; - -err_count: - debugfs_remove(ocd_debugfs_DS); -err_DS: - debugfs_remove(ocd_debugfs_DC); -err_DC: - debugfs_remove(ocd_debugfs_root); -err_root: - printk(KERN_WARNING "OCD: Failed to create debugfs entries\n"); -} -#else -static inline void ocd_debugfs_init(void) -{ - -} -#endif - -static int __init ocd_init(void) -{ - spin_lock_init(&ocd_lock); - ocd_debugfs_init(); - return 0; -} -arch_initcall(ocd_init); diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c deleted file mode 100644 index ad0dfccedb79..000000000000 --- a/arch/avr32/kernel/process.c +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include <linux/sched.h> -#include <linux/sched/debug.h> -#include <linux/sched/task.h> -#include <linux/sched/task_stack.h> -#include <linux/module.h> -#include <linux/kallsyms.h> -#include <linux/fs.h> -#include <linux/pm.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/reboot.h> -#include <linux/tick.h> -#include <linux/uaccess.h> -#include <linux/unistd.h> - -#include <asm/sysreg.h> -#include <asm/ocd.h> -#include <asm/syscalls.h> - -#include <mach/pm.h> - -void (*pm_power_off)(void); -EXPORT_SYMBOL(pm_power_off); - -/* - * This file handles the architecture-dependent parts of process handling.. - */ - -void arch_cpu_idle(void) -{ - cpu_enter_idle(); -} - -void machine_halt(void) -{ - /* - * Enter Stop mode. The 32 kHz oscillator will keep running so - * the RTC will keep the time properly and the system will - * boot quickly. - */ - asm volatile("sleep 3\n\t" - "sub pc, -2"); -} - -void machine_power_off(void) -{ - if (pm_power_off) - pm_power_off(); -} - -void machine_restart(char *cmd) -{ - ocd_write(DC, (1 << OCD_DC_DBE_BIT)); - ocd_write(DC, (1 << OCD_DC_RES_BIT)); - while (1) ; -} - -/* - * Free current thread data structures etc - */ -void exit_thread(struct task_struct *tsk) -{ - ocd_disable(tsk); -} - -void flush_thread(void) -{ - /* nothing to do */ -} - -void release_thread(struct task_struct *dead_task) -{ - /* do nothing */ -} - -static void dump_mem(const char *str, const char *log_lvl, - unsigned long bottom, unsigned long top) -{ - unsigned long p; - int i; - - printk("%s%s(0x%08lx to 0x%08lx)\n", log_lvl, str, bottom, top); - - for (p = bottom & ~31; p < top; ) { - printk("%s%04lx: ", log_lvl, p & 0xffff); - - for (i = 0; i < 8; i++, p += 4) { - unsigned int val; - - if (p < bottom || p >= top) - printk(" "); - else { - if (__get_user(val, (unsigned int __user *)p)) { - printk("\n"); - goto out; - } - printk("%08x ", val); - } - } - printk("\n"); - } - -out: - return; -} - -static inline int valid_stack_ptr(struct thread_info *tinfo, unsigned long p) -{ - return (p > (unsigned long)tinfo) - && (p < (unsigned long)tinfo + THREAD_SIZE - 3); -} - -#ifdef CONFIG_FRAME_POINTER -static void show_trace_log_lvl(struct task_struct *tsk, unsigned long *sp, - struct pt_regs *regs, const char *log_lvl) -{ - unsigned long lr, fp; - struct thread_info *tinfo; - - if (regs) - fp = regs->r7; - else if (tsk == current) - asm("mov %0, r7" : "=r"(fp)); - else - fp = tsk->thread.cpu_context.r7; - - /* - * Walk the stack as long as the frame pointer (a) is within - * the kernel stack of the task, and (b) it doesn't move - * downwards. - */ - tinfo = task_thread_info(tsk); - printk("%sCall trace:\n", log_lvl); - while (valid_stack_ptr(tinfo, fp)) { - unsigned long new_fp; - - lr = *(unsigned long *)fp; -#ifdef CONFIG_KALLSYMS - printk("%s [<%08lx>] ", log_lvl, lr); -#else - printk(" [<%08lx>] ", lr); -#endif - print_symbol("%s\n", lr); - - new_fp = *(unsigned long *)(fp + 4); - if (new_fp <= fp) - break; - fp = new_fp; - } - printk("\n"); -} -#else -static void show_trace_log_lvl(struct task_struct *tsk, unsigned long *sp, - struct pt_regs *regs, const char *log_lvl) -{ - unsigned long addr; - - printk("%sCall trace:\n", log_lvl); - - while (!kstack_end(sp)) { - addr = *sp++; - if (kernel_text_address(addr)) { -#ifdef CONFIG_KALLSYMS - printk("%s [<%08lx>] ", log_lvl, addr); -#else - printk(" [<%08lx>] ", addr); -#endif - print_symbol("%s\n", addr); - } - } - printk("\n"); -} -#endif - -void show_stack_log_lvl(struct task_struct *tsk, unsigned long sp, - struct pt_regs *regs, const char *log_lvl) -{ - struct thread_info *tinfo; - - if (sp == 0) { - if (tsk) - sp = tsk->thread.cpu_context.ksp; - else - sp = (unsigned long)&tinfo; - } - if (!tsk) - tsk = current; - - tinfo = task_thread_info(tsk); - - if (valid_stack_ptr(tinfo, sp)) { - dump_mem("Stack: ", log_lvl, sp, - THREAD_SIZE + (unsigned long)tinfo); - show_trace_log_lvl(tsk, (unsigned long *)sp, regs, log_lvl); - } -} - -void show_stack(struct task_struct *tsk, unsigned long *stack) -{ - show_stack_log_lvl(tsk, (unsigned long)stack, NULL, ""); -} - -static const char *cpu_modes[] = { - "Application", "Supervisor", "Interrupt level 0", "Interrupt level 1", - "Interrupt level 2", "Interrupt level 3", "Exception", "NMI" -}; - -void show_regs_log_lvl(struct pt_regs *regs, const char *log_lvl) -{ - unsigned long sp = regs->sp; - unsigned long lr = regs->lr; - unsigned long mode = (regs->sr & MODE_MASK) >> MODE_SHIFT; - - show_regs_print_info(log_lvl); - - if (!user_mode(regs)) { - sp = (unsigned long)regs + FRAME_SIZE_FULL; - - printk("%s", log_lvl); - print_symbol("PC is at %s\n", instruction_pointer(regs)); - printk("%s", log_lvl); - print_symbol("LR is at %s\n", lr); - } - - printk("%spc : [<%08lx>] lr : [<%08lx>] %s\n" - "%ssp : %08lx r12: %08lx r11: %08lx\n", - log_lvl, instruction_pointer(regs), lr, print_tainted(), - log_lvl, sp, regs->r12, regs->r11); - printk("%sr10: %08lx r9 : %08lx r8 : %08lx\n", - log_lvl, regs->r10, regs->r9, regs->r8); - printk("%sr7 : %08lx r6 : %08lx r5 : %08lx r4 : %08lx\n", - log_lvl, regs->r7, regs->r6, regs->r5, regs->r4); - printk("%sr3 : %08lx r2 : %08lx r1 : %08lx r0 : %08lx\n", - log_lvl, regs->r3, regs->r2, regs->r1, regs->r0); - printk("%sFlags: %c%c%c%c%c\n", log_lvl, - regs->sr & SR_Q ? 'Q' : 'q', - regs->sr & SR_V ? 'V' : 'v', - regs->sr & SR_N ? 'N' : 'n', - regs->sr & SR_Z ? 'Z' : 'z', - regs->sr & SR_C ? 'C' : 'c'); - printk("%sMode bits: %c%c%c%c%c%c%c%c%c%c\n", log_lvl, - regs->sr & SR_H ? 'H' : 'h', - regs->sr & SR_J ? 'J' : 'j', - regs->sr & SR_DM ? 'M' : 'm', - regs->sr & SR_D ? 'D' : 'd', - regs->sr & SR_EM ? 'E' : 'e', - regs->sr & SR_I3M ? '3' : '.', - regs->sr & SR_I2M ? '2' : '.', - regs->sr & SR_I1M ? '1' : '.', - regs->sr & SR_I0M ? '0' : '.', - regs->sr & SR_GM ? 'G' : 'g'); - printk("%sCPU Mode: %s\n", log_lvl, cpu_modes[mode]); -} - -void show_regs(struct pt_regs *regs) -{ - unsigned long sp = regs->sp; - - if (!user_mode(regs)) - sp = (unsigned long)regs + FRAME_SIZE_FULL; - - show_regs_log_lvl(regs, ""); - show_trace_log_lvl(current, (unsigned long *)sp, regs, ""); -} -EXPORT_SYMBOL(show_regs); - -/* Fill in the fpu structure for a core dump. This is easy -- we don't have any */ -int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) -{ - /* Not valid */ - return 0; -} - -asmlinkage void ret_from_fork(void); -asmlinkage void ret_from_kernel_thread(void); -asmlinkage void syscall_return(void); - -int copy_thread(unsigned long clone_flags, unsigned long usp, - unsigned long arg, - struct task_struct *p) -{ - struct pt_regs *childregs = task_pt_regs(p); - - if (unlikely(p->flags & PF_KTHREAD)) { - memset(childregs, 0, sizeof(struct pt_regs)); - p->thread.cpu_context.r0 = arg; - p->thread.cpu_context.r1 = usp; /* fn */ - p->thread.cpu_context.r2 = (unsigned long)syscall_return; - p->thread.cpu_context.pc = (unsigned long)ret_from_kernel_thread; - childregs->sr = MODE_SUPERVISOR; - } else { - *childregs = *current_pt_regs(); - if (usp) - childregs->sp = usp; - childregs->r12 = 0; /* Set return value for child */ - p->thread.cpu_context.pc = (unsigned long)ret_from_fork; - } - - p->thread.cpu_context.sr = MODE_SUPERVISOR | SR_GM; - p->thread.cpu_context.ksp = (unsigned long)childregs; - - clear_tsk_thread_flag(p, TIF_DEBUG); - if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG)) - ocd_enable(p); - - return 0; -} - -/* - * This function is supposed to answer the question "who called - * schedule()?" - */ -unsigned long get_wchan(struct task_struct *p) -{ - unsigned long pc; - unsigned long stack_page; - - if (!p || p == current || p->state == TASK_RUNNING) - return 0; - - stack_page = (unsigned long)task_stack_page(p); - BUG_ON(!stack_page); - - /* - * The stored value of PC is either the address right after - * the call to __switch_to() or ret_from_fork. - */ - pc = thread_saved_pc(p); - if (in_sched_functions(pc)) { -#ifdef CONFIG_FRAME_POINTER - unsigned long fp = p->thread.cpu_context.r7; - BUG_ON(fp < stack_page || fp > (THREAD_SIZE + stack_page)); - pc = *(unsigned long *)fp; -#else - /* - * We depend on the frame size of schedule here, which - * is actually quite ugly. It might be possible to - * determine the frame size automatically at build - * time by doing this: - * - compile sched/core.c - * - disassemble the resulting sched.o - * - look for 'sub sp,??' shortly after '<schedule>:' - */ - unsigned long sp = p->thread.cpu_context.ksp + 16; - BUG_ON(sp < stack_page || sp > (THREAD_SIZE + stack_page)); - pc = *(unsigned long *)sp; -#endif - } - - return pc; -} diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c deleted file mode 100644 index 41a14e96a1db..000000000000 --- a/arch/avr32/kernel/ptrace.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#undef DEBUG -#include <linux/kernel.h> -#include <linux/sched.h> -#include <linux/sched/task_stack.h> -#include <linux/mm.h> -#include <linux/ptrace.h> -#include <linux/errno.h> -#include <linux/user.h> -#include <linux/security.h> -#include <linux/unistd.h> -#include <linux/notifier.h> - -#include <asm/traps.h> -#include <linux/uaccess.h> -#include <asm/ocd.h> -#include <asm/mmu_context.h> -#include <linux/kdebug.h> - -static struct pt_regs *get_user_regs(struct task_struct *tsk) -{ - return (struct pt_regs *)((unsigned long)task_stack_page(tsk) + - THREAD_SIZE - sizeof(struct pt_regs)); -} - -void user_enable_single_step(struct task_struct *tsk) -{ - pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n", - tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr); - - /* - * We can't schedule in Debug mode, so when TIF_BREAKPOINT is - * set, the system call or exception handler will do a - * breakpoint to enter monitor mode before returning to - * userspace. - * - * The monitor code will then notice that TIF_SINGLE_STEP is - * set and return to userspace with single stepping enabled. - * The CPU will then enter monitor mode again after exactly - * one instruction has been executed, and the monitor code - * will then send a SIGTRAP to the process. - */ - set_tsk_thread_flag(tsk, TIF_BREAKPOINT); - set_tsk_thread_flag(tsk, TIF_SINGLE_STEP); -} - -void user_disable_single_step(struct task_struct *child) -{ - /* XXX(hch): a no-op here seems wrong.. */ -} - -/* - * Called by kernel/ptrace.c when detaching - * - * Make sure any single step bits, etc. are not set - */ -void ptrace_disable(struct task_struct *child) -{ - clear_tsk_thread_flag(child, TIF_SINGLE_STEP); - clear_tsk_thread_flag(child, TIF_BREAKPOINT); - ocd_disable(child); -} - -/* - * Read the word at offset "offset" into the task's "struct user". We - * actually access the pt_regs struct stored on the kernel stack. - */ -static int ptrace_read_user(struct task_struct *tsk, unsigned long offset, - unsigned long __user *data) -{ - unsigned long *regs; - unsigned long value; - - if (offset & 3 || offset >= sizeof(struct user)) { - printk("ptrace_read_user: invalid offset 0x%08lx\n", offset); - return -EIO; - } - - regs = (unsigned long *)get_user_regs(tsk); - - value = 0; - if (offset < sizeof(struct pt_regs)) - value = regs[offset / sizeof(regs[0])]; - - pr_debug("ptrace_read_user(%s[%u], %#lx, %p) -> %#lx\n", - tsk->comm, tsk->pid, offset, data, value); - - return put_user(value, data); -} - -/* - * Write the word "value" to offset "offset" into the task's "struct - * user". We actually access the pt_regs struct stored on the kernel - * stack. - */ -static int ptrace_write_user(struct task_struct *tsk, unsigned long offset, - unsigned long value) -{ - unsigned long *regs; - - pr_debug("ptrace_write_user(%s[%u], %#lx, %#lx)\n", - tsk->comm, tsk->pid, offset, value); - - if (offset & 3 || offset >= sizeof(struct user)) { - pr_debug(" invalid offset 0x%08lx\n", offset); - return -EIO; - } - - if (offset >= sizeof(struct pt_regs)) - return 0; - - regs = (unsigned long *)get_user_regs(tsk); - regs[offset / sizeof(regs[0])] = value; - - return 0; -} - -static int ptrace_getregs(struct task_struct *tsk, void __user *uregs) -{ - struct pt_regs *regs = get_user_regs(tsk); - - return copy_to_user(uregs, regs, sizeof(*regs)) ? -EFAULT : 0; -} - -static int ptrace_setregs(struct task_struct *tsk, const void __user *uregs) -{ - struct pt_regs newregs; - int ret; - - ret = -EFAULT; - if (copy_from_user(&newregs, uregs, sizeof(newregs)) == 0) { - struct pt_regs *regs = get_user_regs(tsk); - - ret = -EINVAL; - if (valid_user_regs(&newregs)) { - *regs = newregs; - ret = 0; - } - } - - return ret; -} - -long arch_ptrace(struct task_struct *child, long request, - unsigned long addr, unsigned long data) -{ - int ret; - void __user *datap = (void __user *) data; - - switch (request) { - /* Read the word at location addr in the child process */ - case PTRACE_PEEKTEXT: - case PTRACE_PEEKDATA: - ret = generic_ptrace_peekdata(child, addr, data); - break; - - case PTRACE_PEEKUSR: - ret = ptrace_read_user(child, addr, datap); - break; - - /* Write the word in data at location addr */ - case PTRACE_POKETEXT: - case PTRACE_POKEDATA: - ret = generic_ptrace_pokedata(child, addr, data); - break; - - case PTRACE_POKEUSR: - ret = ptrace_write_user(child, addr, data); - break; - - case PTRACE_GETREGS: - ret = ptrace_getregs(child, datap); - break; - - case PTRACE_SETREGS: - ret = ptrace_setregs(child, datap); - break; - - default: - ret = ptrace_request(child, request, addr, data); - break; - } - - return ret; -} - -asmlinkage void syscall_trace(void) -{ - if (!test_thread_flag(TIF_SYSCALL_TRACE)) - return; - if (!(current->ptrace & PT_PTRACED)) - return; - - /* The 0x80 provides a way for the tracing parent to - * distinguish between a syscall stop and SIGTRAP delivery */ - ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) - ? 0x80 : 0)); - - /* - * this isn't the same as continuing with a signal, but it - * will do for normal use. strace only continues with a - * signal if the stopping signal is not SIGTRAP. -brl - */ - if (current->exit_code) { - pr_debug("syscall_trace: sending signal %d to PID %u\n", - current->exit_code, current->pid); - send_sig(current->exit_code, current, 1); - current->exit_code = 0; - } -} - -/* - * debug_trampoline() is an assembly stub which will store all user - * registers on the stack and execute a breakpoint instruction. - * - * If we single-step into an exception handler which runs with - * interrupts disabled the whole time so it doesn't have to check for - * pending work, its return address will be modified so that it ends - * up returning to debug_trampoline. - * - * If the exception handler decides to store the user context and - * enable interrupts after all, it will restore the original return - * address and status register value. Before it returns, it will - * notice that TIF_BREAKPOINT is set and execute a breakpoint - * instruction. - */ -extern void debug_trampoline(void); - -asmlinkage struct pt_regs *do_debug(struct pt_regs *regs) -{ - struct thread_info *ti; - unsigned long trampoline_addr; - u32 status; - u32 ctrl; - int code; - - status = ocd_read(DS); - ti = current_thread_info(); - code = TRAP_BRKPT; - - pr_debug("do_debug: status=0x%08x PC=0x%08lx SR=0x%08lx tif=0x%08lx\n", - status, regs->pc, regs->sr, ti->flags); - - if (!user_mode(regs)) { - unsigned long die_val = DIE_BREAKPOINT; - - if (status & (1 << OCD_DS_SSS_BIT)) - die_val = DIE_SSTEP; - - if (notify_die(die_val, "ptrace", regs, 0, 0, SIGTRAP) - == NOTIFY_STOP) - return regs; - - if ((status & (1 << OCD_DS_SWB_BIT)) - && test_and_clear_ti_thread_flag( - ti, TIF_BREAKPOINT)) { - /* - * Explicit breakpoint from trampoline or - * exception/syscall/interrupt handler. - * - * The real saved regs are on the stack right - * after the ones we saved on entry. - */ - regs++; - pr_debug(" -> TIF_BREAKPOINT done, adjusted regs:" - "PC=0x%08lx SR=0x%08lx\n", - regs->pc, regs->sr); - BUG_ON(!user_mode(regs)); - - if (test_thread_flag(TIF_SINGLE_STEP)) { - pr_debug("Going to do single step...\n"); - return regs; - } - - /* - * No TIF_SINGLE_STEP means we're done - * stepping over a syscall. Do the trap now. - */ - code = TRAP_TRACE; - } else if ((status & (1 << OCD_DS_SSS_BIT)) - && test_ti_thread_flag(ti, TIF_SINGLE_STEP)) { - - pr_debug("Stepped into something, " - "setting TIF_BREAKPOINT...\n"); - set_ti_thread_flag(ti, TIF_BREAKPOINT); - - /* - * We stepped into an exception, interrupt or - * syscall handler. Some exception handlers - * don't check for pending work, so we need to - * set up a trampoline just in case. - * - * The exception entry code will undo the - * trampoline stuff if it does a full context - * save (which also means that it'll check for - * pending work later.) - */ - if ((regs->sr & MODE_MASK) == MODE_EXCEPTION) { - trampoline_addr - = (unsigned long)&debug_trampoline; - - pr_debug("Setting up trampoline...\n"); - ti->rar_saved = sysreg_read(RAR_EX); - ti->rsr_saved = sysreg_read(RSR_EX); - sysreg_write(RAR_EX, trampoline_addr); - sysreg_write(RSR_EX, (MODE_EXCEPTION - | SR_EM | SR_GM)); - BUG_ON(ti->rsr_saved & MODE_MASK); - } - - /* - * If we stepped into a system call, we - * shouldn't do a single step after we return - * since the return address is right after the - * "scall" instruction we were told to step - * over. - */ - if ((regs->sr & MODE_MASK) == MODE_SUPERVISOR) { - pr_debug("Supervisor; no single step\n"); - clear_ti_thread_flag(ti, TIF_SINGLE_STEP); - } - - ctrl = ocd_read(DC); - ctrl &= ~(1 << OCD_DC_SS_BIT); - ocd_write(DC, ctrl); - - return regs; - } else { - printk(KERN_ERR "Unexpected OCD_DS value: 0x%08x\n", - status); - printk(KERN_ERR "Thread flags: 0x%08lx\n", ti->flags); - die("Unhandled debug trap in kernel mode", - regs, SIGTRAP); - } - } else if (status & (1 << OCD_DS_SSS_BIT)) { - /* Single step in user mode */ - code = TRAP_TRACE; - - ctrl = ocd_read(DC); - ctrl &= ~(1 << OCD_DC_SS_BIT); - ocd_write(DC, ctrl); - } - - pr_debug("Sending SIGTRAP: code=%d PC=0x%08lx SR=0x%08lx\n", - code, regs->pc, regs->sr); - - clear_thread_flag(TIF_SINGLE_STEP); - _exception(SIGTRAP, regs, code, instruction_pointer(regs)); - - return regs; -} diff --git a/arch/avr32/kernel/setup.c b/arch/avr32/kernel/setup.c deleted file mode 100644 index e6928896da2a..000000000000 --- a/arch/avr32/kernel/setup.c +++ /dev/null @@ -1,609 +0,0 @@ -/* - * Copyright (C) 2004-2006 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/clk.h> -#include <linux/init.h> -#include <linux/initrd.h> -#include <linux/sched.h> -#include <linux/console.h> -#include <linux/ioport.h> -#include <linux/bootmem.h> -#include <linux/fs.h> -#include <linux/module.h> -#include <linux/pfn.h> -#include <linux/root_dev.h> -#include <linux/cpu.h> -#include <linux/kernel.h> - -#include <asm/sections.h> -#include <asm/processor.h> -#include <asm/pgtable.h> -#include <asm/setup.h> -#include <asm/sysreg.h> - -#include <mach/board.h> -#include <mach/init.h> - -extern int root_mountflags; - -/* - * Initialize loops_per_jiffy as 5000000 (500MIPS). - * Better make it too large than too small... - */ -struct avr32_cpuinfo boot_cpu_data = { - .loops_per_jiffy = 5000000 -}; -EXPORT_SYMBOL(boot_cpu_data); - -static char __initdata command_line[COMMAND_LINE_SIZE]; - -/* - * Standard memory resources - */ -static struct resource __initdata kernel_data = { - .name = "Kernel data", - .start = 0, - .end = 0, - .flags = IORESOURCE_SYSTEM_RAM, -}; -static struct resource __initdata kernel_code = { - .name = "Kernel code", - .start = 0, - .end = 0, - .flags = IORESOURCE_SYSTEM_RAM, - .sibling = &kernel_data, -}; - -/* - * Available system RAM and reserved regions as singly linked - * lists. These lists are traversed using the sibling pointer in - * struct resource and are kept sorted at all times. - */ -static struct resource *__initdata system_ram; -static struct resource *__initdata reserved = &kernel_code; - -/* - * We need to allocate these before the bootmem allocator is up and - * running, so we need this "cache". 32 entries are probably enough - * for all but the most insanely complex systems. - */ -static struct resource __initdata res_cache[32]; -static unsigned int __initdata res_cache_next_free; - -static void __init resource_init(void) -{ - struct resource *mem, *res; - struct resource *new; - - kernel_code.start = __pa(init_mm.start_code); - - for (mem = system_ram; mem; mem = mem->sibling) { - new = alloc_bootmem_low(sizeof(struct resource)); - memcpy(new, mem, sizeof(struct resource)); - - new->sibling = NULL; - if (request_resource(&iomem_resource, new)) - printk(KERN_WARNING "Bad RAM resource %08x-%08x\n", - mem->start, mem->end); - } - - for (res = reserved; res; res = res->sibling) { - new = alloc_bootmem_low(sizeof(struct resource)); - memcpy(new, res, sizeof(struct resource)); - - new->sibling = NULL; - if (insert_resource(&iomem_resource, new)) - printk(KERN_WARNING - "Bad reserved resource %s (%08x-%08x)\n", - res->name, res->start, res->end); - } -} - -static void __init -add_physical_memory(resource_size_t start, resource_size_t end) -{ - struct resource *new, *next, **pprev; - - for (pprev = &system_ram, next = system_ram; next; - pprev = &next->sibling, next = next->sibling) { - if (end < next->start) - break; - if (start <= next->end) { - printk(KERN_WARNING - "Warning: Physical memory map is broken\n"); - printk(KERN_WARNING - "Warning: %08x-%08x overlaps %08x-%08x\n", - start, end, next->start, next->end); - return; - } - } - - if (res_cache_next_free >= ARRAY_SIZE(res_cache)) { - printk(KERN_WARNING - "Warning: Failed to add physical memory %08x-%08x\n", - start, end); - return; - } - - new = &res_cache[res_cache_next_free++]; - new->start = start; - new->end = end; - new->name = "System RAM"; - new->flags = IORESOURCE_SYSTEM_RAM; - - *pprev = new; -} - -static int __init -add_reserved_region(resource_size_t start, resource_size_t end, - const char *name) -{ - struct resource *new, *next, **pprev; - - if (end < start) - return -EINVAL; - - if (res_cache_next_free >= ARRAY_SIZE(res_cache)) - return -ENOMEM; - - for (pprev = &reserved, next = reserved; next; - pprev = &next->sibling, next = next->sibling) { - if (end < next->start) - break; - if (start <= next->end) - return -EBUSY; - } - - new = &res_cache[res_cache_next_free++]; - new->start = start; - new->end = end; - new->name = name; - new->sibling = next; - new->flags = IORESOURCE_MEM; - - *pprev = new; - - return 0; -} - -static unsigned long __init -find_free_region(const struct resource *mem, resource_size_t size, - resource_size_t align) -{ - struct resource *res; - unsigned long target; - - target = ALIGN(mem->start, align); - for (res = reserved; res; res = res->sibling) { - if ((target + size) <= res->start) - break; - if (target <= res->end) - target = ALIGN(res->end + 1, align); - } - - if ((target + size) > (mem->end + 1)) - return mem->end + 1; - - return target; -} - -static int __init -alloc_reserved_region(resource_size_t *start, resource_size_t size, - resource_size_t align, const char *name) -{ - struct resource *mem; - resource_size_t target; - int ret; - - for (mem = system_ram; mem; mem = mem->sibling) { - target = find_free_region(mem, size, align); - if (target <= mem->end) { - ret = add_reserved_region(target, target + size - 1, - name); - if (!ret) - *start = target; - return ret; - } - } - - return -ENOMEM; -} - -/* - * Early framebuffer allocation. Works as follows: - * - If fbmem_size is zero, nothing will be allocated or reserved. - * - If fbmem_start is zero when setup_bootmem() is called, - * a block of fbmem_size bytes will be reserved before bootmem - * initialization. It will be aligned to the largest page size - * that fbmem_size is a multiple of. - * - If fbmem_start is nonzero, an area of size fbmem_size will be - * reserved at the physical address fbmem_start if possible. If - * it collides with other reserved memory, a different block of - * same size will be allocated, just as if fbmem_start was zero. - * - * Board-specific code may use these variables to set up platform data - * for the framebuffer driver if fbmem_size is nonzero. - */ -resource_size_t __initdata fbmem_start; -resource_size_t __initdata fbmem_size; - -/* - * "fbmem=xxx[kKmM]" allocates the specified amount of boot memory for - * use as framebuffer. - * - * "fbmem=xxx[kKmM]@yyy[kKmM]" defines a memory region of size xxx and - * starting at yyy to be reserved for use as framebuffer. - * - * The kernel won't verify that the memory region starting at yyy - * actually contains usable RAM. - */ -static int __init early_parse_fbmem(char *p) -{ - int ret; - unsigned long align; - - fbmem_size = memparse(p, &p); - if (*p == '@') { - fbmem_start = memparse(p + 1, &p); - ret = add_reserved_region(fbmem_start, - fbmem_start + fbmem_size - 1, - "Framebuffer"); - if (ret) { - printk(KERN_WARNING - "Failed to reserve framebuffer memory\n"); - fbmem_start = 0; - } - } - - if (!fbmem_start) { - if ((fbmem_size & 0x000fffffUL) == 0) - align = 0x100000; /* 1 MiB */ - else if ((fbmem_size & 0x0000ffffUL) == 0) - align = 0x10000; /* 64 KiB */ - else - align = 0x1000; /* 4 KiB */ - - ret = alloc_reserved_region(&fbmem_start, fbmem_size, - align, "Framebuffer"); - if (ret) { - printk(KERN_WARNING - "Failed to allocate framebuffer memory\n"); - fbmem_size = 0; - } else { - memset(__va(fbmem_start), 0, fbmem_size); - } - } - - return 0; -} -early_param("fbmem", early_parse_fbmem); - -/* - * Pick out the memory size. We look for mem=size@start, - * where start and size are "size[KkMmGg]" - */ -static int __init early_mem(char *p) -{ - resource_size_t size, start; - - start = system_ram->start; - size = memparse(p, &p); - if (*p == '@') - start = memparse(p + 1, &p); - - system_ram->start = start; - system_ram->end = system_ram->start + size - 1; - return 0; -} -early_param("mem", early_mem); - -static int __init parse_tag_core(struct tag *tag) -{ - if (tag->hdr.size > 2) { - if ((tag->u.core.flags & 1) == 0) - root_mountflags &= ~MS_RDONLY; - ROOT_DEV = new_decode_dev(tag->u.core.rootdev); - } - return 0; -} -__tagtable(ATAG_CORE, parse_tag_core); - -static int __init parse_tag_mem(struct tag *tag) -{ - unsigned long start, end; - - /* - * Ignore zero-sized entries. If we're running standalone, the - * SDRAM code may emit such entries if something goes - * wrong... - */ - if (tag->u.mem_range.size == 0) - return 0; - - start = tag->u.mem_range.addr; - end = tag->u.mem_range.addr + tag->u.mem_range.size - 1; - - add_physical_memory(start, end); - return 0; -} -__tagtable(ATAG_MEM, parse_tag_mem); - -static int __init parse_tag_rdimg(struct tag *tag) -{ -#ifdef CONFIG_BLK_DEV_INITRD - struct tag_mem_range *mem = &tag->u.mem_range; - int ret; - - if (initrd_start) { - printk(KERN_WARNING - "Warning: Only the first initrd image will be used\n"); - return 0; - } - - ret = add_reserved_region(mem->addr, mem->addr + mem->size - 1, - "initrd"); - if (ret) { - printk(KERN_WARNING - "Warning: Failed to reserve initrd memory\n"); - return ret; - } - - initrd_start = (unsigned long)__va(mem->addr); - initrd_end = initrd_start + mem->size; -#else - printk(KERN_WARNING "RAM disk image present, but " - "no initrd support in kernel, ignoring\n"); -#endif - - return 0; -} -__tagtable(ATAG_RDIMG, parse_tag_rdimg); - -static int __init parse_tag_rsvd_mem(struct tag *tag) -{ - struct tag_mem_range *mem = &tag->u.mem_range; - - return add_reserved_region(mem->addr, mem->addr + mem->size - 1, - "Reserved"); -} -__tagtable(ATAG_RSVD_MEM, parse_tag_rsvd_mem); - -static int __init parse_tag_cmdline(struct tag *tag) -{ - strlcpy(boot_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE); - return 0; -} -__tagtable(ATAG_CMDLINE, parse_tag_cmdline); - -static int __init parse_tag_clock(struct tag *tag) -{ - /* - * We'll figure out the clocks by peeking at the system - * manager regs directly. - */ - return 0; -} -__tagtable(ATAG_CLOCK, parse_tag_clock); - -/* - * The board_number correspond to the bd->bi_board_number in U-Boot. This - * parameter is only available during initialisation and can be used in some - * kind of board identification. - */ -u32 __initdata board_number; - -static int __init parse_tag_boardinfo(struct tag *tag) -{ - board_number = tag->u.boardinfo.board_number; - - return 0; -} -__tagtable(ATAG_BOARDINFO, parse_tag_boardinfo); - -/* - * Scan the tag table for this tag, and call its parse function. The - * tag table is built by the linker from all the __tagtable - * declarations. - */ -static int __init parse_tag(struct tag *tag) -{ - extern struct tagtable __tagtable_begin, __tagtable_end; - struct tagtable *t; - - for (t = &__tagtable_begin; t < &__tagtable_end; t++) - if (tag->hdr.tag == t->tag) { - t->parse(tag); - break; - } - - return t < &__tagtable_end; -} - -/* - * Parse all tags in the list we got from the boot loader - */ -static void __init parse_tags(struct tag *t) -{ - for (; t->hdr.tag != ATAG_NONE; t = tag_next(t)) - if (!parse_tag(t)) - printk(KERN_WARNING - "Ignoring unrecognised tag 0x%08x\n", - t->hdr.tag); -} - -/* - * Find a free memory region large enough for storing the - * bootmem bitmap. - */ -static unsigned long __init -find_bootmap_pfn(const struct resource *mem) -{ - unsigned long bootmap_pages, bootmap_len; - unsigned long node_pages = PFN_UP(resource_size(mem)); - unsigned long bootmap_start; - - bootmap_pages = bootmem_bootmap_pages(node_pages); - bootmap_len = bootmap_pages << PAGE_SHIFT; - - /* - * Find a large enough region without reserved pages for - * storing the bootmem bitmap. We can take advantage of the - * fact that all lists have been sorted. - * - * We have to check that we don't collide with any reserved - * regions, which includes the kernel image and any RAMDISK - * images. - */ - bootmap_start = find_free_region(mem, bootmap_len, PAGE_SIZE); - - return bootmap_start >> PAGE_SHIFT; -} - -#define MAX_LOWMEM HIGHMEM_START -#define MAX_LOWMEM_PFN PFN_DOWN(MAX_LOWMEM) - -static void __init setup_bootmem(void) -{ - unsigned bootmap_size; - unsigned long first_pfn, bootmap_pfn, pages; - unsigned long max_pfn, max_low_pfn; - unsigned node = 0; - struct resource *res; - - printk(KERN_INFO "Physical memory:\n"); - for (res = system_ram; res; res = res->sibling) - printk(" %08x-%08x\n", res->start, res->end); - printk(KERN_INFO "Reserved memory:\n"); - for (res = reserved; res; res = res->sibling) - printk(" %08x-%08x: %s\n", - res->start, res->end, res->name); - - nodes_clear(node_online_map); - - if (system_ram->sibling) - printk(KERN_WARNING "Only using first memory bank\n"); - - for (res = system_ram; res; res = NULL) { - first_pfn = PFN_UP(res->start); - max_low_pfn = max_pfn = PFN_DOWN(res->end + 1); - bootmap_pfn = find_bootmap_pfn(res); - if (bootmap_pfn > max_pfn) - panic("No space for bootmem bitmap!\n"); - - if (max_low_pfn > MAX_LOWMEM_PFN) { - max_low_pfn = MAX_LOWMEM_PFN; -#ifndef CONFIG_HIGHMEM - /* - * Lowmem is memory that can be addressed - * directly through P1/P2 - */ - printk(KERN_WARNING - "Node %u: Only %ld MiB of memory will be used.\n", - node, MAX_LOWMEM >> 20); - printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n"); -#else -#error HIGHMEM is not supported by AVR32 yet -#endif - } - - /* Initialize the boot-time allocator with low memory only. */ - bootmap_size = init_bootmem_node(NODE_DATA(node), bootmap_pfn, - first_pfn, max_low_pfn); - - /* - * Register fully available RAM pages with the bootmem - * allocator. - */ - pages = max_low_pfn - first_pfn; - free_bootmem_node (NODE_DATA(node), PFN_PHYS(first_pfn), - PFN_PHYS(pages)); - - /* Reserve space for the bootmem bitmap... */ - reserve_bootmem_node(NODE_DATA(node), - PFN_PHYS(bootmap_pfn), - bootmap_size, - BOOTMEM_DEFAULT); - - /* ...and any other reserved regions. */ - for (res = reserved; res; res = res->sibling) { - if (res->start > PFN_PHYS(max_pfn)) - break; - - /* - * resource_init will complain about partial - * overlaps, so we'll just ignore such - * resources for now. - */ - if (res->start >= PFN_PHYS(first_pfn) - && res->end < PFN_PHYS(max_pfn)) - reserve_bootmem_node(NODE_DATA(node), - res->start, - resource_size(res), - BOOTMEM_DEFAULT); - } - - node_set_online(node); - } -} - -void __init setup_arch (char **cmdline_p) -{ - struct clk *cpu_clk; - - init_mm.start_code = (unsigned long)_stext; - init_mm.end_code = (unsigned long)_etext; - init_mm.end_data = (unsigned long)_edata; - init_mm.brk = (unsigned long)_end; - - /* - * Include .init section to make allocations easier. It will - * be removed before the resource is actually requested. - */ - kernel_code.start = __pa(__init_begin); - kernel_code.end = __pa(init_mm.end_code - 1); - kernel_data.start = __pa(init_mm.end_code); - kernel_data.end = __pa(init_mm.brk - 1); - - parse_tags(bootloader_tags); - - setup_processor(); - setup_platform(); |