summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README440
1 files changed, 0 insertions, 440 deletions
diff --git a/README b/README
deleted file mode 100644
index 0977e798..00000000
--- a/README
+++ /dev/null
@@ -1,440 +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: 1.38
25
26 URI: git://git.openembedded.org/openembedded-core
27 layers: meta
28 branch: sumo
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 downloaded the BSP tarball, you will find bootable images in
159the /binary directory. If you've built your own image, either from
160the downloaded BSP layer or from the meta-intel git repository, you'll
161find the bootable image in the build/tmp/deploy/images/xxx directory,
162where again 'xxx' refers to the machine name used in the build.
163
164The BSP /binary directory or build contains bootable live images,
165which can be used to directly boot Yocto off of a USB flash drive.
166
167Under Linux, insert a USB flash drive. Assuming the USB flash drive
168takes device /dev/sdf, use dd to copy the image to it. Before the image
169can be burned onto a USB drive, it should be un-mounted. Some Linux distros
170may automatically mount a USB drive when it is plugged in. Using USB device
171/dev/sdf as an example, find all mounted partitions:
172
173 $ mount | grep sdf
174
175and un-mount those that are mounted, for example:
176
177 $ umount /dev/sdf1
178 $ umount /dev/sdf2
179
180Now burn the image onto the USB drive:
181
182 $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
183 $ sync
184 $ eject /dev/sdf
185
186This should give you a bootable USB flash device. Insert the device
187into a bootable USB socket on the target, and power on. This should
188result in a system booted to the Sato graphical desktop.
189
190If you want a terminal, use the arrows at the top of the UI to move to
191different pages of available applications, one of which is named
192'Terminal'. Clicking that should give you a root terminal.
193
194If you want to ssh into the system, you can use the root terminal to
195ifconfig the IP address and use that to ssh in. The root password is
196empty, so to log in type 'root' for the user name and hit 'Enter' at
197the Password prompt: and you should be in.
198
199If you find you're getting corrupt images on the USB (it doesn't show
200the syslinux boot: prompt, or the boot: prompt contains strange
201characters), try doing this first:
202
203 $ dd if=/dev/zero of=/dev/sdf bs=1M count=512
204
205III. Technical Miscellany
206=========================
207
208Benefits of using meta-intel
209----------------------------
210
211Using meta-intel has the following benefits over a generic BSP:
212
213tune flags
214++++++++++
215intel-* MACHINEs each have different compilation flags appropriate for their
216targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern
21764-bit Intel Core i microarchitecture, and includes instruction sets up to
218SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2
219microarchitecture, and includes instruction sets up to SSE3.
220
221linux-intel kernel
222++++++++++++++++++
223The linux-intel kernel is an initiative to bring better Intel(R) hardware
224support to the current LTS linux kernel. It contains a base LTS kernel with
225additional backports from upstream Intel drivers. In addition, a default kernel
226config containing most features found on Intel boards is supplied via the
227yocto-kernel-cache.
228
229graphics stack
230++++++++++++++
231Meta-intel provides the latest Intel Graphics Linux Stack drivers to support
232Intel hardware as defined by the https://01.org/linuxgraphics.
233
234Other software
235++++++++++++++
236 * intel ucode - provides the latest microcode updates for Intel processors
237
238 * thermald - which proactively controls thermal, using P-states, T-states, and
239the Intel power clamp driver.
240(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon)
241
242 * RMC - Runtime Machine Configuration, which allows the bootload to determine
243board and CPU information in order to set specific kernel command line
244information at startup.
245
246The intel-common kernel package architecture
247--------------------------------------------
248
249These BSPs use what we call the intel-common Linux kernel package
250architecture. This includes core2-32-intel-common and
251corei7-64-intel-common. These kernel packages can also be used by any
252of the BSPs in meta-intel that choose to include the
253intel-common-pkgarch.inc file.
254
255To minimize the proliferation of vendor trees, reduce the sources we
256must support, and consolidate QA efforts, all BSP maintainers are
257encouraged to make use of the intel-common Linux kernel package
258architecture.
259
260Intel-specific machine features
261-------------------------------
262
263The meta-intel layer makes some additional machine features available
264to BSPs. These machine features can be used in a BSP layer in the
265same way that machine features are used in other layers based on
266oe-core, via the MACHINE_FEATURES variable.
267
268Requirements
269++++++++++++
270
271The meta-intel-specific machine features are only available to a BSP
272when the meta-intel layer is included in the build configuration, and
273the meta-intel.inc file is included in the machine configuration of
274that BSP.
275
276To make these features available for your machine, you will need to:
277
278 1. include a configuration line such as the below in bblayers.conf
279 BBLAYERS += "<local path>/meta-intel"
280 2. include the following line in the machine configuration file
281 require conf/machine/include/meta-intel.inc
282
283Once the above requirements are met, the machine features provided by
284the meta-intel layer will be available for the BSP to use.
285
286Available machine features
287++++++++++++++++++++++++++
288
289Currently, the meta-intel layer makes the following set of
290Intel-specific machine features available:
291
292 * intel-ucode
293
294These machine features can be included by listing them in the
295MACHINE_FEATURES variable in the machine configuration file. For
296example:
297
298 MACHINE_FEATURES += "intel-ucode"
299
300Machine feature details
301+++++++++++++++++++++++
302
303 * intel-ucode
304
305 This feature provides support for microcode updates to Intel
306 processors. The intel-ucode feature runs at early boot and uses
307 the microcode data file added by the feature into the BSP's
308 initrd. It also puts the userland microcode-updating tool,
309 iucode_tool, into the target images along with the microcode data
310 file.
311
312 Q. Why might a user want to enable the intel-ucode feature?
313
314 A. Intel releases microcode updates to correct processor behavior
315 as documented in the respective processor specification
316 updates. While the normal approach to getting such microcode
317 updates is via a BIOS upgrade, this can be an administrative
318 hassle and not always possible in the field. The intel-ucode
319 feature enables the microcode update capability present in the
320 Linux kernel. It provides an easy path for upgrading processor
321 microcode without the need to change the BIOS. If the feature
322 is enabled, it is also possible to update the existing target
323 images with a newer microcode update in the future.
324
325 Q. How would a user bundle only target-specific microcode in the
326 target image?
327
328 A. The Intel microcode data file released by Intel contains
329 microcode updates for multiple processors. If the BSP image is
330 meant to run on only a certain subset of processor types, a
331 processor-specific subset of microcode can be bundled into the
332 target image via the UCODE_FILTER_PARAMETERS variable. This
333 works by listing a sequence of iucode-tool parameters in the
334 UCODE_FILTER_PARAMETERS variable, which in this case will
335 select only the specific microcode relevant to the BSP. For
336 more information on the underlying parameters refer to the
337 iucode-tool manual page at http://manned.org/iucode-tool
338
339 To define a set of parameters for microcode-filtering via the
340 UCODE_FILTER_PARAMETERS variable, one needs to identify the
341 cpuid signatures of all the processors the BSP is meant to run
342 on. One way to determine the cpuid signature for a specific
343 processor is to build and run an intel-ucode-feature-enabled
344 image on the target hardware, without first assigning any value
345 to the UCODE_FILTER_PARAMETERS variable, and then once the
346 image is booted, run the "ucode_tool -S" command to have the
347 ucode tool scan the system for processor signatures. These
348 signatures can then be used in the UCODE_FILTER_PARAMETERS
349 variable in conjunction with -s parameter. For example, for
350 the fri2 BSP, the cpuid can be determined as such:
351
352 [root@fri2 ~]# iucode_tool -S
353 iucode_tool: system has processor(s) with signature 0x00020661
354
355 Given that output, a suitable UCODE_FILTER_PARAMETERS variable
356 definition could be specified in the machine configuration as
357 such:
358
359 UCODE_FILTER_PARAMETERS = "-s 0x00020661"
360
361 Q. Are there any reasons a user might want to disable the
362 intel-ucode feature?
363
364 A. The microcode data file and associated tools occupy a small
365 amount of space (a few KB) on the target image. BSPs which are
366 highly sensitive to target image size and which are not
367 experiencing microcode-related issues might consider not
368 enabling this feature.
369
370
371IV. Tested Hardware
372===================
373
374The following undergo regular basic testing with their respective MACHINE types.
375Note that both 64-bit and 32-bit firmware is available for the MinnowBoard
376Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
377
378intel-corei7-64:
379 NUC6i5SYH
380 MinnowBoard Turbot
381
382intel-core2-32:
383 MinnowBoard Turbot
384
385
386V. Guidelines for submitting patches
387====================================
388
389Please submit any patches against meta-intel BSPs to the meta-intel
390mailing list (meta-intel@yoctoproject.org). Also, if your patches are
391available via a public git repository, please also include a URL to
392the repo and branch containing your patches as that makes it easier
393for maintainers to grab and test your patches.
394
395There are patch submission scripts available that will, among other
396things, automatically include the repo URL and branch as mentioned.
397Please see the Yocto Project Development Manual sections entitled
398'Using Scripts to Push a Change Upstream and Request a Pull' and
399'Using Email to Submit a Patch' for details.
400
401Regardless of how you submit a patch or patchset, the patches should
402at minimum follow the suggestions outlined in the 'Submitting a Change
403to the Yocto Project' section in the Yocto Project Development Manual.
404Specifically, they should:
405
406 - Include a 'Signed-off-by:' line. A commit can't legally be pulled
407 in without this.
408
409 - Provide a single-line, short summary of the change. This short
410 description should be prefixed by the BSP or recipe name, as
411 appropriate, followed by a colon. Capitalize the first character
412 of the summary (following the colon).
413
414 - For the body of the commit message, provide detailed information
415 that describes what you changed, why you made the change, and the
416 approach you used.
417
418 - If the change addresses a specific bug or issue that is associated
419 with a bug-tracking ID, include a reference to that ID in your
420 detailed description in the following format: [YOCTO #<bug-id>].
421
422 - Pay attention to line length - please don't allow any particular
423 line in the commit message to stretch past 72 characters.
424
425 - For any non-trivial patch, provide information about how you
426 tested the patch, and for any non-trivial or non-obvious testing
427 setup, provide details of that setup.
428
429Doing a quick 'git log' in meta-intel will provide you with many
430examples of good example commits if you have questions about any
431aspect of the preferred format.
432
433The meta-intel maintainers will do their best to review and/or pull in
434a patch or patchset within 24 hours of the time it was posted. For
435larger and/or more involved patches and patchsets, the review process
436may take longer.
437
438Please see the meta-intel/MAINTAINERS file for the list of maintainers
439and their specific areas; it's also a good idea to cc: the specific
440maintainer, if applicable.