<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-08-30)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-30 Joel Sherrill <joel.sherrill@oarcorp.com>

        * bootcard.c: Revert patch and add comment clarifying code and need for
        cast.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/shared/ChangeLog.diff?r1=text&tr1=1.189&r2=text&tr2=1.190&diff_format=h">M</a></td><td width='1%'>1.190</td><td width='100%'>c/src/lib/libbsp/shared/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/shared/bootcard.c.diff?r1=text&tr1=1.51&r2=text&tr2=1.52&diff_format=h">M</a></td><td width='1%'>1.52</td><td width='100%'>c/src/lib/libbsp/shared/bootcard.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/shared/ChangeLog:1.189 rtems/c/src/lib/libbsp/shared/ChangeLog:1.190
--- rtems/c/src/lib/libbsp/shared/ChangeLog:1.189       Mon Aug 29 16:38:08 2011
+++ rtems/c/src/lib/libbsp/shared/ChangeLog     Tue Aug 30 07:16:24 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-08-30    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * bootcard.c: Revert patch and add comment clarifying code and need for
+       cast.
+
</font> 2011-08-29        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * bootcard.c: Correct printk() format.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/shared/bootcard.c:1.51 rtems/c/src/lib/libbsp/shared/bootcard.c:1.52
--- rtems/c/src/lib/libbsp/shared/bootcard.c:1.51       Mon Aug 29 16:38:09 2011
+++ rtems/c/src/lib/libbsp/shared/bootcard.c    Tue Aug 30 07:16:24 2011
</font><font color='#997700'>@@ -39,7 +39,7 @@
</font>  *  Thanks to Chris Johns <cjohns@plessey.com.au> for the idea
  *  to move C++ global constructors into the first task.
  *
<font color='#880000'>- *  COPYRIGHT (c) 1989-2008.
</font><font color='#000088'>+ *  COPYRIGHT (c) 1989-2011.
</font>  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
<font color='#997700'>@@ -176,11 +176,20 @@
</font>   }
 #endif
 
<font color='#000088'>+  /*
+   *  If the user has configured a set of objects which will require more
+   *  workspace than is actually available, print a message indicating
+   *  such and return to the invoking initialization code.
+   *
+   *  NOTE: Output from printk() may not work at this point on some BSPs.
+   *
+   *  NOTE: Use cast to (void *) and %p since these are uintptr_t types.
+   */
</font>   if ( work_area_size <= Configuration.work_space_size ) {
     printk(
<font color='#880000'>-      "bootcard: work space too big for work area: 0x%08x > 0x%08x\n",
-      Configuration.work_space_size,
-      work_area_size
</font><font color='#000088'>+      "bootcard: work space too big for work area: %p > %p\n",
+      (void *) Configuration.work_space_size,
+      (void *) work_area_size
</font>     );
     bsp_cleanup(1);
     return 1;
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-30 Peter Dufault <dufault@hda.com>

        * libchip/network/smc91111.c: Modify to support the MPC5554 using new
        exceptions.  Fix where the networking status is being dumped to a
        single thousand-character line.  Add support for when the chip loaded
        it's MAC address from a serial chip at reset (the
        SMC91111_ENADDR_IS_SETUP option).  Call lan91cxx_start() every time
        the the device is initialized.  Without this change the chip can not
        be "upped" once it has been downed.
        * c/src/libchip/network/smc91111.h: Change the "#ifdef expression" to
        "#if expression".
        * c/src/libchip/network/smc91111exp.h: Add support for new exceptions.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/ChangeLog.diff?r1=text&tr1=1.552&r2=text&tr2=1.553&diff_format=h">M</a></td><td width='1%'>1.553</td><td width='100%'>c/src/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/libchip/network/smc91111.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>c/src/libchip/network/smc91111.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/libchip/network/smc91111.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.12&diff_format=h">M</a></td><td width='1%'>1.12</td><td width='100%'>c/src/libchip/network/smc91111.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/libchip/network/smc91111exp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/libchip/network/smc91111exp.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/ChangeLog:1.552 rtems/c/src/ChangeLog:1.553
