summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2004-11-10 22:13:57 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2004-11-10 22:13:57 +0000
commitae460ecea96b84ced70479466844ad36761a306f (patch)
tree84595f39be3e848b202f91270dacc7b7f2d2a50d
parent2004-11-05 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-ae460ecea96b84ced70479466844ad36761a306f.tar.bz2
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
* Makefile.am, configure.ac, bootloader/Makefile.am, include/Makefile.am, wrapup/Makefile.am: Add MVME2100 BSP. * README.MVME2100, tod/.cvsignore, tod/Makefile.am: New files.
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/ChangeLog6
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am6
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100123
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am2
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/configure.ac11
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/include/Makefile.am11
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/tod/.cvsignore2
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am22
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/Makefile.am3
9 files changed, 178 insertions, 8 deletions
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/motorola_powerpc/ChangeLog
index 98c83db823..3f91e3b574 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
+
+ * Makefile.am, configure.ac, bootloader/Makefile.am,
+ include/Makefile.am, wrapup/Makefile.am: Add MVME2100 BSP.
+ * README.MVME2100, tod/.cvsignore, tod/Makefile.am: New files.
+
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 533/bsps
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
index 6a597a893f..1601f4c11c 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
@@ -7,12 +7,12 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories
SUBDIRS = include clock console pci residual openpic irq vectors start \
- startup bootloader motorola @exceptions@ vme wrapup
+ startup bootloader motorola @exceptions@ tod vme wrapup
include $(top_srcdir)/../../bsp.am
-EXTRA_DIST = BOOTING README.MVME2300 README.OTHERBOARDS README.dec21140 \
- bsp_specs times.mcp750 times.mvme2307
+EXTRA_DIST = BOOTING README.MVME2100 README.MVME2300 README.OTHERBOARDS \
+ README.dec21140 bsp_specs times.mcp750 times.mvme2307
include $(top_srcdir)/../../../../../../automake/subdirs.am
include $(top_srcdir)/../../../../../../automake/local.am
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100 b/c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100
new file mode 100644
index 0000000000..d12dd8035f
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100
@@ -0,0 +1,123 @@
+#
+# $Id$
+#
+
+The MVME2100 is a Motorola VMEbus board which is similar to the other
+Motorola PowerPC boards supported by this BSP. But it does not support
+the Motorola CPU Configuration Register. This makes it impossible to
+dynamically probe and determine that you are executing on this board
+variant. So this BSP variant must be explicitly built to only support
+the MVME2100. The complete list of differences found so far is:
+
+ * No CPU Configuration Register
+ * one COM port
+ * COM port is on PCI IRQ not ISA IRQ
+ * limited on RAM (32 or 64 MB)
+ * uses the EPIC interrupt controller on the MPC8240
+ * does not have an ISA bus but has an ISA I/O address space
+ * cannot set DBAT2 in bspstart like other variants because
+ there are PCI/ISA Interrupt Acknowledge registers at this space
+ This BSP may have left some PCI memory uncovered
+ * PPCBug starts programs with vectors still in ROM
+
+Supported Features:
+ - Interrupt driven console using termios
+ - Network device driver
+ - Real-Time Clock driver
+ - Clock Tick Device Driver
+
+Things to address:
+ - Does not return to monitor
+ - Level 1 cache is disabled for now
+ - Check on trying to read CPU Configuration Register for CHRP/Prep for PCI
+ and report a failure if in the wrong mode. May be able to set the model
+ but it may be hard to test if we break PPCBug.
+ - Use NVRAM for network configuration information
+
+BSP Features Not Implemented:
+ - VMEbus mapped in but untested
+ - OpenPIC features not required for BSP are not supported
+
+Memory Map
+==========
+ BAT Mapping
+
+ ffff ffff |------------------------------------| ----- ffff ffff
+ | ROM/FLASH Bank 0 | |
+ fff0 0000 |------------------------------------| |
+ | System I/O | |
+ ffe0 0000 |------------------------------------| |
+ | Replicated ROM/FLASH Bank 0 | |
+ | Replicated System I/O | |
+ ff80 0000 |------------------------------------| |
+ | ROM/FLASH Bank 1 | DBAT3
+ ff00 0000 |------------------------------------| - Supervisor R/W
+ | PCI Interrupt Acknowledge | - Cache Inhibited
+ fef0 0000 |------------------------------------| - Guarded
+ | PCI Configuration Data Register | |
+ fee0 0000 |------------------------------------| |
+ | PCI Configuration Address Register | |
+ fec0 0000 |------------------------------------| |
+ | PCI I/O Space | |
+ fe80 0000 |------------------------------------| |
+ | PCI/ISA I/O Space | |
+ fe00 0000 |------------------------------------| |
+ | PCI/ISA Memory Space | |
+ fd00 0000 |------------------------------------| |
+ | | |
+ | xxxxxxxxxxxxxx| ----- f000 0000
+ | x not mapped |
+ | xxxxxxxxxxxxxx| ----- 9000 0000
+ | | |
+ | | |
+ | PCI Memory Space | DBAT2
+ | | - Supervisor R/W
+ | | - Cache Inhibited
+ | | - Guarded
+ | | |
+ | | |
+ | | |
+ 8000 0000 |------------------------------------| ----- 8000 0000
+ | x |
+ | x not mapped |
+ | Reserved xxxxxxxxxxxxxx| ----- 1000 0000
+ | | |
+ | | |
+ 0200 0000 |------------------------------------| |
+ | | |
+ | | |
+ | | |
+ | | |
+ | DRAM (32MB) | DBAT1/IBAT1
+ | | - Supervisor R/W
+ | | |
+ | | |
+ | | |
+ | | |
+ 0000 0000 |------------------------------------| ----- 0000 0000
+
+
+TTCP Performance on First Day Run
+=================================
+Fedora Core 1 on (according to /proc/cpuinfo) a 300 Mhz P3 using Netgear
+10/100 CardBus NIC on a dedicated 10BaseT LAN.
+
+ON MVME2100: ttcp -t -s 192.168.2.107
+REPORTED ON MVME2100:
+ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.2.107
+ttcp-t: socket
+ttcp-t: connect
+ttcp-t: 16777216 bytes in 20.80 real seconds = 787.69 KB/sec +++
+ttcp-t: 2048 I/O calls, msec/call = 10.40, calls/sec = 98.46
+ttcp-t: 0.0user 20.8sys 0:20real 100% 0i+0d 0maxrss 0+0pf 0+0csw
+
+ON MVME2100: ttcp -t -s 192.168.2.107
+REPORTED ON MVME2100:
+ttcp -r -s
+ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
+ttcp-r: socket
+ttcp-r: accept from 192.168.2.107
+ttcp-r: 16777216 bytes in 15.41 real seconds = 1063.21 KB/sec +++
+ttcp-r: 11588 I/O calls, msec/call = 1.36, calls/sec = 751.98
+ttcp-r: 0.0user 15.4sys 0:15real 100% 0i+0d 0maxrss 0+0pf 0+0csw
+
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
index 473f4d3b82..15ad9237bb 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
@@ -25,7 +25,7 @@ DEFAULT_INCLUDES =
# Remove references to EABI when compiling bootloader
BOOTLOADER_CPU_FLAGS=$(subst -msdata=eabi,,$(subst -meabi,,$(CPU_CFLAGS)))
-AM_CPPFLAGS = -D__BOOT__ -DDEBUG
+AM_CPPFLAGS = -D__BOOT__
AM_CFLAGS = \
$(GCC_SPECS) -specs bsp_specs -qrtems -mrelocatable \
-msoft-float -mstrict-align -fno-builtin -Wall -mmultiple \
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/configure.ac b/c/src/lib/libbsp/powerpc/motorola_powerpc/configure.ac
index b57686514a..e3ad203c8c 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/configure.ac
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/configure.ac
@@ -20,6 +20,16 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
AS=$CC
AM_PROG_AS
+RTEMS_BSPOPTS_SET([mvme2100],[mvme2100],[1])
+RTEMS_BSPOPTS_SET([mvme2100],[*],[])
+RTEMS_BSPOPTS_HELP([mvme2100],
+[Defined for MVME2100 -- undefined for others])
+
+RTEMS_BSPOPTS_SET([mpc8240],[mvme2100],[1])
+RTEMS_BSPOPTS_SET([mpc8240],[*],[])
+RTEMS_BSPOPTS_HELP([mpc8240],
+[Defined for boards with MPC8240 -- undefined for others])
+
RTEMS_BSPOPTS_SET([PPC_USE_DATA_CACHE],[*],[1])
RTEMS_BSPOPTS_HELP([PPC_USE_DATA_CACHE],
[If defined, then the PowerPC specific code in RTEMS will use
@@ -43,6 +53,7 @@ pci/Makefile
residual/Makefile
start/Makefile
startup/Makefile
+tod/Makefile
vectors/Makefile
vme/Makefile
wrapup/Makefile])
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/include/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/include/Makefile.am
index 2d210ce756..b34fa672cf 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/include/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/include/Makefile.am
@@ -5,11 +5,12 @@
include_HEADERS = bspopts.h
include_HEADERS += ../../shared/include/nvram.h ../../shared/include/bsp.h \
- ../../../shared/include/coverhd.h
+ ../../../shared/include/coverhd.h ../../../shared/tod.h
include_bspdir = $(includedir)/bsp
-include_bsp_HEADERS = ../../shared/console/consoleIo.h ../../shared/console/uart.h \
- ../../shared/irq/irq.h ../../shared/motorola/motorola.h
+include_bsp_HEADERS = ../../shared/console/consoleIo.h \
+ ../../shared/console/uart.h ../../shared/irq/irq.h \
+ ../../shared/motorola/motorola.h
$(PROJECT_INCLUDE):
$(mkinstalldirs) $@
@@ -29,6 +30,9 @@ $(PROJECT_INCLUDE)/bsp.h: ../../shared/include/bsp.h
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
$(INSTALL_DATA) $< $@
+$(PROJECT_INCLUDE)/tod.h: ../../../shared/tod.h
+ $(INSTALL_DATA) $< $@
+
$(PROJECT_INCLUDE)/bsp/consoleIo.h: ../../shared/console/consoleIo.h
$(INSTALL_DATA) $< $@
@@ -46,6 +50,7 @@ TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/nvram.h
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
+TMPINSTALL_FILES += $(PROJECT_INCLUDE)/tod.h
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/.cvsignore b/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am
new file mode 100644
index 0000000000..5e35e88955
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am
@@ -0,0 +1,22 @@
+##
+## $Id$
+##
+
+
+VPATH = @srcdir@:@srcdir@/../../shared/tod:@srcdir@/../../../shared
+
+C_FILES = todcfg.c tod.c
+C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
+
+OBJS = $(C_O_FILES)
+
+include $(top_srcdir)/../../../../../../automake/compile.am
+include $(top_srcdir)/../../../../../../automake/lib.am
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+all-local: $(ARCH) $(OBJS)
+
+include $(top_srcdir)/../../../../../../automake/local.am
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/Makefile.am
index 09b27143f3..49902e1d09 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/Makefile.am
@@ -2,7 +2,8 @@
## $Id$
##
-BSP_PIECES = clock console irq openpic pci residual startup vectors motorola vme
+BSP_PIECES = clock console irq openpic pci residual startup \
+ tod vectors motorola vme
# bummer; have to use $foreach since % pattern subst rules only replace 1x
OBJS = $(foreach piece, $(BSP_PIECES), ../$(piece)/$(ARCH)/*.$(OBJEXT)) \