wiki:TBR/BSP/Mvme2700

Mvme2700

Infobox BSP

BSP_name mvme2700
Manufacturer Motorola Computer Group now Emerson Network Power
Board_URL http://www.acttechnico.com/MVME2700_Specs.PDF
image MVME2700_L_833.jpg
Architecture PowerPC
CPU_model MPC750
Simulator No
RAM 128MB or 256MB ECC DRAM on-board memory.
NVMEM 8MB on-board Flash, 1MB socketed
Serial One or two sync/async

This is a Motorola VMEBus Board which uses the Motorola Shared BSP.

The MVME2700 series is a family of VME processor modules based on the Motorola PowerPlus? VME Architecture with PowerPC architecture microprocessors that push performance and functionality to limits unprecedented on VME. The flexibility of the MVME2700 provides an excellent base platform that can be quickly and easily customized for a variety of industry-specific applications. Designed to meet the needs of military and aerospace, industrial automation, and medical, the MVME2700 applies to a variety of applications.

  • MPC750 class 32-bit microprocessor
  • 32KB/32KB L1 cache
  • 1MB backside L2 cache
  • 128MB or 256MB ECC DRAM on-board memory
  • 8MB on-board Flash, 1MB socketed
  • 64-bit PCI mezzanine connector
  • On-board debug monitor with self-test diagnostics
  • IEEE P1386.1 compatible 32/64-bit PMC expansion slot
  • Two or three async, one or two sync/async serial ports
  • Ethernet transceiver interface with 32-bit PCI local bus DMA
  • 8- or 16-bit Fast SCSI-2 bus interface
  • Parallel, floppy, keyboard, and mouse interfaces
  • 8KB x 8 NVRAM and time-of-day clock with replaceable battery backup
  • Four 32-bit timers, one watchdog timer
  • One VME slot, even when configured with PMC module

Known Issues

Issuing bsp_reset() does not reset the board (prior to 4.9)

There's a bug that likely occurs in mvme2300-2700. A call in libbsp/powerpc/shared/console/reboot.c attempted to board reset via the keyboard port. This resulted in a NOOP (i.e., nothing happened and the board did not reset). PR1362 included this proposed patch which sets bit 1, port 0x92. This successfully resets *only* the board and I've also verified it does not reset the VME bus as described below.

Tests performed:

  1. I set bit 1 port 0x92 and removed the keyboard call. I verified that exit did (at least) a board reset. That works.
  1. I also performed an exit with the board SYSCON disabled (J20). I again verified the exit performed a board reset, but it did not affect any peripheral boards.
  1. SYSCON reenabled now, I included a peripheral board (vmic5588) and initialized it to make the fail light turn off. I again issued an exit and the 5588 fail light remained off, while the 2700 reset.
  1. I verified pushing the RST on the 2700 that my 5588 fail light transition from OFF->fail, implying this is what I should see during a VME bus reset.

So I think this is a sufficient test indicating the board reset works and is independent of resetting the VME bus, which has also been verified with vmeUniverseResetBus().

Patch:

--- /tmp/rtems-4.9.1/c/src/lib/libbsp/powerpc/shared/console/reboot.c   2008-10-23 03:45:55.000000000 -1000
+++ reboot.c    2009-01-26 09:30:30.295646000 -1000
@@ -16,10 +16,14 @@
   printk("Printing a stack trace for your convenience :-)\n");
   CPU_print_stack();
   /* shutdown and reboot */
-#if defined(BSP_KBD_IOBASE)
-  kbd_outb(0x4, 0xFE);      /* use keyboard controler to do the job... */
-#endif
+
 #if defined(mvme2100)
   *(unsigned char*)0xffe00000 |= 0x80;
+#else
+   /* Memory-mapped Port 92 PIB device access
+   *(unsigned char*)0x80000092 |= 0x01;
+   */
+   outb(1, 0x92);
+
 #endif
 } /* bsp_reset */

Configure Params

../rtems-4.9.1/configure -target=powerpc-rtems4.9 \
                         -prefix=/opt/rtems -enable-cxx \
                         -enable-rdbg -disable-tests \
                         -enable-networking -enable-posix \
                         -enable-rtemsbsp=mvme2700

Test Reports

      VERSION: rtems-4.9.1
        TOOLS: rtems-4.9-powerpc-rtems4.9-gcc.i386

        EPICS: * Runs example application from makeBaseApp.pl -t example
               * Channel Access (network) communications verified
               * VME access verified with vmic 5588 Reflective Memory

