From 86dd9696d3a1acb036d65909d93d73455b8aed3a Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Tue, 19 Feb 2008 14:54:17 +0200 Subject: 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 --- ubi-utils/old-tools/scripts/Makefile | 91 --- ubi-utils/old-tools/scripts/README | 14 - ubi-utils/old-tools/scripts/bin2nand2bin_test.sh | 216 ------- ubi-utils/old-tools/scripts/f128_nand_sample.cfg | 38 -- ubi-utils/old-tools/scripts/f64_nor_sample.cfg | 39 -- ubi-utils/old-tools/scripts/inject_biterror.pl | 94 --- ubi-utils/old-tools/scripts/jffs2_test.sh | 91 --- ubi-utils/old-tools/scripts/mkdevs.pl | 32 - ubi-utils/old-tools/scripts/mkpfi | 723 ----------------------- ubi-utils/old-tools/scripts/pdd.txt | 16 - ubi-utils/old-tools/scripts/run_all.sh | 101 ---- ubi-utils/old-tools/scripts/test.cfg | 23 - ubi-utils/old-tools/scripts/ubi_test.sh | 328 ---------- ubi-utils/old-tools/scripts/ubi_tools_test.sh | 252 -------- ubi-utils/old-tools/scripts/ubicrc32.pl | 74 --- ubi-utils/old-tools/scripts/unubi_test.sh | 105 ---- 16 files changed, 2237 deletions(-) delete mode 100644 ubi-utils/old-tools/scripts/Makefile delete mode 100644 ubi-utils/old-tools/scripts/README delete mode 100644 ubi-utils/old-tools/scripts/bin2nand2bin_test.sh delete mode 100644 ubi-utils/old-tools/scripts/f128_nand_sample.cfg delete mode 100644 ubi-utils/old-tools/scripts/f64_nor_sample.cfg delete mode 100644 ubi-utils/old-tools/scripts/inject_biterror.pl delete mode 100755 ubi-utils/old-tools/scripts/jffs2_test.sh delete mode 100755 ubi-utils/old-tools/scripts/mkdevs.pl delete mode 100644 ubi-utils/old-tools/scripts/mkpfi delete mode 100644 ubi-utils/old-tools/scripts/pdd.txt delete mode 100755 ubi-utils/old-tools/scripts/run_all.sh delete mode 100644 ubi-utils/old-tools/scripts/test.cfg delete mode 100755 ubi-utils/old-tools/scripts/ubi_test.sh delete mode 100755 ubi-utils/old-tools/scripts/ubi_tools_test.sh delete mode 100644 ubi-utils/old-tools/scripts/ubicrc32.pl delete mode 100644 ubi-utils/old-tools/scripts/unubi_test.sh (limited to 'ubi-utils/old-tools/scripts') 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 -# - -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 -# -# 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 -# -# 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 - -Byte-offset where bit-error should be injected. - -=item B<--bitmask>=I - -Bit-mask where to inject errors in the byte. - -=item B<--input>=I - -Input file. - -=item B<--output>=I - -Output file. - -=back - -=head1 DESCRIPTION - -B will read the given input file and inject -biterrors at the I specified. The location of the biterrors -are defined by the I 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 -# -# 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 = ; -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); - ©_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 " - 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 -# -# 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 -# -# 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 -# - -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 -- cgit v1.2.3