change log for rtems (2010-05-20)

rtems-vc at rtems.org rtems-vc at rtems.org
Thu May 20 15:10:45 UTC 2010


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* network/smsc9218i.c: Removed superfluous macros.

M   1.52  c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog
M    1.5  c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c

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
@@ -1,3 +1,7 @@
+2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* network/smsc9218i.c: Removed superfluous macros.
+
 2010-05-10	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* include/bsp.h: Add BSP_SMALL_MEMORY.

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


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* include/utility.h: Removed superfluous macros.

M  1.170  c/src/lib/libbsp/shared/ChangeLog
M    1.4  c/src/lib/libbsp/shared/include/utility.h

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
@@ -1,5 +1,9 @@
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* include/utility.h: Removed superfluous macros.
+
+2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* include/uart-output-char.h, src/uart-output-char.c: New files.
 
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

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
@@ -1,66 +1,42 @@
 /**
  * @file
  *
- * @brief Utility definitions and functions.
+ * @ingroup bsp_kit
+ *
+ * @brief Utility macros.
  */
 
 /*
- * Copyright (c) 2008
- * Embedded Brains GmbH
+ * Copyright (c) 2008, 2010
+ * embedded brains GmbH
  * Obere Lagerstr. 30
  * D-82178 Puchheim
  * Germany
- * rtems at embedded-brains.de
+ * <rtems at embedded-brains.de>
  *
- * 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.
+ * 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.
  */
 
 #ifndef LIBCPU_SHARED_UTILITY_H
 #define LIBCPU_SHARED_UTILITY_H
 
-#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)
+#include <stdint.h>
 
-#define SET_FLAG( val, flag) \
-  ((val) | (flag))
+#define BIT32(bit) \
+  ((uint32_t) 1 << (bit))
 
-#define CLEAR_FLAG( val, flag) \
-  ((val) & ~(flag))
+#define MASK32(shift, length) \
+  ((BIT32(length) - (uint32_t) 1) << (shift))
 
-#define SET_FLAGS( val, flags) \
-  ((val) | (flags))
+#define FIELD32(val, shift, length) \
+  (((uint32_t) (val) << (shift)) & MASK32(shift, length)) 
 
-#define CLEAR_FLAGS( val, flags) \
-  ((val) & ~(flags))
+#define GETFIELD32(reg, shift, length) \
+  (((uint32_t) (reg) & MASK32(shift, length)) >> (shift)) 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+#define SETFIELD32(reg, val, shift, length) \
+  (((uint32_t) (reg) & ~MASK32(shift, length)) | FIELD(val, shift, length))
 
 #endif /* LIBCPU_SHARED_UTILITY_H */


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at 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.

M   1.11  c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h
M    1.3  c/src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c
M    1.7  c/src/lib/libbsp/arm/lpc24xx/misc/dma.c
M    1.8  c/src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c
M    1.7  c/src/lib/libbsp/arm/lpc24xx/ssp/ssp.c
M    1.5  c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c

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
@@ -1168,6 +1168,12 @@
 
 /* Register Fields */
 
+#define GET_FIELD( val, mask, shift) \
+  (((val) & (mask)) >> (shift))
+
+#define SET_FIELD( val, field, mask, shift) \
+  (((val) & ~(mask)) | (((field) << (shift)) & (mask)))
+
 /* CLKSRCSEL */
 
 #define CLKSRCSEL_CLKSRC_MASK 0x00000003U

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
@@ -38,16 +38,16 @@
   GPDMA_INT_ERR_CLR = err;
 
   /* Check channel 0 */
-  if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
+  if ((tc & GPDMA_STATUS_CH_0) != 0) {
     rtems_semaphore_release(lpc24xx_dma_sema_table [0]);
   }
-  lpc24xx_dma_status_table [0] = IS_FLAG_CLEARED(err, GPDMA_STATUS_CH_0);
+  lpc24xx_dma_status_table [0] = (err & GPDMA_STATUS_CH_0) == 0;
 
   /* Check channel 1 */
