Package: flash-kernel
Version: 2.40
Severity: wishlist
Tags: patch

Hi,

  I have been working out support for u-boot scripts.
  I would like to know your comments or input about it as might might push it
  to the efika flash-kernel branch which someday I hope to merge into master.
  Right now, I am a bit stuck on how to set ROOTPARTITION on the bootscript,
  at the moment I have it hardcoded, but hopefully we can find a way around it.

>From 93003a5b3affc1a5f3b3abac98d22d077a06f388 Mon Sep 17 00:00:00 2001
From: Hector Oron <zu...@debian.org>
Date: Wed, 11 May 2011 23:15:17 +0000
Subject: [PATCH] flash-kernel: add u-boot script support

  * flash-kernel: add u-boot script support
  * bootscript/bootscr.mx5: u-boot script for mx5 supported devices.
  * debian/control: add devio as build-dep and armhf support.
  * debian/flash-kernel.install: install u-boot scripts

Signed-off-by: Hector Oron <zu...@debian.org>
---
 bootscript/bootscr.mx5      |   12 ++++++++++++
 debian/control              |    8 ++++----
 debian/flash-kernel.install |    1 +
 flash-kernel                |   38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 55 insertions(+), 4 deletions(-)
 create mode 100644 bootscript/bootscr.mx5

