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