-  if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
+  if ((tc & GPDMA_STATUS_CH_1) != 0) {
     rtems_semaphore_release(lpc24xx_dma_sema_table [1]);
   }
-  lpc24xx_dma_status_table [1] = IS_FLAG_CLEARED(err, GPDMA_STATUS_CH_1);
+  lpc24xx_dma_status_table [1] = (err & GPDMA_STATUS_CH_1) == 0;
 }
 
 rtems_status_code lpc24xx_dma_copy_initialize(void)

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
@@ -85,15 +85,15 @@
 
     if (!force) {
       /* Halt */
-      ch->cfg = SET_FLAG(cfg, GPDMA_CH_CFG_HALT);
+      ch->cfg |= GPDMA_CH_CFG_HALT;
 
       /* Wait for inactive */
       do {
         cfg = ch->cfg;
-      } while (IS_FLAG_SET(cfg, GPDMA_CH_CFG_ACTIVE));
+      } while ((cfg & GPDMA_CH_CFG_ACTIVE) != 0);
     }
 
     /* Disable */
-    ch->cfg = CLEAR_FLAG(cfg, GPDMA_CH_CFG_EN);
+    ch->cfg &= ~GPDMA_CH_CFG_EN;
   }
 }

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
@@ -93,7 +93,7 @@
   }
 
   /* Get PLL output frequency */
-  if (IS_FLAG_SET(PLLSTAT, PLLSTAT_PLLC)) {
+  if ((PLLSTAT & PLLSTAT_PLLC) != 0) {
     uint32_t pllcfg = PLLCFG;
     unsigned n = GET_PLLCFG_NSEL(pllcfg) + 1;
     unsigned m = GET_PLLCFG_MSEL(pllcfg) + 1;

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
@@ -87,7 +87,7 @@
   uint32_t mis = regs->mis;
   uint32_t icr = 0;
 
-  if (IS_FLAG_SET(mis, SSP_MIS_RORRIS)) {
+  if ((mis & SSP_MIS_RORRIS) != 0) {
     /* TODO */
     printk("%s: Receiver overrun!\n", __func__);
     icr |= SSP_ICR_RORRIS;
@@ -105,7 +105,7 @@
   int rv = 0;
 
   /* Return if we are not in a transfer status */
-  if (IS_FLAG_CLEARED(status, LPC24XX_SSP_DMA_TRANSFER_FLAG)) {
+  if ((status & LPC24XX_SSP_DMA_TRANSFER_FLAG) == 0) {
     return;
   }
 
@@ -121,25 +121,25 @@
   if (err == 0) {
     switch (status) {
       case LPC24XX_SSP_DMA_WAIT:
-        if (ARE_FLAGS_SET(tc, GPDMA_STATUS_CH_0 | GPDMA_STATUS_CH_1)) {
+        if ((tc & (GPDMA_STATUS_CH_0 | GPDMA_STATUS_CH_1)) != 0) {
           status = LPC24XX_SSP_DMA_DONE;
-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
+        } else if ((tc & GPDMA_STATUS_CH_0) != 0) {
           status = LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_1;
-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
+        } else if ((tc & GPDMA_STATUS_CH_1) != 0) {
           status = LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_0;
         }
         break;
       case LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_0:
-        if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
+        if ((tc & GPDMA_STATUS_CH_1) != 0) {
           status = LPC24XX_SSP_DMA_ERROR;
-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
+        } else if ((tc & GPDMA_STATUS_CH_0) != 0) {
           status = LPC24XX_SSP_DMA_DONE;
         }
         break;
       case LPC24XX_SSP_DMA_WAIT_FOR_CHANNEL_1:
-        if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_0)) {
+        if ((tc & GPDMA_STATUS_CH_0) != 0) {
           status = LPC24XX_SSP_DMA_ERROR;
-        } else if (IS_FLAG_SET(tc, GPDMA_STATUS_CH_1)) {
+        } else if ((tc & GPDMA_STATUS_CH_1) != 0) {
           status = LPC24XX_SSP_DMA_DONE;
         }
         break;
@@ -363,7 +363,7 @@
 
   e->idle_char = mode->idle_char;
 
-  while (IS_FLAG_CLEARED(regs->sr, SSP_SR_TFE)) {
+  while ((regs->sr & SSP_SR_TFE) == 0) {
     /* Wait */
   }
 
@@ -426,14 +426,14 @@
     m = w - r;
 
     /* Write */
-    if (IS_FLAG_SET(sr, SSP_SR_TNF) && m < LPC24XX_SSP_FIFO_SIZE) {
+    if ((sr & SSP_SR_TNF) != 0 && m < LPC24XX_SSP_FIFO_SIZE) {
       regs->dr = *out;
       ++w;
       out += dw;
     }
 
     /* Read */
-    if (IS_FLAG_SET(sr, SSP_SR_RNE)) {
+    if ((sr & SSP_SR_RNE) != 0) {
       *in = (unsigned char) regs->dr;
       ++r;
       in += dr;
@@ -448,7 +448,7 @@
     /* Wait */
     do {
       sr = regs->sr;
-    } while (IS_FLAG_CLEARED(sr, SSP_SR_RNE));
+    } while ((sr & SSP_SR_RNE) == 0);
 
     /* Read */
     *in = (unsigned char) regs->dr;

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
@@ -143,12 +143,12 @@
 {
   #ifdef LPC24XX_EMC_INIT
     /* Use normal memory map */
-    EMC_CTRL = CLEAR_FLAG(EMC_CTRL, 0x2);
+    EMC_CTRL &= ~0x2;
   #endif
 
   #ifdef LPC24XX_EMC_MICRON
     /* Check if we need to initialize it */
-    if (IS_FLAG_CLEARED(EMC_DYN_CFG0, 0x00080000)) {
+    if ((EMC_DYN_CFG0 & 0x00080000) == 0) {
       /*
        * The buffer enable bit is not set.  Now we assume that the controller
        * is not properly initialized.
@@ -278,10 +278,10 @@
   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);
-  bool pll_enabled = IS_FLAG_SET(pllstat, PLLSTAT_PLLE);
+  bool pll_enabled = (pllstat & PLLSTAT_PLLE) != 0;
 
   /* Disconnect PLL if necessary */
-  if (IS_FLAG_SET(pllstat, PLLSTAT_PLLC)) {
+  if ((pllstat & PLLSTAT_PLLC) != 0) {
     if (pll_enabled) {
       /* Check if we run already with the desired settings */
       if (PLLCFG == pllcfg && CLKSRCSEL == clksrcsel && CCLKCFG == cclkcfg) {
@@ -312,7 +312,7 @@
   lpc24xx_pll_config(PLLCON_PLLE);
 
   /* Wait for lock */
-  while (IS_FLAG_CLEARED(PLLSTAT, PLLSTAT_PLOCK)) {
+  while ((PLLSTAT & PLLSTAT_PLOCK) == 0) {
     /* Wait */
   }
 
@@ -326,9 +326,9 @@
 static void BSP_START_SECTION lpc24xx_init_pll(void)
 {
   /* Enable main oscillator */
-  if (IS_FLAG_CLEARED(SCS, 0x40)) {
-    SCS = SET_FLAG(SCS, 0x20);
-    while (IS_FLAG_CLEARED(SCS, 0x40)) {
+  if ((SCS & 0x40) == 0) {
+    SCS |= 0x20;
+    while ((SCS & 0x40) == 0) {
       /* Wait */
     }
   }
@@ -383,7 +383,7 @@
   MAMCR = 0x2;
 
   /* Enable fast IO for ports 0 and 1 */
-  SCS = SET_FLAG(SCS, 0x1);
+  SCS |= 0x1;
 
   /* Set fast IO */
   FIO0DIR = 0;


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* shared/include/start.h: Define start section attributes.

M   1.79  c/src/lib/libbsp/arm/ChangeLog
M   1.52  c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M    1.6  c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c
M    1.4  c/src/lib/libbsp/arm/shared/include/start.h

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
@@ -1,3 +1,7 @@
+2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* shared/include/start.h: Define start section attributes.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* shared/irq_init.c: Removed file.

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
@@ -1,5 +1,15 @@
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* startup/bspstarthooks.c: Removed start section attribute defines.
+
+2010-05-20	Sebastian Huber <sebastian.huber at 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 at embedded-brains.de>
+
 	* Makefile.am, preinstall.am, include/bsp.h, startup/bspstart.c: Use
 	shared output character implementation.
 

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
@@ -26,8 +26,6 @@
 #include <bsp/lpc24xx.h>
 #include <bsp/linker-symbols.h>
 
-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
-
 #if defined(LPC24XX_EMC_MICRON) || defined(LPC24XX_EMC_NUMONYX)
   #define LPC24XX_EMC_INIT
 #endif
@@ -143,7 +141,7 @@
 {
   #ifdef LPC24XX_EMC_INIT
     /* Use normal memory map */
-    EMC_CTRL &= ~0x2;
+    EMC_CTRL &= ~0x2U;
   #endif
 
   #ifdef LPC24XX_EMC_MICRON

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
@@ -24,6 +24,10 @@
 
 #include <stddef.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
 /**
  * @defgroup bsp_start System Start
  *
@@ -34,6 +38,10 @@
  * @{
  */
 
+#define BSP_START_SECTION __attribute__((section(".bsp_start")))
+
+#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
+
 /**
 * @brief System start entry.
 */
@@ -71,4 +79,8 @@
 
 /** @} */
 
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
 #endif /* LIBBSP_ARM_SHARED_START_H */


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/bspstarthooks.c: Removed start section attribute defines.

M   1.11  c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M    1.6  c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c

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
@@ -1,5 +1,9 @@
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* startup/bspstarthooks.c: Removed start section attribute defines.
+
+2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* 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,

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
@@ -42,9 +42,6 @@
   #define LPC32XX_MMU_CODE LPC32XX_MMU_READ_ONLY_CACHED
 #endif
 
-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
-#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
-
 static void BSP_START_SECTION lpc32xx_clear_bss(void)
 {
   const int *end = (const int *) bsp_section_bss_end;


 *sh*:
2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* configure.ac: Fixed BSP option.
	* include/lpc32xx.h, startup/bspstarthooks.c: Added PLL setup.

M   1.12  c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M    1.5  c/src/lib/libbsp/arm/lpc32xx/configure.ac
M    1.6  c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h
M    1.7  c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c

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
@@ -1,5 +1,10 @@
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* configure.ac: Fixed BSP option.
+	* include/lpc32xx.h, startup/bspstarthooks.c: Added PLL setup.
+
+2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* startup/bspstarthooks.c: Removed start section attribute defines.
 
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>

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
@@ -63,7 +63,7 @@
 RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_UART_CLKMODE],[*],[0x00000200U])
 RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_UART_CLKMODE],[clock mode configuration for UARTs])
 
-RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[lpc32xx_boot],[1])
+RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[lpc32xx_mzx_boot_int],[1])
 RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[*],[])
 RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_MMU],[disable MMU])
 

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
@@ -24,6 +24,8 @@
 
 #include <stdint.h>
 
+#include <bsp/utility.h>
+
 /**
  * @defgroup lpc32xx_reg Register Definitions
  *
@@ -200,6 +202,54 @@
 
 /** @} */
 
+/**
+ * @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)
+
+/** @} */
+
 /** @} */
 
 #endif /* LIBBSP_ARM_LPC32XX_LPC32XX_H */

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
@@ -182,8 +182,32 @@
   #endif
 }
 
+#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;
+  }
+}
+
 void BSP_START_SECTION bsp_start_hook_0(void)
 {
+  lpc32xx_pll_setup();
   lpc32xx_mmu_and_cache_setup();
 }
 



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100520/4def968c/attachment.html>


More information about the vc mailing list