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

Bug#745349: Basic arm64 kernel



Another updated patch attached, rebased to current trunk kernel
(3.15-rc3). Adds serial (8250 and pl011) and virtio drivers.

With this I can install the resulting linux-image deb into an arm64
foreign chroot (using qemu-user-aarch64) and run "apt-get install -f",
at which point I have an initrd.img which I can boot using the ARM
Foundation model using the bootwrapper along the lines of what is
described in https://wiki.ubuntu.com/ARM64/FoundationModel and a rootfs
also created using debootstrap and qemu-user-aarch64.

(I say "can boot", it's been at it for quite a while now, but it's into
runlevel 2... I wonder how qemu-system-aarch64 is getting along...)

Ian.
>From c612eca334df312521e970a23909e92419d608e4 Mon Sep 17 00:00:00 2001
From: Ian Campbell <ian.campbell@citrix.com>
Date: Sun, 20 Apr 2014 20:04:16 +0100
Subject: [PATCH] [arm64] Initial kernel configuration and packaging.

---
 linux/debian/changelog                             |  3 ++
 linux/debian/config/arm64/config                   | 50 ++++++++++++++++++++++
 linux/debian/config/arm64/defines                  | 14 +++++-
 linux/debian/config/arm64/none/defines             |  3 ++
 linux/debian/installer/arm64/kernel-versions       |  2 +
 .../installer/arm64/modules/arm64/ata-modules      |  1 +
 .../installer/arm64/modules/arm64/btrfs-modules    |  1 +
 .../installer/arm64/modules/arm64/core-modules     |  1 +
 .../installer/arm64/modules/arm64/crc-modules      |  1 +
 .../arm64/modules/arm64/crypto-dm-modules          |  1 +
 .../installer/arm64/modules/arm64/crypto-modules   |  1 +
 .../installer/arm64/modules/arm64/event-modules    |  1 +
 .../installer/arm64/modules/arm64/ext4-modules     |  1 +
 .../installer/arm64/modules/arm64/fat-modules      |  1 +
 .../installer/arm64/modules/arm64/fuse-modules     |  1 +
 .../installer/arm64/modules/arm64/input-modules    |  1 +
 .../installer/arm64/modules/arm64/isofs-modules    |  1 +
 .../installer/arm64/modules/arm64/jfs-modules      |  1 +
 .../installer/arm64/modules/arm64/kernel-image     |  1 +
 .../installer/arm64/modules/arm64/loop-modules     |  1 +
 .../installer/arm64/modules/arm64/md-modules       |  1 +
 .../installer/arm64/modules/arm64/mmc-modules      |  1 +
 .../arm64/modules/arm64/multipath-modules          |  1 +
 .../installer/arm64/modules/arm64/nbd-modules      |  1 +
 .../installer/arm64/modules/arm64/nic-modules      |  1 +
 .../arm64/modules/arm64/nic-shared-modules         |  1 +
 .../installer/arm64/modules/arm64/nic-usb-modules  |  1 +
 .../arm64/modules/arm64/nic-wireless-modules       |  1 +
 .../installer/arm64/modules/arm64/ppp-modules      |  1 +
 .../installer/arm64/modules/arm64/sata-modules     |  1 +
 .../arm64/modules/arm64/scsi-core-modules          |  1 +
 .../installer/arm64/modules/arm64/scsi-modules     |  2 +
 .../installer/arm64/modules/arm64/squashfs-modules |  1 +
 .../installer/arm64/modules/arm64/udf-modules      |  1 +
 .../installer/arm64/modules/arm64/uinput-modules   |  1 +
 .../installer/arm64/modules/arm64/usb-modules      |  1 +
 .../arm64/modules/arm64/usb-storage-modules        |  2 +
 .../installer/arm64/modules/arm64/zlib-modules     |  1 +
 linux/debian/installer/arm64/package-list          |  7 +++
 linux/debian/rules.real                            |  2 +-
 40 files changed, 114 insertions(+), 2 deletions(-)
 create mode 100644 linux/debian/config/arm64/config
 create mode 100644 linux/debian/config/arm64/none/defines
 create mode 100644 linux/debian/installer/arm64/kernel-versions
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ata-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/btrfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/core-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crc-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crypto-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/event-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ext4-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/fat-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/fuse-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/input-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/isofs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/jfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/kernel-image
 create mode 100644 linux/debian/installer/arm64/modules/arm64/loop-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/md-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/mmc-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/multipath-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nbd-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-shared-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-usb-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ppp-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/sata-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/scsi-core-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/scsi-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/squashfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/udf-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/uinput-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/usb-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/usb-storage-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/zlib-modules
 create mode 100644 linux/debian/installer/arm64/package-list