--- rtems/c/src/ChangeLog:1.552 Mon Jul 11 08:31:12 2011
+++ rtems/c/src/ChangeLog       Tue Aug 30 08:07:20 2011
</font><font color='#997700'>@@ -1,3 +1,16 @@
</font><font color='#000088'>+2011-08-30    Peter Dufault <dufault@hda.com>
+
+       * libchip/network/smc91111.c: Modify to support the MPC5554 using new
+       exceptions.  Fix where the networking status is being dumped to a
+       single thousand-character line.  Add support for when the chip loaded
+       it's MAC address from a serial chip at reset (the
+       SMC91111_ENADDR_IS_SETUP option).  Call lan91cxx_start() every time
+       the the device is initialized.  Without this change the chip can not
+       be "upped" once it has been downed.
+       * c/src/libchip/network/smc91111.h: Change the "#ifdef expression" to
+       "#if expression".
+       * c/src/libchip/network/smc91111exp.h: Add support for new exceptions.
+
</font> 2011-07-11        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * libchip/serial/ns16550_p.h, libchip/serial/ns16550.c: Remove

<font color='#006600'>diff -u rtems/c/src/libchip/network/smc91111.h:1.6 rtems/c/src/libchip/network/smc91111.h:1.7
--- rtems/c/src/libchip/network/smc91111.h:1.6  Sun Nov 29 21:42:53 2009
+++ rtems/c/src/libchip/network/smc91111.h      Tue Aug 30 08:07:21 2011
</font><font color='#997700'>@@ -451,7 +451,7 @@
</font> 
     /*rtems_interrupt_enable(Irql);*/
 
