b5202fc0f519c850a86b00fe21a3b54d26a71de8
[openembedded.git] / packages / linux / linux-ezx_2.6.19+2.6.20-rc2.bb
1 DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and E680"
2 SECTION = "kernel"
3 AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>"
4 HOMEPAGE = "http://www.openezx.org"
5 LICENSE = "GPL"
6 DEPENDS += "quilt-native"
7 EZX = "ezx0"
8 PR = "${EZX}-r2"
9
10 DEFAULT_PREFERENCE = "-1"
11 DEFAULT_PREFERENCE_rokr-e2 = "1"
12
13 inherit kernel
14
15 KERNEL_RELEASE = "2.6.20-rc2"
16
17 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx"
18
19 RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
20 DMSRC = "http://people.openezx.org/dotmonkey/patch"
21
22 ##############################################################
23 # source and patches
24 #
25 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2 \
26            ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/testing/patch-2.6.20-rc2.bz2;patch=1 \
27            ${DMSRC}/Kconfig.patch;patch=1;pnum=5 \
28            ${DMSRC}/Makefile.patch;patch=1;pnum=5 \
29            ${DMSRC}/head-xscale.S.patch;patch=1;pnum=5 \ 
30            ${DMSRC}/sumatra.c.patch;patch=1;pnum=1 \
31            ${DMSRC}/uncompress.h.patch;patch=1;pnum=5 \
32            file://logo_linux_clut224.ppm \ 
33            file://defconfig-${MACHINE} \
34            file://wyrm-ts.diff;patch=1"
35
36 S = "${WORKDIR}/linux-2.6.19"
37
38 ##############################################################
39 # kernel image resides on a seperate flash partition (for now)
40 #
41 FILES_kernel-image = ""
42 ALLOW_EMPTY  = "1"
43
44 COMPATIBLE_HOST = "arm.*-linux"
45 COMPATIBLE_MACHINE = '(a780|e680|a1200|rokr-e2)'
46
47 CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd"
48 CMDLINE_CON_rokr-e2 = "video=pxafb:mode:240x320-8,active console=ttyS2,115200n8 console=tty1"
49
50 CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
51 # uncomment if you want to boot over NFS
52 #CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
53 # uncomment to enable dyntick
54 #CMDLINE_OTHER = "dyntick=enable"
55 CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
56 CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
57 CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000"
58 CMDLINE_rokr-e2 = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
59
60 ###############################################################
61 # module configs specific to this kernel
62 #
63 module_autoload_pxaficp_ir = "pxaficp_ir"
64 module_autoload_snd-pcm-oss = "snd-pcm-oss"
65
66 do_ezxpatch() {
67         #mv ${WORKDIR}/patches ${S} && cd ${S} && quilt push -av
68         #rm -Rf patches .pc
69         :
70 }
71
72 do_configure() {
73         install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
74
75         if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
76                 die "No default configuration for ${MACHINE} available."
77         fi
78
79         echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
80
81         if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
82                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
83                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
84         else
85                 echo "# CONFIG_AEABI is not set"        >> ${S}/.config
86                 echo "# CONFIG_OABI_COMPAT is not set"  >> ${S}/.config
87         fi
88
89         sed -e '/CONFIG_AEABI/d' \
90             -e '/CONFIG_OABI_COMPAT=/d' \
91             -e '/CONFIG_CMDLINE=/d' \
92             -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
93             -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
94             -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
95             -e '/CONFIG_MTDRAM_ABS_POS=/d' \
96             '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config'
97
98         yes '' | oe_runmake oldconfig
99 }
100
101 ###############################################################
102 # check the kernel is below the 1024*1024 byte limit for the boot-over usb
103 #
104 do_compile_append() {
105         size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
106         if [ $size -ge 1294336 ]; then
107                 rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
108                 echo "Size is $size"
109                 die "This kernel is too big for your EZX Phone. Please reduce the size of the kernel by making more of it modular."
110         fi
111 }
112
113 ###############################################################
114 # put into deploy directory
115 #
116 do_deploy() {
117         install -d ${DEPLOY_DIR_IMAGE}
118         install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
119         tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib
120 }
121
122 do_deploy[dirs] = "${S}"
123
124 addtask deploy before do_package after do_install
125 addtask ezxpatch before do_patch after do_unpack