#
# (C) Copyright 2009 Marco Stornelli <marco.stornelli@gmail.com>
#
# See file CREDITS for list of people who contributed to this
# project.
#
# The files in this directory are free software; you can redistribute
# them and/or modify them under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# These files are distributed in the hope that they will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

IMLS
-------------

imls is an implementation of a Linux command line tool to access
to raw flash partitions and list images made with mkimage command.

For building against older versions of the MTD headers (meaning before
v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to
make.

Usage examples
--------------

1) Flash with sectors of 128KiB and 32 sectors:

> imls -c 32 -s 131072 /dev/mtd0
Searching...
Image Name:   foo
Created:      Fri Apr 10 18:11:30 2009
Image Type:   Intel x86 Linux Standalone Program (uncompressed)
Data Size:    10716 Bytes = 10.46 kB = 0.01 MB
Load Address: 00000000
Entry Point:  00000000

2) Flash with sectors of 64KiB and 128 sectors and with a search offset of one
sector:

> imls -o 1 -c 128 -s 65536 /dev/mtd0
Searching...
Image Name:   foo
Created:      Fri Apr 10 18:11:30 2009
Image Type:   Intel x86 Linux Standalone Program (uncompressed)
Data Size:    10716 Bytes = 10.46 kB = 0.01 MB
Load Address: 00000000
Entry Point:  00000000