<font color='#880000'>-#ifdef DEBUG & 32
</font><font color='#000088'>+#if DEBUG & 32
</font>     while ((c = dbg->reg) != -1) {
       if (c == regno) {
         db_printf("%sread  reg [%d:%x] -> 0x%04x (%-20s)\n", dbg_prefix, regno>>3,(regno&0x7)*2, val, dbg->name);
<font color='#997700'>@@ -474,7 +474,7 @@
</font>     debug_regs_pair *dbg = debug_regs; int c;
     uint32_t              Irql;
 
<font color='#880000'>-#ifdef DEBUG & 32
</font><font color='#000088'>+#if DEBUG & 32
</font>     while ((c = dbg->reg) != -1) {
       if (c == regno) {
         db_printf("%swrite reg [%d:%x] <- 0x%04x (%-20s)\n", dbg_prefix, regno>>3, (regno&0x07)*2, val, dbg->name);

<font color='#006600'>diff -u rtems/c/src/libchip/network/smc91111.c:1.11 rtems/c/src/libchip/network/smc91111.c:1.12
--- rtems/c/src/libchip/network/smc91111.c:1.11 Sun Nov 29 21:42:53 2009
+++ rtems/c/src/libchip/network/smc91111.c      Tue Aug 30 08:07:20 2011
</font><font color='#997700'>@@ -5,28 +5,28 @@
</font> #include <rtems.h>
 #include <errno.h>
 
<font color='#000088'>+#include <bsp.h>
+
</font> /*
<font color='#880000'>- *  This driver currently only supports architectures with the old style
- *  exception processing.  The following checks try to keep this
- *  from being compiled on systems which can't support this driver.
</font><font color='#000088'>+ *  This driver currently only supports SPARC with the old style
+ *  exception processing and the Phytec Phycore MPC5554.
+ *  This test keeps it from being compiled on systems which haven't been
+ *  tested.
</font>  *
<font color='#880000'>- *  NOTE: As of 28 September 2005, this has only been tested on the SPARC,
- *        so that is all it is enabled for.
</font>  */
 
<font color='#880000'>-#if defined(__sparc__)
</font><font color='#000088'>+#if defined(__sparc__) || defined(HAS_SMC91111)
</font>   #define SMC91111_SUPPORTED
 #endif
 
 #if defined(SMC91111_SUPPORTED)
 
<font color='#880000'>-#include <bsp.h>
-
</font> #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include <rtems/error.h>
 #include <rtems/rtems_bsdnet.h>
<font color='#000088'>+#include <rtems/irq-extension.h>
</font> 
 #include <sys/param.h>
 #include <sys/mbuf.h>
<font color='#997700'>@@ -54,15 +54,20 @@
</font> /*#define DEBUG (-1)*/
 /*#define DEBUG (-1 & ~(16))*/
 #define DEBUG (0)
<font color='#000088'>+/*#define DEBUG (1)*/
</font> 
 #include "smc91111config.h"
 #include <libchip/smc91111.h>
 
<font color='#000088'>+#ifdef _OLD_EXCEPTIONS
</font> #if defined(__m68k__)
 extern m68k_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
 #else
 extern rtems_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
 #endif
<font color='#000088'>+#else
+#include <rtems/irq-extension.h>
+#endif
</font> 
 struct lan91cxx_priv_data smc91111;
 
<font color='#997700'>@@ -795,33 +800,33 @@
</font>  */
 static void smc91111_stats(struct lan91cxx_priv_data *priv)
 {
<font color='#880000'>-   printf("tx_good             :%-8d", priv->stats.tx_good);
-       printf("tx_max_collisions   :%-8d", priv->stats.tx_max_collisions);
-       printf("tx_late_collisions  :%-8d", priv->stats.tx_late_collisions);
-       printf("tx_underrun         :%-8d", priv->stats.tx_underrun);
-       printf("tx_carrier_loss     :%-8d", priv->stats.tx_carrier_loss);
-       printf("tx_deferred         :%-8d", priv->stats.tx_deferred);
-       printf("tx_sqetesterrors    :%-8d", priv->stats.tx_sqetesterrors);
-       printf("tx_single_collisions:%-8d", priv->stats.tx_single_collisions);
-       printf("tx_mult_collisions  :%-8d", priv->stats.tx_mult_collisions);
-       printf("tx_total_collisions :%-8d", priv->stats.tx_total_collisions);
-       printf("rx_good             :%-8d", priv->stats.rx_good);
-       printf("rx_crc_errors       :%-8d", priv->stats.rx_crc_errors);
-       printf("rx_align_errors     :%-8d", priv->stats.rx_align_errors);
-       printf("rx_resource_errors  :%-8d", priv->stats.rx_resource_errors);
-       printf("rx_overrun_errors   :%-8d", priv->stats.rx_overrun_errors);
-       printf("rx_collisions       :%-8d", priv->stats.rx_collisions);
-       printf("rx_short_frames     :%-8d", priv->stats.rx_short_frames);
-       printf("rx_too_long_frames  :%-8d", priv->stats.rx_too_long_frames);
-       printf("rx_symbol_errors    :%-8d", priv->stats.rx_symbol_errors);
-       printf("interrupts          :%-8d", priv->stats.interrupts);
-       printf("rx_count            :%-8d", priv->stats.rx_count);
-       printf("rx_deliver          :%-8d", priv->stats.rx_deliver);
-       printf("rx_resource         :%-8d", priv->stats.rx_resource);
-       printf("rx_restart          :%-8d", priv->stats.rx_restart);
-       printf("tx_count            :%-8d", priv->stats.tx_count);
-       printf("tx_complete         :%-8d", priv->stats.tx_complete);
-       printf("tx_dropped          :%-8d", priv->stats.tx_dropped);
</font><font color='#000088'>+      printf("tx_good             :%-8d\n", priv->stats.tx_good);
+       printf("tx_max_collisions   :%-8d\n", priv->stats.tx_max_collisions);
+       printf("tx_late_collisions  :%-8d\n", priv->stats.tx_late_collisions);
+       printf("tx_underrun         :%-8d\n", priv->stats.tx_underrun);
+       printf("tx_carrier_loss     :%-8d\n", priv->stats.tx_carrier_loss);
+       printf("tx_deferred         :%-8d\n", priv->stats.tx_deferred);
+       printf("tx_sqetesterrors    :%-8d\n", priv->stats.tx_sqetesterrors);
+       printf("tx_single_collisions:%-8d\n", priv->stats.tx_single_collisions);
+       printf("tx_mult_collisions  :%-8d\n", priv->stats.tx_mult_collisions);
+       printf("tx_total_collisions :%-8d\n", priv->stats.tx_total_collisions);
+       printf("rx_good             :%-8d\n", priv->stats.rx_good);
+       printf("rx_crc_errors       :%-8d\n", priv->stats.rx_crc_errors);
+       printf("rx_align_errors     :%-8d\n", priv->stats.rx_align_errors);
+       printf("rx_resource_errors  :%-8d\n", priv->stats.rx_resource_errors);
+       printf("rx_overrun_errors   :%-8d\n", priv->stats.rx_overrun_errors);
+       printf("rx_collisions       :%-8d\n", priv->stats.rx_collisions);
+       printf("rx_short_frames     :%-8d\n", priv->stats.rx_short_frames);
+       printf("rx_too_long_frames  :%-8d\n", priv->stats.rx_too_long_frames);
+       printf("rx_symbol_errors    :%-8d\n", priv->stats.rx_symbol_errors);
+       printf("interrupts          :%-8d\n", priv->stats.interrupts);
+       printf("rx_count            :%-8d\n", priv->stats.rx_count);
+       printf("rx_deliver          :%-8d\n", priv->stats.rx_deliver);
+       printf("rx_resource         :%-8d\n", priv->stats.rx_resource);
+       printf("rx_restart          :%-8d\n", priv->stats.rx_restart);
+       printf("tx_count            :%-8d\n", priv->stats.tx_count);
+       printf("tx_complete         :%-8d\n", priv->stats.tx_complete);
+       printf("tx_dropped          :%-8d\n", priv->stats.tx_dropped);
</font> }
 
 /*
<font color='#997700'>@@ -948,6 +953,15 @@
</font>   if (config->hardware_address) {
                memcpy(cpd->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN);
        } else {
<font color='#000088'>+#ifdef SMC91111_ENADDR_IS_SETUP
+        /* The address was put in the chip at reset time.  Retrieve it. */
+        int i;
+        for (i = 0; i < sizeof(cpd->enaddr); i += 2) {
+            unsigned short r = get_reg(cpd, LAN91CXX_IA01 + i / 2);
+            cpd->arpcom.ac_enaddr[i] = r;
+            cpd->arpcom.ac_enaddr[i+1] = r >> 8;
+        }
+#else
</font>           /* dummy default address */
                cpd->arpcom.ac_enaddr[0] = 0x12;
                cpd->arpcom.ac_enaddr[1] = 0x13;
<font color='#997700'>@@ -955,6 +969,7 @@
</font>           cpd->arpcom.ac_enaddr[3] = 0x15;
                cpd->arpcom.ac_enaddr[4] = 0x16;
                cpd->arpcom.ac_enaddr[5] = 0x17;
<font color='#000088'>+#endif
</font>   }
 
        cpd->enaddr[0] = cpd->arpcom.ac_enaddr[0];
<font color='#997700'>@@ -1020,6 +1035,8 @@
</font>                                                   smc91111_rxDaemon, cpd);
                cpd->txDaemonTid =
                    rtems_bsdnet_newproc("DCtx", 4096, smc91111_txDaemon, cpd);
<font color='#000088'>+   } else {
+               lan91cxx_start(ifp);
</font>   }
 
        /*
<font color='#997700'>@@ -1055,8 +1072,22 @@
</font>   cpd->txbusy = cpd->within_send = 0;
 
        /* install interrupt vector */
<font color='#000088'>+#ifdef _OLD_EXCEPTIONS
</font>   db_printf("Install lan91cxx irqvector at %d\n", cpd->config.vector);
        set_vector(lan91cxx_interrupt_handler, cpd->config.vector, 1);
<font color='#000088'>+#else
+    {
+        int r;
+        if ((r = rtems_interrupt_handler_install(cpd->config.vector,
+        cpd->config.info,
+        cpd->config.options,
+        cpd->config.interrupt_wrapper,
+        cpd->config.arg) )) {
+                printf("rtems_interrupt_handler_install returned %d.\n", r);
+                return 0;
+        }
+    }
+#endif
</font> 
        /* Reset chip */
        put_reg(cpd, LAN91CXX_RCR, LAN91CXX_RCR_SOFT_RST);
<font color='#997700'>@@ -1622,8 +1653,6 @@
</font>   db16_printf("phy_write: %d : %04x\n", phyreg, value);
 }
 
