<!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 (2010-05-20)</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>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * network/smsc9218i.c: Removed superfluous macros.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog.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/powerpc/mpc55xxevb/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog:1.51 rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog:1.52
--- rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog:1.51    Mon May 10 14:16:07 2010
+++ rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog Thu May 20 09:19:41 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-05-20    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * network/smsc9218i.c: Removed superfluous macros.
+
</font> 2010-05-10        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * include/bsp.h: Add BSP_SMALL_MEMORY.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c:1.4 rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c:1.5
--- rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c:1.4   Sat Mar 27 10:00:43 2010
+++ rtems/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c       Thu May 20 09:19:41 2010
</font><font color='#997700'>@@ -197,7 +197,7 @@
</font> 
 static void smsc9218i_mac_wait(volatile smsc9218i_registers *regs)
 {
<font color='#880000'>-  while (IS_FLAG_SET(regs->mac_csr_cmd, SMSC9218I_MAC_CSR_CMD_BUSY)) {
</font><font color='#000088'>+  while ((regs->mac_csr_cmd & SMSC9218I_MAC_CSR_CMD_BUSY) != 0) {
</font>     /* Wait */
   }
 }
<font color='#997700'>@@ -238,7 +238,7 @@
</font> 
   do {
     mac_mii_acc = smsc9218i_mac_read(regs, SMSC9218I_MAC_MII_ACC);
<font color='#880000'>-  } while (IS_FLAG_SET(mac_mii_acc, SMSC9218I_MAC_MII_ACC_BUSY));
</font><font color='#000088'>+  } while ((mac_mii_acc & SMSC9218I_MAC_MII_ACC_BUSY) != 0);
</font> }
 
 static void smsc9218i_phy_write(
<font color='#997700'>@@ -286,9 +286,9 @@
</font>   uint32_t mac_cr = smsc9218i_mac_read(regs, SMSC9218I_MAC_CR);
 
   if (enable) {
<font color='#880000'>-    mac_cr = SET_FLAGS(mac_cr, flags);
</font><font color='#000088'>+    mac_cr |= flags;
</font>   } else {
<font color='#880000'>-    mac_cr = CLEAR_FLAGS(mac_cr, flags);
</font><font color='#000088'>+    mac_cr &= ~flags;
</font>   }
 
   smsc9218i_mac_write(regs, SMSC9218I_MAC_CR, mac_cr);
<font color='#997700'>@@ -436,15 +436,15 @@
</font>   regs->int_sts = int_sts;
 
   /* Check receive interrupts */
<font color='#880000'>-  if (IS_FLAG_SET(int_sts, SMSC9218I_INT_STS_RSFL)) {
-    int_en = CLEAR_FLAG(int_en, SMSC9218I_INT_EN_RSFL);
</font><font color='#000088'>+  if ((int_sts & SMSC9218I_INT_STS_RSFL) != 0) {
+    int_en &= ~SMSC9218I_INT_EN_RSFL;
</font>     re = SMSC9218I_EVENT_RX;
   }
 
   /* Check PHY interrupts */
<font color='#880000'>-  if (IS_FLAG_SET(int_sts, SMSC9218I_INT_STS_PHY)) {
-    int_en = CLEAR_FLAG(int_en, SMSC9218I_INT_EN_PHY);
-    re = SET_FLAG(re, SMSC9218I_EVENT_PHY);
</font><font color='#000088'>+  if ((int_sts & SMSC9218I_INT_STS_PHY) != 0) {
+    int_en &= ~SMSC9218I_INT_EN_PHY;
+    re |= SMSC9218I_EVENT_PHY;
</font>   }
 
   /* Send events to receive task */
<font color='#997700'>@@ -455,8 +455,8 @@
</font>   }
 
   /* Check transmit interrupts */
<font color='#880000'>-  if (IS_FLAG_SET(int_sts, SMSC9218I_INT_STS_TDFA)) {
-    int_en = CLEAR_FLAG(int_en, SMSC9218I_INT_EN_TDFA);
</font><font color='#000088'>+  if ((int_sts & SMSC9218I_INT_STS_TDFA) != 0) {
+    int_en &= ~SMSC9218I_INT_EN_TDFA;
</font>     te = SMSC9218I_EVENT_TX;
   }
 
<font color='#997700'>@@ -481,7 +481,7 @@
</font>   rtems_interrupt_level level;
 
   rtems_interrupt_disable(level);
<font color='#880000'>-  regs->int_en = SET_FLAG(regs->int_en, SMSC9218I_INT_EN_RSFL);
</font><font color='#000088'>+  regs->int_en |= SMSC9218I_INT_EN_RSFL;
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#997700'>@@ -492,7 +492,7 @@
</font>   rtems_interrupt_level level;
 
   rtems_interrupt_disable(level);
<font color='#880000'>-  regs->int_en = SET_FLAG(regs->int_en, SMSC9218I_INT_EN_TDFA);
</font><font color='#000088'>+  regs->int_en |= SMSC9218I_INT_EN_TDFA;
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#997700'>@@ -503,7 +503,7 @@
</font>   rtems_interrupt_level level;
 
   rtems_interrupt_disable(level);
<font color='#880000'>-  regs->int_en = SET_FLAG(regs->int_en, SMSC9218I_INT_EN_PHY);
</font><font color='#000088'>+  regs->int_en |= SMSC9218I_INT_EN_PHY;
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#997700'>@@ -515,7 +515,7 @@
</font>   MGETHDR(m, mw, MT_DATA);
   if (m != NULL) {
     MCLGET(m, mw);
<font color='#880000'>-    if (IS_FLAG_SET(m->m_flags, M_EXT)) {
</font><font color='#000088'>+    if ((m->m_flags & M_EXT) != 0) {
</font>       /* Set receive interface */
       m->m_pkthdr.rcvif = ifp;
 
<font color='#997700'>@@ -591,7 +591,7 @@
</font>     );
     RTEMS_CLEANUP_SC(sc, cleanup, "wait for events");
 
<font color='#880000'>-    if (IS_FLAG_SET(events, SMSC9218I_EVENT_PHY)) {
</font><font color='#000088'>+    if ((events & SMSC9218I_EVENT_PHY) != 0) {
</font>       uint32_t phy_isr = smsc9218i_phy_read(regs, SMSC9218I_PHY_ISR);
 
       /* TODO */
<font color='#997700'>@@ -630,7 +630,7 @@
</font>         SMSC9218I_RX_FIFO_INF_GET_DUSED(rx_fifo_inf)
       );
 
<font color='#880000'>-      if (IS_FLAG_CLEARED(rx_fifo_status, SMSC9218I_RX_STS_ERROR)) {
</font><font color='#000088'>+      if ((rx_fifo_status & SMSC9218I_RX_STS_ERROR) == 0) {
</font>         struct mbuf *m = smsc9218i_new_mbuf(ifp, true);
         struct ether_header *eh = (struct ether_header *)
           (mtod(m, char *) + SMSC9218I_RX_DATA_OFFSET);
<font color='#997700'>@@ -660,7 +660,7 @@
</font>         );
         RTEMS_CHECK_SC_TASK(sc, "wait for eDMA events");
 
<font color='#880000'>-        if (IS_FLAG_CLEARED(events, SMSC9218I_EVENT_EDMA_ERROR)) {
</font><font color='#000088'>+        if ((events & SMSC9218I_EVENT_EDMA_ERROR) == 0) {
</font>           /* Hand over */
           ether_input(ifp, eh, m);
 
<font color='#997700'>@@ -676,13 +676,13 @@
</font>         SMSC9218I_PRINTF("rx: error\n");
 
         /* Update error counters */
<font color='#880000'>-        if (IS_FLAG_SET(rx_fifo_status, SMSC9218I_RX_STS_ERROR_TOO_LONG)) {
</font><font color='#000088'>+        if ((rx_fifo_status & SMSC9218I_RX_STS_ERROR_TOO_LONG) != 0) {
</font>           ++e->receive_too_long_errors;
         }
<font color='#880000'>-        if (IS_FLAG_SET(rx_fifo_status, SMSC9218I_RX_STS_ERROR_COLLISION)) {
</font><font color='#000088'>+        if ((rx_fifo_status & SMSC9218I_RX_STS_ERROR_COLLISION) != 0) {
</font>           ++e->receive_collision_errors;
         }
<font color='#880000'>-        if (IS_FLAG_SET(rx_fifo_status, SMSC9218I_RX_STS_ERROR_CRC)) {
</font><font color='#000088'>+        if ((rx_fifo_status & SMSC9218I_RX_STS_ERROR_CRC) != 0) {
</font>           ++e->receive_crc_errors;
         }
 
<font color='#997700'>@@ -691,7 +691,7 @@
</font>           /* Fast forward */
           regs->rx_dp_ctl = SMSC9218I_RX_DP_CTRL_FFWD;
 
<font color='#880000'>-          while (IS_FLAG_SET(regs->rx_dp_ctl, SMSC9218I_RX_DP_CTRL_FFWD)) {
</font><font color='#000088'>+          while ((regs->rx_dp_ctl & SMSC9218I_RX_DP_CTRL_FFWD) != 0) {
</font>             /* Wait */
           }
         } else {
<font color='#997700'>@@ -869,7 +869,7 @@
</font>       jc->next_fragment = NULL;
 
       /* Interface is now inactive */
<font color='#880000'>-      ifp->if_flags = CLEAR_FLAG(ifp->if_flags, IFF_OACTIVE);
</font><font color='#000088'>+      ifp->if_flags &= ~IFF_OACTIVE;
</font> 
       /* Transmit task may wait for events */
       jc->done = true;
<font color='#997700'>@@ -1085,7 +1085,7 @@
</font>   for (s = 0; s < status_used; ++s) {
     uint32_t tx_fifo_status = regs->tx_fifo_status;
 
<font color='#880000'>-    if (IS_FLAG_CLEARED(tx_fifo_status, SMSC9218I_TX_STS_ERROR)) {
</font><font color='#000088'>+    if ((tx_fifo_status & SMSC9218I_TX_STS_ERROR) == 0) {
</font>       ++e->transmitted_frames;
     } else {
       ++e->transmit_errors;
<font color='#997700'>@@ -1099,7 +1099,7 @@
</font>   }
 
   if (
<font color='#880000'>-    IS_ANY_FLAG_SET(events, SMSC9218I_EVENT_EDMA | SMSC9218I_EVENT_EDMA_ERROR)
</font><font color='#000088'>+    (events & (SMSC9218I_EVENT_EDMA | SMSC9218I_EVENT_EDMA_ERROR)) != 0
</font>       && n > 0
   ) {
     unsigned c = jc->empty_index;
<font color='#997700'>@@ -1109,7 +1109,7 @@
</font>       smsc9218i_transmit_job_dump(jc, "finish");
     #endif
 
<font color='#880000'>-    if (IS_FLAG_SET(events, SMSC9218I_EVENT_EDMA_ERROR)) {
</font><font color='#000088'>+    if ((events & SMSC9218I_EVENT_EDMA_ERROR) != 0) {
</font>       ++e->transmit_edma_errors;
     }
 
<font color='#997700'>@@ -1508,11 +1508,11 @@
</font>     /* Enable promiscous mode */
     smsc9218i_enable_promiscous_mode(
       regs,
<font color='#880000'>-      IS_FLAG_SET(ifp->if_flags, IFF_PROMISC)
</font><font color='#000088'>+      (ifp->if_flags & IFF_PROMISC) != 0
</font>     );
 
     /* Set interface to running state */
<font color='#880000'>-    ifp->if_flags = SET_FLAG(ifp->if_flags, IFF_RUNNING);
</font><font color='#000088'>+    ifp->if_flags |= IFF_RUNNING;
</font> 
     /* Change state */
     e->state = SMSC9218I_RUNNING;
<font color='#997700'>@@ -1557,7 +1557,7 @@
</font>         /* TODO: off */
       }
       if (ifp->if_flags & IFF_UP) {
<font color='#880000'>-        ifp->if_flags = SET_FLAG(ifp->if_flags, IFF_RUNNING);
</font><font color='#000088'>+        ifp->if_flags |= IFF_RUNNING;
</font>         /* TODO: init */
       }
       break;
<font color='#997700'>@@ -1578,7 +1578,7 @@
</font>   smsc9218i_driver_entry *e = (smsc9218i_driver_entry *) ifp->if_softc;
 
   /* Interface is now active */
<font color='#880000'>-  ifp->if_flags = SET_FLAG(ifp->if_flags, IFF_OACTIVE);
</font><font color='#000088'>+  ifp->if_flags |= IFF_OACTIVE;
</font> 
   sc = rtems_event_send(e->transmit_task, SMSC9218I_EVENT_TX_START);
   RTEMS_SYSLOG_ERROR_SC(sc, "send transmit start event");
</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>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * include/utility.h: Removed superfluous macros.
</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.169&r2=text&tr2=1.170&diff_format=h">M</a></td><td width='1%'>1.170</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/include/utility.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>c/src/lib/libbsp/shared/include/utility.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/shared/ChangeLog:1.169 rtems/c/src/lib/libbsp/shared/ChangeLog:1.170
--- rtems/c/src/lib/libbsp/shared/ChangeLog:1.169       Thu May 20 08:06:48 2010
+++ rtems/c/src/lib/libbsp/shared/ChangeLog     Thu May 20 09:19:57 2010
</font><font color='#997700'>@@ -1,5 +1,9 @@
</font> 2010-05-20        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
<font color='#000088'>+   * include/utility.h: Removed superfluous macros.
+
+2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
</font>   * include/uart-output-char.h, src/uart-output-char.c: New files.
 
 2010-04-30     Sebastian Huber <sebastian.huber@embedded-brains.de>

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/shared/include/utility.h:1.3 rtems/c/src/lib/libbsp/shared/include/utility.h:1.4
--- rtems/c/src/lib/libbsp/shared/include/utility.h:1.3 Fri Feb 27 05:26:44 2009
+++ rtems/c/src/lib/libbsp/shared/include/utility.h     Thu May 20 09:19:58 2010
</font><font color='#997700'>@@ -1,66 +1,42 @@
</font> /**
  * @file
  *
<font color='#880000'>- * @brief Utility definitions and functions.
</font><font color='#000088'>+ * @ingroup bsp_kit
+ *
+ * @brief Utility macros.
</font>  */
 
 /*
<font color='#880000'>- * Copyright (c) 2008
- * Embedded Brains GmbH
</font><font color='#000088'>+ * Copyright (c) 2008, 2010
+ * embedded brains GmbH
</font>  * Obere Lagerstr. 30
  * D-82178 Puchheim
  * Germany
<font color='#880000'>- * rtems@embedded-brains.de
</font><font color='#000088'>+ * <rtems@embedded-brains.de>
</font>  *
<font color='#880000'>- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
</font><font color='#000088'>+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
</font>  */
 
 #ifndef LIBCPU_SHARED_UTILITY_H
 #define LIBCPU_SHARED_UTILITY_H
 
<font color='#880000'>-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define GET_FIELD( val, mask, shift) \
-  (((val) & (mask)) >> (shift))
-
-#define SET_FIELD( val, field, mask, shift) \
-  (((val) & ~(mask)) | (((field) << (shift)) & (mask)))
-
-#define CLEAR_FIELD( val, mask) \
-  ((val) & ~(mask))
-
-#define IS_FLAG_SET( val, flag) \
-  (((val) & (flag)) != 0)
-
-#define IS_FLAG_CLEARED( val, flag) \
-  (((val) & (flag)) == 0)
-
-#define ARE_FLAGS_SET( val, flags) \
-  (((val) & (flags)) == (flags))
-
-#define IS_ANY_FLAG_SET( val, flags) \
-  (((val) & (flags)) != 0)
-
-#define ARE_FLAGS_CLEARED( val, flags) \
-  (((val) & (flags)) == 0)
</font><font color='#000088'>+#include <stdint.h>
</font> 
<font color='#880000'>-#define SET_FLAG( val, flag) \
-  ((val) | (flag))
</font><font color='#000088'>+#define BIT32(bit) \
+  ((uint32_t) 1 << (bit))
</font> 
<font color='#880000'>-#define CLEAR_FLAG( val, flag) \
-  ((val) & ~(flag))
</font><font color='#000088'>+#define MASK32(shift, length) \
+  ((BIT32(length) - (uint32_t) 1) << (shift))
</font> 
<font color='#880000'>-#define SET_FLAGS( val, flags) \
-  ((val) | (flags))
</font><font color='#000088'>+#define FIELD32(val, shift, length) \
+  (((uint32_t) (val) << (shift)) & MASK32(shift, length))<span style="background-color: #FF0000"> </span>
</font> 
<font color='#880000'>-#define CLEAR_FLAGS( val, flags) \
-  ((val) & ~(flags))
</font><font color='#000088'>+#define GETFIELD32(reg, shift, length) \
+  (((uint32_t) (reg) & MASK32(shift, length)) >> (shift))<span style="background-color: #FF0000"> </span>
</font> 
<font color='#880000'>-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
</font><font color='#000088'>+#define SETFIELD32(reg, val, shift, length) \
+  (((uint32_t) (reg) & ~MASK32(shift, length)) | FIELD(val, shift, length))
</font> 
 #endif /* LIBCPU_SHARED_UTILITY_H */
</pre>
<p> </p>
<a name='cs3'></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>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * include/lpc24xx.h, misc/dma-copy.c, misc/dma.c,
        misc/system-clocks.c, ssp/ssp.c, startup/bspstarthooks.c: Removed
        superfluous macros.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.11&diff_format=h">M</a></td><td width='1%'>1.11</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c.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/lib/libbsp/arm/lpc24xx/misc/dma-copy.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c.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/lib/libbsp/arm/lpc24xx/misc/dma.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c.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/lib/libbsp/arm/lpc24xx/ssp/ssp.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.10 rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.11
--- rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.10   Fri Apr  9 07:24:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h        Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -1168,6 +1168,12 @@
</font> 
 /* Register Fields */
 
<font color='#000088'>+#define GET_FIELD( val, mask, shift) \
+  (((val) & (mask)) >> (shift))
+
+#define SET_FIELD( val, field, mask, shift) \
+  (((val) & ~(mask)) | (((field) << (shift)) & (mask)))
+
</font> /* CLKSRCSEL */
 
 #define CLKSRCSEL_CLKSRC_MASK 0x00000003U

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c:1.2      Wed Oct 21 08:24:35 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c  Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -38,16 +38,16 @@
</font>   GPDMA_INT_ERR_CLR = err;
 
   /* Check channel 0 */
<font color='#880000'>-  if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
</font><font color='#000088'>+  if ((tc & GPDMA_STATUS_CH_0) != 0) {
</font>     rtems_semaphore_release(lpc24xx_dma_sema_table [0]);
   }
<font color='#880000'>-  lpc24xx_dma_status_table [0] = IS_FLAG_CLEARED(err, GPDMA_STATUS_CH_0);
</font><font color='#000088'>+  lpc24xx_dma_status_table [0] = (err & GPDMA_STATUS_CH_0) == 0;
</font> 
   /* Check channel 1 */
<font color='#880000'>-  if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
</font><font color='#000088'>+  if ((tc & GPDMA_STATUS_CH_1) != 0) {
</font>     rtems_semaphore_release(lpc24xx_dma_sema_table [1]);
   }
<font color='#880000'>-  lpc24xx_dma_status_table [1] = IS_FLAG_CLEARED(err, GPDMA_STATUS_CH_1);
</font><font color='#000088'>+  lpc24xx_dma_status_table [1] = (err & GPDMA_STATUS_CH_1) == 0;
</font> }
 
 rtems_status_code lpc24xx_dma_copy_initialize(void)

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c:1.6 rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c:1.6   Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c       Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -85,15 +85,15 @@
</font> 
     if (!force) {
       /* Halt */
<font color='#880000'>-      ch->cfg = SET_FLAG(cfg, GPDMA_CH_CFG_HALT);
</font><font color='#000088'>+      ch->cfg |= GPDMA_CH_CFG_HALT;
</font> 
       /* Wait for inactive */
       do {
         cfg = ch->cfg;
<font color='#880000'>-      } while (IS_FLAG_SET(cfg, GPDMA_CH_CFG_ACTIVE));
</font><font color='#000088'>+      } while ((cfg & GPDMA_CH_CFG_ACTIVE) != 0);
</font>     }
 
     /* Disable */
<font color='#880000'>-    ch->cfg = CLEAR_FLAG(cfg, GPDMA_CH_CFG_EN);
</font><font color='#000088'>+    ch->cfg &= ~GPDMA_CH_CFG_EN;
</font>   }
 }

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c:1.7 rtems/c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c:1.8
--- rtems/c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c:1.7 Fri Sep 18 03:05:40 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c     Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -93,7 +93,7 @@
</font>   }
 
   /* Get PLL output frequency */
<font color='#880000'>-  if (IS_FLAG_SET(PLLSTAT, PLLSTAT_PLLC)) {
</font><font color='#000088'>+  if ((PLLSTAT & PLLSTAT_PLLC) != 0) {
</font>     uint32_t pllcfg = PLLCFG;
     unsigned n = GET_PLLCFG_NSEL(pllcfg) + 1;
     unsigned m = GET_PLLCFG_MSEL(pllcfg) + 1;

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c:1.6 rtems/c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c:1.6    Thu Oct 22 06:46:05 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c        Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -87,7 +87,7 @@
</font>   uint32_t mis = regs->mis;
   uint32_t icr = 0;
 
<font color='#880000'>-  if (IS_FLAG_SET(mis, SSP_MIS_RORRIS)) {
</font><font color='#000088'>+  if ((mis & SSP_MIS_RORRIS) != 0) {
</font>     /* TODO */
     printk("%s: Receiver overrun!\n", __func__);
     icr |= SSP_ICR_RORRIS;
<font color='#997700'>@@ -105,7 +105,7 @@
</font>   int rv = 0;
 
   /* Return if we are not in a transfer status */
<font color='#880000'>-  if (IS_FLAG_CLEARED(status, LPC24XX_SSP_DMA_TRANSFER_FLAG)) {
</font><font color='#000088'>+  if ((status & LPC24XX_SSP_DMA_TRANSFER_FLAG) == 0) {
</font>     return;
   }
 
<font color='#997700'>@@ -121,25 +121,25 @@
</font>   if (err == 0) {
     switch (status) {
       case LPC24XX_SSP_DMA_WAIT:
<font color='#880000'>-        if (ARE_FLAGS_SET(tc, GPDMA_STATUS_CH_0 | GPDMA_STATUS_CH_1)) {
</font><font color='#000088'>+        if ((tc & (GPDMA_STATUS_CH_0 | GPDMA_STATUS_CH_1)) != 0) {
</font>           status = LPC24XX_SSP_DMA_DONE;
<font color='#880000'>-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
</font><font color='#000088'>+        } else if ((tc & GPDMA_STATUS_CH_0) != 0) {
</font>           status = LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_1;
<font color='#880000'>-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
</font><font color='#000088'>+        } else if ((tc & GPDMA_STATUS_CH_1) != 0) {
</font>           status = LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_0;
         }
         break;
       case LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_0:
<font color='#880000'>-        if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
</font><font color='#000088'>+        if ((tc & GPDMA_STATUS_CH_1) != 0) {
</font>           status = LPC24XX_SSP_DMA_ERROR;
<font color='#880000'>-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
</font><font color='#000088'>+        } else if ((tc & GPDMA_STATUS_CH_0) != 0) {
</font>           status = LPC24XX_SSP_DMA_DONE;
         }
         break;
       case LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_1:
<font color='#880000'>-        if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
</font><font color='#000088'>+        if ((tc & GPDMA_STATUS_CH_0) != 0) {
</font>           status = LPC24XX_SSP_DMA_ERROR;
<font color='#880000'>-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
</font><font color='#000088'>+        } else if ((tc & GPDMA_STATUS_CH_1) != 0) {
</font>           status = LPC24XX_SSP_DMA_DONE;
         }
         break;
<font color='#997700'>@@ -363,7 +363,7 @@
</font> 
   e->idle_char = mode->idle_char;
 
<font color='#880000'>-  while (IS_FLAG_CLEARED(regs->sr, SSP_SR_TFE)) {
</font><font color='#000088'>+  while ((regs->sr & SSP_SR_TFE) == 0) {
</font>     /* Wait */
   }
 
<font color='#997700'>@@ -426,14 +426,14 @@
</font>     m = w - r;
 
     /* Write */
<font color='#880000'>-    if (IS_FLAG_SET(sr, SSP_SR_TNF) && m < LPC24XX_SSP_FIFO_SIZE) {
</font><font color='#000088'>+    if ((sr & SSP_SR_TNF) != 0 && m < LPC24XX_SSP_FIFO_SIZE) {
</font>       regs->dr = *out;
       ++w;
       out += dw;
     }
 
     /* Read */
<font color='#880000'>-    if (IS_FLAG_SET(sr, SSP_SR_RNE)) {
</font><font color='#000088'>+    if ((sr & SSP_SR_RNE) != 0) {
</font>       *in = (unsigned char) regs->dr;
       ++r;
       in += dr;
<font color='#997700'>@@ -448,7 +448,7 @@
</font>     /* Wait */
     do {
       sr = regs->sr;
<font color='#880000'>-    } while (IS_FLAG_CLEARED(sr, SSP_SR_RNE));
</font><font color='#000088'>+    } while ((sr & SSP_SR_RNE) == 0);
</font> 
     /* Read */
     *in = (unsigned char) regs->dr;

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.4 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.5
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.4      Fri Apr  9 07:24:49 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c  Thu May 20 09:23:13 2010
</font><font color='#997700'>@@ -143,12 +143,12 @@
</font> {
   #ifdef LPC24XX_EMC_INIT
     /* Use normal memory map */
<font color='#880000'>-    EMC_CTRL = CLEAR_FLAG(EMC_CTRL, 0x2);
</font><font color='#000088'>+    EMC_CTRL &= ~0x2;
</font>   #endif
 
   #ifdef LPC24XX_EMC_MICRON
     /* Check if we need to initialize it */
<font color='#880000'>-    if (IS_FLAG_CLEARED(EMC_DYN_CFG0, 0x00080000)) {
</font><font color='#000088'>+    if ((EMC_DYN_CFG0 & 0x00080000) == 0) {
</font>       /*
        * The buffer enable bit is not set.  Now we assume that the controller
        * is not properly initialized.
<font color='#997700'>@@ -278,10 +278,10 @@
</font>   uint32_t pllcfg = SET_PLLCFG_NSEL(0, nsel) | SET_PLLCFG_MSEL(0, msel);
   uint32_t clksrcsel = SET_CLKSRCSEL_CLKSRC(0, clksrc);
   uint32_t cclkcfg = SET_CCLKCFG_CCLKSEL(0, cclksel | 1);
<font color='#880000'>-  bool pll_enabled = IS_FLAG_SET(pllstat, PLLSTAT_PLLE);
</font><font color='#000088'>+  bool pll_enabled = (pllstat & PLLSTAT_PLLE) != 0;
</font> 
   /* Disconnect PLL if necessary */
<font color='#880000'>-  if (IS_FLAG_SET(pllstat, PLLSTAT_PLLC)) {
</font><font color='#000088'>+  if ((pllstat & PLLSTAT_PLLC) != 0) {
</font>     if (pll_enabled) {
       /* Check if we run already with the desired settings */
       if (PLLCFG == pllcfg && CLKSRCSEL == clksrcsel && CCLKCFG == cclkcfg) {
<font color='#997700'>@@ -312,7 +312,7 @@
</font>   lpc24xx_pll_config(PLLCON_PLLE);
 
   /* Wait for lock */
<font color='#880000'>-  while (IS_FLAG_CLEARED(PLLSTAT, PLLSTAT_PLOCK)) {
</font><font color='#000088'>+  while ((PLLSTAT & PLLSTAT_PLOCK) == 0) {
</font>     /* Wait */
   }
 
<font color='#997700'>@@ -326,9 +326,9 @@
</font> static void BSP_START_SECTION lpc24xx_init_pll(void)
 {
   /* Enable main oscillator */
<font color='#880000'>-  if (IS_FLAG_CLEARED(SCS, 0x40)) {
-    SCS = SET_FLAG(SCS, 0x20);
-    while (IS_FLAG_CLEARED(SCS, 0x40)) {
</font><font color='#000088'>+  if ((SCS & 0x40) == 0) {
+    SCS |= 0x20;
+    while ((SCS & 0x40) == 0) {
</font>       /* Wait */
     }
   }
<font color='#997700'>@@ -383,7 +383,7 @@
</font>   MAMCR = 0x2;
 
   /* Enable fast IO for ports 0 and 1 */
<font color='#880000'>-  SCS = SET_FLAG(SCS, 0x1);
</font><font color='#000088'>+  SCS |= 0x1;
</font> 
   /* Set fast IO */
   FIO0DIR = 0;
</pre>
<p> </p>
<a name='cs4'></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>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * shared/include/start.h: Define start section attributes.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/ChangeLog.diff?r1=text&tr1=1.78&r2=text&tr2=1.79&diff_format=h">M</a></td><td width='1%'>1.79</td><td width='100%'>c/src/lib/libbsp/arm/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog.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/arm/lpc24xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/include/start.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>c/src/lib/libbsp/arm/shared/include/start.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.78 rtems/c/src/lib/libbsp/arm/ChangeLog:1.79
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.78   Fri Apr 30 08:21:07 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog        Thu May 20 09:32:03 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-05-20    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * shared/include/start.h: Define start section attributes.
+
</font> 2010-04-30        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * shared/irq_init.c: Removed file.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.51 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.52
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.51   Thu May 20 08:10:55 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog        Thu May 20 09:33:16 2010
</font><font color='#997700'>@@ -1,5 +1,15 @@
</font> 2010-05-20        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
<font color='#000088'>+   * startup/bspstarthooks.c: Removed start section attribute defines.
+
+2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * include/lpc24xx.h, misc/dma-copy.c, misc/dma.c,
+       misc/system-clocks.c, ssp/ssp.c, startup/bspstarthooks.c: Removed
+       superfluous macros.
+
+2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
</font>   * Makefile.am, preinstall.am, include/bsp.h, startup/bspstart.c: Use
        shared output character implementation.
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.5 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.6
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.5      Thu May 20 09:23:13 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c  Thu May 20 09:33:16 2010
</font><font color='#997700'>@@ -26,8 +26,6 @@
</font> #include <bsp/lpc24xx.h>
 #include <bsp/linker-symbols.h>
 
<font color='#880000'>-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
-
</font> #if defined(LPC24XX_EMC_MICRON) || defined(LPC24XX_EMC_NUMONYX)
   #define LPC24XX_EMC_INIT
 #endif
<font color='#997700'>@@ -143,7 +141,7 @@
</font> {
   #ifdef LPC24XX_EMC_INIT
     /* Use normal memory map */
<font color='#880000'>-    EMC_CTRL &= ~0x2;
</font><font color='#000088'>+    EMC_CTRL &= ~0x2U;
</font>   #endif
 
   #ifdef LPC24XX_EMC_MICRON

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.3 rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.4
--- rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.3       Fri Sep 18 03:06:32 2009
+++ rtems/c/src/lib/libbsp/arm/shared/include/start.h   Thu May 20 09:32:03 2010
</font><font color='#997700'>@@ -24,6 +24,10 @@
</font> 
 #include <stddef.h>
 
<font color='#000088'>+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
</font> /**
  * @defgroup bsp_start System Start
  *
<font color='#997700'>@@ -34,6 +38,10 @@
</font>  * @{
  */
 
<font color='#000088'>+#define BSP_START_SECTION __attribute__((section(".bsp_start")))
+
+#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
+
</font> /**
 * @brief System start entry.
 */
<font color='#997700'>@@ -71,4 +79,8 @@
</font> 
 /** @} */
 
<font color='#000088'>+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
</font> #endif /* LIBBSP_ARM_SHARED_START_H */
</pre>
<p> </p>
<a name='cs5'></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>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * startup/bspstarthooks.c: Removed start section attribute defines.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog.diff?r1=text&tr1=1.10&r2=text&tr2=1.11&diff_format=h">M</a></td><td width='1%'>1.11</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.10 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.11
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.10   Thu May 20 08:15:34 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog        Thu May 20 09:33:34 2010
</font><font color='#997700'>@@ -1,5 +1,9 @@
</font> 2010-05-20        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
<font color='#000088'>+   * startup/bspstarthooks.c: Removed start section attribute defines.
+
+2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
</font>   * make/custom/lpc32xx.inc, make/custom/lpc32xx_mzx_boot_int.cfg,
        startup/linkcmds.lpc32xx_mzx_boot_int: New files.
        * Makefile.am, configure.ac, preinstall.am, include/bsp.h,

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.5 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.6
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.5      Thu May 20 08:15:35 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c  Thu May 20 09:33:34 2010
</font><font color='#997700'>@@ -42,9 +42,6 @@
</font>   #define LPC32XX_MMU_CODE LPC32XX_MMU_READ_ONLY_CACHED
 #endif
 
<font color='#880000'>-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
-#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
-
</font> static void BSP_START_SECTION lpc32xx_clear_bss(void)
 {
   const int *end = (const int *) bsp_section_bss_end;
</pre>
<p> </p>
<a name='cs6'></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>2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * configure.ac: Fixed BSP option.
        * include/lpc32xx.h, startup/bspstarthooks.c: Added PLL setup.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog.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/lib/libbsp/arm/lpc32xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c.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/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.11 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.12
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.11   Thu May 20 09:33:34 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog        Thu May 20 09:52:32 2010
</font><font color='#997700'>@@ -1,5 +1,10 @@
</font> 2010-05-20        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
<font color='#000088'>+   * configure.ac: Fixed BSP option.
+       * include/lpc32xx.h, startup/bspstarthooks.c: Added PLL setup.
+
+2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
</font>   * startup/bspstarthooks.c: Removed start section attribute defines.
 
 2010-05-20     Sebastian Huber <sebastian.huber@embedded-brains.de>

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.4 rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.5
--- rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.4 Thu May 20 08:15:35 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac     Thu May 20 09:52:32 2010
</font><font color='#997700'>@@ -63,7 +63,7 @@
</font> RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_UART_CLKMODE],[*],[0x00000200U])
 RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_UART_CLKMODE],[clock mode configuration for UARTs])
 
<font color='#880000'>-RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[lpc32xx_boot],[1])
</font><font color='#000088'>+RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[lpc32xx_mzx_boot_int],[1])
</font> RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[*],[])
 RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_MMU],[disable MMU])
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.5 rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.6
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.5    Thu May 20 08:15:35 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h        Thu May 20 09:52:32 2010
</font><font color='#997700'>@@ -24,6 +24,8 @@
</font> 
 #include <stdint.h>
 
<font color='#000088'>+#include <bsp/utility.h>
+
</font> /**
  * @defgroup lpc32xx_reg Register Definitions
  *
<font color='#997700'>@@ -200,6 +202,54 @@
</font> 
 /** @} */
 
<font color='#000088'>+/**
+ * @name Power Control Register (PWR_CTRL)
+ *
+ * @{
+ */
+
+#define PWR_STOP BIT32(0)
+#define PWR_HIGHCORE_ALWAYS BIT32(1)
+#define PWR_NORMAL_RUN_MODE BIT32(2)
+#define PWR_SYSCLKEN_ALWAYS BIT32(3)
+#define PWR_SYSCLKEN_HIGH BIT32(4)
+#define PWR_HIGHCORE_HIGH BIT32(5)
+#define PWR_SDRAM_AUTO_REFRESH BIT32(7)
+#define PWR_UPDATE_EMCSREFREQ BIT32(8)
+#define PWR_EMCSREFREQ BIT32(9)
+#define PWR_HCLK_USES_PERIPH_CLK BIT32(10)
+
+/** @} */
+
+/**
+ * @name HCLK PLL Control Register (HCLKPLL_CTRL)
+ *
+ * @{
+ */
+
+#define HCLK_PLL_LOCK BIT32(0)
+#define HCLK_PLL_M(val) FIELD32(val, 1, 8)
+#define HCLK_PLL_N(val) FIELD32(val, 9, 2)
+#define HCLK_PLL_P(val) FIELD32(val, 11, 2)
+#define HCLK_PLL_FBD_FCLKOUT BIT32(13)
+#define HCLK_PLL_DIRECT BIT32(14)
+#define HCLK_PLL_BYPASS BIT32(15)
+#define HCLK_PLL_POWER BIT32(16)
+
+/** @} */
+
+/**
+ * @name HCLK Divider Control Register (HCLKDIV_CTRL)
+ *
+ * @{
+ */
+
+#define HCLK_DIV_HCLK(val) FIELD32(val, 0, 2)
+#define HCLK_DIV_PERIPH_CLK(val) FIELD32(val, 2, 5)
+#define HCLK_DIV_DDRAM_CLK(val) FIELD32(val, 7, 2)
+
+/** @} */
+
</font> /** @} */
 
 #endif /* LIBBSP_ARM_LPC32XX_LPC32XX_H */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.6 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.6      Thu May 20 09:33:34 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c  Thu May 20 09:52:32 2010
</font><font color='#997700'>@@ -182,8 +182,32 @@
</font>   #endif
 }
 
<font color='#000088'>+#if LPC32XX_OSCILLATOR_MAIN != 13000000U
+  #error "unexpected main oscillator frequency"
+#endif
+
+static void BSP_START_SECTION lpc32xx_pll_setup(void)
+{
+  uint32_t pwr_ctrl = LPC32XX_PWR_CTRL;
+
+  if ((pwr_ctrl & PWR_NORMAL_RUN_MODE) == 0) {
+    /* Enable HCLK PLL */
+    LPC32XX_HCLKPLL_CTRL = HCLK_PLL_POWER | HCLK_PLL_DIRECT | HCLK_PLL_M(16 - 1);
+    while ((LPC32XX_HCLKPLL_CTRL & HCLK_PLL_LOCK) == 0) {
+      /* Wait */
+    }
+
+    /* Setup HCLK divider */
+    LPC32XX_HCLKDIV_CTRL = HCLK_DIV_HCLK(2 - 1) | HCLK_DIV_PERIPH_CLK(16 - 1);
+
+    /* Enable HCLK PLL output */
+    LPC32XX_PWR_CTRL = pwr_ctrl | PWR_NORMAL_RUN_MODE;
+  }
+}
+
</font> void BSP_START_SECTION bsp_start_hook_0(void)
 {
<font color='#000088'>+  lpc32xx_pll_setup();
</font>   lpc32xx_mmu_and_cache_setup();
 }
 
</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>