[PATCH v3 00/24] C6X: New architecture

From: Mark Salter
Date: Tue Sep 27 2011 - 16:36:35 EST


Here is v3 of the C6X architecture patch series. Patches are
available in 'upstream-v3' branch at:

git@xxxxxxxxxxxxx:/git/projects/linux-c6x-upstreaming

A prebuilt GNU toolchain can be found at:

http://www.codesourcery.com/sgpp/lite/c6000/portal/release1882

The toolchain bits have also been contributed upstream.

This architecture supports members of the Texas Instruments family
of C6x single and multicore DSPs. The multicore DSPs do not support
cache coherancy, so are not suitable for SMP. Also, these are no-mmu
processors. This core architecture is VLIW with an instruction set
optimized for DSP applications (lots of registers, bit manipulation
instructions, fast multiply, no divide). For details see:

http://processors.wiki.ti.com/index.php/Main_Page


Changes from the previous patchset are:

* Added a patch for asm-generic/io.h to fix iounmap decl.

* Removed the soc-64xx.c files and soc probe code. The only
remaining code that makes decisions based on SoC-model is
the clkdev code. That should go away once generic clock
binding is available and clock code makes better use of
devicetree.

* Split out SoC-specific DTSI files from the platform DTS files

* Added device tree binding documentation

* Other device tree cleanups per feedback from Grant

* Cleaned up timer and interrupt code per feedback from tglx

* Created a generalized Device State Config (DSCR) driver with
SoC-specific details moved into the device tree

* Removed obsolete IRQF_DISABLED

* Removed Power State Controller (PSC) code for now. Will
reintroduce it when needed by drivers.

* Add missing iounmap to EMIF driver

* Removed unneeded (by GCC) apply_relocate() from module support

* Removed deprecated sys_mmap

* Fixed race to idle in cpu_idle loop

* Removed superfluous c6x_power_off

* Cleaned up Kconfig/Makefile issues pointed out by Sam

* Use force_sigsegv to avoid SIGSEGV loops

* Added additional comment to generic strnlen_user patch

Mark Salter (24):
fix default __strnlen_user macro
fixed generic page.h for non-zero PAGE_OFFSET
add ELF machine define for TI C6X DSPs
add missing __iomem to generic iounmap declaration
C6X: build infrastructure
C6X: early boot code
C6X: devicetree support
C6X: memory management and DMA support
C6X: process management
C6X: signal management
C6X: time management
C6X: interrupt handling
C6X: syscalls
C6X: traps
C6X: clocks
C6X: cache control
C6X: loadable module support
C6X: ptrace support
C6X: headers
C6X: library code
C6X: general SoC support
C6X: EMIF - External Memory Interface
C6X: DSCR - Device State Configuration Registers
C6X: MAINTAINERS

