[U-Boot] [PATCH v3 0/4] Add support new arch: c6x

C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments. --- Changes for v2: - reset_c.c rewritten with readl/writel. - Tom Rini trini@ti.com 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

On Mon, Jun 25, 2012 at 10:02:37PM +0400, Dmitry Bondar wrote:
C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini trini@ti.com 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
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.

On Mon, 25/06/2012 at 15:31 -0700, Tom Rini wrote:
On Mon, Jun 25, 2012 at 10:02:37PM +0400, Dmitry Bondar wrote:
C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini trini@ti.com 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
I found a good toolchain and gave building the series a whirl, and here's a few things that need fixing:
- The davinci symlink isn't safe, running make again results in ln complaining.
- The symlink doesn't work in conjunction with separate object directories as it is in the main src tree.
- With O= we get arch/arm/cpu/arm926ejs/davinci/libdavinci.o because of the above, which makes link fail.
May be i must copy pinmux.c,reset.c,timer.c,cpu.c from arch/arm/arm926ejs/davinci to arch/c6x/c674x/c674x, remove from them all not used ifdef (#ifdef CONFIG_SOC_DM355) and don't set in boards.cfg SOC for board? This allow don't use symlink.

On Thu, Jun 28, 2012 at 09:43:57PM +0400, Dmitry Bondar wrote:
On Mon, 25/06/2012 at 15:31 -0700, Tom Rini wrote:
On Mon, Jun 25, 2012 at 10:02:37PM +0400, Dmitry Bondar wrote:
C6X (C6000) is family of fixed and floating-point DSPs manufactured by Texas Instruments.
Changes for v2:
- reset_c.c rewritten with readl/writel.
- Tom Rini trini@ti.com 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
I found a good toolchain and gave building the series a whirl, and here's a few things that need fixing:
- The davinci symlink isn't safe, running make again results in ln complaining.
- The symlink doesn't work in conjunction with separate object directories as it is in the main src tree.
- With O= we get arch/arm/cpu/arm926ejs/davinci/libdavinci.o because of the above, which makes link fail.
May be i must copy pinmux.c,reset.c,timer.c,cpu.c from arch/arm/arm926ejs/davinci to arch/c6x/c674x/c674x, remove from them all not used ifdef (#ifdef CONFIG_SOC_DM355) and don't set in boards.cfg SOC for board? This allow don't use symlink.
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.
participants (2)
-
Dmitry Bondar
-
Tom Rini