From bf8b65fd17abe7583a071e4391083fee898ca013 Mon Sep 17 00:00:00 2001
From: Hector Oron <hector.oron@gmail.com>
Date: Sun, 21 Aug 2011 17:22:03 +0100
Subject: [PATCH] [armhf] Add preliminary armhf architecture support

* [armhf] Add preliminary armhf architecture support
  - Enable mx5 subarchitecture
  - Enable Genesi Efika MX nettop and smartbook
---
 build/boot/arm/bootscr.mx5                        |   11 ++++++
 build/config/armhf.cfg                            |   17 +++++++++
 build/config/armhf/mx5.cfg                        |    4 ++
 build/config/armhf/mx5/netboot-gtk.cfg            |   38 +++++++++++++++++++++
 build/config/armhf/mx5/netboot.cfg                |   32 +++++++++++++++++
 build/config/armhf/mx5/network-console.cfg        |   30 ++++++++++++++++
 build/pkg-lists/netboot/armhf.cfg                 |   15 ++++++++
 build/pkg-lists/netboot/armhf/mx5.cfg             |    1 +
 build/pkg-lists/netboot/gtk/armhf.cfg             |    9 +++++
 build/pkg-lists/netboot/network-console/armhf.cfg |    3 ++
 debian/changelog                                  |    5 ++-
 debian/control                                    |    8 ++--
 doc/devel/kerntabl                                |    1 +
 13 files changed, 169 insertions(+), 5 deletions(-)
 create mode 100644 build/boot/arm/bootscr.mx5
 create mode 100644 build/config/armhf.cfg
 create mode 100644 build/config/armhf/mx5.cfg
 create mode 100644 build/config/armhf/mx5/netboot-gtk.cfg
 create mode 100644 build/config/armhf/mx5/netboot.cfg
 create mode 100644 build/config/armhf/mx5/network-console.cfg
 create mode 100644 build/pkg-lists/netboot/armhf.cfg
 create mode 100644 build/pkg-lists/netboot/armhf/mx5.cfg
 create mode 100644 build/pkg-lists/netboot/gtk/armhf.cfg
 create mode 100644 build/pkg-lists/netboot/network-console/armhf.cfg

