Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 Configure uC5282 NVRAM

Overview of Steps

  • Create a 'cramfs' file system image of the netboot binary image. This is a compressed version of the netboot binary image.

          Note: Alternately, with more recent versions of rtems (Example: 4.9.x) , you can directly flash the netboot.flashimg.bin file.

  • Store this on a machine with a tftp server that can access your target

...

  • Connect the target (Example: a BPM chassis that has the Coldfire module in it) to your desktop or laptop.
  • Set the IP address environment variable and run the tftp server.
  • Transmit the file system image to the target.
  • Program it into flash memory

...

  • Using the uC5282 uCbootloader, set the environment variables

...

  • Boot the image.

(Much of this document is from an email from Till, 13 March 2008)

...

To show a list of all variables:
B$ printenv
To show the value of a single variable:
B$ printenv ENVVAR

...

mkdir cramfs_top
cp /afs/slac/package/rtems/4.9.1<version>/target/ssrlAppsssrlApps<lvl>/m68k-
rtems/uC5282/img/netboot.flashimg.bin cramfs_top/netboot.bin

 Note: If your board is a 80MHz version of Coldfire, then you want to use netboot and rtems from 4.9.4/target/rtems_p1/ssrlApps_p3/

2 Generate cramfs image (need mkcramfs utility) on host computer

...

NOTE: in spite of the coldfire being a big-endian machine and cramfs internal data structures being susceptible to endianness, uCbootloader seems to expect a LITTLE-endian cramfs image (which is directly created by mkcramfs on a little-endian machine such as a x86 box)

 Note: For more recent vesions of the rtems (for example 4.9.x), one can tftp in netboot.flashimg.bin directly, without having to compress it first.

3

...

Connect to serial port

Connect serial port (Example: on BPM chassis) to serial port on your computer. (It must be a straight-through cable.) Connect to your local serial port using a terminal emulation program (Tera Term Pro on Windows works).

Note: If connecting through DIGI Terminal Port Server, connect the serial port of device/chassis containing Coldfire module, to one of the serial ports of the DIGI.

         To use iocConsole program to do serial communications with the DIGI:

         (a) Add your Coldfire EIOC to screeniocs file, the configuration file for iocConsole.

             For development environment, this file is in /afs/slac/g/lcls/epics/ioc/iocCommon/screeniocs.

             This file lets association of a DIGI Serial Port number with your <coldfire_eioc_nodename>

         (b) From a development linux host, such as lcls-dev2:

              > source /afs/slac/g/lcls/tools/script/ENVS.bash

              > iocConsole <coldfire_eioc_nodename>

                 Example: iocConsole 134.79.219.81

Power up the Coldfire device/chassis (Example: BPM chassis).

4 At the uCbootloader prompt B$, set the IP address environment variable, for example:

...

hostname$tftp 134.79.219.81
tftp> verbose
Verbose mode on.
tftp> binary
mode set to octet
tftp> tra
Packet tracing on.
tftp> put cramfs.img

 NOTE: Use 'put netboot.flashimg.bin' if you are directly tftping the binary image (and not the compressed image) per Step 2.

You will see messages like these in your host session:

Wiki Markupputting cramfs.img to 134.79.219.81:cramfs.img [octet]
Sent 270336 bytes in 20.2 seconds \ [\]
tftp>

You will see messages like these on your serial session:

...........
done

It sometimes times out and takes a few tries before it works. In your serial session, press ESC to exit tftp and return to the B$ prompt

...

B$ printenv
FACTORY=Arcturus Networks Inc.
REVISION=uC5282 Rev 1.1 16MB External Flash
SERIAL=X49E5FA37-01080
CONSOLE=ttyS0
KERNEL_ARGS=root=/dev/mtdblock0 quiet
HWADDR0=00:06:3B:00:F0:80
FW_VERSION=010808012
_0=10000000:1000000:RW
CACHE=on
KERNEL=0:netboot.flashimg.bin
BP_SRVR=134.79.19.29
BP_FILE=afsnfs2:/afs/slac:package/rtems/4.9.1/target/ssrlApps/m68k-rtems/uC5282/bin/rtems.ralf
IPADDR0=134.79.219.113
NETMASK=255.255.252.0

 Note: There is a slight difference in setting up the flash partition for a 4 M Coldfire and a 16 M Coldfire:

          For 4M Coldfire, the partition as above will work - so nothing needs to be set up specifically.

          For 16M Coldfire, the partition must be setup as follows:

           _0=10000000:100000:RW

           _1=10100000:F00000:RW

  Read the manual /afs/slac/package/rtems/<version>/src/ssrlApps<lvl>/netboot/README.uC5282 which explains how to deal with 16M of flash.

B$ go
uncompress... go! 0x40000

...

B$ printenv
FACTORY=Arcturus Networks Inc.
REVISION=uC5282 Rev 1.1 16MB External Flash
SERIAL=X4747745D-01DC9
CONSOLE=ttyS0
KERNEL=0:netboot.flashimg.bin
KERNEL_ARGS=root=/dev/mtdblock0 quiet
HWADDR0=<macaddress>
FW_VERSION=010808004
_0=10000000:1000000:RW
CACHE=on
IPADDR0=<ipaddress>
DNS_SERVER=134.79.151.1112
NTP_SERVER=134.79.151.1113
NETMASK=255.255.252.0
GATEWAY=134.79.219.1
HOSTNAME=<hostname>
BP_PARM=INIT=/boot/g/lcls/epics/iocTop/<appname>/<tagname>/iocBoot/<eiocname>/st.cmd
LOGHOST=syslog-host
DNS_DOMAIN=slac.stanford.edu
BP_FILE=afsnfs2:/afs/slac:package/rtems/4.9.1/target/ssrlApps/m68k-rtems/uC5282/bin/rtems.ralf
BP_SRVR=134.79.19.29148
DO_BOOTP=N

Appendix (Keep it alive!)

Here are some useful links that discuss flashing 16M Coldfire and 80 MHz Coldfire:Sonya

...


Share your Coldfire experiences, troubles, gotchas here:


  updated release notes for supporting 70 MHz Coldfire