summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README432
1 files changed, 0 insertions, 432 deletions
diff --git a/README b/README
deleted file mode 100644
index 0950e906..00000000
--- a/README
+++ /dev/null
@@ -1,432 +0,0 @@
1meta-intel
2==========
3
4This README file contains information on building and booting
5meta-intel BSP layers. Please see the corresponding sections below
6for details.
7
8
9Yocto Project Compatible
10========================
11
12The BSPs contained in this layer are compatible with the Yocto Project
13as per the requirements listed here:
14
15 https://www.yoctoproject.org/webform/yocto-project-compatible-registration
16
17
18Dependencies
19============
20
21This layer depends on:
22
23 URI: git://git.openembedded.org/bitbake
24 branch: master
25
26 URI: git://git.openembedded.org/openembedded-core
27 layers: meta
28 branch: master
29
30
31Table of Contents
32=================
33
34 I. Overview
35 II. Building and booting meta-intel BSP layers
36 a. Building the intel-common BSP layers
37 b. Booting the intel-common BSP images
38 III. Technical Miscellany
39 Benefits of using meta-intel
40 The intel-common kernel package architecture
41 Intel-specific machine features
42 IV. Tested Hardware
43 V. Guidelines for submitting patches
44
45
46I. Overview
47===========
48
49This is the location for Intel-maintained BSPs.
50
51For details on the intel-common, see the information below.
52
53For all others, please see the README files contained in the
54individual BSP layers for BSP-specific information.
55
56If you have problems with or questions about a particular BSP, please
57contact the maintainer listed in the MAINTAINERS file directly (cc:ing
58the Yocto mailing list puts it in the archive and helps other people
59who might have the same questions in the future), but please try to do
60the following first:
61
62 - look in the Yocto Project Bugzilla
63 (http://bugzilla.yoctoproject.org/) to see if a problem has
64 already been reported
65
66 - look through recent entries of the meta-intel
67 (https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto
68 (https://lists.yoctoproject.org/pipermail/yocto/) mailing list
69 archives to see if other people have run into similar problems or
70 had similar questions answered.
71
72If you believe you have encountered a bug, you can open a new bug and
73enter the details in the Yocto Project Bugzilla
74(http://bugzilla.yoctoproject.org/). If you're relatively certain
75that it's a bug against the BSP itself, please use the 'Yocto Project
76Components: BSPs | meta-intel' category for the bug; otherwise, please
77submit the bug against the most likely category for the problem - if
78you're wrong, it's not a big deal and the bug will be recategorized
79upon triage.
80
81
82II. Building and booting meta-intel BSP layers
83==============================================
84
85The following sections contain information on building and booting the
86BSPs contained in the meta-intel layer.
87
88Note that these instructions specifically cover the intel-common, which
89may or may not be applicable to other BSPs contained in this layer - if
90a given BSP contains its own README, that version should be used instead,
91and these instructions can be ignored.
92
93a. Building the intel-common BSP layers
94-------------------------------------------------
95
96In order to build an image with BSP support for a given release, you
97need to download the corresponding BSP tarball from the 'Board Support
98Package (BSP) Downloads' page of the Yocto Project website (or
99equivalently, check out the appropriate branch from the meta-intel git
100repository, see below). For the intel-common BSPs, those tarballs would
101correspond to the following choices in the BSP downloads section:
102
103 - Intel-core2-32 IntelĀ® Common Core BSP (Intel-core2-32)
104 - Intel-corei7-64 IntelĀ® Common Core BSP (Intel-corei7-64)
105
106The intel-* BSPs, also known as the intel-common BSPs, provide a few
107carefully selected tune options and generic hardware support to cover
108the majority of current Intel CPUs and devices. The naming follows the
109convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type
110(used with mtune and march typically) and BITS is either 32 bit or 64
111bit.
112
113Having done that, and assuming you extracted the BSP tarball contents
114at the top-level of your yocto build tree, you can build a BSP image
115by adding the location of the meta-intel layer to bblayers.conf e.g.:
116
117 yocto/meta-intel \
118
119To enable a particular machine, you need to add a MACHINE line naming
120the BSP to the local.conf file:
121
122 MACHINE ?= "xxx"
123
124where 'xxx' is replaced by one of the following BSP names:
125
126 - intel-core2-32
127
128 This BSP is optimized for the Core2 family of CPUs as well as all
129 Atom CPUs prior to the Silvermont core.
130
131 - intel-corei7-64
132
133 This BSP is optimized for Nehalem and later Core and Xeon CPUs as
134 well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
135
136You should then be able to build an image as such:
137
138 $ source oe-init-build-env
139 $ bitbake core-image-sato
140
141At the end of a successful build, you should have an image that
142you can boot from a USB flash drive (see instructions on how to do
143that below, in the section 'Booting the intel-common BSP images').
144
145As an alternative to downloading the BSP tarball, you can also work
146directly from the meta-intel git repository. For each BSP in the
147'meta-intel' repository, there are multiple branches, one
148corresponding to each major release starting with 'laverne' (0.90), in
149addition to the latest code which tracks the current master (note that
150not all BSPs are present in every release). Instead of extracting
151a BSP tarball at the top level of your yocto build tree, you can
152equivalently check out the appropriate branch from the meta-intel
153repository at the same location.
154
155b. Booting the intel-common BSP images
156--------------------------------------
157
158If you've built your own image, either from the downloaded BSP layer
159or from the meta-intel git repository, you'll find the bootable
160image in the build/tmp/deploy/images/xxx directory, where again
161'xxx' refers to the machine name used in the build.
162
163Under Linux, insert a USB flash drive. Assuming the USB flash drive
164takes device /dev/sdf, use dd to copy the image to it. Before the image
165can be burned onto a USB drive, it should be un-mounted. Some Linux distros
166may automatically mount a USB drive when it is plugged in. Using USB device
167/dev/sdf as an example, find all mounted partitions:
168
169 $ mount | grep sdf
170
171and un-mount those that are mounted, for example:
172
173 $ umount /dev/sdf1
174 $ umount /dev/sdf2
175
176Now burn the image onto the USB drive:
177
178 $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
179 $ sync
180 $ eject /dev/sdf
181
182This should give you a bootable USB flash device. Insert the device
183into a bootable USB socket on the target, and power on. This should
184result in a system booted to the Sato graphical desktop.
185
186If you want a terminal, use the arrows at the top of the UI to move to
187different pages of available applications, one of which is named
188'Terminal'. Clicking that should give you a root terminal.
189
190If you want to ssh into the system, you can use the root terminal to
191ifconfig the IP address and use that to ssh in. The root password is
192empty, so to log in type 'root' for the user name and hit 'Enter' at
193the Password prompt: and you should be in.
194
195If you find you're getting corrupt images on the USB (it doesn't show
196the syslinux boot: prompt, or the boot: prompt contains strange
197characters), try doing this first:
198
199 $ dd if=/dev/zero of=/dev/sdf bs=1M count=512
200
201III. Technical Miscellany
202=========================
203
204Benefits of using meta-intel
205----------------------------
206
207Using meta-intel has the following benefits over a generic BSP:
208
209tune flags
210++++++++++
211intel-* MACHINEs each have different compilation flags appropriate for their
212targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern
21364-bit Intel Core i microarchitecture, and includes instruction sets up to
214SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2
215microarchitecture, and includes instruction sets up to SSE3.
216
217linux-intel kernel
218++++++++++++++++++
219The linux-intel kernel is an initiative to bring better Intel(R) hardware
220support to the current LTS linux kernel. It contains a base LTS kernel with
221additional backports from upstream Intel drivers. In addition, a default kernel
222config containing most features found on Intel boards is supplied via the
223yocto-kernel-cache.
224
225graphics stack
226++++++++++++++
227Meta-intel provides the latest Intel Graphics Linux Stack drivers to support
228Intel hardware as defined by the https://01.org/linuxgraphics.
229
230Other software
231++++++++++++++
232 * intel ucode - provides the latest microcode updates for Intel processors
233
234 * thermald - which proactively controls thermal, using P-states, T-states, and
235the Intel power clamp driver.
236(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon)
237
238The intel-common kernel package architecture
239--------------------------------------------
240
241These BSPs use what we call the intel-common Linux kernel package
242architecture. This includes core2-32-intel-common and
243corei7-64-intel-common. These kernel packages can also be used by any
244of the BSPs in meta-intel that choose to include the
245intel-common-pkgarch.inc file.
246
247To minimize the proliferation of vendor trees, reduce the sources we
248must support, and consolidate QA efforts, all BSP maintainers are
249encouraged to make use of the intel-common Linux kernel package
250architecture.
251
252Intel-specific machine features
253-------------------------------
254
255The meta-intel layer makes some additional machine features available
256to BSPs. These machine features can be used in a BSP layer in the
257same way that machine features are used in other layers based on
258oe-core, via the MACHINE_FEATURES variable.
259
260Requirements
261++++++++++++
262
263The meta-intel-specific machine features are only available to a BSP
264when the meta-intel layer is included in the build configuration, and
265the meta-intel.inc file is included in the machine configuration of
266that BSP.
267
268To make these features available for your machine, you will need to:
269
270 1. include a configuration line such as the below in bblayers.conf
271 BBLAYERS += "<local path>/meta-intel"
272 2. include the following line in the machine configuration file
273 require conf/machine/include/meta-intel.inc
274
275Once the above requirements are met, the machine features provided by
276the meta-intel layer will be available for the BSP to use.
277
278Available machine features
279++++++++++++++++++++++++++
280
281Currently, the meta-intel layer makes the following set of
282Intel-specific machine features available:
283
284 * intel-ucode
285
286These machine features can be included by listing them in the
287MACHINE_FEATURES variable in the machine configuration file. For
288example:
289
290 MACHINE_FEATURES += "intel-ucode"
291
292Machine feature details
293+++++++++++++++++++++++
294
295 * intel-ucode
296
297 This feature provides support for microcode updates to Intel
298 processors. The intel-ucode feature runs at early boot and uses
299 the microcode data file added by the feature into the BSP's
300 initrd. It also puts the userland microcode-updating tool,
301 iucode_tool, into the target images along with the microcode data
302 file.
303
304 Q. Why might a user want to enable the intel-ucode feature?
305
306 A. Intel releases microcode updates to correct processor behavior
307 as documented in the respective processor specification
308 updates. While the normal approach to getting such microcode
309 updates is via a BIOS upgrade, this can be an administrative
310 hassle and not always possible in the field. The intel-ucode
311 feature enables the microcode update capability present in the
312 Linux kernel. It provides an easy path for upgrading processor
313 microcode without the need to change the BIOS. If the feature
314 is enabled, it is also possible to update the existing target
315 images with a newer microcode update in the future.
316
317 Q. How would a user bundle only target-specific microcode in the
318 target image?
319
320 A. The Intel microcode data file released by Intel contains
321 microcode updates for multiple processors. If the BSP image is
322 meant to run on only a certain subset of processor types, a
323 processor-specific subset of microcode can be bundled into the
324 target image via the UCODE_FILTER_PARAMETERS variable. This
325 works by listing a sequence of iucode-tool parameters in the
326 UCODE_FILTER_PARAMETERS variable, which in this case will
327 select only the specific microcode relevant to the BSP. For
328 more information on the underlying parameters refer to the
329 iucode-tool manual page at http://manned.org/iucode-tool
330
331 To define a set of parameters for microcode-filtering via the
332 UCODE_FILTER_PARAMETERS variable, one needs to identify the
333 cpuid signatures of all the processors the BSP is meant to run
334 on. One way to determine the cpuid signature for a specific
335 processor is to build and run an intel-ucode-feature-enabled
336 image on the target hardware, without first assigning any value
337 to the UCODE_FILTER_PARAMETERS variable, and then once the
338 image is booted, run the "ucode_tool -S" command to have the
339 ucode tool scan the system for processor signatures. These
340 signatures can then be used in the UCODE_FILTER_PARAMETERS
341 variable in conjunction with -s parameter. For example, for
342 the fri2 BSP, the cpuid can be determined as such:
343
344 [root@fri2 ~]# iucode_tool -S
345 iucode_tool: system has processor(s) with signature 0x00020661
346
347 Given that output, a suitable UCODE_FILTER_PARAMETERS variable
348 definition could be specified in the machine configuration as
349 such:
350
351 UCODE_FILTER_PARAMETERS = "-s 0x00020661"
352
353 Q. Are there any reasons a user might want to disable the
354 intel-ucode feature?
355
356 A. The microcode data file and associated tools occupy a small
357 amount of space (a few KB) on the target image. BSPs which are
358 highly sensitive to target image size and which are not
359 experiencing microcode-related issues might consider not
360 enabling this feature.
361
362
363IV. Tested Hardware
364===================
365
366The following undergo regular basic testing with their respective MACHINE types.
367Note that both 64-bit and 32-bit firmware is available for the MinnowBoard
368Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
369
370intel-corei7-64:
371 NUC6i5SYH
372 MinnowBoard Turbot
373
374intel-core2-32:
375 MinnowBoard Turbot
376
377
378V. Guidelines for submitting patches
379====================================
380
381Please submit any patches against meta-intel BSPs to the meta-intel
382mailing list (meta-intel@yoctoproject.org). Also, if your patches are
383available via a public git repository, please also include a URL to
384the repo and branch containing your patches as that makes it easier
385for maintainers to grab and test your patches.
386
387There are patch submission scripts available that will, among other
388things, automatically include the repo URL and branch as mentioned.
389Please see the Yocto Project Development Manual sections entitled
390'Using Scripts to Push a Change Upstream and Request a Pull' and
391'Using Email to Submit a Patch' for details.
392
393Regardless of how you submit a patch or patchset, the patches should
394at minimum follow the suggestions outlined in the 'Submitting a Change
395to the Yocto Project' section in the Yocto Project Development Manual.
396Specifically, they should:
397
398 - Include a 'Signed-off-by:' line. A commit can't legally be pulled
399 in without this.
400
401 - Provide a single-line, short summary of the change. This short
402 description should be prefixed by the BSP or recipe name, as
403 appropriate, followed by a colon. Capitalize the first character
404 of the summary (following the colon).
405
406 - For the body of the commit message, provide detailed information
407 that describes what you changed, why you made the change, and the
408 approach you used.
409
410 - If the change addresses a specific bug or issue that is associated
411 with a bug-tracking ID, include a reference to that ID in your
412 detailed description in the following format: [YOCTO #<bug-id>].
413
414 - Pay attention to line length - please don't allow any particular
415 line in the commit message to stretch past 72 characters.
416
417 - For any non-trivial patch, provide information about how you
418 tested the patch, and for any non-trivial or non-obvious testing
419 setup, provide details of that setup.
420
421Doing a quick 'git log' in meta-intel will provide you with many
422examples of good example commits if you have questions about any
423aspect of the preferred format.
424
425The meta-intel maintainers will do their best to review and/or pull in
426a patch or patchset within 24 hours of the time it was posted. For
427larger and/or more involved patches and patchsets, the review process
428may take longer.
429
430Please see the meta-intel/MAINTAINERS file for the list of maintainers
431and their specific areas; it's also a good idea to cc: the specific
432maintainer, if applicable.