Skip to contentSkip to conversation

c6x: Add suport build davinci SOC with c674x CPUs

PATCH Superseded Tom Rini 4 participants 31 messages Jun 22, 2012 – Aug 10, 2012 2 messages not in the archive

Subsystems (4)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): add_c6x_arch

A message that is not in the archive (sent off-list or not yet received): [email protected]

Tom Rini

author
#2 lore raw

PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 7 lines · Dmitry Bondar

C674x CPUs has same peripherals(uart,emac,nand contoller) like sitara processors (am1705/am1707/omapl137/omapl138). In u-boot this peripheral known as davinci SOC, and placed in arch/arm/cpu/arm926ejs/davinci This patch allow compile davinci SOC code whith c674x CPU.

Reset code rewritten in C for compile not only for arm.

Please cc me on all of the v2 as this will go in via u-boot-ti, thanks.

[snip]

Quoted 12 lines
(quoted diff) +0 -0

b/arch/arm/cpu/arm926ejs/davinci/reset_c.c new file mode 100644 index 0000000..201eb6d --- /dev/null +++ b/arch/arm/cpu/arm926ejs/davinci/reset_c.c @@ -0,0 +1,33 @@ +#include <stdint.h> +#include <asm/arch/hardware.h> + +void
reset_cpu(unsigned long a) +{ + volatile uint32_t *WDT_TGCR; +
volatile uint32_t *WDT_TIM12; + volatile uint32_t *WDT_TIM34; +
volatile uint32_t *WDT_PRD12; + volatile uint32_t *WDT_PRD34; +
volatile uint32_t *WDT_TCR; + volatile uint32_t *WDT_WDTCR; +
WDT_TGCR = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x24); + WDT_TIM12 = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x10); + WDT_TIM34 = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x14); +

Quoted 8 lines

WDT_PRD12 = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x18); + WDT_PRD34 = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x1c); +
WDT_TCR = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x20); +
WDT_WDTCR = (volatile uint32_t *)(DAVINCI_TIMER1_BASE + 0x28); + +
*WDT_TGCR = 0x08; + *WDT_TGCR |= 0x3; + *WDT_TIM12 = 0; +
*WDT_TIM34 = 0; + *WDT_PRD12 = 0; + *WDT_PRD34 = 0; + *WDT_TCR |=
0x40; + *WDT_WDTCR |= 0x4000; + *WDT_WDTCR = 0xa5c64000; +
*WDT_WDTCR = 0xda7e4000; + *WDT_WDTCR = 0x4000; + /*while(1);*/ +}

This should be readl/writel and then if possible, just re-used on davinci as well (which would need to be tested).

- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJP5OpfAAoJENk4IS6UOR1WiykP/jIXgJhE+BUXapXdDX2HI5eW JbLNBX5HA/QKSZ2tQJeFlAgzKxPLWHrVkFXKLG3ArioDF2BVWrEYoa0HAh8q1OrG 366BSDNglkpEAYvWxioBXpY7YO8eULgyw1OHFUQohTmUZHIhBjZeSPrOuDulgAEt u12gYAe58U1zj5z4S2Iguru91u1ltOLQfCP3u0If0X7I9eUJrPQLZKTD6wXK8bG/ LVfkkLnQNl+uNUo7yJH0i9OVENiOmOr3fSZXxo6ofSmCsS69O2geVSU2t6FsRaJf 3H1P3ZqpFOSRwEJ9r1vmpKCsf0bjK8/AZJDYP+F1SOq26trk+7843jnXpRRk4rw7 O5AlwDxhR41XRHtBXRqIdSIAUMGMB9vCWzJCAR6tKra4CZecbgxNYasgCENeXjiM ewKzHVP8okrEHlG6eoV2wKehJ65ox6Tt4Gtjt+u1KimvwkReklrX8QiyNYgKYGgc GrJ/BnP5CgC+vk2RZF5UZ9inYMpdYgHyr9YTAhsPzRJf403r/dfjQLXEESGjjbIE vNjQpmAfZk+ZrvwzisAqKdJIWfyBl8tzLINRfFdXT7PY4WOUBTOXDH0ShDzlPSOq 3JhjUOHi2p6q13oqnWeQVhiCUk/1uSs66dfqmNzjRwWlk9q6q02i+HnYWGmmQU/V LVA0pTJDtN/WmmYWHnE2
=/ozC
-----END PGP SIGNATURE-----

#3 lore raw

v2 cover Add support new arch: c6x

In reply to a message not in the archive

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.

---
Changes for v2:
- davinci SOC reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Dmitry Bondar (4):
Add support new arch: c6x
c6x: Add support c674x CPUs
c6x: Add suport build davinci SOC with c674x CPUs
c6x: Add support c6745-som board

 MAINTAINERS                              |    3 +
 Makefile                                 |    1 +
 arch/arm/cpu/arm926ejs/davinci/Makefile  |    5 +
 arch/arm/cpu/arm926ejs/davinci/reset_c.c |   31 +++
 arch/c6x/config.mk                       |    1 +
 arch/c6x/cpu/c674x/Makefile              |   30 +++
 arch/c6x/cpu/c674x/cache.c               |   17 ++
 arch/c6x/cpu/c674x/config.mk             |   14 +
 arch/c6x/cpu/c674x/start.S               |   22 ++
 arch/c6x/cpu/u-boot.lds                  |   76 ++++++
 arch/c6x/include/asm/bitops.h            |   88 +++++++
 arch/c6x/include/asm/byteorder.h         |    1 +
 arch/c6x/include/asm/cache.h             |   29 ++
 arch/c6x/include/asm/config.h            |    3 +
 arch/c6x/include/asm/errno.h             |    1 +
 arch/c6x/include/asm/global_data.h       |   88 +++++++
 arch/c6x/include/asm/gpio.h              |    2 +
 arch/c6x/include/asm/io.h                |   53 ++++
 arch/c6x/include/asm/posix_types.h       |   72 ++++++
 arch/c6x/include/asm/processor.h         |    4 +
 arch/c6x/include/asm/ptrace.h            |  302 ++++++++++++++++++++++
 arch/c6x/include/asm/sizes.h             |   51 ++++
 arch/c6x/include/asm/string.h            |   26 ++
 arch/c6x/include/asm/types.h             |   53 ++++
 arch/c6x/include/asm/u-boot.h            |   57 ++++
 arch/c6x/include/asm/unaligned.h         |    1 +
 arch/c6x/lib/Makefile                    |   51 ++++
 arch/c6x/lib/board.c                     |  201 +++++++++++++++
 arch/c6x/lib/bootm.c                     |   59 +++++
 arch/c6x/lib/csum_64plus.S               |  408 ++++++++++++++++++++++++++++++
 arch/c6x/lib/delay.S                     |   39 +++
 arch/c6x/lib/divi.S                      |   54 ++++
 arch/c6x/lib/divremi.S                   |   61 +++++
 arch/c6x/lib/divremu.S                   |   86 +++++++
 arch/c6x/lib/divu.S                      |  100 ++++++++
 arch/c6x/lib/divull.c                    |  336 ++++++++++++++++++++++++
 arch/c6x/lib/llshl.S                     |   36 +++
 arch/c6x/lib/llshr.S                     |   36 +++
 arch/c6x/lib/llshru.S                    |   36 +++
 arch/c6x/lib/memcmp.c                    |   24 ++
 arch/c6x/lib/memcpy_64plus.S             |   45 ++++
 arch/c6x/lib/memmove.c                   |   30 +++
 arch/c6x/lib/memset.c                    |   20 ++
 arch/c6x/lib/mpyll.S                     |   47 ++++
 arch/c6x/lib/negll.S                     |   29 ++
 arch/c6x/lib/pop_rts.S                   |   30 +++
 arch/c6x/lib/push_rts.S                  |   28 ++
 arch/c6x/lib/remi.S                      |   78 ++++++
 arch/c6x/lib/remu.S                      |   81 ++++++
 arch/c6x/lib/strasgi.S                   |   88 +++++++
 arch/c6x/lib/strasgi_64plus.S            |   37 +++
 arch/c6x/lib/unaligned.S                 |  117 +++++++++
 board/inmys/c6745-som/Makefile           |   27 ++
 board/inmys/c6745-som/c6745-som.c        |  247 ++++++++++++++++++
 boards.cfg                               |    1 +
 common/cmd_bdinfo.c                      |    5 +
 common/image.c                           |    4 +
 examples/standalone/stubs.c              |   15 +
 include/configs/c6745-som-inmys.h        |  294 +++++++++++++++++++++
 mkconfig                                 |    7 +-
 60 files changed, 3787 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/davinci/reset_c.c
 create mode 100644 arch/c6x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/Makefile
 create mode 100644 arch/c6x/cpu/c674x/cache.c
 create mode 100644 arch/c6x/cpu/c674x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/start.S
 create mode 100644 arch/c6x/cpu/u-boot.lds
 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/config.h
 create mode 100644 arch/c6x/include/asm/errno.h
 create mode 100644 arch/c6x/include/asm/global_data.h
 create mode 100644 arch/c6x/include/asm/gpio.h
 create mode 100644 arch/c6x/include/asm/io.h
 create mode 100644 arch/c6x/include/asm/posix_types.h
 create mode 100644 arch/c6x/include/asm/processor.h
 create mode 100644 arch/c6x/include/asm/ptrace.h
 create mode 100644 arch/c6x/include/asm/sizes.h
 create mode 100644 arch/c6x/include/asm/string.h
 create mode 100644 arch/c6x/include/asm/types.h
 create mode 100644 arch/c6x/include/asm/u-boot.h
 create mode 100644 arch/c6x/include/asm/unaligned.h
 create mode 100644 arch/c6x/lib/Makefile
 create mode 100644 arch/c6x/lib/board.c
 create mode 100644 arch/c6x/lib/bootm.c
 create mode 100644 arch/c6x/lib/csum_64plus.S
 create mode 100644 arch/c6x/lib/delay.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/divull.c
 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/memcmp.c
 create mode 100644 arch/c6x/lib/memcpy_64plus.S
 create mode 100644 arch/c6x/lib/memmove.c
 create mode 100644 arch/c6x/lib/memset.c
 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/lib/unaligned.S
 create mode 100644 board/inmys/c6745-som/Makefile
 create mode 100644 board/inmys/c6745-som/c6745-som.c
 create mode 100644 include/configs/c6745-som-inmys.h
Signature · 1 line
1.7.2.5
#4 lore raw

v2 cover Add support new arch: c6x

Dear Dmitry Bondar,

Quoted 9 lines · In message <[email protected]> you wrote:

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.

---
Changes for v2:
- davinci SOC reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Please run your patches through checkpatch and fix the issues. Then try and resubmit:

