linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/24] C6X: New architecture
@ 2011-09-27 20:29 Mark Salter
  2011-09-27 20:29 ` [PATCH v3 01/24] fix default __strnlen_user macro Mark Salter
                   ` (25 more replies)
  0 siblings, 26 replies; 66+ messages in thread
From: Mark Salter @ 2011-09-27 20:29 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arch, Mark Salter

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

    git@linux-c6x.org:/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


^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2011-09-29 14:42 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-27 20:29 [PATCH v3 00/24] C6X: New architecture Mark Salter
2011-09-27 20:29 ` [PATCH v3 01/24] fix default __strnlen_user macro Mark Salter
2011-09-28 13:20   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 02/24] fixed generic page.h for non-zero PAGE_OFFSET Mark Salter
2011-09-27 20:29 ` [PATCH v3 03/24] add ELF machine define for TI C6X DSPs Mark Salter
2011-09-27 20:29 ` [PATCH v3 04/24] add missing __iomem to generic iounmap declaration Mark Salter
2011-09-28 13:19   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 05/24] C6X: build infrastructure Mark Salter
2011-09-28 13:23   ` Arnd Bergmann
2011-09-28 14:32     ` Mark Salter
2011-09-28 14:57       ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 06/24] C6X: early boot code Mark Salter
2011-09-28 13:26   ` Arnd Bergmann
2011-09-28 14:06     ` Mark Salter
2011-09-28 15:00       ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 07/24] C6X: devicetree support Mark Salter
2011-09-28 13:31   ` Arnd Bergmann
2011-09-28 14:44     ` Mark Salter
2011-09-28 14:57       ` Arnd Bergmann
2011-09-28 23:11     ` Grant Likely
2011-09-27 20:29 ` [PATCH v3 08/24] C6X: memory management and DMA support Mark Salter
2011-09-28 13:46   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 09/24] C6X: process management Mark Salter
2011-09-28 13:47   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 10/24] C6X: signal management Mark Salter
2011-09-28 13:48   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 11/24] C6X: time management Mark Salter
2011-09-27 23:41   ` Thomas Gleixner
2011-09-28 12:48     ` Mark Salter
2011-09-27 20:29 ` [PATCH v3 12/24] C6X: interrupt handling Mark Salter
2011-09-27 23:30   ` Thomas Gleixner
2011-09-27 20:29 ` [PATCH v3 13/24] C6X: syscalls Mark Salter
2011-09-28 13:49   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 14/24] C6X: traps Mark Salter
2011-09-28 13:50   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 15/24] C6X: clocks Mark Salter
2011-09-28 13:51   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 16/24] C6X: cache control Mark Salter
2011-09-28 13:52   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 17/24] C6X: loadable module support Mark Salter
2011-09-28 13:54   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 18/24] C6X: ptrace support Mark Salter
2011-09-28 13:57   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 19/24] C6X: headers Mark Salter
2011-09-28 14:07   ` Arnd Bergmann
2011-09-29 13:32     ` Mark Salter
2011-09-29 14:24     ` Mark Salter
2011-09-29 14:41       ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 20/24] C6X: library code Mark Salter
2011-09-28 14:09   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 21/24] C6X: general SoC support Mark Salter
2011-09-28 14:19   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 22/24] C6X: EMIF - External Memory Interface Mark Salter
2011-09-28 14:13   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 23/24] C6X: DSCR - Device State Configuration Registers Mark Salter
2011-09-28 14:11   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 24/24] C6X: MAINTAINERS Mark Salter
2011-09-28 14:09   ` Arnd Bergmann
2011-09-27 23:15 ` [PATCH v3 00/24] C6X: New architecture Stephen Rothwell
2011-09-28 14:33   ` Arnd Bergmann
2011-09-28 21:49 ` Valdis.Kletnieks
2011-09-29 10:33   ` Arnd Bergmann
2011-09-29 12:21     ` Mark Salter
2011-09-29 12:42       ` Valdis.Kletnieks
2011-09-29 13:02         ` Mark Salter
2011-09-29 13:18           ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).