aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Adami <andrea.adami@gmail.com>2014-05-26 23:56:50 +0200
committerPaul Eggleton <paul.eggleton@linux.intel.com>2014-05-26 23:15:36 +0100
commitad6f63af1abcc44b8c88235b0372b401fe554a21 (patch)
treebe50a2c58166c156e1d8a3cb2867374fa993034d
parent8f5d1619edc5328f4d3be261f82792c53fdd9192 (diff)
downloadmeta-handheld-ad6f63af1abcc44b8c88235b0372b401fe554a21.tar.gz
gcw0: improve compatibility with kexecboot
Alternative images to be booted by kexecboot require to have an elf vmlinuz in /boot (kexec on mips expects elf). The bootloader however needs raw data (vmlinuz.bin) so we customize KERNEL_IMAGETYPE in the recipe. Finally, kexec is added to the main kernel recipe for easier testing and the watchdog timer is increased in the configuration for the kexecboot kernel. At the moment linux-kexecboot detects just fine partitions on external SD but freezes on kexec. Tests done from shell reveal that both kexec binaries (2.06 glibc and 2.02 klibc) load the new kernel but freeze on kexec -e. Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
-rw-r--r--conf/machine/gcw0.conf7
-rw-r--r--recipes-kernel/linux/linux-gcw0-3.12/gcw0/defconfig1
-rw-r--r--recipes-kernel/linux/linux-gcw0-kexecboot-3.12/gcw0/defconfig2
-rw-r--r--recipes-kernel/linux/linux-gcw0-kexecboot_3.12.bb3
4 files changed, 11 insertions, 2 deletions
diff --git a/conf/machine/gcw0.conf b/conf/machine/gcw0.conf
index 801f634..e1cfa1d 100644
--- a/conf/machine/gcw0.conf
+++ b/conf/machine/gcw0.conf
@@ -9,9 +9,14 @@ require conf/machine/include/tune-mips32r2.inc
# IMAGE_FEATURES += "read-only-rootfs"
IMAGE_FSTYPES ?= "tar.gz squashfs squashfs-xz"
+INITRAMFS_FSTYPES = "cpio.gz cpio.xz"
+
PREFERRED_PROVIDER_virtual/kernel = "linux-gcw0"
-KERNEL_IMAGETYPE = "vmlinuz.bin"
+# ELF for kexec (kernel to be put in /boot)
+KERNEL_IMAGETYPE = "vmlinuz"
+# RAW for ubiboot (only for linux-gcw0-kexecboot)
+#KERNEL_IMAGETYPE = "vmlinuz.bin"
KERNEL_OUTPUT = "${KERNEL_IMAGETYPE}"
MACHINE_GUI_CLASS = "smallscreen"
diff --git a/recipes-kernel/linux/linux-gcw0-3.12/gcw0/defconfig b/recipes-kernel/linux/linux-gcw0-3.12/gcw0/defconfig
index a2a0db4..70f6f41 100644
--- a/recipes-kernel/linux/linux-gcw0-3.12/gcw0/defconfig
+++ b/recipes-kernel/linux/linux-gcw0-3.12/gcw0/defconfig
@@ -4,6 +4,7 @@ CONFIG_HIGHMEM=y
# CONFIG_COMPACTION is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_KEXEC=y
# CONFIG_SECCOMP is not set
CONFIG_LOCALVERSION="-dingux"
CONFIG_DEFAULT_HOSTNAME="gcw-zero"
diff --git a/recipes-kernel/linux/linux-gcw0-kexecboot-3.12/gcw0/defconfig b/recipes-kernel/linux/linux-gcw0-kexecboot-3.12/gcw0/defconfig
index ca4b4be..e5c5d7e 100644
--- a/recipes-kernel/linux/linux-gcw0-kexecboot-3.12/gcw0/defconfig
+++ b/recipes-kernel/linux/linux-gcw0-kexecboot-3.12/gcw0/defconfig
@@ -203,7 +203,7 @@ CONFIG_NLS_UTF8=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_FTRACE is not set
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="panic=5 rdinit=/usr/bin/kexecboot console=ttyS2,57600 console=tty0 rfkill.default_state=0"
+CONFIG_CMDLINE="panic=55 rdinit=/usr/bin/kexecboot console=ttyS2,57600 console=tty0 rfkill.default_state=0"
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set
CONFIG_FONTS=y
diff --git a/recipes-kernel/linux/linux-gcw0-kexecboot_3.12.bb b/recipes-kernel/linux/linux-gcw0-kexecboot_3.12.bb
index 5094035..45a18c0 100644
--- a/recipes-kernel/linux/linux-gcw0-kexecboot_3.12.bb
+++ b/recipes-kernel/linux/linux-gcw0-kexecboot_3.12.bb
@@ -7,6 +7,9 @@ PROVIDES = ""
KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-gcw0-kexecboot-${PV}-${MACHINE}"
KERNEL_IMAGE_SYMLINK_NAME = "${KERNEL_IMAGETYPE}-gcw0-kexecboot-${MACHINE}"
+# RAW for ubiboot
+KERNEL_IMAGETYPE = "vmlinuz.bin"
+
INITRAMFS_IMAGE = "initramfs-kexecboot-klibc-image"
INITRAMFS_TASK = "${INITRAMFS_IMAGE}:do_rootfs"