WARNING: do not add new typedefs
#377: FILE: arch/c6x/include/asm/global_data.h:36:
+typedef struct global_data {

WARNING: line over 80 characters
#418: FILE: arch/c6x/include/asm/global_data.h:77:
+#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */

WARNING: line over 80 characters
#419: FILE: arch/c6x/include/asm/global_data.h:78:
+#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */

WARNING: line over 80 characters
#420: FILE: arch/c6x/include/asm/global_data.h:79:
+#define GD_FLG_SILENT 0x00004 /* Silent mode */

WARNING: line over 80 characters
#421: FILE: arch/c6x/include/asm/global_data.h:80:
+#define GD_FLG_POSTFAIL 0x00008 /* Critical POST test failed */

WARNING: line over 80 characters
#422: FILE: arch/c6x/include/asm/global_data.h:81:
+#define GD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */

WARNING: line over 80 characters
#423: FILE: arch/c6x/include/asm/global_data.h:82:
+#define GD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */

WARNING: line over 80 characters
#424: FILE: arch/c6x/include/asm/global_data.h:83:
+#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */

WARNING: line over 80 characters
#425: FILE: arch/c6x/include/asm/global_data.h:84:
+#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #427: FILE: arch/c6x/include/asm/global_data.h:86:
+#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("B31")

WARNING: line over 80 characters
#457: FILE: arch/c6x/include/asm/io.h:14:
+static inline unsigned char __readb(volatile unsigned char *addr) { return (*addr); }

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #457: FILE: arch/c6x/include/asm/io.h:14:
+static inline unsigned char __readb(volatile unsigned char *addr) { return (*addr); }

WARNING: line over 80 characters
#458: FILE: arch/c6x/include/asm/io.h:15:
+static inline unsigned short __readw(volatile unsigned short *addr) { return (*addr); }

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #458: FILE: arch/c6x/include/asm/io.h:15:
+static inline unsigned short __readw(volatile unsigned short *addr) { return (*addr); }

WARNING: line over 80 characters
#459: FILE: arch/c6x/include/asm/io.h:16:
+static inline unsigned long __readl(volatile unsigned int *addr) { return (*addr); }

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #459: FILE: arch/c6x/include/asm/io.h:16:
+static inline unsigned long __readl(volatile unsigned int *addr) { return (*addr); }

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #461: FILE: arch/c6x/include/asm/io.h:18:
+#define readb(addr) __readb((volatile unsigned char *) (addr))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #462: FILE: arch/c6x/include/asm/io.h:19:
+#define readw(addr) __readw((volatile unsigned short *) (addr))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #463: FILE: arch/c6x/include/asm/io.h:20:
+#define readl(addr) __readl((volatile unsigned int *) (addr))

ERROR: space required after that ',' (ctx:VxV)
#465: FILE: arch/c6x/include/asm/io.h:22:
+#define writeb(b,addr) ((*(volatile unsigned char *) (addr)) = (b))

                 ^

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #465: FILE: arch/c6x/include/asm/io.h:22:
+#define writeb(b,addr) ((*(volatile unsigned char *) (addr)) = (b))

ERROR: space required after that ',' (ctx:VxV)
#466: FILE: arch/c6x/include/asm/io.h:23:
+#define writew(b,addr) ((*(volatile unsigned short *) (addr)) = (b))

                 ^

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #466: FILE: arch/c6x/include/asm/io.h:23:
+#define writew(b,addr) ((*(volatile unsigned short *) (addr)) = (b))

ERROR: space required after that ',' (ctx:VxV)
#467: FILE: arch/c6x/include/asm/io.h:24:
+#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))

                 ^

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #467: FILE: arch/c6x/include/asm/io.h:24:
+#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))

WARNING: line over 80 characters
#478: FILE: arch/c6x/include/asm/io.h:35:
+ ({ unsigned short __v = le16_to_cpu(*(volatile unsigned short *) (addr)); __v; })

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #478: FILE: arch/c6x/include/asm/io.h:35:
+ ({ unsigned short __v = le16_to_cpu(*(volatile unsigned short *) (addr)); __v; })

WARNING: line over 80 characters
#480: FILE: arch/c6x/include/asm/io.h:37:
+ ({ unsigned int __v = le32_to_cpu(*(volatile unsigned int *) (addr)); __v; })

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #480: FILE: arch/c6x/include/asm/io.h:37:
+ ({ unsigned int __v = le32_to_cpu(*(volatile unsigned int *) (addr)); __v; })

WARNING: line over 80 characters
#481: FILE: arch/c6x/include/asm/io.h:38:
+#define out_le16(addr,w) (void)((*(volatile unsigned short *) (addr)) = cpu_to_le16(w))

ERROR: space required after that ',' (ctx:VxV)
#481: FILE: arch/c6x/include/asm/io.h:38:
+#define out_le16(addr,w) (void)((*(volatile unsigned short *) (addr)) = cpu_to_le16(w))

                      ^

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #481: FILE: arch/c6x/include/asm/io.h:38:
+#define out_le16(addr,w) (void)((*(volatile unsigned short *) (addr)) = cpu_to_le16(w))

WARNING: line over 80 characters
#482: FILE: arch/c6x/include/asm/io.h:39:
+#define out_le32(addr,l) (void)((*(volatile unsigned int *) (addr)) = cpu_to_le32(l))

ERROR: space required after that ',' (ctx:VxV)
#482: FILE: arch/c6x/include/asm/io.h:39:
+#define out_le32(addr,l) (void)((*(volatile unsigned int *) (addr)) = cpu_to_le32(l))

                      ^

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #482: FILE: arch/c6x/include/asm/io.h:39:
+#define out_le32(addr,l) (void)((*(volatile unsigned int *) (addr)) = cpu_to_le32(l))

WARNING: do not add new typedefs
#520: FILE: arch/c6x/include/asm/posix_types.h:18:
+typedef unsigned int __kernel_dev_t;

WARNING: do not add new typedefs
#521: FILE: arch/c6x/include/asm/posix_types.h:19:
+typedef unsigned long __kernel_ino_t;

WARNING: do not add new typedefs
#522: FILE: arch/c6x/include/asm/posix_types.h:20:
+typedef unsigned long long __kernel_ino64_t;

WARNING: do not add new typedefs
#523: FILE: arch/c6x/include/asm/posix_types.h:21:
+typedef unsigned int __kernel_mode_t;

WARNING: do not add new typedefs
#524: FILE: arch/c6x/include/asm/posix_types.h:22:
+typedef unsigned int __kernel_nlink_t;

WARNING: do not add new typedefs
#525: FILE: arch/c6x/include/asm/posix_types.h:23:
+typedef long __kernel_off_t;

WARNING: do not add new typedefs
#526: FILE: arch/c6x/include/asm/posix_types.h:24:
+typedef long long __kernel_loff_t;

WARNING: do not add new typedefs
#527: FILE: arch/c6x/include/asm/posix_types.h:25:
+typedef int __kernel_pid_t;

WARNING: do not add new typedefs
#528: FILE: arch/c6x/include/asm/posix_types.h:26:
+typedef unsigned short __kernel_ipc_pid_t;

WARNING: do not add new typedefs
#529: FILE: arch/c6x/include/asm/posix_types.h:27:
+typedef unsigned int __kernel_uid_t;

WARNING: do not add new typedefs
#530: FILE: arch/c6x/include/asm/posix_types.h:28:
+typedef unsigned int __kernel_gid_t;

WARNING: do not add new typedefs
#531: FILE: arch/c6x/include/asm/posix_types.h:29:
+typedef unsigned int __kernel_size_t;

WARNING: do not add new typedefs
#532: FILE: arch/c6x/include/asm/posix_types.h:30:
+typedef int __kernel_ssize_t;

WARNING: do not add new typedefs
#533: FILE: arch/c6x/include/asm/posix_types.h:31:
+typedef int __kernel_ptrdiff_t;

WARNING: do not add new typedefs
#534: FILE: arch/c6x/include/asm/posix_types.h:32:
+typedef long __kernel_time_t;

WARNING: do not add new typedefs
#535: FILE: arch/c6x/include/asm/posix_types.h:33:
+typedef long __kernel_suseconds_t;

WARNING: do not add new typedefs
#536: FILE: arch/c6x/include/asm/posix_types.h:34:
+typedef long __kernel_clock_t;

WARNING: do not add new typedefs
#537: FILE: arch/c6x/include/asm/posix_types.h:35:
+typedef int __kernel_daddr_t;

WARNING: do not add new typedefs
#538: FILE: arch/c6x/include/asm/posix_types.h:36:
+typedef char *__kernel_caddr_t;

WARNING: do not add new typedefs
#539: FILE: arch/c6x/include/asm/posix_types.h:37:
+typedef unsigned short __kernel_uid16_t;

WARNING: do not add new typedefs
#540: FILE: arch/c6x/include/asm/posix_types.h:38:
+typedef unsigned short __kernel_gid16_t;

WARNING: do not add new typedefs
#541: FILE: arch/c6x/include/asm/posix_types.h:39:
+typedef unsigned int __kernel_uid32_t;

WARNING: do not add new typedefs
#542: FILE: arch/c6x/include/asm/posix_types.h:40:
+typedef unsigned int __kernel_gid32_t;

WARNING: do not add new typedefs
#544: FILE: arch/c6x/include/asm/posix_types.h:42:
+typedef unsigned short __kernel_old_uid_t;

WARNING: do not add new typedefs
#545: FILE: arch/c6x/include/asm/posix_types.h:43:
+typedef unsigned short __kernel_old_gid_t;

WARNING: do not add new typedefs
#548: FILE: arch/c6x/include/asm/posix_types.h:46:
+typedef struct {

WARNING: line over 80 characters
#608: FILE: arch/c6x/include/asm/ptrace.h:18:
+#if defined(__TMS320C6XPLUS__) || defined(_TMS320C6400_PLUS) || defined(__TMS320C66X__)

ERROR: trailing whitespace
#615: FILE: arch/c6x/include/asm/ptrace.h:25:
+#define PT_LO(odd,even) odd $

ERROR: space required after that ',' (ctx:VxV)
#615: FILE: arch/c6x/include/asm/ptrace.h:25:
+#define PT_LO(odd,even) odd

                  ^

ERROR: space required after that ',' (ctx:VxV)
#616: FILE: arch/c6x/include/asm/ptrace.h:26:
+#define PT_HI(odd,even) even

                  ^

ERROR: space required after that ',' (ctx:VxV)
#618: FILE: arch/c6x/include/asm/ptrace.h:28:
+#define PT_LO(odd,even) even

                  ^

ERROR: space required after that ',' (ctx:VxV)
#619: FILE: arch/c6x/include/asm/ptrace.h:29:
+#define PT_HI(odd,even) odd

                  ^

WARNING: line over 80 characters
#622: FILE: arch/c6x/include/asm/ptrace.h:32:
+#if defined(__TMS320C6XPLUS__) || defined(_TMS320C6400_PLUS) || defined(__TMS320C66X__)

ERROR: space required after that ',' (ctx:VxV)
#624: FILE: arch/c6x/include/asm/ptrace.h:34:
+#define PT_A4_ORG PT_LO(1,0)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#625: FILE: arch/c6x/include/asm/ptrace.h:35:
+#define PT_TSR PT_HI(1,0)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#626: FILE: arch/c6x/include/asm/ptrace.h:36:
+#define PT_ILC PT_LO(3,2)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#627: FILE: arch/c6x/include/asm/ptrace.h:37:
+#define PT_RILC PT_HI(3,2)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#628: FILE: arch/c6x/include/asm/ptrace.h:38:
+#define PT_CSR PT_LO(5,4)

               	          ^

ERROR: space required after that ',' (ctx:VxV)
#629: FILE: arch/c6x/include/asm/ptrace.h:39:
+#define PT_PC PT_HI(5,4)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#630: FILE: arch/c6x/include/asm/ptrace.h:40:
+#define PT_B16 PT_LO(7,6)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#631: FILE: arch/c6x/include/asm/ptrace.h:41:
+#define PT_B17 PT_HI(7,6)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#632: FILE: arch/c6x/include/asm/ptrace.h:42:
+#define PT_B18 PT_LO(9,8)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#633: FILE: arch/c6x/include/asm/ptrace.h:43:
+#define PT_B19 PT_HI(9,8)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#634: FILE: arch/c6x/include/asm/ptrace.h:44:
+#define PT_B20 PT_LO(11,10)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#635: FILE: arch/c6x/include/asm/ptrace.h:45:
+#define PT_B21 PT_HI(11,10)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#636: FILE: arch/c6x/include/asm/ptrace.h:46:
+#define PT_B22 PT_LO(13,12)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#637: FILE: arch/c6x/include/asm/ptrace.h:47:
+#define PT_B23 PT_HI(13,12)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#638: FILE: arch/c6x/include/asm/ptrace.h:48:
+#define PT_B24 PT_LO(15,14)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#639: FILE: arch/c6x/include/asm/ptrace.h:49:
+#define PT_B25 PT_HI(15,14)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#640: FILE: arch/c6x/include/asm/ptrace.h:50:
+#define PT_B26 PT_LO(17,16)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#641: FILE: arch/c6x/include/asm/ptrace.h:51:
+#define PT_B27 PT_HI(17,16)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#642: FILE: arch/c6x/include/asm/ptrace.h:52:
+#define PT_B28 PT_LO(19,18)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#643: FILE: arch/c6x/include/asm/ptrace.h:53:
+#define PT_B29 PT_HI(19,18)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#644: FILE: arch/c6x/include/asm/ptrace.h:54:
+#define PT_B30 PT_LO(21,20)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#645: FILE: arch/c6x/include/asm/ptrace.h:55:
+#define PT_B31 PT_HI(21,20)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#646: FILE: arch/c6x/include/asm/ptrace.h:56:
+#define PT_B0 PT_LO(23,22)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#647: FILE: arch/c6x/include/asm/ptrace.h:57:
+#define PT_B1 PT_HI(23,22)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#648: FILE: arch/c6x/include/asm/ptrace.h:58:
+#define PT_B2 PT_LO(25,24)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#649: FILE: arch/c6x/include/asm/ptrace.h:59:
+#define PT_B3 PT_HI(25,24)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#650: FILE: arch/c6x/include/asm/ptrace.h:60:
+#define PT_B4 PT_LO(27,26)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#651: FILE: arch/c6x/include/asm/ptrace.h:61:
+#define PT_B5 PT_HI(27,26)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#652: FILE: arch/c6x/include/asm/ptrace.h:62:
+#define PT_B6 PT_LO(29,28)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#653: FILE: arch/c6x/include/asm/ptrace.h:63:
+#define PT_B7 PT_HI(29,28)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#654: FILE: arch/c6x/include/asm/ptrace.h:64:
+#define PT_B8 PT_LO(31,30)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#655: FILE: arch/c6x/include/asm/ptrace.h:65:
+#define PT_B9 PT_HI(31,30)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#656: FILE: arch/c6x/include/asm/ptrace.h:66:
+#define PT_B10 PT_LO(33,32)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#657: FILE: arch/c6x/include/asm/ptrace.h:67:
+#define PT_B11 PT_HI(33,32)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#658: FILE: arch/c6x/include/asm/ptrace.h:68:
+#define PT_B12 PT_LO(35,34)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#659: FILE: arch/c6x/include/asm/ptrace.h:69:
+#define PT_B13 PT_HI(35,34)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#660: FILE: arch/c6x/include/asm/ptrace.h:70:
+#define PT_A16 PT_LO(37,36)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#661: FILE: arch/c6x/include/asm/ptrace.h:71:
+#define PT_A17 PT_HI(37,36)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#662: FILE: arch/c6x/include/asm/ptrace.h:72:
+#define PT_A18 PT_LO(39,38)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#663: FILE: arch/c6x/include/asm/ptrace.h:73:
+#define PT_A19 PT_HI(39,38)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#664: FILE: arch/c6x/include/asm/ptrace.h:74:
+#define PT_A20 PT_LO(41,40)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#665: FILE: arch/c6x/include/asm/ptrace.h:75:
+#define PT_A21 PT_HI(41,40)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#666: FILE: arch/c6x/include/asm/ptrace.h:76:
+#define PT_A22 PT_LO(43,42)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#667: FILE: arch/c6x/include/asm/ptrace.h:77:
+#define PT_A23 PT_HI(43,42)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#668: FILE: arch/c6x/include/asm/ptrace.h:78:
+#define PT_A24 PT_LO(45,44)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#669: FILE: arch/c6x/include/asm/ptrace.h:79:
+#define PT_A25 PT_HI(45,44)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#670: FILE: arch/c6x/include/asm/ptrace.h:80:
+#define PT_A26 PT_LO(47,46)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#671: FILE: arch/c6x/include/asm/ptrace.h:81:
+#define PT_A27 PT_HI(47,46)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#672: FILE: arch/c6x/include/asm/ptrace.h:82:
+#define PT_A28 PT_LO(49,48)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#673: FILE: arch/c6x/include/asm/ptrace.h:83:
+#define PT_A29 PT_HI(49,48)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#674: FILE: arch/c6x/include/asm/ptrace.h:84:
+#define PT_A30 PT_LO(51,50)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#675: FILE: arch/c6x/include/asm/ptrace.h:85:
+#define PT_A31 PT_HI(51,50)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#676: FILE: arch/c6x/include/asm/ptrace.h:86:
+#define PT_A0 PT_LO(53,52)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#677: FILE: arch/c6x/include/asm/ptrace.h:87:
+#define PT_A1 PT_HI(53,52)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#678: FILE: arch/c6x/include/asm/ptrace.h:88:
+#define PT_A2 PT_LO(55,54)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#679: FILE: arch/c6x/include/asm/ptrace.h:89:
+#define PT_A3 PT_HI(55,54)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#680: FILE: arch/c6x/include/asm/ptrace.h:90:
+#define PT_A4 PT_LO(57,56)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#681: FILE: arch/c6x/include/asm/ptrace.h:91:
+#define PT_A5 PT_HI(57,56)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#682: FILE: arch/c6x/include/asm/ptrace.h:92:
+#define PT_A6 PT_LO(59,58)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#683: FILE: arch/c6x/include/asm/ptrace.h:93:
+#define PT_A7 PT_HI(59,58)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#684: FILE: arch/c6x/include/asm/ptrace.h:94:
+#define PT_A8 PT_LO(61,60)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#685: FILE: arch/c6x/include/asm/ptrace.h:95:
+#define PT_A9 PT_HI(61,60)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#686: FILE: arch/c6x/include/asm/ptrace.h:96:
+#define PT_A10 PT_LO(63,62)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#687: FILE: arch/c6x/include/asm/ptrace.h:97:
+#define PT_A11 PT_HI(63,62)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#688: FILE: arch/c6x/include/asm/ptrace.h:98:
+#define PT_A12 PT_LO(65,64)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#689: FILE: arch/c6x/include/asm/ptrace.h:99:
+#define PT_A13 PT_HI(65,64)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#690: FILE: arch/c6x/include/asm/ptrace.h:100:
+#define PT_A14 PT_LO(67,66)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#691: FILE: arch/c6x/include/asm/ptrace.h:101:
+#define PT_A15 PT_HI(67,66)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#692: FILE: arch/c6x/include/asm/ptrace.h:102:
+#define PT_B14 PT_LO(69,68)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#693: FILE: arch/c6x/include/asm/ptrace.h:103:
+#define PT_B15 PT_HI(69,68)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#697: FILE: arch/c6x/include/asm/ptrace.h:107:
+#define PT_A4_ORG PT_LO(1,0)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#698: FILE: arch/c6x/include/asm/ptrace.h:108:
+#define PT_STKADJ PT_HI(1,0)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#699: FILE: arch/c6x/include/asm/ptrace.h:109:
+#define PT_CSR PT_LO(3,2)

               	          ^

ERROR: space required after that ',' (ctx:VxV)
#700: FILE: arch/c6x/include/asm/ptrace.h:110:
+#define PT_PC PT_HI(3,2)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#702: FILE: arch/c6x/include/asm/ptrace.h:112:
+#define PT_B16 PT_LO(5,4)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#703: FILE: arch/c6x/include/asm/ptrace.h:113:
+#define PT_B17 PT_HI(5,4)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#704: FILE: arch/c6x/include/asm/ptrace.h:114:
+#define PT_B18 PT_LO(7,6)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#705: FILE: arch/c6x/include/asm/ptrace.h:115:
+#define PT_B19 PT_HI(7,6)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#706: FILE: arch/c6x/include/asm/ptrace.h:116:
+#define PT_B20 PT_LO(9,8)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#707: FILE: arch/c6x/include/asm/ptrace.h:117:
+#define PT_B21 PT_HI(9,8)

                           ^

ERROR: space required after that ',' (ctx:VxV)
#708: FILE: arch/c6x/include/asm/ptrace.h:118:
+#define PT_B22 PT_LO(11,10)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#709: FILE: arch/c6x/include/asm/ptrace.h:119:
+#define PT_B23 PT_HI(11,10)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#710: FILE: arch/c6x/include/asm/ptrace.h:120:
+#define PT_B24 PT_LO(13,12)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#711: FILE: arch/c6x/include/asm/ptrace.h:121:
+#define PT_B25 PT_HI(13,12)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#712: FILE: arch/c6x/include/asm/ptrace.h:122:
+#define PT_B26 PT_LO(15,14)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#713: FILE: arch/c6x/include/asm/ptrace.h:123:
+#define PT_B27 PT_HI(15,14)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#714: FILE: arch/c6x/include/asm/ptrace.h:124:
+#define PT_B28 PT_LO(17,16)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#715: FILE: arch/c6x/include/asm/ptrace.h:125:
+#define PT_B29 PT_HI(17,16)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#716: FILE: arch/c6x/include/asm/ptrace.h:126:
+#define PT_B30 PT_LO(19,18)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#717: FILE: arch/c6x/include/asm/ptrace.h:127:
+#define PT_B31 PT_HI(19,18)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#719: FILE: arch/c6x/include/asm/ptrace.h:129:
+#define PT_B0 PT_LO(21,20)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#720: FILE: arch/c6x/include/asm/ptrace.h:130:
+#define PT_B1 PT_HI(21,20)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#721: FILE: arch/c6x/include/asm/ptrace.h:131:
+#define PT_B2 PT_LO(23,22)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#722: FILE: arch/c6x/include/asm/ptrace.h:132:
+#define PT_B3 PT_HI(23,22)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#723: FILE: arch/c6x/include/asm/ptrace.h:133:
+#define PT_B4 PT_LO(25,24)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#724: FILE: arch/c6x/include/asm/ptrace.h:134:
+#define PT_B5 PT_HI(25,24)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#725: FILE: arch/c6x/include/asm/ptrace.h:135:
+#define PT_B6 PT_LO(27,26)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#726: FILE: arch/c6x/include/asm/ptrace.h:136:
+#define PT_B7 PT_HI(27,26)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#727: FILE: arch/c6x/include/asm/ptrace.h:137:
+#define PT_B8 PT_LO(29,28)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#728: FILE: arch/c6x/include/asm/ptrace.h:138:
+#define PT_B9 PT_HI(29,28)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#729: FILE: arch/c6x/include/asm/ptrace.h:139:
+#define PT_B10 PT_LO(31,30)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#730: FILE: arch/c6x/include/asm/ptrace.h:140:
+#define PT_B11 PT_HI(31,30)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#731: FILE: arch/c6x/include/asm/ptrace.h:141:
+#define PT_B12 PT_LO(33,32)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#732: FILE: arch/c6x/include/asm/ptrace.h:142:
+#define PT_B13 PT_HI(33,32)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#734: FILE: arch/c6x/include/asm/ptrace.h:144:
+#define PT_A16 PT_LO(35,34)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#735: FILE: arch/c6x/include/asm/ptrace.h:145:
+#define PT_A17 PT_HI(35,34)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#736: FILE: arch/c6x/include/asm/ptrace.h:146:
+#define PT_A18 PT_LO(37,36)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#737: FILE: arch/c6x/include/asm/ptrace.h:147:
+#define PT_A19 PT_HI(37,36)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#738: FILE: arch/c6x/include/asm/ptrace.h:148:
+#define PT_A20 PT_LO(39,38)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#739: FILE: arch/c6x/include/asm/ptrace.h:149:
+#define PT_A21 PT_HI(39,38)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#740: FILE: arch/c6x/include/asm/ptrace.h:150:
+#define PT_A22 PT_LO(41,40)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#741: FILE: arch/c6x/include/asm/ptrace.h:151:
+#define PT_A23 PT_HI(41,40)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#742: FILE: arch/c6x/include/asm/ptrace.h:152:
+#define PT_A24 PT_LO(43,42)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#743: FILE: arch/c6x/include/asm/ptrace.h:153:
+#define PT_A25 PT_HI(43,42)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#744: FILE: arch/c6x/include/asm/ptrace.h:154:
+#define PT_A26 PT_LO(45,44)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#745: FILE: arch/c6x/include/asm/ptrace.h:155:
+#define PT_A27 PT_HI(45,44)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#746: FILE: arch/c6x/include/asm/ptrace.h:156:
+#define PT_A28 PT_LO(47,46)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#747: FILE: arch/c6x/include/asm/ptrace.h:157:
+#define PT_A29 PT_HI(47,46)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#748: FILE: arch/c6x/include/asm/ptrace.h:158:
+#define PT_A30 PT_LO(49,48)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#749: FILE: arch/c6x/include/asm/ptrace.h:159:
+#define PT_A31 PT_HI(49,48)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#751: FILE: arch/c6x/include/asm/ptrace.h:161:
+#define PT_A0 PT_LO(51,50)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#752: FILE: arch/c6x/include/asm/ptrace.h:162:
+#define PT_A1 PT_HI(51,50)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#753: FILE: arch/c6x/include/asm/ptrace.h:163:
+#define PT_A2 PT_LO(53,52)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#754: FILE: arch/c6x/include/asm/ptrace.h:164:
+#define PT_A3 PT_HI(53,52)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#755: FILE: arch/c6x/include/asm/ptrace.h:165:
+#define PT_A4 PT_LO(55,54)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#756: FILE: arch/c6x/include/asm/ptrace.h:166:
+#define PT_A5 PT_HI(55,54)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#757: FILE: arch/c6x/include/asm/ptrace.h:167:
+#define PT_A6 PT_LO(57,56)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#758: FILE: arch/c6x/include/asm/ptrace.h:168:
+#define PT_A7 PT_HI(57,56)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#759: FILE: arch/c6x/include/asm/ptrace.h:169:
+#define PT_A8 PT_LO(59,58)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#760: FILE: arch/c6x/include/asm/ptrace.h:170:
+#define PT_A9 PT_HI(59,58)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#761: FILE: arch/c6x/include/asm/ptrace.h:171:
+#define PT_A10 PT_LO(61,60)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#762: FILE: arch/c6x/include/asm/ptrace.h:172:
+#define PT_A11 PT_HI(61,60)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#763: FILE: arch/c6x/include/asm/ptrace.h:173:
+#define PT_A12 PT_LO(63,62)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#764: FILE: arch/c6x/include/asm/ptrace.h:174:
+#define PT_A13 PT_HI(63,62)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#765: FILE: arch/c6x/include/asm/ptrace.h:175:
+#define PT_A14 PT_LO(65,64)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#766: FILE: arch/c6x/include/asm/ptrace.h:176:
+#define PT_A15 PT_HI(65,64)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#767: FILE: arch/c6x/include/asm/ptrace.h:177:
+#define PT_B14 PT_LO(67,66)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#768: FILE: arch/c6x/include/asm/ptrace.h:178:
+#define PT_B15 PT_HI(67,66)

                            ^

ERROR: space required after that ',' (ctx:VxV)
#778: FILE: arch/c6x/include/asm/ptrace.h:188:
+#define REG_PAIR(odd,even) unsigned long odd; unsigned long even

                     ^

ERROR: space required after that ',' (ctx:VxV)
#780: FILE: arch/c6x/include/asm/ptrace.h:190:
+#define REG_PAIR(odd,even) unsigned long even; unsigned long odd

                     ^

WARNING: line over 80 characters
#790: FILE: arch/c6x/include/asm/ptrace.h:200:
+#if defined(__TMS320C6XPLUS__) || defined(_TMS320C6400_PLUS) || defined(__TMS320C66X__)

ERROR: space required after that ',' (ctx:VxV)
#791: FILE: arch/c6x/include/asm/ptrace.h:201:
+ REG_PAIR(tsr,orig_a4);
^

ERROR: space required after that ',' (ctx:VxV)
#792: FILE: arch/c6x/include/asm/ptrace.h:202:
+ REG_PAIR(rilc,ilc);
^

ERROR: space required after that ',' (ctx:VxV)
#794: FILE: arch/c6x/include/asm/ptrace.h:204:
+ REG_PAIR(stkadj,orig_a4);
^

ERROR: space required after that ',' (ctx:VxV)
#796: FILE: arch/c6x/include/asm/ptrace.h:206:
+ REG_PAIR(pc,csr);
^

ERROR: space required after that ',' (ctx:VxV)
#799: FILE: arch/c6x/include/asm/ptrace.h:209:
+ REG_PAIR(b17,b16);
^

ERROR: space required after that ',' (ctx:VxV)
#800: FILE: arch/c6x/include/asm/ptrace.h:210:
+ REG_PAIR(b19,b18);
^

ERROR: space required after that ',' (ctx:VxV)
#801: FILE: arch/c6x/include/asm/ptrace.h:211:
+ REG_PAIR(b21,b20);
^

ERROR: space required after that ',' (ctx:VxV)
#802: FILE: arch/c6x/include/asm/ptrace.h:212:
+ REG_PAIR(b23,b22);
^

ERROR: space required after that ',' (ctx:VxV)
#803: FILE: arch/c6x/include/asm/ptrace.h:213:
+ REG_PAIR(b25,b24);
^

ERROR: space required after that ',' (ctx:VxV)
#804: FILE: arch/c6x/include/asm/ptrace.h:214:
+ REG_PAIR(b27,b26);
^

ERROR: space required after that ',' (ctx:VxV)
#805: FILE: arch/c6x/include/asm/ptrace.h:215:
+ REG_PAIR(b29,b28);
^

ERROR: space required after that ',' (ctx:VxV)
#806: FILE: arch/c6x/include/asm/ptrace.h:216:
+ REG_PAIR(b31,b30);
^

ERROR: space required after that ',' (ctx:VxV)
#809: FILE: arch/c6x/include/asm/ptrace.h:219:
+ REG_PAIR(b1,b0);
^

ERROR: space required after that ',' (ctx:VxV)
#810: FILE: arch/c6x/include/asm/ptrace.h:220:
+ REG_PAIR(b3,b2);
^

ERROR: space required after that ',' (ctx:VxV)
#811: FILE: arch/c6x/include/asm/ptrace.h:221:
+ REG_PAIR(b5,b4);
^

ERROR: space required after that ',' (ctx:VxV)
#812: FILE: arch/c6x/include/asm/ptrace.h:222:
+ REG_PAIR(b7,b6);
^

ERROR: space required after that ',' (ctx:VxV)
#813: FILE: arch/c6x/include/asm/ptrace.h:223:
+ REG_PAIR(b9,b8);
^

ERROR: space required after that ',' (ctx:VxV)
#814: FILE: arch/c6x/include/asm/ptrace.h:224:
+ REG_PAIR(b11,b10);
^

ERROR: space required after that ',' (ctx:VxV)
#815: FILE: arch/c6x/include/asm/ptrace.h:225:
+ REG_PAIR(b13,b12);
^

ERROR: space required after that ',' (ctx:VxV)
#818: FILE: arch/c6x/include/asm/ptrace.h:228:
+ REG_PAIR(a17,a16);
^

ERROR: space required after that ',' (ctx:VxV)
#819: FILE: arch/c6x/include/asm/ptrace.h:229:
+ REG_PAIR(a19,a18);
^

ERROR: space required after that ',' (ctx:VxV)
#820: FILE: arch/c6x/include/asm/ptrace.h:230:
+ REG_PAIR(a21,a20);
^

ERROR: space required after that ',' (ctx:VxV)
#821: FILE: arch/c6x/include/asm/ptrace.h:231:
+ REG_PAIR(a23,a22);
^

ERROR: space required after that ',' (ctx:VxV)
#822: FILE: arch/c6x/include/asm/ptrace.h:232:
+ REG_PAIR(a25,a24);
^

ERROR: space required after that ',' (ctx:VxV)
#823: FILE: arch/c6x/include/asm/ptrace.h:233:
+ REG_PAIR(a27,a26);
^

ERROR: space required after that ',' (ctx:VxV)
#824: FILE: arch/c6x/include/asm/ptrace.h:234:
+ REG_PAIR(a29,a28);
^

ERROR: space required after that ',' (ctx:VxV)
#825: FILE: arch/c6x/include/asm/ptrace.h:235:
+ REG_PAIR(a31,a30);
^

ERROR: space required after that ',' (ctx:VxV)
#828: FILE: arch/c6x/include/asm/ptrace.h:238:
+ REG_PAIR(a1,a0);
^

ERROR: space required after that ',' (ctx:VxV)
#829: FILE: arch/c6x/include/asm/ptrace.h:239:
+ REG_PAIR(a3,a2);
^

ERROR: space required after that ',' (ctx:VxV)
#830: FILE: arch/c6x/include/asm/ptrace.h:240:
+ REG_PAIR(a5,a4);
^

ERROR: space required after that ',' (ctx:VxV)
#831: FILE: arch/c6x/include/asm/ptrace.h:241:
+ REG_PAIR(a7,a6);
^

ERROR: space required after that ',' (ctx:VxV)
#832: FILE: arch/c6x/include/asm/ptrace.h:242:
+ REG_PAIR(a9,a8);
^

ERROR: space required after that ',' (ctx:VxV)
#833: FILE: arch/c6x/include/asm/ptrace.h:243:
+ REG_PAIR(a11,a10);
^

ERROR: space required after that ',' (ctx:VxV)
#834: FILE: arch/c6x/include/asm/ptrace.h:244:
+ REG_PAIR(a13,a12);
^

ERROR: space required after that ',' (ctx:VxV)
#836: FILE: arch/c6x/include/asm/ptrace.h:246:
+ REG_PAIR(a15,a14);
^

ERROR: space required after that ',' (ctx:VxV)
#837: FILE: arch/c6x/include/asm/ptrace.h:247:
+ REG_PAIR(sp,dp);
^

WARNING: line over 80 characters
#844: FILE: arch/c6x/include/asm/ptrace.h:254:
+#if defined(__TMS320C6XPLUS__) || defined(_TMS320C6400_PLUS) || defined(__TMS320C66X__)

ERROR: space required after that ',' (ctx:VxV)
#845: FILE: arch/c6x/include/asm/ptrace.h:255:
+ REG_PAIR(rilc,ilc);
^

ERROR: space required after that ',' (ctx:VxV)
#847: FILE: arch/c6x/include/asm/ptrace.h:257:
+ REG_PAIR(a11,a10);
^

ERROR: space required after that ',' (ctx:VxV)
#848: FILE: arch/c6x/include/asm/ptrace.h:258:
+ REG_PAIR(a13,a12);
^

ERROR: space required after that ',' (ctx:VxV)
#849: FILE: arch/c6x/include/asm/ptrace.h:259:
+ REG_PAIR(a15,a14);
^

ERROR: space required after that ',' (ctx:VxV)
#850: FILE: arch/c6x/include/asm/ptrace.h:260:
+ REG_PAIR(b11,b10);
^

ERROR: space required after that ',' (ctx:VxV)
#851: FILE: arch/c6x/include/asm/ptrace.h:261:
+ REG_PAIR(b13,b12);
^

WARNING: line over 80 characters
#872: FILE: arch/c6x/include/asm/ptrace.h:282:
+#define PTRACE_GETDSBT_EXEC 0 /* [addr] request the executable loadmap */

WARNING: line over 80 characters
#873: FILE: arch/c6x/include/asm/ptrace.h:283:
+#define PTRACE_GETDSBT_INTERP 1 /* [addr] request the interpreter loadmap */

WARNING: line over 80 characters
#877: FILE: arch/c6x/include/asm/ptrace.h:287:
+#define DEFAULT_CSR 0x0001 /* interrupt enable by default */

WARNING: line over 80 characters
#878: FILE: arch/c6x/include/asm/ptrace.h:288:
+ /* used in /include/asm/processor.h*/

ERROR: code indent should use tabs where possible
#878: FILE: arch/c6x/include/asm/ptrace.h:288:
+ /* used in /include/asm/processor.h*/$

WARNING: line over 80 characters
#882: FILE: arch/c6x/include/asm/ptrace.h:292:
+#define user_mode(regs) (((((regs)->sp) ^ current_ksp) >> PAGE_SHIFT) != 0)

ERROR: "foo * bar" should be "foo *bar"
#971: FILE: arch/c6x/include/asm/string.h:16:
+extern void * memcpy(void *to, const void *from, size_t n);

ERROR: "foo * bar" should be "foo *bar" #972: FILE: arch/c6x/include/asm/string.h:17:
+extern void * memset(void *s, int c, size_t count);

WARNING: do not add new typedefs
#991: FILE: arch/c6x/include/asm/types.h:4:
+typedef unsigned short umode_t;

WARNING: do not add new typedefs
#1035: FILE: arch/c6x/include/asm/types.h:48:
+typedef unsigned long phys_addr_t;

WARNING: do not add new typedefs
#1036: FILE: arch/c6x/include/asm/types.h:49:
+typedef unsigned long phys_size_t;

WARNING: do not add new typedefs
#1085: FILE: arch/c6x/include/asm/u-boot.h:39:
+typedef struct bd_info {

WARNING: externs should be avoided in .c files
#1244: FILE: arch/c6x/lib/board.c:71:
+extern int print_cpuinfo(void);

WARNING: externs should be avoided in .c files
#1271: FILE: arch/c6x/lib/board.c:98:
+extern ulong __bss_start;

WARNING: externs should be avoided in .c files
#1272: FILE: arch/c6x/lib/board.c:99:
+extern ulong __bss_end__;

ERROR: spaces required around that ':' (ctx:VxW)
#1290: FILE: arch/c6x/lib/board.c:117:
+ __asm__ __volatile__("": : :"memory");
^

ERROR: spaces required around that ':' (ctx:WxV)
#1290: FILE: arch/c6x/lib/board.c:117:
+ __asm__ __volatile__("": : :"memory");
^

WARNING: Whitespace before semicolon
#1366: FILE: arch/c6x/lib/board.c:193:
+ ;

WARNING: line over 80 characters
#1416: FILE: arch/c6x/lib/bootm.c:36:
+int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *images)

WARNING: space prohibited between function name and open parenthesis '(' #1419: FILE: arch/c6x/lib/bootm.c:39:
+ char *commandline = getenv ("bootargs");

WARNING: do not add new typedefs
#2361: FILE: arch/c6x/lib/divull.c:132:
+typedef union {

total: 197 errors, 76 warnings, 3033 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
scripts/cleanfile

NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE

/home/wd/Mail/U-Boot/19345 has style problems, please review.

If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 159 lines checked

NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE

ERROR: trailing whitespace
#153: FILE: arch/arm/cpu/arm926ejs/davinci/reset_c.c:17:
+^Istruct davinci_timer * const wdttimer = $

ERROR: space required before the open parenthesis '(' #166: FILE: arch/arm/cpu/arm926ejs/davinci/reset_c.c:30:
+ while(1);

ERROR: trailing statements should be on next line #166: FILE: arch/arm/cpu/arm926ejs/davinci/reset_c.c:30:
+ while(1);

total: 3 errors, 0 warnings, 63 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
scripts/cleanfile

NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE

/home/wd/Mail/U-Boot/19347 has style problems, please review.

If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
ERROR: space required before the open brace '{' #336: FILE: board/inmys/c6745-som/c6745-som.c:191:
+ for (j = 0; j < 15; j++){

WARNING: braces {} are not necessary for single statement blocks #336: FILE: board/inmys/c6745-som/c6745-som.c:191:
+ for (j = 0; j < 15; j++){
+ REG(DAVINCI_UART2_BASE + (j*4)) = 0;
+ }

WARNING: line over 80 characters
#596: FILE: include/configs/c6745-som-inmys.h:186:
+#define CONFIG_BOOTARGS "mem=32M console=ttyS2,115200n8 root=/dev/mtdblock/2 rw noinitrd ip=dhcp"

total: 1 errors, 2 warnings, 584 lines checked

NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE

/home/wd/Mail/U-Boot/19348 has style problems, please review.

If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 18 lines checked

NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE

Best regards,

Wolfgang Denk

Signature · 8 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I see that Microsoft's campaign  to  destroy  all  knowledge  of  any
operating   environment   but  its  own  environment-of-the-year  has
succeeded in creating a generation of users who don't understand  the
concept of a shell...
            -- L. Peter Deutsch in <[email protected]>
#5 lore raw

v2 cover Add support new arch: c6x

Dear Wolfgang Denk,

Quoted 9 lines · In message <[email protected]> you wrote:

Dear Dmitry Bondar,

Quoted 6 lines · In message <[email protected]> you wrote:

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.

Quoted 8 lines
Quoted 4 lines

---
Changes for v2:
- davinci SOC reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Please run your patches through checkpatch and fix the issues. Then try and resubmit:

( tools/checkpatch.pl out removed )

After rework, code in arch/c6x
tools/checkpatch.pl 0001-Add-support-new-arch-c6x.patch tell me:
"total: 0 errors, 39 warnings, 3065 lines checked"
can i try send patch to list, or if not, what i must do with typedefs of global_data, volatile in asm/io.h and __kernel... types in asm/posix_types.h (all other arch has same code)?

tools/checkpatch.pl out now:

$ tools/checkpatch.pl 0001-Add-support-new-arch-c6x.patch
WARNING: do not add new typedefs
#306: FILE: arch/c6x/include/asm/global_data.h:36:
+typedef	struct	global_data {

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #364: FILE: arch/c6x/include/asm/global_data.h:94:
+#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("B31")

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #394: FILE: arch/c6x/include/asm/io.h:14:
+#define readb(addr) (*(volatile unsigned char *) (addr))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #395: FILE: arch/c6x/include/asm/io.h:15:
+#define readw(addr) (*(volatile unsigned short *) (addr))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #396: FILE: arch/c6x/include/asm/io.h:16:
+#define readl(addr) (*(volatile unsigned int *) (addr))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt
#398: FILE: arch/c6x/include/asm/io.h:18:
+#define writeb(b, addr) ((*(volatile unsigned char *) (addr)) = (b))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt
#399: FILE: arch/c6x/include/asm/io.h:19:
+#define writew(b, addr) ((*(volatile unsigned short *) (addr)) = (b))

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt
#400: FILE: arch/c6x/include/asm/io.h:20:
+#define writel(b, addr) ((*(volatile unsigned int *) (addr)) = (b))

WARNING: do not add new typedefs
#463: FILE: arch/c6x/include/asm/posix_types.h:18:
+typedef unsigned int __kernel_dev_t;

WARNING: do not add new typedefs
#464: FILE: arch/c6x/include/asm/posix_types.h:19:
+typedef unsigned long __kernel_ino_t;

WARNING: do not add new typedefs
#465: FILE: arch/c6x/include/asm/posix_types.h:20:
+typedef unsigned long long __kernel_ino64_t;

WARNING: do not add new typedefs
#466: FILE: arch/c6x/include/asm/posix_types.h:21:
+typedef unsigned int __kernel_mode_t;

WARNING: do not add new typedefs
#467: FILE: arch/c6x/include/asm/posix_types.h:22:
+typedef unsigned int __kernel_nlink_t;

WARNING: do not add new typedefs
#468: FILE: arch/c6x/include/asm/posix_types.h:23:
+typedef long __kernel_off_t;

WARNING: do not add new typedefs
#469: FILE: arch/c6x/include/asm/posix_types.h:24:
+typedef long long __kernel_loff_t;

WARNING: do not add new typedefs
#470: FILE: arch/c6x/include/asm/posix_types.h:25:
+typedef int __kernel_pid_t;

WARNING: do not add new typedefs
#471: FILE: arch/c6x/include/asm/posix_types.h:26:
+typedef unsigned short __kernel_ipc_pid_t;

WARNING: do not add new typedefs
#472: FILE: arch/c6x/include/asm/posix_types.h:27:
+typedef unsigned int __kernel_uid_t;

WARNING: do not add new typedefs
#473: FILE: arch/c6x/include/asm/posix_types.h:28:
+typedef unsigned int __kernel_gid_t;

WARNING: do not add new typedefs
#474: FILE: arch/c6x/include/asm/posix_types.h:29:
+typedef unsigned int __kernel_size_t;

WARNING: do not add new typedefs
#475: FILE: arch/c6x/include/asm/posix_types.h:30:
+typedef int __kernel_ssize_t;

WARNING: do not add new typedefs
#476: FILE: arch/c6x/include/asm/posix_types.h:31:
+typedef int __kernel_ptrdiff_t;

WARNING: do not add new typedefs
#477: FILE: arch/c6x/include/asm/posix_types.h:32:
+typedef long __kernel_time_t;

WARNING: do not add new typedefs
#478: FILE: arch/c6x/include/asm/posix_types.h:33:
+typedef long __kernel_suseconds_t;

WARNING: do not add new typedefs
#479: FILE: arch/c6x/include/asm/posix_types.h:34:
+typedef long __kernel_clock_t;

WARNING: do not add new typedefs
#480: FILE: arch/c6x/include/asm/posix_types.h:35:
+typedef int __kernel_daddr_t;

WARNING: do not add new typedefs
#481: FILE: arch/c6x/include/asm/posix_types.h:36:
+typedef char *__kernel_caddr_t;

WARNING: do not add new typedefs
#482: FILE: arch/c6x/include/asm/posix_types.h:37:
+typedef unsigned short __kernel_uid16_t;

WARNING: do not add new typedefs
#483: FILE: arch/c6x/include/asm/posix_types.h:38:
+typedef unsigned short __kernel_gid16_t;

WARNING: do not add new typedefs
#484: FILE: arch/c6x/include/asm/posix_types.h:39:
+typedef unsigned int __kernel_uid32_t;

WARNING: do not add new typedefs
#485: FILE: arch/c6x/include/asm/posix_types.h:40:
+typedef unsigned int __kernel_gid32_t;

WARNING: do not add new typedefs
#487: FILE: arch/c6x/include/asm/posix_types.h:42:
+typedef unsigned short __kernel_old_uid_t;

WARNING: do not add new typedefs
#488: FILE: arch/c6x/include/asm/posix_types.h:43:
+typedef unsigned short __kernel_old_gid_t;

WARNING: do not add new typedefs
#491: FILE: arch/c6x/include/asm/posix_types.h:46:
+typedef struct {

WARNING: do not add new typedefs
#942: FILE: arch/c6x/include/asm/types.h:4:
+typedef unsigned short umode_t;

WARNING: do not add new typedefs
#986: FILE: arch/c6x/include/asm/types.h:48:
+typedef unsigned long phys_addr_t;

WARNING: do not add new typedefs
#987: FILE: arch/c6x/include/asm/types.h:49:
+typedef unsigned long phys_size_t;

WARNING: do not add new typedefs
#1056: FILE: arch/c6x/include/asm/u-boot.h:39:
+typedef struct bd_info {

WARNING: do not add new typedefs
#2328: FILE: arch/c6x/lib/divull.c:132:
+typedef union {

total: 0 errors, 39 warnings, 3065 lines checked

#6 lore raw

v2 cover Add support new arch: c6x

Dear bond at inmys.ru,

Quoted 4 lines · In message <[email protected]> you wrote:

After rework, code in arch/c6x
tools/checkpatch.pl 0001-Add-support-new-arch-c6x.patch tell me:
"total: 0 errors, 39 warnings, 3065 lines checked"

Thanks.

Quoted 3 lines

can i try send patch to list, or if not, what i must do with typedefs of global_data, volatile in asm/io.h and __kernel... types in asm/posix_types.h (all other arch has same code)?

If you really need to come up with your own versions of asm/io.h, asm/posix_types.h etc. the typedefs are probably OK.

Quoted 4 lines

WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt #394: FILE: arch/c6x/include/asm/io.h:14:
+#define readb(addr) (*(volatile unsigned char *) (addr))

This is indeed unacceptable code, as it does not contain any kind of memory barrier instructions. Please use proper I/O accessors, resp. define such.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Life would be so much easier if we could  just  look  at  the  source
code.                                                   -- Dave Olson
#7 lore raw

PATCH v2 1/4 Add support new arch: c6x

In reply to a message not in the archive

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs. This patch add basic support.
Many of code in arch/c6x/include/asm come from c6x-linux project (http://linux-c6x.org)

Cc Tom Rini <[email protected]>
---
 arch/c6x/config.mk                 |    1 +
 arch/c6x/include/asm/bitops.h      |   88 ++++++++
 arch/c6x/include/asm/byteorder.h   |    1 +
 arch/c6x/include/asm/cache.h       |   29 +++
 arch/c6x/include/asm/config.h      |    3 +
 arch/c6x/include/asm/errno.h       |    1 +
 arch/c6x/include/asm/global_data.h |   88 ++++++++
 arch/c6x/include/asm/gpio.h        |    2 +
 arch/c6x/include/asm/io.h          |   53 +++++
 arch/c6x/include/asm/posix_types.h |   72 +++++++
 arch/c6x/include/asm/processor.h   |    4 +
 arch/c6x/include/asm/ptrace.h      |  302 ++++++++++++++++++++++++++
 arch/c6x/include/asm/sizes.h       |   51 +++++
 arch/c6x/include/asm/string.h      |   26 +++
 arch/c6x/include/asm/types.h       |   53 +++++
 arch/c6x/include/asm/u-boot.h      |   57 +++++
 arch/c6x/include/asm/unaligned.h   |    1 +
 arch/c6x/lib/Makefile              |   51 +++++
 arch/c6x/lib/board.c               |  201 ++++++++++++++++++
 arch/c6x/lib/bootm.c               |   59 +++++
 arch/c6x/lib/csum_64plus.S         |  408 ++++++++++++++++++++++++++++++++++++
 arch/c6x/lib/delay.S               |   39 ++++
 arch/c6x/lib/divi.S                |   54 +++++
 arch/c6x/lib/divremi.S             |   61 ++++++
 arch/c6x/lib/divremu.S             |   86 ++++++++
 arch/c6x/lib/divu.S                |  100 +++++++++
 arch/c6x/lib/divull.c              |  336 +++++++++++++++++++++++++++++
 arch/c6x/lib/llshl.S               |   36 ++++
 arch/c6x/lib/llshr.S               |   36 ++++
 arch/c6x/lib/llshru.S              |   36 ++++
 arch/c6x/lib/memcmp.c              |   24 ++
 arch/c6x/lib/memcpy_64plus.S       |   45 ++++
 arch/c6x/lib/memmove.c             |   30 +++
 arch/c6x/lib/memset.c              |   20 ++
 arch/c6x/lib/mpyll.S               |   47 ++++
 arch/c6x/lib/negll.S               |   29 +++
 arch/c6x/lib/pop_rts.S             |   30 +++
 arch/c6x/lib/push_rts.S            |   28 +++
 arch/c6x/lib/remi.S                |   78 +++++++
 arch/c6x/lib/remu.S                |   81 +++++++
 arch/c6x/lib/strasgi.S             |   88 ++++++++
 arch/c6x/lib/strasgi_64plus.S      |   37 ++++
 arch/c6x/lib/unaligned.S           |  117 ++++++++++
 common/cmd_bdinfo.c                |    5 +
 common/image.c                     |    4 +
 examples/standalone/stubs.c        |   15 ++
 46 files changed, 3013 insertions(+), 0 deletions(-)
 create mode 100644 arch/c6x/config.mk
 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/config.h
 create mode 100644 arch/c6x/include/asm/errno.h
 create mode 100644 arch/c6x/include/asm/global_data.h
 create mode 100644 arch/c6x/include/asm/gpio.h
 create mode 100644 arch/c6x/include/asm/io.h
 create mode 100644 arch/c6x/include/asm/posix_types.h
 create mode 100644 arch/c6x/include/asm/processor.h
 create mode 100644 arch/c6x/include/asm/ptrace.h
 create mode 100644 arch/c6x/include/asm/sizes.h
 create mode 100644 arch/c6x/include/asm/string.h
 create mode 100644 arch/c6x/include/asm/types.h
 create mode 100644 arch/c6x/include/asm/u-boot.h
 create mode 100644 arch/c6x/include/asm/unaligned.h
 create mode 100644 arch/c6x/lib/Makefile
 create mode 100644 arch/c6x/lib/board.c
 create mode 100644 arch/c6x/lib/bootm.c
 create mode 100644 arch/c6x/lib/csum_64plus.S
 create mode 100644 arch/c6x/lib/delay.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/divull.c
 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/memcmp.c
 create mode 100644 arch/c6x/lib/memcpy_64plus.S
 create mode 100644 arch/c6x/lib/memmove.c
 create mode 100644 arch/c6x/lib/memset.c
 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/lib/unaligned.S
arch/c6x/config.mk new file +1 -0
new file mode 100644
index 0000000..9cbddbc
@@ -0,0 +1 @@
+CROSS_COMPILE ?= c6x-uclinux-
arch/c6x/include/asm/bitops.h new file +88 -0

88 lines not on this page · raw message

arch/c6x/include/asm/byteorder.h new file +1 -0
new file mode 100644
index 0000000..9558416
@@ -0,0 +1 @@
+#include <linux/byteorder/little_endian.h>
arch/c6x/include/asm/cache.h new file +29 -0
new file mode 100644
index 0000000..75b2043
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2011, Stefan Kristiansson <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __ASM_C6X_CACHE_H_
+#define __ASM_C6X_CACHE_H_
+
+#ifdef CONFIG_SYS_CACHELINE_SIZE
+#define ARCH_DMA_MINALIGN       CONFIG_SYS_CACHELINE_SIZE
+#else
+#define ARCH_DMA_MINALIGN       128
+#endif
+
+#endif /* __ASM_C6X_CACHE_H_ */
arch/c6x/include/asm/config.h new file +3 -0
new file mode 100644
index 0000000..db59e8a
@@ -0,0 +1,3 @@
+#ifndef _ASM_CONFIG_H_
+#define _ASM_CONFIG_H_
+#endif
arch/c6x/include/asm/errno.h new file +1 -0
new file mode 100644
index 0000000..4c82b50
@@ -0,0 +1 @@
+#include <asm-generic/errno.h>
arch/c6x/include/asm/global_data.h new file +88 -0

88 lines not on this page · raw message

arch/c6x/include/asm/gpio.h new file +2 -0
new file mode 100644
index 0000000..d49ad08
@@ -0,0 +1,2 @@
+#include <asm/arch/gpio.h>
+#include <asm-generic/gpio.h>
arch/c6x/include/asm/io.h new file +53 -0

53 lines not on this page · raw message

arch/c6x/include/asm/posix_types.h new file +72 -0

72 lines not on this page · raw message

arch/c6x/include/asm/processor.h new file +4 -0
new file mode 100644
index 0000000..ec98171
@@ -0,0 +1,4 @@
+#ifndef __ASM_C6X_PROCESSOR_H
+#define __ASM_C6X_PROCESSOR_H
+
+#endif
arch/c6x/include/asm/ptrace.h new file +302 -0

302 lines not on this page · raw message

arch/c6x/include/asm/sizes.h new file +51 -0

51 lines not on this page · raw message

arch/c6x/include/asm/string.h new file +26 -0
new file mode 100644
index 0000000..e9fa53a
@@ -0,0 +1,26 @@
+/*
+ *  linux/include/asm-c6x/string.h
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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_C6X_STRING_H
+#define __ASM_C6X_STRING_H
+
+extern void * memcpy(void *to, const void *from, size_t n);
+extern void * memset(void *s, int c, size_t count);
+extern int memcmp(const void *cs, const void *ct, size_t count);
+extern void *memmove(void *s1, const void *s2, size_t n);
+
+#define __HAVE_ARCH_MEMCPY
+#define __HAVE_ARCH_MEMMOVE
+#define __HAVE_ARCH_MEMSET
+#define __HAVE_ARCH_MEMCMP
+
+#endif /* __ASM_C6X_STRING_H */
arch/c6x/include/asm/types.h new file +53 -0

53 lines not on this page · raw message

arch/c6x/include/asm/u-boot.h new file +57 -0

57 lines not on this page · raw message

arch/c6x/include/asm/unaligned.h new file +1 -0
new file mode 100644
index 0000000..6cecbbb
@@ -0,0 +1 @@
+#include <asm-generic/unaligned.h>
arch/c6x/lib/Makefile new file +51 -0

51 lines not on this page · raw message

arch/c6x/lib/board.c new file +201 -0

201 lines not on this page · raw message

arch/c6x/lib/bootm.c new file +59 -0

59 lines not on this page · raw message

arch/c6x/lib/csum_64plus.S new file +408 -0

408 lines not on this page · raw message

arch/c6x/lib/delay.S new file +39 -0
new file mode 100644
index 0000000..44f2a7f
@@ -0,0 +1,39 @@
+;
+;  linux/arch/c6x/lib/delay.s
+;
+;  Port on Texas Instruments TMS320C6x architecture
+;
+;  Copyright (C) 2004, 2009, 2010 Texas Instruments Incorporated
+;  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+;
+;  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.
+;
+	.sect	".text"
+	.global	_c6x_delay
+
+_c6x_delay:
+	bdec	.s1	_c6x_delay,A4
+	nop	5
+	b	.s2	B3
+	nop	5
+
+#ifdef CONFIG_TI_C6X_COMPILER
+	;; this is inlined with gcc
+
+	.global	_c6x_tickdelay
+_c6x_tickdelay:
+	mvc	.s2	TSCL,B1
+	add	.s2x	B1,A4,B1
+ ||	mvk	.l2	1,B0
+$0:
+ [B0]	b	.s2	$0
+	mvc	.s2	TSCL,B0
+	sub	.s2	B0,B1,B0
+	cmpgt	.l2	0,B0,B0
+	nop
+	nop
+	b	.s2	B3
+	nop	5
+#endif
arch/c6x/lib/divi.S new file +54 -0

54 lines not on this page · raw message

arch/c6x/lib/divremi.S new file +61 -0

61 lines not on this page · raw message

arch/c6x/lib/divremu.S new file +86 -0

86 lines not on this page · raw message

arch/c6x/lib/divu.S new file +100 -0

100 lines not on this page · raw message

arch/c6x/lib/divull.c new file +336 -0

336 lines not on this page · raw message

arch/c6x/lib/llshl.S new file +36 -0
new file mode 100644
index 0000000..99b739e
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshl(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshl
+__c6xabi_llshl:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; just return if zero shift
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]	 shru	.s1	A4,A0,A0
+   [!A2] neg	.l1	A0,A5
+|| [A2]  shl	.s1	A5,A1,A5
+   [!A2] shl	.s1	A4,A5,A5
+|| [A2]  or	.d1	A5,A0,A5
+|| [!A2] mvk	.l1	0,A4
+   [A2]	 shl	.s1	A4,A1,A4
+	 bnop	.s2	B3,5
+
arch/c6x/lib/llshr.S new file +36 -0
new file mode 100644
index 0000000..989feed
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshr(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshr
+__c6xabi_llshr:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; return if zero shift count
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]  shl	.s1	A5,A0,A0
+	 nop
+   [!A2] neg	.l1	A0,A4
+|| [A2]  shru	.s1	A4,A1,A4
+   [!A2] shr	.s1	A5,A4,A4
+|| [A2]  or	.d1	A4,A0,A4
+   [!A2] shr	.s1	A5,0x1f,A5
+   [A2]  shr	.s1	A5,A1,A5
+	 bnop	.s2	B3,5
arch/c6x/lib/llshru.S new file +36 -0
new file mode 100644
index 0000000..07a4631
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshru(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshru
+__c6xabi_llshru:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; return if zero shift count
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]  shl	.s1	A5,A0,A0
+	 nop
+   [!A2] neg	.l1	A0,A4
+|| [A2]  shru	.s1	A4,A1,A4
+   [!A2] shru	.s1	A5,A4,A4
+|| [A2]  or	.d1	A4,A0,A4
+|| [!A2] mvk	.l1	0,A5
+   [A2]  shru	.s1	A5,A1,A5
+	 bnop	.s2	B3,5
arch/c6x/lib/memcmp.c new file +24 -0
new file mode 100644
index 0000000..e3a98bc
@@ -0,0 +1,24 @@
+/*
+ *  linux/arch/c6x/lib/memcmp.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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/types.h>
+
+int memcmp(const void *cs, const void *ct, size_t count)
+{
+	const unsigned char *su1, *su2;
+
+	for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
+		if (*su1 != *su2)
+			return (*su1 < *su2) ? -1 : 1;
+	return 0;
+}
+
arch/c6x/lib/memcpy_64plus.S new file +45 -0

45 lines not on this page · raw message

arch/c6x/lib/memmove.c new file +30 -0
new file mode 100644
index 0000000..5672937
@@ -0,0 +1,30 @@
+/*
+ *  linux/arch/c6x/lib/memmove.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2005, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot ([email protected])
+ *
+ *  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/types.h>
+#include <linux/string.h>
+
+void *memmove(void *s1, const void *s2, size_t n)
+{
+	register char *s = (char *) s1;
+	register const char *p = (const char *) s2;
+
+	if (p >= s) {
+		return memcpy(s, p, n);
+	} else {
+		while (n) {
+			--n;
+			s[n] = p[n];
+		}
+	}
+	return s1;
+}
arch/c6x/lib/memset.c new file +20 -0
new file mode 100644
index 0000000..da4275b
@@ -0,0 +1,20 @@
+/*
+ *  linux/arch/c6x/lib/memcmp.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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/types.h>
+void *memset(void *mem, register int ch, register size_t length)
+{
+	register char *m = (char *)mem - 1;
+	while (length--)
+		*++m = ch;
+	return mem;
+}
arch/c6x/lib/mpyll.S new file +47 -0

47 lines not on this page · raw message

arch/c6x/lib/negll.S new file +29 -0
new file mode 100644
index 0000000..7747521
@@ -0,0 +1,29 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  int64_t __c6xabi_negll(int64_t val)
+
+	.text
+	.global __c6xabi_negll
+__c6xabi_negll:
+	b	.s2	B3
+	mvk	.l1	0,A0
+	subu	.l1	A0,A4,A3:A2
+	sub	.l1	A0,A5,A0
+||	ext	.s1	A3,24,24,A5
+	add	.l1	A5,A0,A5
+	mv	.s1	A2,A4
arch/c6x/lib/pop_rts.S new file +30 -0
new file mode 100644
index 0000000..e1847fb
@@ -0,0 +1,30 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_pop_rts
+
+__c6xabi_pop_rts:
+	lddw	.d2t2	*++B15, B3:B2
+	lddw	.d2t1	*++B15, A11:A10
+	lddw	.d2t2	*++B15, B11:B10
+	lddw	.d2t1	*++B15, A13:A12
+	lddw	.d2t2	*++B15, B13:B12
+	lddw	.d2t1	*++B15, A15:A14
+||	b	.s2	B3
+	ldw	.d2t2	*++B15[2], B14
+	nop	4
arch/c6x/lib/push_rts.S new file +28 -0
new file mode 100644
index 0000000..637d56a
@@ -0,0 +1,28 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_push_rts
+__c6xabi_push_rts:
+	stw	.d2t2	B14, *B15--[2]
+	stdw	.d2t1	A15:A14, *B15--
+||	b	.s2x	A3
+	stdw	.d2t2	B13:B12, *B15--
+	stdw	.d2t1	A13:A12, *B15--
+	stdw	.d2t2	B11:B10, *B15--
+	stdw	.d2t1	A11:A10, *B15--
+	stdw	.d2t2	B3:B2, *B15--
arch/c6x/lib/remi.S new file +78 -0

78 lines not on this page · raw message

arch/c6x/lib/remu.S new file +81 -0

81 lines not on this page · raw message

arch/c6x/lib/strasgi.S new file +88 -0

88 lines not on this page · raw message

arch/c6x/lib/strasgi_64plus.S new file +37 -0
new file mode 100644
index 0000000..cbeab22
@@ -0,0 +1,37 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_strasgi_64plus
+
+__c6xabi_strasgi_64plus:
+	shru	.s2x	a6, 2, b31
+||	mv	.s1	a4, a30
+||	mv	.d2	b4, b30
+
+	add	.s2	-4, b31, b31
+
+	sploopd		1
+||	mvc	.s2	b31, ilc
+	ldw	.d2t2	*b30++, b31
+	nop	4
+	mv	.s1x	b31,a31
+	spkernel	6, 0
+||	stw	.d1t1	a31, *a30++
+
+	ret	.s2	b3
+	nop 5
arch/c6x/lib/unaligned.S new file +117 -0

117 lines not on this page · raw message

common/cmd_bdinfo.c +5 -0
index 42f08fd..faf534b 100644
@@ -513,6 +513,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	return 0;
 }
+#elif defined(CONFIG_C6X)
+int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	return 0;
+}
 
 #else
  #error "a case for this architecture does not exist!"
common/image.c +4 -0
index 91954ac..0fff687 100644

Lines of this file are not shown. View the raw message.

examples/standalone/stubs.c +15 -0
index 15e9afc..c9e0819 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.2.5

Part of the diff is not shown here. View the raw message.

#8 lore raw

PATCH v2 2/4 c6x: Add support c674x CPUs

In reply to a message not in the archive

C6X has subfamilys: C62x C64x C66x C67x C645x C674x. This patch add support of subfamily C674x (C6745/C6746/C6747 CPUs).

---
 arch/c6x/cpu/c674x/Makefile  |   30 ++++++++++++++++
 arch/c6x/cpu/c674x/cache.c   |   17 +++++++++
 arch/c6x/cpu/c674x/config.mk |   14 ++++++++
 arch/c6x/cpu/c674x/start.S   |   22 ++++++++++++
 arch/c6x/cpu/u-boot.lds      |   76 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 159 insertions(+), 0 deletions(-)
 create mode 100644 arch/c6x/cpu/c674x/Makefile
 create mode 100644 arch/c6x/cpu/c674x/cache.c
 create mode 100644 arch/c6x/cpu/c674x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/start.S
 create mode 100644 arch/c6x/cpu/u-boot.lds
arch/c6x/cpu/c674x/Makefile new file +30 -0
new file mode 100644
index 0000000..bfe0db6
@@ -0,0 +1,30 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(CPU).o
+
+START	= start.o
+COBJS	= cache.o
+
+SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+START	:= $(addprefix $(obj),$(START))
+
+all:	$(obj).depend $(START) $(LIB)
+
+$(LIB):	$(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
arch/c6x/cpu/c674x/cache.c new file +17 -0
new file mode 100644
index 0000000..e2d6866
@@ -0,0 +1,17 @@
+/* (C) Copyright 2012  Dmitry Bondar <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+void flush_cache(unsigned long addr, unsigned long len)
+{
+}
+
+void flush_dcache_range(unsigned long start, unsigned long stop)
+{
+}
+
+void invalidate_dcache_range(unsigned long start, unsigned long stop)
+{
+}
arch/c6x/cpu/c674x/config.mk new file +14 -0
new file mode 100644
index 0000000..8ee1325
@@ -0,0 +1,14 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+PLATFORM_RELFLAGS += -fno-common -ffixed-B31
+
+PLATFORM_CPPFLAGS += -march=c674x -msdata=none -mno-dsbt -DCONFIG_TMS320C64XPLUS
+# =========================================================================
+#
+# Supply options according to compiler version
+#
+# =========================================================================
+PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
arch/c6x/cpu/c674x/start.S new file +22 -0
new file mode 100644
index 0000000..c144978
@@ -0,0 +1,22 @@
+; (C) Copyright 2012  Dmitry Bondar <[email protected]>
+;
+; This file is released under the terms of GPL v2 and any later version.
+; See the file COPYING in the root directory of the source tree for details.
+
+#include <config.h>
+#include <asm-offsets.h>
+
+        .global _start
+_start:
+	;; Jump to u-boot
+	MVKL    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKH    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKL    .S1     board_init_f,A0
+	MVKH    .S1     board_init_f,A0
+	B       .S2X    A0
+	MVKL    .S2     L1,B3
+	MVKH    .S2     L1,B3
+	NOP     3
+L1:	B       .S2     B3
+	NOP     5
+
arch/c6x/cpu/u-boot.lds new file +76 -0

76 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#9 lore raw

PATCH v2 3/4 c6x: Add suport build davinci SOC with c674x CPUs

In reply to a message not in the archive

C674x CPUs has same peripherals(uart,emac,nand contoller) like sitara processors (am1705/am1707/omapl137/omapl138). In u-boot this peripheral known as davinci SOC, and placed in arch/arm/cpu/arm926ejs/davinci This patch allow compile davinci SOC code whith c674x CPU.

Reset code rewritten in C for compile not only for arm.

---
Changes for v2:
- reset_c.c rewritten with readl/writel.

---
 Makefile                                 |    1 +
 arch/arm/cpu/arm926ejs/davinci/Makefile  |    5 ++++
 arch/arm/cpu/arm926ejs/davinci/reset_c.c |   31 ++++++++++++++++++++++++++++++
 mkconfig                                 |    7 +++++-
 4 files changed, 43 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/davinci/reset_c.c
Makefile +1 -0
index 0197239..33e12cf 100644
@@ -779,6 +779,7 @@ clobber:	tidy
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
 	@rm -f $(obj)arch/powerpc/cpu/mpc83xx/ddr-gen?.c
 	@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
+	@rm -f ${obj}arch/c6x/cpu/c674x/davinci
 	@rm -fr $(obj)include/generated
 	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
 	@[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
arch/arm/cpu/arm926ejs/davinci/Makefile +5 -0
index da7efac..54f096d 100644
@@ -42,7 +42,12 @@ COBJS-$(CONFIG_SOC_DM365)	+= dm365_lowlevel.o
 COBJS-$(CONFIG_SOC_DA8XX)	+= da850_lowlevel.o
 endif
 
+
+ifeq ($(CPU),c674x)
+COBJS-y	+= reset_c.o
+else
 SOBJS	= reset.o
+endif
 
 ifndef CONFIG_SKIP_LOWLEVEL_INIT
 SOBJS	+= lowlevel_init.o
arch/arm/cpu/arm926ejs/davinci/reset_c.c new file +31 -0
new file mode 100644
index 0000000..c1340e3
@@ -0,0 +1,31 @@
+/*
+ *  Processor reset using WDT.
+ *
+ * Copyright (C) 2012 Dmitry Bondar <[email protected]>
+ * Copyright (C) 2007 Sergey Kubushyn <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/timer_defs.h>
+
+void reset_cpu(unsigned long a)
+{
+	struct davinci_timer * const wdttimer = 
+		(struct davinci_timer *)DAVINCI_TIMER1_BASE;
+	writel(0x08, &wdttimer->tgcr);
+	writel(readl(&wdttimer->tgcr) | 0x03, &wdttimer->tgcr);
+	writel(0, &wdttimer->tim12);
+	writel(0, &wdttimer->tim34);
+	writel(0, &wdttimer->prd12);
+	writel(0, &wdttimer->prd34);
+	writel(readl(&wdttimer->tcr) | 0x40, &wdttimer->tcr);
+	writel(readl(&wdttimer->wdtcr) | 0x4000, &wdttimer->wdtcr);
+	writel(0xa5c64000, &wdttimer->wdtcr);
+	writel(0xda7e4000, &wdttimer->wdtcr);
+	writel(0x4000, &wdttimer->wdtcr);
+	while(1);
+}
mkconfig +6 -1
index daa1810..c80625e 100755
@@ -119,7 +119,12 @@ rm -f asm/arch
 if [ -z "${soc}" ] ; then
 	ln -s ${LNPREFIX}arch-${cpu} asm/arch
 else
-	ln -s ${LNPREFIX}arch-${soc} asm/arch
+	if [ "${arch}" == "c6x" -a "$soc" == "davinci" ]; then
+		ln -s ${SRCTREE}/arch/arm/include/asm/arch-davinci asm/arch
+		ln -s ${SRCTREE}/arch/arm/cpu/arm926ejs/davinci ${SRCTREE}/arch/c6x/cpu/c674x/davinci
+	else
+		ln -s ${LNPREFIX}arch-${soc} asm/arch
+	fi
 fi
 
 if [ "${arch}" = "arm" ] ; then
Signature · 1 line
1.7.2.5
#10 lore raw

PATCH v2 4/4 c6x: Add support c6745-som board

In reply to a message not in the archive

Add support board c6745-som (http://inmys.ru/?_=/products/som_c6745) with C6745 cpu.

---
 MAINTAINERS                       |    3 +
 board/inmys/c6745-som/Makefile    |   27 ++++
 board/inmys/c6745-som/c6745-som.c |  247 +++++++++++++++++++++++++++++++
 boards.cfg                        |    1 +
 include/configs/c6745-som-inmys.h |  294 +++++++++++++++++++++++++++++++++++++
 5 files changed, 572 insertions(+), 0 deletions(-)
 create mode 100644 board/inmys/c6745-som/Makefile
 create mode 100644 board/inmys/c6745-som/c6745-som.c
 create mode 100644 include/configs/c6745-som-inmys.h
MAINTAINERS +3 -0
index e55893b..710f3df 100644
@@ -62,6 +62,9 @@ Jerry Van Baren <[email protected]>
 
 	sacsng		MPC8260
 
+Dmitry Bondar <[email protected]>
+	c6745-som	c674x
+
 Oliver Brown <[email protected]>
 
 	gw8260		MPC8260
board/inmys/c6745-som/Makefile new file +27 -0
new file mode 100644
index 0000000..9a91ed2
@@ -0,0 +1,27 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS-$(CONFIG_MACH_INMYS_C6745_SOM)	+= c6745-som.o
+
+COBJS   := $(COBJS-y)
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(call cmd_link_o_target, $(OBJS) $(SOBJS))
+
+#########################################################################
+# This is for $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
board/inmys/c6745-som/c6745-som.c new file +247 -0

247 lines not on this page · raw message

boards.cfg +1 -0
index a723f67..7acbfd1 100644
@@ -302,6 +302,7 @@ ip04                         blackfin    blackfin
 pr1                          blackfin    blackfin
 tcm-bf518                    blackfin    blackfin
 tcm-bf537                    blackfin    blackfin
+c6745-som-inmys              c6x         c674x       c6745-som           inmys          davinci     c6745-som-inmys
 M52277EVB                    m68k        mcf5227x    m52277evb           freescale      -           M52277EVB:SYS_SPANSION_BOOT,SYS_TEXT_BASE=0x00000000
 M52277EVB_stmicro            m68k        mcf5227x    m52277evb           freescale      -           M52277EVB:CF_SBF,SYS_STMICRO_BOOT,SYS_TEXT_BASE=0x43E00000
 M5235EVB                     m68k        mcf523x     m5235evb            freescale      -           M5235EVB:SYS_TEXT_BASE=0xFFE00000
include/configs/c6745-som-inmys.h new file +294 -0

294 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#11 lore raw

v3 cover Add support new arch: c6x

In reply to a message not in the archive

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
---
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Changes for v3:
- fix coding style
- arch/c6x/include/asm/io.h - add memory barriers on readl/writel ()

Dmitry Bondar (4):
Add support new arch: c6x
c6x: Add support c674x CPUs
c6x: Add suport build davinci SOC with c674x CPUs
c6x: Add support c6745-som board

 MAINTAINERS                              |    3 +
 Makefile                                 |    1 +
 arch/arm/cpu/arm926ejs/davinci/Makefile  |    5 +
 arch/arm/cpu/arm926ejs/davinci/reset_c.c |   32 +++
 arch/c6x/config.mk                       |    1 +
 arch/c6x/cpu/c674x/Makefile              |   30 +++
 arch/c6x/cpu/c674x/cache.c               |   17 ++
 arch/c6x/cpu/c674x/config.mk             |   14 +
 arch/c6x/cpu/c674x/start.S               |   22 ++
 arch/c6x/cpu/u-boot.lds                  |   76 ++++++
 arch/c6x/include/asm/bitops.h            |   88 +++++++
 arch/c6x/include/asm/byteorder.h         |    1 +
 arch/c6x/include/asm/cache.h             |   29 ++
 arch/c6x/include/asm/config.h            |    3 +
 arch/c6x/include/asm/errno.h             |    1 +
 arch/c6x/include/asm/global_data.h       |   96 +++++++
 arch/c6x/include/asm/gpio.h              |    2 +
 arch/c6x/include/asm/io.h                |   68 +++++
 arch/c6x/include/asm/posix_types.h       |   72 ++++++
 arch/c6x/include/asm/processor.h         |    4 +
 arch/c6x/include/asm/ptrace.h            |  310 +++++++++++++++++++++++
 arch/c6x/include/asm/sizes.h             |   51 ++++
 arch/c6x/include/asm/string.h            |   26 ++
 arch/c6x/include/asm/types.h             |   53 ++++
 arch/c6x/include/asm/u-boot-c6x.h        |   14 +
 arch/c6x/include/asm/u-boot.h            |   57 ++++
 arch/c6x/include/asm/unaligned.h         |    1 +
 arch/c6x/lib/Makefile                    |   51 ++++
 arch/c6x/lib/board.c                     |  196 ++++++++++++++
 arch/c6x/lib/bootm.c                     |   60 +++++
 arch/c6x/lib/csum_64plus.S               |  408 ++++++++++++++++++++++++++++++
 arch/c6x/lib/delay.S                     |   39 +++
 arch/c6x/lib/divi.S                      |   54 ++++
 arch/c6x/lib/divremi.S                   |   61 +++++
 arch/c6x/lib/divremu.S                   |   86 +++++++
 arch/c6x/lib/divu.S                      |  100 ++++++++
 arch/c6x/lib/divull.c                    |  336 ++++++++++++++++++++++++
 arch/c6x/lib/llshl.S                     |   36 +++
 arch/c6x/lib/llshr.S                     |   36 +++
 arch/c6x/lib/llshru.S                    |   36 +++
 arch/c6x/lib/memcmp.c                    |   24 ++
 arch/c6x/lib/memcpy_64plus.S             |   45 ++++
 arch/c6x/lib/memmove.c                   |   30 +++
 arch/c6x/lib/memset.c                    |   20 ++
 arch/c6x/lib/mpyll.S                     |   47 ++++
 arch/c6x/lib/negll.S                     |   29 ++
 arch/c6x/lib/pop_rts.S                   |   30 +++
 arch/c6x/lib/push_rts.S                  |   28 ++
 arch/c6x/lib/remi.S                      |   78 ++++++
 arch/c6x/lib/remu.S                      |   81 ++++++
 arch/c6x/lib/strasgi.S                   |   88 +++++++
 arch/c6x/lib/strasgi_64plus.S            |   37 +++
 arch/c6x/lib/unaligned.S                 |  117 +++++++++
 board/inmys/c6745-som/Makefile           |   27 ++
 board/inmys/c6745-som/c6745-som.c        |  246 ++++++++++++++++++
 boards.cfg                               |    1 +
 common/cmd_bdinfo.c                      |    5 +
 common/image.c                           |    4 +
 examples/standalone/stubs.c              |   15 +
 include/configs/c6745-som-inmys.h        |  294 +++++++++++++++++++++
 mkconfig                                 |    7 +-
 61 files changed, 3828 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/davinci/reset_c.c
 create mode 100644 arch/c6x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/Makefile
 create mode 100644 arch/c6x/cpu/c674x/cache.c
 create mode 100644 arch/c6x/cpu/c674x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/start.S
 create mode 100644 arch/c6x/cpu/u-boot.lds
 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/config.h
 create mode 100644 arch/c6x/include/asm/errno.h
 create mode 100644 arch/c6x/include/asm/global_data.h
 create mode 100644 arch/c6x/include/asm/gpio.h
 create mode 100644 arch/c6x/include/asm/io.h
 create mode 100644 arch/c6x/include/asm/posix_types.h
 create mode 100644 arch/c6x/include/asm/processor.h
 create mode 100644 arch/c6x/include/asm/ptrace.h
 create mode 100644 arch/c6x/include/asm/sizes.h
 create mode 100644 arch/c6x/include/asm/string.h
 create mode 100644 arch/c6x/include/asm/types.h
 create mode 100644 arch/c6x/include/asm/u-boot-c6x.h
 create mode 100644 arch/c6x/include/asm/u-boot.h
 create mode 100644 arch/c6x/include/asm/unaligned.h
 create mode 100644 arch/c6x/lib/Makefile
 create mode 100644 arch/c6x/lib/board.c
 create mode 100644 arch/c6x/lib/bootm.c
 create mode 100644 arch/c6x/lib/csum_64plus.S
 create mode 100644 arch/c6x/lib/delay.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/divull.c
 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/memcmp.c
 create mode 100644 arch/c6x/lib/memcpy_64plus.S
 create mode 100644 arch/c6x/lib/memmove.c
 create mode 100644 arch/c6x/lib/memset.c
 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/lib/unaligned.S
 create mode 100644 board/inmys/c6745-som/Makefile
 create mode 100644 board/inmys/c6745-som/c6745-som.c
 create mode 100644 include/configs/c6745-som-inmys.h
Signature · 1 line
1.7.2.5
author
#12 lore raw

v3 cover Add support new arch: c6x

Quoted 11 lines · Dmitry Bondar

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
---
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Changes for v3:
- fix coding style
- arch/c6x/include/asm/io.h - add memory barriers on readl/writel ()

Quoted 5 lines

Dmitry Bondar (4):
Add support new arch: c6x
c6x: Add support c674x CPUs
c6x: Add suport build davinci SOC with c674x CPUs
c6x: Add support c6745-som board

I found a good toolchain and gave building the series a whirl, and here's a few things that need fixing:
- The davinci symlink isn't safe, running make again results in ln complaining.
- The symlink doesn't work in conjunction with separate object directories as it is in the main src tree.
- With O= we get arch/arm/cpu/arm926ejs/davinci/libdavinci.o because of the above, which makes link fail.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120625/8fec4687/attachment.pgp>
#13 lore raw

v3 cover Add support new arch: c6x

Quoted 19 lines · Tom Rini
Quoted 11 lines · Dmitry Bondar

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
---
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Changes for v3:
- fix coding style
- arch/c6x/include/asm/io.h - add memory barriers on readl/writel ()

Quoted 5 lines

Dmitry Bondar (4):
Add support new arch: c6x
c6x: Add support c674x CPUs
c6x: Add suport build davinci SOC with c674x CPUs
c6x: Add support c6745-som board

Quoted 8 lines

I found a good toolchain and gave building the series a whirl, and here's a few things that need fixing:
- The davinci symlink isn't safe, running make again results in ln complaining.
- The symlink doesn't work in conjunction with separate object directories as it is in the main src tree.
- With O= we get arch/arm/cpu/arm926ejs/davinci/libdavinci.o because of the above, which makes link fail.

May be i must copy pinmux.c,reset.c,timer.c,cpu.c from arch/arm/arm926ejs/davinci to arch/c6x/c674x/c674x, remove from them all not used ifdef (#ifdef CONFIG_SOC_DM355) and don't set in boards.cfg SOC for board?
This allow don't use symlink.

author
#14 lore raw

v3 cover Add support new arch: c6x

Quoted 29 lines · Dmitry Bondar
Quoted 19 lines · Tom Rini
Quoted 11 lines · Dmitry Bondar

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
---
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini <[email protected]> added to cc

Changes for v3:
- fix coding style
- arch/c6x/include/asm/io.h - add memory barriers on readl/writel ()

Quoted 5 lines

Dmitry Bondar (4):
Add support new arch: c6x
c6x: Add support c674x CPUs
c6x: Add suport build davinci SOC with c674x CPUs
c6x: Add support c6745-som board

Quoted 8 lines

I found a good toolchain and gave building the series a whirl, and here's a few things that need fixing:
- The davinci symlink isn't safe, running make again results in ln complaining.
- The symlink doesn't work in conjunction with separate object directories as it is in the main src tree.
- With O= we get arch/arm/cpu/arm926ejs/davinci/libdavinci.o because of the above, which makes link fail.

Quoted 5 lines

May be i must copy pinmux.c,reset.c,timer.c,cpu.c from arch/arm/arm926ejs/davinci to arch/c6x/c674x/c674x, remove from them all not used ifdef (#ifdef CONFIG_SOC_DM355) and don't set in boards.cfg SOC for board?
This allow don't use symlink.

No, I think you just need to rework the mkconfig logic you're adding. It should be, roughly, outside of the ! -z ${soc} check:
If c6x and davinci
rm -f arch/c6x/cpu/c674x/davinci
rm -f asm/arch
if srctree != objtree
set symlinks one way
else
set symlinks another way
fi
fi

Then once that works, see if you can shrink the logic down to just set a prefix variable or two and always set the symlinks.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120628/29680a47/attachment.pgp>
#15 lore raw

PATCH v3 1/4 Add support new arch: c6x

In reply to a message not in the archive

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs. This patch add basic support.
Many of code in arch/c6x/include/asm come from c6x-linux project (http://linux-c6x.org)

---
 arch/c6x/config.mk                 |    1 +
 arch/c6x/include/asm/bitops.h      |   88 ++++++++
 arch/c6x/include/asm/byteorder.h   |    1 +
 arch/c6x/include/asm/cache.h       |   29 +++
 arch/c6x/include/asm/config.h      |    3 +
 arch/c6x/include/asm/errno.h       |    1 +
 arch/c6x/include/asm/global_data.h |   96 +++++++++
 arch/c6x/include/asm/gpio.h        |    2 +
 arch/c6x/include/asm/io.h          |   68 ++++++
 arch/c6x/include/asm/posix_types.h |   72 +++++++
 arch/c6x/include/asm/processor.h   |    4 +
 arch/c6x/include/asm/ptrace.h      |  310 +++++++++++++++++++++++++++
 arch/c6x/include/asm/sizes.h       |   51 +++++
 arch/c6x/include/asm/string.h      |   26 +++
 arch/c6x/include/asm/types.h       |   53 +++++
 arch/c6x/include/asm/u-boot-c6x.h  |   14 ++
 arch/c6x/include/asm/u-boot.h      |   57 +++++
 arch/c6x/include/asm/unaligned.h   |    1 +
 arch/c6x/lib/Makefile              |   51 +++++
 arch/c6x/lib/board.c               |  196 +++++++++++++++++
 arch/c6x/lib/bootm.c               |   60 ++++++
 arch/c6x/lib/csum_64plus.S         |  408 ++++++++++++++++++++++++++++++++++++
 arch/c6x/lib/delay.S               |   39 ++++
 arch/c6x/lib/divi.S                |   54 +++++
 arch/c6x/lib/divremi.S             |   61 ++++++
 arch/c6x/lib/divremu.S             |   86 ++++++++
 arch/c6x/lib/divu.S                |  100 +++++++++
 arch/c6x/lib/divull.c              |  336 +++++++++++++++++++++++++++++
 arch/c6x/lib/llshl.S               |   36 ++++
 arch/c6x/lib/llshr.S               |   36 ++++
 arch/c6x/lib/llshru.S              |   36 ++++
 arch/c6x/lib/memcmp.c              |   24 ++
 arch/c6x/lib/memcpy_64plus.S       |   45 ++++
 arch/c6x/lib/memmove.c             |   30 +++
 arch/c6x/lib/memset.c              |   20 ++
 arch/c6x/lib/mpyll.S               |   47 ++++
 arch/c6x/lib/negll.S               |   29 +++
 arch/c6x/lib/pop_rts.S             |   30 +++
 arch/c6x/lib/push_rts.S            |   28 +++
 arch/c6x/lib/remi.S                |   78 +++++++
 arch/c6x/lib/remu.S                |   81 +++++++
 arch/c6x/lib/strasgi.S             |   88 ++++++++
 arch/c6x/lib/strasgi_64plus.S      |   37 ++++
 arch/c6x/lib/unaligned.S           |  117 ++++++++++
 common/cmd_bdinfo.c                |    5 +
 common/image.c                     |    4 +
 examples/standalone/stubs.c        |   15 ++
 47 files changed, 3054 insertions(+), 0 deletions(-)
 create mode 100644 arch/c6x/config.mk
 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/config.h
 create mode 100644 arch/c6x/include/asm/errno.h
 create mode 100644 arch/c6x/include/asm/global_data.h
 create mode 100644 arch/c6x/include/asm/gpio.h
 create mode 100644 arch/c6x/include/asm/io.h
 create mode 100644 arch/c6x/include/asm/posix_types.h
 create mode 100644 arch/c6x/include/asm/processor.h
 create mode 100644 arch/c6x/include/asm/ptrace.h
 create mode 100644 arch/c6x/include/asm/sizes.h
 create mode 100644 arch/c6x/include/asm/string.h
 create mode 100644 arch/c6x/include/asm/types.h
 create mode 100644 arch/c6x/include/asm/u-boot-c6x.h
 create mode 100644 arch/c6x/include/asm/u-boot.h
 create mode 100644 arch/c6x/include/asm/unaligned.h
 create mode 100644 arch/c6x/lib/Makefile
 create mode 100644 arch/c6x/lib/board.c
 create mode 100644 arch/c6x/lib/bootm.c
 create mode 100644 arch/c6x/lib/csum_64plus.S
 create mode 100644 arch/c6x/lib/delay.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/divull.c
 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/memcmp.c
 create mode 100644 arch/c6x/lib/memcpy_64plus.S
 create mode 100644 arch/c6x/lib/memmove.c
 create mode 100644 arch/c6x/lib/memset.c
 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/lib/unaligned.S
arch/c6x/config.mk new file +1 -0
new file mode 100644
index 0000000..9cbddbc
@@ -0,0 +1 @@
+CROSS_COMPILE ?= c6x-uclinux-
arch/c6x/include/asm/bitops.h new file +88 -0

88 lines not on this page · raw message

arch/c6x/include/asm/byteorder.h new file +1 -0
new file mode 100644
index 0000000..9558416
@@ -0,0 +1 @@
+#include <linux/byteorder/little_endian.h>
arch/c6x/include/asm/cache.h new file +29 -0
new file mode 100644
index 0000000..75b2043
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2011, Stefan Kristiansson <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __ASM_C6X_CACHE_H_
+#define __ASM_C6X_CACHE_H_
+
+#ifdef CONFIG_SYS_CACHELINE_SIZE
+#define ARCH_DMA_MINALIGN       CONFIG_SYS_CACHELINE_SIZE
+#else
+#define ARCH_DMA_MINALIGN       128
+#endif
+
+#endif /* __ASM_C6X_CACHE_H_ */
arch/c6x/include/asm/config.h new file +3 -0
new file mode 100644
index 0000000..db59e8a
@@ -0,0 +1,3 @@
+#ifndef _ASM_CONFIG_H_
+#define _ASM_CONFIG_H_
+#endif
arch/c6x/include/asm/errno.h new file +1 -0
new file mode 100644
index 0000000..4c82b50
@@ -0,0 +1 @@
+#include <asm-generic/errno.h>
arch/c6x/include/asm/global_data.h new file +96 -0

96 lines not on this page · raw message

arch/c6x/include/asm/gpio.h new file +2 -0
new file mode 100644
index 0000000..d49ad08
@@ -0,0 +1,2 @@
+#include <asm/arch/gpio.h>
+#include <asm-generic/gpio.h>
arch/c6x/include/asm/io.h new file +68 -0

68 lines not on this page · raw message

arch/c6x/include/asm/posix_types.h new file +72 -0

72 lines not on this page · raw message

arch/c6x/include/asm/processor.h new file +4 -0
new file mode 100644
index 0000000..ec98171
@@ -0,0 +1,4 @@
+#ifndef __ASM_C6X_PROCESSOR_H
+#define __ASM_C6X_PROCESSOR_H
+
+#endif
arch/c6x/include/asm/ptrace.h new file +310 -0

310 lines not on this page · raw message

arch/c6x/include/asm/sizes.h new file +51 -0

51 lines not on this page · raw message

arch/c6x/include/asm/string.h new file +26 -0
new file mode 100644
index 0000000..98e26ed
@@ -0,0 +1,26 @@
+/*
+ *  linux/include/asm-c6x/string.h
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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_C6X_STRING_H
+#define __ASM_C6X_STRING_H
+
+extern void *memcpy(void *to, const void *from, size_t n);
+extern void *memset(void *s, int c, size_t count);
+extern int memcmp(const void *cs, const void *ct, size_t count);
+extern void *memmove(void *s1, const void *s2, size_t n);
+
+#define __HAVE_ARCH_MEMCPY
+#define __HAVE_ARCH_MEMMOVE
+#define __HAVE_ARCH_MEMSET
+#define __HAVE_ARCH_MEMCMP
+
+#endif /* __ASM_C6X_STRING_H */
arch/c6x/include/asm/types.h new file +53 -0

53 lines not on this page · raw message

arch/c6x/include/asm/u-boot-c6x.h new file +14 -0
new file mode 100644
index 0000000..2367516
@@ -0,0 +1,14 @@
+/* (C) Copyright 2012  Dmitry Bondar <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+#ifndef _U_BOOT_C6X_H_
+#define _U_BOOT_C6X_H_ 1
+
+extern ulong __bss_start;
+extern ulong __bss_end__;
+
+#endif  /* _U_BOOT_C6X_H_ */
+
arch/c6x/include/asm/u-boot.h new file +57 -0

57 lines not on this page · raw message

arch/c6x/include/asm/unaligned.h new file +1 -0
new file mode 100644
index 0000000..6cecbbb
@@ -0,0 +1 @@
+#include <asm-generic/unaligned.h>
arch/c6x/lib/Makefile new file +51 -0

51 lines not on this page · raw message

arch/c6x/lib/board.c new file +196 -0

196 lines not on this page · raw message

arch/c6x/lib/bootm.c new file +60 -0

60 lines not on this page · raw message

arch/c6x/lib/csum_64plus.S new file +408 -0

408 lines not on this page · raw message

arch/c6x/lib/delay.S new file +39 -0
new file mode 100644
index 0000000..44f2a7f
@@ -0,0 +1,39 @@
+;
+;  linux/arch/c6x/lib/delay.s
+;
+;  Port on Texas Instruments TMS320C6x architecture
+;
+;  Copyright (C) 2004, 2009, 2010 Texas Instruments Incorporated
+;  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+;
+;  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.
+;
+	.sect	".text"
+	.global	_c6x_delay
+
+_c6x_delay:
+	bdec	.s1	_c6x_delay,A4
+	nop	5
+	b	.s2	B3
+	nop	5
+
+#ifdef CONFIG_TI_C6X_COMPILER
+	;; this is inlined with gcc
+
+	.global	_c6x_tickdelay
+_c6x_tickdelay:
+	mvc	.s2	TSCL,B1
+	add	.s2x	B1,A4,B1
+ ||	mvk	.l2	1,B0
+$0:
+ [B0]	b	.s2	$0
+	mvc	.s2	TSCL,B0
+	sub	.s2	B0,B1,B0
+	cmpgt	.l2	0,B0,B0
+	nop
+	nop
+	b	.s2	B3
+	nop	5
+#endif
arch/c6x/lib/divi.S new file +54 -0

54 lines not on this page · raw message

arch/c6x/lib/divremi.S new file +61 -0

61 lines not on this page · raw message

arch/c6x/lib/divremu.S new file +86 -0

86 lines not on this page · raw message

arch/c6x/lib/divu.S new file +100 -0

100 lines not on this page · raw message

arch/c6x/lib/divull.c new file +336 -0

336 lines not on this page · raw message

arch/c6x/lib/llshl.S new file +36 -0
new file mode 100644
index 0000000..99b739e
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshl(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshl
+__c6xabi_llshl:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; just return if zero shift
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]	 shru	.s1	A4,A0,A0
+   [!A2] neg	.l1	A0,A5
+|| [A2]  shl	.s1	A5,A1,A5
+   [!A2] shl	.s1	A4,A5,A5
+|| [A2]  or	.d1	A5,A0,A5
+|| [!A2] mvk	.l1	0,A4
+   [A2]	 shl	.s1	A4,A1,A4
+	 bnop	.s2	B3,5
+
arch/c6x/lib/llshr.S new file +36 -0
new file mode 100644
index 0000000..989feed
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshr(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshr
+__c6xabi_llshr:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; return if zero shift count
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]  shl	.s1	A5,A0,A0
+	 nop
+   [!A2] neg	.l1	A0,A4
+|| [A2]  shru	.s1	A4,A1,A4
+   [!A2] shr	.s1	A5,A4,A4
+|| [A2]  or	.d1	A4,A0,A4
+   [!A2] shr	.s1	A5,0x1f,A5
+   [A2]  shr	.s1	A5,A1,A5
+	 bnop	.s2	B3,5
arch/c6x/lib/llshru.S new file +36 -0
new file mode 100644
index 0000000..07a4631
@@ -0,0 +1,36 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  uint64_t __c6xabi_llshru(uint64_t val, uint shift)
+
+	.text
+	.global __c6xabi_llshru
+__c6xabi_llshru:
+	 mv	.l1x	B4,A1
+   [!A1] b	.s2	B3		; return if zero shift count
+	 mvk	.s1	32,A0
+	 sub	.d1	A0,A1,A0
+	 cmplt	.l1	0,A0,A2
+   [A2]  shl	.s1	A5,A0,A0
+	 nop
+   [!A2] neg	.l1	A0,A4
+|| [A2]  shru	.s1	A4,A1,A4
+   [!A2] shru	.s1	A5,A4,A4
+|| [A2]  or	.d1	A4,A0,A4
+|| [!A2] mvk	.l1	0,A5
+   [A2]  shru	.s1	A5,A1,A5
+	 bnop	.s2	B3,5
arch/c6x/lib/memcmp.c new file +24 -0
new file mode 100644
index 0000000..e3a98bc
@@ -0,0 +1,24 @@
+/*
+ *  linux/arch/c6x/lib/memcmp.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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/types.h>
+
+int memcmp(const void *cs, const void *ct, size_t count)
+{
+	const unsigned char *su1, *su2;
+
+	for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
+		if (*su1 != *su2)
+			return (*su1 < *su2) ? -1 : 1;
+	return 0;
+}
+
arch/c6x/lib/memcpy_64plus.S new file +45 -0

45 lines not on this page · raw message

arch/c6x/lib/memmove.c new file +30 -0
new file mode 100644
index 0000000..5672937
@@ -0,0 +1,30 @@
+/*
+ *  linux/arch/c6x/lib/memmove.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2005, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot ([email protected])
+ *
+ *  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/types.h>
+#include <linux/string.h>
+
+void *memmove(void *s1, const void *s2, size_t n)
+{
+	register char *s = (char *) s1;
+	register const char *p = (const char *) s2;
+
+	if (p >= s) {
+		return memcpy(s, p, n);
+	} else {
+		while (n) {
+			--n;
+			s[n] = p[n];
+		}
+	}
+	return s1;
+}
arch/c6x/lib/memset.c new file +20 -0
new file mode 100644
index 0000000..da4275b
@@ -0,0 +1,20 @@
+/*
+ *  linux/arch/c6x/lib/memcmp.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2004, 2009 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot at jaluna.com)
+ *
+ *  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/types.h>
+void *memset(void *mem, register int ch, register size_t length)
+{
+	register char *m = (char *)mem - 1;
+	while (length--)
+		*++m = ch;
+	return mem;
+}
arch/c6x/lib/mpyll.S new file +47 -0

47 lines not on this page · raw message

arch/c6x/lib/negll.S new file +29 -0
new file mode 100644
index 0000000..7747521
@@ -0,0 +1,29 @@
+;;  Copyright (C) 2010 Texas Instruments Incorporated
+;;  Contributed by Mark Salter <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;;  int64_t __c6xabi_negll(int64_t val)
+
+	.text
+	.global __c6xabi_negll
+__c6xabi_negll:
+	b	.s2	B3
+	mvk	.l1	0,A0
+	subu	.l1	A0,A4,A3:A2
+	sub	.l1	A0,A5,A0
+||	ext	.s1	A3,24,24,A5
+	add	.l1	A5,A0,A5
+	mv	.s1	A2,A4
arch/c6x/lib/pop_rts.S new file +30 -0
new file mode 100644
index 0000000..e1847fb
@@ -0,0 +1,30 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_pop_rts
+
+__c6xabi_pop_rts:
+	lddw	.d2t2	*++B15, B3:B2
+	lddw	.d2t1	*++B15, A11:A10
+	lddw	.d2t2	*++B15, B11:B10
+	lddw	.d2t1	*++B15, A13:A12
+	lddw	.d2t2	*++B15, B13:B12
+	lddw	.d2t1	*++B15, A15:A14
+||	b	.s2	B3
+	ldw	.d2t2	*++B15[2], B14
+	nop	4
arch/c6x/lib/push_rts.S new file +28 -0
new file mode 100644
index 0000000..637d56a
@@ -0,0 +1,28 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_push_rts
+__c6xabi_push_rts:
+	stw	.d2t2	B14, *B15--[2]
+	stdw	.d2t1	A15:A14, *B15--
+||	b	.s2x	A3
+	stdw	.d2t2	B13:B12, *B15--
+	stdw	.d2t1	A13:A12, *B15--
+	stdw	.d2t2	B11:B10, *B15--
+	stdw	.d2t1	A11:A10, *B15--
+	stdw	.d2t2	B3:B2, *B15--
arch/c6x/lib/remi.S new file +78 -0

78 lines not on this page · raw message

arch/c6x/lib/remu.S new file +81 -0

81 lines not on this page · raw message

arch/c6x/lib/strasgi.S new file +88 -0

88 lines not on this page · raw message

arch/c6x/lib/strasgi_64plus.S new file +37 -0
new file mode 100644
index 0000000..cbeab22
@@ -0,0 +1,37 @@
+;;  Copyright 2010  Free Software Foundation, Inc.
+;;  Contributed by Bernd Schmidt <[email protected]>.
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+	.text
+	.global __c6xabi_strasgi_64plus
+
+__c6xabi_strasgi_64plus:
+	shru	.s2x	a6, 2, b31
+||	mv	.s1	a4, a30
+||	mv	.d2	b4, b30
+
+	add	.s2	-4, b31, b31
+
+	sploopd		1
+||	mvc	.s2	b31, ilc
+	ldw	.d2t2	*b30++, b31
+	nop	4
+	mv	.s1x	b31,a31
+	spkernel	6, 0
+||	stw	.d1t1	a31, *a30++
+
+	ret	.s2	b3
+	nop 5
arch/c6x/lib/unaligned.S new file +117 -0

87 lines not on this page · raw message

common/cmd_bdinfo.c +5 -0
index 42f08fd..faf534b 100644

Lines of this file are not shown. View the raw message.

common/image.c +4 -0
index 91954ac..0fff687 100644

Lines of this file are not shown. View the raw message.

examples/standalone/stubs.c +15 -0
index 15e9afc..c9e0819 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.2.5

Part of the diff is not shown here. View the raw message.

author
#16 lore raw

PATCH v3 1/4 Add support new arch: c6x

Quoted 6 lines · Dmitry Bondar

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs. This patch add basic support.
Many of code in arch/c6x/include/asm come from c6x-linux project (http://linux-c6x.org)

Please cite the exact commit from upstream where this comes from (I imagine you could even use kernel.org proper, but I didn't check all files just a few) and say for example:
Backport from linux commit 27406e978f596a646b87941cba5247eb0ccc8916

Quoted 1 line

+#ifndef __ASM_GBL_DATA_H

Tabs instead of spaces. I don't know why checkpatch didn't complain but please give all of the files a quick check for things like <tab><space> and '#define<tab>' and '#ifndef<tab>.

I spot-checked a few of the library files and they seem to match the kernel which is important so I'll set aside disliking ';' as a comment char.

[snip]

common/cmd_bdinfo.c int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) · line 520

Quoted 13 lines
common/cmd_bdinfo.c +5 -0
index 42f08fd..faf534b 100644
@@ -513,6 +513,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	return 0;
 }
+#elif defined(CONFIG_C6X)
+int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	return 0;
+}

You should be able to define a minimal set of prints here, see the OpenRISC example above it.

common/image.c phys_size_t getenv_bootm_size(void) · line 460

Quoted 10 lines
common/image.c +2 -0
index 91954ac..0fff687 100644
@@ -456,8 +456,12 @@ phys_size_t getenv_bootm_size(void)
 #if defined(CONFIG_ARM)
 	return gd->bd->bi_dram[0].size - tmp;
 #else
+#if defined(CONFIG_C6X)
+	return gd->bd->bi_dram[0].size - tmp;

Here and possibly another place or two in the file, just change the check from defined(CONFIG_ARM) to defined(CONFIG_ARM) || defined(CONFIG_C6X).

Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120625/36b53cc5/attachment.pgp>
#17 lore raw

PATCH v3 1/4 Add support new arch: c6x

Quoted 8 lines · Dmitry Bondar
Quoted 7 lines

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs.
This patch add basic support.
Many of code in arch/c6x/include/asm come from c6x-linux project
(http://linux-c6x.org)

Quoted 8 lines
Quoted 2 lines

Please cite the exact commit from upstream where this comes from (I imagine you could even use kernel.org proper, but I didn't check all files just a few) and say for example:
Backport from linux commit 27406e978f596a646b87941cba5247eb0ccc8916

Must I say it in each file, or in commit message?

If in commit, how about something like this:
"
Many of code in arch/c6x/include/asm and arch/c6x/lib come from linux kernel, c6x headers (arch/c6x/include/asm) in linux kernel mainline from commit a7f626c1948ab6178d2338831c5ffea7385e9f7f
c6x libs (arch/c6x/lib) in linux kernel mainline from 09831ca73443bd819ad7993db5409b19c899ba33
"

Quoted 50 lines
Quoted 1 line

+#ifndef __ASM_GBL_DATA_H

Tabs instead of spaces. I don't know why checkpatch didn't complain but please give all of the files a quick check for things like <tab><space> and '#define<tab>' and '#ifndef<tab>.

I spot-checked a few of the library files and they seem to match the kernel which is important so I'll set aside disliking ';' as a comment char.

[snip]

Quoted 5 lines
common/cmd_bdinfo.c +0 -0
index 42f08fd..faf534b 100644

common/cmd_bdinfo.c int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, · line 522

Quoted 10 lines
common/cmd_bdinfo.c +5 -0
@@ -513,6 +513,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
 char * const argv[])
 
 	return 0;
 }
+#elif defined(CONFIG_C6X)
+int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const
 argv[])
+{
+	return 0;
+}

You should be able to define a minimal set of prints here, see the OpenRISC example above it.

common/image.c phys_size_t getenv_bootm_size(void) · line 460

Quoted 10 lines
common/image.c +2 -0
index 91954ac..0fff687 100644
@@ -456,8 +456,12 @@ phys_size_t getenv_bootm_size(void)
 #if defined(CONFIG_ARM)
 	return gd->bd->bi_dram[0].size - tmp;
 #else
+#if defined(CONFIG_C6X)
+	return gd->bd->bi_dram[0].size - tmp;

Here and possibly another place or two in the file, just change the check from defined(CONFIG_ARM) to defined(CONFIG_ARM) || defined(CONFIG_C6X).

Thanks!

--
Tom

author
#18 lore raw

PATCH v3 1/4 Add support new arch: c6x

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 10 lines · bond at inmys.ru
Quoted 10 lines · Dmitry Bondar
Quoted 8 lines

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs. This patch add basic support. Many of code in arch/c6x/include/asm come from c6x-linux project
(http://linux-c6x.org)

<[email protected]>

Quoted 6 lines
Quoted 5 lines

Please cite the exact commit from upstream where this comes from (I imagine you could even use kernel.org proper, but I didn't check all files just a few) and say for example: Backport from linux commit 27406e978f596a646b87941cba5247eb0ccc8916

Must I say it in each file, or in commit message?

Just the commit message.

Quoted 6 lines

If in commit, how about something like this: " Many of code in arch/c6x/include/asm and arch/c6x/lib come from linux kernel, c6x headers (arch/c6x/include/asm) in linux kernel mainline from commit a7f626c1948ab6178d2338831c5ffea7385e9f7f c6x libs (arch/c6x/lib) in linux kernel mainline from 09831ca73443bd819ad7993db5409b19c899ba33 "

Yes, or just make sure that both parts are still in sync with the kernel at whichever of those commits is later. That'll make any future re-syncs easier on you :)

- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJP63NeAAoJENk4IS6UOR1WmjUP/3b/SAQxeJXzupGW0PhKH5TZ ptwHPxkzTDcSXGNYmL42XdD4NLTM0rgNxQxZoPobKVVSAynlxv58Bzb9e4Umf/BH HWs4L/TvnAWlAu45BU3wjzPYqF+lo7aDyiw4jDsX0zb+WxArPY90kM1NTCiUvK9U BexzFTrqL0Rfw0vAAIfGSw46qyIRaZp2AM2q97J0Q7j4satiA8AJ7Ly6XcWu43/s 4L5FBF0lDeLLmsMnFXvJOj0O2KWxvyaQx7ola1YkXSSFPdSXY9M2gbkbz+spSe81 Pgw43XJ7OXlrASDsvov7U9V/LHLuqXS/Lo8jVMFTp5hLfXD830mA5dBCipsPJF/1 mIxXy3qIgdxNwtOMeebhfknpIhW6TQV1T5F5RyTFmsB5g1N+5lBTQveMCE1qMqmK Lki6ftPGhsJpPTxNvev/gx3acBQ6O+/X/zWujlj6YUcx1QCZYZq4bXP4a+4MB07N bmuSNwl3PlH03lO9SDUZVBc6h+eLJ2jU1rMba+ojQmcGOUUeq42Cs+W1Lr5dfQEE rcg/y4HxUIbYxkR4P0jJwE0SGsEy25/8X8859rGnQw25Pvxg0xFXmtisDb2WYDzd SU9y31JsLybpa6HeO8F5ex3aRb7+KYhLrOSxoGCGKmgeuJ0ndcQP3dRigrw3jVs6 Tq7hNvK/kgUBVT6pXimQ
=4ngS
-----END PGP SIGNATURE-----

#19 lore raw

PATCH v3 1/4 Add support new arch: c6x

In reply to bond at inmys.ru

Dear bond at inmys.ru,

Quoted 7 lines · In message <[email protected]> you wrote:
Quoted 6 lines

Please cite the exact commit from upstream where this comes from (I imagine you could even use kernel.org proper, but I didn't check all files just a few) and say for example:
Backport from linux commit 27406e978f596a646b87941cba5247eb0ccc8916

Must I say it in each file, or in commit message?

How about reading the documentation? It answers such questions, with examples and all that.

Best regards,

Wolfgang Denk

Signature · 7 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"There is nothing  so  deadly  as  not  to  hold  up  to  people  the
opportunity to do great and wonderful things, if we wish to stimulate
them in an active way."
- Dr. Harold Urey, Nobel Laureate in chemistry
#20 lore raw

PATCH v3 1/4 Add support new arch: c6x

In reply to Dmitry Bondar
Quoted 4 lines · On Monday 25 June 2012 14:02:38 Dmitry Bondar wrote:

C6X (C6000) is Texas Instruments architecture of fixed and floating-point DSPs. This patch add basic support.
Many of code in arch/c6x/include/asm come from c6x-linux project
(http://linux-c6x.org)

you should also update README and doc/README.standalone with some notes about the C6X architecture. just search for "blackfin" for the areas you should fill in.

arch/c6x/config.mk line 1

Quoted 4 lines
arch/c6x/config.mk new file +1 -0
@@ -0,0 +1 @@
+CROSS_COMPILE ?= c6x-uclinux-

missing intro comment block w/copyright/licnese. look at any other arch's config.mk to see an example.

you should prob also add a default CONFIG_STANDALONE_LOAD_ADDR

arch/c6x/include/asm/global_data.h

Quoted 4 lines
arch/c6x/include/asm/global_data.h new file +1 -0
 
+#ifndef	__ASM_GBL_DATA_H

should be space after the ifndef, not a tab

Quoted 18 lines
arch/c6x/include/asm/global_data.h new file +18 -0
+typedef	struct	global_data {
+	bd_t		*bd;
+	unsigned long	flags;
+	unsigned long	baudrate;
+	unsigned long	have_console;	/* serial_init() was called */
+#ifdef CONFIG_PRE_CONSOLE_BUFFER
+	unsigned long	precon_buf_idx;	/* Pre-Console buffer index */
+#endif
+	unsigned long	env_addr;	/* Address  of Environment struct */
+	unsigned long	env_valid;	/* Checksum of Environment valid? */
+	unsigned long	fb_base;	/* base address of frame buffer */
+
+	/* "static data" needed by most of timer.c (like on ARM platform) */
+	unsigned long	timer_rate_hz;
+	unsigned long	tbl;
+	unsigned long	tbu;
+	unsigned long long	timer_reset_value;
+	unsigned long	lastinc;

arch/c6x/include/asm/global_data.h line 63

Quoted 10 lines
arch/c6x/include/asm/global_data.h new file +10 -0
+
+	phys_size_t     ram_size;       /* RAM size */
+#if 0
+	unsigned long	relocaddr;	/* Start address of U-Boot in RAM */
+	phys_size_t	ram_size;	/* RAM size */
+	unsigned long	mon_len;	/* monitor len */
+	unsigned long	irq_sp;		/* irq stack pointer */
+	unsigned long	start_addr_sp;	/* start_addr_stackpointer */
+	unsigned long	reloc_off;
+#endif

delete dead code. you should also kill any fields you don't actually need rather than just copying from another arch. the timer_rate_hz/tbl/tbu/timer_reset_value/lastinc look suspicious to me.

arch/c6x/include/asm/sizes.h

Quoted 2 lines
arch/c6x/include/asm/sizes.h new file +0 -0

do you actually need this ? i don't think you do, so kill it. if you have some file that includes it, fix it and get rid of this file.

arch/c6x/include/asm/u-boot-c6x.h

Quoted 2 lines
arch/c6x/include/asm/u-boot-c6x.h new file +0 -0

please rename to sections.h

arch/c6x/include/asm/u-boot-c6x.h line 8

Quoted 2 lines
arch/c6x/include/asm/u-boot-c6x.h new file +2 -0
+#ifndef _U_BOOT_C6X_H_
+#define _U_BOOT_C6X_H_ 1

no need to define to 1

Quoted 7 lines
arch/c6x/include/asm/u-boot.h new file +4 -0
 
+typedef struct bd_info {
+	int		bi_baudrate;	/* serial console baudrate */
+	unsigned long	bi_ip_addr;	/* IP Address */
+	ulong		bi_arch_number;	/* unique id for this board */

arch/c6x/include/asm/u-boot.h line 52

Quoted 10 lines
arch/c6x/include/asm/u-boot.h new file +10 -0
+	ulong		bi_boot_params;	/* where this board expects params */
+	unsigned long	bi_arm_freq; /* arm frequency */
+	unsigned long	bi_dsp_freq; /* dsp core frequency */
+	unsigned long	bi_ddr_freq; /* ddr frequency */
+	struct				/* RAM configuration */
+	{
+		ulong start;
+		ulong size;
+	} bi_dram[CONFIG_NR_DRAM_BANKS];
+} bd_t;

again, please go through here and delete members you don't actually need

arch/c6x/include/asm/u-boot.h line 55

Quoted 2 lines
arch/c6x/include/asm/u-boot.h new file +2 -0
+/* For image.h:image_check_target_arch() */
+#define IH_ARCH_DEFAULT IH_ARCH_ARM

brrrr-wrong

arch/c6x/lib/board.c line 41

Quoted 6 lines
arch/c6x/lib/board.c new file +3 -0
 
+#ifdef CONFIG_STATUS_LED
+#include <status_led.h>
+#endif

no need to conditionalize the include

arch/c6x/lib/board.c line 54

Quoted 3 lines
arch/c6x/lib/board.c new file +3 -0
+static int display_banner(void)
+{
+	printf("\n\n%s\n\n", version_string);

just call display_options()

arch/c6x/lib/board.c

Quoted 2 lines
arch/c6x/lib/board.c new file +2 -0
+	WATCHDOG_RESET();
+/*	interrupt_init();*/

delete dead code

arch/c6x/lib/board.c line 196

Quoted 7 lines
arch/c6x/lib/board.c new file +7 -0
+int do_reset(cmd_tbl_t *cmdtp, int flag, int argc,
+	char *const argv[])
+{
+	reset_cpu(0);
+	return 0;
+}
+

delete trailing newlines

arch/c6x/lib/bootm.c

Quoted 4 lines
arch/c6x/lib/bootm.c new file +1 -0
 
+int disable_interrupts()

(void)

Quoted 1 line

+void enable_interrupts()

(void)

Quoted 34 lines
arch/c6x/lib/memcmp.c new file +9 -0
 
+int memcmp(const void *cs, const void *ct, size_t count)
+{
+	const unsigned char *su1, *su2;
+
+	for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
+		if (*su1 != *su2)
+			return (*su1 < *su2) ? -1 : 1;
+	return 0;
+}
arch/c6x/lib/memmove.c new file +15 -0
 
+void *memmove(void *s1, const void *s2, size_t n)
+{
+	register char *s = (char *) s1;
+	register const char *p = (const char *) s2;
+
+	if (p >= s) {
+		return memcpy(s, p, n);
+	} else {
+		while (n) {
+			--n;
+			s[n] = p[n];
+		}
+	}
+	return s1;
+}

arch/c6x/lib/memset.c line 20

Quoted 8 lines
arch/c6x/lib/memset.c new file +7 -0
 
+void *memset(void *mem, register int ch, register size_t length)
+{
+	register char *m = (char *)mem - 1;
+	while (length--)
+		*++m = ch;
+	return mem;
+}

i can't see how these would be any better than the ones we already have in lib/string.c. i say delete these files and don't bother.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120718/6039e63b/attachment.pgp>

#21 lore raw

PATCH v3 2/4 c6x: Add support c674x CPUs

In reply to a message not in the archive

C6X has subfamilys: C62x C64x C66x C67x C645x C674x. This patch add support of subfamily C674x (C6745/C6746/C6747 CPUs).

---
 arch/c6x/cpu/c674x/Makefile  |   30 ++++++++++++++++
 arch/c6x/cpu/c674x/cache.c   |   17 +++++++++
 arch/c6x/cpu/c674x/config.mk |   14 ++++++++
 arch/c6x/cpu/c674x/start.S   |   22 ++++++++++++
 arch/c6x/cpu/u-boot.lds      |   76 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 159 insertions(+), 0 deletions(-)
 create mode 100644 arch/c6x/cpu/c674x/Makefile
 create mode 100644 arch/c6x/cpu/c674x/cache.c
 create mode 100644 arch/c6x/cpu/c674x/config.mk
 create mode 100644 arch/c6x/cpu/c674x/start.S
 create mode 100644 arch/c6x/cpu/u-boot.lds
arch/c6x/cpu/c674x/Makefile new file +30 -0
new file mode 100644
index 0000000..bfe0db6
@@ -0,0 +1,30 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(CPU).o
+
+START	= start.o
+COBJS	= cache.o
+
+SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+START	:= $(addprefix $(obj),$(START))
+
+all:	$(obj).depend $(START) $(LIB)
+
+$(LIB):	$(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
arch/c6x/cpu/c674x/cache.c new file +17 -0
new file mode 100644
index 0000000..e2d6866
@@ -0,0 +1,17 @@
+/* (C) Copyright 2012  Dmitry Bondar <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+void flush_cache(unsigned long addr, unsigned long len)
+{
+}
+
+void flush_dcache_range(unsigned long start, unsigned long stop)
+{
+}
+
+void invalidate_dcache_range(unsigned long start, unsigned long stop)
+{
+}
arch/c6x/cpu/c674x/config.mk new file +14 -0
new file mode 100644
index 0000000..8ee1325
@@ -0,0 +1,14 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+PLATFORM_RELFLAGS += -fno-common -ffixed-B31
+
+PLATFORM_CPPFLAGS += -march=c674x -msdata=none -mno-dsbt -DCONFIG_TMS320C64XPLUS
+# =========================================================================
+#
+# Supply options according to compiler version
+#
+# =========================================================================
+PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
arch/c6x/cpu/c674x/start.S new file +22 -0
new file mode 100644
index 0000000..c144978
@@ -0,0 +1,22 @@
+; (C) Copyright 2012  Dmitry Bondar <[email protected]>
+;
+; This file is released under the terms of GPL v2 and any later version.
+; See the file COPYING in the root directory of the source tree for details.
+
+#include <config.h>
+#include <asm-offsets.h>
+
+        .global _start
+_start:
+	;; Jump to u-boot
+	MVKL    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKH    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKL    .S1     board_init_f,A0
+	MVKH    .S1     board_init_f,A0
+	B       .S2X    A0
+	MVKL    .S2     L1,B3
+	MVKH    .S2     L1,B3
+	NOP     3
+L1:	B       .S2     B3
+	NOP     5
+
arch/c6x/cpu/u-boot.lds new file +76 -0

76 lines not on this page · raw message

Signature · 1 line
1.7.2.5
author
#22 lore raw

PATCH v3 2/4 c6x: Add support c674x CPUs

Quoted 5 lines · Dmitry Bondar

C6X has subfamilys: C62x C64x C66x C67x C645x C674x. This patch add support of subfamily C674x (C6745/C6746/C6747 CPUs).

This one is fine, FYI.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120625/66509982/attachment.pgp>
#23 lore raw

PATCH v3 2/4 c6x: Add support c674x CPUs

In reply to Dmitry Bondar
Quoted 4 lines · On Monday 25 June 2012 14:02:39 Dmitry Bondar wrote:
arch/c6x/cpu/c674x/cache.c new file +1 -0
 
+void flush_cache(unsigned long addr, unsigned long len)

arch/c6x/cpu/c674x/cache.c line 17

Quoted 10 lines
arch/c6x/cpu/c674x/cache.c new file +10 -0
+{
+}
+
+void flush_dcache_range(unsigned long start, unsigned long stop)
+{
+}
+
+void invalidate_dcache_range(unsigned long start, unsigned long stop)
+{
+}

you /really/ should implement these. i can't see how this would be that hard.

arch/c6x/cpu/c674x/config.mk

Quoted 4 lines
arch/c6x/cpu/c674x/config.mk new file +1 -0
 
+PLATFORM_RELFLAGS += -fno-common -ffixed-B31

this belongs in arch/c6x/config.mk, not this file

arch/c6x/cpu/c674x/config.mk

Quoted 2 lines
arch/c6x/cpu/c674x/config.mk new file +1 -1
+PLATFORM_CPPFLAGS += -march=c674x -msdata=none -mno-dsbt
-DCONFIG_TMS320C64XPLUS

most likely the msdata/dsbt settings also belong in arch/c6x/config.mk, not here

Quoted 2 lines

+PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))

and these too belong in arch/c6x/config.mk

also, it should be:
PLATFORM_ALIGN_FLAGS := $(...)
PLATFORM_RELFLAGS += $(PLATFORM_ALIGN_FLAGS)

Quoted 6 lines
arch/c6x/cpu/c674x/start.S new file +3 -0
 
+        .global _start
+_start:
+	;; Jump to u-boot

arch/c6x/cpu/c674x/start.S line 21

Quoted 10 lines
arch/c6x/cpu/c674x/start.S new file +10 -0
+	MVKL    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKH    .S2     CONFIG_SYS_INIT_SP_ADDR,B15
+	MVKL    .S1     board_init_f,A0
+	MVKH    .S1     board_init_f,A0
+	B       .S2X    A0
+	MVKL    .S2     L1,B3
+	MVKH    .S2     L1,B3
+	NOP     3
+L1:	B       .S2     B3
+	NOP     5

i know nothing about C6X, but i suspect this is not specific to the c674x cpu, and should probably be in a common arch/c6x/cpu/start.S location

arch/c6x/cpu/u-boot.lds line 27

Quoted 5 lines
arch/c6x/cpu/u-boot.lds new file +2 -0
 
+/*OUTPUT_FORMAT("elf32-littlec6x", "elf32-littlec6x", "elf32-littlec6x")*/
+/*OUTPUT_ARCH(c6x)*/

delete dead code

arch/c6x/cpu/u-boot.lds line 34

Quoted 7 lines
arch/c6x/cpu/u-boot.lds new file +7 -0
+ENTRY(_start)
+SECTIONS
+{
+	. = ALIGN(4);
+	.text :
+	{
+		CPUDIR/start.o	(.text)

CPUDIR can't be right. did you compile this ?

this file in general looks generic and should probably live at arch/c6x/cpu/init.lds.S instead
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120718/4fa11b49/attachment.pgp>

#24 lore raw

PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs

In reply to a message not in the archive

C674x CPUs has same peripherals(uart,emac,nand contoller) like sitara processors (am1705/am1707/omapl137/omapl138). In u-boot this peripheral known as davinci SOC, and placed in arch/arm/cpu/arm926ejs/davinci This patch allow compile davinci SOC code whith c674x CPU.

Reset code rewritten in C for compile not only for arm.

---
 Makefile                                 |    1 +
 arch/arm/cpu/arm926ejs/davinci/Makefile  |    5 ++++
 arch/arm/cpu/arm926ejs/davinci/reset_c.c |   32 ++++++++++++++++++++++++++++++
 mkconfig                                 |    7 +++++-
 4 files changed, 44 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/davinci/reset_c.c
Makefile +1 -0
index 0197239..33e12cf 100644
@@ -779,6 +779,7 @@ clobber:	tidy
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
 	@rm -f $(obj)arch/powerpc/cpu/mpc83xx/ddr-gen?.c
 	@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
+	@rm -f ${obj}arch/c6x/cpu/c674x/davinci
 	@rm -fr $(obj)include/generated
 	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
 	@[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
arch/arm/cpu/arm926ejs/davinci/Makefile +5 -0
index da7efac..54f096d 100644
@@ -42,7 +42,12 @@ COBJS-$(CONFIG_SOC_DM365)	+= dm365_lowlevel.o
 COBJS-$(CONFIG_SOC_DA8XX)	+= da850_lowlevel.o
 endif
 
+
+ifeq ($(CPU),c674x)
+COBJS-y	+= reset_c.o
+else
 SOBJS	= reset.o
+endif
 
 ifndef CONFIG_SKIP_LOWLEVEL_INIT
 SOBJS	+= lowlevel_init.o
arch/arm/cpu/arm926ejs/davinci/reset_c.c new file +32 -0
new file mode 100644
index 0000000..44ae364
@@ -0,0 +1,32 @@
+/*
+ *  Processor reset using WDT.
+ *
+ * Copyright (C) 2012 Dmitry Bondar <[email protected]>
+ * Copyright (C) 2007 Sergey Kubushyn <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/timer_defs.h>
+
+void reset_cpu(unsigned long a)
+{
+	struct davinci_timer *const wdttimer =
+		(struct davinci_timer *)DAVINCI_TIMER1_BASE;
+	writel(0x08, &wdttimer->tgcr);
+	writel(readl(&wdttimer->tgcr) | 0x03, &wdttimer->tgcr);
+	writel(0, &wdttimer->tim12);
+	writel(0, &wdttimer->tim34);
+	writel(0, &wdttimer->prd12);
+	writel(0, &wdttimer->prd34);
+	writel(readl(&wdttimer->tcr) | 0x40, &wdttimer->tcr);
+	writel(readl(&wdttimer->wdtcr) | 0x4000, &wdttimer->wdtcr);
+	writel(0xa5c64000, &wdttimer->wdtcr);
+	writel(0xda7e4000, &wdttimer->wdtcr);
+	writel(0x4000, &wdttimer->wdtcr);
+	while (1)
+		/*nothing*/;
+}
mkconfig +6 -1
index daa1810..c80625e 100755
@@ -119,7 +119,12 @@ rm -f asm/arch
 if [ -z "${soc}" ] ; then
 	ln -s ${LNPREFIX}arch-${cpu} asm/arch
 else
-	ln -s ${LNPREFIX}arch-${soc} asm/arch
+	if [ "${arch}" == "c6x" -a "$soc" == "davinci" ]; then
+		ln -s ${SRCTREE}/arch/arm/include/asm/arch-davinci asm/arch
+		ln -s ${SRCTREE}/arch/arm/cpu/arm926ejs/davinci ${SRCTREE}/arch/c6x/cpu/c674x/davinci
+	else
+		ln -s ${LNPREFIX}arch-${soc} asm/arch
+	fi
 fi
 
 if [ "${arch}" = "arm" ] ; then
Signature · 1 line
1.7.2.5
author
#25 lore raw

PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs

Quoted 8 lines · Dmitry Bondar

C674x CPUs has same peripherals(uart,emac,nand contoller) like sitara processors (am1705/am1707/omapl137/omapl138). In u-boot this peripheral known as davinci SOC, and placed in arch/arm/cpu/arm926ejs/davinci This patch allow compile davinci SOC code whith c674x CPU.

Reset code rewritten in C for compile not only for arm.

The symlink comments I posted before are for this specific patch. Also, anyone out there that could easily test if this reset in C code is fine on their arm9 davinci platform?

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120625/4ce5906c/attachment.pgp>
author
#26 lore raw

PATCH 1/1 davinci, c6x: Always use C version of reset code

In reply to Dmitry Bondar

We can safely use the same reset code written in C for both Davinci and C6X platforms. In addition the C version of the code is marginally smaller on Davinci.

---
 arch/arm/cpu/arm926ejs/davinci/Makefile  |    9 +---
 arch/arm/cpu/arm926ejs/davinci/reset.S   |   81 ------------------------------
 arch/arm/cpu/arm926ejs/davinci/reset.c   |   32 ++++++++++++
 arch/arm/cpu/arm926ejs/davinci/reset_c.c |   32 ------------
 4 files changed, 33 insertions(+), 121 deletions(-)
 delete mode 100644 arch/arm/cpu/arm926ejs/davinci/reset.S
 create mode 100644 arch/arm/cpu/arm926ejs/davinci/reset.c
 delete mode 100644 arch/arm/cpu/arm926ejs/davinci/reset_c.c
arch/arm/cpu/arm926ejs/davinci/Makefile +1 -8
index 54f096d..c91928e 100644
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(SOC).o
 
-COBJS-y				+= cpu.o misc.o timer.o psc.o pinmux.o
+COBJS-y				+= cpu.o misc.o timer.o psc.o pinmux.o reset.o
 COBJS-$(CONFIG_DA850_LOWLEVEL)	+= da850_lowlevel.o
 COBJS-$(CONFIG_SOC_DM355)	+= dm355.o
 COBJS-$(CONFIG_SOC_DM365)	+= dm365.o
@@ -42,13 +42,6 @@ COBJS-$(CONFIG_SOC_DM365)	+= dm365_lowlevel.o
 COBJS-$(CONFIG_SOC_DA8XX)	+= da850_lowlevel.o
 endif
 
-
-ifeq ($(CPU),c674x)
-COBJS-y	+= reset_c.o
-else
-SOBJS	= reset.o
-endif
-
 ifndef CONFIG_SKIP_LOWLEVEL_INIT
 SOBJS	+= lowlevel_init.o
 endif
arch/arm/cpu/arm926ejs/davinci/reset.S deleted +0 -81

81 lines not on this page · raw message

arch/arm/cpu/arm926ejs/davinci/reset.c new file +32 -0
new file mode 100644
index 0000000..44ae364
@@ -0,0 +1,32 @@
+/*
+ *  Processor reset using WDT.
+ *
+ * Copyright (C) 2012 Dmitry Bondar <[email protected]>
+ * Copyright (C) 2007 Sergey Kubushyn <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+*/
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/timer_defs.h>
+
+void reset_cpu(unsigned long a)
+{
+	struct davinci_timer *const wdttimer =
+		(struct davinci_timer *)DAVINCI_TIMER1_BASE;
+	writel(0x08, &wdttimer->tgcr);
+	writel(readl(&wdttimer->tgcr) | 0x03, &wdttimer->tgcr);
+	writel(0, &wdttimer->tim12);
+	writel(0, &wdttimer->tim34);
+	writel(0, &wdttimer->prd12);
+	writel(0, &wdttimer->prd34);
+	writel(readl(&wdttimer->tcr) | 0x40, &wdttimer->tcr);
+	writel(readl(&wdttimer->wdtcr) | 0x4000, &wdttimer->wdtcr);
+	writel(0xa5c64000, &wdttimer->wdtcr);
+	writel(0xda7e4000, &wdttimer->wdtcr);
+	writel(0x4000, &wdttimer->wdtcr);
+	while (1)
+		/*nothing*/;
+}
arch/arm/cpu/arm926ejs/davinci/reset_c.c deleted +0 -32
deleted file mode 100644
index 44ae364..0000000
@@ -1,32 +0,0 @@
-/*
- *  Processor reset using WDT.
- *
- * Copyright (C) 2012 Dmitry Bondar <[email protected]>
- * Copyright (C) 2007 Sergey Kubushyn <[email protected]>
- *
- * This file is released under the terms of GPL v2 and any later version.
- * See the file COPYING in the root directory of the source tree for details.
-*/
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch/timer_defs.h>
-
-void reset_cpu(unsigned long a)
-{
-	struct davinci_timer *const wdttimer =
-		(struct davinci_timer *)DAVINCI_TIMER1_BASE;
-	writel(0x08, &wdttimer->tgcr);
-	writel(readl(&wdttimer->tgcr) | 0x03, &wdttimer->tgcr);
-	writel(0, &wdttimer->tim12);
-	writel(0, &wdttimer->tim34);
-	writel(0, &wdttimer->prd12);
-	writel(0, &wdttimer->prd34);
-	writel(readl(&wdttimer->tcr) | 0x40, &wdttimer->tcr);
-	writel(readl(&wdttimer->wdtcr) | 0x4000, &wdttimer->wdtcr);
-	writel(0xa5c64000, &wdttimer->wdtcr);
-	writel(0xda7e4000, &wdttimer->wdtcr);
-	writel(0x4000, &wdttimer->wdtcr);
-	while (1)
-		/*nothing*/;
-}
Signature · 1 line
1.7.9.5
author
#27 lore raw

PATCH 1/1 davinci, c6x: Always use C version of reset code

Quoted 6 lines · Tom Rini

We can safely use the same reset code written in C for both Davinci and C6X platforms. In addition the C version of the code is marginally smaller on Davinci.

In the next go-round of the c6x patches please just fold this (and the tested-by) into the patch you add that creates the C version of the reset code. Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120627/d6b2cad9/attachment.pgp>
#28 lore raw

PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs

In reply to Dmitry Bondar

mkconfig

Quoted 4 lines · On Monday 25 June 2012 14:02:40 Dmitry Bondar wrote:
mkconfig +1 -0
 
+	if [ "${arch}" == "c6x" -a "$soc" == "davinci" ]; then

use "=", not "=="
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120719/c5319302/attachment.pgp>

#29 lore raw

PATCH v3 4/4 c6x: Add support c6745-som board

In reply to a message not in the archive

Add support board c6745-som (http://inmys.ru/?_=/products/som_c6745) with C6745 cpu.

---
 MAINTAINERS                       |    3 +
 board/inmys/c6745-som/Makefile    |   27 ++++
 board/inmys/c6745-som/c6745-som.c |  246 +++++++++++++++++++++++++++++++
 boards.cfg                        |    1 +
 include/configs/c6745-som-inmys.h |  294 +++++++++++++++++++++++++++++++++++++
 5 files changed, 571 insertions(+), 0 deletions(-)
 create mode 100644 board/inmys/c6745-som/Makefile
 create mode 100644 board/inmys/c6745-som/c6745-som.c
 create mode 100644 include/configs/c6745-som-inmys.h
MAINTAINERS +3 -0
index e55893b..710f3df 100644
@@ -62,6 +62,9 @@ Jerry Van Baren <[email protected]>
 
 	sacsng		MPC8260
 
+Dmitry Bondar <[email protected]>
+	c6745-som	c674x
+
 Oliver Brown <[email protected]>
 
 	gw8260		MPC8260
board/inmys/c6745-som/Makefile new file +27 -0
new file mode 100644
index 0000000..9a91ed2
@@ -0,0 +1,27 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS-$(CONFIG_MACH_INMYS_C6745_SOM)	+= c6745-som.o
+
+COBJS   := $(COBJS-y)
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(call cmd_link_o_target, $(OBJS) $(SOBJS))
+
+#########################################################################
+# This is for $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
board/inmys/c6745-som/c6745-som.c new file +246 -0

246 lines not on this page · raw message

boards.cfg +1 -0
index a723f67..7acbfd1 100644
@@ -302,6 +302,7 @@ ip04                         blackfin    blackfin
 pr1                          blackfin    blackfin
 tcm-bf518                    blackfin    blackfin
 tcm-bf537                    blackfin    blackfin
+c6745-som-inmys              c6x         c674x       c6745-som           inmys          davinci     c6745-som-inmys
 M52277EVB                    m68k        mcf5227x    m52277evb           freescale      -           M52277EVB:SYS_SPANSION_BOOT,SYS_TEXT_BASE=0x00000000
 M52277EVB_stmicro            m68k        mcf5227x    m52277evb           freescale      -           M52277EVB:CF_SBF,SYS_STMICRO_BOOT,SYS_TEXT_BASE=0x43E00000
 M5235EVB                     m68k        mcf523x     m5235evb            freescale      -           M5235EVB:SYS_TEXT_BASE=0xFFE00000
include/configs/c6745-som-inmys.h new file +294 -0

294 lines not on this page · raw message

Signature · 1 line
1.7.2.5
author
#30 lore raw

PATCH v3 4/4 c6x: Add support c6745-som board

Quoted 4 lines · Dmitry Bondar

Add support board c6745-som (http://inmys.ru/?_=/products/som_c6745) with C6745 cpu.

[snip]

Quoted 5 lines
MAINTAINERS +0 -0
index e55893b..710f3df 100644

MAINTAINERS Jerry Van Baren <[email protected]> · line 70

Quoted 9 lines
MAINTAINERS +3 -0
@@ -62,6 +62,9 @@ Jerry Van Baren <[email protected]>
 
 	sacsng		MPC8260
 
+Dmitry Bondar <[email protected]>
+	c6745-som	c674x
+
 Oliver Brown <[email protected]>
 
 	gw8260		MPC8260

Note that the file is sorted by architecture, so you get to add in a new C6000 section.

Quoted 8 lines
board/inmys/c6745-som/Makefile new file +2 -0
new file mode 100644
index 0000000..9a91ed2
@@ -0,0 +1,27 @@
+# (C) Copyright 2012  Dmitry Bondar <[email protected]>
+#

board/inmys/c6745-som/Makefile line 12

Quoted 10 lines
board/inmys/c6745-som/Makefile new file +10 -0
+# This file is released under the terms of GPL v2 and any later version.
+# See the file COPYING in the root directory of the source tree for details.
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS-$(CONFIG_MACH_INMYS_C6745_SOM)	+= c6745-som.o
+
+COBJS   := $(COBJS-y)

We should only be here on this board, yes? So just:
COBJS-y<tab>:= c6745-som.o

board/inmys/c6745-som/Makefile line 16

Quoted 3 lines
board/inmys/c6745-som/Makefile new file +3 -0
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))

This seems a little complicated, and should just be:
COBJS<tab>:= $(sort $(COBJS-y))
SRCS<tab>:= $(COBJS:.o=.c)
OBJS<tab>:= $(addprefix $(obj),$(COBJS))

[snip]

board/inmys/c6745-som/Makefile line 22

Quoted 7 lines
board/inmys/c6745-som/Makefile new file +7 -0
+ * Parts are shamelessly stolen from various TI sources, original copyright
+ * follows:
+ * -----------------------------------------------------------------
+ *
+ * Copyright (C) 2004 Texas Instruments.
+ *
+ * ----------------------------------------------------------------------------

Please drop both of the extra-long '-..-' lines.

board/inmys/c6745-som/Makefile line 27

Quoted 5 lines
board/inmys/c6745-som/Makefile new file +5 -0
+#if 1
+	/* configure pinmux settings */
+	if (davinci_configure_pin_mux_items(pinmuxes, ARRAY_SIZE(pinmuxes)))
+		return 1;
+#endif

I'm fond of '#if 1' when debugging code myself but please remove when posting, thanks!

[snip]

board/inmys/c6745-som/Makefile line 6

Quoted 8 lines

+++ b/include/configs/c6745-som-inmys.h

board/inmys/c6745-som/Makefile new file +6 -0
@@ -0,0 +1,294 @@
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* Based on da830evm.h
+*/
+#define TMPVAL 0

Unused.

board/inmys/c6745-som/Makefile line 9

Quoted 3 lines
board/inmys/c6745-som/Makefile new file +3 -0
+#if 0
+#define CONFIG_USE_SPIFLASH
+#endif

Please just add a comment saying SPI flash support is still missing instead of this

board/inmys/c6745-som/Makefile line 10

Quoted 1 line
board/inmys/c6745-som/Makefile new file +1 -0
+#define CONFIG_C6X			/* */

Just '#define CONFIG_C6X'.

[snip]

board/inmys/c6745-som/Makefile line 11

Quoted 1 line
board/inmys/c6745-som/Makefile new file +1 -0
+#define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }

There's a default now, don't need this line.

board/inmys/c6745-som/Makefile line 12

Quoted 1 line
board/inmys/c6745-som/Makefile new file +1 -0
+#if 1

See above :) (And there's a few of these).

board/inmys/c6745-som/Makefile line 13

Quoted 1 line
board/inmys/c6745-som/Makefile new file +1 -0
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "

Also not needed now.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120625/3cbb00cc/attachment.pgp>
#31 lore raw

PATCH v3 4/4 c6x: Add support c6745-som board

In reply to Dmitry Bondar

board/inmys/c6745-som/c6745-som.c

Quoted 4 lines · On Monday 25 June 2012 14:02:41 Dmitry Bondar wrote:
board/inmys/c6745-som/c6745-som.c new file +1 -0
 
+int board_init()

(void)

board/inmys/c6745-som/c6745-som.c line 219

Quoted 3 lines
board/inmys/c6745-som/c6745-som.c new file +3 -0
+int board_eth_init(bd_t *bis)
+{
+	u_int8_t mac_addr[6];

uchar

board/inmys/c6745-som/c6745-som.c line 229

Quoted 8 lines
board/inmys/c6745-som/c6745-som.c new file +8 -0
+	/* Read Ethernet MAC address from EEPROM */
+	if (dvevm_read_mac_address(mac_addr))
+		/* set address env if not already set */
+		davinci_sync_env_enetaddr(mac_addr);
+
+	/* read the address back from env */
+	if (!eth_getenv_enetaddr("ethaddr", mac_addr))
+		return -1;

i think logic here is incorrect. usually it's:
if (!eth_getenv_enetaddr("ethaddr", mac_addr))

	/* read mac from hardware */

board/inmys/c6745-som/c6745-som.c line 241

Quoted 5 lines
board/inmys/c6745-som/c6745-som.c new file +5 -0
+	dev = eth_get_dev();
+
+	/* provide the resulting addr to the driver */
+	memcpy(dev->enetaddr, mac_addr, 6);
+	dev->write_hwaddr(dev);

err, this should be in the driver, not the board init

include/configs/c6745-som-inmys.h line 2

Quoted 5 lines
include/configs/c6745-som-inmys.h new file +2 -0
@@ -0,0 +1,294 @@
+#ifndef __CONFIG_H
+#define __CONFIG_H

missing intro comment block
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120719/8347fcee/attachment.pgp>

#32 lore raw

PATCH v3 4/4 c6x: Add support c6745-som board

In reply to Dmitry Bondar

Dear Dmitry Bondar,

Quoted 4 lines · In message <[email protected]> you wrote:

Add support board c6745-som (http://inmys.ru/?_=/products/som_c6745) with C6745 cpu.

...

include/configs/c6745-som-inmys.h line 186

Quoted 4 lines
include/configs/c6745-som-inmys.h new file +4 -0
+#define LINUX_BOOT_PARAM_ADDR	(PHYS_SDRAM_1 + 0x100)
+#define CONFIG_CMDLINE_TAG
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_BOOTARGS		"mem=32M console=ttyS2,115200n8 root=/dev/mtdblock/2 rw noinitrd ip=dhcp"

WARNING: line over 80 characters

Please fix.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Never ascribe to malice that which can  adequately  be  explained  by
stupidity.