changeset 3093:131d5a5224e5

ecos.db: Add TWR-K60N512-FXM, Freescale DSPI driver, Freescale EDMA library, Micron CellularRAM support.
author vae
date Wed, 22 Feb 2012 21:47:50 +0000
parents cce20af75360
children 7595029fc92d
files packages/ChangeLog packages/ecos.db packages/net/lwip_tcpip/current/ChangeLog packages/net/lwip_tcpip/current/tests/nc_test_slave.c
diffstat 4 files changed, 127 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/packages/ChangeLog
+++ b/packages/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-22  Ilija Kocho  <ilijak@siva.com.mk>
+
+    ecos.db: Add TWR-K60N512-FXM, Freescale DSPI driver,
+    Freescale EDMA library, Micron CellularRAM support.
+
 2011-10-30  Ilija Kocho  <ilijak@siva.com.mk>
 
 	* NEWS, ecos.db: Add Freescale Kinetis variant HAL, board support
--- a/packages/ecos.db
+++ b/packages/ecos.db
@@ -284,6 +284,16 @@ package CYGPKG_DEVS_FLASH_SPI_SST25XX {
         Technology."
 }
 
+package CYGPKG_DEVS_FLASH_SST25XX_FREESCALE_DSPI {
+    alias         { "SST25XX FLASH over Freescale DSPI" }
+
+    directory     devs/flash/freescale/dspi/sst25xx
+    script        flash_sst25xx_freescale_dspi.cdl
+    description   "
+        This package provides a driver for SST25XX serial FLASH
+        attached to a Freescale DSPI interfaces."
+}
+
 package CYGPKG_DEVS_FLASH_ARM_PID {
 	alias 		{ "Support for flash memory on ARM/PID board" flash_arm_pid }
 	directory	devs/flash/arm/pid
@@ -934,6 +944,16 @@ package CYGPKG_DEVS_FLASH_ARM_OLPCX2294_
             and LPC-L2294-1M boards. It uses eCos Flash v2 API."
 }
 
