c6x: Add suport build davinci SOC with c674x CPUs
Subsystems (4)
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]
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 inarch/arm/cpu/arm926ejs/davinciThis 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.cnew 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> + +voidreset_cpu(unsigned long a)+{ + volatileuint32_t*WDT_TGCR; +
volatileuint32_t*WDT_TIM12; + volatileuint32_t*WDT_TIM34; +
volatileuint32_t*WDT_PRD12; + volatileuint32_t*WDT_PRD34; +
volatileuint32_t*WDT_TCR; + volatileuint32_t*WDT_WDTCR; +WDT_TGCR= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x24); +WDT_TIM12= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x10); +WDT_TIM34= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x14); +
Quoted 8 lines
WDT_PRD12= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x18); +WDT_PRD34= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x1c); +WDT_TCR= (volatileuint32_t*)(DAVINCI_TIMER1_BASE +0x20); +WDT_WDTCR= (volatileuint32_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-----
v2 cover Add support new arch: c6x
In reply to a message not in the archiveC6X (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
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.
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>---
Changes for v2:
- davinci SOCreset_c.crewritten 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]>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.
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
Quoted 8 lines
Quoted 4 lines
---
Changes for v2:
- davinci SOCreset_c.crewritten with readl/writel.
- Tom Rini <[email protected]> added to ccPlease run your patches through checkpatch and fix the issues. Then try and resubmit:
( tools/checkpatch.pl out removed )
After rework, code in arch/c6xtools/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
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/c6xtools/checkpatch.pl0001-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 inasm/io.hand__kernel... types inasm/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
PATCH v2 1/4 Add support new arch: c6x
In reply to a message not in the archiveC6X (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 | 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
@@ -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
@@ -0,0 +1 @@ +#include <linux/byteorder/little_endian.h>
arch/c6x/include/asm/cache.h new file +29 -0
@@ -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
@@ -0,0 +1,3 @@ +#ifndef _ASM_CONFIG_H_ +#define _ASM_CONFIG_H_ +#endif
arch/c6x/include/asm/errno.h new file +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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) +{ + registerchar *s = (char *) s1; + registerconst 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
@@ -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, registerint ch, registersize_t length) +{ + registerchar *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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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!"
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.
PATCH v2 2/4 c6x: Add support c674x CPUs
In reply to a message not in the archiveC6X 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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 3/4 c6x: Add suport build davinci SOC with c674x CPUs
In reply to a message not in the archiveC674x 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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 4/4 c6x: Add support c6745-som board
In reply to a message not in the archiveAdd 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
@@ -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
@@ -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
@@ -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
v3 cover Add support new arch: c6x
In reply to a message not in the archiveC6X (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
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.crewritten with readl/writel.
- Tom Rini <[email protected]> added to ccChanges 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>
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.crewritten with readl/writel.
- Tom Rini <[email protected]> added to ccChanges 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 getarch/arm/cpu/arm926ejs/davinci/libdavinci.obecause 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.
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.crewritten with readl/writel.
- Tom Rini <[email protected]> added to ccChanges 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 boardQuoted 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 getarch/arm/cpu/arm926ejs/davinci/libdavinci.obecause 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/davincitoarch/c6x/c674x/c674x, remove from them all not used ifdef (#ifdefCONFIG_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>
PATCH v3 1/4 Add support new arch: c6x
In reply to a message not in the archiveC6X (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
@@ -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
@@ -0,0 +1 @@ +#include <linux/byteorder/little_endian.h>
arch/c6x/include/asm/cache.h new file +29 -0
@@ -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
@@ -0,0 +1,3 @@ +#ifndef _ASM_CONFIG_H_ +#define _ASM_CONFIG_H_ +#endif
arch/c6x/include/asm/errno.h new file +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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) +{ + registerchar *s = (char *) s1; + registerconst 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
@@ -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, registerint ch, registersize_t length) +{ + registerchar *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
@@ -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
@@ -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
@@ -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
@@ -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
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.
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 inarch/c6x/include/asmcome from c6x-linux project (http://linux-c6x.org)Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
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@@ -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@@ -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>
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 inarch/c6x/include/asmcome from c6x-linux project
(http://linux-c6x.org)
Quoted 8 lines
Quoted 2 lines
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>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 commit27406e978f596a646b87941cba5247eb0ccc8916
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_HTabs 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
-0common/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@@ -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)todefined(CONFIG_ARM)||defined(CONFIG_C6X).Thanks!
--
Tom
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/asmcome from c6x-linux project
(http://linux-c6x.org)Signed-off-by Dmitry Bondar <[email protected]> Cc: Tom Rini
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
27406e978f596a646b87941cba5247eb0ccc8916Must 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/asmandarch/c6x/libcome from linux kernel, c6x headers (arch/c6x/include/asm) in linux kernel mainline from commita7f626c1948ab6178d2338831c5ffea7385e9f7fc6x libs (arch/c6x/lib) in linux kernel mainline from09831ca73443bd819ad7993db5409b19c899ba33"
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-----
PATCH v3 1/4 Add support new arch: c6x
In reply to bond at inmys.ruDear 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 commit27406e978f596a646b87941cba5247eb0ccc8916Must 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
PATCH v3 1/4 Add support new arch: c6x
In reply to Dmitry BondarQuoted 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 inarch/c6x/include/asmcome 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) +{ + registerchar *s = (char *) s1; + registerconst 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, registerint ch, registersize_t length) +{ + registerchar *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>
PATCH v3 2/4 c6x: Add support c674x CPUs
In reply to a message not in the archiveC6X 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
@@ -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
@@ -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
@@ -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
@@ -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
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).
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
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>
PATCH v3 2/4 c6x: Add support c674x CPUs
In reply to Dmitry BondarQuoted 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>
PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs
In reply to a message not in the archiveC674x 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
@@ -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
@@ -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
@@ -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
@@ -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
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 inarch/arm/cpu/arm926ejs/davinciThis patch allow compile davinci SOC code whith c674x CPU.Reset code rewritten in C for compile not only for arm.
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
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>
PATCH 1/1 davinci, c6x: Always use C version of reset code
In reply to Dmitry BondarWe 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
@@ -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
@@ -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
@@ -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
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.
Tested-by Matt Porter <[email protected]>Signed-off-by Tom Rini <[email protected]>
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>
PATCH v3 3/4 c6x: Add suport build davinci SOC with c674x CPUs
In reply to Dmitry Bondarmkconfig
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>
PATCH v3 4/4 c6x: Add support c6745-som board
In reply to a message not in the archiveAdd 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
@@ -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
@@ -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
@@ -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
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.
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
[snip]
Quoted 5 lines
MAINTAINERS +0
-0
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@@ -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.hboard/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>
PATCH v3 4/4 c6x: Add support c6745-som board
In reply to Dmitry Bondarboard/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>
PATCH v3 4/4 c6x: Add support c6745-som board
In reply to Dmitry BondarDear 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.
Signed-off-by Dmitry Bondar <[email protected]>Cc Tom Rini <[email protected]>
...
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.