diff --git a/bootscript/bootscr.mx5 b/bootscript/bootscr.mx5
new file mode 100644
index 0000000..8f992e3
--- /dev/null
+++ b/bootscript/bootscr.mx5
@@ -0,0 +1,12 @@
+setenv ramdisk uInitrd;
+setenv kernel uImage;
+setenv bootargs console=ttymxc0,115200 console=tty1 root=@ROOTPARTITION@ 
rootwait rw;
+${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;
diff --git a/debian/control b/debian/control
index 465a495..2e50500 100644
--- a/debian/control
+++ b/debian/control
@@ -5,13 +5,13 @@ Maintainer: Debian Install System Team 
<debian-b...@lists.debian.org>
 Uploaders: Loïc Minier <l...@debian.org>,
            Martin Michlmayr <t...@cyrius.com>,
            Wouter Verhelst <wou...@debian.org>
-Build-Depends: debhelper (>= 7.3.10)
+Build-Depends: debhelper (>= 7.3.10), devio
 Standards-Version: 3.9.1
 Vcs-Browser: http://git.debian.org/?p=d-i/flash-kernel.git
 Vcs-Git: git://git.debian.org/d-i/flash-kernel.git
 
 Package: flash-kernel
-Architecture: arm armel armeb
+Architecture: arm armel armeb armhf
 Depends: ${misc:Depends}, devio, initramfs-tools (>= 0.92f)
 Suggests: uboot-mkimage
 Description: utility to make certain embedded devices bootable
@@ -25,8 +25,8 @@ Package: flash-kernel-installer
 Section: debian-installer
 Priority: standard
 XC-Package-Type: udeb
-Architecture: arm armel armeb
-XB-Subarchitecture: iop32x ixp4xx kirkwood orion5x s3c24xx
+Architecture: arm armel armeb armhf
+XB-Subarchitecture: iop32x ixp4xx kirkwood orion5x s3c24xx mx5
 Provides: bootable-system
 Depends: cdebconf-udeb, installed-base
 XB-Installer-Menu-Item: 7300
diff --git a/debian/flash-kernel.install b/debian/flash-kernel.install
index a9f5a6c..e3e5258 100644
--- a/debian/flash-kernel.install
+++ b/debian/flash-kernel.install
@@ -1,2 +1,3 @@
 flash-kernel usr/sbin
 initramfs-tools usr/share
+bootscript usr/share/flash-kernel
diff --git a/flash-kernel b/flash-kernel
index 6b6161c..4d038f4 100755
--- a/flash-kernel
+++ b/flash-kernel
@@ -210,6 +210,18 @@ mkimage_initrd() {
        echo "done." >&2
 }
 
+mkimage_script() {
+       local baddr="$1"
+       local bdesc="$2"
+       local bdata="$3"
+       local bscript="$4"
+       
+       printf "Generating u-boot script image... " >&2
+       mkimage -A arm -O linux -a "$baddr" -e "$baddr" -T script -C none \
+               -n "$bdesc" -d "$bdata" "$bscript" >&2 1>/dev/null
+       echo "done." >&2
+}
+
 mkimage_multi() {
        local maddr="$1"
        local mdesc="$2"
@@ -297,15 +309,21 @@ Machine: Genesi EfikaMX nettop
 Kernel-Flavors: mx5
 U-Boot-Kernel-Address: 0x90008000
 U-Boot-Initrd-Address: 0x0
+U-Boot-Script-Address: 0x0
+U-Boot-Script-Name: bootscr.mx5
 Boot-Kernel-Path: /boot/uImage
 Boot-Initrd-Path: /boot/uInitrd
+Boot-Script-Path: /boot/boot.scr
 
 Machine: Genesi Efika Smartbook
 Kernel-Flavors: mx5
 U-Boot-Kernel-Address: 0x90008000
 U-Boot-Initrd-Address: 0x0
+U-Boot-Script-Address: 0x0
+U-Boot-Script-Name: bootscr.mx5
 Boot-Kernel-Path: /boot/uImage
 Boot-Initrd-Path: /boot/uInitrd
+Boot-Script-Path: /boot/boot.scr
 
 Machine: GLAN Tank
 Kernel-Flavors: iop32x
@@ -486,10 +504,13 @@ mtd_kernel="$(get_machine_field "$machine" "Mtd-Kernel")" 
|| :
 mtd_initrd="$(get_machine_field "$machine" "Mtd-Initrd")" || :
 ukaddr="$(get_machine_field "$machine" "U-Boot-Kernel-Address")" || :
 uiaddr="$(get_machine_field "$machine" "U-Boot-Initrd-Address")" || :
+ubaddr="$(get_machine_field "$machine" "U-Boot-Script-Address")" || :
 umaddr="$(get_machine_field "$machine" "U-Boot-Multi-Address")" || :
 boot_kernel_path="$(get_machine_field "$machine" "Boot-Kernel-Path")" || :
 boot_initrd_path="$(get_machine_field "$machine" "Boot-Initrd-Path")" || :
+boot_script_path="$(get_machine_field "$machine" "Boot-Script-Path")" || :
 boot_multi_path="$(get_machine_field "$machine" "Boot-Multi-Path")" || :
+ubfile="$(get_machine_field "$machine" "U-Boot-Script-Name")" || :
 
 if [ -n "$mtd_kernel" ] || [ -n "$mtd_initrd" ]; then
        if [ ! -e "$PROC_MTD" ]; then
@@ -594,6 +615,23 @@ case "$machine" in
                        flash_initrd "$initrd" "$imtd" $ipad
                        rm -f "$tmpdir/uInitrd"
                fi
+               if [ -n "$ubfile" ]; then
+                       ubdir="/boot/flash-kernel/"
+                       ubdesc="Debian U-Boot Boot Script"
+                       if [ ! -d "$ubdir" ]; then 
+                               mkdir -p "$ubdir"
+                               # XXX HACK: It needs better way of doing this
+                               rootfs="\/dev\/sda2"
+                               sed -e "s/@ROOTPARTITION@/$rootfs/" \
+                                       
/usr/share/flash-kernel/bootscript/"$ubfile" \
+                                       >"$ubdir"/"$ubfile"
+                       fi
+                       if [ -e "$boot_script_path" ]; then
+                               cp -a "$boot_script_path" 
"$boot_script_path".bak
+                       fi
+                       mkimage_script "$ubaddr" "$ubdesc" "$ubdir"/"$ubfile" \
+                               "$boot_script_path"
+               fi
        ;;
        "GLAN Tank")
                rm -f /boot/initrd /boot/zImage
-- 
1.7.4.4

Bes regards

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to