MicroMonitor
The Boot ROM that can grow anything…


MicroMonitor is a free embedded system boot platform centered around an extensible embedded flash file system called TFS. With TFS intrinsic to the monitor, all data access can be name based instead of address based.  Data transfer protocols like XMODEM and TFTP (also in the monitor) can refer to filenames instead of address space. The whole boot-up strategy is driven by the content of one or more files that can be scripts or executable images. The file system is accessible at the command line and through an API available to the application. The API provides a flexible means of reading and writing files in flash, plus TFS provides power-safe runtime defragmentation as the flash fills up.
A network-accessible, MicroMonitor-based embedded system provides a firmware development project with immediate network boot (DHCP/BOOTP), file based maintainability, infield upgrade and in-system diagnostics. The boot flash footprint size typically ranges from 64K to 256K depending on the configuration.
MicroMonitor has been built for most major CPU architectures: ARM, Blackfin, ColdFire, SH2, M68K, MIPS, NIOS, PowerPC, and XScale. MicroMonitor has also been used to boot many different embedded operating systems: VxWorks, Linux, pSOS, Nucleus, CMX, uC/OS, eCos, RTEMS, etc..  Below is a list of current ports, and the sources to build these ports is located on this web page.  The sources build with GNU X-Tools on Windows and Linux host platforms.  MicroMonitor Datasheet

List of  Existing MicroMonitor Ports in Source Tree

ads_imx21 (i.MX21 ADS)

csb350 (Au1100)

csb655 (Au1550)

adse_imx21(i.MX21 ADSE)

csb360 (MCF5272)

evalsh2 (SuperH 2)

altep2c35 (NIOS2)

csb431 (ARM7TDMI)

fads860 (PPC860)

bf537 (Blackfin 537 Eval Board)

csb437tl (ARM920T)

m68en302 (CPU32)

csb226 (PXA250)

csb472 (PPC440)

MicroBlaze (Spartan-3 DevKit)

csb250 (Au1500)

csb535fs (i.MX21 LiteKit)

mpc852t (MPC852T)

csb272 (PPC405)

csb536fs (i.MXL LiteKit)

virtex-4 (PPC405)

csb281 (MPC8245)

csb625 (PXA255)

walnut (PPC405)

csb335 (ARM7TDMI)

csb637 (ARM920T)

csb337 (ARM920T)

csb650 (Au1200)

MicroMonitor History

Ed Sutter has been booting embedded systems for over 20 years. His boot program, MicroMonitor (or uMon), started to take shape around 1992. The firmware package was made available to the public around 2000, and released with his book "Embedded Systems Firmware Demystified" in 2002. uMon is a mature package of boot firmware and host-resident tools used around the world to boot a variety of different CPUs and embedded operating systems.

MicroMonitor White Paper by Ed Sutter

Lucent Technologies, Inc. MicroMonitor Software Public License Agreement

The MicroMonitor source tree, originally authored by Ed Sutter, is available under the OSI-approved Lucent Open License.

It was later released as part of the book  "Embedded Systems Firmware Demystified"  also by Ed Sutter.

Free uMON Source Code & Documentation
(includes over 20 popular board ports, including all of Cogent boards; plus a template for custom ports and example single-thread application code)

Click here to download the uMon tarball — 6 August 2007, version 1.14 (includes new Blackfin and Microblaze ports)

Click here to download the uMon User’s Manual — 6 August 2007
If you are a current uMon user, please read the ‘What’s New’ section in the user manual.