Documentation/devicetree/bindings/c6x/clocks.txt | 40 +
Documentation/devicetree/bindings/c6x/dscr.txt | 127 +++
Documentation/devicetree/bindings/c6x/emifa.txt | 62 ++
.../devicetree/bindings/c6x/interrupt.txt | 104 +++
Documentation/devicetree/bindings/c6x/soc.txt | 28 +
Documentation/devicetree/bindings/c6x/timer64.txt | 26 +
MAINTAINERS | 8 +
arch/c6x/Kconfig | 173 +++++
arch/c6x/Makefile | 52 ++
arch/c6x/boot/Makefile | 22 +
arch/c6x/boot/dts/dsk6455.dts | 62 ++
arch/c6x/boot/dts/evmc6457.dts | 48 ++
arch/c6x/boot/dts/evmc6472.dts | 73 ++
arch/c6x/boot/dts/evmc6474.dts | 58 ++
arch/c6x/boot/dts/tms320c6455.dtsi | 96 +++
arch/c6x/boot/dts/tms320c6457.dtsi | 68 ++
arch/c6x/boot/dts/tms320c6472.dtsi | 134 ++++
arch/c6x/boot/dts/tms320c6474.dtsi | 89 +++
arch/c6x/boot/install-dtb.c | 333 ++++++++
arch/c6x/configs/dsk6455_defconfig | 43 +
arch/c6x/configs/evmc6457_defconfig | 40 +
arch/c6x/configs/evmc6472_defconfig | 41 +
arch/c6x/configs/evmc6474_defconfig | 41 +
arch/c6x/include/asm/Kbuild | 55 ++
arch/c6x/include/asm/asm-offsets.h | 1 +
arch/c6x/include/asm/bitops.h | 105 +++
arch/c6x/include/asm/byteorder.h | 12 +
arch/c6x/include/asm/cache.h | 90 +++
arch/c6x/include/asm/cacheflush.h | 65 ++
arch/c6x/include/asm/checksum.h | 115 +++
arch/c6x/include/asm/clkdev.h | 22 +
arch/c6x/include/asm/clock.h | 148 ++++
arch/c6x/include/asm/delay.h | 67 ++
arch/c6x/include/asm/dma-mapping.h | 91 +++
arch/c6x/include/asm/dscr.h | 34 +
arch/c6x/include/asm/elf.h | 113 +++
arch/c6x/include/asm/ftrace.h | 6 +
arch/c6x/include/asm/hardirq.h | 20 +
arch/c6x/include/asm/irq.h | 302 ++++++++
arch/c6x/include/asm/irqflags.h | 72 ++
arch/c6x/include/asm/linkage.h | 30 +
arch/c6x/include/asm/megamod-pic.h | 9 +
arch/c6x/include/asm/memblock.h | 4 +
arch/c6x/include/asm/mmu.h | 18 +
arch/c6x/include/asm/module.h | 33 +
arch/c6x/include/asm/mutex.h | 6 +
arch/c6x/include/asm/page.h | 11 +
arch/c6x/include/asm/pgtable.h | 81 ++
arch/c6x/include/asm/processor.h | 132 ++++
arch/c6x/include/asm/procinfo.h | 28 +
arch/c6x/include/asm/prom.h | 1 +
arch/c6x/include/asm/ptrace.h | 177 +++++
arch/c6x/include/asm/sections.h | 12 +
arch/c6x/include/asm/setup.h | 32 +
arch/c6x/include/asm/sigcontext.h | 80 ++
arch/c6x/include/asm/signal.h | 17 +
arch/c6x/include/asm/soc.h | 35 +
arch/c6x/include/asm/string.h | 21 +
arch/c6x/include/asm/syscalls.h | 55 ++
arch/c6x/include/asm/system.h | 168 ++++
arch/c6x/include/asm/thread_info.h | 121 +++
arch/c6x/include/asm/timer64.h | 6 +
arch/c6x/include/asm/timex.h | 38 +
arch/c6x/include/asm/tlb.h | 8 +
arch/c6x/include/asm/traps.h | 36 +
arch/c6x/include/asm/uaccess.h | 107 +++
arch/c6x/include/asm/unaligned.h | 288 +++++++
arch/c6x/include/asm/unistd.h | 26 +
arch/c6x/kernel/Makefile | 12 +
arch/c6x/kernel/asm-offsets.c | 123 +++
arch/c6x/kernel/c6x_ksyms.c | 68 ++
arch/c6x/kernel/devicetree.c | 53 ++
arch/c6x/kernel/dma.c | 168 ++++
arch/c6x/kernel/entry.S | 803 ++++++++++++++++++++
arch/c6x/kernel/head.S | 84 ++
arch/c6x/kernel/irq.c | 730 ++++++++++++++++++
arch/c6x/kernel/module.c | 129 ++++
arch/c6x/kernel/process.c | 263 +++++++
arch/c6x/kernel/ptrace.c | 207 +++++
arch/c6x/kernel/setup.c | 499 ++++++++++++
arch/c6x/kernel/signal.c | 377 +++++++++
arch/c6x/kernel/soc.c | 78 ++
arch/c6x/kernel/switch_to.S | 74 ++
arch/c6x/kernel/sys_c6x.c | 73 ++
arch/c6x/kernel/time.c | 65 ++
arch/c6x/kernel/traps.c | 423 ++++++++++
arch/c6x/kernel/vectors.S | 81 ++
arch/c6x/kernel/vmlinux.lds.S | 162 ++++
arch/c6x/lib/Makefile | 7 +
arch/c6x/lib/csum_64plus.S | 404 ++++++++++
arch/c6x/lib/divi.S | 53 ++
arch/c6x/lib/divremi.S | 46 ++
arch/c6x/lib/divremu.S | 87 +++
arch/c6x/lib/divu.S | 98 +++
arch/c6x/lib/llshl.S | 37 +
arch/c6x/lib/llshr.S | 38 +
arch/c6x/lib/llshru.S | 38 +
arch/c6x/lib/memcpy_64plus.S | 46 ++
arch/c6x/lib/mpyll.S | 49 ++
arch/c6x/lib/negll.S | 31 +
arch/c6x/lib/pop_rts.S | 32 +
arch/c6x/lib/push_rts.S | 31 +
arch/c6x/lib/remi.S | 64 ++
arch/c6x/lib/remu.S | 82 ++
arch/c6x/lib/strasgi.S | 89 +++
arch/c6x/lib/strasgi_64plus.S | 39 +
arch/c6x/mm/Makefile | 5 +
arch/c6x/mm/dma-coherent.c | 142 ++++
arch/c6x/mm/init.c | 112 +++
arch/c6x/platforms/Kconfig | 41 +
arch/c6x/platforms/Makefile | 12 +
arch/c6x/platforms/cache.c | 445 +++++++++++
arch/c6x/platforms/dscr.c | 598 +++++++++++++++
arch/c6x/platforms/emif.c | 88 +++
arch/c6x/platforms/megamod-pic.c | 349 +++++++++
arch/c6x/platforms/platform.c | 17 +
arch/c6x/platforms/pll.c | 444 +++++++++++
arch/c6x/platforms/plldata.c | 404 ++++++++++
arch/c6x/platforms/timer64.c | 188 +++++
include/asm-generic/io.h | 2 +-
include/asm-generic/page.h | 10 +-
include/asm-generic/uaccess.h | 7 +-
include/linux/elf-em.h | 1 +
123 files changed, 13269 insertions(+), 5 deletions(-)
create mode 100644 Documentation/devicetree/bindings/c6x/clocks.txt
create mode 100644 Documentation/devicetree/bindings/c6x/dscr.txt
create mode 100644 Documentation/devicetree/bindings/c6x/emifa.txt
create mode 100644 Documentation/devicetree/bindings/c6x/interrupt.txt
create mode 100644 Documentation/devicetree/bindings/c6x/soc.txt
create mode 100644 Documentation/devicetree/bindings/c6x/timer64.txt
create mode 100644 arch/c6x/Kconfig
create mode 100644 arch/c6x/Makefile
create mode 100644 arch/c6x/boot/Makefile
create mode 100644 arch/c6x/boot/dts/dsk6455.dts
create mode 100644 arch/c6x/boot/dts/evmc6457.dts
create mode 100644 arch/c6x/boot/dts/evmc6472.dts
create mode 100644 arch/c6x/boot/dts/evmc6474.dts
create mode 100644 arch/c6x/boot/dts/tms320c6455.dtsi
create mode 100644 arch/c6x/boot/dts/tms320c6457.dtsi
create mode 100644 arch/c6x/boot/dts/tms320c6472.dtsi
create mode 100644 arch/c6x/boot/dts/tms320c6474.dtsi
create mode 100644 arch/c6x/boot/install-dtb.c
create mode 100644 arch/c6x/configs/dsk6455_defconfig
create mode 100644 arch/c6x/configs/evmc6457_defconfig
create mode 100644 arch/c6x/configs/evmc6472_defconfig
create mode 100644 arch/c6x/configs/evmc6474_defconfig
create mode 100644 arch/c6x/include/asm/Kbuild
create mode 100644 arch/c6x/include/asm/asm-offsets.h
create mode 100644 arch/c6x/include/asm/bitops.h
create mode 100644 arch/c6x/include/asm/byteorder.h
create mode 100644 arch/c6x/include/asm/cache.h
create mode 100644 arch/c6x/include/asm/cacheflush.h
create mode 100644 arch/c6x/include/asm/checksum.h
create mode 100644 arch/c6x/include/asm/clkdev.h
create mode 100644 arch/c6x/include/asm/clock.h
create mode 100644 arch/c6x/include/asm/delay.h
create mode 100644 arch/c6x/include/asm/dma-mapping.h
create mode 100644 arch/c6x/include/asm/dscr.h
create mode 100644 arch/c6x/include/asm/elf.h
create mode 100644 arch/c6x/include/asm/ftrace.h
create mode 100644 arch/c6x/include/asm/hardirq.h
create mode 100644 arch/c6x/include/asm/irq.h
create mode 100644 arch/c6x/include/asm/irqflags.h
create mode 100644 arch/c6x/include/asm/linkage.h
create mode 100644 arch/c6x/include/asm/megamod-pic.h
create mode 100644 arch/c6x/include/asm/memblock.h
create mode 100644 arch/c6x/include/asm/mmu.h
create mode 100644 arch/c6x/include/asm/module.h
create mode 100644 arch/c6x/include/asm/mutex.h
create mode 100644 arch/c6x/include/asm/page.h
create mode 100644 arch/c6x/include/asm/pgtable.h
create mode 100644 arch/c6x/include/asm/processor.h
create mode 100644 arch/c6x/include/asm/procinfo.h
create mode 100644 arch/c6x/include/asm/prom.h
create mode 100644 arch/c6x/include/asm/ptrace.h
create mode 100644 arch/c6x/include/asm/sections.h
create mode 100644 arch/c6x/include/asm/setup.h
create mode 100644 arch/c6x/include/asm/sigcontext.h
create mode 100644 arch/c6x/include/asm/signal.h
create mode 100644 arch/c6x/include/asm/soc.h
create mode 100644 arch/c6x/include/asm/string.h
create mode 100644 arch/c6x/include/asm/syscalls.h
create mode 100644 arch/c6x/include/asm/system.h
create mode 100644 arch/c6x/include/asm/thread_info.h
create mode 100644 arch/c6x/include/asm/timer64.h
create mode 100644 arch/c6x/include/asm/timex.h
create mode 100644 arch/c6x/include/asm/tlb.h
create mode 100644 arch/c6x/include/asm/traps.h
create mode 100644 arch/c6x/include/asm/uaccess.h
create mode 100644 arch/c6x/include/asm/unaligned.h
create mode 100644 arch/c6x/include/asm/unistd.h
create mode 100644 arch/c6x/kernel/Makefile
create mode 100644 arch/c6x/kernel/asm-offsets.c
create mode 100644 arch/c6x/kernel/c6x_ksyms.c
create mode 100644 arch/c6x/kernel/devicetree.c
create mode 100644 arch/c6x/kernel/dma.c
create mode 100644 arch/c6x/kernel/entry.S
create mode 100644 arch/c6x/kernel/head.S
create mode 100644 arch/c6x/kernel/irq.c
create mode 100644 arch/c6x/kernel/module.c
create mode 100644 arch/c6x/kernel/process.c
create mode 100644 arch/c6x/kernel/ptrace.c
create mode 100644 arch/c6x/kernel/setup.c
create mode 100644 arch/c6x/kernel/signal.c
create mode 100644 arch/c6x/kernel/soc.c
create mode 100644 arch/c6x/kernel/switch_to.S
create mode 100644 arch/c6x/kernel/sys_c6x.c
create mode 100644 arch/c6x/kernel/time.c
create mode 100644 arch/c6x/kernel/traps.c
create mode 100644 arch/c6x/kernel/vectors.S
create mode 100644 arch/c6x/kernel/vmlinux.lds.S
create mode 100644 arch/c6x/lib/Makefile
create mode 100644 arch/c6x/lib/csum_64plus.S
create mode 100644 arch/c6x/lib/divi.S
create mode 100644 arch/c6x/lib/divremi.S
create mode 100644 arch/c6x/lib/divremu.S
create mode 100644 arch/c6x/lib/divu.S
create mode 100644 arch/c6x/lib/llshl.S
create mode 100644 arch/c6x/lib/llshr.S
create mode 100644 arch/c6x/lib/llshru.S
create mode 100644 arch/c6x/lib/memcpy_64plus.S
create mode 100644 arch/c6x/lib/mpyll.S
create mode 100644 arch/c6x/lib/negll.S
create mode 100644 arch/c6x/lib/pop_rts.S
create mode 100644 arch/c6x/lib/push_rts.S
create mode 100644 arch/c6x/lib/remi.S
create mode 100644 arch/c6x/lib/remu.S
create mode 100644 arch/c6x/lib/strasgi.S
create mode 100644 arch/c6x/lib/strasgi_64plus.S
create mode 100644 arch/c6x/mm/Makefile
create mode 100644 arch/c6x/mm/dma-coherent.c
create mode 100644 arch/c6x/mm/init.c
create mode 100644 arch/c6x/platforms/Kconfig
create mode 100644 arch/c6x/platforms/Makefile
create mode 100644 arch/c6x/platforms/cache.c
create mode 100644 arch/c6x/platforms/dscr.c
create mode 100644 arch/c6x/platforms/emif.c
create mode 100644 arch/c6x/platforms/megamod-pic.c
create mode 100644 arch/c6x/platforms/platform.c
create mode 100644 arch/c6x/platforms/pll.c
create mode 100644 arch/c6x/platforms/plldata.c
create mode 100644 arch/c6x/platforms/timer64.c

--
1.7.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/