<!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>