Setup -- Preparing the ADS512101 board for eCos Development
Overview
In a typical development environment, the ADS512101 board boots
from flash into the RedBoot ROM monitor. eCos applications are
configured for RAM startup and then downloaded and run on the
board via the debugger
powerpc-eabi-gdb. Preparing the board therefore
usually involves programming a suitable RedBoot image into flash
memory.
The following RedBoot configurations are supported:
Configuration
Description
Use
File
ROMRAM
RedBoot loaded from ROM into RAM
redboot_ROMRAM.ecm
redboot_ROMRAM.bin
ROM
RedBoot running directly from flash
redboot_ROM.ecm
redboot_ROM.bin
RAM
RedBoot running in external RAM
redboot_RAM.ecm
redboot_RAM.bin
JTAG
RedBoot running in external RAM, loaded by JTAG
redboot_JTAG.ecm
redboot_JTAG.bin
Under normal circumstances the ROMRAM RedBoot is used. The JTAG
RedBoot is used to install the ROMRAM RedBoot on the board.
For serial communications, all versions run with 8 bits, no parity,
and 1 stop bit at 115200 baud. The baud rate can be changed using the
flash configuration console baud rate option. RedBoot also supports
flash management.
Initial Installation
The simplest approach to installing RedBoot is to make use of a
JTAG device to run a version of RedBoot on the board and use that
to download and install RedBoot.
The
following is a simple step-by-step guide to installing
RedBoot on the board using a Ronetix PEEDI JTAG emulator:
Set up the PEEDI as described in the Ronetix documentation. The
peedi.mpc5121ads.cfg file should be used to
setup and configure the hardware.
Connect a null modem serial cable between the ADS512101 board
and a suitable host. Run a serial terminal emulator (Hyperterm
or minicom) on the host, connecting to the serial device at
115200 baud with no flow control.
Connect an ethernet cable between the board and your local
network.
From the loaders/ads512101 sub-directory of
your eCosPro installation, copy
redboot_JTAG.srec and
redboot_ROMRAM.bin to the data area of a
TFTP server the PEEDI can access.
Connect a telnet session to the PEEDI and issue a reset command
to the PEEDI to put the device into a known state:
mpc5121> reset stop
++ info: user reset
mpc5121>
++ info: HRESET, SRESET and TRST asserted
++ info: TRST released
++ info: BYPASS check passed
++ info: 1 TAP controller(s) detected
++ info: TAP : IDCODE = 0x1540A01D, Freescale MPC5121
++ info: HRESET and SRESET released
++ info: CPU PVR is 0x80862010 (e300c4)
++ info: CPU SVR is 0x80180020
++ info: setting breakpoint at 0xFFF00100
++ info: core 0: initialized
Now issue the following command, substituting your own TFTP
server address:
mpc5121>> mem load tftp://10.0.1.1/redboot_JTAG.srec srec
** warning: default file for this core not specified
** warning: use CORE_FILE parameter to specify default file
++ info: Loading image file: tftp://10.0.1.1/redboot_JTAG.srec
++ info: At absolute address: 0x00000000
loading at 0x0
loading at 0x3300
loading at 0xB300
loading at 0x13300
loading at 0x1B300
loading at 0x22080
Successfully loaded 154KB (158408 bytes) in 1.2s
mpc5121>>
Now issue the go command:
mpc5121> go 0x100
You should see something similar to the following output on the
board serial line.
+**Warning** FLASH configuration checksum error or invalid key
Use 'fconfig -i' to [re]initialize database
Ethernet eth0: MAC address 08:00:3e:28:7a:ba
IP: 10.0.2.5/255.0.0.0, Gateway: 10.0.0.3
Default server: 0.0.0.0
DNS server IP: 10.0.1.1, DNS domain name: <null>
RedBoot(tm) bootstrap and debug environment [JTAG]
Non-certified release, version UNKNOWN - built 15:05:36, Jun 20 2011
Copyright (C) 2000-2009 Free Software Foundation, Inc.
Copyright (C) 2003-2011 eCosCentric Limited
RedBoot is free software, covered by the eCos license, derived from the
GNU General Public License. You are welcome to change it and/or distribute
copies of it under certain conditions. Under the license terms, RedBoot's
source code and full license terms must have been made available to you.
Redboot comes with ABSOLUTELY NO WARRANTY.
Platform: ADS512101 (PowerPC MPC5121e)
RAM: 0x00000000-0x08000000 [0x0003e400-0x07fb1000 available]
FLASH: 0xfc000000-0xffffffff, 256 x 0x40000 blocks
RedBoot>
RedBoot's flash management and configuration should be initialized as
follows:
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Unlocking from 0xfffc0000-0xffffffff: .
... Erase from 0xfffc0000-0xffffffff: .
... Program from 0x07fc0000-0x08000000 to 0xfffc0000: .
... Locking from 0xfffc0000-0xffffffff: .
RedBoot> fconfig -i
Initialize non-volatile configuration - continue (y/n)? y
Run script at boot: false
Use BOOTP for network configuration: true
Default server IP address: 10.0.1.1
Console baud rate: 115200
DNS domain name: example.com
DNS server IP address: 10.0.1.1
Network hardware address [MAC]: 0x08:0x00:0x3E:0x28:0x7A:0xBA
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Unlocking from 0xfffc0000-0xffffffff: .
... Erase from 0xfffc0000-0xffffffff: .
... Program from 0x07fc0000-0x08000000 to 0xfffc0000: .
... Locking from 0xfffc0000-0xffffffff: .
RedBoot>
For the "Default server IP address", enter the IP address of the
TFTP server on which the redboot_ROMRAM.bin
is to be found.
Now we need to download and program a ROMRAM version of
RedBoot. From RedBoot, issue the following command:
RedBoot> load -r -b %{freememlo} redboot_ROMRAM.bin
Using default protocol (TFTP)
Raw file loaded 0x0003e400-0x000682a7, assumed entry at 0x0003e400
RedBoot>
Program the RedBoot into the board:
RedBoot> fis cre RedBoot
An image named 'RedBoot' exists - continue (y/n)? y
... Unlocking from 0xfff00000-0xfffbffff: ...
... Erase from 0xfff00000-0xfffbffff: ...
... Program from 0x0003e400-0x000682a8 to 0xfff00000: ...
... Locking from 0xfff00000-0xfffbffff: ...
RedBoot>
RedBoot is now programmed into the board. Detach the PEEDI and
reset the board and you should see the following output:
+Ethernet eth0: MAC address 08:00:3e:28:7a:ba
IP: 10.0.2.5/255.0.0.0, Gateway: 10.0.0.3
Default server: 0.0.0.0
DNS server IP: 10.0.1.1, DNS domain name: <null>
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version UNKNOWN - built 15:12:36, Jun 20 2011
Copyright (C) 2000-2009 Free Software Foundation, Inc.
Copyright (C) 2003-2011 eCosCentric Limited
RedBoot is free software, covered by the eCos license, derived from the
GNU General Public License. You are welcome to change it and/or distribute
copies of it under certain conditions. Under the license terms, RedBoot's
source code and full license terms must have been made available to you.
Redboot comes with ABSOLUTELY NO WARRANTY.
Platform: ADS512101 (PowerPC MPC5121e)
RAM: 0x00000000-0x08000000 [0x0003e400-0x07fb1000 available]
FLASH: 0xfc000000-0xffffffff, 256 x 0x40000 blocks
RedBoot>
To reinstall RedBoot, a new binary file can be installed and
programmed into flash from the installed ROMRAM RedBoot, from step
9 above. It is not necessary to use JTAG for this unless the board
is rendered unusable.
Rebuilding RedBoot
Should it prove necessary to rebuild a RedBoot binary, this is
done most conveniently at the command line. The steps needed to
rebuild the the ROM version of RedBoot for the ADS512101 are:
$ mkdir redboot_ads512101_romram
$ cd redboot_ads512101_romram
$ ecosconfig new ads512101 redboot
$ ecosconfig import $ECOS_REPOSITORY/hal/powerpc/ads512101/VERSION/misc/ads512101_redboot_ROMRAM.ecm
$ ecosconfig resolve
$ ecosconfig tree
$ make
At the end of the build the install/bin subdirectory should contain
the file redboot.bin.