Your message dated Wed, 24 Aug 2011 12:32:16 +0000
with message-id <e1qwccy-0002pg...@franck.debian.org>
and subject line Bug#612376: fixed in flash-kernel 3.0~rc.1
has caused the Debian Bug report #612376,
regarding flash-kernel: please include efikamx support
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
612376: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612376
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: flash-kernel
Version: 2.37

The attached file is part of the flash-kernel 2.28ubuntu10genesi1
distributed by Genesi.

Please incorporate the efikamx_flash_kernel function.
I would change the boot.scr generation to include
console=${console} as part of bootargs.
#!/bin/sh

# Copyright (C) 2006  Joey Hess  <jo...@debian.org>
# Copyright (C) 2006, 2007, 2008, 2009  Martin Michlmayr <t...@cyrius.com>
# Copyright (C) 2009, 2010 Canonical Ltd
# Copyright (C) 2010 Genesi USA, Inc.

# 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
# USA.

set -e

error() {
        echo "$@" >&2
        exit 1
}

check_mtd() {
        if [ ! -e /proc/mtd ]; then
                error "/proc/mtd doesn't exist"
        fi
}

mtdblock() {
        grep "\"$1\"" /proc/mtd | cut -d: -f 1 | sed 's/mtd/\/dev\/mtdblock/'
}

check_dev_mtdblock() {
        if [ ! -b "$1" ]; then
                error "$1 is not a block device"
        fi
}

mtdsize() {
        size=$(grep "\"$1\"" /proc/mtd | cut -d " " -f 2)
        printf "%d" 0x$size
}

check_subarch() {
        if [ -n "$subarch" ] && [ "$subarch" != "$1" ]; then
                echo "Kernel $kfile does not match your subarchitecture" >&2
                echo "$1, therefore not writing it to flash." >&2
                exit 0
        fi
}

check_size() {
        if [ $2 -gt $3 ]; then
                error "The $1 doesn't fit in flash."
        fi
}

check_fis() {
        if ! fis -d "$1" -o "$2" -s "$3" list >/dev/null; then
                error "fis list failed on device $1 at offset $2 with size $3"
        fi
}

# returns addr, size, and entry in hex, space separated; e.g. for the kernel
# partition, when fis list would return:
#          kernel: addr = 0x00060000, size = 0x00400000, entry = 0x00100000, \
#          length = 0x002144c0, cksum = 0xe9909335
# this function outputs:
# 00060000 00400000 00100000
fis_info() {
        LC_ALL=C fis -d "$1" -o "$2" -s "$3" list | sed -rn "s/^[[:space:]]*$4: 
addr = 0x([0-9a-f]{8}), size = 0x([0-9a-f]{8}), entry = 0x([0-9a-f]{8}), length 
= 0x[0-9a-f]{8}, cksum = 0x[0-9a-f]{8}\$/\1 \2 \3/p"
}

# pass fis_info output in args and outputs the decimal offset
fis_offset() {
        printf %d 0x$1
}

# pass fis_info output in args and outputs the decimal size
fis_size() {
        printf %d 0x$2
}

# pass fis_info output in args and outputs the decimal entry point
fis_entry() {
        printf %d 0x$3
}


# See http://www.nslu2-linux.org/wiki/Info/BootFlash -- the NSLU2 uses a
# 16 byte MTD header, the first four bytes (big endian) give the length of
# the remainder of the image, and the remaining bytes are zero.  Generate
# this header.
sercomm_header() {
        perl -e 'print pack("N4", shift)' "$1"
}

nslu2_swap() {
        if [ "$little_endian" ]; then
                devio "<<$1" "xp $,4"
        else
                cat "$1"
        fi
}

# list of functions to call on cleanup
cleanup_funcs=""
cleanup() {
        for f in $cleanup_funcs; do
                $f
        done
}

# generic flash-kernel routines for specific subarchs
omap_flash_kernel() {
        if [ -n "${UBOOT_PART}" ]; then
                echo "Using u-boot partition: ${UBOOT_PART}" >&2
                TMPMOUNT=$(mktemp -d)
                mount $UBOOT_PART $TMPMOUNT
                printf "Creating backups of uImage and uInitrd... " >&2
                if [ -e $TMPMOUNT/uImage ]; then
                        cp $TMPMOUNT/uImage $TMPMOUNT/uImage.bak
                fi
                if [ -e $TMPMOUNT/uInitrd ]; then
                        cp $TMPMOUNT/uInitrd $TMPMOUNT/uInitrd.bak
                fi
                echo "done." >&2
                printf "Generating kernel u-boot image... " >&2
                mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
                        -e 0x80008000 -n "Ubuntu Kernel" -d $kfile 
$TMPMOUNT/uImage >&2 1>/dev/null
                echo "done." >&2
                printf "Generating Initramfs u-boot image... " >&2
                mkimage -A arm -O linux -T ramdisk -C none -a 0x0 -e 0x0 \
                        -n "Ubuntu Initrd" -d $ifile $TMPMOUNT/uInitrd >&2 
1>/dev/null
                        echo "done." >&2
                if [ -e /boot/boot.script ];then
                        printf "Generating u-boot configuration from 
/boot/boot.script... " >&2
                        cp $TMPMOUNT/boot.scr $TMPMOUNT/boot.scr.bak
                        mkimage -A arm -T script -C none -n "Ubuntu boot 
script" -d /boot/boot.script \
                                $TMPMOUNT/boot.scr >&2 1>/dev/null
                        echo "done." >&2
                fi
                umount $TMPMOUNT
                rm -rf $TMPMOUNT
        else
                initrd_nand_size="16777216"
                check_mtd
                kmtd=$(mtdblock "Kernel")
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'Kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "Kernel")
                check_size "Kernel" $(($kfilesize + 8 + 64)) $kmtdsize

                printf "Generating kernel u-boot image... " >&2
                tmp=$(tempfile) 
                cat $kfile >> $tmp
                mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
                        -e 0x80008000 -n "Ubuntu Kernel" -d $tmp $tmp.uboot >&2 
1>/dev/null
                echo "done." >&2

                printf "Erasing Kernel NAND space... " >&2 
                dd if=/dev/zero of=$kmtd bs=$kmtdsize count=1 2>/dev/null
                echo "done." >&2

                printf "Flashing kernel... " >&2
                cat $tmp.uboot > $kmtd || error "failed."
                echo "done." >&2
                rm -f $tmp.uboot $tmp

                imtd=$(mtdblock "File System")
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition for Initramfs"
                fi
                check_dev_mtdblock "$imtd"
                check_size "Initramfs" $ifilesize $initrd_nand_size

                printf "Generating Initramfs u-boot image... " >&2
                tmp=$(tempfile) 
                cat $ifile >> $tmp
                mkimage -A arm -O linux -T ramdisk -C none -a 0x0 -e 0x0 \
                        -n "Ubuntu Initrd" -d $tmp $tmp.uboot >&2 1>/dev/null
                echo "done." >&2

                printf "Erasing Initramfs NAND space... " >&2
                dd if=/dev/zero of=$imtd bs=$initrd_nand_size count=1 
2>/dev/null
                        echo "done." >&2

                printf "Flashing Initramfs... " >&2
                cat $tmp.uboot > $imtd || error "failed."
                echo "done." >&2 
                rm -f $tmp.uboot $tmp
        fi
}

dove_flash_kernel() {
        tmp=$(tempfile)
        uboot_kernel_load_addr=0x00200000
        uboot_initramfs_load_addr=0x01100000
        script_load_addr=0x1000

        printf "Generating kernel u-boot image... " >&2
        cat $kfile >> $tmp
        mkimage -A arm -O linux -T kernel -C none -n "$desc" -a 0x00008000 \
                -e 0x00008000 -d $tmp $tmp.uboot >&2 1>/dev/null
        echo "done." >&2
        if [ -e /boot/uImage ]; then
                echo "Creating backup of /boot/uImage." >&2
                mv /boot/uImage /boot/uImage.bak
        fi
        echo "Creating new /boot/uImage." >&2
        mv $tmp.uboot /boot/uImage
        rm -f $tmp
        printf "Generating initrd u-boot image... " >&2
        mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 \
                -e 0x0 -n "$idesc" -d "$ifile" "$tmp.uboot" >&2 1>/dev/null
        echo "done." >&2
        if [ -e /boot/uInitrd ]; then
                echo "Creating backup of /boot/uInitrd." >&2
                mv /boot/uInitrd /boot/uInitrd.bak
        fi
        echo "Creating new /boot/uInitrd." >&2
        mv "$tmp.uboot" /boot/uInitrd
        rm -f "$tmp.uboot"
        printf "Generating new u-boot boot script..." >&2
        # The UUID will come from the flash-kernel config file
        cat >"$tmp.boot.script" <<EOF
echo Starting Ubuntu...
if test -n \${fs} && test -n \${interface} && test -n \${device} && test -n 
\${prefix}; then
        \${fs}load \${interface} \${device} $uboot_kernel_load_addr 
\${prefix}uImage
        \${fs}load \${interface} \${device} $uboot_initramfs_load_addr 
\${prefix}uInitrd
        setenv bootargs $rootfs ro quiet splash
        bootm $uboot_kernel_load_addr $uboot_initramfs_load_addr
fi

echo boot information not recieved from u-boot, scanning for startup device

if test -e \${reinitalize_devices}; then
        usb start;
        ide reset;
fi

for i in usb ide; do 
        for j in 0 1; do
                for l in / /boot/; do
                        for m in fat ext2; do
                                setenv interface \$i;
                                setenv device \$j;
                                setenv prefix \$l;
                                setenv fs \$m;

                                echo Scanning \${fs} \${interface} \${device} 
on prefix \${prefix} ...;

                                # This "if" avoids loading an old image but
                                # doesn't work in stock u-boot 1.3.4 and is
                                # only fixed in Canonical u-boot from October
                                # 1st or later

                                if \${fs}load \${interface} \${device} 
$script_load_addr \${prefix}boot.scr; then
                                        if imi $script_load_addr; then
                                                echo boot.scr found! Executing 
...;
                                                autoscr $script_load_addr;
                                        fi;
                                fi
                        done;
                done;
        done;
done
echo No boot device found.;
EOF
        mkimage -A arm -T script -C none -n "Ubuntu boot script" -d 
"$tmp.boot.script" \
                "$tmp.boot.scr" >&2 1>/dev/null
        echo "done." >&2
        if [ -e /boot/boot.scr ]; then
                echo "Creating backup of /boot/boot.scr." >&2
                mv /boot/boot.scr /boot/boot.scr.bak
        fi
        echo "Creating new /boot/boot.scr." >&2
        mv "$tmp.boot.scr" /boot/boot.scr
        rm -f "$tmp.boot.script" "$tmp.boot.scr"
}

efikamx_flash_kernel() {
        root=$(readlink -f /dev/root)
        echo "Root filesystem is $root" >&2

        loadaddr=0x90008000
        tmp=$(tempfile)

        printf "Generating kernel u-boot image... " >&2
        cat $kfile >> $tmp
        mkimage -A arm -O linux -T kernel -C none -n "$desc" -a $loadaddr \
            -e $loadaddr -d $tmp $tmp.uboot >&2 1>/dev/null
        echo "done." >&2

        if [ -e /boot/uImage-$kvers ]; then
                echo "Creating backup of /boot/uImage-$kvers." >&2
                mv /boot/uImage-$kvers /boot/uImage-$kvers.bak
        fi

        echo "Creating new /boot/uImage." >&2
        mv $tmp.uboot /boot/uImage-$kvers
        rm -f $tmp.uboot

        printf "Generating initrd u-boot image... " >&2
        mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 \
                -e 0x0 -n "$idesc" -d "$ifile" "$tmp.uboot" >&2 1>/dev/null
        echo "done." >&2
        if [ -e /boot/uInitrd-$kvers ]; then
                echo "Creating backup of /boot/uInitrd." >&2
                mv /boot/uInitrd-$kvers /boot/uInitrd-$kvers.bak
        fi
        echo "Creating new /boot/uInitrd." >&2
        mv "$tmp.uboot" /boot/uInitrd-$kvers
        rm -f "$tmp.uboot"
        printf "Generating new u-boot boot script..." >&2
        # The UUID will come from the flash-kernel config file

#       if [ -f /boot/boot.cmdline ]; then
#               echo -n "Loading extra commandline arguments... "
#               cmdline=`head -n1 -q /boot/boot.cmdline`
#               # check for root= arg here or custom args will break boot
#               echo "'${cmdline}'"
#       else
#               cmdline="console=tty1 root=$root rootwait rw"
#       fi

        printf "Generating boot.scr... " >&2
        cat >$tmp.boot.script <<EOF
setenv ramdisk uInitrd-$kvers;
setenv kernel uImage-$kvers;
setenv bootargs console=tty1 root=$root rootwait rw quiet splash;
\${loadcmd} \${ramdiskaddr} \${ramdisk};
if imi \${ramdiskaddr}; then; else
  setenv bootargs \${bootargs} noinitrd;
  setenv ramdiskaddr "";
fi;
\${loadcmd} \${kerneladdr} \${kernel}
if imi \${kerneladdr}; then
  bootm \${kerneladdr} \${ramdiskaddr}
fi;
EOF
        mkimage -A arm -T script -C none -n "Ubuntu boot script" -d 
"$tmp.boot.script" \
                "$tmp.boot.scr" >&2 1>/dev/null
        echo "done." >&2
        if [ -e /boot/boot.scr ]; then
                echo "Creating backup of /boot/boot.scr." >&2
                mv /boot/boot.scr /boot/boot.scr.bak
        fi
        echo "Creating new /boot/boot.scr." >&2
        mv "$tmp.boot.scr" /boot/boot.scr
        rm -f "$tmp.boot.script" "$tmp.boot.scr"
        rm -f $tmp*
}

trap "cleanup" 0 HUP INT QUIT KILL SEGV PIPE TERM

config="/etc/flash-kernel.conf"
if [ -r "$config" ]; then
    . "$config"
fi

if [ "x$1" = "x--machine" ]; then
        machine=$2
        shift 2
else
        machine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//')
fi

running_subarch=$(uname -r | sed -e 's/.*-//')

if [ "x$1" = "x--supported" ]; then
        # if FLASH_KERNEL_SKIP is set, its always unsupported
        if [ -n "$FLASH_KERNEL_SKIP" ]; then
                exit 1
        fi

        case "$machine" in
                "ARM-Versatile Express CA9x4")          exit 0 ;;
                "Buffalo Linkstation Pro/Live")         exit 0 ;;
                "Buffalo/Revogear Kurobox Pro")         exit 0 ;;
                "D-Link DNS-323")                       exit 0 ;;
                "Freescale MX51 Babbage Board")         exit 0 ;;
                "GLAN Tank")                            exit 0 ;;
                "HP Media Vault mv2120")                exit 0 ;;
                "IGEP v2 board")            exit 0 ;;
                "Marvell DB-MV88F6781-BP Development Board") exit 0 ;;
                "Linksys NSLU2")                        exit 0 ;;
                "OMAP3 Beagle Board")                   exit 0 ;;
                "OMAP4430 Panda Board")                 exit 0 ;;
                "OMAP4430 4430SDP board")               exit 0 ;;
                "Marvell OpenRD Base Board")            exit 0 ;;
                "Marvell OpenRD Client Board")          exit 0 ;;
                "Marvell SheevaPlug Reference Board")   exit 0 ;;
                "Marvell eSATA SheevaPlug Reference Board")     exit 0 ;;
                "QNAP TS-109/TS-209" | "QNAP TS-409")   exit 0 ;;
                "QNAP TS-119/TS-219")                   exit 0 ;;
                "QNAP TS-41x")                          exit 0 ;;
                "Thecus N2100")                         exit 0 ;;
                "Lanner EM7210")                        exit 0 ;;
                "Genesi Efika MX (Smartbook)")          exit 0 ;;
                "Genesi Efika MX (Smarttop)")           exit 0 ;;
                *)
                        # we're supported if we have a generic fallback
                        case "$running_subarch" in
                                "dove" | "omap" | "omap4" | "efikamx" | 
"efikasb" ) exit 0 ;;
                        esac
                exit 1
                ;;
        esac
fi

if [ -n "$FLASH_KERNEL_SKIP" ]; then
        exit 0
fi

if [ -n "$1" ]; then
        kvers="$1"
        kfile=/boot/vmlinuz-$kvers
        ifile=/boot/initrd.img-$kvers
        desc="Ubuntu kernel $1"
        idesc="Ubuntu ramdisk $1"
else
        if [ -e /vmlinuz ]; then
                kfile=/vmlinuz
                ifile=/initrd.img
        elif [ -e /boot/vmlinuz ]; then
                kfile=/boot/vmlinuz
                ifile=/boot/initrd.img
        else
                error "Cannot find a default kernel in /vmlinuz or 
/boot/vmlinuz"
        fi
        desc="Debian kernel"
        idesc="Debian ramdisk"
fi

if [ ! -e $kfile ] || [ ! -e $ifile ]; then
        error "Can't find $kfile and $ifile"
fi
kfilesize=$(wc -c "$kfile" | awk '{print $1}')
ifilesize=$(wc -c "$ifile" | awk '{print $1}')

# Extract the subarchitecture from the kernel name
if [ -L "$kfile" ]; then
        kfile=$(readlink -e "$kfile")
fi
subarch=$(echo "$kfile" | sed -e 's/.*-//')

case "$machine" in
        "ARM-Versatile Express CA9x4")
                check_subarch "vexpress"
                check_mtd

                kmtd=$(mtdblock "kernel")
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "kernel")
                check_size "kernel" $(($kfilesize + 64)) $kmtdsize
                printf "Generating a u-boot compatible kernel image... " >&2
                mkimage -A arm -O linux -T kernel -C none -a 0x60008000 \
                        -e 0x60008000 -n "$desc" -d $kfile $kfile.uboot \
                        >&2 1>/dev/null
                printf "Writing kernel to flash... " >&2
                cat $kfile.uboot > $kmtd || error "failed."
                echo "done." >&2
                rm -f $kfile.uboot

                imtd=$(mtdblock "initrd")
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition for initrd"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "initrd")
                check_size "initrd" $ifilesize $imtdsize 
                printf "Generating u-boot compatible initrd image... " >&2
                mkimage -A arm -O linux -T ramdisk -C none -a 0x81000000 \
                        -e 0x81000000 -n "$idesc" -d $ifile $ifile.uboot \
                        >&2 1>/dev/null
                printf "Writing initrd to flash... " >&2
                cat $ifile.uboot > $imtd || error "failed."
                echo "done." >&2 
                rm -f $ifile.uboot
        ;;
        "Buffalo Linkstation Pro/Live" | "Buffalo/Revogear Kurobox Pro")
                check_subarch "orion5x"
                tmp="$(tempfile)"
                printf "Generating kernel u-boot image... " >&2
                case "$machine" in
                        "Buffalo Linkstation Pro/Live")
                                # Set machine id 1585 (0x0631)
                                devio > "$tmp" 'wl 0xe3a01c06,4' 'wl 
0xe3811031,4'
                        ;;
                        "Buffalo/Revogear Kurobox Pro")
                                # Set machine id 1509 (0x05e5)
                                devio > "$tmp" 'wl 0xe3a01c05,4' 'wl 
0xe38110e5,4'
                        ;;
                esac
                cat "$kfile" >> "$tmp"
                mkimage -A arm -O linux -T kernel -C none -a 0x00008000 \
                        -e 0x00008000 -n "$desc" -d "$tmp" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                if [ -e /boot/uImage.buffalo ]; then
                        echo "Creating backup of /boot/uImage.buffalo." >&2
                        mv /boot/uImage.buffalo /boot/uImage.buffalo.bak
                fi
                echo "Creating new /boot/uImage.buffalo." >&2
                mv "$tmp.uboot" /boot/uImage.buffalo
                rm -f "$tmp"
                printf "Generating initrd u-boot image... " >&2
                mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 \
                        -e 0x0 -n "$idesc" -d "$ifile" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                if [ -e /boot/initrd.buffalo ]; then
                        echo "Creating backup of /boot/initrd.buffalo." >&2
                        mv /boot/initrd.buffalo /boot/initrd.buffalo.bak
                fi
                echo "Creating new /boot/initrd.buffalo." >&2
                mv "$tmp.uboot" /boot/initrd.buffalo
        ;;
        "D-Link DNS-323")
                check_subarch "orion5x"
                check_mtd
                imtd=$(mtdblock "File System")
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition 'File System'"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "File System")
                check_size "File System" $((ifilesize + 64)) $imtdsize
                kmtd=$(mtdblock "Linux Kernel")
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'Linux Kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "Linux Kernel")
                check_size "Linux Kernel" $(($kfilesize + 8 + 64)) $kmtdsize
                printf "Generating kernel u-boot image... " >&2
                tmp="$(tempfile)"
                # Set machine id 1542 (0x0606)
                devio > "$tmp" 'wl 0xe3a01c06,4' 'wl 0xe3811006,4'
                cat "$kfile" >> "$tmp"
                mkimage -A arm -O linux -T kernel -C none -a 0x00008000 \
                        -e 0x00008000 -n "$desc" -d "$tmp" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                printf "Flashing kernel... " >&2
                cat "$tmp.uboot" > "$kmtd" || error "failed."
                echo "done." >&2
                rm -f "$tmp.uboot" "$tmp"
                printf "Generating initramfs u-boot image... " >&2
                mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00800000 \
                        -e 0x00800000 -n "$idesc" -d "$ifile" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                printf "Flashing initramfs... " >&2
                cat "$tmp.uboot" > "$imtd" || error "failed."
                echo "done." >&2
                rm -f "$tmp.uboot"
        ;;
        "Freescale MX51 Babbage Board")
                check_subarch "imx51"

                for c in fis_dev fis_offset_hex fis_size_hex; do
                        if [ -z "`eval echo \$$c`" ]; then
                                error "$c not set in $config"
                        fi
                done
                check_dev_mtdblock "$fis_dev"
                check_fis "$fis_dev" "$fis_offset_hex" "$fis_size_hex"

                # check for an "initrd" entry
                initrd="initrd"
                ifisinfo=$(fis_info "$fis_dev" "$fis_offset_hex" 
"$fis_size_hex" "initrd")
                # fallback on "initramfs"
                if [ -z "$ifisinfo" ]; then
                        initrd="initramfs"
                        ifisinfo=$(fis_info "$fis_dev" "$fis_offset_hex" 
"$fis_size_hex" "$initrd")
                        if [ -z "$ifisinfo" ]; then
                                error "Cannot find FIS partition '$initrd'"
                        fi
                fi
                ifissize=$(fis_size $ifisinfo)
                check_size "$initrd" $ifilesize $ifissize

                kfisinfo=$(fis_info "$fis_dev" "$fis_offset_hex" 
"$fis_size_hex" "kernel")
                if [ -z "$kfisinfo" ]; then
                        error "Cannot find FIS partition 'kernel'"
                fi
                kfissize=$(fis_size $kfisinfo)
                check_size "kernel" $kfilesize $kfissize

                kfisoffset=$(fis_offset $kfisinfo)
                kfisentry=$(fis_entry $kfisinfo)
                # the kernel is started at its load address so kfisram ==
                # kfisentry
                kfisram="$kfisentry"

                ifisoffset=$(fis_offset $ifisinfo)
                # not used
                ifisentry=$(printf %d 0xffffffff)
                # XXX hardcoded, should be read from RedBoot; but fis command
                # currently doesn't return that info
                ifisram=$(printf %d 0x1000000)

                printf "Flashing kernel... " >&2
                fis -d "$fis_dev" -o "$fis_offset_hex" -s "$fis_size_hex" 
create "kernel" -f $kfisoffset -l $kfissize -e $kfisentry -r $kfisram -c 
"$kfile" || error "FIS create failed."
                dd if="$kfile" of="$fis_dev" bs=$kfisoffset seek=1 2>/dev/null 
|| error "update failed."
                echo "done." >&2

                printf "Generating padded initramfs... " >&2
                # padded initramfs; we need to use a temp file because of the
                # fis command which needs to see a padded datalength
                ipadded=""
                # cleanup handler which removes the generated temp file when
                # this script finished
                cleanup_ipadded() {
                        if [ -n "$ipadded" ]; then
                                rm -f "$ipadded"
                        fi
                }
                cleanup_funcs="cleanup_ipadded $cleanup_funcs"
                ipadded=$(mktemp -t flash-kernel.XXXXXXXXXX)
                pad=$(expr $ifissize - $ifilesize)
                (
                        cat $ifile
                        # pad with zeroes; this uses $pad mem, not very elegant
                        dd if=/dev/zero bs=$pad count=1 2>/dev/null
                ) | dd of="$ipadded" bs=4k 2>/dev/null || error "failed."
                echo "done." >&2

                printf "Flashing initramfs... " >&2
                fis -d "$fis_dev" -o "$fis_offset_hex" -s "$fis_size_hex" 
create "$initrd" -f $ifisoffset -l $ifissize -e $ifisentry -r $ifisram -c 
"$ipadded" || error "FIS create failed."
                dd if="$ipadded" of="$fis_dev" bs=$ifisoffset seek=1 
2>/dev/null || error "failed."
                echo "done." >&2
        ;;
        "GLAN Tank")
                rm -f /boot/initrd /boot/zImage
                ln -s "$(basename "$ifile")" /boot/initrd
                (
                        # Set machine id 1100 (0x044c)
                        devio 'wl 0xe3a01c04,4' 'wl 0xe381104c,4'
                        cat "$kfile"
                ) > /boot/zImage
        ;;
        "HP Media Vault mv2120")
                check_subarch "orion5x"
                tmp="$(tempfile)"
                printf "Generating kernel u-boot image... " >&2
                # Set machine id 1693 (0x069d)
                devio > "$tmp" 'wl 0xe3a01c06,4' 'wl 0xe381109d,4'
                cat "$kfile" >> "$tmp"
                mkimage -A arm -O linux -T multi -C none -n "$desc" -a 
