From 57f0f512b273f60d52568b8c6b77e17f5636edc0 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 5 Aug 2015 17:04:01 -0300 Subject: Initial import --- arch/avr32/Kconfig | 286 +++ arch/avr32/Kconfig.debug | 9 + arch/avr32/Makefile | 84 + arch/avr32/boards/atngw100/Kconfig | 65 + arch/avr32/boards/atngw100/Kconfig_mrmt | 80 + arch/avr32/boards/atngw100/Makefile | 3 + arch/avr32/boards/atngw100/evklcd10x.c | 178 ++ arch/avr32/boards/atngw100/flash.c | 98 + arch/avr32/boards/atngw100/mrmt.c | 383 ++++ arch/avr32/boards/atngw100/setup.c | 324 +++ arch/avr32/boards/atstk1000/Kconfig | 109 + arch/avr32/boards/atstk1000/Makefile | 5 + arch/avr32/boards/atstk1000/atstk1000.h | 17 + arch/avr32/boards/atstk1000/atstk1002.c | 330 +++ arch/avr32/boards/atstk1000/atstk1003.c | 162 ++ arch/avr32/boards/atstk1000/atstk1004.c | 164 ++ arch/avr32/boards/atstk1000/flash.c | 98 + arch/avr32/boards/atstk1000/setup.c | 127 ++ arch/avr32/boards/favr-32/Kconfig | 22 + arch/avr32/boards/favr-32/Makefile | 1 + arch/avr32/boards/favr-32/flash.c | 98 + arch/avr32/boards/favr-32/setup.c | 366 +++ arch/avr32/boards/hammerhead/Kconfig | 43 + arch/avr32/boards/hammerhead/Makefile | 1 + arch/avr32/boards/hammerhead/flash.c | 381 ++++ arch/avr32/boards/hammerhead/flash.h | 6 + arch/avr32/boards/hammerhead/setup.c | 247 ++ arch/avr32/boards/merisc/Kconfig | 5 + arch/avr32/boards/merisc/Makefile | 1 + arch/avr32/boards/merisc/display.c | 65 + arch/avr32/boards/merisc/flash.c | 139 ++ arch/avr32/boards/merisc/merisc.h | 18 + arch/avr32/boards/merisc/merisc_sysfs.c | 64 + arch/avr32/boards/merisc/setup.c | 306 +++ arch/avr32/boards/mimc200/Makefile | 1 + arch/avr32/boards/mimc200/flash.c | 143 ++ arch/avr32/boards/mimc200/setup.c | 236 ++ arch/avr32/boot/images/.gitignore | 4 + arch/avr32/boot/images/Makefile | 57 + arch/avr32/boot/u-boot/Makefile | 3 + arch/avr32/boot/u-boot/empty.S | 1 + arch/avr32/boot/u-boot/head.S | 83 + arch/avr32/configs/atngw100_defconfig | 142 ++ arch/avr32/configs/atngw100_evklcd100_defconfig | 158 ++ arch/avr32/configs/atngw100_evklcd101_defconfig | 157 ++ arch/avr32/configs/atngw100_mrmt_defconfig | 136 ++ arch/avr32/configs/atngw100mkii_defconfig | 144 ++ .../avr32/configs/atngw100mkii_evklcd100_defconfig | 161 ++ .../avr32/configs/atngw100mkii_evklcd101_defconfig | 160 ++ arch/avr32/configs/atstk1002_defconfig | 157 ++ arch/avr32/configs/atstk1003_defconfig | 137 ++ arch/avr32/configs/atstk1004_defconfig | 135 ++ arch/avr32/configs/atstk1006_defconfig | 160 ++ arch/avr32/configs/favr-32_defconfig | 143 ++ arch/avr32/configs/hammerhead_defconfig | 145 ++ arch/avr32/configs/merisc_defconfig | 115 + arch/avr32/configs/mimc200_defconfig | 114 + arch/avr32/include/asm/Kbuild | 23 + arch/avr32/include/asm/addrspace.h | 43 + arch/avr32/include/asm/asm-offsets.h | 1 + arch/avr32/include/asm/asm.h | 102 + arch/avr32/include/asm/atomic.h | 187 ++ arch/avr32/include/asm/barrier.h | 22 + arch/avr32/include/asm/bitops.h | 314 +++ arch/avr32/include/asm/bug.h | 78 + arch/avr32/include/asm/bugs.h | 15 + arch/avr32/include/asm/cache.h | 38 + arch/avr32/include/asm/cacheflush.h | 132 ++ arch/avr32/include/asm/checksum.h | 152 ++ arch/avr32/include/asm/cmpxchg.h | 117 + arch/avr32/include/asm/current.h | 15 + arch/avr32/include/asm/dma-mapping.h | 349 +++ arch/avr32/include/asm/dma.h | 8 + arch/avr32/include/asm/elf.h | 105 + arch/avr32/include/asm/fb.h | 21 + arch/avr32/include/asm/ftrace.h | 1 + arch/avr32/include/asm/gpio.h | 6 + arch/avr32/include/asm/hardirq.h | 6 + arch/avr32/include/asm/hw_irq.h | 9 + arch/avr32/include/asm/io.h | 327 +++ arch/avr32/include/asm/irq.h | 24 + arch/avr32/include/asm/irqflags.h | 61 + arch/avr32/include/asm/kdebug.h | 12 + arch/avr32/include/asm/kmap_types.h | 10 + arch/avr32/include/asm/kprobes.h | 49 + arch/avr32/include/asm/linkage.h | 7 + arch/avr32/include/asm/mmu.h | 10 + arch/avr32/include/asm/mmu_context.h | 148 ++ arch/avr32/include/asm/module.h | 26 + arch/avr32/include/asm/mutex.h | 9 + arch/avr32/include/asm/ocd.h | 543 +++++ arch/avr32/include/asm/page.h | 104 + arch/avr32/include/asm/pci.h | 10 + arch/avr32/include/asm/pgalloc.h | 102 + arch/avr32/include/asm/pgtable-2level.h | 47 + arch/avr32/include/asm/pgtable.h | 347 +++ arch/avr32/include/asm/processor.h | 167 ++ arch/avr32/include/asm/ptrace.h | 45 + arch/avr32/include/asm/serial.h | 13 + arch/avr32/include/asm/setup.h | 144 ++ arch/avr32/include/asm/shmparam.h | 6 + arch/avr32/include/asm/signal.h | 31 + arch/avr32/include/asm/string.h | 17 + arch/avr32/include/asm/switch_to.h | 46 + arch/avr32/include/asm/syscalls.h | 21 + arch/avr32/include/asm/sysreg.h | 291 +++ arch/avr32/include/asm/termios.h | 23 + arch/avr32/include/asm/thread_info.h | 103 + arch/avr32/include/asm/timex.h | 39 + arch/avr32/include/asm/tlb.h | 32 + arch/avr32/include/asm/tlbflush.h | 32 + arch/avr32/include/asm/traps.h | 23 + arch/avr32/include/asm/types.h | 19 + arch/avr32/include/asm/uaccess.h | 324 +++ arch/avr32/include/asm/ucontext.h | 12 + arch/avr32/include/asm/unaligned.h | 21 + arch/avr32/include/asm/unistd.h | 44 + arch/avr32/include/asm/user.h | 65 + arch/avr32/include/uapi/asm/Kbuild | 36 + arch/avr32/include/uapi/asm/auxvec.h | 4 + arch/avr32/include/uapi/asm/byteorder.h | 9 + arch/avr32/include/uapi/asm/cachectl.h | 11 + arch/avr32/include/uapi/asm/msgbuf.h | 31 + arch/avr32/include/uapi/asm/posix_types.h | 37 + arch/avr32/include/uapi/asm/ptrace.h | 126 ++ arch/avr32/include/uapi/asm/sembuf.h | 25 + arch/avr32/include/uapi/asm/setup.h | 16 + arch/avr32/include/uapi/asm/shmbuf.h | 42 + arch/avr32/include/uapi/asm/sigcontext.h | 34 + arch/avr32/include/uapi/asm/signal.h | 121 + arch/avr32/include/uapi/asm/socket.h | 88 + arch/avr32/include/uapi/asm/sockios.h | 13 + arch/avr32/include/uapi/asm/stat.h | 79 + arch/avr32/include/uapi/asm/swab.h | 35 + arch/avr32/include/uapi/asm/termbits.h | 196 ++ arch/avr32/include/uapi/asm/termios.h | 49 + arch/avr32/include/uapi/asm/types.h | 13 + arch/avr32/include/uapi/asm/unistd.h | 337 +++ arch/avr32/kernel/.gitignore | 1 + arch/avr32/kernel/Makefile | 15 + arch/avr32/kernel/asm-offsets.c | 24 + arch/avr32/kernel/avr32_ksyms.c | 70 + arch/avr32/kernel/cpu.c | 410 ++++ arch/avr32/kernel/entry-avr32b.S | 877 ++++++++ arch/avr32/kernel/head.S | 22 + arch/avr32/kernel/irq.c | 28 + arch/avr32/kernel/kprobes.c | 267 +++ arch/avr32/kernel/module.c | 291 +++ arch/avr32/kernel/nmi_debug.c | 82 + arch/avr32/kernel/ocd.c | 167 ++ arch/avr32/kernel/process.c | 355 +++ arch/avr32/kernel/ptrace.c | 356 +++ arch/avr32/kernel/setup.c | 609 +++++ arch/avr32/kernel/signal.c | 288 +++ arch/avr32/kernel/stacktrace.c | 55 + arch/avr32/kernel/switch_to.S | 35 + arch/avr32/kernel/syscall-stubs.S | 126 ++ arch/avr32/kernel/syscall_table.S | 337 +++ arch/avr32/kernel/time.c | 160 ++ arch/avr32/kernel/traps.c | 261 +++ arch/avr32/kernel/vmlinux.lds.S | 88 + arch/avr32/lib/Makefile | 11 + arch/avr32/lib/__avr32_asr64.S | 31 + arch/avr32/lib/__avr32_lsl64.S | 31 + arch/avr32/lib/__avr32_lsr64.S | 31 + arch/avr32/lib/clear_user.S | 76 + arch/avr32/lib/copy_user.S | 119 + arch/avr32/lib/csum_partial.S | 47 + arch/avr32/lib/csum_partial_copy_generic.S | 99 + arch/avr32/lib/delay.c | 57 + arch/avr32/lib/findbit.S | 185 ++ arch/avr32/lib/io-readsb.S | 49 + arch/avr32/lib/io-readsl.S | 24 + arch/avr32/lib/io-readsw.S | 43 + arch/avr32/lib/io-writesb.S | 52 + arch/avr32/lib/io-writesl.S | 20 + arch/avr32/lib/io-writesw.S | 38 + arch/avr32/lib/memcpy.S | 72 + arch/avr32/lib/memset.S | 72 + arch/avr32/lib/strncpy_from_user.S | 60 + arch/avr32/lib/strnlen_user.S | 67 + arch/avr32/mach-at32ap/Kconfig | 31 + arch/avr32/mach-at32ap/Makefile | 8 + arch/avr32/mach-at32ap/at32ap700x.c | 2360 ++++++++++++++++++++ arch/avr32/mach-at32ap/clock.c | 307 +++ arch/avr32/mach-at32ap/clock.h | 35 + arch/avr32/mach-at32ap/extint.c | 272 +++ arch/avr32/mach-at32ap/hmatrix.c | 88 + arch/avr32/mach-at32ap/hsmc.c | 282 +++ arch/avr32/mach-at32ap/hsmc.h | 127 ++ arch/avr32/mach-at32ap/include/mach/at32ap700x.h | 245 ++ arch/avr32/mach-at32ap/include/mach/board.h | 115 + arch/avr32/mach-at32ap/include/mach/chip.h | 19 + arch/avr32/mach-at32ap/include/mach/cpu.h | 23 + arch/avr32/mach-at32ap/include/mach/gpio.h | 45 + arch/avr32/mach-at32ap/include/mach/hmatrix.h | 55 + arch/avr32/mach-at32ap/include/mach/init.h | 18 + arch/avr32/mach-at32ap/include/mach/io.h | 38 + arch/avr32/mach-at32ap/include/mach/irq.h | 14 + arch/avr32/mach-at32ap/include/mach/pm.h | 27 + arch/avr32/mach-at32ap/include/mach/portmux.h | 30 + arch/avr32/mach-at32ap/include/mach/smc.h | 113 + arch/avr32/mach-at32ap/include/mach/sram.h | 30 + arch/avr32/mach-at32ap/intc.c | 200 ++ arch/avr32/mach-at32ap/intc.h | 329 +++ arch/avr32/mach-at32ap/pdc.c | 47 + arch/avr32/mach-at32ap/pio.c | 470 ++++ arch/avr32/mach-at32ap/pio.h | 180 ++ arch/avr32/mach-at32ap/pm-at32ap700x.S | 167 ++ arch/avr32/mach-at32ap/pm.c | 243 ++ arch/avr32/mach-at32ap/pm.h | 112 + arch/avr32/mach-at32ap/sdramc.h | 76 + arch/avr32/mm/Makefile | 6 + arch/avr32/mm/cache.c | 163 ++ arch/avr32/mm/clear_page.S | 25 + arch/avr32/mm/copy_page.S | 28 + arch/avr32/mm/dma-coherent.c | 152 ++ arch/avr32/mm/fault.c | 268 +++ arch/avr32/mm/init.c | 125 ++ arch/avr32/mm/ioremap.c | 93 + arch/avr32/mm/tlb.c | 375 ++++ arch/avr32/oprofile/Makefile | 8 + arch/avr32/oprofile/backtrace.c | 81 + arch/avr32/oprofile/op_model_avr32.c | 236 ++ 224 files changed, 27151 insertions(+) create mode 100644 arch/avr32/Kconfig create mode 100644 arch/avr32/Kconfig.debug create mode 100644 arch/avr32/Makefile create mode 100644 arch/avr32/boards/atngw100/Kconfig create mode 100644 arch/avr32/boards/atngw100/Kconfig_mrmt create mode 100644 arch/avr32/boards/atngw100/Makefile create mode 100644 arch/avr32/boards/atngw100/evklcd10x.c create mode 100644 arch/avr32/boards/atngw100/flash.c create mode 100644 arch/avr32/boards/atngw100/mrmt.c create mode 100644 arch/avr32/boards/atngw100/setup.c create mode 100644 arch/avr32/boards/atstk1000/Kconfig create mode 100644 arch/avr32/boards/atstk1000/Makefile create mode 100644 arch/avr32/boards/atstk1000/atstk1000.h create mode 100644 arch/avr32/boards/atstk1000/atstk1002.c create mode 100644 arch/avr32/boards/atstk1000/atstk1003.c create mode 100644 arch/avr32/boards/atstk1000/atstk1004.c create mode 100644 arch/avr32/boards/atstk1000/flash.c create mode 100644 arch/avr32/boards/atstk1000/setup.c create mode 100644 arch/avr32/boards/favr-32/Kconfig create mode 100644 arch/avr32/boards/favr-32/Makefile create mode 100644 arch/avr32/boards/favr-32/flash.c create mode 100644 arch/avr32/boards/favr-32/setup.c create mode 100644 arch/avr32/boards/hammerhead/Kconfig create mode 100644 arch/avr32/boards/hammerhead/Makefile create mode 100644 arch/avr32/boards/hammerhead/flash.c create mode 100644 arch/avr32/boards/hammerhead/flash.h create mode 100644 arch/avr32/boards/hammerhead/setup.c create mode 100644 arch/avr32/boards/merisc/Kconfig create mode 100644 arch/avr32/boards/merisc/Makefile create mode 100644 arch/avr32/boards/merisc/display.c create mode 100644 arch/avr32/boards/merisc/flash.c create mode 100644 arch/avr32/boards/merisc/merisc.h create mode 100644 arch/avr32/boards/merisc/merisc_sysfs.c create mode 100644 arch/avr32/boards/merisc/setup.c create mode 100644 arch/avr32/boards/mimc200/Makefile create mode 100644 arch/avr32/boards/mimc200/flash.c create mode 100644 arch/avr32/boards/mimc200/setup.c create mode 100644 arch/avr32/boot/images/.gitignore create mode 100644 arch/avr32/boot/images/Makefile create mode 100644 arch/avr32/boot/u-boot/Makefile create mode 100644 arch/avr32/boot/u-boot/empty.S create mode 100644 arch/avr32/boot/u-boot/head.S create mode 100644 arch/avr32/configs/atngw100_defconfig create mode 100644 arch/avr32/configs/atngw100_evklcd100_defconfig create mode 100644 arch/avr32/configs/atngw100_evklcd101_defconfig create mode 100644 arch/avr32/configs/atngw100_mrmt_defconfig create mode 100644 arch/avr32/configs/atngw100mkii_defconfig create mode 100644 arch/avr32/configs/atngw100mkii_evklcd100_defconfig create mode 100644 arch/avr32/configs/atngw100mkii_evklcd101_defconfig create mode 100644 arch/avr32/configs/atstk1002_defconfig create mode 100644 arch/avr32/configs/atstk1003_defconfig create mode 100644 arch/avr32/configs/atstk1004_defconfig create mode 100644 arch/avr32/configs/atstk1006_defconfig create mode 100644 arch/avr32/configs/favr-32_defconfig create mode 100644 arch/avr32/configs/hammerhead_defconfig create mode 100644 arch/avr32/configs/merisc_defconfig create mode 100644 arch/avr32/configs/mimc200_defconfig create mode 100644 arch/avr32/include/asm/Kbuild create mode 100644 arch/avr32/include/asm/addrspace.h create mode 100644 arch/avr32/include/asm/asm-offsets.h create mode 100644 arch/avr32/include/asm/asm.h create mode 100644 arch/avr32/include/asm/atomic.h create mode 100644 arch/avr32/include/asm/barrier.h create mode 100644 arch/avr32/include/asm/bitops.h create mode 100644 arch/avr32/include/asm/bug.h create mode 100644 arch/avr32/include/asm/bugs.h create mode 100644 arch/avr32/include/asm/cache.h create mode 100644 arch/avr32/include/asm/cacheflush.h create mode 100644 arch/avr32/include/asm/checksum.h create mode 100644 arch/avr32/include/asm/cmpxchg.h create mode 100644 arch/avr32/include/asm/current.h create mode 100644 arch/avr32/include/asm/dma-mapping.h create mode 100644 arch/avr32/include/asm/dma.h create mode 100644 arch/avr32/include/asm/elf.h create mode 100644 arch/avr32/include/asm/fb.h create mode 100644 arch/avr32/include/asm/ftrace.h create mode 100644 arch/avr32/include/asm/gpio.h create mode 100644 arch/avr32/include/asm/hardirq.h create mode 100644 arch/avr32/include/asm/hw_irq.h create mode 100644 arch/avr32/include/asm/io.h create mode 100644 arch/avr32/include/asm/irq.h create mode 100644 arch/avr32/include/asm/irqflags.h create mode 100644 arch/avr32/include/asm/kdebug.h create mode 100644 arch/avr32/include/asm/kmap_types.h create mode 100644 arch/avr32/include/asm/kprobes.h create mode 100644 arch/avr32/include/asm/linkage.h create mode 100644 arch/avr32/include/asm/mmu.h create mode 100644 arch/avr32/include/asm/mmu_context.h create mode 100644 arch/avr32/include/asm/module.h create mode 100644 arch/avr32/include/asm/mutex.h create mode 100644 arch/avr32/include/asm/ocd.h create mode 100644 arch/avr32/include/asm/page.h create mode 100644 arch/avr32/include/asm/pci.h create mode 100644 arch/avr32/include/asm/pgalloc.h create mode 100644 arch/avr32/include/asm/pgtable-2level.h create mode 100644 arch/avr32/include/asm/pgtable.h create mode 100644 arch/avr32/include/asm/processor.h create mode 100644 arch/avr32/include/asm/ptrace.h create mode 100644 arch/avr32/include/asm/serial.h create mode 100644 arch/avr32/include/asm/setup.h create mode 100644 arch/avr32/include/asm/shmparam.h create mode 100644 arch/avr32/include/asm/signal.h create mode 100644 arch/avr32/include/asm/string.h create mode 100644 arch/avr32/include/asm/switch_to.h create mode 100644 arch/avr32/include/asm/syscalls.h create mode 100644 arch/avr32/include/asm/sysreg.h create mode 100644 arch/avr32/include/asm/termios.h create mode 100644 arch/avr32/include/asm/thread_info.h create mode 100644 arch/avr32/include/asm/timex.h create mode 100644 arch/avr32/include/asm/tlb.h create mode 100644 arch/avr32/include/asm/tlbflush.h create mode 100644 arch/avr32/include/asm/traps.h create mode 100644 arch/avr32/include/asm/types.h create mode 100644 arch/avr32/include/asm/uaccess.h create mode 100644 arch/avr32/include/asm/ucontext.h create mode 100644 arch/avr32/include/asm/unaligned.h create mode 100644 arch/avr32/include/asm/unistd.h create mode 100644 arch/avr32/include/asm/user.h create mode 100644 arch/avr32/include/uapi/asm/Kbuild create mode 100644 arch/avr32/include/uapi/asm/auxvec.h create mode 100644 arch/avr32/include/uapi/asm/byteorder.h create mode 100644 arch/avr32/include/uapi/asm/cachectl.h create mode 100644 arch/avr32/include/uapi/asm/msgbuf.h create mode 100644 arch/avr32/include/uapi/asm/posix_types.h create mode 100644 arch/avr32/include/uapi/asm/ptrace.h create mode 100644 arch/avr32/include/uapi/asm/sembuf.h create mode 100644 arch/avr32/include/uapi/asm/setup.h create mode 100644 arch/avr32/include/uapi/asm/shmbuf.h create mode 100644 arch/avr32/include/uapi/asm/sigcontext.h create mode 100644 arch/avr32/include/uapi/asm/signal.h create mode 100644 arch/avr32/include/uapi/asm/socket.h create mode 100644 arch/avr32/include/uapi/asm/sockios.h create mode 100644 arch/avr32/include/uapi/asm/stat.h create mode 100644 arch/avr32/include/uapi/asm/swab.h create mode 100644 arch/avr32/include/uapi/asm/termbits.h create mode 100644 arch/avr32/include/uapi/asm/termios.h create mode 100644 arch/avr32/include/uapi/asm/types.h create mode 100644 arch/avr32/include/uapi/asm/unistd.h create mode 100644 arch/avr32/kernel/.gitignore create mode 100644 arch/avr32/kernel/Makefile create mode 100644 arch/avr32/kernel/asm-offsets.c create mode 100644 arch/avr32/kernel/avr32_ksyms.c create mode 100644 arch/avr32/kernel/cpu.c create mode 100644 arch/avr32/kernel/entry-avr32b.S create mode 100644 arch/avr32/kernel/head.S create mode 100644 arch/avr32/kernel/irq.c create mode 100644 arch/avr32/kernel/kprobes.c create mode 100644 arch/avr32/kernel/module.c create mode 100644 arch/avr32/kernel/nmi_debug.c create mode 100644 arch/avr32/kernel/ocd.c create mode 100644 arch/avr32/kernel/process.c create mode 100644 arch/avr32/kernel/ptrace.c create mode 100644 arch/avr32/kernel/setup.c create mode 100644 arch/avr32/kernel/signal.c create mode 100644 arch/avr32/kernel/stacktrace.c create mode 100644 arch/avr32/kernel/switch_to.S create mode 100644 arch/avr32/kernel/syscall-stubs.S create mode 100644 arch/avr32/kernel/syscall_table.S create mode 100644 arch/avr32/kernel/time.c create mode 100644 arch/avr32/kernel/traps.c create mode 100644 arch/avr32/kernel/vmlinux.lds.S create mode 100644 arch/avr32/lib/Makefile create mode 100644 arch/avr32/lib/__avr32_asr64.S create mode 100644 arch/avr32/lib/__avr32_lsl64.S create mode 100644 arch/avr32/lib/__avr32_lsr64.S create mode 100644 arch/avr32/lib/clear_user.S create mode 100644 arch/avr32/lib/copy_user.S create mode 100644 arch/avr32/lib/csum_partial.S create mode 100644 arch/avr32/lib/csum_partial_copy_generic.S create mode 100644 arch/avr32/lib/delay.c create mode 100644 arch/avr32/lib/findbit.S create mode 100644 arch/avr32/lib/io-readsb.S create mode 100644 arch/avr32/lib/io-readsl.S create mode 100644 arch/avr32/lib/io-readsw.S create mode 100644 arch/avr32/lib/io-writesb.S create mode 100644 arch/avr32/lib/io-writesl.S create mode 100644 arch/avr32/lib/io-writesw.S create mode 100644 arch/avr32/lib/memcpy.S create mode 100644 arch/avr32/lib/memset.S create mode 100644 arch/avr32/lib/strncpy_from_user.S create mode 100644 arch/avr32/lib/strnlen_user.S create mode 100644 arch/avr32/mach-at32ap/Kconfig create mode 100644 arch/avr32/mach-at32ap/Makefile create mode 100644 arch/avr32/mach-at32ap/at32ap700x.c create mode 100644 arch/avr32/mach-at32ap/clock.c create mode 100644 arch/avr32/mach-at32ap/clock.h create mode 100644 arch/avr32/mach-at32ap/extint.c create mode 100644 arch/avr32/mach-at32ap/hmatrix.c create mode 100644 arch/avr32/mach-at32ap/hsmc.c create mode 100644 arch/avr32/mach-at32ap/hsmc.h create mode 100644 arch/avr32/mach-at32ap/include/mach/at32ap700x.h create mode 100644 arch/avr32/mach-at32ap/include/mach/board.h create mode 100644 arch/avr32/mach-at32ap/include/mach/chip.h create mode 100644 arch/avr32/mach-at32ap/include/mach/cpu.h create mode 100644 arch/avr32/mach-at32ap/include/mach/gpio.h create mode 100644 arch/avr32/mach-at32ap/include/mach/hmatrix.h create mode 100644 arch/avr32/mach-at32ap/include/mach/init.h create mode 100644 arch/avr32/mach-at32ap/include/mach/io.h create mode 100644 arch/avr32/mach-at32ap/include/mach/irq.h create mode 100644 arch/avr32/mach-at32ap/include/mach/pm.h create mode 100644 arch/avr32/mach-at32ap/include/mach/portmux.h create mode 100644 arch/avr32/mach-at32ap/include/mach/smc.h create mode 100644 arch/avr32/mach-at32ap/include/mach/sram.h create mode 100644 arch/avr32/mach-at32ap/intc.c create mode 100644 arch/avr32/mach-at32ap/intc.h create mode 100644 arch/avr32/mach-at32ap/pdc.c create mode 100644 arch/avr32/mach-at32ap/pio.c create mode 100644 arch/avr32/mach-at32ap/pio.h create mode 100644 arch/avr32/mach-at32ap/pm-at32ap700x.S create mode 100644 arch/avr32/mach-at32ap/pm.c create mode 100644 arch/avr32/mach-at32ap/pm.h create mode 100644 arch/avr32/mach-at32ap/sdramc.h create mode 100644 arch/avr32/mm/Makefile create mode 100644 arch/avr32/mm/cache.c create mode 100644 arch/avr32/mm/clear_page.S create mode 100644 arch/avr32/mm/copy_page.S create mode 100644 arch/avr32/mm/dma-coherent.c create mode 100644 arch/avr32/mm/fault.c create mode 100644 arch/avr32/mm/init.c create mode 100644 arch/avr32/mm/ioremap.c create mode 100644 arch/avr32/mm/tlb.c create mode 100644 arch/avr32/oprofile/Makefile create mode 100644 arch/avr32/oprofile/backtrace.c create mode 100644 arch/avr32/oprofile/op_model_avr32.c (limited to 'arch/avr32') diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig new file mode 100644 index 000000000..b6878eb64 --- /dev/null +++ b/arch/avr32/Kconfig @@ -0,0 +1,286 @@ +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_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 + 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 ARCH_REQUIRE_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 new file mode 100644 index 000000000..2283933a9 --- /dev/null +++ b/arch/avr32/Kconfig.debug @@ -0,0 +1,9 @@ +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 new file mode 100644 index 000000000..dba48a5d5 --- /dev/null +++ b/arch/avr32/Makefile @@ -0,0 +1,84 @@ +# +# 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 new file mode 100644 index 000000000..4e55617ad --- /dev/null +++ b/arch/avr32/boards/atngw100/Kconfig @@ -0,0 +1,65 @@ +# 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 new file mode 100644 index 000000000..9a199a207 --- /dev/null +++ b/arch/avr32/boards/atngw100/Kconfig_mrmt @@ -0,0 +1,80 @@ +# 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 new file mode 100644 index 000000000..f4ebe42a8 --- /dev/null +++ b/arch/avr32/boards/atngw100/Makefile @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..64919b0da --- /dev/null +++ b/arch/avr32/boards/atngw100/evklcd10x.c @@ -0,0 +1,178 @@ +/* + * 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 +#include +#include +#include +#include + +#include