diff --git a/linux/debian/changelog b/linux/debian/changelog
index d274b15..35b4c55 100644
--- a/linux/debian/changelog
+++ b/linux/debian/changelog
@@ -6,6 +6,9 @@ linux (3.15~rc3-1~exp1) UNRELEASED; urgency=medium
   * aufs: Update to aufs3.x-rcN-20140421
   * [rt] Disable until it is updated for 3.15 or later
 
+  [ Ian Campbell ]
+  * [arm64] Initial kernel configuration and packaging (Closes: #745349).
+
  -- Ben Hutchings <ben@decadent.org.uk>  Fri, 02 May 2014 01:54:56 +0100
 
 linux (3.14.2-1) unstable; urgency=medium
diff --git a/linux/debian/config/arm64/config b/linux/debian/config/arm64/config
new file mode 100644
index 0000000..619585c
--- /dev/null
+++ b/linux/debian/config/arm64/config
@@ -0,0 +1,50 @@
+##
+## file: arch/arm64/Kconfig
+##
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_XGENE=y
+CONFIG_SMP=y
+CONFIG_XEN=y
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_ARMMMCI=m
+CONFIG_MMC_SPI=m
+
+##
+## file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_POWER_RESET_XGENE=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_EM is not set
+
+##
+## file: drivers/virtio/Kconfig
+##
+CONFIG_VIRTIO_MMIO=m
diff --git a/linux/debian/config/arm64/defines b/linux/debian/config/arm64/defines
index d201ee9..eba3b6f 100644
--- a/linux/debian/config/arm64/defines
+++ b/linux/debian/config/arm64/defines
@@ -1,4 +1,16 @@
 [base]
 kernel-arch: arm64
 featuresets:
-# empty; we don't have initramfs working yet
+ none
+
+[build]
+debug-info: true
+image-file: arch/arm64/boot/Image
+
+[image]
+install-stem: vmlinuz
+
+[arm64_description]
+hardware: 64-bit ARMv8 machines
+
+[arm64_image]
diff --git a/linux/debian/config/arm64/none/defines b/linux/debian/config/arm64/none/defines
new file mode 100644
index 0000000..fdea40c
--- /dev/null
+++ b/linux/debian/config/arm64/none/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ arm64
diff --git a/linux/debian/installer/arm64/kernel-versions b/linux/debian/installer/arm64/kernel-versions
new file mode 100644
index 0000000..11d7399
--- /dev/null
+++ b/linux/debian/installer/arm64/kernel-versions
@@ -0,0 +1,2 @@
+# arch version flavour installedname suffix build-depends
+arm64  -       arm64   -             -      -
diff --git a/linux/debian/installer/arm64/modules/arm64/ata-modules b/linux/debian/installer/arm64/modules/arm64/ata-modules
new file mode 100644
index 0000000..04d9c88
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ata-modules
@@ -0,0 +1 @@
+libata
diff --git a/linux/debian/installer/arm64/modules/arm64/btrfs-modules b/linux/debian/installer/arm64/modules/arm64/btrfs-modules
new file mode 100644
index 0000000..e261e13
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/core-modules b/linux/debian/installer/arm64/modules/arm64/core-modules
new file mode 100644
index 0000000..f05d062
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/core-modules
@@ -0,0 +1 @@
+#include <core-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crc-modules b/linux/debian/installer/arm64/modules/arm64/crc-modules
new file mode 100644
index 0000000..7e00de7
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules b/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
new file mode 100644
index 0000000..4c8f235
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crypto-modules b/linux/debian/installer/arm64/modules/arm64/crypto-modules
new file mode 100644
index 0000000..3a1e862
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/event-modules b/linux/debian/installer/arm64/modules/arm64/event-modules
new file mode 100644
index 0000000..f8819af
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/ext4-modules b/linux/debian/installer/arm64/modules/arm64/ext4-modules
new file mode 100644
index 0000000..394c577
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/fat-modules b/linux/debian/installer/arm64/modules/arm64/fat-modules
new file mode 100644
index 0000000..274584e
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/fuse-modules b/linux/debian/installer/arm64/modules/arm64/fuse-modules
new file mode 100644
index 0000000..0b6ba0c
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/input-modules b/linux/debian/installer/arm64/modules/arm64/input-modules
new file mode 100644
index 0000000..5ecb595
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/isofs-modules b/linux/debian/installer/arm64/modules/arm64/isofs-modules
new file mode 100644
index 0000000..da4fa9a
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/jfs-modules b/linux/debian/installer/arm64/modules/arm64/jfs-modules
new file mode 100644
index 0000000..7e4d912
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/kernel-image b/linux/debian/installer/arm64/modules/arm64/kernel-image
new file mode 100644
index 0000000..1bb8bf6
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/kernel-image
@@ -0,0 +1 @@
+# empty
diff --git a/linux/debian/installer/arm64/modules/arm64/loop-modules b/linux/debian/installer/arm64/modules/arm64/loop-modules
new file mode 100644
index 0000000..c1c948f
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/md-modules b/linux/debian/installer/arm64/modules/arm64/md-modules
new file mode 100644
index 0000000..26115e1
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/mmc-modules b/linux/debian/installer/arm64/modules/arm64/mmc-modules
new file mode 100644
index 0000000..dadfd53
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/multipath-modules b/linux/debian/installer/arm64/modules/arm64/multipath-modules
new file mode 100644
index 0000000..a8b69b2
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nbd-modules b/linux/debian/installer/arm64/modules/arm64/nbd-modules
new file mode 100644
index 0000000..3c9b3e5
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-modules b/linux/debian/installer/arm64/modules/arm64/nic-modules
new file mode 100644
index 0000000..2512e83
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-shared-modules b/linux/debian/installer/arm64/modules/arm64/nic-shared-modules
new file mode 100644
index 0000000..cc84b14
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-usb-modules b/linux/debian/installer/arm64/modules/arm64/nic-usb-modules
new file mode 100644
index 0000000..c479669
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules b/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
new file mode 100644
index 0000000..53fd18d
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/ppp-modules b/linux/debian/installer/arm64/modules/arm64/ppp-modules
new file mode 100644
index 0000000..1f26aa1
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/sata-modules b/linux/debian/installer/arm64/modules/arm64/sata-modules
new file mode 100644
index 0000000..01318c2
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/scsi-core-modules b/linux/debian/installer/arm64/modules/arm64/scsi-core-modules
new file mode 100644
index 0000000..dd65d66
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/scsi-modules b/linux/debian/installer/arm64/modules/arm64/scsi-modules
new file mode 100644
index 0000000..675462a
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+
diff --git a/linux/debian/installer/arm64/modules/arm64/squashfs-modules b/linux/debian/installer/arm64/modules/arm64/squashfs-modules
new file mode 100644
index 0000000..42d7788
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/udf-modules b/linux/debian/installer/arm64/modules/arm64/udf-modules
new file mode 100644
index 0000000..b90d7ee
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/uinput-modules b/linux/debian/installer/arm64/modules/arm64/uinput-modules
new file mode 100644
index 0000000..58a8337
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/usb-modules b/linux/debian/installer/arm64/modules/arm64/usb-modules
new file mode 100644
index 0000000..c598ded
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/usb-storage-modules b/linux/debian/installer/arm64/modules/arm64/usb-storage-modules
new file mode 100644
index 0000000..6938b5c
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+usb-storage -
diff --git a/linux/debian/installer/arm64/modules/arm64/zlib-modules b/linux/debian/installer/arm64/modules/arm64/zlib-modules
new file mode 100644
index 0000000..e02ad64
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/linux/debian/installer/arm64/package-list b/linux/debian/installer/arm64/package-list
new file mode 100644
index 0000000..aefbc7e
--- /dev/null
+++ b/linux/debian/installer/arm64/package-list
@@ -0,0 +1,7 @@
+# This file is used to build up the control file. The kernel version and
+# "-di" are appended to the package names. Section can be left out. So can
+# architecture, which is derived from the files in the modules directory.
+# It overwrites specifications from /usr/share/kernel-wedge/package-list.
+#
+
+Package: kernel-image
diff --git a/linux/debian/rules.real b/linux/debian/rules.real
index f1a861d..1dabb3f 100644
--- a/linux/debian/rules.real
+++ b/linux/debian/rules.real
@@ -373,7 +373,7 @@ endif
 
 install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_dt: DT_INSTALL_DIR = $(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION)
 install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_dt:
-ifneq ($(filter armel armhf,$(ARCH)),)
+ifneq ($(filter arm64 armel armhf,$(ARCH)),)
 	+$(MAKE_CLEAN) -C $(DIR) dtbs
 	shopt -s nullglob ; for i in $(DIR)/arch/$(KERNEL_ARCH)/boot/dts/*.dtb ; do \
 		install -D -m644 $$i '$(DT_INSTALL_DIR)'/$$(basename $$i) ; \
-- 
1.9.0


Reply to: