change log for rtems (2011-02-10)

rtems-vc at rtems.org rtems-vc at rtems.org
Thu Feb 10 13:10:34 UTC 2011


 *sh*:
Synchronization with RTEMS CVS (HEAD revision).

M  1.102  c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
M   1.17  c/src/lib/libbsp/powerpc/gen83xx/configure.ac
M    1.6  c/src/lib/libbsp/powerpc/gen83xx/irq/irq.c
M    1.3  c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc

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
@@ -1,3 +1,10 @@
+2011-02-10	Sebastian Huber <sebastian.huber at 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.
+
 2011-02-02	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	* configure.ac: Require autoconf-2.68, automake-1.11.1.

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
@@ -62,6 +62,9 @@
 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.])
 
+RTEMS_BSPOPTS_SET([GEN83XX_ENABLE_INTERRUPT_NESTING],[*],[1])
+RTEMS_BSPOPTS_HELP([GEN83XX_ENABLE_INTERRUPT_NESTING],[enable interrupt nesting])
+
 RTEMS_CHECK_NETWORKING
 AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
 

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
@@ -379,7 +379,12 @@
 	if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
 		rsc_ptr = &mpc83xx_ipic_isrc_rsc [vecnum];
 		if (rsc_ptr->mask_reg != NULL) {
-			*(rsc_ptr->mask_reg) |= 1 << (31 - rsc_ptr->bit_num);
+			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);
 		}
 	}
 
@@ -394,14 +399,18 @@
 	if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
 		rsc_ptr = &mpc83xx_ipic_isrc_rsc [vecnum];
 		if (rsc_ptr->mask_reg != NULL) {
-			*(rsc_ptr->mask_reg) &= ~(1 << (31 - rsc_ptr->bit_num));
+			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);
 		}
 	}
 
 	return RTEMS_SUCCESSFUL;
 }
 
-
 /*
  *  IRQ Handler: this is called from the primary exception dispatcher
  */
@@ -433,6 +442,7 @@
 	 * exceptions and dispatch the handler.
 	 */
 	if (MPC83XX_IPIC_IS_VALID_VECTOR( vecnum)) {
+#ifdef GEN83XX_ENABLE_INTERRUPT_NESTING
 		mask_ptr = &mpc83xx_ipic_prio2mask [vecnum];
 
 		rtems_interrupt_disable( level);
@@ -455,10 +465,12 @@
 		if (excNum != ASM_E300_CRIT_VECTOR) {
 			msr = ppc_external_exceptions_enable();
 		}
+#endif /* GEN83XX_ENABLE_INTERRUPT_NESTING */
 
 		/* Dispatch interrupt handlers */
 		bsp_interrupt_handler_dispatch( vecnum + BSP_IPIC_IRQ_LOWEST_OFFSET);
 
+#ifdef GEN83XX_ENABLE_INTERRUPT_NESTING
 		/* Restore machine state */
 		if (excNum != ASM_E300_CRIT_VECTOR) {
 			ppc_external_exceptions_disable( msr);
@@ -471,6 +483,7 @@
 		mpc83xx.ipic.semsr = mask_save.semsr_mask;
 		mpc83xx.ipic.sermr = mask_save.sermr_mask;
 		rtems_interrupt_enable( level);
+#endif /* GEN83XX_ENABLE_INTERRUPT_NESTING */
 	} else {
 		bsp_interrupt_handler_default( vecnum);
 	}

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
@@ -16,8 +16,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
 #
-CPU_CFLAGS = -mcpu=603e -mstrict-align -fno-strict-aliasing \
-             -meabi -msdata -fno-common
+CPU_CFLAGS = -mcpu=603e -meabi -msdata -fno-common -mstrict-align
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g -fno-keep-inline-functions



--

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/20110210/19ae4d7d/attachment.html>


More information about the vc mailing list