summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/poky-ref-manual/ref-variables.xml88
1 files changed, 88 insertions, 0 deletions
diff --git a/documentation/poky-ref-manual/ref-variables.xml b/documentation/poky-ref-manual/ref-variables.xml
index f83844e0a7..9a4e56043e 100644
--- a/documentation/poky-ref-manual/ref-variables.xml
+++ b/documentation/poky-ref-manual/ref-variables.xml
@@ -1128,6 +1128,94 @@ recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
1128 </glossdef> 1128 </glossdef>
1129 </glossentry> 1129 </glossentry>
1130 1130
1131 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
1132 <glossdef>
1133 <para>
1134 The machine as known by the kernel.
1135 Sometimes the machine name used by the kernel does not match the machine name
1136 used by the OpenEmbedded build system.
1137 For example, the machine name that the OpenEmbedded build system understands as
1138 <filename>qemuarm</filename> goes by a different name in the Linux Yocto kernel.
1139 The kernel understands that machine as <filename>arm_versatile926ejs</filename>.
1140 For cases like these, the <filename>KMACHINE</filename> variable maps the
1141 kernel machine name to the OpenEmbedded build system machine name.
1142 </para>
1143
1144 <para>
1145 Kernel machine names are initially defined in the
1146 <ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink> in
1147 the <filename>meta/cfg/kernel-cache/bsp/&lt;bsp_name&gt;/&lt;bsp-name&gt;-&lt;kernel-type&gt;.scc</filename> file.
1148 For example, in the <filename>linux-yocto-3.4</filename> kernel in the
1149 <filename>meta/cfg/kernel-cache/bsp/cedartrail/cedartrail-standard.scc</filename> file,
1150 has the following:
1151 <literallayout class='monospaced'>
1152 define KMACHINE cedartrail
1153 define KTYPE standard
1154 define KARCH i386
1155
1156 include ktypes/standard
1157 branch cedartrail
1158
1159 include cedartrail.scc
1160 </literallayout>
1161 You can see that the kernel understands the machine name for the Cedar Trail BSP as
1162 <filename>cedartrail</filename>.
1163 </para>
1164
1165 <para>
1166 If you look in the Cedar Trail BSP layer in the <filename>meta-intel</filename> source
1167 repository at <filename>meta-cedartrail/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>,
1168 you will find the following statements among others:
1169 <literallayout class='monospaced'>
1170 COMPATIBLE_MACHINE_cedartrail = "cedartrail"
1171 KMACHINE_cedartrail = "cedartrail"
1172 KBRANCH_cedartrail = "yocto/standard/cedartrail"
1173 KERNEL_FEATURES_append_cedartrail += "bsp/cedartrail/cedartrail-pvr-merge.scc"
1174 KERNEL_FEATURES_append_cedartrail += "cfg/efi-ext.scc"
1175
1176 COMPATIBLE_MACHINE_cedartrail-nopvr = "cedartrail"
1177 KMACHINE_cedartrail-nopvr = "cedartrail"
1178 KBRANCH_cedartrail-nopvr = "yocto/standard/cedartrail"
1179 KERNEL_FEATURES_append_cedartrail-nopvr += " cfg/smp.scc"
1180 </literallayout>
1181 The <filename>KMACHINE</filename> statements in the kernel's append file make sure that
1182 the OpenEmbedded build system and the Yocto Linux kernel understand the same machine
1183 names.
1184 </para>
1185
1186 <para>
1187 This append file uses two <filename>KMACHINE</filename> statements.
1188 The first is not really necessary but does ensure that the machine known to the
1189 OpenEmbedded build system as <filename>cedartrail</filename> maps to the machine
1190 in the kernel also known as <filename>cedartrail</filename>:
1191 <literallayout class='monospaced'>
1192 KMACHINE_cedartrail = "cedartrail"
1193 </literallayout>
1194 </para>
1195
1196 <para>
1197 The second statement is a good example of why the <filename>KMACHINE</filename> variable
1198 is needed.
1199 In this example, the OpenEmbedded build system uses the <filename>cedartrail-nopvr</filename>
1200 machine name to refer to the Cedar Trail BSP that does not support the propriatory
1201 PowerVR driver.
1202 The kernel, however, uses the machine name <filename>cedartrail</filename>.
1203 Thus, the append file must map the <filename>cedartrail-nopvr</filename> machine name to
1204 the kernel's <filename>cedartrail</filename> name:
1205 <literallayout class='monospaced'>
1206 KMACHINE_cedartrail-nopvr = "cedartrail"
1207 </literallayout>
1208 </para>
1209
1210 <para>
1211 BSPs that ship with the Yocto Project release provide all mappings between the Yocto
1212 Project kernel machine names and the OpenEmbedded machine names.
1213 Be sure to use the <filename>KMACHINE</filename> if you create a BSP and the machine
1214 name you use is different than that used in the kernel.
1215 </para>
1216 </glossdef>
1217 </glossentry>
1218
1131 </glossdiv> 1219 </glossdiv>
1132 1220
1133 <glossdiv id='var-glossary-l'><title>L</title> 1221 <glossdiv id='var-glossary-l'><title>L</title>