summaryrefslogtreecommitdiff
path: root/ubi-utils/old-tools/scripts
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2008-02-19 14:54:17 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2008-02-19 16:41:16 +0200
commit86dd9696d3a1acb036d65909d93d73455b8aed3a (patch)
tree9e8bb6797b3bebd0bf83ae1fab2151a6dfeafe6a /ubi-utils/old-tools/scripts
parentef644090223e5983ca2492850354c1390e3368d1 (diff)
Revert ubi-tools changes
Restore ubi tools to their "original" state, which means to the state they were before I stareted cleaning them up. Instead, create a "new-utils" subdirectory and move my work there. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'ubi-utils/old-tools/scripts')
-rw-r--r--ubi-utils/old-tools/scripts/Makefile91
-rw-r--r--ubi-utils/old-tools/scripts/README14
-rw-r--r--ubi-utils/old-tools/scripts/bin2nand2bin_test.sh216
-rw-r--r--ubi-utils/old-tools/scripts/f128_nand_sample.cfg38
-rw-r--r--ubi-utils/old-tools/scripts/f64_nor_sample.cfg39
-rw-r--r--ubi-utils/old-tools/scripts/inject_biterror.pl94
-rwxr-xr-xubi-utils/old-tools/scripts/jffs2_test.sh91
-rwxr-xr-xubi-utils/old-tools/scripts/mkdevs.pl32
-rw-r--r--ubi-utils/old-tools/scripts/mkpfi723
-rw-r--r--ubi-utils/old-tools/scripts/pdd.txt16
-rwxr-xr-xubi-utils/old-tools/scripts/run_all.sh101
-rw-r--r--ubi-utils/old-tools/scripts/test.cfg23
-rwxr-xr-xubi-utils/old-tools/scripts/ubi_test.sh328
-rwxr-xr-xubi-utils/old-tools/scripts/ubi_tools_test.sh252
-rw-r--r--ubi-utils/old-tools/scripts/ubicrc32.pl74
-rw-r--r--ubi-utils/old-tools/scripts/unubi_test.sh105
16 files changed, 0 insertions, 2237 deletions
diff --git a/ubi-utils/old-tools/scripts/Makefile b/ubi-utils/old-tools/scripts/Makefile
deleted file mode 100644
index b8e3c96..0000000
--- a/ubi-utils/old-tools/scripts/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# Makefile
-#
-# Testcase for UBI pfi update.
-#
-# Author: Frank Haverkamp <haverkam@de.ibm.com>
-#
-
-card = test
-mkpfi_cfg = test.cfg
-
-#
-# Some default values you might want to overwrite. Try it if you need
-# it and add more if needed. Note that no real sanity checking is done
-# on those values. If you do it wrong your card has no valid PDD data.
-#
-
-PATH := $(PATH):/opt/ppc/usr/bin:../perl:..
-
-dd = dd
-sed = sed
-bin2nand = bin2nand
-ubigen = ubigen
-mkpfi = mkpfi -v
-pfi2bin = pfi2bin -v
-
-vmlinux_bin ?= test_vmlinux.bin
-rootfs_bin ?= test_rootfs.bin
-spl_bin ?= test_u-boot.bin
-pdd_txt ?= pdd.txt
-
-flashtype ?= nand
-pagesize ?= 2048
-
-compl ?= $(card)_complete
-compl_pfi ?= $(compl).pfi
-compl_img ?= $(compl).img
-
-compl_nand2048_mif=$(compl).$(flashtype)$(pagesize).mif
-compl_nand2048_img=$(compl).$(flashtype)$(pagesize).img
-
-all: help
-
-help:
- @echo "Testcases for the UBI/NAND manufacturing tool-chain"
- @echo "---------------------------------------------------------------"
- @echo " make mif_test - Generate a mif (manufacturing "
- @echo " image file)."
- @echo " make bin2nand2bin_test - Create binary with ECC information"
- @echo " in the OOB area. Test ECC generation"
- @echo " and correction."
-
-mif_test: $(compl_pfi) $(compl_nand2048_mif)
-
-bin2nand2bin_test:
- chmod a+x ./bin2nand2bin_test.sh
- chmod a+x ./inject_biterror.pl
- ./bin2nand2bin_test.sh
-
-$(compl_pfi): $(vmlinux_bin) $(rootfs_bin) $(spl_bin)
- $(mkpfi) -c $(mkpfi_cfg)
-
-# Binary data and out of band data (OOB)
-#
-$(compl_nand2048_mif): $(compl_img)
- $(bin2nand) -p $(pagesize) -o $(compl_nand2048_mif) $<
-
-# Binary data only
-#
-$(compl_img): $(compl_pfi)
- $(pfi2bin) -j $(pdd_txt) -o $@ $<
-
-#
-# Default data
-#
-# If the binary data is not available in the current working directory
-# we try to create symlinks to our test data.
-#
-$(vmlinux_bin) $(rootfs_bin) $(spl_bin):
- @echo
- @echo "No $@ found, will use defaults !"
- @echo
- @echo "OR press CTRL-C to provide your own $@" && \
- sleep 1 && \
- $(dd) if=/dev/urandom of=$@ bs=1M count=1
-
-clean:
- $(RM) *.pfi *~ testblock* oob.bin
-
-distclean: clean
- $(RM) *.bin *.mif *.oob *.img
diff --git a/ubi-utils/old-tools/scripts/README b/ubi-utils/old-tools/scripts/README
deleted file mode 100644
index 01c7453..0000000
--- a/ubi-utils/old-tools/scripts/README
+++ /dev/null
@@ -1,14 +0,0 @@
-README
-======
-
-This procedure creates a test pfi which should be flashed to our
-system with pfiflash. The testcase should read the data back and
-compare with the original.
-
-We should try not forget to run these tests before we release
-a new version of UBI.
-
-Frank
-
-Please guys, clean up this and move the tests to mtd-utils/tests/
-Artem.
diff --git a/ubi-utils/old-tools/scripts/bin2nand2bin_test.sh b/ubi-utils/old-tools/scripts/bin2nand2bin_test.sh
deleted file mode 100644
index 51f048c..0000000
--- a/ubi-utils/old-tools/scripts/bin2nand2bin_test.sh
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/bin/sh
-#
-# Version: 1.1
-# Author: Frank Haverkamp <haver@vnet.ibm.com>
-#
-# Testcase for nand2bin and bin2nand. Generate testdata and inject
-# biterrors. Convert data back and compare with original data.
-#
-# Conversion:
-# bin -> bin2nand -> mif -> nand2bin -> img
-#
-
-inject_biterror=./inject_biterror.pl
-pagesize=2048
-oobsize=64
-
-# Create test data
-dd if=/dev/urandom of=testblock.bin bs=131072 count=1
-
-for layout in IBM MTD ; do
- echo "*** Simple test with $layout layout ..."
-
- echo -n "Convert bin to mif ... "
- bin2nand -l$layout --pagesize=${pagesize} -o testblock.mif testblock.bin
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo -n "Convert mif to bin ... "
- nand2bin -l$layout --pagesize=${pagesize} -o testblock.img testblock.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo -n "Comparing data ... "
- diff testblock.bin testblock.img
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-done
-
-echo "*** Test conversion without bitflips ..."
-
-echo -n "Convert bin to mif ... "
-bin2nand --pagesize=${pagesize} -o testblock.mif testblock.bin
-if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
-else
- echo "ok"
-fi
-
-echo -n "Convert mif to bin ... "
-nand2bin --pagesize=${pagesize} -o testblock.img testblock.mif
-if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
-else
- echo "ok"
-fi
-
-echo -n "Comparing data ... "
-diff testblock.bin testblock.img
-if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
-else
- echo "ok"
-fi
-
-echo "*** Test conversion with uncorrectable ECC erors ..."
-echo -n "Inject biterror at offset $ioffs ... "
-${inject_biterror} --offset=0 --bitmask=0x81 \
- --input=testblock.mif \
- --output=testblock_bitflip.mif
-if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
-else
- echo "ok"
-fi
-
-echo "Convert mif to bin ... "
-rm testblock.img
-nand2bin --correct-ecc --pagesize=${pagesize} -o testblock.img \
- testblock_bitflip.mif
-if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
-else
- echo "ok"
-fi
-
-echo -n "Comparing data, must fail due to uncorrectable ECC ... "
-diff testblock.bin testblock.img
-if [ $? -ne "0" ]; then
- echo "ok" # Must fail!
-else
- echo "failed!"
- exit 1
-fi
-
-echo "*** Test bitflips in data ... "
-for offs in `seq 0 255` ; do
-
- cp testblock.mif testblock_bitflip.mif
-
- for xoffs in 0 256 512 768 ; do
- let ioffs=$offs+$xoffs
-
- cp testblock_bitflip.mif testblock_bitflip_tmp.mif
- echo -n "Inject biterror at offset $ioffs ... "
- ${inject_biterror} --offset=${ioffs} --bitmask=0x01 \
- --input=testblock_bitflip_tmp.mif \
- --output=testblock_bitflip.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
- done
-
- echo "Convert mif to bin ... "
- rm testblock.img
- nand2bin --correct-ecc --pagesize=${pagesize} -o testblock.img \
- testblock_bitflip.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo -n "Comparing data ... "
- diff testblock.bin testblock.img
- if [ $? -ne "0" ]; then
- hexdump testblock.bin > testblock.bin.txt
- hexdump testblock.img > testblock.img.txt
- echo "Use tkdiff testblock.bin.txt testblock.img.txt to compare"
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- # Without correction
- echo "Convert mif to bin ... "
- rm testblock.img
- nand2bin --pagesize=${pagesize} -o testblock.img \
- testblock_bitflip.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo -n "Comparing data must differ, correction is disabled ... "
- diff testblock.bin testblock.img
- if [ $? -ne "0" ]; then
- echo "ok" # must fail
- else
- echo "failed!"
- exit 1
- fi
-done
-
-echo "*** Test bitflips in OOB data ... "
-for offs in `seq 0 $oobsize` ; do
-
- let ioffs=$pagesize+$offs
-
- echo -n "Inject biterror at offset $ioffs ... "
- ${inject_biterror} --offset=${ioffs} --bitmask=0x01 \
- --input=testblock.mif \
- --output=testblock_bitflip.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo "Convert mif to bin ... "
- rm testblock.img
- nand2bin --correct-ecc --pagesize=${pagesize} -o testblock.img \
- testblock_bitflip.mif
- if [ $? -ne "0" ]; then
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-
- echo -n "Comparing data ... "
- diff testblock.bin testblock.img
- if [ $? -ne "0" ]; then
- hexdump testblock.bin > testblock.bin.txt
- hexdump testblock.img > testblock.img.txt
- echo "Use tkdiff testblock.bin.txt testblock.img.txt to compare"
- echo "failed!"
- exit 1
- else
- echo "ok"
- fi
-done
diff --git a/ubi-utils/old-tools/scripts/f128_nand_sample.cfg b/ubi-utils/old-tools/scripts/f128_nand_sample.cfg
deleted file mode 100644
index bb62600..0000000
--- a/ubi-utils/old-tools/scripts/f128_nand_sample.cfg
+++ /dev/null
@@ -1,38 +0,0 @@
-[targets]
-complete=ipl,spl,bootenv,kernel,rootfs
-bootcode=spl,bootenv
-
-# Build sections
-[ipl]
-image=ipl.bin
-raw_starts=0x00000000
-raw_total_size=128kiB
-
-[spl]
-image=u-boot.bin
-ubi_ids=2,3
-ubi_size=2MiB
-ubi_type=static
-ubi_names=spl_0,spl_1
-
-[bootenv]
-bootenv_file=bootenv_complete.txt
-ubi_ids=4,5
-ubi_size=128kiB
-ubi_type=static
-ubi_names=bootenv_0,bootenv_1
-
-[kernel]
-image=vmlinux.bin
-ubi_ids=6,7
-ubi_size=6MiB
-ubi_type=static
-ubi_names=kernel_0,kernel_1
-
-[rootfs]
-image=rootfs.bin
-ubi_ids=8,9
-ubi_alignment=2kiB
-ubi_size=16MiB
-ubi_type=dynamic
-ubi_names=rootfs_0,rootfs_1
diff --git a/ubi-utils/old-tools/scripts/f64_nor_sample.cfg b/ubi-utils/old-tools/scripts/f64_nor_sample.cfg
deleted file mode 100644
index 889d4c2..0000000
--- a/ubi-utils/old-tools/scripts/f64_nor_sample.cfg
+++ /dev/null
@@ -1,39 +0,0 @@
-[targets]
-complete=ipl,spl,bootenv,kernel,rootfs
-bootcode=spl,bootenv
-rootfs=rootfs
-
-# Build sections
-[ipl]
-image=ipl.bin
-raw_starts=0x02FE0000, 0x03FE0000
-raw_total_size=128kiB
-
-[spl]
-image=u-boot.bin
-ubi_ids=2,3
-ubi_size=2MiB
-ubi_type=static
-ubi_names=spl_0,spl_1
-
-[bootenv]
-bootenv_file=bootenv_complete.txt
-ubi_ids=4,5
-ubi_size=128kiB
-ubi_type=static
-ubi_names=bootenv_0,bootenv_1
-
-[kernel]
-image=vmlinux.bin
-ubi_ids=6,7
-ubi_size=6MiB
-ubi_type=static
-ubi_names=kernel_0,kernel_1
-
-[rootfs]
-image=rootfs.bin
-ubi_ids=8,9
-ubi_alignment=2kiB
-ubi_size=16128kiB
-ubi_type=dynamic
-ubi_names=rootfs_0,rootfs_1
diff --git a/ubi-utils/old-tools/scripts/inject_biterror.pl b/ubi-utils/old-tools/scripts/inject_biterror.pl
deleted file mode 100644
index b4a862a..0000000
--- a/ubi-utils/old-tools/scripts/inject_biterror.pl
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/perl -w
-#
-# 2007 Frank Haverkamp <haver@vnet.ibm.com>
-#
-# Program for bit-error injection. I am sure that perl experts do it
-# in 1 line. Please let me know how it is done right ;-).
-#
-
-use strict;
-use warnings;
-use Getopt::Long;
-use Pod::Usage;
-
-my $i;
-my $help;
-my $result;
-my $offset = 0;
-my $bitmask = 0x01;
-my $in = "input.mif";
-my $out = "output.mif";
-
-$result = GetOptions ("offset=i" => \$offset, # numeric
- "bitmask=o" => \$bitmask, # numeric
- "input=s" => \$in, # string
- "output=s" => \$out, # string
- "help|?" => \$help) or pod2usage(2);
-
-pod2usage(1) if $help;
-
-my $buf;
-
-open(my $in_fh, "<", $in)
- or die "Cannot open file $in: $!";
-binmode $in_fh;
-
-open(my $out_fh, ">", $out) or
- die "Cannot open file $out: $!";
-binmode $out_fh;
-
-$i = 0;
-while (sysread($in_fh, $buf, 1)) {
-
- $buf = pack('C', unpack('C', $buf) ^ $bitmask) if ($i == $offset);
- syswrite($out_fh, $buf, 1) or
- die "Cannot write to offset $offset: $!";
- $i++;
-}
-
-close $in_fh;
-close $out_fh;
-
-__END__
-
-=head1 NAME
-
-inject_biterrors.pl
-
-=head1 SYNOPSIS
-
-inject_biterror.pl [options]
-
-=head1 OPTIONS
-
-=over 8
-
-=item B<--help>
-
-Print a brief help message and exits.
-
-=item B<--offset>=I<offset>
-
-Byte-offset where bit-error should be injected.
-
-=item B<--bitmask>=I<bitmask>
-
-Bit-mask where to inject errors in the byte.
-
-=item B<--input>=I<input-file>
-
-Input file.
-
-=item B<--output>=I<output-file>
-
-Output file.
-
-=back
-
-=head1 DESCRIPTION
-
-B<inject_biterrors.pl> will read the given input file and inject
-biterrors at the I<offset> specified. The location of the biterrors
-are defined by the I<bitmask> parameter.
-
-=cut
diff --git a/ubi-utils/old-tools/scripts/jffs2_test.sh b/ubi-utils/old-tools/scripts/jffs2_test.sh
deleted file mode 100755
index 0cc9f0c..0000000
--- a/ubi-utils/old-tools/scripts/jffs2_test.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-#
-# Testcase for JFFS2 verification. We do not want to see any
-# kernel errors occuring when this is executed.
-#
-#
-# To have a standardized output I define the following function to be
-# used when a test was ok or when it failed.
-#
-failed ()
-{
- echo "FAILED"
-}
-
-passed ()
-{
- echo "PASSED"
-}
-
-#
-# Print sucess message. Consider to exit with zero as return code.
-#
-exit_success ()
-{
- echo "SUCCESS"
- exit 0
-}
-
-#
-# Print failure message. Consider to exit with non zero return code.
-#
-exit_failure ()
-{
- echo "FAILED"
- exit 1
-}
-
-echo "***********************************************************************"
-echo "* jffs2 testing ... *"
-echo "***********************************************************************"
-
-ulimit -c unlimited
-
-for i in `seq 5000`; do
- echo "Testing $i byte (dd if=/dev/urandom of=foo bs=$i count=1) ... "
- dd if=/dev/urandom of=test.bin bs=$i count=1;
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- echo "Copy to different file ... "
- dd if=test.bin of=new.bin bs=$i count=1;
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- echo "Comparing files ... "
- cmp test.bin new.bin
- dd if=test.bin of=new.bin bs=$i count=1;
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-done
-
-for i in `seq 5000`; do
- echo "Testing $i byte (dd if=/dev/urandom of=foo bs=$i count=1) ... "
- dd if=/dev/urandom of=foo bs=$i count=1;
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-done
-
-for i in `seq 5000`; do
- echo "Testing $i byte (dd if=/dev/zero of=foo bs=$i count=1) ... "
- dd if=/dev/zero of=foo bs=$i count=1;
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-done
-
-echo "***********************************************************************"
-echo "* Congratulations, no errors found! *"
-echo "* Have fun with your cool JFFS2 using system! *"
-echo "***********************************************************************"
-
-exit_success
diff --git a/ubi-utils/old-tools/scripts/mkdevs.pl b/ubi-utils/old-tools/scripts/mkdevs.pl
deleted file mode 100755
index f0fd464..0000000
--- a/ubi-utils/old-tools/scripts/mkdevs.pl
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Author: Artem B. Bityutskiy <dedekind@oktetlabs.ru>
-#
-# A small scrip which creates UBI device nodes in /dev. UBI allocates
-# major number dynamically, so the script looks at /proc/devices to find
-# out UBI's major number.
-#
-
-
-my $proc = '/proc/devices';
-my $regexp = '(\d+) (ubi\d+)$';
-
-
-open FILE, "<", $proc or die "Cannot open $proc file: $!\n";
-my @file = <FILE>;
-close FILE;
-
-foreach (@file) {
- next if not m/$regexp/g;
- print "found $2\n";
-
- system("rm -rf /dev/$2");
- system("mknod /dev/$2 c $1 0");
-
- for (my $i = 0; $i < 128; $i += 1) {
- system("rm -rf /dev/$2_$i");
- my $j = $i + 1;
- system("mknod /dev/$2_$i c $1 $j");
- }
-}
diff --git a/ubi-utils/old-tools/scripts/mkpfi b/ubi-utils/old-tools/scripts/mkpfi
deleted file mode 100644
index 2cce587..0000000
--- a/ubi-utils/old-tools/scripts/mkpfi
+++ /dev/null
@@ -1,723 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (c) International Business Machines Corp., 2006
-#
-# This program is free software; you can redistribute it and/or modify
-# it 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.
-#
-# This program is distributed in the hope that it 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-
-#
-# mkpfi
-#
-# This perl program is assembles PFI files from a config file.
-#
-# Author: Oliver Lohmann (oliloh@de.ibm.com)
-#
-use warnings;
-use strict;
-use lib "/usr/lib/perl5"; # Please change this path as you need it, or
- # make a proposal how this could be done
- # nicer.
-use Getopt::Long;
-use Pod::Usage;
-use Config::IniFiles;
-use File::Temp;
-
-# ----------------------------------------------------------------------------
-# Versions
-our $version : unique = "0.1";
-our $pfi_version : unique = "0x1";
-
-# ----------------------------------------------------------------------------
-# Globals
-my $verbose = 0;
-my $cfg;
-
-my %opts = ();
-my %files = (config => "");
-my @tmp_files;
-
-my %tools = (ubicrc32 => "ubicrc32");
-
-# ----------------------------------------------------------------------------
-# Processing the input sections
-#
-# The idea is to combine each section entry with a function
-# in order to allow some kind of preprocessing for the values
-# before they are written into the PFI file.
-# This is especially useful to be more verbose and
-# user-friendly in the layout file.
-#
-# All key-function hashes are applied after the general
-# validation of the configuration file.
-# If any mandatory key is missing in a section the user
-# will be informed and the PFI creation process is aborted.
-#
-# Default keys will be checked for their presence inside the config
-# file. If they are missing, they will be generated with appr. values.
-
-# Mandatory keys for UBI volumes.
-my %ubi_keys = ("ubi_ids" => \&check_id_list,
- "ubi_size" => \&replace_num,
- "ubi_type" => \&replace_type,
- "ubi_names" => \&remove_spaces,
- "ubi_alignment" => \&replace_num);
-
-# Mandatory keys for RAW sections.
-my %raw_keys = ("raw_starts" => \&expand_starts,
- "raw_total_size" => \&replace_num);
-
-# Common default keys for documentation and control purposes.
-my %common_keys = ("flags" => \&replace_num,
- "label" => \&do_nothing);
-
-# Define any defaults here. Values which maintained in this default
-# region need not to be specified by the user explicitly.
-my %def_ubi_keys = ("ubi_alignment" => [\&set_default, "0x1"]);
-my %def_raw_keys = ();
-my %def_common_keys = ("flags" => [\&set_default, "0x0"],
- "label" => [\&generate_label, ""]);
-
-# ----------------------------------------------------------------------------
-# Input keys, actually the path to the input data.
-
-my %input_keys = ("image" => \&do_nothing);
-
-# Placeholder keys allow the replacement via a special
-# purpose function. E.g. the bootenv_file key will be used
-# to generate bootenv binary data from an text file and
-# replace the bootenv_file key with an image key to handle it
-# in the same way in the further creation process.
-my %input_placeholder_keys = ("bootenv_file" => \&create_bootenv_image);
-
-# ----------------------------------------------------------------------------
-# Helper
-
-# @brief Get current time string.
-sub get_date {
- my $tmp = scalar localtime;
- $tmp =~ s/ /_/g;
- return $tmp;
-}
-
-# @brief Print an info message to stdout.
-sub INFO($) {
- my $str = shift;
-
- if (!$verbose) {
- return;
- }
-
- print STDOUT $str;
-}
-
-# @brief Print an error message to stderr.
-sub ERR($) {
- my $str = shift;
- print STDERR $str;
-}
-
-# @brief Print a warning message to stderr.
-sub WARN($) {
- my $str = shift;
- print STDERR $str;
-}
-
-sub parse_command_line($) {
- my $opt = shift;
- my $result = GetOptions( "help" => \$$opt{'help'},
- "man" => \$$opt{'man'},
- "config=s" => \$$opt{'config'},
- "verbose" => \$$opt{'verbose'},
- ) or pod2usage(2);
- pod2usage(1) if defined ($$opt{help});
- pod2usage(-verbose => 2) if defined ($$opt{man});
-
- $verbose = $$opt{verbose} if defined $$opt{verbose};
-
- if (!defined $$opt{config}) {
- ERR("[ ERROR: No config file specified. Aborting...\n");
- exit 1;
- }
-
-}
-
-# @brief Check if all needed tools are in PATH.
-sub check_tools {
- my $err = 0;
- my $key;
-
- foreach $key (keys %tools) {
- if (`which $tools{$key}` eq "") {
- ERR("\n") if ($err == 0);
- ERR("! Please add the tool \'$tools{$key}\' " .
- "to your path!\n");
- $err = 1;
- }
- }
- die "[ ERROR: Did not find all needed tools!\n" if $err;
-}
-
-sub open_cfg_file($) {
- my $fname = shift;
- my $res = new Config::IniFiles( -file => $fname );
-
- die "[ ERROR: Cannot load your config file!\n" if (!defined $res);
- return $res;
-}
-
-sub set_default($$$$) {
- my ($cfg, $section, $parameter, $def_value) = @_;
- $cfg->newval($section, $parameter, $def_value);
- return;
-}
-
-sub generate_label($$$$) {
- my ($cfg, $section, $parameter, $def_value) = @_;
- my $new_label = $def_value . $section;
- $new_label .= "_" . get_date;
- $cfg->newval($section, $parameter, $new_label);
- return;
-}
-
-# @brief Converts any num to a unified hex string, i.e the resulting value
-# always starts with "0x" and is aligned to 8 hexdigits.
-# @return Returns 0 on success, otherwise an error occured.
-#
-sub any_num_to_hex($$) {
- my $val = shift;
- my $res = shift;
-
- # M(iB)
- if ($val =~ m/([0-9]+)[Mm][i]?[Bb]?/g) {
- $$res = sprintf("0x%08x", $1 * 1024 * 1024);
- }
- # k(iB)
- elsif ($val =~ m/([0-9]+)[kK][i]?[Bb]?/g) {
- $$res = sprintf("0x%08x", $1 * 1024);
- }
- # hex
- elsif ($val =~ m/0x?([0-9a-fA-F]+)/g) {
- $$res = sprintf("0x%08x", hex $1);
- }
- # decimal
- elsif ($val =~ m/^([0-9]+)$/g) {
- $$res = sprintf("0x%08x", $1);
- }
- else {
- $$res = "";
- return -1;
- }
-
- return 0;
-}
-
-sub remove_spaces($$$) {
- my ($cfg, $section, $parameter) = @_;
- my ($start, @starts, @new_starts);
- my $val = $cfg->val($section, $parameter);
- my $res;
-
- $val =~ s/ //g; # spaces
- $cfg->newval($section, $parameter, $val);
-}
-
-sub expand_starts($$$) {
- my ($cfg, $section, $parameter) = @_;
- my ($start, @starts, @new_starts);
- my $val = $cfg->val($section, $parameter);
- my $res;
-
- $val =~ s/ //g; # spaces
- @starts = split(/,/, $val);
-
- foreach $start (@starts) {
- if (any_num_to_hex($start, \$res) != 0) {
- ERR("[ ERROR: [$section]\n");
- ERR("[ Expecting a list of numeric " .
- "values for parameter: $parameter\n");
- exit 1;
- }
- push (@new_starts, $res);
- }
- $res = join(',', @starts);
-
- $cfg->newval($section, $parameter, $res);
-}
-
-sub check_id_list($$$) {
- my ($cfg, $section, $parameter) = @_;
- my $val = $cfg->val($section, $parameter);
- my $res;
-
- if (!($val =~ m/^[0-9]+[,0-9]*/)) {
- ERR("[ ERROR: Syntax error in 'ubi_ids' in " .
- "section '$section': $val\n");
- ERR("[ Aborting... ");
- exit 1;
- }
-}
-
-sub replace_type($$$) {
- my ($cfg, $section, $parameter) = @_;
- my $val = $cfg->val($section, $parameter);
- my $res;
-
- $res = lc($val);
- grep {$res eq $_} ('static', 'dynamic')
- or die "[ ERROR: Unknown UBI Volume Type in " .
- "section '$section': $val\n";
-
- $cfg->newval($section, $parameter, $res);
-}
-
-
-sub replace_num($$$) {
- my ($cfg, $section, $parameter) = @_;
- my $val = $cfg->val($section, $parameter);
- my $res = "";
-
- if (any_num_to_hex($val, \$res) != 0) {
- ERR("[ ERROR: [$section]\n");
- ERR("[ Expecting a numeric value " .
- "for parameter: $parameter\n");
- exit 1;
- }
- $cfg->newval($section, $parameter, $res);
-}
-
-sub do_nothing($$$) {
- my ($cfg, $section, $parameter) = @_;
- return;
-}
-
-sub bootenv_sanity_check($) {
- my $env = shift; # hash array containing bootenv
- my %pdd = ();
-
- defined($$env{'pdd'}) or return "'pdd' not defined";
- foreach (split /,/, $$env{'pdd'}) {
- defined($$env{$_}) or return "undefined '$_' in pdd";
- $pdd{$_} = 1;
- }
-
- defined $$env{'pdd_preserve'} or
- return "";
- foreach (split /,/, $$env{'pdd_preserve'}) {
- defined($pdd{$_})
- or return "pdd_preserve field '$_' not in pdd";
- }
- return "";
-}
-
-sub create_bootenv_image($$$) {
- my ($cfg, $section, $parameter) = @_;
- my $txt_fn = $cfg->val($section, "bootenv_file");
- my $in;
-
- my %value = ();
- my @key = ();
-
- open $in, "<", $txt_fn
- or die "[ ERROR: can't open bootenv file '$txt_fn'.\n";
- while (<$in>) {
- next if (/^\s*(\#.*)?$/); # Skip comments/whitespace.
-
- if (/^(\S+?)\+\=(.*)$/) {
- defined($value{$1}) or
- die "$txt_fn:$.: error: appending to" .
- " non-existent '$1'\n";
- $value{$1} .= $2;
- } elsif (/^(\S+?)\=(.*)$/) {
- not defined($value{$1}) or
- die "$txt_fn:$.: error: trying to" .
- " redefine '$1'\n";
- push @key, $1;
- $value{$1} = $2;
- } else {
- die "$txt_fn:$.: error: unrecognized syntax\n";
- }
- }
- close $in;
-
- $_ = &bootenv_sanity_check(\%value)
- and die "$txt_fn: error: $_\n";
-
- my $tmp_file = new File::Temp();
- push (@tmp_files, $tmp_file);
-
- foreach (@key) {
- print $tmp_file "$_=", $value{$_}, "\0";
- }
- close $tmp_file;
-
- $cfg->newval($section, "image", $tmp_file-> filename);
-}
-
-sub process_keys($$$) {
- my ($cfg, $section, $keys) = @_;
- my @parameters = $cfg->Parameters($section);
- my $i;
-
- for ($i = 0 ; $i < scalar(@parameters) ; $i++ ) {
- if (defined($$keys{$parameters[$i]})) {
- $$keys{$parameters[$i]}->($cfg, $section,
- $parameters[$i]);
- }
- }
-
-}
-
-sub is_in_keylist($$) {
- my ($key, $keys) = @_;
- my $i;
-
- for ($i = 0; $i < scalar(@$keys); $i++) {
- if ($$keys[$i] eq $key) {
- return 1;
- }
- }
-
- return 0;
-}
-
-sub check_default_keys($$$) {
- my ($cfg, $section, $keys) = @_;
- my @parameters = $cfg->Parameters($section);
- my $key;
-
- foreach $key (keys %$keys) {
- if (!is_in_keylist($key, \@parameters)) {
- $$keys{$key}[0]->
- ($cfg, $section, $key, $$keys{$key}[1]);
- }
- }
-
-}
-
-
-
-sub check_keys($$$) {
- my ($cfg, $section, $keys) = @_;
- my @parameters = $cfg->Parameters($section);
- my ($i, $key, $err);
-
- $err = 0;
- for ($i = 0 ; $i < scalar(@$keys) ; $i++ ) {
- if (!is_in_keylist($$keys[$i], \@parameters)) {
- ERR("[ ERROR: [$section]\n") if $err == 0;
- $err = 1;
- ERR("[ Missing key '$$keys[$i]'\n");
- }
- }
-
- if ($err) {
- ERR("[ Aborting...\n");
- exit 1;
- }
-}
-
-sub push_pfi_data($$$$$) {
- my ($cfg, $section, $pfi_infos, $keys, $mode) = @_;
- my ($tmp, $i, $hdr);
-
- my %pfi_info = ();
- $pfi_info{'mode'} = $mode;
- $pfi_info{'image'} = $cfg->val($section, "image");
-
- # Build the PFI header
- $hdr = sprintf("PFI!\n");
- $hdr .= sprintf("version=0x%08x\n", hex $pfi_version);
- $hdr .= sprintf("mode=$mode\n");
-
- # calculate the size of the binary data part
- $tmp = -s $cfg->val($section, "image");
- if (!defined $tmp) {
- ERR("[ ERROR: [$section]\n");
- ERR("[ Missing input image: "
- . $cfg->val($section, "image") . "\n");
- exit 1;
- }
- # Check for the image to fit into the given space
- my $quota;
- if ($mode eq 'raw') {
- $quota = oct $cfg->val($section, "raw_total_size");
- } elsif ($mode eq 'ubi') {
- $quota = oct $cfg->val($section, "ubi_size");
- }
- $tmp <= $quota
- or die "[ERROR: image file too big: " .
- $cfg->val($section, "image") . "\n";
- $pfi_info{'size'} = $tmp;
-
- $hdr .= sprintf("size=0x%08x\n", $tmp);
-
- my $img_file = $cfg->val($section, "image");
- my $crc32 = `$tools{'ubicrc32'} $img_file 2>&1`;
- if (any_num_to_hex($crc32, \$tmp) != 0) {
- die "[ ERROR: $tools{'ubicrc32'} returned with errors";
- }
- $hdr .= sprintf("crc=$tmp\n");
-
-
- # Process all remaining keys
- for ($i = 0; $i < scalar (@$keys); $i++) {
- if ($$keys[$i] eq "image") { # special case image input file
- if (! -e ($tmp = $cfg->val($section, "image"))) {
- ERR("[ ERROR: [$section]\n");
- ERR("[ Cannot find input file $tmp\n");
- exit 1;
- }
- next;
- }
- $hdr .= sprintf("%s=%s\n", $$keys[$i],
- $cfg->val($section, $$keys[$i]));
- }
-
- $hdr .= sprintf("\n"); # end marker for PFI-header
-
- $pfi_info{'header'} = $hdr;
-
- # store in the header list
- push @$pfi_infos, \%pfi_info;
-}
-
-sub process_section($$$$$$) {
- my ($cfg, $section, $pfi_infos, $custom_keys,
- $def_custom_keys, $mode) = @_;
- my @keys = (keys %common_keys, keys %$custom_keys);
- my @complete_keys = (@keys, keys %input_keys);
-
- # set defaults if necessary
- check_default_keys($cfg, $section, $def_custom_keys);
- check_default_keys($cfg, $section, \%def_common_keys);
-
- # check for placeholders...
- process_keys($cfg, $section, \%input_placeholder_keys);
-
- # VALIDATE layout.cfg entries
- check_keys($cfg, $section, \@complete_keys);
-
- # execute linked functions (if any)
- process_keys($cfg, $section, \%common_keys);
- process_keys($cfg, $section, $custom_keys);
-
- push_pfi_data($cfg, $section, $pfi_infos, \@keys, $mode);
-}
-
-sub get_section_info($$) {
- my ($cfg, $section) = @_;
- my @parameters = $cfg->Parameters($section);
- my ($ubi, $raw, $i, @res);
-
- $ubi = $raw = 0;
- for ($i = 0 ; $i < scalar(@parameters) ; $i++ ) {
- if ($parameters[$i] =~ m/ubi_/gi) {
- $ubi = 1;
- @res = (\%ubi_keys, \%def_ubi_keys, "ubi");
- }
- if ($parameters[$i] =~ m/raw_/gi) {
- $raw = 1;
- @res = (\%raw_keys, \%def_raw_keys, "raw");
- }
- }
-
- if (($ubi + $raw) != 1) { # double definition in section
- ERR("[ ERROR: Layout error in section '$section'\n");
- exit 1;
- }
-
- return @res;
-}
-
-sub mk_target_list($$) {
- my $val = shift;
- my $tmp = shift;
- my $complete = 0;
-
- if ($val =~ m/\((.*)\)/g) {
- $val = $1;
- $complete = 1;
- }
- $val =~ s/ //g; # spaces
-
- @$tmp = split(/,/, $val);
-
- return $complete;
-}
-
-sub copy_bytes($$$) {
- my ($in, $out, $to_copy) = @_;
-
- while ($to_copy) {
- my $buf;
- my $bufsize = 1024*1024;
-
- $bufsize < $to_copy or $bufsize = $to_copy;
- read($in, $buf, $bufsize) == $bufsize
- or die "[ ERROR: Image file shrunk during operation\n";
- print $out $buf;
- $to_copy -= $bufsize;
- }
-}
-
-sub write_target($$) {
- my ($pfi_infos, $target) = @_;
- my ($pfi_info);
-
- INFO("[ Writting target pfi file: '$target.pfi'...\n");
- if (-e "$target.pfi") {
- WARN("! Replaced old pfi...\n");
- `rm -f $target.pfi`;
- }
- open(FILE, ">", "$target.pfi")
- or die "[ ERROR: Cannot create output file: $target.pfi\n";
- binmode(FILE);
-
- # @FIXME sort by mode (first raw, then ubi)
- # Currently this ordering is based on a string comparism. :-)
- @$pfi_infos = sort {(lc $$a{'mode'}) cmp (lc $$b{'mode'})} @$pfi_infos;
-
- # Print all headers first
- foreach $pfi_info (@$pfi_infos) {
- print FILE $$pfi_info{'header'};
-
- }
- # Print the linked data sections
- print FILE "DATA\n";
- foreach $pfi_info (@$pfi_infos) {
- open(IMAGE, "<", $$pfi_info{'image'})
- or die "[ ERROR: Cannot open input image: " .
- "$$pfi_info{'image'}" . "\n";
- binmode(IMAGE);
- &copy_bytes(\*IMAGE, \*FILE, $$pfi_info{'size'});
- close(IMAGE) or die "[ ERROR: Cannot close input image: " .
- "$$pfi_info{'image'}" . "\n";
- }
- close(FILE) or die "[ ERROR: Cannot close output file: $target.pfi\n";
-}
-
-sub process_config($) {
- my $cfg = shift;
- my @sections = $cfg->Sections;
- my ($i, $j, $keylist, $def_keylist, $mode, $tmp,
- @tlist, $complete,@pfi_infos);
-
- my @parameters = $cfg->Parameters("targets") or
- die "[ ERROR: Config file has no 'targets' section!\n";
-
- for ($i = 0 ; $i < scalar(@parameters) ; $i++ ) {
- INFO("[ Processing target '$parameters[$i]'...\n");
- @pfi_infos = ();
-
- # get a list of subtargets
- $complete = mk_target_list($cfg->val("targets",
- $parameters[$i]), \@tlist);
- # build all subtargets
- for ($j = 0 ; $j < scalar(@tlist) ; $j++ ) {
- ($keylist, $def_keylist, $mode)
- = get_section_info($cfg, $tlist[$j]);
- process_section($cfg, $tlist[$j],
- \@pfi_infos,
- $keylist, $def_keylist, $mode);
- }
-
- write_target(\@pfi_infos, $parameters[$i]);
- }
-
- INFO("[ Success.\n");
-
-
-}
-
-sub clear_files() {
- # @FIXME:
- # Works implicitly and Fedora seems to have removed
- # the cleanup call. Thus for now, inactive.
- # File::Temp::cleanup();
-}
-
-require 5.008_000; # Tested with version 5.8.0.
-select STDOUT; $| = 1; # make STDOUT output unbuffered
-select STDERR; $| = 1; # make STDERR output unbuffered
-
-parse_command_line(\%opts);
-check_tools;
-$cfg = open_cfg_file($opts{config});
-process_config($cfg);
-clear_files;
-
-__END__
-
-
-=head1 NAME
-
-mkpfi - Using GetOpt::Long, Pod::Usage, Config::IniFiles
-
-
-=head1 SYNOPSIS
-
-mkpfi [OPTIONS ...]
-
-
- OPTION
-
- [--config] [--help] [--man]
-
-
-=head1 ABSTRACT
-
-Perl script for generating pdd pfi files from given config files.
-
-=head1 OPTIONS
-
-=over
-
-=item B<--help>
-
-Print out brief help message.
-
-=item B<--usage>
-
-Print usage.
-
-=item B<--config>
-
-Config input file.
-
-=item B<--man>
-
-Print manual page, same as 'perldoc mkpfi'.
-
-=item B<--verbose>
-
-Be verbose!
-
-=back
-
-=head1 BUGS
-
-Report via MTD mailing list
-
-
-=head1 SEE ALSO
-
-http://www.linux-mtd.infradead.org/
-
-
-=head1 AUTHOR
-
-Oliver Lohmann (oliloh@de.ibm.com)
-
-=cut
diff --git a/ubi-utils/old-tools/scripts/pdd.txt b/ubi-utils/old-tools/scripts/pdd.txt
deleted file mode 100644
index a3ad915..0000000
--- a/ubi-utils/old-tools/scripts/pdd.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-pdd=flash_type,flash_size,flash_eraseblock_size,flash_page_size,card_serialnumber,card_type,ethaddr,eth1addr,eth0,eth1,total,card_hardwarelevel
-pdd_preserve=ethaddr,eth1addr,card_serialnumber
-# To be personalized
-ethaddr=00:04:34:56:78:9A
-eth1addr=00:04:34:56:78:9B
-card_serialnumber=SN0
-# Static for this card type
-total=102M
-card_type=nand_driven_testcard
-card_hardwarelevel=0
-eth0=bcm5222,eth0,0
-eth1=bcm5222,eth0,1
-flash_type=NAND
-flash_size=0x08000000
-flash_eraseblock_size=0x00020000
-flash_page_size=0x00000800
diff --git a/ubi-utils/old-tools/scripts/run_all.sh b/ubi-utils/old-tools/scripts/run_all.sh
deleted file mode 100755
index 040bcbd..0000000
--- a/ubi-utils/old-tools/scripts/run_all.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/sh
-
-exit_success ()
-{
- echo "UBI Utils Test Scripts - SUCCESS!"
- exit 0
-}
-
-exit_failure ()
-{
- echo $1
- echo "UBI Utils Test Scripts - FAILED!"
- exit 1
-}
-
-echo UBI Utils Test Scripts
-
-devno=$1
-logfile=temp-test-log.txt
-
-if test -z "$devno";
-then
- echo "Usage is $0 <mtd device number>"
- exit 1
-fi
-
-cwd=`pwd` || exit_failure "pwd failed"
-
-log="${cwd}/${logfile}"
-
-PATH=$PATH:$cwd:..
-
-cat /dev/null > $log || exit_failure "Failed to create $log"
-
-echo "Setting up for jffs2_test.sh" | tee -a $log
-
-avail=`cat /sys/class/ubi/ubi${devno}/avail_eraseblocks`
-size=`cat /sys/class/ubi/ubi${devno}/eraseblock_size`
-
-bytes=`expr $avail \* $size`
-
-ubimkvol -d$devno -s$bytes -n0 -Njtstvol || exit_failure "ubimkvol failed"
-
-mkdir -p /mnt/test_file_system || exit_failure "mkdir failed"
-
-mtd=`cat /proc/mtd | grep jtstvol | cut -d: -f1`
-
-if test -z "$mtd";
-then
- exit_failure "mtd device not found"
-fi
-
-mount -t jffs2 $mtd /mnt/test_file_system || exit_failure "mount failed"
-
-cd /mnt/test_file_system || exit_failure "cd failed"
-
-echo Running jffs2_test.sh | tee -a $log
-
-jffs2_test.sh >> $log 2>&1 || exit_failure "jffs2_test.sh failed"
-
-rm -f *
-
-cd $cwd || exit_failure "cd failed"
-
-umount /mnt/test_file_system || exit_failure "umount failed"
-
-ubirmvol -d$devno -n0 || exit_failure "ubirmvol failed"
-
-major=`cat /sys/class/ubi/ubi${devno}/dev | cut -d: -f1`
-
-for minor in `seq 0 32`; do
- if test ! -e /dev/ubi${devno}_$minor ;
- then
- mknod /dev/ubi${devno}_$minor c $major $(($minor + 1))
- fi
-done
-
-rm -f testdata.bin readdata.bin
-
-echo Running ubi_jffs2_test.sh | tee -a $log
-
-ubi_jffs2_test.sh >> $log 2>&1 || exit_failure "ubi_jffs2_test.sh failed"
-
-echo Running ubi_test.sh | tee -a $log
-
-ubi_test.sh >> $log 2>&1 || exit_failure "ubi_test.sh failed"
-
-for minor in `seq 0 32`; do
- if test -e /sys/class/ubi/ubi${devno}/$minor;
- then
- ubirmvol -d$devno -n$minor || exit_failure "ubirmvol failed"
- fi
-done
-
-echo Running ubi_tools_test.sh | tee -a $log
-
-ubi_tools_test.sh >> $log 2>&1 || exit_failure "ubi_tools_test failed"
-
-rm -f $log
-
-exit_success
diff --git a/ubi-utils/old-tools/scripts/test.cfg b/ubi-utils/old-tools/scripts/test.cfg
deleted file mode 100644
index 0b5ec48..0000000
--- a/ubi-utils/old-tools/scripts/test.cfg
+++ /dev/null
@@ -1,23 +0,0 @@
-[targets]
-test_complete=spl,kernel,rootfs
-
-[spl]
-image=test_u-boot.bin
-ubi_ids=10,11
-ubi_size=1MiB
-ubi_type=static
-ubi_names=test_spl_0,test_spl_1
-
-[kernel]
-image=test_vmlinux.bin
-ubi_ids=12,13
-ubi_size=2MiB
-ubi_type=static
-ubi_names=test_kernel_0,test_kernel_1
-
-[rootfs]
-image=test_rootfs.bin
-ubi_ids=14,15
-ubi_size=2MiB
-ubi_type=dynamic
-ubi_names=test_rootfs_0,test_rootfs_1
diff --git a/ubi-utils/old-tools/scripts/ubi_test.sh b/ubi-utils/old-tools/scripts/ubi_test.sh
deleted file mode 100755
index 73e4b19..0000000
--- a/ubi-utils/old-tools/scripts/ubi_test.sh
+++ /dev/null
@@ -1,328 +0,0 @@
-#!/bin/sh
-#
-# UBI Volume creation/deletion/write/read test script
-#
-# Written in shell language to reduce dependencies to more sophisticated
-# interpreters, which may not be available on some stupid platforms.
-#
-# Author: Frank Haverkamp <haver@vnet.ibm.com>
-#
-# 1.0 Initial version
-# 1.1 Use ubiupdatevol instead of ubiwritevol
-#
-
-VERSION="1.1"
-
-export PATH=$PATH:~/bin:/usr/local/bin:/home/dedekind/work/prj/ubi/tools/flashutils/bin/
-
-UBIMKVOL=ubimkvol
-UBIRMVOL=ubirmvol
-UBIUPDATEVOL=ubiupdatevol
-
-# 128 KiB 131072
-# 256 KiB 262144
-# 512 KiB 524288
-
-SIZE_512K=524288
-SIZE_1M=1310720
-
-SELF=$0
-MINVOL=10
-MAXVOL=12
-
-#
-# To have a standardized output I define the following function to be
-# used when a test was ok or when it failed.
-#
-failed ()
-{
- echo "FAILED"
-}
-
-passed ()
-{
- echo "PASSED"
-}
-
-#
-# Print sucess message. Consider to exit with zero as return code.
-#
-exit_success ()
-{
- echo "SUCCESS"
- exit 0
-}
-
-#
-# Print failure message. Consider to exit with non zero return code.
-#
-exit_failure ()
-{
- echo "FAILED"
- exit 1
-}
-
-###############################################################################
-#
-# START
-#
-###############################################################################
-
-fix_sysfs_issue ()
-{
- echo -n "*** Fixing the sysfs issue with the /dev nodes ... "
-
- minor=0
- major=`grep ubi0 /proc/devices | sed -e 's/\(.*\) ubi0/\1/'`
-
- rm -rf /dev/ubi0
- mknod /dev/ubi0 c $major 0
-
- for minor in `seq 0 $MAXVOL`; do
- ### echo " mknod /dev/ubi0_$minor c $major $(($minor + 1))"
- rm -rf /dev/ubi0_$minor
- mknod /dev/ubi0_$minor c $major $(($minor + 1))
- done
- passed
-}
-
-# delete_volume - Delete a volume. If it does not exist, do not try
-# to delete it.
-# @id: volume id
-#
-delete_volume ()
-{
- volume=$1
-
- ### FIXME broken sysfs!!!!
- if [ -e /sys/class/ubi/$volume -o -e /sys/class/ubi/ubi0/$volume -o -e /sys/class/ubi/ubi0_$volume ]; then
-
- echo -n "*** Truncate volume if it exists ... "
- $UBIUPDATEVOL -d0 -n$volume -t
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- echo -n "*** Delete volume if it exists ... "
- $UBIRMVOL -d0 -n$volume
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
- fi
-}
-
-mkvol_rmvol_test ()
-{
- type=$1
-
-### Test if volume delete on non-existing volumes fails nicely
-
- for i in `seq $MINVOL $MAXVOL`; do
- echo "*** Delete if exist or not $i ... "
-
- delete_volume $i
- passed
- done
-
-### Now deleting volumes must fail
-
- for i in `seq $MINVOL $MAXVOL`; do
- echo "*** Trying to delete non existing UBI Volume $i ... "
-
- $UBIRMVOL -d0 -n$i
- if [ $? -eq "0" ] ; then
- exit_failure
- fi
- passed
- done
-
-### Test if volume creation works ok
-
- for i in `seq $MINVOL $MAXVOL`; do
- echo "*** Creating UBI Volume $i ... "
- echo " $UBIMKVOL -d0 -n$i -t$type -NNEW$i -s $SIZE_512K"
-
- $UBIMKVOL -d0 -n$i -t$type -N"NEW$i" -s $SIZE_512K
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
- done
-
-### Now deleting volumes must be ok
-
- for i in `seq $MINVOL $MAXVOL`; do
- echo "*** Trying to delete UBI Volume $i ... "
-
- $UBIRMVOL -d0 -n$i
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
- done
-
-### Now allocate too large volume
-
- echo -n "*** Try to create too large volume"
- $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s 800000000
- if [ $? -eq "0" ] ; then
- exit_failure
- fi
- passed
-}
-
-# writevol_test - Tests volume creation and writing data to it.
-#
-# @size: Size of random data to write
-# @type: Volume type static or dynamic
-#
-writevol_test ()
-{
- size=$1
- type=$2
-
- echo "*** Write volume test with size $size"
-
-### Make sure that volume exist, delete existing volume, create new
-
- delete_volume $MINVOL
-
- echo -n "*** Try to create volume ... "
- $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s $SIZE_1M
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
-### Try to create same volume again
- echo -n "*** Try to create some volume again, this must fail ... "
- $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s $SIZE_1M
- if [ $? -eq "0" ] ; then
- exit_failure
- fi
- passed
-
-### Now create test data, write it, read it, compare it
- echo -n "*** Create test data ... "
- dd if=/dev/urandom of=testdata.bin bs=$size count=1
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- echo "*** Now writing data to volume ... "
- # sleep 5
- ls -l testdata.bin
- echo " $UBIUPDATEVOL -d0 -n$MINVOL testdata.bin"
- $UBIUPDATEVOL -d0 -n$MINVOL testdata.bin
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- if [ $type = "static" ] ; then
- echo "*** Download data with cat ... "
- cat /dev/ubi0_$MINVOL > readdata.bin
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
- else
- echo "*** Download data with dd bs=1 ... "
- dd if=/dev/ubi0_$MINVOL of=readdata.bin bs=$size count=1
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- # Size 1 does not work with this test ...
- #
- #echo "*** Download data with dd bs=$size ... "
- #dd if=/dev/ubi0_$MINVOL of=readdata2.bin bs=$size count=1
- #if [ $? -ne "0" ] ; then
- # exit_failure
- #fi
- #passed
-
- #echo -n "*** Comparing data (1) ... "
- #cmp readdata.bin readdata2.bin
- #if [ $? -ne "0" ] ; then
- # exit_failure
- #fi
- #passed
- fi
-
- echo -n "*** Comparing data ... "
- cmp readdata.bin testdata.bin
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-}
-
-echo "***********************************************************************"
-echo "* UBI Testing starts now ... *"
-echo "* Good luck! *"
-echo "***********************************************************************"
-
-# Set to zero if not running on example hardware
-grep ubi /proc/devices > /dev/null
-if [ $? -ne "0" ]; then
- echo "No UBI found in /proc/devices! I am broken!"
- exit_failure
-fi
-
-# Set to zero if not running on example hardware
-grep 1142 /proc/cpuinfo > /dev/null
-if [ $? -eq "0" ]; then
- echo "Running on example hardware"
- mount -o remount,rw / /
- sleep 1
- fix_sysfs_issue
-else
- echo "Running on Artems hardware"
-fi
-
-echo "***********************************************************************"
-echo "* mkvol/rmvol testing for static volumes ... *"
-echo "***********************************************************************"
-
-mkvol_rmvol_test static
-
-echo "***********************************************************************"
-echo "* mkvol/rmvol testing for dynamic volumes ... *"
-echo "***********************************************************************"
-
-mkvol_rmvol_test dynamic
-
-echo "***********************************************************************"
-echo "* write to static volumes ... *"
-echo "***********************************************************************"
-
-# 10 Erase blocks = (128 KiB - 64 * 2) * 10
-# = 1309440 bytes
-# 128 KiB 131072
-# 256 KiB 262144
-# 512 KiB 524288
-
-for size in 262144 131073 131072 2048 1 4096 12800 31313 ; do
- writevol_test $size static
-done
-
-echo "***********************************************************************"
-echo "* write to dynamic volumes ... *"
-echo "***********************************************************************"
-echo "VERSION: $VERSION"
-
-for size in 131073 131072 2048 1 4096 12800 31313 262144 ; do
- writevol_test $size dynamic
-done
-
-echo "***********************************************************************"
-echo "* Congratulations, no errors found! *"
-echo "* Have fun with your cool UBI system! *"
-echo "***********************************************************************"
-
-exit_success
diff --git a/ubi-utils/old-tools/scripts/ubi_tools_test.sh b/ubi-utils/old-tools/scripts/ubi_tools_test.sh
deleted file mode 100755
index 7f121f1..0000000
--- a/ubi-utils/old-tools/scripts/ubi_tools_test.sh
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/bin/sh
-#
-# UBI Volume creation/deletion/write/read test script.
-# Uses our flash update tools and the associated toolchain for flash
-# image creation.
-#
-# Written in shell language to reduce dependencies to more sophisticated
-# interpreters, which may not be available on some stupid platforms.
-#
-# Author: Frank Haverkamp <haver@vnet.ibm.com>
-#
-# 1.0 Initial version
-#
-
-VERSION="1.0"
-
-export PATH=$PATH:~/bin:/usr/local/bin:/home/dedekind/work/prj/ubi/tools/flashutils/bin/
-
-UBIMKVOL=ubimkvol
-UBIRMVOL=ubirmvol
-UBIWRITEVOL=ubiupdatevol
-PFIFLASH=pfiflash
-CMP=cmp
-
-MAXVOL=32
-
-test_pfi=test_complete.pfi
-real_pfi=example_complete.pfi
-
-# 128 KiB 131072
-# 256 KiB 262144
-# 512 KiB 524288
-
-#
-# To have a standardized output I define the following function to be
-# used when a test was ok or when it failed.
-#
-failed ()
-{
- echo "FAILED"
-}
-
-passed ()
-{
- echo "PASSED"
-}
-
-#
-# Print sucess message. Consider to exit with zero as return code.
-#
-exit_success ()
-{
- echo "SUCCESS"
- exit 0
-}
-
-#
-# Print failure message. Consider to exit with non zero return code.
-#
-exit_failure ()
-{
- echo "FAILED"
- exit 1
-}
-
-###############################################################################
-#
-# START
-#
-###############################################################################
-
-fix_sysfs_issue ()
-{
- echo -n "*** Fixing the sysfs issue with the /dev nodes ... "
-
- minor=0
- major=`grep ubi0 /proc/devices | sed -e 's/\(.*\) ubi0/\1/'`
-
- rm -rf /dev/ubi0
- mknod /dev/ubi0 c $major 0
-
- for minor in `seq 0 $MAXVOL`; do
- ### echo " mknod /dev/ubi0_$minor c $major $(($minor + 1))"
- rm -rf /dev/ubi0_$minor
- mknod /dev/ubi0_$minor c $major $(($minor + 1))
- done
- passed
-}
-
-# delete_volume - Delete a volume. If it does not exist, do not try
-# to delete it.
-# @id: volume id
-#
-delete_volume ()
-{
- volume=$1
-
- ### FIXME broken sysfs!!!!
- if [ -e /sys/class/ubi/$volume -o -e /sys/class/ubi/ubi0/$volume -o -e /sys/class/ubi/ubi0_$volume ]; then
-
- echo -n "*** Truncate volume if it exists ... "
- $UBIWRITEVOL -d0 -n$volume -t
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
-
- echo -n "*** Delete volume if it exists ... "
- $UBIRMVOL -d0 -n$volume
- if [ $? -ne "0" ] ; then
- exit_failure
- fi
- passed
- fi
-}
-
-echo "***********************************************************************"
-echo "* UBI Tools Testing starts now ... *"
-echo "* Good luck! *"
-echo "***********************************************************************"
-
-# Set to zero if not running on example hardware
-grep ubi /proc/devices > /dev/null
-if [ $? -ne "0" ]; then
- echo "No UBI found in /proc/devices! I am broken!"
- exit_failure
-fi
-
-# Set to zero if not running on example hardware
-grep 1142 /proc/cpuinfo > /dev/null
-if [ $? -eq "0" ]; then
- echo "Running on example hardware"
- mount -o remount,rw / /
- sleep 1
- fix_sysfs_issue
-else
- echo "Running on other hardware"
-fi
-
-### Test basic stuff
-pfiflash_basic ()
-{
- echo "Calling pfiflash with test-data ... "
- echo " $PFIFLASH $test_pfi"
- $PFIFLASH $test_pfi
- if [ $? -ne "0" ]; then
- echo "Uhhh something went wrong!"
- exit_failure
- fi
- passed
-
- echo "Testing if data is correct 10 and 11 ... "
- $CMP /dev/ubi0_10 /dev/ubi0_11
- if [ $? -ne "0" ]; then
- echo "Mirrored volumes not equal!"
- exit_failure
- fi
- passed
-
- echo "Comparing against original data ... "
- $CMP /dev/ubi0_10 test_u-boot.bin
- if [ $? -ne "0" ]; then
- echo "Compared volume not equal!"
- exit_failure
- fi
- passed
-
- echo "Testing if data is correct 12 and 13 ... "
- $CMP /dev/ubi0_12 /dev/ubi0_13
- if [ $? -ne "0" ]; then
- echo "Mirrored volumes not equal!"
- exit_failure
- fi
- passed
-
- echo "Comparing against original data ... "
- $CMP /dev/ubi0_12 test_vmlinux.bin
- if [ $? -ne "0" ]; then
- echo "Compared volume not equal!"
- exit_failure
- fi
- passed
-
- echo "Testing if data is correct 14 and 15 ... "
- $CMP /dev/ubi0_14 /dev/ubi0_15
- if [ $? -ne "0" ]; then
- echo "Mirrored volumes not equal!"
- exit_failure
- fi
- passed
-}
-
-### Test each and everything
-pfiflash_advanced ()
-{
- if [ -e example_complete.pfi ]; then
- echo "Calling pfiflash with real data ... "
- $PFIFLASH -p overwrite --complete example_complete.pfi
- if [ $? -ne "0" ]; then
- echo "Uhhh something went wrong!"
- exit_failure
- fi
- passed
-
- echo "Testing if data is correct 2 and 3 ... "
- $CMP /dev/ubi0_2 /dev/ubi0_3
- if [ $? -ne "0" ]; then
- echo "Mirrored volumes not equal!"
- exit_failure
- fi
- passed
-
- echo "Comparing against original data ... "
- $CMP /dev/ubi0_2 u-boot.bin
- if [ $? -ne "0" ]; then
- echo "Compared volume not equal!"
- exit_failure
- fi
- passed
-
- echo "Testing if data is correct 6 and 7 ... "
- $CMP /dev/ubi0_6 /dev/ubi0_7
- if [ $? -ne "0" ]; then
- echo "Mirrored volumes not equal!"
- exit_failure
- fi
- passed
-
- echo "Comparing against original data ... "
- $CMP /dev/ubi0_6 vmlinux.bin
- if [ $? -ne "0" ]; then
- echo "Compared volume not equal!"
- exit_failure
- fi
- passed
- fi
-}
-
-echo "***********************************************************************"
-echo "* Testing pfiflash ... *"
-echo "***********************************************************************"
-echo "VERSION: $VERSION"
-
-pfiflash_basic
-pfiflash_advanced
-
-echo "***********************************************************************"
-echo "* Congratulations, no errors found! *"
-echo "* Have fun with your cool UBI system! *"
-echo "***********************************************************************"
-
-exit_success
diff --git a/ubi-utils/old-tools/scripts/ubicrc32.pl b/ubi-utils/old-tools/scripts/ubicrc32.pl
deleted file mode 100644
index 92711cb..0000000
--- a/ubi-utils/old-tools/scripts/ubicrc32.pl
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/perl -w
-
-# Subroutine crc32(): Calculates the CRC on a given string.
-
-{
- my @table = ();
-
- # @brief Calculate CRC32 for a given string.
- sub crc32
- {
- unless (@table) {
- # Initialize the CRC table
- my $poly = 0xEDB88320;
- @table = ();
-
- for my $i (0..255) {
- my $c = $i;
-
- for my $j (0..7) {
- $c = ($c & 1) ? (($c >> 1) ^ $poly) : ($c >> 1);
- }
- $table[$i] = $c;
- }
- }
- my $s = shift; # string to calculate the CRC for
- my $crc = shift; # CRC start value
-
- defined($crc)
- or $crc = 0xffffffff; # Default CRC start value
-
- for (my $i = 0; $i < length($s); $i++) {
- $crc = $table[($crc ^ ord(substr($s, $i, 1))) & 0xff]
- ^ ($crc >> 8);
- }
- return $crc;
- }
-}
-
-sub crc32_on_file
-{
- my $file = shift;
-
- my $crc32 = crc32('');
- my $buf = '';
- my $ret = 0;
-
- while ($ret = read($file, $buf, 8192)) {
- $crc32 = crc32($buf, $crc32);
- }
- defined($ret)
- or return undef;
- printf("0x%x\n", $crc32);
-}
-
-
-# Main routine: Calculate the CRCs on the given files and print the
-# results.
-
-{
- if (@ARGV) {
- while (my $path = shift) {
- my $file;
- open $file, "<", $path
- or die "Error opening '$path'.\n";
-
- &crc32_on_file($file)
- or die "Error reading from '$path'.\n";
- close $file;
- }
- } else {
- &crc32_on_file(\*STDIN)
- or die "Error reading from stdin.\n";
- }
-}
diff --git a/ubi-utils/old-tools/scripts/unubi_test.sh b/ubi-utils/old-tools/scripts/unubi_test.sh
deleted file mode 100644
index 40dc2e2..0000000
--- a/ubi-utils/old-tools/scripts/unubi_test.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/sh
-#
-# Use raw NAND data, extract UBI image and apply tool to it.
-# Test basic functionality.
-#
-# 2007 Frank Haverkamp <haver@vnet.ibm.com>
-#
-
-version=1.1
-
-image=data.mif
-oob=oob.bin
-data=data.bin
-pagesize=2048
-volmax=31
-datadir=unubi_data
-
-# general arguments e.g. debug enablement
-# unubi_args="-D"
-
-echo "------------------------------------------------------------------------"
-echo "Testcase: ${0} Version: ${version}"
-echo "------------------------------------------------------------------------"
-echo "Testing nand2bin ..."
-echo " Input: ${image}"
-echo " Data: ${data}"
-echo " OOB: ${oob}"
-echo " Pagesize: ${pagesize}"
-nand2bin --pagesize ${pagesize} -o ${data} -O ${oob} ${image}
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Testing unubi ..."
-echo "------------------------------------------------------------------------"
-unubi --version
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Trying to extract first ${volmax} volumes ..."
-echo "------------------------------------------------------------------------"
-mkdir -p ${datadir}/volumes
-for v in `seq 0 ${volmax}` ; do
- unubi ${unubi_args} -r${v} -d${datadir}/volumes ${data}
- echo -n "."
-done
-echo "ok"
-ls -l ${datadir}/volumes
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Extracting graphics ..."
-echo "------------------------------------------------------------------------"
-unubi -a -d${datadir} ${data}
-echo "Use gnuplot to display:"
-ls ${datadir}/*.plot
-ls ${datadir}/*.data
-echo
-
-echo "------------------------------------------------------------------------"
-echo "eb-split"
-echo "------------------------------------------------------------------------"
-unubi -e -d${datadir}/eb-split ${data}
-ls -l ${datadir}/eb-split
-echo
-
-echo "------------------------------------------------------------------------"
-echo "vol-split"
-echo "------------------------------------------------------------------------"
-unubi -v -d${datadir}/vol-split ${data}
-ls -l ${datadir}/vol-split
-echo
-echo "The generated images contain only the data (126KiB in our "
-echo "case) not including the UBI erase count and volume info "
-echo "header. For dynamic volumes the data should be the full "
-echo "126KiB. Unubi cannot know how much of the data is valid. "
-echo
-
-echo "------------------------------------------------------------------------"
-echo "!vol-split"
-echo "------------------------------------------------------------------------"
-unubi -V -d${datadir}/vol-split! ${data}
-ls -l ${datadir}/vol-split\!
-echo
-echo "The generated images contain the full block data of 128KiB "
-echo "including the UBI erase count and volume information header."
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Extracting volume info table ..."
-echo "------------------------------------------------------------------------"
-unubi -i -d${datadir} ${data}
-echo "I strongly hope that empty ubi blocks are filled with 0xff! "
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Table 0"
-echo "------------------------------------------------------------------------"
-cat ${datadir}/vol_info_table0
-echo
-
-echo "------------------------------------------------------------------------"
-echo "Table 1"
-echo "------------------------------------------------------------------------"
-cat ${datadir}/vol_info_table1
-echo