<font color='#880000'>-#endif
-
</font> #if 0
 void lan91cxx_print_bank(int bank){
        struct lan91cxx_priv_data *cpd = &smc91111;
<font color='#997700'>@@ -1644,3 +1673,5 @@
</font> 
 }
 #endif
<font color='#000088'>+
+#endif
</font>
<font color='#006600'>diff -u rtems/c/src/libchip/network/smc91111exp.h:1.2 rtems/c/src/libchip/network/smc91111exp.h:1.3
--- rtems/c/src/libchip/network/smc91111exp.h:1.2       Mon Jan  9 09:41:42 2006
+++ rtems/c/src/libchip/network/smc91111exp.h   Tue Aug 30 08:07:21 2011
</font><font color='#997700'>@@ -12,6 +12,14 @@
</font>   unsigned int              ctl_rspeed;
   unsigned int              ctl_rfduplx;
   unsigned int              ctl_autoneg;
<font color='#000088'>+#ifndef _OLD_EXCEPTIONS
+  /* New arguments for the Interrupt Manager Extension:
+   */
+  const char *              info;
+  rtems_option              options;
+  rtems_interrupt_handler   interrupt_wrapper;
+  void *                    arg;
+#endif
</font> } scmv91111_configuration_t;
 
 #endif  /* _SMC_91111_EXP_H_ */
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>