<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-02-10)</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>Synchronization with RTEMS CVS (HEAD revision).
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog.diff?r1=text&tr1=1.101&r2=text&tr2=1.102&diff_format=h">M</a></td><td width='1%'>1.102</td><td width='100%'>c/src/lib/libbsp/powerpc/gen83xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/gen83xx/configure.ac.diff?r1=text&tr1=1.16&r2=text&tr2=1.17&diff_format=h">M</a></td><td width='1%'>1.17</td><td width='100%'>c/src/lib/libbsp/powerpc/gen83xx/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/gen83xx/irq/irq.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/powerpc/gen83xx/irq/irq.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc.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/powerpc/gen83xx/make/custom/gen83xx.inc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.101 rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.102
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.101      Wed Feb  2 08:59:59 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog    Thu Feb 10 06:56:55 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-02-10    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * configure.ac: Added GEN83XX_ENABLE_INTERRUPT_NESTING BSP option.
+       * irq/irq.c: Use GEN83XX_ENABLE_INTERRUPT_NESTING option.  Disable
+       interrupts to protect critical section.
+       * make/custom/gen83xx.inc: Enable strict aliasing.
+
</font> 2011-02-02        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * configure.ac: Require autoconf-2.68, automake-1.11.1.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/configure.ac:1.16 rtems/c/src/lib/libbsp/powerpc/gen83xx/configure.ac:1.17
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/configure.ac:1.16    Wed Feb  2 08:59:59 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/configure.ac Thu Feb 10 06:56:55 2011
</font><font color='#997700'>@@ -62,6 +62,9 @@
</font> RTEMS_BSPOPTS_HELP([PPC_USE_DATA_CACHE], [If defined, then the PowerPC specific
  code in RTEMS will use data cache instructions to optimize the context switch code.])
 
<font color='#000088'>+RTEMS_BSPOPTS_SET([GEN83XX_ENABLE_INTERRUPT_NESTING],[*],[1])
+RTEMS_BSPOPTS_HELP([GEN83XX_ENABLE_INTERRUPT_NESTING],[enable interrupt nesting])
+
</font> RTEMS_CHECK_NETWORKING
 AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/irq/irq.c:1.5 rtems/c/src/lib/libbsp/powerpc/gen83xx/irq/irq.c:1.6
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/irq/irq.c:1.5        Mon Jan 24 09:32:04 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/irq/irq.c    Thu Feb 10 06:56:55 2011
</font><font color='#997700'>@@ -379,7 +379,12 @@
</font>   if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
                rsc_ptr = &mpc83xx_ipic_isrc_rsc [vecnum];
                if (rsc_ptr->mask_reg != NULL) {
<font color='#880000'>-                   *(rsc_ptr->mask_reg) |= 1 << (31 - rsc_ptr->bit_num);
</font><font color='#000088'>+                      uint32_t bit = 1U << (31 - rsc_ptr->bit_num);
+                       rtems_interrupt_level level;
+
+                       rtems_interrupt_disable(level);
+                       *(rsc_ptr->mask_reg) |= bit;
+                       rtems_interrupt_enable(level);
</font>           }
        }
 
<font color='#997700'>@@ -394,14 +399,18 @@
</font>   if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
                rsc_ptr = &mpc83xx_ipic_isrc_rsc [vecnum];
                if (rsc_ptr->mask_reg != NULL) {
<font color='#880000'>-                   *(rsc_ptr->mask_reg) &= ~(1 << (31 - rsc_ptr->bit_num));
</font><font color='#000088'>+                      uint32_t bit = 1U << (31 - rsc_ptr->bit_num);
+                       rtems_interrupt_level level;
+
+                       rtems_interrupt_disable(level);
+                       *(rsc_ptr->mask_reg) &= ~bit;
+                       rtems_interrupt_enable(level);
</font>           }
        }
 
        return RTEMS_SUCCESSFUL;
 }
 
<font color='#880000'>-
</font> /*
  *  IRQ Handler: this is called from the primary exception dispatcher
  */
<font color='#997700'>@@ -433,6 +442,7 @@
</font>    * exceptions and dispatch the handler.
         */
        if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
<font color='#000088'>+#ifdef GEN83XX_ENABLE_INTERRUPT_NESTING
</font>           mask_ptr = &mpc83xx_ipic_prio2mask [vecnum];
 
                rtems_interrupt_disable( level);
<font color='#997700'>@@ -455,10 +465,12 @@
</font>           if (excNum != ASM_E300_CRIT_VECTOR) {
                        msr = ppc_external_exceptions_enable();
                }
<font color='#000088'>+#endif /* GEN83XX_ENABLE_INTERRUPT_NESTING */
</font> 
                /* Dispatch interrupt handlers */
                bsp_interrupt_handler_dispatch( vecnum + BSP_IPIC_IRQ_LOWEST_OFFSET);
 
<font color='#000088'>+#ifdef GEN83XX_ENABLE_INTERRUPT_NESTING
</font>           /* Restore machine state */
                if (excNum != ASM_E300_CRIT_VECTOR) {
                        ppc_external_exceptions_disable( msr);
<font color='#997700'>@@ -471,6 +483,7 @@
</font>           mpc83xx.ipic.semsr = mask_save.semsr_mask;
                mpc83xx.ipic.sermr = mask_save.sermr_mask;
                rtems_interrupt_enable( level);
<font color='#000088'>+#endif /* GEN83XX_ENABLE_INTERRUPT_NESTING */
</font>   } else {
                bsp_interrupt_handler_default( vecnum);
        }

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc:1.2 rtems/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc:1.3
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc:1.2  Wed Oct 21 05:53:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc      Thu Feb 10 06:56:55 2011
</font><font color='#997700'>@@ -16,8 +16,7 @@
</font> #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it.<span style="background-color: #FF0000"> </span>
 #
<font color='#880000'>-CPU_CFLAGS = -mcpu=603e -mstrict-align -fno-strict-aliasing \
-             -meabi -msdata -fno-common
</font><font color='#000088'>+CPU_CFLAGS = -mcpu=603e -meabi -msdata -fno-common -mstrict-align
</font> 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g -fno-keep-inline-functions
</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>