public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arch/c6x: new architecture port for linux
@ 2011-05-11 20:13 Mark Salter
  2011-05-11 20:13 ` [PATCH 01/16] fix default __strnlen_user macro Mark Salter
                   ` (3 more replies)
  0 siblings, 4 replies; 33+ messages in thread
From: Mark Salter @ 2011-05-11 20:13 UTC (permalink / raw)
  To: linux-kernel

This patch series adds support for a new architecture (arch/c6x) to
Linux. This architecture supports members of the Texas Instruments
family of C64x 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. For details on the processors:

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

This port has a long history going back at least as far as 2.6.13 but
was never a good candidate for upstreaming due to lack of a gcc port.
These previous kernels were built with proprietary TI tools using COFF.
However, a gcc port now exists:

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

Along with supporting the GNU toolchain work, Texas Instruments has also
been working on bringing the kernel port up to date and suitable for
contribution to the community. This is the start of that process and
hopefully we can quickly make whatever changes are necessary to get this
port included in the upstream kernel.

There are a few small patches to generic parts of the kernel including
bug fixes for a few generic headers. The most significant patch for the
generic kernel is the support for a new ELF based binary format called
DSBT. DSBT stands for Data Segment Base Table and provides a mechanism
for dynamic shared objects for systems without an MMU. In this regard it
is similar to the existing FDPIC support in the kernel but it uses a
very different approach. Whereas FDPIC ties data segment pointers to
function pointers, DSBT uses data accesses relativer to a dedicated
data pointer (DP) register. Each data segment in a DSO starts with a
table of DP values for each DSO linked into the process. Each DSO has
a unique index into that table. When a function call is made to another
DSO, the callee will save the current DP and retrieve its own DP from
the table indexed on the callee's known index. The advantage of this
over FDPIC is that function pointers require no special handling. The
main disadvantage is that DSOs in a system must have unique indices to
access their DP. These indices can be assigned at static link time when
the DSOs are built or later with a prelink-like tool when the rootfs is
composed.

The project wiki for linux-c6x is at:

  http://www.linux-c6x.org

and the GIT tree holding the attached patches is at:

  git@linux-c6x.org:/git/projects/linux-c6x-upstreaming.git

TIA for any feedback and/or guidance on this port.


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

end of thread, other threads:[~2011-06-16 14:02 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-11 20:13 [PATCH] arch/c6x: new architecture port for linux Mark Salter
2011-05-11 20:13 ` [PATCH 01/16] fix default __strnlen_user macro Mark Salter
2011-05-11 20:13   ` [PATCH 02/16] fixed generic page.h for non-zero PAGE_OFFSET Mark Salter
2011-05-11 20:13     ` [PATCH 03/16] add driver for C64x+ ethernet driver Mark Salter
2011-05-11 20:13       ` [PATCH 04/16] add support for C64x+ debugger based console Mark Salter
2011-05-11 20:13         ` [PATCH 05/16] add ELF machine define for TI C6X DSPs Mark Salter
2011-05-11 20:13           ` [PATCH 06/16] add maintainers entry for C6X arch Mark Salter
2011-05-11 20:13             ` [PATCH 07/16] C6X: add toplevel configury and makefile Mark Salter
2011-05-11 20:13               ` [PATCH 08/16] C6X: add include files Mark Salter
2011-05-11 20:13                 ` [PATCH 09/16] C6X: add kernel files Mark Salter
2011-05-11 20:13                   ` [PATCH 10/16] C6X: add mm files Mark Salter
2011-05-11 20:13                     ` [PATCH 11/16] C6X: add lib files Mark Salter
2011-05-11 20:13                       ` [PATCH 12/16] C6X: add platform files Mark Salter
2011-05-11 20:14                         ` [PATCH 13/16] C6X: add drivers/platform/c6x files Mark Salter
2011-05-11 20:14                           ` [PATCH 14/16] C6X: add default configs Mark Salter
2011-05-11 20:14                             ` [PATCH 15/16] Add new elf binfmt support for DSBT Mark Salter
2011-05-11 20:14                               ` [PATCH 16/16] C6X: add support for DSBT binary format Mark Salter
2011-05-12  2:41         ` [04/16] add support for C64x+ debugger based console Milton Miller
2011-05-12 12:55           ` Mark Salter
2011-05-12  0:49       ` [PATCH 03/16] add driver for C64x+ ethernet driver Joe Perches
2011-05-13 15:30       ` Ben Hutchings
2011-05-13 13:55   ` [PATCH 01/16] fix default __strnlen_user macro Pavel Machek
2011-05-13 14:40     ` Mark Salter
2011-05-11 20:13 ` [PATCH] arch/c6x: new architecture port for linux Milton Miller
2011-05-12 12:34   ` Mark Salter
2011-05-11 21:34 ` Randy Dunlap
2011-05-12  0:57   ` Mark Salter
2011-05-12  1:07     ` Randy Dunlap
2011-05-12  1:16       ` Mark Salter
2011-05-21 17:10 ` Arnd Bergmann
2011-05-21 17:46   ` Geert Uytterhoeven
2011-06-16 12:54   ` Mark Salter
2011-06-16 14:02     ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox