2005-09-20 06:18:37 +00:00
DESCRIPTION = " 2.6 Linux Development Kernel for Zaurus devices and iPAQ hx2750. "
SECTION = " kernel "
LICENSE = " GPL "
2006-04-12 16:19:14 +00:00
inherit kernel
2006-05-09 18:38:19 +00:00
RPROVIDES_kernel - image += " hostap-modules "
2005-09-20 06:18:37 +00:00
2005-12-13 09:10:55 +00:00
DOSRC = " http://www.do13.de/openzaurus/patches "
2006-02-09 16:05:53 +00:00
RPSRC = " http://www.rpsys.net/openzaurus/patches/archive "
2005-09-20 06:18:37 +00:00
JLSRC = " http://www.cs.wisc.edu/~lenz/zaurus/files "
BASRC = " http://www.orca.cx/zaurus/patches "
2006-03-24 07:38:46 +00:00
CHSRC = " http://oz.drigon.com/patches "
2007-05-28 22:42:46 +00:00
TKSRC = " http://www.informatik.hu-berlin.de/~tkunze/zaurus/patches "
2005-09-20 06:18:37 +00:00
##############################################################
# Compensate for sucky bootloader on all Sharp Zaurus models
#
FILES_kernel - image = " "
2007-05-28 22:42:46 +00:00
ALLOW_EMPTY = " 1 "
2005-09-20 06:18:37 +00:00
EXTRA_OEMAKE = " OPENZAURUS_RELEASE=- ${ DISTRO_VERSION } "
2006-08-23 09:18:12 +00:00
COMPATIBLE_HOST = " (arm|i.86).*-linux "
2007-06-16 12:39:09 +00:00
COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|hx2000|qemuarm|qemux86|bootcdx86)'
2006-08-23 09:18:12 +00:00
KERNEL_IMAGETYPE_qemux86 = " bzImage "
2007-06-11 10:33:55 +00:00
KERNEL_IMAGETYPE_bootcdx86 = " bzImage "
2005-09-20 06:18:37 +00:00
CMDLINE_CON = " console=ttyS0,115200n8 console=tty1 noinitrd "
2007-06-26 16:39:28 +00:00
CMDLINE_CON_qemuarm = " console=ttyAMA0,115200n8 console=tty1 noinitrd "
2005-12-13 09:10:55 +00:00
CMDLINE_ROOT = " root=/dev/mtdblock2 rootfstype=jffs2 "
2006-09-20 13:04:28 +00:00
CMDLINE_ROOT_spitz = " root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw "
2006-02-03 09:19:56 +00:00
CMDLINE_OTHER = " dyntick=enable "
2006-12-20 00:00:03 +00:00
CMDLINE_DEBUG = '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "debug", "quiet", d)}'
2005-09-20 06:18:37 +00:00
##############################################################
# Configure memory/ramdisk split for collie
#
2007-05-28 22:42:46 +00:00
export mem = '${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "32"}'
export rd = '${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "32"}'
2005-09-20 06:18:37 +00:00
CMDLINE_MEM_collie = " mem= ${ mem } M "
2005-11-01 13:35:52 +00:00
CMDLINE_ROTATE_spitz = " fbcon=rotate:1 "
CMDLINE_ROTATE_akita = " fbcon=rotate:1 "
2006-04-12 16:19:14 +00:00
CMDLINE_ROTATE_collie = " fbcon=rotate:1 "
CMDLINE_ROTATE_poodle = " fbcon=rotate:1 "
2006-02-03 09:19:56 +00:00
CMDLINE = " ${ CMDLINE_CON } ${ CMDLINE_ROOT } ${ CMDLINE_MEM } ${ CMDLINE_ROTATE } ${ CMDLINE_OTHER } ${ CMDLINE_DEBUG } "
2005-09-20 06:18:37 +00:00
###############################################################
# Enable or disable ELPP via local.conf - default is "no"
#
2007-05-28 22:42:46 +00:00
ENABLE_ELPP = '${@bb.data.getVar("OZ_KERNEL_ENABLE_ELPP",d,1) or "no"}'
2005-09-20 06:18:37 +00:00
###############################################################
# module configs specific to this kernel
#
2006-09-20 13:04:28 +00:00
module_autoload_ohci - hcd_tosa = " ohci-hcd "
2005-09-20 06:18:37 +00:00
module_autoload_pxaficp_ir = " pxaficp_ir "
2005-12-13 09:10:55 +00:00
module_autoload_snd - pcm - oss = " snd-pcm-oss "
module_autoload_snd - soc - corgi_c7x0 = " snd-soc-corgi "
module_autoload_snd - soc - spitz_akita = " snd-soc-spitz "
module_autoload_snd - soc - spitz_spitz = " snd-soc-spitz "
2006-07-24 17:45:22 +00:00
module_autoload_snd - soc - poodle_poodle = " snd-soc-poodle "
2005-09-20 06:18:37 +00:00
do_configure () {
2006-04-12 16:19:14 +00:00
rm - f $ { S } /. config
2005-09-20 06:18:37 +00:00
2007-01-15 09:21:22 +00:00
if [ " ${ MACHINE } " = " tosa " ]; then
2006-05-09 18:38:19 +00:00
gcc_version = `${KERNEL_CC} -dumpversion`
2007-01-15 09:21:22 +00:00
if [ " ${ gcc_version } " = " 4.0.1 " ] || [ " ${ gcc_version } " = " 4.0.2 " ]; then
2006-05-09 18:38:19 +00:00
die " tosa kernel wont work with gcc 4.0.x "
fi
fi
2006-04-12 16:19:14 +00:00
if [ ! - e $ { WORKDIR } / defconfig - $ { MACHINE } ]; then
die " No default configuration for ${ MACHINE } available. "
fi
2005-09-20 06:18:37 +00:00
2007-01-15 09:21:22 +00:00
if [ " ${ MACHINE } " = " collie " ]; then
2005-09-20 06:18:37 +00:00
mempos = `echo "obase=16; $mem * 1024 * 1024" | bc`
rdsize = `echo "$rd * 1024" | bc`
total = `expr $mem + $rd`
addr = `echo "obase=16; ibase=16; C0000000 + $mempos" | bc`
2007-01-15 09:21:22 +00:00
if [ " $rd " = " 0 " ]
2005-09-20 06:18:37 +00:00
then
echo " No RAMDISK "
echo " # CONFIG_MTD_MTDRAM_SA1100 is not set " >> $ { S } /. config
else
echo " RAMDIR = $rdsize on $addr "
echo " CONFIG_MTD_MTDRAM_SA1100=y " >> $ { S } /. config
echo " CONFIG_MTDRAM_TOTAL_SIZE= $rdsize " >> $ { S } /. config
echo " CONFIG_MTDRAM_ERASE_SIZE=1 " >> $ { S } /. config
echo " CONFIG_MTDRAM_ABS_POS= $addr " >> $ { S } /. config
fi
fi
echo " CONFIG_CMDLINE= \" ${ CMDLINE } \" " >> $ { S } /. config
2007-01-15 09:21:22 +00:00
#if [ "${ENABLE_ELPP}" = "yes" ]; then
2006-04-12 16:19:14 +00:00
# echo "# Enhanced Linux Progress Patch" >> ${S}/.config
# echo "CONFIG_FB_ELPP=y" >> ${S}/.config
# echo "CONFIG_LOGO=y" >> ${S}/.config
# echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
#else
# echo "# CONFIG_FB_ELPP is not set" >> ${S}/.config
#fi
2007-05-28 22:42:46 +00:00
if [ " ${ TARGET_OS } " = " linux-gnueabi " - o " ${ TARGET_OS } " = " linux-uclibcgnueabi " ]; then
2006-04-12 16:19:14 +00:00
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
2005-09-20 06:18:37 +00:00
fi
2007-01-15 09:21:22 +00:00
if [ " ${ DISTRO } " = " openzaurus " ]; then
2006-06-15 14:46:18 +00:00
case $ { MACHINE } in
c7x0 | akita | spitz )
echo " CONFIG_LOGO_OZ640_CLUT224=y " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ480_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ240_CLUT224 is not set " >> $ { S } /. config
;;
tosa )
echo " CONFIG_LOGO_OZ480_CLUT224=y " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ640_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ240_CLUT224 is not set " >> $ { S } /. config
;;
poodle | collie )
echo " CONFIG_LOGO_OZ240_CLUT224=y " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ640_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ480_CLUT224 is not set " >> $ { S } /. config
;;
esac
echo " CONFIG_LOGO=y " >> $ { S } /. config
echo " # CONFIG_LOGO_LINUX_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OHAND_CLUT224 is not set " >> $ { S } /. config
2007-01-15 09:21:22 +00:00
elif [ " ${ DISTRO } " = " poky " ]; then
2006-06-15 14:46:18 +00:00
echo " CONFIG_LOGO=y " >> $ { S } /. config
echo " CONFIG_LOGO_OHAND_CLUT224=y " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ240_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ480_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ640_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_LINUX_CLUT224 is not set " >> $ { S } /. config
else
echo " # CONFIG_LOGO is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OHAND_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_LINUX_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ240_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ480_CLUT224 is not set " >> $ { S } /. config
echo " # CONFIG_LOGO_OZ640_CLUT224 is not set " >> $ { S } /. config
fi
2006-04-12 16:19:14 +00:00
sed - e '/CONFIG_AEABI/d' \
- e '/CONFIG_OABI_COMPAT=/d' \
- e '/CONFIG_CMDLINE=/d' \
- e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
- e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
- e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
- e '/CONFIG_MTDRAM_ABS_POS=/d' \
2006-06-15 14:46:18 +00:00
- e '/CONFIG_LOGO=/d' \
- e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
- e '/CONFIG_LOGO_OHAND_CLUT224=/d' \
- e '/CONFIG_LOGO_OZ240_CLUT224=/d' \
- e '/CONFIG_LOGO_OZ480_CLUT224=/d' \
- e '/CONFIG_LOGO_OZ640_CLUT224=/d' \
2006-04-12 16:19:14 +00:00
'${WORKDIR}/defconfig-${MACHINE}' >> '${S}/.config'
2005-09-20 06:18:37 +00:00
yes '' | oe_runmake oldconfig
}
2006-04-12 16:19:14 +00:00
# Check the kernel is below the 1264*1024 byte limit for the PXA Zaurii
2005-09-20 06:18:37 +00:00
do_compile_append () {
case $ { MACHINE } in
2006-04-12 16:19:14 +00:00
c7x0 | akita | poodle | spitz | tosa )
2005-12-13 09:10:55 +00:00
size = `ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
2006-04-12 16:19:14 +00:00
if [ $size - ge 1294336 ]; then
2005-09-20 06:18:37 +00:00
rm arch / $ { ARCH } / boot / $ { KERNEL_IMAGETYPE }
2005-12-13 09:10:55 +00:00
echo " Size is $size "
2005-10-10 10:41:35 +00:00
die " This kernel is too big for your PXA Zaurus and will destroy data if you flash it. Please reduce the size of the kernel by making more of it modular. "
2005-09-20 06:18:37 +00:00
fi
;;
2006-05-27 21:39:13 +00:00
collie )
size = `ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
if [ $size - ge 1048576 ]; then
rm arch / $ { ARCH } / boot / $ { KERNEL_IMAGETYPE }
echo " Size is $size "
die " This kernel is too big for your Collie and will not be flashed. Please reduce the size of the kernel by making more of it modular. "
fi
;;
2005-09-20 06:18:37 +00:00
* )
;;
esac
}
do_deploy () {
2007-05-28 22:42:46 +00:00
install - d $ { DEPLOY_DIR_IMAGE }
install - m 0644 arch / $ { ARCH } / boot / $ { KERNEL_IMAGETYPE } $ { DEPLOY_DIR_IMAGE } / $ { KERNEL_IMAGETYPE } - $ { PV } - $ { MACHINE } - $ { DATETIME } . bin
2006-08-29 22:09:18 +00:00
rm - f $ { DEPLOY_DIR_IMAGE } / $ { KERNEL_IMAGETYPE } - $ { MACHINE } . bin
2007-05-27 15:20:41 +00:00
cd $ { DEPLOY_DIR_IMAGE }
ln - s $ { KERNEL_IMAGETYPE } - $ { PV } - $ { MACHINE } - $ { DATETIME } . bin $ { KERNEL_IMAGETYPE } - $ { MACHINE } . bin
2007-05-28 22:42:46 +00:00
tar - cvzf $ { DEPLOY_DIR_IMAGE } / modules - $ { KERNEL_RELEASE } - $ { MACHINE } . tgz - C $ { D } lib
2005-09-20 06:18:37 +00:00
}
do_deploy [ dirs ] = " ${ S } "
2006-04-12 16:19:14 +00:00
addtask deploy before do_package after do_install
2006-09-20 13:04:28 +00:00
# wlan-ng stuff need compiled kernel sources
do_rm_work () {
}