[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#695241: [Fwd: Re: linux: Add basic arm64 support]



-------- Forwarded Message --------
From: Wookey <wookey@wookware.org>
To: Ben Hutchings <ben@decadent.org.uk>
Subject: Re: linux: Add basic arm64 support
Date: Fri, 11 Oct 2013 04:35:32 +0100
Message-id: <20131011033532.GP32557@stoneboat.aleph1.co.uk>

+++ Ben Hutchings [2013-02-07 03:38 +0000]:
> Control: tag -1 moreinfo

Sorry, I missed this message at the time.

> On Thu, 2012-12-06 at 02:02 +0000, Wookey wrote:
> > Package: linux
> > Version: 3.6.4-1~experimental.1
> > Severity: wishlist
> > Tags: upstream experimental patch
> > 
> > This patch adds basic arm64 support, good enough for generating
> > linux-libc-dev packages at least.
> 
> It is possible to define an architecture for which only linux-libc-dev
> is built, as is done for x32, but this doesn't seem appropriate.
> 
> > The production of actual kernels has
> > not yet been tested, but the packaging changes are here and the
> > upstream arm64 kernel patch can easily be updated.
> 
> People have working kernels so why not provide a working config file?
> This package can be fully cross-built, not just for linux-libc-dev.

OK. After some asking around for best default configs I have
generated one.

> > There is also a patch to make it build taken from this mail:
> > https://lkml.org/lkml/2012/7/19/102 
> > This is not needed in 3.7
> 
> Are any patches still required for 3.7 (or 3.8, as it will be out soon)?

Nope. And definitely not 3.11.


> > The build-dep on gcc-4.7 is arguable, but the issue is that there is
> > no gcc-4.6 for arm64, so that can never be satisfied without a major
> > backport.
> 
> I see no problem at all with this, but you mustn't define this by
> hand-editing debian/control!  Add a [base]compiler field to the
> debian/config/arm64/defines file. 

This has become moot too in the meantime.

Updated patch attached.

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/

diff -urN origs/linux-3.10.11/debian/changelog build/linux-3.10.11/debian/changelog
--- origs/linux-3.10.11/debian/changelog	2013-09-10 14:13:17.000000000 +0100
+++ build/linux-3.10.11/debian/changelog	2013-10-11 04:05:57.380980848 +0100
@@ -1,3 +1,9 @@
+linux (3.10.11-1~arm64) UNRELEASED; urgency=low
+
+  * Add arm64 packaging
+
+ --  <wookey@debian.org>  Sat, 05 Oct 2013 02:24:25 +0100
+
 linux (3.10.11-1) unstable; urgency=low
 
   * New upstream stable update:
diff -urN origs/linux-3.10.11/debian/config/arm64/config build/linux-3.10.11/debian/config/arm64/config
--- origs/linux-3.10.11/debian/config/arm64/config	1970-01-01 01:00:00.000000000 +0100
+++ build/linux-3.10.11/debian/config/arm64/config	2013-10-09 16:56:22.585330811 +0100
@@ -0,0 +1,35 @@
+##
+## File arch/arm64/Kconfig
+##
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_CMDLINE="console=ttyAMA0"
+
+##
+## File drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_RAM=y
+
+##
+## File mm/Kconfig
+##
+CONFIG_HUGETLB_PAGE=y
+
+##
+## File drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## File drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR_VEXPRESS=y
+
+##
+## File block/partitions/Kconfig
+##
+CONFIG_EFI_PARTITION=y
+
+##
+## File fs/nfs/Kconfig
+##
+CONFIG_ROOT_NFS=y
diff -urN origs/linux-3.10.11/debian/config/arm64/config.vexpress build/linux-3.10.11/debian/config/arm64/config.vexpress
--- origs/linux-3.10.11/debian/config/arm64/config.vexpress	1970-01-01 01:00:00.000000000 +0100
+++ build/linux-3.10.11/debian/config/arm64/config.vexpress	2013-10-08 03:12:22.195734618 +0100
@@ -0,0 +1,3 @@
+#
+# All arm64 flavours are intended to use the same kernel config.
+# So nothing in here yet
\ No newline at end of file
diff -urN origs/linux-3.10.11/debian/config/arm64/defines build/linux-3.10.11/debian/config/arm64/defines
--- origs/linux-3.10.11/debian/config/arm64/defines	1970-01-01 01:00:00.000000000 +0100
+++ build/linux-3.10.11/debian/config/arm64/defines	2013-10-05 02:14:21.433172948 +0100
@@ -0,0 +1,15 @@
+[base]
+flavours:
+ vexpress
+kernel-arch: arm64
+
+[image]
+configs:
+ arm64/config
+
+[vexpress_build]
+image-file: arch/arm64/boot/zImage
+
+[vexpress_description]
+hardware: ARM Ltd. Versatile Express
+hardware-long: ARM Ltd. Versatile Express family of processors
diff -urN origs/linux-3.10.11/debian/config/defines build/linux-3.10.11/debian/config/defines
--- origs/linux-3.10.11/debian/config/defines	2013-09-07 22:48:51.000000000 +0100
+++ build/linux-3.10.11/debian/config/defines	2013-10-05 02:11:11.144228257 +0100
@@ -7,6 +7,7 @@
  amd64
  armel
  armhf
+ arm64
  hppa
  i386
  ia64
diff -urN origs/linux-3.10.11/debian/config.defines.dump build/linux-3.10.11/debian/config.defines.dump
\ No newline at end of file
diff -urN origs/linux-3.10.11/debian/control build/linux-3.10.11/debian/control
--- origs/linux-3.10.11/debian/control	2013-09-10 14:13:31.000000000 +0100
+++ build/linux-3.10.11/debian/control	2013-10-11 04:02:48.580045698 +0100
@@ -4,7 +4,7 @@
 Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
 Uploaders: Bastian Blank <waldi@debian.org>, Frederik Schüler <fs@debian.org>, maximilian attems <maks@debian.org>, Ben Hutchings <ben@decadent.org.uk>
 Standards-Version: 3.9.4
-Build-Depends: debhelper (>> 7), cpio, kmod | module-init-tools, python (>= 2.7), lzma [armel], kernel-wedge (>= 2.84), quilt, patchutils, bc, gcc-4.7 [alpha amd64 armel armhf i386 ia64 mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64], gcc-4.4 [hppa], binutils-hppa64 [hppa], gcc-4.4-hppa64 [hppa], gcc-4.8 [m68k]
+Build-Depends: debhelper (>> 7), cpio, kmod | module-init-tools, python (>= 2.7), lzma [armel], kernel-wedge (>= 2.84), quilt, patchutils, bc, gcc-4.7 [alpha amd64 armel armhf arm64 i386 ia64 mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64], gcc-4.4 [hppa], binutils-hppa64 [hppa], gcc-4.4-hppa64 [hppa], gcc-4.8 [m68k]
 Build-Depends-Indep: xz-utils, xmlto
 Vcs-Svn: svn://anonscm.debian.org/svn/kernel/dists/trunk/linux/
 Vcs-Browser: http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/
@@ -67,7 +67,7 @@
 Multi-Arch: foreign
 
 Package: linux-libc-dev
-Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64 x32
+Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64 x32
 Section: devel
 Provides: linux-kernel-headers
 Depends: ${misc:Depends}
@@ -80,7 +80,7 @@
 Multi-Arch: same
 
 Package: linux-headers-3.10-3-all
-Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
+Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
 Depends: linux-headers-3.10-3-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends}
 Description: All header files for Linux 3.10 (meta-package)
  This package depends against all architecture-specific kernel header files
