change log for rtems (2011-07-22)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Jul 22 13:11:15 UTC 2011


 *joel* (on branch rtems-4-9-branch):
2011-03-31      Kate Feng <feng at bnl.gov>

	PR 1778/bsps
	* vme/VMEConfig.h: Used the VME shared IRQ handlers.
	* include/bsp.h: Removed BSP_PIC_DO_EOI.
	* network/if_100MHz/GT64260eth.c:
	  Recycle the Rx mbuf if there is any Rx error.

M 1.88.2.5  c/src/lib/libbsp/powerpc/mvme5500/ChangeLog
M 1.13.2.3  c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
M 1.4.2.2  c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c
M 1.3.2.1  c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h

diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.88.2.4 rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.88.2.5
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.88.2.4	Fri May  8 13:38:30 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog	Fri Jul 22 08:02:37 2011
@@ -1,3 +1,11 @@
+2011-03-31      Kate Feng <feng at bnl.gov>
+
+	PR 1778/bsps
+	* vme/VMEConfig.h: Used the VME shared IRQ handlers.
+	* include/bsp.h: Removed BSP_PIC_DO_EOI.
+	* network/if_100MHz/GT64260eth.c:
+	  Recycle the Rx mbuf if there is any Rx error.
+	
 2009-05-08	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	* irq/irq.c, network/if_1GHz/POSSIBLEBUG: Removed.

diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.13.2.2 rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.13.2.3
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.13.2.2	Fri May  8 13:22:51 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h	Fri Jul 22 08:02:37 2011
@@ -100,14 +100,6 @@
 #define BSP_MAX_PCI_BUS_ON_PCI1 2
 #define BSP_MAX_PCI_BUS  (BSP_MAX_PCI_BUS_ON_PCI0+BSP_MAX_PCI_BUS_ON_PCI1)
 
-
-/* The glues to Till's vmeUniverse, although the name does not
- * actually reflect the relevant architect of the MVME5500.
- * Till TODO ? :  BSP_PCI_DO_EOI instead ? 
- * BSP_EXT_IRQ0 instead of BSP_PCI_IRQ0 ?
- *
- */
-#define BSP_PIC_DO_EOI  inl(0xc34)  /* PCI IACK */
 #define BSP_PCI_IRQ0 BSP_GPP_IRQ_LOWEST_OFFSET
 
 /*

diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.4.2.1 rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.4.2.2
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.4.2.1	Fri May  8 13:22:51 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c	Fri Jul 22 08:02:37 2011
@@ -743,21 +743,22 @@
         if (cmdsts & RX_STS_SF) sc->stats.frame_errors++;
         if ((cmdsts & RX_STS_LC) || (cmdsts & RX_STS_COL))
            ifp->if_collisions++;
-        goto give_it_back;
+        /* recycle the buffer */
+        m->m_len=sc->rx_buf_sz;        
+     }
+     else {
+       m = sc->rxq_mbuf[sc->rxq_fi];
+       m->m_len = m->m_pkthdr.len = byteCount - sizeof(struct ether_header);
+       eh = mtod (m, struct ether_header *);
+       m->m_data += sizeof(struct ether_header);
+       ether_input (ifp, eh, m);
+
+       ifp->if_ipackets++;
+       ifp->if_ibytes+=byteCount;
+       --sc->rxq_active;
+       MGETHDR (m, M_WAIT, MT_DATA);
+       MCLGET (m, M_WAIT);
      }
-     m = sc->rxq_mbuf[sc->rxq_fi];
-     m->m_len = m->m_pkthdr.len = byteCount - sizeof(struct ether_header);
-     eh = mtod (m, struct ether_header *);
-     m->m_data += sizeof(struct ether_header);
-     ether_input (ifp, eh, m);
-
-     ifp->if_ipackets++;
-     ifp->if_ibytes+=byteCount;
-     --sc->rxq_active;
-
-     give_it_back:
-     MGETHDR (m, M_WAIT, MT_DATA);
-     MCLGET (m, M_WAIT);
      m->m_pkthdr.rcvif = ifp;
      sc->rxq_mbuf[sc->rxq_fi]= m;
      /* convert mbuf pointer to data pointer of correct type */	

diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.3 rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.3.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.3	Sat Dec  8 23:54:19 2007
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h	Fri Jul 22 08:02:37 2011
@@ -1,6 +1,21 @@
 #ifndef RTEMS_BSP_VME_CONFIG_H
 #define RTEMS_BSP_VME_CONFIG_H
-/* VMEConfig.h, S. Kate Feng modified it for MVME5500 3/04  */
+/* VMEConfig.h, S. Kate Feng modified it for MVME5500 3/04 
+ * 
+ * May 2011 : Use the VME shared IRQ handlers.
+ *
+ * It seems that the implementation of VMEUNIVERSE_IRQ_MGR_FLAG_PW_WORKAROUND
+ * is not fully developed. The UNIV_REGOFF_VCSR_BS is defined for VME64
+ * specification, which does not apply to a VME32 crate. In order to avoid
+ * spurious VME interrupts, a better and more universal solution is
+ * to flush the vmeUniverse FIFO by reading a register back within the
+ * users' Interrupt Service Routine (ISR)  before returning.
+ *
+ * Some devices might require the ISR to issue an interrupt status READ
+ * after its IRQ is cleared, but before its corresponding interrupt
+ * is enabled again. 
+ * 
+ */
 /* BSP specific address space configuration parameters */
 
 /* 
@@ -11,6 +26,10 @@
  * layout:
  */
 #define _VME_A32_WIN0_ON_PCI	        0x90000000
+/* If _VME_CSR_ON_PCI is defined then the A32 window is reduced to accommodate
+ * CSR for space.
+ */
+#define _VME_CSR_ON_PCI			0x9e000000
 #define _VME_A24_ON_PCI			0x9f000000
 #define _VME_A16_ON_PCI			0x9fff0000
 
@@ -30,7 +49,12 @@
 
 #define BSP_VME_UNIVERSE_INSTALL_IRQ_MGR(err)			\
 	do {											\
-		err = vmeUniverseInstallIrqMgr(0,64+12,1,64+13);	\
+	  err = vmeUniverseInstallIrqMgrAlt(VMEUNIVERSE_IRQ_MGR_FLAG_SHARED,\
+             0, BSP_GPP_VME_VLINT0, \         
+             1, BSP_GPP_VME_VLINT1, \          
+             2, BSP_GPP_VME_VLINT2, \        
+             3, BSP_GPP_VME_VLINT3, \
+             -1 /* terminate list  */);  \             
 	} while (0)
 
 #endif



--

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/20110722/a40f64f2/attachment.html>


More information about the vc mailing list