change log for rtems (2011-06-17)
rtems-vc at rtems.org
rtems-vc at rtems.org
Fri Jun 17 14:10:27 UTC 2011
*joel* (on branch rtems-4-10-branch):
Fix formatting.
M 1.130 c/src/lib/libbsp/powerpc/mvme5500/ChangeLog
M 1.122.2.3 c/src/lib/libbsp/powerpc/mvme5500/ChangeLog
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.129 rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.130
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.129 Tue Jun 7 08:26:40 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog Fri Jun 17 08:24:34 2011
@@ -108,6 +108,7 @@
* irq/irq.c, network/if_1GHz/POSSIBLEBUG: Removed.
2009-05-08 Kate Feng <feng1 at bnl.gov>
+
* include/bsp.h, start/start.S, startup/bspstart.c:
added CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK in bsp.h.
removed BSP_INIT_STACK_SIZE in bsp.h -- it uses __stack defined
@@ -504,25 +505,26 @@
2005-05-17 Jennifer Averett <jennifer.averett at oarcorp.com>
- * irq/GT64260Int.c, irq/irq.c, irq/irq.h: Modified to use rtems/irq.h.
+ * irq/GT64260Int.c, irq/irq.c, irq/irq.h: Modified to use rtems/irq.h.
2005-05-12 Jennifer Averett <jennifer.averett at oarcorp.com>
- * README.VME, include/bsp.h, irq/irq.h, network/GT64260eth.c,
- pci/detect_host_bridge.c, pci/gtpcireg.h, pci/pci.c, pci/pci.h,
- pci/pci_interface.c, pci/pcifinddevice.c:
- Submitted by Kate Feng <feng1 at bnl.gov> as RTEMS-MVME5500 BSP v1.1 release.
- Modifications made to merge this release with the current tree.
+ * README.VME, include/bsp.h, irq/irq.h, network/GT64260eth.c,
+ pci/detect_host_bridge.c, pci/gtpcireg.h, pci/pci.c, pci/pci.h,
+ pci/pci_interface.c, pci/pcifinddevice.c:
+ Submitted by Kate Feng <feng1 at bnl.gov> as RTEMS-MVME5500 BSP
+ v1.1 release. Modifications made to merge this release with
+ the current tree.
2005-05-10 Jennifer Averett <jennifer.averett at oarcorp.com>
- * network/GT64260eth.c: Fixed warning.
- * pci/pci.c, pci/pci.h: Modified to depend upon rtems/pci.h
+ * network/GT64260eth.c: Fixed warning.
+ * pci/pci.c, pci/pci.h: Modified to depend upon rtems/pci.h
2005-05-04 Jennifer Averett <jennifer.averett at oarcorp.com>
- * pci/pci.c, pci/pci.h, startup/bspstart.c: Name change to support
- common PCI interface
+ * pci/pci.c, pci/pci.h, startup/bspstart.c: Name change to support
+ common PCI interface
2005-04-15 Joel Sherrill <joel at OARcorp.com>
@@ -532,13 +534,13 @@
2005-04-15 Jennifer Averett <jennifer.averett at oarcorp.com>
- PR 779/bsp
- * irq/irq.c, irq/irq.h, irq/irq_init.c, network/GT64260eth.c: add
- parameter to new exception interrupt handlers in powerpc bsps
+ PR 779/bsp
+ * irq/irq.c, irq/irq.h, irq/irq_init.c, network/GT64260eth.c: add
+ parameter to new exception interrupt handlers in powerpc bsps
2005-04-15 Jennifer Averett <jennifer.averett at oarcorp.com>
- * startup/linkcmds: add missing section to link cmds
+ * startup/linkcmds: add missing section to link cmds
2005-03-14 Joel Sherrill <joel at OARcorp.com>
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.2 rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.3
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.2 Wed May 18 00:08:36 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog Fri Jun 17 08:22:14 2011
@@ -86,6 +86,7 @@
* irq/irq.c, network/if_1GHz/POSSIBLEBUG: Removed.
2009-05-08 Kate Feng <feng1 at bnl.gov>
+
* include/bsp.h, start/start.S, startup/bspstart.c:
added CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK in bsp.h.
removed BSP_INIT_STACK_SIZE in bsp.h -- it uses __stack defined
@@ -295,7 +296,8 @@
2007-09-14 Joel Sherrill <joel.sherrill at OARcorp.com>
- * network/GT64260eth.c, network/GT64260eth.h, network/GT64260ethreg.h: Removed.
+ * network/GT64260eth.c, network/GT64260eth.h,
+ network/GT64260ethreg.h: Removed.
2007-09-14 Joel Sherrill <joel.sherrill at OARcorp.com>
@@ -482,25 +484,26 @@
2005-05-17 Jennifer Averett <jennifer.averett at oarcorp.com>
- * irq/GT64260Int.c, irq/irq.c, irq/irq.h: Modified to use rtems/irq.h.
+ * irq/GT64260Int.c, irq/irq.c, irq/irq.h: Modified to use rtems/irq.h.
2005-05-12 Jennifer Averett <jennifer.averett at oarcorp.com>
- * README.VME, include/bsp.h, irq/irq.h, network/GT64260eth.c,
- pci/detect_host_bridge.c, pci/gtpcireg.h, pci/pci.c, pci/pci.h,
- pci/pci_interface.c, pci/pcifinddevice.c:
- Submitted by Kate Feng <feng1 at bnl.gov> as RTEMS-MVME5500 BSP v1.1 release.
- Modifications made to merge this release with the current tree.
+ * README.VME, include/bsp.h, irq/irq.h, network/GT64260eth.c,
+ pci/detect_host_bridge.c, pci/gtpcireg.h, pci/pci.c, pci/pci.h,
+ pci/pci_interface.c, pci/pcifinddevice.c:
+ Submitted by Kate Feng <feng1 at bnl.gov> as RTEMS-MVME5500 BSP v1.1
+ release. Modifications made to merge this release with the
+ current tree.
2005-05-10 Jennifer Averett <jennifer.averett at oarcorp.com>
- * network/GT64260eth.c: Fixed warning.
- * pci/pci.c, pci/pci.h: Modified to depend upon rtems/pci.h
+ * network/GT64260eth.c: Fixed warning.
+ * pci/pci.c, pci/pci.h: Modified to depend upon rtems/pci.h
2005-05-04 Jennifer Averett <jennifer.averett at oarcorp.com>
- * pci/pci.c, pci/pci.h, startup/bspstart.c: Name change to support
- common PCI interface
+ * pci/pci.c, pci/pci.h, startup/bspstart.c: Name change to support
+ common PCI interface
2005-04-15 Joel Sherrill <joel at OARcorp.com>
@@ -510,13 +513,13 @@
2005-04-15 Jennifer Averett <jennifer.averett at oarcorp.com>
- PR 779/bsp
- * irq/irq.c, irq/irq.h, irq/irq_init.c, network/GT64260eth.c: add
- parameter to new exception interrupt handlers in powerpc bsps
+ PR 779/bsp
+ * irq/irq.c, irq/irq.h, irq/irq_init.c, network/GT64260eth.c: add
+ parameter to new exception interrupt handlers in powerpc bsps
2005-04-15 Jennifer Averett <jennifer.averett at oarcorp.com>
- * startup/linkcmds: add missing section to link cmds
+ * startup/linkcmds: add missing section to link cmds
2005-03-14 Joel Sherrill <joel at OARcorp.com>
*joel* (on branch rtems-4-10-branch):
2011-04-10 Kate Feng <feng at bnl.gov>
PR 1786/bsps
* Makefile.am: Add support for Altivec.
* startup/bspstart.c, Makefile.am: Use shared/startup/zerobss.c instead.
* make/custom/mvme5500.cfg: Change CPU_CFLAGS to
"-mcpu=7450 -mtune=7450 -Dmpc7455"
* irq/BSP_irq.c, pci/detect_host_bridge.c, pci.c, pcifinddevice.c:
Remove warnings.
* vme/VMEConfig.h, include/bsp.h: use VME shared IRQ handlers.
* network/if_100MHz/GT64260eth.c: Recycle the Rx mbuf if there
is any Rx error.
M 1.131 c/src/lib/libbsp/powerpc/mvme5500/ChangeLog
M 1.122.2.4 c/src/lib/libbsp/powerpc/mvme5500/ChangeLog
M 1.40 c/src/lib/libbsp/powerpc/mvme5500/Makefile.am
M 1.39.2.1 c/src/lib/libbsp/powerpc/mvme5500/Makefile.am
M 1.7 c/src/lib/libbsp/powerpc/mvme5500/bsp_specs
M 1.6.2.1 c/src/lib/libbsp/powerpc/mvme5500/bsp_specs
M 1.23 c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
M 1.19.2.2 c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
M 1.6 c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c
M 1.5.2.1 c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c
M 1.3 c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg
M 1.2.2.1 c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg
M 1.9 c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c
M 1.8.2.1 c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c
M 1.9 c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c
M 1.8.2.1 c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c
M 1.6 c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c
M 1.5.2.1 c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c
M 1.17 c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c
M 1.16.2.1 c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c
M 1.9 c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c
M 1.8.2.1 c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c
M 1.10 c/src/lib/libbsp/powerpc/mvme5500/start/start.S
M 1.9.2.1 c/src/lib/libbsp/powerpc/mvme5500/start/start.S
M 1.36 c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c
M 1.34.2.1 c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c
M 1.5 c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h
M 1.4.2.1 c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.130 rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.131
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.130 Fri Jun 17 08:24:34 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog Fri Jun 17 08:24:46 2011
@@ -1,3 +1,16 @@
+2011-04-10 Kate Feng <feng at bnl.gov>
+
+ PR 1786/bsps
+ * Makefile.am: Add support for Altivec.
+ * startup/bspstart.c, Makefile.am: Use shared/startup/zerobss.c instead.
+ * make/custom/mvme5500.cfg: Change CPU_CFLAGS to
+ "-mcpu=7450 -mtune=7450 -Dmpc7455"
+ * irq/BSP_irq.c, pci/detect_host_bridge.c, pci.c, pcifinddevice.c:
+ Remove warnings.
+ * vme/VMEConfig.h, include/bsp.h: use VME shared IRQ handlers.
+ * network/if_100MHz/GT64260eth.c: Recycle the Rx mbuf if there
+ is any Rx error.
+
2011-06-07 Sebastian Huber <sebastian.huber at embedded-brains.de>
* configure.ac: Use standard cache BSP options.
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.3 rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.4
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog:1.122.2.3 Fri Jun 17 08:22:14 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/ChangeLog Fri Jun 17 08:22:24 2011
@@ -1,3 +1,16 @@
+2011-04-10 Kate Feng <feng at bnl.gov>
+
+ PR 1786/bsps
+ * Makefile.am: Add support for Altivec.
+ * startup/bspstart.c, Makefile.am: Use shared/startup/zerobss.c instead.
+ * make/custom/mvme5500.cfg: Change CPU_CFLAGS to
+ "-mcpu=7450 -mtune=7450 -Dmpc7455"
+ * irq/BSP_irq.c, pci/detect_host_bridge.c, pci.c, pcifinddevice.c:
+ Remove warnings.
+ * vme/VMEConfig.h, include/bsp.h: use VME shared IRQ handlers.
+ * network/if_100MHz/GT64260eth.c: Recycle the Rx mbuf if there
+ is any Rx error.
+
2011-05-17 Till Straumann <strauman at slac.stanford.edu>
PR1797/bsps
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.39 rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.40
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.39 Sat Nov 28 00:24:47 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am Fri Jun 17 08:24:47 2011
@@ -34,6 +34,7 @@
libbsp_a_SOURCES += startup/bspstart.c \
../../powerpc/shared/startup/pgtbl_setup.c startup/pgtbl_activate.c \
../../powerpc/shared/startup/pretaskinghook.c \
+ ../../powerpc/shared/startup/zerobss.c \
../../powerpc/shared/startup/bspgetworkarea.c \
../../powerpc/shared/startup/sbrk.c ../../shared/bootcard.c \
../../shared/bsppredriverhook.c startup/bspclean.c \
@@ -121,7 +122,9 @@
../../../libcpu/@RTEMS_CPU@/@exceptions@/exc_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/irq_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/mpc6xx/mmu.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel\
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/altivec.rel
+
if HAS_NETWORKING
libbsp_a_LIBADD += network.rel
endif
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.39 rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.39.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am:1.39 Sat Nov 28 00:24:47 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/Makefile.am Fri Jun 17 08:22:24 2011
@@ -34,6 +34,7 @@
libbsp_a_SOURCES += startup/bspstart.c \
../../powerpc/shared/startup/pgtbl_setup.c startup/pgtbl_activate.c \
../../powerpc/shared/startup/pretaskinghook.c \
+ ../../powerpc/shared/startup/zerobss.c \
../../powerpc/shared/startup/bspgetworkarea.c \
../../powerpc/shared/startup/sbrk.c ../../shared/bootcard.c \
../../shared/bsppredriverhook.c startup/bspclean.c \
@@ -121,7 +122,9 @@
../../../libcpu/@RTEMS_CPU@/@exceptions@/exc_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/irq_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/mpc6xx/mmu.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel\
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/altivec.rel
+
if HAS_NETWORKING
libbsp_a_LIBADD += network.rel
endif
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.6 rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.7
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.6 Sat Dec 6 22:31:01 2008
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs Fri Jun 17 08:24:47 2011
@@ -4,8 +4,7 @@
*startfile:
%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s \
- mvme5500start.o%s -e __rtems_entry_point -u __vectors}}
+%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s -e __rtems_entry_point -u __vectors mvme5500start.o%s}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic}
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.6 rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.6.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs:1.6 Sat Dec 6 22:31:01 2008
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/bsp_specs Fri Jun 17 08:22:24 2011
@@ -4,8 +4,7 @@
*startfile:
%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s \
- mvme5500start.o%s -e __rtems_entry_point -u __vectors}}
+%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s -e __rtems_entry_point -u __vectors mvme5500start.o%s}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic}
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.22 rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.23
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.22 Wed May 18 00:26:52 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h Fri Jun 17 08:24:47 2011
@@ -103,11 +103,7 @@
/* 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/include/bsp.h:1.19.2.1 rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.19.2.2
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h:1.19.2.1 Wed May 18 00:08:36 2011
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h Fri Jun 17 08:22:24 2011
@@ -103,11 +103,7 @@
/* 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/irq/BSP_irq.c:1.5 rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c:1.6
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c:1.5 Sun Nov 29 22:24:25 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c Fri Jun 17 08:24:47 2011
@@ -381,7 +381,8 @@
* bit 10:GPP interrupts as level sensitive(1) or edge sensitive(0).
* MOTload default is set as level sensitive(1). Set it agin to make sure.
*/
- out_le32(GT_CommUnitArb_Ctrl, (in_le32(GT_CommUnitArb_Ctrl)| (1<<10)));
+ out_le32((volatile unsigned int *)GT_CommUnitArb_Ctrl,
+ (in_le32((volatile unsigned int *)GT_CommUnitArb_Ctrl)| (1<<10)));
#if 0
printk("BSP_irqMask_reg[0] = 0x%x, BSP_irqCause_reg[0] 0x%x\n",
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c:1.5 rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c:1.5.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c:1.5 Sun Nov 29 22:24:25 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c Fri Jun 17 08:22:24 2011
@@ -381,7 +381,8 @@
* bit 10:GPP interrupts as level sensitive(1) or edge sensitive(0).
* MOTload default is set as level sensitive(1). Set it agin to make sure.
*/
- out_le32(GT_CommUnitArb_Ctrl, (in_le32(GT_CommUnitArb_Ctrl)| (1<<10)));
+ out_le32((volatile unsigned int *)GT_CommUnitArb_Ctrl,
+ (in_le32((volatile unsigned int *)GT_CommUnitArb_Ctrl)| (1<<10)));
#if 0
printk("BSP_irqMask_reg[0] = 0x%x, BSP_irqCause_reg[0] 0x%x\n",
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.2 rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.3
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.2 Wed Oct 21 05:53:38 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg Fri Jun 17 08:24:47 2011
@@ -9,12 +9,12 @@
RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc7455
+# This is the actual bsp directory used during the build process.
+RTEMS_BSP_FAMILY=mvme5500
+
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
-# if gcc does not regonize 7450 then change -mcpu=750
-#
-CPU_CFLAGS = -fno-strict-aliasing -mcpu=7450 -Dmpc7455 -mno-altivec -mabi=altivec -mvrsave=no -mmultiple -mstring -mstrict-align
-#T. Straumann; disable sdata=eabi for now until CEXP supports it -meabi -msdata=eabi
+CPU_CFLAGS = -mcpu=7450 -mtune=7450 -Dmpc7455
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
@@ -23,3 +23,6 @@
$(default-bsp-post-link)
$(OBJCOPY) -O binary $(basename $@).exe $(basename $@)$(DOWNEXT)
endef
+
+#
+START_BASE=mvme5500start
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.2 rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.2.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg:1.2 Wed Oct 21 05:53:38 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/make/custom/mvme5500.cfg Fri Jun 17 08:22:24 2011
@@ -9,12 +9,12 @@
RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc7455
+# This is the actual bsp directory used during the build process.
+RTEMS_BSP_FAMILY=mvme5500
+
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
-# if gcc does not regonize 7450 then change -mcpu=750
-#
-CPU_CFLAGS = -fno-strict-aliasing -mcpu=7450 -Dmpc7455 -mno-altivec -mabi=altivec -mvrsave=no -mmultiple -mstring -mstrict-align
-#T. Straumann; disable sdata=eabi for now until CEXP supports it -meabi -msdata=eabi
+CPU_CFLAGS = -mcpu=7450 -mtune=7450 -Dmpc7455
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
@@ -23,3 +23,6 @@
$(default-bsp-post-link)
$(OBJCOPY) -O binary $(basename $@).exe $(basename $@)$(DOWNEXT)
endef
+
+#
+START_BASE=mvme5500start
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.9
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.8 Sun Nov 29 22:24:25 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c Fri Jun 17 08:24:47 2011
@@ -745,21 +745,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/network/if_100MHz/GT64260eth.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.8.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c:1.8 Sun Nov 29 22:24:25 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c Fri Jun 17 08:22:24 2011
@@ -745,21 +745,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/network/if_1GHz/if_wm.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c:1.9
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c:1.8 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c Fri Jun 17 08:24:47 2011
@@ -1730,7 +1730,7 @@
/* We have MII. */
sc->sc_flags |= WM_F_HAS_MII;
-#if 1
+#if 0
/* <skf> May 2009 : The value that should be programmed into IPGT is 10 */
sc->sc_tipg = TIPG_IPGT(10)+TIPG_IPGR1(8)+TIPG_IPGR2(6);
#else
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c:1.8.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c:1.8 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c Fri Jun 17 08:22:24 2011
@@ -1730,7 +1730,7 @@
/* We have MII. */
sc->sc_flags |= WM_F_HAS_MII;
-#if 1
+#if 0
/* <skf> May 2009 : The value that should be programmed into IPGT is 10 */
sc->sc_tipg = TIPG_IPGT(10)+TIPG_IPGR1(8)+TIPG_IPGR2(6);
#else
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.5 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.6
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.5 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c Fri Jun 17 08:24:47 2011
@@ -27,7 +27,7 @@
unsigned long _BSP_clear_hostbridge_errors(int enableMCP, int quiet)
{
- unsigned int pcidata, pcidata1;
+ uint32_t pcidata, pcidata1;
int PciLocal, busNumber=0;
/* On the mvme5500 board, the GT64260B system controller had the MCP
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.5 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.5.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c:1.5 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c Fri Jun 17 08:22:24 2011
@@ -27,7 +27,7 @@
unsigned long _BSP_clear_hostbridge_errors(int enableMCP, int quiet)
{
- unsigned int pcidata, pcidata1;
+ uint32_t pcidata, pcidata1;
int PciLocal, busNumber=0;
/* On the mvme5500 board, the GT64260B system controller had the MCP
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.16 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.17
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.16 Fri Dec 11 06:57:06 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c Fri Jun 17 08:24:47 2011
@@ -108,7 +108,7 @@
BSP_pci[n].config_data,pciConfigPack(bus,dev,func,offset));
#endif
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_be32((volatile unsigned int *) BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
*val = in_8(BSP_pci[n].pci_config_data + (offset&3));
return PCIBIOS_SUCCESSFUL;
}
@@ -129,8 +129,8 @@
printk("addr %x, data %x, pack %x \n", config_addr,
config_data,pciConfigPack(bus,dev,func,offset));
#endif
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- *val = in_le16(BSP_pci[n].pci_config_data + (offset&2));
+ out_be32((volatile unsigned int *) BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ *val = in_le16((volatile unsigned short *) (BSP_pci[n].pci_config_data + (offset&2)));
return PCIBIOS_SUCCESSFUL;
}
@@ -147,8 +147,8 @@
*val = 0xffffffff;
if ((offset&3)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- *val = in_le32(BSP_pci[n].pci_config_data);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ *val = in_le32((volatile unsigned int *)BSP_pci[n].pci_config_data);
return PCIBIOS_SUCCESSFUL;
}
@@ -163,8 +163,8 @@
if (offset & ~0xff) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_8(BSP_pci[n].pci_config_data + (offset&3), val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_8((volatile unsigned char *) (BSP_pci[n].pci_config_data + (offset&3)), val);
return PCIBIOS_SUCCESSFUL;
}
@@ -179,8 +179,8 @@
if ((offset&1)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_le16(BSP_pci[n].pci_config_data + (offset&3), val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_le16((volatile unsigned short *)(BSP_pci[n].pci_config_data + (offset&3)), val);
return PCIBIOS_SUCCESSFUL;
}
@@ -195,8 +195,8 @@
if ((offset&3)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_le32(BSP_pci[n].pci_config_data, val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_le32((volatile unsigned int *)BSP_pci[n].pci_config_data, val);
return PCIBIOS_SUCCESSFUL;
}
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.16 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.16.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c:1.16 Fri Dec 11 06:57:06 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pci.c Fri Jun 17 08:22:24 2011
@@ -108,7 +108,7 @@
BSP_pci[n].config_data,pciConfigPack(bus,dev,func,offset));
#endif
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_be32((volatile unsigned int *) BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
*val = in_8(BSP_pci[n].pci_config_data + (offset&3));
return PCIBIOS_SUCCESSFUL;
}
@@ -129,8 +129,8 @@
printk("addr %x, data %x, pack %x \n", config_addr,
config_data,pciConfigPack(bus,dev,func,offset));
#endif
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- *val = in_le16(BSP_pci[n].pci_config_data + (offset&2));
+ out_be32((volatile unsigned int *) BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ *val = in_le16((volatile unsigned short *) (BSP_pci[n].pci_config_data + (offset&2)));
return PCIBIOS_SUCCESSFUL;
}
@@ -147,8 +147,8 @@
*val = 0xffffffff;
if ((offset&3)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- *val = in_le32(BSP_pci[n].pci_config_data);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ *val = in_le32((volatile unsigned int *)BSP_pci[n].pci_config_data);
return PCIBIOS_SUCCESSFUL;
}
@@ -163,8 +163,8 @@
if (offset & ~0xff) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_8(BSP_pci[n].pci_config_data + (offset&3), val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_8((volatile unsigned char *) (BSP_pci[n].pci_config_data + (offset&3)), val);
return PCIBIOS_SUCCESSFUL;
}
@@ -179,8 +179,8 @@
if ((offset&1)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_le16(BSP_pci[n].pci_config_data + (offset&3), val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_le16((volatile unsigned short *)(BSP_pci[n].pci_config_data + (offset&3)), val);
return PCIBIOS_SUCCESSFUL;
}
@@ -195,8 +195,8 @@
if ((offset&3)|| (offset & ~0xff)) return PCIBIOS_BAD_REGISTER_NUMBER;
- out_be32(BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
- out_le32(BSP_pci[n].pci_config_data, val);
+ out_be32((volatile unsigned int *)BSP_pci[n].pci_config_addr, pciConfigPack(bus,dev,func,offset));
+ out_le32((volatile unsigned int *)BSP_pci[n].pci_config_data, val);
return PCIBIOS_SUCCESSFUL;
}
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.9
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.8 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c Fri Jun 17 08:24:47 2011
@@ -35,7 +35,7 @@
int pci_find_device( unsigned short vendorid, unsigned short deviceid,
int instance, int *pbus, int *pdev, int *pfun )
{
- unsigned int d;
+ uint32_t d;
unsigned short s;
unsigned char bus,dev,fun,hd;
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.8 rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.8.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c:1.8 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c Fri Jun 17 08:22:25 2011
@@ -35,7 +35,7 @@
int pci_find_device( unsigned short vendorid, unsigned short deviceid,
int instance, int *pbus, int *pdev, int *pfun )
{
- unsigned int d;
+ uint32_t d;
unsigned short s;
unsigned char bus,dev,fun,hd;
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.9 rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.10
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.9 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S Fri Jun 17 08:24:47 2011
@@ -4,20 +4,27 @@
* Copyright (C) 1999 Eric Valette. valette at crf.canon.fr
*
* S. Kate Feng <feng1 at bnl.gov>, April 2004
- * Mapped the 2nd 256MB of RAM to support the MVME5500 boards.
- *
+ * Mapped the 2nd 256MB of RAM to support the MVME5500/MVME6100 boards
+ *
* 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.
*
+<<<<<<< start.S
+ * $Id$
+=======
+ * $Id$
+>>>>>>> 1.25
*
*/
#include <rtems/asm.h>
#include <rtems/score/cpu.h>
#include <rtems/powerpc/powerpc.h>
+
#include <libcpu/io.h>
#include <libcpu/bat.h>
+#include <bspopts.h>
#define SYNC \
sync; \
@@ -33,7 +40,6 @@
li r10,0x63 ; \
sc
-
.text
.globl __rtems_entry_point
.type __rtems_entry_point, at function
@@ -62,6 +68,21 @@
mr r29,r5
mr r28,r6
mr r27,r7
+
+#ifdef __ALTIVEC__
+ /* enable altivec; gcc may use it! */
+ mfmsr r0
+ oris r0, r0, (1<<(31-16-6))
+ mtmsr r0
+ /*
+ * set vscr and vrsave to known values
+ */
+ li r0, 0
+ mtvrsave r0
+ vxor 0,0,0
+ mtvscr 0
+#endif
+
/*
* Make sure we have nothing in BATS and TLB
*/
@@ -72,7 +93,8 @@
* of RAM to KERNELBASE.
*/
lis r11,KERNELBASE at h
- ori r11,r11,0x1ffe /* set up BAT0 registers for 604+ */
+/* set up BAT registers for 604 */
+ ori r11,r11,0x1ffe
li r8,2 /* R/W access */
isync
mtspr DBAT0L,r8 /* N.B. 6xx (not 601) have valid */
@@ -81,8 +103,8 @@
mtspr IBAT0U,r11
isync
/*
- * Use the 2nd pair of BAT registers to map the 2nd 256MB
- * of RAM to 0x10000000. <SKF>
+ * <skf> Use the 2nd pair of BAT registers to map the 2nd 256MB
+ * of RAM to 0x10000000.
*/
lis r11,MEM256MB at h
ori r11,r11,0x1ffe /* set up BAT1 registers for 604+ */
@@ -106,7 +128,7 @@
enter_C_code:
bl MMUon
- bl __eabi /* setup EABI and SYSV environment */
+ bl __eabi /* setup EABI and SYSV environment */
bl zero_bss
/*
* restore prep boot params
@@ -121,10 +143,17 @@
* stack = &__rtems_end + 4096
*/
addis r9,r0, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at ha
- addi r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at l
- mr r1, r9
+ addi r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at l
/*
- * We are know in a environment that is totally independent from bootloader setup.
+ * align initial stack
+ * (we hope that the bootloader stack was 16-byte aligned
+ * or we haven't used altivec yet...)
+ */
+ li r0, (CPU_STACK_ALIGNMENT-1)
+ andc r1, r9, r0
+ /*
+ * We are now in a environment that is totally independent from
+ * bootloader setup.
*/
/* pass result of 'save_boot_params' to 'boot_card' in R3 */
bl boot_card
@@ -161,7 +190,6 @@
.globl _return_to_ppcbug
.type _return_to_ppcbug, at function
-
_return_to_ppcbug:
mflr r30
bl MMUoff
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.9 rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.9.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S:1.9 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/start/start.S Fri Jun 17 08:22:25 2011
@@ -4,20 +4,27 @@
* Copyright (C) 1999 Eric Valette. valette at crf.canon.fr
*
* S. Kate Feng <feng1 at bnl.gov>, April 2004
- * Mapped the 2nd 256MB of RAM to support the MVME5500 boards.
- *
+ * Mapped the 2nd 256MB of RAM to support the MVME5500/MVME6100 boards
+ *
* 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.
*
+<<<<<<< start.S
+ * $Id$
+=======
+ * $Id$
+>>>>>>> 1.25
*
*/
#include <rtems/asm.h>
#include <rtems/score/cpu.h>
#include <rtems/powerpc/powerpc.h>
+
#include <libcpu/io.h>
#include <libcpu/bat.h>
+#include <bspopts.h>
#define SYNC \
sync; \
@@ -33,7 +40,6 @@
li r10,0x63 ; \
sc
-
.text
.globl __rtems_entry_point
.type __rtems_entry_point, at function
@@ -62,6 +68,21 @@
mr r29,r5
mr r28,r6
mr r27,r7
+
+#ifdef __ALTIVEC__
+ /* enable altivec; gcc may use it! */
+ mfmsr r0
+ oris r0, r0, (1<<(31-16-6))
+ mtmsr r0
+ /*
+ * set vscr and vrsave to known values
+ */
+ li r0, 0
+ mtvrsave r0
+ vxor 0,0,0
+ mtvscr 0
+#endif
+
/*
* Make sure we have nothing in BATS and TLB
*/
@@ -72,7 +93,8 @@
* of RAM to KERNELBASE.
*/
lis r11,KERNELBASE at h
- ori r11,r11,0x1ffe /* set up BAT0 registers for 604+ */
+/* set up BAT registers for 604 */
+ ori r11,r11,0x1ffe
li r8,2 /* R/W access */
isync
mtspr DBAT0L,r8 /* N.B. 6xx (not 601) have valid */
@@ -81,8 +103,8 @@
mtspr IBAT0U,r11
isync
/*
- * Use the 2nd pair of BAT registers to map the 2nd 256MB
- * of RAM to 0x10000000. <SKF>
+ * <skf> Use the 2nd pair of BAT registers to map the 2nd 256MB
+ * of RAM to 0x10000000.
*/
lis r11,MEM256MB at h
ori r11,r11,0x1ffe /* set up BAT1 registers for 604+ */
@@ -106,7 +128,7 @@
enter_C_code:
bl MMUon
- bl __eabi /* setup EABI and SYSV environment */
+ bl __eabi /* setup EABI and SYSV environment */
bl zero_bss
/*
* restore prep boot params
@@ -121,10 +143,17 @@
* stack = &__rtems_end + 4096
*/
addis r9,r0, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at ha
- addi r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at l
- mr r1, r9
+ addi r9,r9, __stack-PPC_MINIMUM_STACK_FRAME_SIZE at l
/*
- * We are know in a environment that is totally independent from bootloader setup.
+ * align initial stack
+ * (we hope that the bootloader stack was 16-byte aligned
+ * or we haven't used altivec yet...)
+ */
+ li r0, (CPU_STACK_ALIGNMENT-1)
+ andc r1, r9, r0
+ /*
+ * We are now in a environment that is totally independent from
+ * bootloader setup.
*/
/* pass result of 'save_boot_params' to 'boot_card' in R3 */
bl boot_card
@@ -161,7 +190,6 @@
.globl _return_to_ppcbug
.type _return_to_ppcbug, at function
-
_return_to_ppcbug:
mflr r30
bl MMUoff
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.35 rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.36
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.35 Fri Aug 20 11:31:24 2010
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c Fri Jun 17 08:24:47 2011
@@ -52,12 +52,8 @@
#define CONF_VPD
*/
-/* there is no public Workspace_Free() variant :-( */
-#include <rtems/score/wkspace.h>
-
extern uint32_t probeMemoryEnd(void); /* from shared/startup/probeMemoryEnd.c */
-
BSP_output_char_function_type BSP_output_char = BSP_output_char_via_serial;
BSP_polling_getchar_function_type BSP_poll_char = NULL;
@@ -71,13 +67,8 @@
extern unsigned char ReadConfVPD_buff(int offset);
-extern unsigned long __bss_start[], __SBSS_START__[], __SBSS_END__[];
-extern unsigned long __SBSS2_START__[], __SBSS2_END__[];
-
uint32_t bsp_clicks_per_usec;
-SPR_RW(SPRG1)
-
typedef struct CmdLineRec_ {
unsigned long size;
char buf[0];
@@ -134,25 +125,6 @@
__asm__ __volatile ("sc");
}
-void zero_bss(void)
-{
- memset(
- __SBSS_START__,
- 0,
- ((unsigned) __SBSS_END__) - ((unsigned)__SBSS_START__)
- );
- memset(
- __SBSS2_START__,
- 0,
- ((unsigned) __SBSS2_END__) - ((unsigned)__SBSS2_START__)
- );
- memset(
- __bss_start,
- 0,
- ((unsigned) __rtems_end) - ((unsigned)__bss_start)
- );
-}
-
/* NOTE: we cannot simply malloc the commandline string;
* save_boot_params() is called during a very early stage when
* libc/malloc etc. are not yet initialized!
@@ -294,6 +266,7 @@
printk("-----------------------------------------\n");
BSP_mem_size = probeMemoryEnd();
+
/* TODO: calculate the BSP_bus_frequency using the REF_CLK bit
* of System Status register
*/
@@ -303,7 +276,6 @@
/* P94 : 7455 clocks the TB/DECR at 1/4 of the system bus clock frequency */
BSP_time_base_divisor = 4000;
-
/* Maybe not setup yet becuase of the warning message */
/* Allocate and set up the page table mappings
* This is only available on >604 CPUs.
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.34 rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.34.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c:1.34 Sat Mar 27 16:09:08 2010
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c Fri Jun 17 08:22:25 2011
@@ -56,8 +56,6 @@
#include <rtems/score/wkspace.h>
extern uint32_t probeMemoryEnd(void); /* from shared/startup/probeMemoryEnd.c */
-
-
BSP_output_char_function_type BSP_output_char = BSP_output_char_via_serial;
extern void _return_to_ppcbug(void);
@@ -70,13 +68,8 @@
extern unsigned char ReadConfVPD_buff(int offset);
-extern unsigned long __bss_start[], __SBSS_START__[], __SBSS_END__[];
-extern unsigned long __SBSS2_START__[], __SBSS2_END__[];
-
uint32_t bsp_clicks_per_usec;
-SPR_RW(SPRG1)
-
typedef struct CmdLineRec_ {
unsigned long size;
char buf[0];
@@ -133,25 +126,6 @@
__asm__ __volatile ("sc");
}
-void zero_bss(void)
-{
- memset(
- __SBSS_START__,
- 0,
- ((unsigned) __SBSS_END__) - ((unsigned)__SBSS_START__)
- );
- memset(
- __SBSS2_START__,
- 0,
- ((unsigned) __SBSS2_END__) - ((unsigned)__SBSS2_START__)
- );
- memset(
- __bss_start,
- 0,
- ((unsigned) __rtems_end) - ((unsigned)__bss_start)
- );
-}
-
/* NOTE: we cannot simply malloc the commandline string;
* save_boot_params() is called during a very early stage when
* libc/malloc etc. are not yet initialized!
@@ -293,6 +267,7 @@
printk("-----------------------------------------\n");
BSP_mem_size = probeMemoryEnd();
+
/* TODO: calculate the BSP_bus_frequency using the REF_CLK bit
* of System Status register
*/
@@ -302,7 +277,6 @@
/* P94 : 7455 clocks the TB/DECR at 1/4 of the system bus clock frequency */
BSP_time_base_divisor = 4000;
-
/* Maybe not setup yet becuase of the warning message */
/* Allocate and set up the page table mappings
* This is only available on >604 CPUs.
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.4 rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.5
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.4 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h Fri Jun 17 08:24:47 2011
@@ -1,9 +1,24 @@
#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 */
-/*
+/*
* The BSP maps VME address ranges into
* one BAT.
* NOTE: the BSP (startup/bspstart.c) uses
@@ -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
diff -u rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.4 rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.4.2.1
--- rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h:1.4 Sun Nov 29 22:24:26 2009
+++ rtems/c/src/lib/libbsp/powerpc/mvme5500/vme/VMEConfig.h Fri Jun 17 08:22:25 2011
@@ -1,9 +1,24 @@
#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 */
-/*
+/*
* The BSP maps VME address ranges into
* one BAT.
* NOTE: the BSP (startup/bspstart.c) uses
@@ -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/20110617/5ad1fa0f/attachment-0001.html>
More information about the vc
mailing list