7336fee762fbdba9da519b3b7ede353294d31469
[openembedded.git] / packages / linux / linux-ezx_2.6.20.7.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}-r0"
9
10 DEFAULT_PREFERENCE = "-1"
11
12
13 inherit kernel
14
15 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx"
16 RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
17
18 ##############################################################
19 # source and patches
20 #
21 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.20.7.tar.bz2 \
22            \
23         file://ezx-core.patch;patch=1 \
24         file://ezx-pcap.patch;patch=1 \
25         file://ezx-mci.patch;patch=1 \
26         file://usb_pxa27x_udc-r3.patch;patch=1 \
27         file://usb_add_epalloc-r3.patch;patch=1 \
28         file://ezx-emu.patch;patch=1 \
29         file://ezx-fix-usb_pxa27x_udc-r3.patch;patch=1 \
30         file://ezx-mtd-map.patch;patch=1 \
31         file://ezx-serial-bug-workaround.patch;patch=1 \
32         file://mux_cli.patch;patch=1 \
33         file://mux-fix.patch;patch=1 \
34         file://mux-fix-init-errorpath.patch;patch=1 \
35         file://mux-remove-flipbuffers.patch;patch=1 \
36         file://mux-remove-get_halted_bit.patch;patch=1 \
37         file://mux-remove-usbh_finished_resume.patch;patch=1 \
38         file://mux-fix-makefile.patch;patch=1 \
39         file://mux-fix-tty-driver.patch;patch=1 \
40         \
41            file://logo_linux_clut224.ppm \
42            file://defconfig-a780 \
43            file://defconfig-e680 \
44           "
45
46 S = "${WORKDIR}/linux-2.6.20.7"
47
48 ##############################################################
49 # kernel image resides on a seperate flash partition (for now)
50 #
51 FILES_kernel-image = ""
52 ALLOW_EMPTY  = "1"
53
54 COMPATIBLE_HOST = "arm.*-linux"
55 COMPATIBLE_MACHINE = '(a780|e680)'
56
57 CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd"
58 CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
59 # uncomment if you want to boot over NFS
60 #CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
61 # uncomment to enable dyntick
62 #CMDLINE_OTHER = "dyntick=enable"
63 CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
64 CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
65 CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000"
66
67 ###############################################################
68 # module configs specific to this kernel
69 #
70 module_autoload_pxaficp_ir = "pxaficp_ir"
71 module_autoload_snd-pcm-oss = "snd-pcm-oss"
72
73 do_configure() {
74         install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
75
76         if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
77                 die "No default configuration for ${MACHINE} available."
78         fi
79
80         echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
81
82         if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
83                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
84                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
85         else
86                 echo "# CONFIG_AEABI is not set"        >> ${S}/.config
87                 echo "# CONFIG_OABI_COMPAT is not set"  >> ${S}/.config
88         fi
89
90         sed -e '/CONFIG_AEABI/d' \
91             -e '/CONFIG_OABI_COMPAT=/d' \
92             -e '/CONFIG_CMDLINE=/d' \
93             -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
94             -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
95             -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
96             -e '/CONFIG_MTDRAM_ABS_POS=/d' \
97             '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config'
98
99         yes '' | oe_runmake oldconfig
100 }
101
102 ###############################################################
103 # check the kernel is below the 1024*1024 byte limit for the boot-over usb
104 #
105 do_compile_append() {
106         size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
107         if [ $size -ge 1294336 ]; then
108                 rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
109                 echo "Size is $size"
110                 echo  "This kernel is too big for your EZX Phone. Please reduce the size of the kernel by making more of it modular."
111         fi
112 }
113
114 ###############################################################
115 # put into deploy directory
116 #
117 do_deploy() {
118         install -d ${DEPLOY_DIR_IMAGE}
119         install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
120         tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib
121 }
122
123 do_deploy[dirs] = "${S}"
124
125 addtask deploy before do_package after do_install