summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel-yocto.bbclass71
-rw-r--r--meta/conf/distro/include/poky-default-revisions.inc2
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-stable_git.bb10
-rw-r--r--meta/recipes-kernel/linux/linux-yocto.inc4
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_git.bb4
5 files changed, 22 insertions, 69 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 4c52bca43a..15802fabdf 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -1,61 +1,5 @@
1S = "${WORKDIR}/linux" 1S = "${WORKDIR}/linux"
2 2
3# Determine which branch to fetch and build. Not all branches are in the
4# upstream repo (but will be locally created after the fetchers run) so
5# a fallback branch needs to be chosen.
6#
7# The default machine 'UNDEFINED'. If the machine is not set to a specific
8# branch in this recipe or in a recipe extension, then we fallback to a
9# branch that is always present 'standard'. This sets the KBRANCH variable
10# and is used in the SRC_URI. The machine is then set back to ${MACHINE},
11# since futher processing will use that to create local branches
12
13SRCPV_prepend = "${@yoctokernel_variables_fixup(d)}"
14
15def yoctokernel_variables_fixup(d):
16 if d.getVar("PVFIXUPDONE", False) is "done":
17 return ""
18
19 import bb, re, string
20
21 version = bb.data.getVar("LINUX_VERSION", d, 1)
22 # 2.6.34 signifies the old-style tree, so we need some temporary
23 # conditional processing based on the kernel version.
24 if version == "2.6.34":
25 bb.data.setVar("KBRANCH", "${KMACHINE}-${LINUX_KERNEL_TYPE}", d)
26 bb.data.setVar("KMETA", "wrs_meta", d)
27 mach = bb.data.getVar("KMACHINE", d, 1)
28 if mach == "UNDEFINED":
29 bb.data.setVar("KBRANCH", "standard", d)
30 bb.data.setVar("KMACHINE", "${MACHINE}", d)
31 # track the global configuration on a bootstrapped BSP
32 bb.data.setVar("SRCREV_machine", "${SRCREV_meta}", d)
33 bb.data.setVar("BOOTSTRAP", bb.data.expand("${MACHINE}",d) + "-standard", d)
34 else:
35 # The branch for a build is:
36 # yocto/<kernel type>/${KMACHINE} or
37 # yocto/<kernel type>/${KMACHINE}/base
38 mach = bb.data.getVar("KMACHINE_" + bb.data.expand("${MACHINE}",d), d, 1)
39 if mach == None:
40 mach = bb.data.getVar("KMACHINE", d, 1)
41
42 bb.data.setVar("KBRANCH", mach, d)
43 bb.data.setVar("KMETA", "meta", d)
44
45 # drop the "/base" if it was on the KMACHINE
46 kmachine = mach.replace('/base','')
47 # drop everything but the last segment
48 kmachine = os.path.basename( kmachine )
49 # and then write KMACHINE back
50 bb.data.setVar('KMACHINE_' + bb.data.expand("${MACHINE}",d), kmachine, d)
51
52 if mach == "UNDEFINED":
53 bb.data.setVar('KMACHINE_' + bb.data.expand("${MACHINE}",d), bb.data.expand("${MACHINE}",d), d)
54 bb.data.setVar("KBRANCH", "yocto/standard/base", d)
55 bb.data.setVar("BOOTSTRAP", "yocto/standard/" + bb.data.expand("${MACHINE}",d), d)
56 d.setVar("PVFIXUPDONE", "done")
57 return ""
58
59do_patch() { 3do_patch() {
60 cd ${S} 4 cd ${S}
61 if [ -f ${WORKDIR}/defconfig ]; then 5 if [ -f ${WORKDIR}/defconfig ]; then
@@ -63,12 +7,11 @@ do_patch() {
63 fi 7 fi
64 8
65 kbranch=${KBRANCH} 9 kbranch=${KBRANCH}
66 if [ -n "${BOOTSTRAP}" ]; then 10 if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
67 # switch from a generic to a specific branch 11 # switch from a generic to a specific branch
68 kbranch=${BOOTSTRAP} 12 kbranch=${YOCTO_KERNEL_EXTERNAL_BRANCH}
69 fi 13 fi
70 14
71
72 # simply ensures that a branch of the right name has been created 15 # simply ensures that a branch of the right name has been created
73 createme ${ARCH} ${kbranch} ${defconfig} 16 createme ${ARCH} ${kbranch} ${defconfig}
74 if [ $? -ne 0 ]; then 17 if [ $? -ne 0 ]; then
@@ -131,8 +74,14 @@ addtask kernel_checkout before do_patch after do_unpack
131do_kernel_configme() { 74do_kernel_configme() {
132 echo "[INFO] doing kernel configme" 75 echo "[INFO] doing kernel configme"
133 76
77 kbranch=${KBRANCH}
78 if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
79 # switch from a generic to a specific branch
80 kbranch=${YOCTO_KERNEL_EXTERNAL_BRANCH}
81 fi
82
134 cd ${S} 83 cd ${S}
135 configme --reconfig --output ${B} ${KBRANCH} ${MACHINE} 84 configme --reconfig --output ${B} ${kbranch} ${MACHINE}
136 if [ $? -ne 0 ]; then 85 if [ $? -ne 0 ]; then
137 echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" 86 echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
138 exit 1 87 exit 1
@@ -165,7 +114,7 @@ do_validate_branches() {
165 target_meta_head="${SRCREV_meta}" 114 target_meta_head="${SRCREV_meta}"
166 115
167 # nothing to do if bootstrapping 116 # nothing to do if bootstrapping
168 if [ -n "${BOOTSTRAP}" ]; then 117 if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
169 return 118 return
170 fi 119 fi
171 120
diff --git a/meta/conf/distro/include/poky-default-revisions.inc b/meta/conf/distro/include/poky-default-revisions.inc
index 9abc4a55b4..951b3aa6d1 100644
--- a/meta/conf/distro/include/poky-default-revisions.inc
+++ b/meta/conf/distro/include/poky-default-revisions.inc
@@ -59,7 +59,7 @@ SRCREV_pn-gypsy ??= "147"
59SRCREV_pn-inputproto ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" 59SRCREV_pn-inputproto ??= "7203036522ba9d4b224d282d6afc2d0b947711ee"
60SRCREV_pn-inputproto-native ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" 60SRCREV_pn-inputproto-native ??= "7203036522ba9d4b224d282d6afc2d0b947711ee"
61SRCREV_pn-inputproto-nativesdk ??= "7203036522ba9d4b224d282d6afc2d0b947711ee" 61SRCREV_pn-inputproto-nativesdk ??= "7203036522ba9d4b224d282d6afc2d0b947711ee"
62SRCREV_pn-kern-tools-native ??= "fde7ef8fa8043607752563b9b7908f487eb2f7dd" 62SRCREV_pn-kern-tools-native ??= "4f13a46499261ea181fdc13db5459067df08aca7"
63SRCREV_pn-libdrm ??= "3f3c5be6f908272199ccf53f108b1124bfe0a00e" 63SRCREV_pn-libdrm ??= "3f3c5be6f908272199ccf53f108b1124bfe0a00e"
64SRCREV_pn-libfakekey ??= "e8c2e412ea4a417afc1f30e32cb7bdc508b1dccc" 64SRCREV_pn-libfakekey ??= "e8c2e412ea4a417afc1f30e32cb7bdc508b1dccc"
65SRCREV_pn-libgdbus ??= "aeab6e3c0185b271ca343b439470491b99cc587f" 65SRCREV_pn-libgdbus ??= "aeab6e3c0185b271ca343b439470491b99cc587f"
diff --git a/meta/recipes-kernel/linux/linux-yocto-stable_git.bb b/meta/recipes-kernel/linux/linux-yocto-stable_git.bb
index d4bee77c21..3c1e669733 100644
--- a/meta/recipes-kernel/linux/linux-yocto-stable_git.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-stable_git.bb
@@ -1,6 +1,7 @@
1inherit kernel 1inherit kernel
2require linux-yocto.inc 2require linux-yocto.inc
3 3
4KMACHINE = "common_pc"
4KMACHINE_qemux86 = "common_pc" 5KMACHINE_qemux86 = "common_pc"
5KMACHINE_qemux86-64 = "common_pc_64" 6KMACHINE_qemux86-64 = "common_pc_64"
6KMACHINE_qemuppc = "qemu_ppc32" 7KMACHINE_qemuppc = "qemu_ppc32"
@@ -14,20 +15,19 @@ KMACHINE_beagleboard = "beagleboard"
14LINUX_VERSION ?= "2.6.34" 15LINUX_VERSION ?= "2.6.34"
15LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE_EXTENSION}" 16LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE_EXTENSION}"
16 17
18KMETA = wrs_meta
19KBRANCH = ${KMACHINE}-${LINUX_KERNEL_TYPE_EXTENSION}
20
17PR = "r1" 21PR = "r1"
18PV = "${LINUX_VERSION}+git${SRCPV}" 22PV = "${LINUX_VERSION}+git${SRCPV}"
19SRCREV_FORMAT = "meta_machine" 23SRCREV_FORMAT = "meta_machine"
20 24
21COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)" 25COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)"
22 26
23# this performs a fixup on the SRCREV for new/undefined BSPs 27# this performs a fixup on historical kernel types with embedded _'s
24python __anonymous () { 28python __anonymous () {
25 import bb, re, string 29 import bb, re, string
26 30
27 rev = bb.data.getVar("SRCREV_machine", d, 1)
28 if rev == "standard":
29 bb.data.setVar("SRCREV_machine", "${SRCREV_meta}", d)
30
31 kerntype = string.replace(bb.data.expand("${LINUX_KERNEL_TYPE}", d), "_", "-") 31 kerntype = string.replace(bb.data.expand("${LINUX_KERNEL_TYPE}", d), "_", "-")
32 bb.data.setVar("LINUX_KERNEL_TYPE_EXTENSION", kerntype, d) 32 bb.data.setVar("LINUX_KERNEL_TYPE_EXTENSION", kerntype, d)
33} 33}
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 3ad849e46e..03935fa702 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
7# A KMACHINE is the mapping of a yocto $MACHINE to what is built 7# A KMACHINE is the mapping of a yocto $MACHINE to what is built
8# by the kernel. This is typically the branch that should be built, 8# by the kernel. This is typically the branch that should be built,
9# and it can be specific to the machine or shared 9# and it can be specific to the machine or shared
10KMACHINE = "UNDEFINED" 10# KMACHINE = "UNDEFINED"
11 11
12# Set this to 'preempt_rt' in the local.conf if you want a real time kernel 12# Set this to 'preempt_rt' in the local.conf if you want a real time kernel
13LINUX_KERNEL_TYPE ?= standard 13LINUX_KERNEL_TYPE ?= standard
@@ -19,4 +19,4 @@ addtask kernel_configme before do_configure after do_patch
19# Pick up shared functions 19# Pick up shared functions
20inherit kernel-yocto 20inherit kernel-yocto
21 21
22B = "${WORKDIR}/linux-${KMACHINE}-${LINUX_KERNEL_TYPE}-build" 22B = "${WORKDIR}/linux-${MACHINE}-${LINUX_KERNEL_TYPE}-build"
diff --git a/meta/recipes-kernel/linux/linux-yocto_git.bb b/meta/recipes-kernel/linux/linux-yocto_git.bb
index cc52397006..75c6fb1653 100644
--- a/meta/recipes-kernel/linux/linux-yocto_git.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_git.bb
@@ -1,6 +1,7 @@
1inherit kernel 1inherit kernel
2require linux-yocto.inc 2require linux-yocto.inc
3 3
4KMACHINE = "yocto/standard/base"
4KMACHINE_qemux86 = "yocto/standard/common-pc/base" 5KMACHINE_qemux86 = "yocto/standard/common-pc/base"
5KMACHINE_qemux86-64 = "yocto/standard/common-pc-64/base" 6KMACHINE_qemux86-64 = "yocto/standard/common-pc-64/base"
6KMACHINE_qemuppc = "yocto/standard/qemu-ppc32" 7KMACHINE_qemuppc = "yocto/standard/qemu-ppc32"
@@ -11,6 +12,9 @@ KMACHINE_routerstationpro = "yocto/standard/routerstationpro"
11KMACHINE_mpc8315e-rdb = "yocto/standard/fsl-mpc8315e-rdb" 12KMACHINE_mpc8315e-rdb = "yocto/standard/fsl-mpc8315e-rdb"
12KMACHINE_beagleboard = "yocto/standard/beagleboard" 13KMACHINE_beagleboard = "yocto/standard/beagleboard"
13 14
15KBRANCH = ${KMACHINE}
16KMETA = meta
17
14LINUX_VERSION ?= "2.6.37" 18LINUX_VERSION ?= "2.6.37"
15LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}" 19LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
16PR = "r15" 20PR = "r15"