0x01000000 \
                        -e 0x01000000 -d "$tmp:$ifile" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                if [ -e /boot/uImage ]; then
                        echo "Creating backup of /boot/uImage." >&2
                        mv /boot/uImage /boot/uImage.bak
                fi
                echo "Creating new /boot/uImage." >&2
                mv "$tmp.uboot" /boot/uImage
                rm -f "$tmp"
        ;;
        "Linksys NSLU2")
                check_subarch "ixp4xx"
                case "$(dpkg --print-architecture)" in
                        arm|armel)
                                little_endian=1
                        ;;
                        armeb)
                                little_endian=0
                        ;;
                esac
                check_mtd
                fismtd=$(mtdblock "FIS directory")
                if [ -z "$fismtd" ]; then
                        error "Cannot find mtd FIS directory"
                fi
                kmtd=$(mtdblock Kernel)
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'Kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "Kernel")
                check_size "kernel" $(($kfilesize + 16 + 16)) $kmtdsize
                imtd=$(mtdblock Ramdisk)
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition 'Ramdisk'"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "Ramdisk")
                check_size "ramdisk" $(($ifilesize + 16)) $imtdsize
                # The following devio magic parses the FIS directory to
                # obtain the size, offset and name of each partition.  This
                # used used to obtain the offset of the Kernel partition.
                offset=$(echo "$(devio "<<$fismtd" '
                        <= $ 0x20000 -
                        L= 0x1000
                        $( 1
                                # 0xff byte in name[0] ends the partition table
                                $? @ 255 =
                                # output size base name
                                <= f15+
                                .= b 0xfffffff &
                                <= f4+
                                .= b
                                pf "%lu %lu "
                                <= f28-
                                cp 16
                                pn
                                <= f240+
                                L= L256-
                        $) L255>')" |
                        while read a b c; do
                                if [ "$c" = "Kernel" ]; then
                                        echo $b
                                fi
                        done)
                # The Kernel partition, starting at $offset, is divided into
                # two areas at $boundary.  We therefore need to split the
                # kernel into two and write them to flash with two Sercomm
                # headers.
                boundary=1441792 # 0x00160000
                ksize1=$(expr $boundary - $offset - 16)
                tmp="$(tempfile)"
                printf "Flashing kernel: " >&2
                (
                        sercomm_header $(expr $kfilesize + 16)
                        dd if="$kfile" of="$tmp" bs=$ksize1 count=1 2>/dev/null
                        nslu2_swap "$tmp"
                        sercomm_header 131072
                        dd if="$kfile" of="$tmp" ibs=$ksize1 skip=1 2>/dev/null
                        nslu2_swap "$tmp"
                        rm -f "$tmp"
                ) > "$kmtd" || error "failed."
                echo "done." >&2
                printf "Flashing initramfs: " >&2
                dd if="$ifile" of="$tmp" ibs=$(($imtdsize - 16)) conv=sync 
2>/dev/null
                (
                        sercomm_header $ifilesize
                        nslu2_swap "$tmp"
                        rm -f "$tmp"
                ) > "$imtd" || error "failed."
                echo "done." >&2
        ;;
        "Marvell OpenRD Base Board" | "Marvell OpenRD Client Board" | "Marvell 
SheevaPlug Reference Board" | "Marvell eSATA SheevaPlug Reference Board")
                check_subarch "kirkwood"
                tmp="$(tempfile)"
                printf "Generating kernel u-boot image... " >&2
                mkimage -A arm -O linux -T kernel -C none -a 0x00008000 \
                        -e 0x00008000 -n "$desc" -d "$kfile" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                if [ -e /boot/uImage ]; then
                        echo "Creating backup of /boot/uImage." >&2
                        mv /boot/uImage /boot/uImage.bak
                fi
                echo "Creating new /boot/uImage." >&2
                mv "$tmp.uboot" /boot/uImage
                printf "Generating initrd u-boot image... " >&2
                mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 \
                        -e 0x0 -n "$idesc" -d "$ifile" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                if [ -e /boot/uInitrd ]; then
                        echo "Creating backup of /boot/uInitrd." >&2
                        mv /boot/uInitrd /boot/uInitrd.bak
                fi
                echo "Creating new /boot/uInitrd." >&2
                mv "$tmp.uboot" /boot/uInitrd
                rm -f "$tmp"
        ;;
        "Marvell DB-MV88F6781-BP Development Board")
                check_subarch "dove"
                dove_flash_kernel
        ;;
        "IGEP v2 board" | "OMAP3 Beagle Board" | "OMAP4430 4430SDP board" | 
"OMAP4430 Panda Board")
                case "$machine" in
                        "IGEP v2 board"|"OMAP3 Beagle Board")
                                check_subarch "omap"
                        ;;
                        "OMAP4430 4430SDP board" | "OMAP4430 Panda Board")
                                check_subarch "omap4"
                        ;;
                esac
                omap_flash_kernel
        ;;
        "QNAP TS-109/TS-209" | "QNAP TS-119/TS-219" | "QNAP TS-409" | "QNAP 
TS-41x")
                case "$machine" in
                        "QNAP TS-109/TS-209" | "QNAP TS-409")
                                check_subarch "orion5x"
                        ;;
                        "QNAP TS-119/TS-219" | "QNAP TS-41x")
                                check_subarch "kirkwood"
                        ;;
                esac
                check_mtd
                imtd=$(mtdblock "RootFS1")
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition 'RootFS1'"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "RootFS1")
                check_size "RootFS1" $ifilesize $imtdsize
                kmtd=$(mtdblock Kernel)
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'Kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "Kernel")
                check_size "Kernel" $(($kfilesize + 8 + 64)) $kmtdsize
                printf "Generating kernel u-boot image... " >&2
                tmp="$(tempfile)"
                case "$machine" in
                        "QNAP TS-109/TS-209")
                                # Set machine id 1565 (0x061d)
                                devio > "$tmp" 'wl 0xe3a01c06,4' 'wl 
0xe381101d,4'
                        ;;
                        "QNAP TS-119/TS-219")
                                # Set machine id 2139 (0x085b)
                                devio > "$tmp" 'wl 0xe3a01c08,4' 'wl 
0xe381105b,4'
                        ;;
                        "QNAP TS-409")
                                # Set machine id 1601 (0x0641)
                                devio > "$tmp" 'wl 0xe3a01c06,4' 'wl 
0xe3811041,4'
                        ;;
                        "QNAP TS-41x")
                                # Set machine id 2502 (0x09c6)
                                devio > "$tmp" 'wl 0xe3a01c09,4' 'wl 
0xe38110c6,4'
                        ;;
                esac
                cat "$kfile" >> "$tmp"
                mkimage -A arm -O linux -T kernel -C none -a 0x00008000 \
                        -e 0x00008000 -n "$desc" -d "$tmp" "$tmp.uboot" >&2 
1>/dev/null
                echo "done." >&2
                printf "Flashing kernel... " >&2
                cat "$tmp.uboot" > "$kmtd" || error "failed."
                echo "done." >&2
                rm -f "$tmp.uboot" "$tmp"
                printf "Flashing initramfs... " >&2
                pad=$(expr $imtdsize - $ifilesize)
                (
                        cat "$ifile"
                        dd if=/dev/zero bs=$pad count=1 2>/dev/null
                ) > "$imtd" || error "failed."
                echo "done." >&2
        ;;
        "Thecus N2100")
                check_subarch "iop32x"
                check_mtd
                imtd=$(mtdblock ramdisk)
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition 'ramdisk'"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "ramdisk")
                check_size "ramdisk" $ifilesize $imtdsize
                kmtd=$(mtdblock kernel)
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'kernel'"
                fi
                check_dev_mtdblock "$kmtd"
                kmtdsize=$(mtdsize "kernel")
                check_size "kernel" $(($kfilesize + 8)) $kmtdsize
                printf "Flashing kernel... " >&2
                (
                        # Set machine id 1101 (0x044d)
                        devio 'wl 0xe3a01c04,4' 'wl 0xe381104d,4'
                        cat "$kfile"
                ) > "$kmtd" || error "failed."
                echo "done." >&2
                printf "Flashing initramfs... " >&2
                pad=$(expr $imtdsize - $ifilesize)
                (
                        cat "$ifile"
                        dd if=/dev/zero bs=$pad count=1 2>/dev/null
                ) > "$imtd" || error "failed."
                echo "done." >&2
        ;;
        "Lanner EM7210")
                # Really: Intel SS4000-e and compatibles
                check_subarch "iop32x"
                check_mtd
                imtd=$(mtdblock "ramdisk.gz")
                if [ -z "$imtd" ]; then
                        error "Cannot find mtd partition 'ramdisk.gz'"
                fi
                check_dev_mtdblock "$imtd"
                imtdsize=$(mtdsize "ramdisk.gz")
                check_size "ramdisk" $ifilesize $imtdsize
                kmtd=$(mtdblock zImage)
                if [ -z "$kmtd" ]; then
                        error "Cannot find mtd partition 'zImage'"
                fi
                kmtdsize=$(mtdsize "zImage")
                check_size "zImage" $(($kfilesize + 8)) $kmtdsize
                printf "Flashing kernel..." >&2
                (
                        # Set machine ID 1212 (0x04bc)
                        devio 'wl 0xe3a01c04,4' 'wl 0xe38110bc,4'
                        cat "$kfile"
                ) > "$kmtd" || error "failed."
                echo "done." >&2
                printf "Flashing initramfs... " >&2
                pad=$(expr $imtdsize - $ifilesize)
                (
                        cat "$ifile"
                        dd if=/dev/zero bs=$pad count=1 2>/dev/null
                ) > "$imtd" || error "failed."
                echo "done." >&2
        ;;
        "Genesi Efika MX (Smartbook)" | "Genesi Efika MX (Smarttop)")
                #check_subarch $running_subarch
                efikamx_flash_kernel
        ;;
        *)
                case "$running_subarch" in
                        "dove" | "omap" | "omap4")
                                echo "warning: using generic subarchitecture 
fallback for $running_subarch"
                                check_subarch $running_subarch

                                case "$subarch" in
                                        "dove")
                                                dove_flash_kernel
                                        ;;
                                        "omap" | "omap4")
                                                omap_flash_kernel
                                        ;;
                                esac
                ;;
                *)
                        error "Unsupported platform."
                ;;
                esac
        ;;
esac


--- End Message ---
--- Begin Message ---
Source: flash-kernel
Source-Version: 3.0~rc.1

We believe that the bug you reported is fixed in the latest version of
flash-kernel, which is due to be installed in the Debian FTP archive:

flash-kernel-installer_3.0~rc.1_armel.udeb
  to main/f/flash-kernel/flash-kernel-installer_3.0~rc.1_armel.udeb
flash-kernel_3.0~rc.1.dsc
  to main/f/flash-kernel/flash-kernel_3.0~rc.1.dsc
flash-kernel_3.0~rc.1.tar.gz
  to main/f/flash-kernel/flash-kernel_3.0~rc.1.tar.gz
flash-kernel_3.0~rc.1_armel.deb
  to main/f/flash-kernel/flash-kernel_3.0~rc.1_armel.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 612...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Hector Oron <zu...@debian.org> (supplier of updated flash-kernel package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 24 Aug 2011 12:47:34 +0100
Source: flash-kernel
Binary: flash-kernel flash-kernel-installer
Architecture: source armel
Version: 3.0~rc.1
Distribution: experimental
Urgency: low
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Hector Oron <zu...@debian.org>
Description: 
 flash-kernel - utility to make certain embedded devices bootable
 flash-kernel-installer - Make the system bootable (udeb)
Closes: 594878 612376 620888 626434 631396
Changes: 
 flash-kernel (3.0~rc.1) experimental; urgency=low
 .
   [ Loïc Minier ]
   * Bump Standards-Version to 3.9.2.
   * Add a testsuite and run it during build; change code a bit to be more
     easily tested.
   * Start reworking flash-kernel to be more data-driven.
     - Keep some machine data in a small embedded RFC 2822 style database; such
       as allowed kernel flavors, machine id to set before booting Linux,
       MTD names, U-Boot load addresses, /boot filenames etc.
     - Simplify code in the main "case" statement as much as possible by using
       functions for common code and splitting error handling, initialization,
       and sanity checks out.
     - Various syntax tweaks.
   * Only allow iop32x kernels on GLAN Tank.
   * Fix Lintian warnings.
     - Quote minus signs in man page.
     - Depend on ${misc:Depends}.
   * Add myself to Uploaders at tbm's proposal.
   * Add myself to flash-kernel's Copyright and to debian/copyright; thanks
     Martin Michlmayr.
 .
   [ Hector Oron ]
   * Add armhf to architecture list (Closes: #620888)
     - add mx5 as armhf subarchitecture
   * Add myself to Uploaders field.
   * Add preliminary mv78xx0 support. (Closes: #594878)
   * Add build dependency on devio, needed to run test-suite.
   * Upgrade major version to 3.0~rc.1
   * Add support for Genesi Efika MX nettops and smarttops. (Closes: #612376)
   * Add preliminary U-Boot script support (Closes: #626434)
 .
   [ Julian Andres Klode ]
   * Support for Toshiba AC100 (Closes: #631396)
 .
   [ Martin Michlmayr ]
   * Remove myself from the Uploaders field.
 .
   [ Updated translations ]
   * Bulgarian (bg.po) by Damyan Ivanov
   * German (de.po) by Holger Wansing
   * Esperanto (eo.po) by Felipe Castro
   * Basque (eu.po)
   * Hebrew (he.po) by Lior Kaplan
   * Italian (it.po) by Milo Casagrande
   * Korean (ko.po) by Changwoo Ryu
   * Macedonian (mk.po) by Arangel Angov
   * Romanian (ro.po) by Eddy Petrișor
   * Sinhala (si.po) by Danishka Navin
   * Slovak (sk.po) by Ivan Masár
   * Swedish (sv.po) by Daniel Nylander
   * Uyghur (ug.po) by Sahran
   * Simplified Chinese (zh_CN.po) by YunQiang Su
Checksums-Sha1: 
 80f72d07827f3e3fb0311e6400415b70d79e4cbd 1669 flash-kernel_3.0~rc.1.dsc
 98db3b825cbdcf449e82a42173c32f45b6d5a657 48850 flash-kernel_3.0~rc.1.tar.gz
 6561090adec3efa743950bba9557c28fc736fd57 19564 flash-kernel_3.0~rc.1_armel.deb
 db5018e174417a7c0b92ecfbc2398e0e6a98b510 12400 
flash-kernel-installer_3.0~rc.1_armel.udeb
Checksums-Sha256: 
 0b3de1beb920ebdc80285f2312b0a195d042fce1b6ff83209afdb487d62af265 1669 
flash-kernel_3.0~rc.1.dsc
 422619dc4ade7c490f3139a8386ed72e224a16983882a0baa35aca0252e65485 48850 
flash-kernel_3.0~rc.1.tar.gz
 cce2713506fe636b5ca1ee930832cc7253da4c63ef93e2ef7e19257ec248a9e2 19564 
flash-kernel_3.0~rc.1_armel.deb
 d703cb113b906edb16a7e8a882e1f82406d8fb734bd1720a1d911ddfc186c711 12400 
flash-kernel-installer_3.0~rc.1_armel.udeb
Files: 
 ad0f758094ba7f81bfbb9c65f4786c45 1669 utils optional flash-kernel_3.0~rc.1.dsc
 8af5f8bef0803d1f56b947218338cd0b 48850 utils optional 
flash-kernel_3.0~rc.1.tar.gz
 8269fbc9175d560b3e93a9a0b2ce76ef 19564 utils optional 
flash-kernel_3.0~rc.1_armel.deb
 2847a63ac08f876984297eaabb1734b7 12400 debian-installer standard 
flash-kernel-installer_3.0~rc.1_armel.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBCAAGBQJOVOxjAAoJEK8ig6p24qx7ujEP/0B4HCtmv+Gs275pirssHdDB
yG2lB6FgMqCMlIQAuW7i4fyp7NpVpCNRVSovHDJk4ESOdSMXzLWnKRZw42DAfAQc
BQQTFKprJYk40LhgZt6Kk0d6hkq2op3H6YQGGaZQCgWgY2mGio2fptEImEraPn1+
Lz0XCg7Sl9fmoh9jswtsxYk344xHF+j1MVwqWRhytb3Ho1ouEjILgGOcWD8tyN97
kQlkCzdd0z75D78aIltv3zfC04hmTamX5CGXzSj8Y5wTGhOTYf+0k3ysw85Ub9UP
gslEOPy7zdGIgNQ9N29JT+8jvhBI1X1ig7Kwl4QJuzi0RaWYhPjiHv//gl849tVu
X0UHjBQ9+fz4bwDR/aNi3dp/MRZNH94f0Cec0l8No0irQDAADuW3WELijwrbj99H
Af4EmKeEmkDqkkX/wDLNWBxB6gggjEdVUhV5NZHZlMRgkiZC3VPnb+q25LkA1AKm
E2rzF+s7da3lTcnUIekbRMJRVMYVE4ZlRdX7kwYKveo3/lydl+99nwEFZJ+551Ph
W7Cm9wzpCGomciP3xH7pP4+JBg/h3QBzI9a765vveuHm3fZXx/93jzSPfUZq9+5L
+SG3S6QbpbtEFj+HGbpUb1FBZ5AGDyUSCXKnejdxphmBHbx29QBPSQUBZExvRB3t
NhhU3FKF6uU5wMjK0yGc
=D/ZR
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to