diff options
-rw-r--r-- | documentation/poky-ref-manual/ref-variables.xml | 88 |
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/<bsp_name>/<bsp-name>-<kernel-type>.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> |