@@ -96,7 +96,7 @@
  kernel modules.
 
 Package: linux-headers-3.10-3-common
-Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
+Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
 Depends: ${misc:Depends}
 Description: Common header files for Linux 3.10-3
  This package provides the architecture-specific common kernel header files
@@ -3725,10 +3725,10 @@
  that load into the kernel provided by the linux-image-3.10-3-omap package.
 
 Package: linux-image-3.10-3-vexpress
-Architecture: armhf
+Architecture: arm64 armhf
 Provides: linux-image, linux-modules-3.10-3-vexpress
 Pre-Depends: debconf | debconf-2.0
-Depends: kmod | module-init-tools, linux-base (>= 3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [armhf] | linux-initramfs-tool [armhf]
+Depends: kmod | module-init-tools, linux-base (>= 3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [armhf arm64] | linux-initramfs-tool [armhf arm64]
 Recommends: firmware-linux-free (>= 3~)
 Suggests: linux-doc-3.10, debian-kernel-handbook, fdutils [armhf]
 Breaks: at (<< 3.1.12-1+squeeze1), initramfs-tools (<< 0.110~)
@@ -3737,7 +3737,7 @@
  family of processors.
 
 Package: linux-headers-3.10-3-vexpress
-Architecture: armhf
+Architecture: arm64 armhf
 Provides: linux-headers
 Depends: linux-headers-3.10-3-common (= ${binary:Version}), linux-kbuild-3.10, ${misc:Depends}, gcc-4.7
 Description: Header files for Linux 3.10-3-vexpress
@@ -3748,6 +3748,14 @@
  modules that load into the kernel provided by the
  linux-image-3.10-3-vexpress package.
 
+Package: linux-headers-3.10-3-all-arm64
+Architecture: arm64
+Depends: ${misc:Depends}, linux-headers-3.10-3-vexpress (= ${binary:Version})
+Description: All header files for Linux 3.10 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 3.10, generally used for building out-of-tree
+ kernel modules.
+
 Package: linux-headers-3.10-3-all-hppa
 Architecture: hppa
 Depends: ${misc:Depends}, linux-headers-3.10-3-parisc (= ${binary:Version}), linux-headers-3.10-3-parisc-smp (= ${binary:Version}), linux-headers-3.10-3-parisc64 (= ${binary:Version}), linux-headers-3.10-3-parisc64-smp (= ${binary:Version})

Reply to: