summaryrefslogtreecommitdiffstats
path: root/meta/packages/linux/linux-openzaurus.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/linux/linux-openzaurus.inc')
-rw-r--r--meta/packages/linux/linux-openzaurus.inc199
1 files changed, 199 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-openzaurus.inc b/meta/packages/linux/linux-openzaurus.inc
new file mode 100644
index 0000000000..984002784a
--- /dev/null
+++ b/meta/packages/linux/linux-openzaurus.inc
@@ -0,0 +1,199 @@
1DESCRIPTION = "2.6 Linux Development Kernel for Zaurus devices and iPAQ hx2750."
2SECTION = "kernel"
3MAINTAINER = "Richard Purdie <rpurdie@rpsys.net>, \
4 Michael 'Mickey' Lauer <mickey@vanille.de>, \
5 Marcin 'Hrw' Juszkiewicz <openembedded@hrw.one.pl>"
6LICENSE = "GPL"
7
8inherit kernel
9
10RPROVIDES_kernel-image += "hostap-modules"
11
12DOSRC = "http://www.do13.de/openzaurus/patches"
13RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
14JLSRC = "http://www.cs.wisc.edu/~lenz/zaurus/files"
15BASRC = "http://www.orca.cx/zaurus/patches"
16CHSRC = "http://oz.drigon.com/patches"
17
18##############################################################
19# Compensate for sucky bootloader on all Sharp Zaurus models
20#
21FILES_kernel-image = ""
22ALLOW_EMPTY = 1
23
24EXTRA_OEMAKE = "OPENZAURUS_RELEASE=-${DISTRO_VERSION}"
25COMPATIBLE_HOST = "arm.*-linux"
26COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|ipaq-pxa270|qemuarm)'
27
28CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd"
29CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2"
30CMDLINE_ROOT_spitz = "root=/dev/hda1 rootfstype=ext3 rw"
31CMDLINE_OTHER = "dyntick=enable"
32CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
33
34##############################################################
35# Configure memory/ramdisk split for collie
36#
37export mem = ${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "32"}
38export rd = ${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "32"}
39
40CMDLINE_MEM_collie = "mem=${mem}M"
41CMDLINE_ROTATE_spitz = "fbcon=rotate:1"
42CMDLINE_ROTATE_akita = "fbcon=rotate:1"
43CMDLINE_ROTATE_collie = "fbcon=rotate:1"
44CMDLINE_ROTATE_poodle = "fbcon=rotate:1"
45CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_MEM} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
46
47###############################################################
48# Enable or disable ELPP via local.conf - default is "no"
49#
50ENABLE_ELPP = ${@bb.data.getVar("OZ_KERNEL_ENABLE_ELPP",d,1) or "no"}
51
52###############################################################
53# module configs specific to this kernel
54#
55module_autoload_pxaficp_ir = "pxaficp_ir"
56module_autoload_snd-pcm-oss = "snd-pcm-oss"
57module_autoload_snd-soc-corgi_c7x0 = "snd-soc-corgi"
58module_autoload_snd-soc-spitz_akita = "snd-soc-spitz"
59module_autoload_snd-soc-spitz_spitz = "snd-soc-spitz"
60
61do_configure() {
62 rm -f ${S}/.config
63
64 if [ "${MACHINE}" == "tosa" ]; then
65 gcc_version=`${KERNEL_CC} -dumpversion`
66 if [ "${gcc_version}" == "4.0.1" ] || [ "${gcc_version}" == "4.0.2" ]; then
67 die "tosa kernel wont work with gcc 4.0.x"
68 fi
69 fi
70
71 if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
72 die "No default configuration for ${MACHINE} available."
73 fi
74
75 if [ "${MACHINE}" == "collie" ]; then
76 mempos=`echo "obase=16; $mem * 1024 * 1024" | bc`
77 rdsize=`echo "$rd * 1024" | bc`
78 total=`expr $mem + $rd`
79 addr=`echo "obase=16; ibase=16; C0000000 + $mempos" | bc`
80 if [ "$rd" == "0" ]
81 then
82 echo "No RAMDISK"
83 echo "# CONFIG_MTD_MTDRAM_SA1100 is not set" >> ${S}/.config
84 else
85 echo "RAMDIR = $rdsize on $addr"
86 echo "CONFIG_MTD_MTDRAM_SA1100=y" >> ${S}/.config
87 echo "CONFIG_MTDRAM_TOTAL_SIZE=$rdsize" >> ${S}/.config
88 echo "CONFIG_MTDRAM_ERASE_SIZE=1" >> ${S}/.config
89 echo "CONFIG_MTDRAM_ABS_POS=$addr" >> ${S}/.config
90 fi
91 fi
92
93 echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
94
95 #if [ "${ENABLE_ELPP}" == "yes" ]; then
96 # echo "# Enhanced Linux Progress Patch" >> ${S}/.config
97 # echo "CONFIG_FB_ELPP=y" >> ${S}/.config
98 # echo "CONFIG_LOGO=y" >> ${S}/.config
99 # echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
100 #else
101 # echo "# CONFIG_FB_ELPP is not set" >> ${S}/.config
102 #fi
103
104 if [ "${TARGET_OS}" == "linux-gnueabi" ]; then
105 echo "CONFIG_AEABI=y" >> ${S}/.config
106 echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
107 else
108 echo "# CONFIG_AEABI is not set" >> ${S}/.config
109 echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
110 fi
111
112 if [ "${DISTRO}" == "openzaurus" ]; then
113 case ${MACHINE} in
114 c7x0 | akita | spitz )
115 echo "CONFIG_LOGO_OZ640_CLUT224=y" >> ${S}/.config
116 echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
117 echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
118 ;;
119 tosa )
120 echo "CONFIG_LOGO_OZ480_CLUT224=y" >> ${S}/.config
121 echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
122 echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
123 ;;
124 poodle | collie )
125 echo "CONFIG_LOGO_OZ240_CLUT224=y" >> ${S}/.config
126 echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
127 echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
128 ;;
129 esac
130 echo "CONFIG_LOGO=y" >> ${S}/.config
131 echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config
132 echo "# CONFIG_LOGO_OHAND_CLUT224 is not set" >> ${S}/.config
133 elif [ "${DISTRO}" == "poky" ]; then
134 echo "CONFIG_LOGO=y" >> ${S}/.config
135 echo "CONFIG_LOGO_OHAND_CLUT224=y" >> ${S}/.config
136 echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
137 echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
138 echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
139 echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config
140 else
141 echo "# CONFIG_LOGO is not set" >> ${S}/.config
142 echo "# CONFIG_LOGO_OHAND_CLUT224 is not set" >> ${S}/.config
143 echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config
144 echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
145 echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
146 echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
147 fi
148
149 sed -e '/CONFIG_AEABI/d' \
150 -e '/CONFIG_OABI_COMPAT=/d' \
151 -e '/CONFIG_CMDLINE=/d' \
152 -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
153 -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
154 -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
155 -e '/CONFIG_MTDRAM_ABS_POS=/d' \
156 -e '/CONFIG_LOGO=/d' \
157 -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
158 -e '/CONFIG_LOGO_OHAND_CLUT224=/d' \
159 -e '/CONFIG_LOGO_OZ240_CLUT224=/d' \
160 -e '/CONFIG_LOGO_OZ480_CLUT224=/d' \
161 -e '/CONFIG_LOGO_OZ640_CLUT224=/d' \
162 '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config'
163
164 yes '' | oe_runmake oldconfig
165}
166
167# Check the kernel is below the 1264*1024 byte limit for the PXA Zaurii
168do_compile_append() {
169 case ${MACHINE} in
170 c7x0 | akita | poodle | spitz | tosa )
171 size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
172 if [ $size -ge 1294336 ]; then
173 rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
174 echo "Size is $size"
175 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."
176 fi
177 ;;
178 collie )
179 size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
180 if [ $size -ge 1048576 ]; then
181 rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
182 echo "Size is $size"
183 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."
184 fi
185 ;;
186 *)
187 ;;
188 esac
189}
190
191do_deploy() {
192 install -d ${DEPLOY_DIR_IMAGE}
193 install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
194 tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib
195}
196
197do_deploy[dirs] = "${S}"
198
199addtask deploy before do_package after do_install