Quick Start Build Instructions (if you get lost, read the details in MicroMonitor User Guide)
Assumptions
– GNU X-Tools (either the free 30-day trial version or a purchased copy) Toolsuite
– Target Board IP address assigned
– Target already has umon running and is connected and powered on; otherwise, you need the JTAG device and its procedure with the ramtst.elf file in the …/umon/umon_ports/csbxxx/build_CSBXXX directory.
Steps
1. Open GNU X-Tools Shell (Cygwin) or Xterm/Bash (Linux)
2. Untar source tree ($tar xvzf <name-of-src-tree>.
3. $cd …/umon/umon_main/host (only do this the first time you untar the source tree; then, the tools are usable for all future rebuilds)
4. $make OSTYPE=<‘cygwin’ or ‘linux’> rebuild (e.g., "make OSTYPE=cygwin rebuild")
5. $cd ../../../umon/umon_ports/xxxxxx (e.g., csb637 or adse_imx21)
6. $.  bashrc (dot space bashrc)
7. $ make rebuild
8. $ make TARGET_IP=<ip-address> newmon (e.g., make TARGET_IP=192.168.0.110 newmon)
9. Reset power on the target and enter the last four assigned MAC address digits (e.g., :00:58) — see label on target

Example Programs Available for Cogent ARM, ColdFire, MIPS, and PowerPC Boards

MicroMonitor has several example programs that will run on uMON in the Tiny File System (TFS) — look in the uMON source tree under ‘umon/umon_apps/usr_manual’ directory for the example source code, makefile and README.

##########################################################################
#                                              Signup for MicroMonitor Email List
#
# If you want to keep current with MicroMonitor issues, or just  post a question to Ed and other
# users, subscribe to the MicroMonitor email list…
#
# Send email to listserv@list.lucent.com and in the message area (not the subject line) place the
# following line:  subscribe micromonitor your-name-here
#
# For example:
# subscribe micromonitor Ed Sutter
#
# Note that the subscribe email should not have any attachments (this includes V-cards).
# Once this is completed, you can send email to the list at micromonitor@list.lucent.com.
#
##########################################################################
#                                            Email List Archives
# Retrieving MicroMonitor email list archives…
#
# To retrieve a list of the archives available send email to listserv@lucent.com
# with the text "INDEX micromonitor" (omit the double quotes) in the body of the
# message. Note, NOT the subject of the email, the body. You will receive a
# response email from the list server with data that looks something like this…
#
# * Archive files for the micromonitor list at LIST.WEB.LUCENT.COM
# * (monthly logs)
# *
# * filename filetype GET PUT size (bytes) date time
# * ——– ——– — — ———— ———- ——–
# MICROMONITOR LOG0602 LOG OWN 2,830 2006-02-27 08:55:09
# MICROMONITOR LOG0603 LOG OWN 6,892,461 2006-03-30 08:31:07
# MICROMONITOR LOG0604 LOG OWN 359,285 2006-04-28 10:26:52
# MICROMONITOR LOG0605 LOG OWN 148,690 2006-05-12 12:42:56
#
# To retrieve a particular month’s archive (for example Feb 2006), send email to
# listserv@lucent.com with "GET MICROMONITOR LOG0602" (once again omit the quotes)
# in the body of the message. This tells the list server to send you back the
# selected archive.
####################################################################################

uCon Embedded Console (a nice replacement for HyperTerminal)
uCon is a nice replacement for HyperTerminal. It simplifies the interfacing to MicroMonitor over a serial connection. Plus it provides basic services typically used during embedded system development… TFTP client/server, DHCP server, serial command scripting, and even a terminal server that allows you to access the PC’s serial port remotely via telnet. It is a major superset of HyperTerminal. Unfortunately, like HyperTerminal, it only runs on Windows.
Simply unzip and execute (it is a self-installing executable). After startup, just click on the menu item Help->Overview for some basic information. If you’re already a uCon user and are downloading an update,  be sure to read the "What’s New" help text after installation.

Click here to download the uCon zip file — Release 6.6, built 6 August 2007

Disaster Recovery of MicroMonitor

MicroMonitor Disaster Recovery with a Macraigor JTAG Unit

Disaster recovery of MicroMonitor using BDI2000 with the Cogent CSBxxx Development Boards

Testimonials
  "The MicroMonitor bootloader allows Cadenux to more quickly get Linux running on the target hardware and allows the kernel and file system to be easily  upgraded." — Todd Fisher, Cadenux
"uMON is the best Linux bootloader out there, bar none.  I have standardized on it for all my embedded Linux platforms; it is portable, easy to use, and contains a number of valuable features including Ethernet support and a rich scripting environment."  — Bill Gatliff

Pre-uMON 1.0 Source and  Documentation
MicroMonitor pre-1.0 Source Code
Click here to download an updated source tree from Ed’s book

MicroMonitor Flash Recovery Procedures and Binaries
Recovery of MicroMonitor in FLASH using a Macraigor JTAG Connection Agent
Disaster recovery of MicroMonitor using BDI2000 with the Cogent CSBxxx Development Boards
Pre-built binaries for CSB335, CSB337, CSB350, CSB431, and CSB472

Older Documentation
Application Programmer’s Interface
Application Notes
Introduction and Command Set
Getting Started
Host Based Tools

Advertisements