[rtems commit] arm/tms570: document BSP setup with included hardware initialization.

Pavel Pisa ppisa at rtems.org
Sun Oct 2 09:38:20 UTC 2016


Module:    rtems
Branch:    4.11
Commit:    2b54e73fb0dff5e67919aed73eae43ec0393e353
Changeset: http://git.rtems.org/rtems/commit/?id=2b54e73fb0dff5e67919aed73eae43ec0393e353

Author:    Pavel Pisa <pisa at cmp.felk.cvut.cz>
Date:      Thu Sep 22 09:56:06 2016 +0200

arm/tms570: document BSP setup with included hardware initialization.

---

 c/src/lib/libbsp/arm/tms570/README | 122 ++++++++++++++++++++++++++++++-------
 1 file changed, 100 insertions(+), 22 deletions(-)

diff --git a/c/src/lib/libbsp/arm/tms570/README b/c/src/lib/libbsp/arm/tms570/README
index f48744f..2a0bd4c 100644
--- a/c/src/lib/libbsp/arm/tms570/README
+++ b/c/src/lib/libbsp/arm/tms570/README
@@ -2,11 +2,14 @@ Development Board: TMS570LS31x Hercules Development Kit from TI
 
 http://www.ti.com/tool/tmds570ls31hdk
 
+Overview
+--------
+
 Drivers:
 
-	o Console
-	o Clock
-  o Ethernet - work in progress
+  o Console
+  o Clock
+  o Ethernet - external lwIP fork repository
 
 BSP variants:
   tms570ls3137_hdk_intram - place code and data into internal SRAM
@@ -14,14 +17,20 @@ BSP variants:
   tms570ls3137_hdk_with_loader - reserve 256kB at Flash start for loader
                                  and place RTEMS application from address
                                  0x00040000
-  tms570ls3137_hdk - variant prepared for stand-alone RTEMS application
-                      stored and running directly from flash. Not working yet.
+  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
+-------------------------------
 
-Tool-chain
-  GCC 4.9.0 + Newlib 2.1.0 + Binutils 2.24 configuration:
+  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-4.9/configure --target=arm-rtems4.11 --prefix=/usr \
+  ../../../src/gcc-6.1/configure --target=arm-rtems4.12 --prefix=/usr \
                --enable-languages=c,c++ \
                --disable-libstdcxx-pch \
                --with-gnu-ld \
@@ -38,33 +47,102 @@ Tool-chain
                --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
 
-Patches required for Cortex-R and big-endian ARM support are already
-accepted by the mainline.
+  ../../../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
+---------
 
-Currently, a bootloader is not used. 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 DRAM. The following features are
-not implemented in the BSP:
+Application build by above process can be directly programmed
+into Flash and run.
 
- + Initial complex CPU and peripheral initialization
+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
 
-Howto setup TMDS570LS31HDK?
+TMDS570LS31HDK setup to use SDRAM to load and debug RTEMS applications
+-----------------------------------------------------------------------
 
-	o Unpack board.	
-	o Verify that demo application runs.
-  o Upload bootloader specified above
+  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
 
-Additional information about the board can be found at
-  http://www.rtems.org/wiki/index.php/Tms570
+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



More information about the vc mailing list