+package CYGPKG_DEVS_RAM_MICRON_CELLULARRAM {
+	alias		{ "Micron CellularRam 1.5 support" }
+	directory	hal/misc/ram/micron/cellularram
+	script		ram_micron_cellularram.cdl
+	hardware
+        description "
+           This package contains hardware support for Micron
+           CellularRam memory devices."
+}
+
 package CYGPKG_DEVS_TOUCH_IPAQ {
 	alias 		{ "Touch screen support for iPAQ" touch_ipaq }
 	directory	devs/touch/arm/ipaq
@@ -2432,6 +2452,15 @@ package CYGPKG_DEVS_SPI_ARM_LPC2XXX {
                  controller family."
 }
 
+package CYGPKG_DEVS_SPI_FREESCALE_DSPI {
+    alias         { "Freescale DSPI driver" }
+    hardware
+    directory     devs/spi/freescale/dspi
+    script        spi_freescale_dspi.cdl
+    description   "
+        This package provides a driver for the Freescale DSPI interfaces."
+}
+
 package CYGPKG_IO_SPI {
         alias      { "Generic SPI support" spi io_spi spi_io }
         directory  io/spi
@@ -2770,10 +2799,10 @@ package CYGPKG_USTL {
 	directory	language/cxx/ustl
 	script		ustl.cdl
 	description  "
-This package provides the uSTL library. uSTL is a 
-partial implementation of the STL specification intended to 
-reduce code size of the derivative programs. This allows the 
-user application to use well known standard C++ STL library 
+This package provides the uSTL library. uSTL is a 
+partial implementation of the STL specification intended to 
+reduce code size of the derivative programs. This allows the 
+user application to use well known standard C++ STL library 
 containers, streams, iterators, algorithms and functors."
 }
 
@@ -6843,6 +6872,16 @@ package CYGPKG_DEVS_DISK_MMC {
     description "Disk driver for MMC cards"
 }
 
+package CYGPKG_DEVS_DISK_MMC_FREESCALE_DSPI {
+    alias         { "MMC/SD disk over Freescale DSPI" }
+    hardware
+    directory     devs/disk/spi/freescale/dspi/mmc
+    script        disk_mmc_freescale_dspi.cdl
+    description   "
+        This package provides a driver for MMC/SD disk attached to a
+        Freescale DSPI interface."
+}
+
 package CYGPKG_IO_DISK {
     alias           { "Disk device drivers" disk io_disk }
     directory       io/disk
@@ -7105,6 +7144,16 @@ target lpc1766stk {
             to run eCos on the Olimex LPC-1766-STK board."
 }
 
+package CYGPKG_HAL_FREESCALE_EDMA {
+    alias         { "Freescale eDMA driver" }
+    hardware
+    directory     hal/misc/freescale/edma
+    script        hal_freescale_edma.cdl
+    description   "
+        This package provides a library for the Freescale eDMA (Enhanced DMA)
+        controller."
+}
+
 package CYGPKG_HAL_CORTEXM_KINETIS {
 	alias		{ "Freescale Kinetis variant HAL" hal_cortexm_kinetis }
 	directory	hal/cortexm/kinetis/var
@@ -7136,16 +7185,31 @@ package CYGPKG_HAL_CORTEXM_KINETIS_TWR_K
         eCos on the Freescale Tower development system."
 }
 
+package CYGPKG_HAL_CORTEXM_KINETIS_TWR_K60N512_FXM {
+	alias		{ "Freescale TWR-K60N512-FXM HAL" hal_cortexm_twr_k60n512_fxm }
+	directory	hal/cortexm/kinetis/twr_k60n512_fxm
+	script		hal_cortexm_kinetis_twr_k60n512_fxm.cdl
+	hardware
+        description "
+        The TWR-K60N512-FXM HAL package provides the support needed to run
+        eCos on the Freescale Tower development system equpped with TWR-FXM module."
+}
+
 target freescale_twr_k60n512 {
         alias { "Freescale Kinetis TWR-K60N512" twr_k60n512 }
         packages { CYGPKG_HAL_CORTEXM
                    CYGPKG_HAL_CORTEXM_KINETIS
                    CYGPKG_HAL_CORTEXM_KINETIS_TWR_K60N512
+                   CYGPKG_HAL_FREESCALE_EDMA
                    CYGPKG_IO_SERIAL_FREESCALE_UART_HDR
                    CYGPKG_IO_SERIAL_FREESCALE_UART
                    CYGPKG_DEVICES_WALLCLOCK_KINETIS_RTC
                    CYGPKG_DEVS_ETH_PHY
                    CYGPKG_DEVS_ETH_FREESCALE_ENET
+                   CYGPKG_IO_SPI
+                   CYGPKG_DEVS_SPI_FREESCALE_DSPI
+                   CYGPKG_DEVS_DISK_MMC
+                   CYGPKG_DEVS_DISK_MMC_FREESCALE_DSPI
                  }
         description "The freescale_twr_k60n512 target provides the packages needed
         to run eCos on the Freescale TWR-K60N512 development system."
@@ -7156,13 +7220,43 @@ target freescale_twr_k40x256 {
         packages { CYGPKG_HAL_CORTEXM
                    CYGPKG_HAL_CORTEXM_KINETIS
                    CYGPKG_HAL_CORTEXM_KINETIS_TWR_K40X256
+                   CYGPKG_HAL_FREESCALE_EDMA
                    CYGPKG_IO_SERIAL_FREESCALE_UART_HDR
                    CYGPKG_IO_SERIAL_FREESCALE_UART
                    CYGPKG_DEVICES_WALLCLOCK_KINETIS_RTC
+                   CYGPKG_IO_SPI
+                   CYGPKG_DEVS_SPI_FREESCALE_DSPI
+                   CYGPKG_DEVS_DISK_MMC
+                   CYGPKG_DEVS_DISK_MMC_FREESCALE_DSPI
                  }
         description "The freescale_twr_k40x256 target provides the packages needed
         to run eCos on the Freescale TWR-K40X256 development system."
 }
 
+target freescale_twr_k60n512_fxm {
+        alias { "Freescale Kinetis TWR-K60N512-FXM" twr_k60n512_fxm }
+        packages { CYGPKG_HAL_CORTEXM
+                   CYGPKG_HAL_CORTEXM_KINETIS
+                   CYGPKG_HAL_CORTEXM_KINETIS_TWR_K60N512_FXM
+                   CYGPKG_HAL_FREESCALE_EDMA
+                   CYGPKG_IO_SERIAL_FREESCALE_UART_HDR
+                   CYGPKG_IO_SERIAL_FREESCALE_UART
+                   CYGPKG_DEVICES_WALLCLOCK_KINETIS_RTC
+                   CYGPKG_DEVS_ETH_PHY
+                   CYGPKG_DEVS_ETH_FREESCALE_ENET
+                   CYGPKG_DEVS_RAM_MICRON_CELLULARRAM
+                   CYGPKG_IO_SPI
+                   CYGPKG_DEVS_SPI_FREESCALE_DSPI
+                   CYGPKG_DEVS_DISK_MMC
+                   CYGPKG_DEVS_DISK_MMC_FREESCALE_DSPI
+                   CYGPKG_DEVS_FLASH_SPI_SST25XX
+                   CYGPKG_DEVS_FLASH_SST25XX_FREESCALE_DSPI
+                 }
+        description "
+            The freescale_twr_k60n512_fxm target provides the packages needed
+            to run eCos on the Freescale TWR-K60N512 development system
+            equipped with TWR-FXM external memory module."
+}
+
 # ==========================================================================
 # End of ecos.db
--- a/packages/net/lwip_tcpip/current/ChangeLog
+++ b/packages/net/lwip_tcpip/current/ChangeLog
@@ -1,3 +1,10 @@
+2011-08-23  Ilija Kocho  <ilijak@siva.com.mk>
+
+	* tests/nc_test_slave.c: Reduced stack sizes of IDLE, LOAD and TMAIN
+	threads as well as NUM_LOAD_THREADS to 5 (was 10) in order to fit the
+	test for targets with as low as 128KiB RAM.
+	[ Bugzilla 1001344 ]
+
 2011-08-25  John Dallaway  <john@dallaway.org.uk>
 
 	* include/lwipopts.h: Fix naming of
--- a/packages/net/lwip_tcpip/current/tests/nc_test_slave.c
+++ b/packages/net/lwip_tcpip/current/tests/nc_test_slave.c
@@ -37,6 +37,7 @@
 
 #include <lwip.h>
 #include <lwip/sockets.h>
+#include <stdio.h>
 
 #ifdef CYGFUN_LWIP_MODE_SEQUENTIAL
 #if LWIP_SOCKET
@@ -56,26 +57,28 @@
 
 #include "nc_test_framework.h"
 
-
-#define STACK_SIZE               (CYGNUM_HAL_STACK_SIZE_TYPICAL + 0x1000)
+#define MAIN_STACK_SIZE          (CYGNUM_HAL_STACK_SIZE_TYPICAL + 0x1000)
+#define LOAD_STACK_SIZE          (2048)
+#define IDLE_STACK_SIZE          (4096)
+#define TMAIN_STACK_SIZE         (2048)
 #define MAX_LOAD_THREAD_LEVEL    20
 #define MIN_LOAD_THREAD_LEVEL    0
-#define NUM_LOAD_THREADS         10
-#define CYGPKG_NET_THREAD_PRIORITY 7
+#define NUM_LOAD_THREADS         5  // NC Master requires up to 50% load.
+#define CYGPKG_NET_THREAD_PRIORITY CYGNUM_LWIP_THREAD_TCPIP_PRIORITY
 #define IDLE_THREAD_PRIORITY     CYGPKG_NET_THREAD_PRIORITY+3
 #define LOAD_THREAD_PRIORITY     CYGPKG_NET_THREAD_PRIORITY-1
 #define MAIN_THREAD_PRIORITY     CYGPKG_NET_THREAD_PRIORITY-2
 #define DESIRED_BACKGROUND_LOAD  20
 
-static char         main_thread_stack[STACK_SIZE];
-static char         idle_thread_stack[STACK_SIZE];
+static char         main_thread_stack[MAIN_STACK_SIZE];
+static char         idle_thread_stack[IDLE_STACK_SIZE];
 static cyg_thread   idle_thread_data;
 static cyg_handle_t idle_thread_handle;
 static cyg_sem_t    idle_thread_sem;
-volatile static long long    idle_thread_count;
+volatile static long long idle_thread_count;
 static cyg_tick_count_t idle_thread_start_time;
 static cyg_tick_count_t idle_thread_stop_time;
-static char         load_thread_stack[NUM_LOAD_THREADS][STACK_SIZE];
+static char         load_thread_stack[NUM_LOAD_THREADS][LOAD_STACK_SIZE];
 static cyg_thread   load_thread_data[NUM_LOAD_THREADS];
 static cyg_handle_t load_thread_handle[NUM_LOAD_THREADS];
 static cyg_sem_t    load_thread_sem[NUM_LOAD_THREADS];
@@ -90,7 +93,7 @@ static void do_some_random_computation(i
 extern void show_net_times(void);
 #endif
 
-#define MAX_BUF 8192
+#define MAX_BUF (8192+4096)
 static unsigned char in_buf[MAX_BUF], out_buf[MAX_BUF];
 
 extern void
@@ -696,7 +699,7 @@ net_idle(cyg_addrword_t param)
     }
 }
 
-static char stack[STACK_SIZE];
+static char stack[TMAIN_STACK_SIZE];
 static cyg_thread thread_data;
 static cyg_handle_t thread_handle;
 
@@ -704,7 +707,7 @@ void
 tmain(cyg_addrword_t p)
 {
     cyg_lwip_sequential_init();
-    cyg_lwip_thread_new("main", net_test, NULL, main_thread_stack, STACK_SIZE, MAIN_THREAD_PRIORITY);
+    cyg_lwip_thread_new("main", net_test, NULL, main_thread_stack, MAIN_STACK_SIZE, MAIN_THREAD_PRIORITY);
 }
 
 externC void
@@ -721,7 +724,7 @@ cyg_start( void )
                       0,                        // entry parameter
                       "Network idle",           // Name
                       &idle_thread_stack[0],    // Stack
-                      STACK_SIZE,               // Size
+                      IDLE_STACK_SIZE,          // Size
                       &idle_thread_handle,      // Handle
                       &idle_thread_data         // Thread data structure
     );
@@ -735,7 +738,7 @@ cyg_start( void )
                           i,                        // entry parameter
                           "Background load",        // Name
                           &load_thread_stack[i][0], // Stack
-                          STACK_SIZE,               // Size
+                          LOAD_STACK_SIZE,          // Size
                           &load_thread_handle[i],   // Handle
                           &load_thread_data[i]      // Thread data structure
         );
@@ -748,7 +751,7 @@ cyg_start( void )
                       0,                        // entry parameter
                       "socket echo test",       // Name
                       &stack[0],                // Stack
-                      STACK_SIZE,               // Size
+                      TMAIN_STACK_SIZE,         // Size
                       &thread_handle,           // Handle
                       &thread_data              // Thread data structure
             );