summaryrefslogtreecommitdiffstats
path: root/bsps/arm/tms570
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-25 15:06:08 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-26 07:17:57 +0200
commiteb36d1198cdf9dc1e2f776ef6e1e38755f6d13c5 (patch)
tree14177ad7a58c06a3c537d1e55dae7bc369a1a4b9 /bsps/arm/tms570
parentbsps: Remove unmaintained times files (diff)
downloadrtems-eb36d1198cdf9dc1e2f776ef6e1e38755f6d13c5.tar.bz2
bsps: Move documentation, etc. files to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'bsps/arm/tms570')
-rw-r--r--bsps/arm/tms570/README148
1 files changed, 148 insertions, 0 deletions
diff --git a/bsps/arm/tms570/README b/bsps/arm/tms570/README
new file mode 100644
index 0000000000..2a0bd4c8e4
--- /dev/null
+++ b/bsps/arm/tms570/README
@@ -0,0 +1,148 @@
+Development Board: TMS570LS31x Hercules Development Kit from TI
+
+http://www.ti.com/tool/tmds570ls31hdk
+
+Overview
+--------
+
+Drivers:
+
+ o Console
+ o Clock
+ o Ethernet - external lwIP fork repository
+
+BSP variants:
+ tms570ls3137_hdk_intram - place code and data into internal SRAM
+ tms570ls3137_hdk_sdram - place code into external SDRAM and data to SRAM
+ tms570ls3137_hdk_with_loader - reserve 256kB at Flash start for loader
+ and place RTEMS application from address
+ 0x00040000
+ tms570ls3137_hdk - variant for stand-alone RTEMS application stored
+ and running directly from flash. This variant
+ requires initialization of hardware to be integrated
+ into RTEMS. RTEMS has to be configured with
+ TMS570_USE_HWINIT_STARTUP=1
+ and initialization code has to be included in the sources.
+
+Tool-chain used for development
+-------------------------------
+
+ arm-rtems4.12-gcc (GCC) 6.1.1 20160526 + Newlib 2.4.0.20160527 + Binutils 2.26.20160125
+
+ CFLAGS="-O2 -pipe" LDFLAGS=-s \
+ ../../../src/gcc-6.1/configure --target=arm-rtems4.12 --prefix=/usr \
+ --enable-languages=c,c++ \
+ --disable-libstdcxx-pch \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --enable-threads \
+ --enable-target-optspace \
+ --with-system-zlib \
+ --verbose \
+ --disable-nls --without-included-gettext \
+ --disable-win32-registry \
+ --with-newlib \
+ --enable-plugin \
+ --enable-newlib-io-c99-formats \
+ --enable-version-specific-runtime-libs \
+ --enable-newlib-iconv \
+ --disable-lto \
+ --disable-lto \
+ --enable-libgomp \
+ --enable-newlib-iconv \
+ --enable-newlib-iconv-encodings="iso_8859_1,utf_8" \
+
+All patches required for Cortex-R and big-endian ARM support are already
+integrated in GCC the mainline.
+
+RTEMS build configuration used for testing of self contained
+applications to run directly from Flash
+
+ ../../../src/rtems/configure --target=arm-rtems4.12 --prefix=/opt/rtems4.12 \
+ --enable-rtems-inlines --disable-multiprocessing --enable-cxx \
+ --enable-rdbg --enable-maintainer-mode --enable-tests=samples \
+ --disable-networking --enable-posix --enable-itron --disable-ada \
+ --disable-expada --disable-multilib --disable-docs \
+ --enable-rtemsbsp="tms570ls3137_hdk" \
+ --enable-rtems-debug \
+ TMS570_USE_HWINIT_STARTUP=1
+
+Execution
+---------
+
+Application build by above process can be directly programmed
+into Flash and run.
+
+For test and debug purposes, TI's HalCoGen generated application
+is used to set up the board and then the RTEMS application
+image is loaded using OpenOCD to internal EEC SRAM or external SDRAM.
+This prevents wear of Flash which has limited guaranteed
+erase cycles count.
+
+The following features are implemented in the BSP only partially:
+
+ + Initial CPU and peripheral initialization
+ + Cores Self-test
+
+Setup application code is available there:
+ https://github.com/hornmich/tms570ls3137-hdk-sdram
+
+TMDS570LS31HDK setup to use SDRAM to load and debug RTEMS applications
+-----------------------------------------------------------------------
+
+ o Program SDRAM_SCI_configuration-program or another boot loader
+ (for example ETHERNET XCP is developed)
+ o write BSP application either to sdram or intram and jump to RTEMS start code
+
+ETHERNET
+--------
+
+For ETHERNET, the lwIP port for TMS570LS3137 has been developed
+at Industrial Informatics Group of Czech Technical University
+in Prague and development versions are available on SourceForge.
+
+The RTEMS and TMS570 support is included in uLAN project lwIP
+repository for now
+
+ https://sourceforge.net/p/ulan/lwip-omk/
+
+But other place should be found when RTEMS lwIP
+integration with read, write, close etc. functions
+is implemented in future.
+
+Adapt BSP for another TMS570 based hardware
+-------------------------------------------
+
+When TMS570_USE_HWINIT_STARTUP=1 then quite complete
+initialization and selft-test code is included in TMS570
+BSP build. The support included in hwinit subdirectory
+provides version of bsp_start_hook_0 and bsp_start_hook_1
+which proceeds many self-tests functions, clocks, PLLs
+peripherals and other subsystems configuration.
+
+Complete pin multiplexer initialization according
+to the list of individual pins functions is included.
+Pins function definition can be found and altered
+in a file
+
+ rtems/c/src/lib/libbsp/arm/tms570/hwinit/init_pinmux.c
+
+Complete "database" of all possible pin functions for
+TMS570LS3137 chip is provided in a file
+
+ rtems/c/src/lib/libbsp/arm/tms570/include/tms570ls3137zwt-pins.h
+
+If another package or chip is considered then tools found
+in next repository can be used or extended to generate header
+files and pins "database"
+
+ https://github.com/AoLaD/rtems-tms570-utils
+
+Links to additional information
+-------------------------------
+
+Additional information about the BSP and board can be found at
+ https://devel.rtems.org/wiki/TBR/BSP/Tms570
+
+Additional information about the CPU can be found at
+ http://www.ti.com/product/tms570ls3137