diff --git a/build/boot/arm/bootscr.mx5 b/build/boot/arm/bootscr.mx5
new file mode 100644
index 0000000..e414ec1
--- /dev/null
+++ b/build/boot/arm/bootscr.mx5
@@ -0,0 +1,11 @@
+setenv kernel uImage;
+setenv bootargs initrd=0x91000000 console=ttymxc0,115200 root=/dev/sda2 rootwait rw video=imx-ipuv3-fb:1024x600M-16@60 quiet lpj=3997696 earlyprintk=serial;
+${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/build/config/armhf.cfg b/build/config/armhf.cfg
new file mode 100644
index 0000000..7d32976
--- /dev/null
+++ b/build/config/armhf.cfg
@@ -0,0 +1,17 @@
+SUBARCH_SUPPORTED = mx5
+
+KERNELMAJOR = 2.6
+KERNELVERSION = 3.0.0-2+armhf.1
+KERNEL_FLAVOUR = di
+KERNELIMAGEVERSION = $(KERNELVERSION)
+KERNELNAME = $(foreach ver,$(KERNELVERSION),vmlinuz-$(ver))
+
+VERSIONED_SYSTEM_MAP = t
+
+# The codename of the Debian release that should be installed by default.
+DEBIAN_RELEASE = unstable
+
+# armhf is currently hosted on debian-ports.org
+KEYRING = /usr/share/keyrings/debian-ports-archive-keyring.gpg
+arch_boot_screens:
+arch_tree:
diff --git a/build/config/armhf/mx5.cfg b/build/config/armhf/mx5.cfg
new file mode 100644
index 0000000..8871eda
--- /dev/null
+++ b/build/config/armhf/mx5.cfg
@@ -0,0 +1,4 @@
+MEDIUM_SUPPORTED = netboot network-console
+
+# The version of the kernel to use.
+KERNELVERSION := $(KERNELVERSION)-mx5
diff --git a/build/config/armhf/mx5/netboot-gtk.cfg b/build/config/armhf/mx5/netboot-gtk.cfg
new file mode 100644
index 0000000..169a973
--- /dev/null
+++ b/build/config/armhf/mx5/netboot-gtk.cfg
@@ -0,0 +1,38 @@
+MEDIA_TYPE = netboot image
+
+TARGET = $(TEMP_INITRD) $(TEMP_KERNEL) efikamx efikasb
+
+TYPE = netboot/gtk
+EXTRANAME = netboot/gtk/
+
+KEEP_GI_LANGS = 1
+
+# All images that include cdebconf should include symbols needed by these
+# plugins.
+
+EXTRAUDEBS += cdebconf-gtk-entropy
+
+# Genesi EfikaMX (nettop)
+efikamx:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx
+	echo "EfikaMX" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaMX Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage "Linux kernel for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd "initrd for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr "U-Boot Script"
+
+# Genesi EfikaSB (smartbook)
+efikasb:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb
+	echo "EfikaSB" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaSB Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript $(SOME_DEST)/$(EXTRANAME)/genesisb/efika/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage "Linux kernel for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd "initrd for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/boot.scr "U-Boot Script"
+
diff --git a/build/config/armhf/mx5/netboot.cfg b/build/config/armhf/mx5/netboot.cfg
new file mode 100644
index 0000000..97b1022
--- /dev/null
+++ b/build/config/armhf/mx5/netboot.cfg
@@ -0,0 +1,32 @@
+MEDIA_TYPE = netboot image
+
+TARGET = $(TEMP_INITRD) $(TEMP_KERNEL) efikamx efikasb
+EXTRANAME = $(MEDIUM)
+
+MANIFEST-INITRD = "netboot initrd"
+MANIFEST-KERNEL = "kernel image to netboot"
+
+# Genesi EfikaMX (nettop)
+efikamx:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx
+	echo "EfikaMX" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaMX Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage "Linux kernel for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd "initrd for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr "U-Boot Script"
+
+# Genesi EfikaSB (smartbook)
+efikasb:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb
+	echo "EfikaSB" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaSB Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage "Linux kernel for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd "initrd for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/boot.scr "U-Boot Script"
+
diff --git a/build/config/armhf/mx5/network-console.cfg b/build/config/armhf/mx5/network-console.cfg
new file mode 100644
index 0000000..8af0a02
--- /dev/null
+++ b/build/config/armhf/mx5/network-console.cfg
@@ -0,0 +1,30 @@
+MEDIA_TYPE = netboot image (SSH)
+
+TARGET = $(TEMP_INITRD) $(TEMP_KERNEL) efikamx efikasb
+EXTRANAME = $(MEDIUM)
+TYPE = netboot/network-console
+
+# Genesi EfikaMX (nettop)
+efikamx:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx
+	echo "EfikaMX" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaMX Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/bootscript $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uImage "Linux kernel for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/uInitrd "initrd for EfikaMX"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikamx/boot.scr "U-Boot Script"
+
+# Genesi EfikaSB (smartbook)
+efikasb:
+	mkdir -p $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb
+	echo "EfikaSB" > $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/model
+	install -m 744 boot/arm/bootscr.mx5 $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript
+	mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n "Debian kernel" -d $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage
+	mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd
+	mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaSB Boot Script" -d $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/bootscript $(SOME_DEST)/$(EXTRANAME)/genesisb/efika/boot.scr
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uImage "Linux kernel for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/uInitrd "initrd for EfikaSB"
+	update-manifest $(SOME_DEST)/$(EXTRANAME)/genesi/efikasb/boot.scr "U-Boot Script"
+
diff --git a/build/pkg-lists/netboot/armhf.cfg b/build/pkg-lists/netboot/armhf.cfg
new file mode 100644
index 0000000..4830a4c
--- /dev/null
+++ b/build/pkg-lists/netboot/armhf.cfg
@@ -0,0 +1,15 @@
+console-keymaps-at
+
+kbd-chooser
+bogl-bterm-udeb
+hw-detect
+ethdetect
+netcfg
+
+nic-modules-${kernel:Version}
+
+fb-modules-${kernel:Version} ?
+input-modules-${kernel:Version} ?
+
+#for all targets
+
diff --git a/build/pkg-lists/netboot/armhf/mx5.cfg b/build/pkg-lists/netboot/armhf/mx5.cfg
new file mode 100644
index 0000000..b40d119
--- /dev/null
+++ b/build/pkg-lists/netboot/armhf/mx5.cfg
@@ -0,0 +1 @@
+mmc-modules-${kernel:Version}
diff --git a/build/pkg-lists/netboot/gtk/armhf.cfg b/build/pkg-lists/netboot/gtk/armhf.cfg
new file mode 100644
index 0000000..f86e1fc
--- /dev/null
+++ b/build/pkg-lists/netboot/gtk/armhf.cfg
@@ -0,0 +1,9 @@
+mouse-modules-${kernel:Version}
+# The following modules are listed netboot/armhf.cfg already but
+# only as optional modules.  List them again here since they are
+# necessary for the gtk flavour to work.
+fb-modules-${kernel:Version}
+input-modules-${kernel:Version}
+
+xserver-xorg-input-evdev-udeb
+xserver-xorg-video-fbdev-udeb
diff --git a/build/pkg-lists/netboot/network-console/armhf.cfg b/build/pkg-lists/netboot/network-console/armhf.cfg
new file mode 100644
index 0000000..a7ea33b
--- /dev/null
+++ b/build/pkg-lists/netboot/network-console/armhf.cfg
@@ -0,0 +1,3 @@
+# Exclude framebuffer related modules that are listed in netboot/armhf.cfg
+fb-modules-${kernel:Version} -
+input-modules-${kernel:Version} -
diff --git a/debian/changelog b/debian/changelog
index 1ebd2a4..47b74e1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -99,8 +99,11 @@ debian-installer (2011xxxx) UNRELEASED; urgency=low
   [ Hector Oron ]
   * [armel] Add support for Linkstation Mini.
     Thanks Benjamin Cama. (Closes: #637339)
+  * [armhf] Add preliminary armhf architecture support
+    - Enable mx5 subarchitecture
+    - Enable Genesi Efika MX nettop and smartbook
 
- -- Hector Oron <zumbi@debian.org>  Wed, 10 Aug 2011 17:30:26 +0100
+ -- Hector Oron <zumbi@debian.org>  Sun, 21 Aug 2011 17:19:07 +0100
 
 debian-installer (20110106) unstable; urgency=low
 
diff --git a/debian/control b/debian/control
index f8e9bbd..bd3da35 100644
--- a/debian/control
+++ b/debian/control
@@ -52,7 +52,7 @@ Build-Depends:
 #		calls in directfb. For now, this is done by setting EXTRAFILES.
 #
 # Filesystem tools:
-	cramfsprogs [powerpc ia64 mips mipsel armeb armel],
+	cramfsprogs [powerpc ia64 mips mipsel armeb armel armhf],
 #		For arches that use cramfs initrds.
 	genext2fs (>= 1.3-7.1),
 #		For creating ext2 filesystems without being root.
@@ -78,14 +78,14 @@ Build-Depends:
 #		m68k uses it for atari floppies
 	cpio,
 #		For creating initramfs images.
-	devio [armeb armel],
+	devio [armeb armel armhf],
 #		Tool to read and write from block devices, used to byteswap
 #		kernels and add nslu2 boot magic.
 	slugimage (>= 0.10+r58-6) [armeb armel],
 #		For building nslu2 firmware images.
 	dns323-firmware-tools [armel],
 #		For building firmware images for the D-Link DNS-323.
-	uboot-mkimage [armel],
+	uboot-mkimage [armel armhf],
 #		For creating u-boot images
 #
 # Boot loaders:
@@ -136,7 +136,7 @@ Build-Depends:
 #		mcopy is used to put files onto FAT filesystems w/o
 #		mounting them.
 #
-	module-init-tools [i386 armeb armel amd64 alpha hppa ia64 m68k mips mipsel powerpc s390 sh4 sparc sparc64],
+	module-init-tools [i386 armeb armel armhf amd64 alpha hppa ia64 m68k mips mipsel powerpc s390 sh4 sparc sparc64],
 #		depmod for 2.6 kernels on the arches that support 2.6.
 #
 	bf-utf-source [!s390 !s390x],
diff --git a/doc/devel/kerntabl b/doc/devel/kerntabl
index 240ecc4..64f4a1c 100644
--- a/doc/devel/kerntabl
+++ b/doc/devel/kerntabl
@@ -19,6 +19,7 @@ powerpc    3.0.0 (-1)       3.0.0-1
 s390       3.0.0 (-1)       3.0.0-1
 sparc      3.0.0 (-1)       3.0.0-1
 
+armhf      3.0.0 (-2)       3.0.0-2  # unoficial
 alpha      2.6.30 (-6)      2.6.30-1 # unoficial
 m68k       2.6.26 (-7)      2.6.26-1 # unoficial
 sh4        2.6.32 (-??)     2.6.32-5 # unoficial
-- 
1.7.5.4

