summaryrefslogtreecommitdiff
path: root/packages/linux/ixp4xx-kernel.inc
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/linux/ixp4xx-kernel.inc
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/linux/ixp4xx-kernel.inc')
-rw-r--r--packages/linux/ixp4xx-kernel.inc369
1 files changed, 0 insertions, 369 deletions
diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc
deleted file mode 100644
index 8ec06e2682..0000000000
--- a/packages/linux/ixp4xx-kernel.inc
+++ /dev/null
@@ -1,369 +0,0 @@
-# ixp4xx-kernel.inc
-#
-# Standard definitions for any IXP4xx Linux kernel.
-# Include this file in a .bb which specifies, at least,
-# PN,PV,PR for the desired kernel
-#
-# Define the following *before* including this file as
-# required:
-#
-# IXP4XX_PATCHES - full list of patches to apply, to add files
-# generate a patch against /dev/null
-#
-# DEFAULT_PREFERENCE is set automagically in this file as
-# follows:
-#
-# 10 For *released* kernels
-# 8 For mm or ac patched versions of released kernels
-# 6 For rc patched kernels (release candidates)
-# 4 For mm or ac patched rc (release candidate) kernels
-# 2 For pre or bk versions
-# 0 For mm or ac patched pre or bk versions
-#
-# --------------------------------------------------------------
-#
-SECTION = "kernel"
-DESCRIPTION = "Linux kernel for the Intel IXP4xx device"
-LICENSE = "GPL"
-
-DEPENDS = "arm-kernel-shim devio-native"
-
-# Linux kernel source has the general form linux-X.Y.Z-patchP,
-# X.Y is the major version number, Z (which may have multiple
-# parts) is a sub-version and 'patch' is something like 'mm' or
-# 'ac' with a patch version. The original bz2 archive will be
-# in a directory/file vX.Y/linux-X.Y.Z.tar.bz2. The unpacked
-# source will be in the directory linux-X.Y.Z and this directory
-# name corresponds to the module directory (in /lib/modules).
-#
-# The corresponding .bb file should be called:
-#
-# package_X.Y.Z-patchP
-#
-# Giving PN=package PV=X.Y.Z-patchP (and PR is set in the .bb
-# file). Files, including the all important defconfig, are
-# searched for in the following directories (last one first):
-#
-# ixp4xx-kernel/files
-# ixp4xx-kernel/X.Y
-# ixp4xx-kernel/X.Y.Z
-# ixp4xx-kernel/X.Y.Z-patch
-# ixp4xx-kernel/X.Y.Z-patchP
-# package-X.Y.Z-patchP
-#
-# This allows sharing of patch files and other useful source!
-# To share a file or patch with an earlier version put it in
-# the shared directory - e.g. to use foo.patch on 2.6.11.2 and
-# 2.6.11.4 it should be in directory ixp4xx-kernel/2.6.11.
-#
-# Note that when there are multiple patches the X.Y.Z-patch form
-# uses base-patch (e.g. 2.6.12-mm) whereas X.Y.Z-patchP has the
-# full form, for example 2.6.12-rc3-mm1 (in the same case).
-
-#PN=package-name
-#PV=package-version (full)
-
-# The patch has the general form (rcN|preN|acN|mmN|bkN)* with the
-# separate patch items being separated by '-' characters. The
-# rc patch is first and has the important property that it
-# requires the *preceding* kernel base version and that this
-# will be the source directory name.
-python () {
- # The patches list may be empty. This code starts with the base
- # kernel version and steps through the patches. Because the rc and
- # pre patches actually require the *preceding* kernel version the code
- # fixes that up appropriately.
- pv = bb.data.getVar("PV",d,1).split('-')
- if pv[0].count('+'):
- prev = pv[0].split('+')
- pv[0] = prev[1];
- kernel = pv[0].split('.')
- base = pv[0]
- name = [base]
- major = '.'.join(name[0].split('.')[0:2])
- minor = '.'.join(name[0].split('.')[0:3])
- patch_uri = [ None ]
- filedir = "${FILE_DIRNAME}/ixp4xx-kernel/%s"
- # This entry will become the last one (everything is inserted before it)
- filepath = [ filedir % "files" ]
- pref = 10
- mmac = 0
- for patch in pv[1:]:
- name.append(patch)
- pname = '-'.join(name)
- if patch[0:2] == "rc" or patch[0:3] == "pre":
- patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/v%s/testing/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname))
- kernel[-1] = str(int(kernel[-1]) - 1)
- if patch[0:2] == "rc" and pref == 10:
- pref = 6
- filepath[0:0] = [ filedir % name[0] ]
- filepath[0:0] = [ filedir % (name[0] + "-rc") ]
- else:
- pref = 2
- elif patch[0:2] == "bk" or patch[0:3] == "git":
- patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/v%s/snapshots/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname))
- pref = 2
- elif patch[0:2] == "ac":
- patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/people/alan/linux-%s/%s/patch-%s" % (major, base, pname))
- mmac = 2
- filepath[0:0] = [ filedir % (name[0] + "-ac") ]
- elif patch[0:2] == "mm":
- patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/people/akpm/patches/%s/%s/%s/%s.bz2;patch=1;pname=%s" % (major, base, pname, pname, pname))
- mmac = 2
- filepath[0:0] = [ filedir % (name[0] + "-mm") ]
- else:
- raise bb.build.FuncFailed("ixp4xx-kernel: patch %s not recognized in %s" % (patch, '-'.join(pv)))
- filepath[0:0] = [ filedir % pname ]
- base = pname
-
- base = '.'.join(kernel)
- patch_uri[0] = "${KERNELORG_MIRROR}/pub/linux/kernel/v%s/linux-%s.tar.bz2" % (major, base)
- filepath[-1:-1] = [ filedir % base ]
- if base != minor:
- filepath[-1:-1] = [ filedir % minor ]
- filepath[-1:-1] = [ filedir % major ]
-
- bb.data.setVar("IXP4XX_SRCMAJ", major, d)
- # bb.note("IXP4XX_SRCMAJ := %s" % major)
- bb.data.setVar("IXP4XX_SRCVER", base, d)
- # bb.note("IXP4XX_SRCVER := %s" % base)
- bb.data.setVar("IXP4XX_SRCURI", ' '.join(patch_uri), d)
- # bb.note("IXP4XX_SRCURI := %s" % ' '.join(patch_uri))
- bb.data.setVar("IXP4XX_FILESPATH", ':'.join(filepath), d)
- # bb.note("IXP4XX_FILESPATH := %s" % ' '.join(filepath))
- bb.data.setVar("DEFAULT_PREFERENCE", pref-mmac, d)
- # bb.note("DEFAULT_PREFERENCE := %s" % (pref-mmac))
-}
-
-# FILESPATH: this list is in order last-searched-first, therefore
-# the first entry is the *latest* and/or most specific
-FILESPATH = "${FILE_DIRNAME}/${P}:${IXP4XX_FILESPATH}"
-
-# The working directory will be the 'base' version (which may not be the
-# same as implied by the PV variable because it corresponds to the prior
-# minor version for rc and pre patched versions).
-S = "${WORKDIR}/linux-${IXP4XX_SRCVER}"
-
-# IXP4XX_PATCHES is the list of patches.
-IXP4XX_PATCHES ?= ""
-
-SRC_URI = "${IXP4XX_SRCURI}"
-SRC_URI += "${IXP4XX_PATCHES}"
-
-COMPATIBLE_HOST = 'arm.*-linux.*'
-COMPATIBLE_MACHINE = '(ixp4xx|nslu2|fsg3)'
-
-inherit kernel
-
-ARCH = "arm"
-
-# To specify the console set KERNEL_CONSOLE in the .bb file.
-# CMDLINE_ROOT contains the boot options, these will be
-# appended to the build in boot options (so it is only necessary
-# to override stuff in the kernel source).
-
-# CMDLINE_ROOT: machine specific boot options - should not be set on a
-# generic kernel!
-CMDLINE_ROOT ?= ""
-
-# CMDLINE_DEBUG: debug options such as noirqdebug, defaults to empty
-# override in local.conf etc
-CMDLINE_DEBUG ?= ""
-
-CMDLINE = "${CMDLINE_ROOT}"
-CMDLINE += "${CMDLINE_DEBUG}"
-CMDLINE += "${CMDLINE_CONSOLE}"
-
-# Set EXTRAVERSION and LOCALVERSION to "" so that the kernel version
-# remains pinned to the x.y.z form, also turn off the directory
-# printing which provides almost all the output of an incremental build.
-EXTRA_OEMAKE += "EXTRAVERSION="
-EXTRA_OEMAKE += "LOCALVERSION="
-EXTRA_OEMAKE += "MAKEFLAGS='--no-print-directory'"
-
-# Set the correct CONFIG_CPU_xxx_ENDIAN and CONFIG_CMDLINE at the head
-# of the .config file and remove any settings in defconfig then append
-# defconfig to .config
-do_configure_prepend() {
- rm -f ${S}/.config
- echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >>'${S}/.config'
- if test '${SITEINFO_ENDIANESS}' = be
- then
- echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config'
- fi
-
- if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
- echo "CONFIG_AEABI=y" >> ${S}/.config
- echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
- else
- echo "# CONFIG_AEABI is not set" >> ${S}/.config
- echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
- fi
-
- sed -e '/CONFIG_CPU_BIG_ENDIAN/d' \
- -e '/CONFIG_CMDLINE=/d' \
- -e '/CONFIG_AEABI/d' \
- -e '/CONFIG_OABI_COMPAT=/d' \
- '${WORKDIR}/defconfig' >>'${S}/.config'
- rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \
- ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch
-
-}
-
-
-# Kernel module dependencies
-
-DEPENDS += "zd1211-firmware"
-RDEPENDS_kernel-module-zd1211rw += "zd1211-firmware"
-
-
-# MACHID and LE handling
-#
-# This mach_fixup function adds the required prefix to the image to
-# force the machine id in the kernel to be a particular value. For
-# LE builds it also forces the CPU into LE mode - this is actually
-# harmless even if the CPU is already in LE mode. This deals with
-# two known problems on some boards:
-#
-# 1) The machine type set by the boot loader is wrong - e.g. the type
-# for an ixdp425, not the actual board type. Prefix the code with
-# two instructions:
-# e3a01c<hh> e38110<ll>
-# Where the machine ID is 0xhhll
-# 2) For LE kernels it is necessary to prefix change-to-le code to
-# the kernel image if the boot loader runs with the CPU in BE
-# (which is normal for IXP4XX boards):
-# ee110f10 e3c00080 ee010f10
-# and to byte swap the (LE) image to match the BE flash layout
-#
-# (2) is not required with an LE boot loader (neither the prefix
-# nor the byte swapping) so this is controlled by a separate flag,
-# however if the boot loader is LE it expects and LE image so the
-# instructions written for the machine id must be LE.
-#
-# The argument to the function is the destination directory
-
-# The generic package only includes the generic image, the other
-# packages are made below (they are kernel-image packages but
-# with a different ARCH).
-FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}-${MACHINE_ARCH}-${KERNEL_VERSION}"
-
-# MACHINE DEFINITIONS: one block for each machine
-
-# The correct settings for the NSLU2 board:
-nslu2_MACHID = "597"
-PACKAGES += "kernel-image-nslu2"
-PKG_kernel-image-nslu2 = "kernel-image-${KERNEL_VERSION}"
-PACKAGE_ARCH_kernel-image-nslu2 = "nslu2${SITEINFO_ENDIANESS}"
-DESCRIPTION_kernel-image-nslu2 = "Linux kernel for the LinkSys NSLU2"
-FILES_kernel-image-nslu2 = "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nslu2${SITEINFO_ENDIANESS}-${KERNEL_VERSION}"
-pkg_postinst_kernel-image-nslu2 () {
- update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nslu2${SITEINFO_ENDIANESS}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
-}
-pkg_postrm_kernel-image-nslu2 () {
- update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nslu2${SITEINFO_ENDIANESS}-${KERNEL_VERSION} || true
-}
-
-# The correct settings for the NAS100D board:
-nas100d_MACHID = "865"
-PACKAGES += "kernel-image-nas100d"
-PKG_kernel-image-nas100d = "kernel-image-${KERNEL_VERSION}"
-PACKAGE_ARCH_kernel-image-nas100d = "nas100d${SITEINFO_ENDIANESS}"
-DESCRIPTION_kernel-image-nas100d = "Linux kernel for the IOMega NAS100D"
-FILES_kernel-image-nas100d = "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nas100d${SITEINFO_ENDIANESS}-${KERNEL_VERSION}"
-pkg_postinst_kernel-image-nas100d () {
- update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nas100d${SITEINFO_ENDIANESS}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
-}
-pkg_postrm_kernel-image-nas100d () {
- update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-nas100d${SITEINFO_ENDIANESS}-${KERNEL_VERSION} || true
-}
-
-# The correct settings for the DSMG600 board:
-dsmg600_MACHID = "964"
-PACKAGES += "kernel-image-dsmg600"
-PKG_kernel-image-dsmg600 = "kernel-image-${KERNEL_VERSION}"
-PACKAGE_ARCH_kernel-image-dsmg600 = "dsmg600${SITEINFO_ENDIANESS}"
-DESCRIPTION_kernel-image-dsmg600 = "Linux kernel for the D-Link DSM-G600"
-FILES_kernel-image-dsmg600 = "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-dsmg600${SITEINFO_ENDIANESS}-${KERNEL_VERSION}"
-pkg_postinst_kernel-image-dsmg600 () {
- update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-dsmg600${SITEINFO_ENDIANESS}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
-}
-pkg_postrm_kernel-image-dsmg600 () {
- update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-dsmg600${SITEINFO_ENDIANESS}-${KERNEL_VERSION} || true
-}
-
-# The correct settings for the FSG-3 board:
-fsg3_MACHID = "1091"
-PACKAGES += "kernel-image-fsg3"
-PKG_kernel-image-fsg3 = "kernel-image-${KERNEL_VERSION}"
-PACKAGE_ARCH_kernel-image-fsg3 = "fsg3${SITEINFO_ENDIANESS}"
-DESCRIPTION_kernel-image-fsg3 = "Linux kernel for the Freecom FSG-3"
-FILES_kernel-image-fsg3 = "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-fsg3${SITEINFO_ENDIANESS}-${KERNEL_VERSION}"
-pkg_postinst_kernel-image-fsg3 () {
- update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-fsg3${SITEINFO_ENDIANESS}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
-}
-pkg_postrm_kernel-image-fsg3 () {
- update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-fsg3${SITEINFO_ENDIANESS}-${KERNEL_VERSION} || true
-}
-
-BYTESWAP_armeb = "cp$"
-BYTESWAP_arm = "xp $,4"
-
-# We need the alternatives to happen in the kernel-image packages, not in
-# the kernel package, because only the images know the name of the kernel.
-pkg_postinst_kernel () {
-}
-pkg_postrm_kernel () {
-}
-
-# copy_image <dest> <machine>
-# copy the zImage and append the appropriate shim
-# dest: where to copy to
-# machine: machine shim to prepend, empty for none
-copy_image() {
- local shim
-
- shim="/dev/null"
- test -n "$2" && shim="${STAGING_LOADER_DIR}/arm-kernel-shim-$2.bin"
-
- rm -f "$1".new "$1".shimmed
- cat $shim ${KERNEL_OUTPUT} > "$1".shimmed
- devio '<<'"$1"'.shimmed' >"$1".new '${BYTESWAP}' || {
- echo 'ERROR: ${KERNEL_OUTPUT}: failed to copy zImage' >&2
- return 1
- }
- rm -f "$1".shimmed
- mv "$1".new "$1"
-}
-
-install_image() {
- copy_image '${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-'"$1"'-${KERNEL_VERSION}' "$2"
-}
-
-do_install_append() {
- # Overwrite the unshimmed generic image with a shimmed one (but without
- # any command line or machine id override).
- rm -f '${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}'
- install_image '${MACHINE_ARCH}'
-
- # Add the machine specific images, with appropriate suffixes
- install_image 'nslu2${SITEINFO_ENDIANESS}' 'nslu2'
- install_image 'nas100d${SITEINFO_ENDIANESS}' 'nas100d'
- install_image 'dsmg600${SITEINFO_ENDIANESS}' 'dsmg600'
- install_image 'fsg3${SITEINFO_ENDIANESS}' 'fsg3'
-}
-
-deploy_image() {
- copy_image '${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-'"$1" "$2"
-}
-
-do_deploy() {
- install -d ${DEPLOY_DIR_IMAGE}
- deploy_image '${MACHINE_ARCH}'
-
- # And the machine specific images
- deploy_image 'nslu2${SITEINFO_ENDIANESS}' 'nslu2'
- deploy_image 'nas100d${SITEINFO_ENDIANESS}' 'nas100d'
- deploy_image 'dsmg600${SITEINFO_ENDIANESS}' 'dsmg600'
- deploy_image 'fsg3${SITEINFO_ENDIANESS}' 'fsg3'
-}