On Thu, Feb 10, 2011 at 08:11:36AM +0000, Martin Michlmayr wrote: > Yeah, you'd think that Clint would know how to submit a proper patch.
My apologies.
--- flash-kernel.sid 2011-02-12 17:41:30.532519059 -0500 +++ flash-kernel.patched 2011-02-12 17:54:16.589578778 -0500 @@ -76,6 +76,69 @@ fi } +efikamx_flash_kernel() { + root=$(readlink -f /dev/root) + echo "Root filesystem is $root" >&2 + + loadaddr=0x90008000 + tmpdir="$(mktemp -d)" + + printf "Generating kernel u-boot image... " >&2 + cat $kfile >> $tmpdir/kernel + mkimage -A arm -O linux -T kernel -C none -n "$desc" -a $loadaddr \ + -e $loadaddr -d $tmpdir/kernel $tmpdir/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 $tmpdir/uboot /boot/uImage-$kvers + rm -f $tmpdir/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" "$tmpdir/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 "$tmpdir/uboot" /boot/uInitrd-$kvers + rm -f "$tmpdir/uboot" + printf "Generating new u-boot boot script..." >&2 + # The UUID will come from the flash-kernel config file + + printf "Generating boot.scr... " >&2 + cat >$tmpdir/boot.script <<EOF +setenv ramdisk uInitrd-$kvers; +setenv kernel uImage-$kvers; +setenv bootargs console=tty1 console=\${console} 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 "Debian U-Boot boot script" -d "$tmpdir/boot.script" \ + "$tmpdir/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 "$tmpdir/boot.scr" /boot/boot.scr + rm -rf $tmpdir* +} + if [ "x$1" = "x--machine" ]; then machine=$2 shift 2 @@ -105,6 +168,8 @@ "Seagate FreeAgent DockStar") exit 0 ;; "Thecus N2100") exit 0 ;; "Lanner EM7210") exit 0 ;; + "Genesi Efika MX (Smartbook)") exit 0 ;; + "Genesi Efika MX (Smarttop)") exit 0 ;; *) exit 1 ;; esac fi @@ -517,6 +582,10 @@ ) > "$imtd" || error "failed." echo "done." >&2 ;; + "Genesi Efika MX (Smartbook)" | "Genesi Efika MX (Smarttop)") + #check_subarch $running_subarch + efikamx_flash_kernel + ;; *) error "Unsupported platform." ;;