...
- Get an SBC, either a mvme5500 or mvme6100.
- Get a SLAC ID from Doug or Kristi. You will be given two stickers. Put one on the front faceplate of your SBC. Put the other on the board itself, near the serial number and ethernet MAC addresses which are typically visible on white labels attached to the top of the board, near the front faceplate.
- Get a network address for your SBC. Go to the LCLS Development Network Nodes page (SLAC-only), and you'll see a list of all reserved addresses. Click the edit button to put your name with any unused entry, then you can use the corresponding network address for your IOC. Enter the two ethernet (MAC) addresses, the serial number, and the SLAC ID number.
- A VME enclosure with power for the SBC.
- Two Ethernet cables, and an Ethernet to Serial adapter. You might also need a DB9 to USB adapter; see below.
The Ethernet to Serial Adapter physically connects the wires from the RJ45 connector of the ethernet cable to the pins of a female 9-pin serial connector, as shown in Figure 1 below. See Table 1 for pinouts.
Wiki Markup |
---|
{center:class=myclass}
!Adapter-RJ45-DB9.png!
*Figure 1*. An RJ45 to DB9 Adapter for the SBC's Serial Console Line. Ideally, yours will be assembled\!{center} |
The DB9 to USB adapter will be needed if your computer doesn't have a 9-pin male serial connection. Some computers use USB exclusively for serial communication, such as the Mac.
Wiki Markup |
---|
{center:class=myclass}
!DB9-Keyspan-USB-Adapter.png!
*Figure 2*. DB9 to USB Adapter; The Keyspan USA-19HS for the Mac.
\\
\\
*Table 1.* Serial cable pinouts for DB9-Female to RJ45.
|| RJ45 Signal || RJ45 Socket 8 Position || To Color || DB9 Socket 9 Position || *DB9 Signal* ||
| DCD | 1 | Blue | 4 | DTR |
| RTS | 2 | Orange | 8 | CTS |
| GND | 3 | Black | 5 | GND |
| GND | 4 | Yellow | 5 | GND |
| TxD | 5 | Red | 2 | RxD |
| RxD | 6 | Green | 3 | TxD |
| CTS | 7 | Brown | 7 | RTS |
| DTR | 8 | White | 6 | DSR |
| DTR | 8 | White | 1 | DCD |
{center} |
- If you want to connect the cpu serial port to a DIGI Terminal Server you will need a cat5 cable with RJ45 connectors on both. For a cable diagram click here.
- You'll need network access to the LCLS Development server (lcls-dev1.slac.stanford.edu)
- A computer running UNIX (Linux, MacOS X, Solaris, etc.) or Microsoft Windows.
- The computer must have an available serial port. If the computer has only USB connections with no DB9-type serial ports, you'll need a serial DB9 to USB adapter. For MacOS X, we use the Keyspan model USA-19HS.
...
If you're using an mvme5500, you should disable the ability to overwrite the firmware monitor. If the MOTLoad software is accidentally overwritten, Motorola will charge around $90 to restore it.
Remove the J9 jumper, which is installed by default from the mvme5500 CPU, as shown in Figure 3 below.
Wiki Markup |
---|
{center:class=myclass} !mvme5500BoardJumperRemoval.png|l,width=635,height=712!
*Figure 3*. Remove the J9 Jumper from the mvme550 CPU.{center} |
Assembly
The next step is to put it all together. The goal is to end up with something that looks like this:
Wiki Markup |
---|
{center:class=myclass}
!IOCSetup.png|width=610,height=342!
*Figure 4*. Basic IOC Setup for Development
{center} |
- Insert the mvme5500 or mvme6100 CPU into the VME enclosure.
Connect the serial cable for the IOC Console. Figure 5 shows the bottom of the front panel of an mvme6100 SBC, and the jack labeled DEBUG is for the serial console cable. The mvme5500 looks similar, but the console jack is labeled COM1 instead of DEBUG.
Wiki Markup |
---|
{center:class=myclass} !mvme6100FrontPanelConnections.png|thumbnail,width=59,height=218!
*Figure 5*. SBC Front Panel Connections for the mvme6100. {center} |
Insert an ethernet cable to the bottom RJ45 connector on the CPU. Insert the other end into the RJ45 to DB9 adapter, and plug that adapter into the serial port on your computer.
- Connect the second ethernet cable to the RJ45 jack that is second from the bottom on the CPU. On the mvme6100, it is labeled LAN1; on the mvme5500, it is (incorrectly) labeled ENET2. Insert the other end into an ethernet data port in your office.
...
Finally, the "-f" parameter indicates the name of the file (under /tftpboot on laci@lcls-dev1) containing the sequence of values to be loaded into memory.
It is set to /rtems/4.10.2/powerpc-rtems/beatnik/img/netboot.flashimg.bin for both production and development. Note that the mount for tftp is mapped to from the environment variable $TFTPBOOT on the development and production control systems. Therefore if you "cd $TFTPBOOT" the path following "-f" should exist.
Panel |
---|
On development for rtems 4.10.2: Host w/tftp server is lcls-dev1 MVME5500>tftpGet -c134.79.219.49 -s134.79.219.136 -g134.79.219.1 \ -m255.255.252.0 -f/rtems/4.10.2/powerpc-rtems/beatnik/img/netboot.flashimg.bin |
...
On production:
Panel |
---|
For MVME6100: Example: For a client that has an IP address 172.27.2.179: MVME6100> tftpGet -c172.27.2.179 -s172.27.8.28 -g172.27.0.1 -m255.255.252.0 -f/rtems/4.10.2/powerpc-rtems/beatnik/img/netboot.flashimg.bin Network Loading from: /dev/enet0 Loading File: /rtems/4.10.2/powerpc-rtems/beatnik/img/netboot.flashimg.bin Load Address: 006B7000 Download Buffer Size = 00200000 Client IP Address = 172.27.2.179 Server IP Address = 172.27.8.41 Gateway IP Address = 172.27.0.1 Subnet IP Address Mask = 255.255.252.0 Network File Load in Progress... Bytes Received =&780860, Bytes Loaded =&780860 Bytes/Second =&780860, Elapsed Time =1 Second(s) MVME6100> |
...
- At this point, you've confirmed the flash memory contains the right data. The netBoot software will recognize several commands from your keyboard, and it's listed them after you've interrupted its boot process.
- Normally when it runs, netBoot attempts to download the software that you ultimately want to use. To do so, it keeps several parameters in non-volatile memory (NVRAM.)
- Now you're going to set those various parameters and record them in NVRAM. Press "c" to change the parameters that netBoot will use to download software. Keep in mind that your own processors IP address must be entered under "My IP", just as it's name.
- Typically, only the fields marked "My IP", "My name" and "Command Line Parameters" will have values unique to your processor. All other fields should be entered as you see here. If you have questions, please ask a Controls Software Engineer from theEPICS Team.
- The field "Command Line Parameters"is set to:
- (booting from NFS): INIT=/boot/epics/iocCommon/user , followed by a path to your boot-up script. If you're using the AFS filesystem, which is common at SLAC, then your path will typically be something like /u/ <two-chars> / <login user-id> /path-to-example . If you are booting out of the shared lcls group space, the boot-up script is /boot/g/lcls/epics/iocCommon/"<your-node-name>"/startup.cmd . See the example below. Please note that the same DNS and the NTP servers for development and test-facility are used.
Facility | TFTP Server | Boot Server | Gateway | DNS | NTP |
---|
Development | LCLS-DEV1 134.79.219.136 | AFSNFS 172.23.66.102 | 134.79.219.1 |
| 134.79.111.111 134.79.111.112 | 134.79.110.75 134.79.110.10 |
Test-Facility | LCLS-DEV1 134.79.219.136 | AFSNFS 172.23.66.102 | 172.27.96.1 | 134.79.111.111 134.79.111.112 | 134.79.110.75 134.79.110.10 |
LCLS | LCLS-SRV04 172.27.8.28 | MCCFS2 172. |
27827.8.11 | 172.27.0.1 | 134.79.151.12 134.79.151.13 | 134.79. |
1107511010 27827.8.11 | 172.27.8.1 | 134.79.151.12 134.79.151.13 | 134.79. |
1107511010
Panel |
---|
Changing NVRAM configuration Use '<Ctrl>-k' to go up to previous field Use '<Ctrl>-r' to restore this field Use '<Ctrl>-g' to quit+write NVRAM Use '<Ctrl>-c' to quit+cancel (all values are restored) Use '<Ctrl>-x' to reboot Boot file (e.g., '/TFTP/1.2.3.4/path', '~rshuser/path' or 'nfshost:/dir:path'): > afsnfs:/afs/slac:/package/rtems/4.10.2/target/rtems_p3/ssrlApps_p1p2/powerpc-rtems/beatnik/bin/rtems.ralf Command line parameters:
> INIT=/boot/g/lcls/epics/iocCommon/ioc-b34-cd09/startup.cmd Server IP: > 172.23.66.102 Gateway IP: > 134.79.219.1 My IP: > 134.79.219.49 My netmask: > 255.255.252.0 My name: > ioc-b34-cd09 My domain: > slac.stanford.edu Loghost IP: > DNS server 1: > 134.79.111.111 DNS server 2: > 134.79.111.112 DNS server 3: > NTP server 1: > 134.79.110.75 NTP server 2: > 134.79.110.10 NTP server 3: > 134.79.110.9 Use BOOTP: Yes, No or Partial (-> file and
command line from NVRAM) Y-N-P > N Autoboot Delay: 0_.30secs (0==forever) > 5 CPU Temp. Calibration - (LEAVE IF UNSURE) > NVRAM configuration updated |
- Now you can continue with the boot process. When you're done setting the values in the previous step, you'll be given the list of netBoot commands again. Type "m" to continue with the boot process to make sure everything is correct.
- You'll see a very long set of messages come from the processor console, ending in a prompt that says "Cexp>". RTEMS has successfully started running on your processor.
- To get back to MOTLoad, type:
Saving an Automatic Boot Script and Recovery from "gev" errors"
Those few steps that you took before changing the NVRAM are all that are needed to reboot the computer again. These steps may need to be repeated after replacing a battery, or if you get the error "Warning: Global Environment Variable Area is uninitialized, use gevInit" (after issuing the "gevInit" command). Now, we can save those steps so the processor can perform them automatically each time it restarts.
...
Panel |
---|
Cexp> BSP_flashWriteEnable(0) Cexp> BSP_flashWriteFile(0,0,"/boot/package/rtems/4.910.42/target/rtems_p3/ssrlApps_p2/powerpc-rtems/beatnik/img/netboot.flashimg.bin") |
...
Panel |
---|
Cexp> BSP_flashWriteEnable(0) Cexp> BSP_flashWriteFile(0,0,"/boot/lcls/rtems/rtems-4.910.42/target/ssrlApps/powerpc-rtems/beatnik/img/netboot.flashimg.bin") |
LCLS Node NVRAM Settings
...