summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2015-03-06 07:57:02 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-03-10 11:08:34 +0000
commit7727a1608a4238d4305eb9493803721b54c3db6a (patch)
tree8b2ab3d7725eef6921e185f4a161d3a4eb8538f5 /documentation/ref-manual
parent2a5344e47209196ba712aff6f5df20d8fc3939f1 (diff)
downloadpoky-7727a1608a4238d4305eb9493803721b54c3db6a.tar.gz
ref-manual: Updated the KMACHINE variable description.
The example was ancient so I consulted Bruce Ashfield for a better example and implemented it. (From yocto-docs rev: e737f380ca5bb36c0095f11182cd3e3a93791e61) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/ref-manual')
-rw-r--r--documentation/ref-manual/ref-variables.xml106
1 files changed, 28 insertions, 78 deletions
diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml
index 1135728fd2..a79d8e5bcb 100644
--- a/documentation/ref-manual/ref-variables.xml
+++ b/documentation/ref-manual/ref-variables.xml
@@ -6085,92 +6085,42 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
6085 <glossdef> 6085 <glossdef>
6086 <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> 6086 <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" />
6087 The machine as known by the kernel. 6087 The machine as known by the kernel.
6088 Sometimes the machine name used by the kernel does not match the machine name 6088 Sometimes the machine name used by the kernel does not
6089 used by the OpenEmbedded build system. 6089 match the machine name used by the OpenEmbedded build
6090 For example, the machine name that the OpenEmbedded build system understands as 6090 system.
6091 <filename>qemuarm</filename> goes by a different name in the Linux Yocto kernel. 6091 For example, the machine name that the OpenEmbedded build
6092 The kernel understands that machine as <filename>arm_versatile926ejs</filename>. 6092 system understands as
6093 For cases like these, the <filename>KMACHINE</filename> variable maps the 6093 <filename>core2-32-intel-common</filename> goes by a
6094 kernel machine name to the OpenEmbedded build system machine name. 6094 different name in the Linux Yocto kernel.
6095 The kernel understands that machine as
6096 <filename>intel-core2-32</filename>.
6097 For cases like these, the <filename>KMACHINE</filename>
6098 variable maps the kernel machine name to the OpenEmbedded
6099 build system machine name.
6095 </para> 6100 </para>
6096 6101
6097 <para> 6102 <para>
6098 Kernel machine names are initially defined in the 6103 These mappings between different names occur in the
6099 Yocto Linux Kernel's <filename>meta</filename> branch. 6104 Yocto Linux Kernel's <filename>meta</filename> branch.
6100 From the <filename>meta</filename> branch, look in 6105 As an example take a look in the
6101 the <filename>meta/cfg/kernel-cache/bsp/&lt;bsp_name&gt;/&lt;bsp-name&gt;-&lt;kernel-type&gt;.scc</filename> file. 6106 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
6102 For example, from the <filename>meta</filename> branch in the 6107 file:
6103 <filename>linux-yocto-3.0</filename> kernel, the
6104 <filename>meta/cfg/kernel-cache/bsp/cedartrail/cedartrail-standard.scc</filename> file
6105 has the following:
6106 <literallayout class='monospaced'>
6107 define KMACHINE cedartrail
6108 define KTYPE standard
6109 define KARCH i386
6110
6111 include ktypes/standard
6112 branch cedartrail
6113
6114 include cedartrail.scc
6115 </literallayout>
6116 You can see that the kernel understands the machine name for
6117 the Cedar Trail Board Support Package (BSP) as
6118 <filename>cedartrail</filename>.
6119 </para>
6120
6121 <para>
6122 If you look in the Cedar Trail BSP layer in the
6123 <filename>meta-intel</filename>
6124 <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>
6125 at <filename>meta-cedartrail/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>,
6126 you will find the following statements among others:
6127 <literallayout class='monospaced'>
6128 COMPATIBLE_MACHINE_cedartrail = "cedartrail"
6129 KMACHINE_cedartrail = "cedartrail"
6130 KBRANCH_cedartrail = "yocto/standard/cedartrail"
6131 KERNEL_FEATURES_append_cedartrail += "bsp/cedartrail/cedartrail-pvr-merge.scc"
6132 KERNEL_FEATURES_append_cedartrail += "cfg/efi-ext.scc"
6133
6134 COMPATIBLE_MACHINE_cedartrail-nopvr = "cedartrail"
6135 KMACHINE_cedartrail-nopvr = "cedartrail"
6136 KBRANCH_cedartrail-nopvr = "yocto/standard/cedartrail"
6137 KERNEL_FEATURES_append_cedartrail-nopvr += " cfg/smp.scc"
6138 </literallayout>
6139 The <filename>KMACHINE</filename> statements in the kernel's append file make sure that
6140 the OpenEmbedded build system and the Yocto Linux kernel understand the same machine
6141 names.
6142 </para>
6143
6144 <para>
6145 This append file uses two <filename>KMACHINE</filename> statements.
6146 The first is not really necessary but does ensure that the machine known to the
6147 OpenEmbedded build system as <filename>cedartrail</filename> maps to the machine
6148 in the kernel also known as <filename>cedartrail</filename>:
6149 <literallayout class='monospaced'>
6150 KMACHINE_cedartrail = "cedartrail"
6151 </literallayout>
6152 </para>
6153
6154 <para>
6155 The second statement is a good example of why the <filename>KMACHINE</filename> variable
6156 is needed.
6157 In this example, the OpenEmbedded build system uses the <filename>cedartrail-nopvr</filename>
6158 machine name to refer to the Cedar Trail BSP that does not support the proprietary
6159 PowerVR driver.
6160 The kernel, however, uses the machine name <filename>cedartrail</filename>.
6161 Thus, the append file must map the <filename>cedartrail-nopvr</filename> machine name to
6162 the kernel's <filename>cedartrail</filename> name:
6163 <literallayout class='monospaced'> 6108 <literallayout class='monospaced'>
6164 KMACHINE_cedartrail-nopvr = "cedartrail" 6109 LINUX_VERSION_core2-32-intel-common = "3.19.0"
6110 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
6111 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
6112 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
6113 KMACHINE_core2-32-intel-common = "intel-core2-32"
6114 KBRANCH_core2-32-intel-common = "standard/base"
6115 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
6165 </literallayout> 6116 </literallayout>
6117 The <filename>KMACHINE</filename> statement says that
6118 the kernel understands the machine name as
6119 "intel-core2-32".
6120 However, the OpenEmbedded build system understands the
6121 machine as "core2-32-intel-common".
6166 </para> 6122 </para>
6167 6123
6168 <para>
6169 BSPs that ship with the Yocto Project release provide all mappings between the Yocto
6170 Project kernel machine names and the OpenEmbedded machine names.
6171 Be sure to use the <filename>KMACHINE</filename> if you create a BSP and the machine
6172 name you use is different than that used in the kernel.
6173 </para>
6174 </glossdef> 6124 </glossdef>
6175 </glossentry> 6125 </glossentry>
6176 6126