EPICS Channel Access Performance

Channel Access is described here: http://www.aps.anl.gov/epics/base/R3-14/1-docs/CAref.html

host> catime mrippa:aiExample

Testing with 10000 channels named mrippa:aiExample

channel connect test
Elapsed Per Item =   0.00034666 sec,     2884.7 Items per sec, 1.6 Mbps
Search tries per chan - mean=1.030000 std dev=0.197737 min=1.000000 max=3.000000
channel name=mrippa:aiExample, native type=6, native count=1
        pend event test
Elapsed Per Item =   0.00000327 sec,   305883.9 Items per sec

float test
        async put test
Elapsed Per Item =   0.00000906 sec,   110416.3 Items per sec, 15.0 Mbps
        async get test
Elapsed Per Item =   0.00018496 sec,     5406.7 Items per sec, 1.4 Mbps
        synch get test
Elapsed Per Item =   0.00022840 sec,     4378.3 Items per sec, 1.2 Mbps

double test
        async put test
Elapsed Per Item =   0.00000905 sec,   110519.5 Items per sec, 15.0 Mbps
        async get test
Elapsed Per Item =   0.00016939 sec,     5903.5 Items per sec, 1.6 Mbps
        synch get test
Elapsed Per Item =   0.00022621 sec,     4420.6 Items per sec, 1.2 Mbps

string test
        async put test
Elapsed Per Item =   0.00001010 sec,    98985.8 Items per sec, 16.6 Mbps
        async get test
Elapsed Per Item =   0.00019318 sec,     5176.5 Items per sec, 1.5 Mbps
        synch get test
Elapsed Per Item =   0.00022888 sec,     4369.1 Items per sec, 1.3 Mbps

integer test
        async put test
Elapsed Per Item =   0.00000908 sec,   110124.6 Items per sec, 15.0 Mbps
        async get test
Elapsed Per Item =   0.00022520 sec,     4440.6 Items per sec, 1.2 Mbps
        synch get test
Elapsed Per Item =   0.00022666 sec,     4411.9 Items per sec, 1.2 Mbps

round trip jitter test
Round trip get delays - mean=0.000229 sec, std dev=0.000007 sec, min=0.000221 sec max=0.000510 sec

free test
Elapsed Per Item =   0.00000058 sec,  1736530.2 Items per sec, 0.0 Mbps

Board Setup

NIOT

PPC1-Bug>niot
Controller LUN =00?
Device LUN     =00?
Node Control Memory Address =0FF9E000?
Client IP Address      =10.1.5.253?
Server IP Address      =10.1.5.143?
Subnet IP Address Mask =255.255.255.0?
Broadcast IP Address   =10.1.5.255?
Gateway IP Address     =0.0.0.0?
Boot File Name ("NULL" for None)     =/epics/boot/test/bin/RTEMS-mvme2700/test.boot?
Argument File Name ("NULL" for None) =10.1.5.143:/opt/rtems-4.9:epics/boot/test/st.cmd?
Boot File Load Address         =001F0000?
Boot File Execution Address    =001F0000?
Boot File Execution Delay      =00000000?
Boot File Length               =00000000?
Boot File Byte Offset          =00000000?
BOOTP/RARP Request Retry       =05?
TFTP/ARP Request Retry         =05?
Trace Character Buffer Address =00000000?
BOOTP/RARP Request Control: Always/When-Needed (A/W)=W?
BOOTP/RARP Reply Update Control: Yes/No (Y/N)       =Y?

ENV

PPC1-Bug>env
Bug or System environment [B/S] = B? 
Field Service Menu Enable [Y/N] = N? 
Remote Start Method Switch [G/M/B/N] = B? 
Probe System for Supported I/O Controllers [Y/N] = Y? 
Auto-Initialize of NVRAM Header Enable [Y/N] = Y?     
Network PReP-Boot Mode Enable [Y/N] = Y?              
Negate VMEbus SYSFAIL* Always [Y/N] = N?              
SCSI Bus Reset on Debugger Startup [Y/N]   = N?       
Primary SCSI Bus Negotiations Type [A/S/N] = A?       
Primary SCSI Data Bus Width [W/N]          = N?       
Secondary SCSI Identifier                  = "07"?    
NVRAM Bootlist (GEV.fw-boot-path) Boot Enable [Y/N]           = N? 
NVRAM Bootlist (GEV.fw-boot-path) Boot at power-up only [Y/N] = N? 
NVRAM Bootlist (GEV.fw-boot-path) Boot Abort Delay            = 5? 
Auto Boot Enable [Y/N]           = N?                              
Auto Boot at power-up only [Y/N] = N?                              
Auto Boot Scan Enable [Y/N]      = Y?                              
Auto Boot Scan Device Type List  = FDISK/CDROM/TAPE/HDISK/?        
Auto Boot Controller LUN   = 00?                                   
Auto Boot Device LUN       = 00?                                   
Auto Boot Partition Number = 00?                                   
Auto Boot Abort Delay      = 7?                                    
Auto Boot Default String [NULL for an empty string] = ?            
ROM Boot Enable [Y/N]            = N?                              
ROM Boot at power-up only [Y/N]  = Y?                              
ROM Boot Enable search of VMEbus [Y/N] = N?                        
ROM Boot Abort Delay             = 5?                              
ROM Boot Direct Starting Address = FFF00000?                       
ROM Boot Direct Ending Address   = FFFFFFFC?                       
Network Auto Boot Enable [Y/N]           = N?                      
Network Auto Boot at power-up only [Y/N] = N?                      
Network Auto Boot Controller LUN = 00?                             
Network Auto Boot Device LUN     = 00?                             
Network Auto Boot Abort Delay    = 5?                              
Network Auto Boot Configuration Parameters Offset (NVRAM) = 00001000? 
Memory Size Enable [Y/N]         = Y?                                 
Memory Size Starting Address     = 00000000?                          
Memory Size Ending Address       = 10000000?                          
DRAM Speed in NANO Seconds       = 50?                                
ROM First Access Length (0 - 31) = 10?                                
ROM Next Access Length  (0 - 15) = 0?                                 
DRAM Parity Enable [On-Detection/Always/Never - O/A/N]    = O?        
L2Cache Parity Enable [On-Detection/Always/Never - O/A/N] = O?        
PCI Interrupts Route Control Registers (PIRQ0/1/2/3) = 0A0B0E0F?      
Serial Startup Code Master Enable [Y/N] = N?                          
Serial Startup Code LF Enable [Y/N] =     N?                          
VME3PCI Master Master Enable [Y/N] = Y?                               
PCI Slave Image 0 Control                = 00000000?                  
PCI Slave Image 0 Base Address Register  = 00000000?                  
PCI Slave Image 0 Bound Address Register = 00000000?                  
PCI Slave Image 0 Translation Offset     = 00000000?
PCI Slave Image 1 Control                = 00000000?
PCI Slave Image 1 Base Address Register  = 01000000?
PCI Slave Image 1 Bound Address Register = 20000000?
PCI Slave Image 1 Translation Offset     = 00000000?
PCI Slave Image 2 Control                = 00000000?
PCI Slave Image 2 Base Address Register  = 20000000?
PCI Slave Image 2 Bound Address Register = 22000000?
PCI Slave Image 2 Translation Offset     = D0000000?
PCI Slave Image 3 Control                = 00000000?
PCI Slave Image 3 Base Address Register  = 2FFF0000?
PCI Slave Image 3 Bound Address Register = 30000000?
PCI Slave Image 3 Translation Offset     = D0000000?
VMEbus Slave Image 0 Control                = E0F20000?
VMEbus Slave Image 0 Base Address Register  = 00000000?
VMEbus Slave Image 0 Bound Address Register = 10000000?
VMEbus Slave Image 0 Translation Offset     = 80000000?
VMEbus Slave Image 1 Control                = 00000000?
VMEbus Slave Image 1 Base Address Register  = 00000000?
VMEbus Slave Image 1 Bound Address Register = 00000000?
VMEbus Slave Image 1 Translation Offset     = 00000000?
VMEbus Slave Image 2 Control                = 00000000?
VMEbus Slave Image 2 Base Address Register  = 00000000?
VMEbus Slave Image 2 Bound Address Register = 00000000?
VMEbus Slave Image 2 Translation Offset     = 00000000?
VMEbus Slave Image 3 Control                = 00000000?
VMEbus Slave Image 3 Base Address Register  = 00000000?
VMEbus Slave Image 3 Bound Address Register = 00000000?
VMEbus Slave Image 3 Translation Offset     = 00000000?
PCI Miscellaneous Register       = 10000000?
Special PCI Slave Image Register = 00000000?
Master Control Register          = 80C00000?
Miscellaneous Control Register   = 52060000?
User AM Codes                    = 00000000?

Last modified on 11/07/18 at 05:22:56 Last modified on 11/07/18 05:22:56