Hello Martin and others, I want to inform you about TMS570 BSP umpdates and discuss possible development directions.
The discussion is related to actual state of tms570-bsp branch in Premysl Houdek's RTEMS repository https://github.com/AoLaD/rtems/tree/tms570-bsp The branch is based on RTEMS-4.11 from September for now. But rebasing to actual 4.11 is planned soon. When we setup test environment for master we rearrange changes to logical changes sequence intended for inclusion to mainline. The most of changes should/could go to 4.11 release as well. The main changes * corrected EMAC include files (original reg_emac.h has been mistakenly taken from MDIO support block). The correct file for EMAC control registers is reg_emacc.h https://github.com/AoLaD/rtems/blob/tms570-bsp/c/src/lib/libbsp/arm/tms570/include/ti_herc/reg_emacc.h * initial support for pin multiplexor setup has been added to allow setup correct functions of pins used by ETHERNET controller https://github.com/AoLaD/rtems/commit/09fcf37effd8fb7e1661c0af43d2dca009c40af5 Only functions provided are tms570_bsp_pin_set_function() and tms570_bsp_pin_clear_function() for now. The complete GPIO API or at least xx_gpio_set(), xx_gpio_clear(), xx_gpio_write(), xx_gpio_get() and lpc24xx_pin_config() would be nice in future. If the actual pin configuration should be reimplemented to support that API or if it API should be wrapper to pinmux functions is a question. The mapping between GPIO and actual pins is quite complex in TMS570 case because pins are mapped by pinmux to peripherals and in case, that given peripheral does not use given pin/terminal for its specific purpose then peripheral includes set of registers to use its available pins as GPIO. I think that actual simple code is valuable and should be included in mainline for now even if there is found time to replace it by more complete one later. * there are some changes used for VIM, POM and other parts debugging and issues solving. Most of these is not intended for mainline. * set of changes to not use exception vectors replace if it is not required (RTEMS application image starts at address 0). When replacement is necessary, POM is used only to deliver target addresses and not to replace jump instructions now because instruction fetches from POM reveals to be unreliable. All related code is amended by comprehensive comments to understand its function and reasons why used solution has been selected https://github.com/AoLaD/rtems/commit/7dab9093bc8211816def58460efef8958b041904 corresponding skeleton of bootup/loader code can be found in next repo https://github.com/hornmich/tms570ls3137-hdk-sdram/blob/master/SDRAM_SCI_configuration/source/sys_intvecs.asm I return to the loader problems in followup e-email. TMES570 networking support. We would like to port or work from other TMS570 project to have native RTEMS included stack driver but we failed with that because of limited time for now. Even priority to use actual RTEMS stack has lowered due to RTEMS project global decision to prioritize LwIP and complete new BSD stack. So we invested or time to LwIP TMS570 support. The LwIP code with RTEMS system port and TMS570 driver included can be found in next repository (it is/may be only temporal location). We started from uLAN lwip-omk because it has been structured a way that we can easily start development in environment we know/have build for other projects. http://sourceforge.net/p/ulan/lwip-omk/ci/master/tree/ TMS570 driver location http://sourceforge.net/p/ulan/lwip-omk/ci/master/tree/ports/driver/tms570_emac/ RTEMS system glue code for LwIP http://sourceforge.net/p/ulan/lwip-omk/ci/master/tree/ports/os/rtems/ Test application is included in our RTEMS OM template http://rtime.felk.cvut.cz/gitweb/rtems-devel.git http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-omk-template/applwiptest test application setups networking, obtains address from DHHCP and starts TCP/IP echo server at port 23 (telnet). Setup for TMS570 networking test git clone git://rtime.felk.cvut.cz/rtems-devel.git cd rtems-devel/rtems-omk-template git clone -b master git://git.code.sf.net/p/ulan/lwip-omk lwip ln -s config/config.tms570 config.target # check that RTEMS_MAKEFILE_PATH points to right RTEMS BSP install location ln -s config/config.tms570-lwip config.omk # tune options and parameters in config.omk file Application build in _compiled/tms570ls3137_hdk_sdram/bin/applwiptest is image intended for run from SDRAM, so loader, HW setup is required. We use above mentioned tms570ls3137-hdk-sdram for debugging and load application over OpenOCD. Scripts https://github.com/AoLaD/rtems-tms570-utils/tree/master/openocd OpenOCD with TMS570 adaptations and F021 support http://cmp.felk.cvut.cz/~pisa/tms570/openocd-tms570-f021-wip.tar.gz http://cmp.felk.cvut.cz/~pisa/tms570/openocd.configure-smirnov Best wishes, Pavel Pisa _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel